深入浅出区块链
陈浩
元界CTO
立即订阅
16618 人已学习
课程目录
已完结 39 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 帮你从0到1深入学习区块链技术
免费
第一章 浅说区块链基础 (8讲)
第1讲 | 到底什么才是区块链?
第2讲 | 区块链到底是怎么运行的?
第3讲 | 浅说区块链共识机制
第4讲 | 区块链的应用类型
第5讲 | 如何理解数字货币?它与区块链又是什么样的关系?
第6讲 | 理解区块链之前,先上手体验一把数字货币
第7讲 | 区块链的常见误区
第8讲 | 最主流区块链项目有哪些?
第二章 深入区块链技术 (15讲)
第9讲 | 深入区块链技术(一):技术基础
第10讲 | 深入区块链技术(二):P2P网络
第11讲 | 深入区块链技术(三):共识算法与分布式一致性算法
第12讲 | 深入区块链技术(四):PoW共识
第13讲 | 深入区块链技术(五):PoS共识机制
第14讲 | 深入区块链技术(六):DPoS共识机制
第15讲 | 深入区块链技术(七):哈希与加密算法
第16讲 | 深入区块链技术(八): UTXO与普通账户模型
第17讲 | 去中心化与区块链交易性能
第18讲 | 智能合约与以太坊
第19讲 | 上手搭建一条自己的智能合约
第20讲 | 区块链项目详解:比特股BTS
第21讲 | 引人瞩目的区块链项目:EOS、IOTA、Cardano
第22讲 | 国内区块链项目技术一览
第23讲 | 联盟链和它的困境
第三章 数字货币与数字资产 (5讲)
第24讲 | 比特币专题(一)历史与货币
第25讲 | 比特币专题(二):扩容之争、IFO与链上治理
第26讲 | 数字货币和数字资产
第27讲 | 弄懂数字货币交易平台(一)
第28讲 | 弄懂数字货币交易平台(二)
第四章 区块链与当下互联网 (5讲)
第29讲 | 互联网身份与区块链数字身份
第30讲 | 区块链即服务BaaS
第31讲 | 数字货币钱包服务
第32讲 | 区块链与供应链(一)
第33讲 | 区块链与供应链(二)
第五章 如何从业区块链 (3讲)
第34讲 | 从业区块链需要了解什么?
第35讲 | 搭建你的迷你区块链(设计篇 )
第36讲 | 搭建你的迷你区块链(实践篇)
尾声 (2讲)
尾声篇 | 授人以鱼,不如授人以渔
新书首发 |《区块链第一课:深入浅出技术与应用》
深入浅出区块链
登录|注册

第28讲 | 弄懂数字货币交易平台(二)

陈浩 2018-05-28
在上一篇文章中,我们介绍了数字货币交易平台的概念,那么今天我们就来重点聊聊数字货币交易平台的技术。如果你有过设计或实现传统金融交易系统的经验,那么你阅读本篇就会更加容易。
由于中心化交易所是主流应用,所以今天我主要介绍的是中心化模式下的数字货币交易平台。

两套账本

数字货币交易平台的技术基本沿用了金融交易技术中的系统架构,只是把原来针对法币和证券(或平台代币)的部分,也就是我们通常称作资金管理系统的部分,完全替换为针对数字货币的数字货币管理系统,换句话说,就是换了一套内部账本。
然而我们知道,区块链本身也是用来记账的,也算作一种金融账本,所以一套内部账本,一套区块链本身的账本,这里就出现了两套账本,如何管理这两套账本,就是资金管理系统的首要任务。
如下图所示。由于中文语境下的交易有多重含义,本篇会用英文单词标注,以示区别。
(图示 数字货币交易所)
解释一下这张图,图的左边表示了多个区块链账本,右边的数字货币交易所有自己的内部账本,这两套账本是独立的。
交易所内部的账本记录的是交易 Trade,这个交易是由用户挂单,接着被撮合引擎撮合成交而产生的,而区块链账本上的交易 Transaction,是当且仅当用户发起充币提币请求并被执行时,才会产生的。
这两种交易都用了中文“交易”来表示,但是它们所属的语境不同,前者的交易表示的是金融交易语境下的资产交换,也就是 Deal;后者表示的是区块链上的技术概念,表示资产转移的一次记账过程,上述特意用英文以表区别,希望你能够区分。

数字货币交易所包含哪些系统模块

一个数字货币交易所的后端其实至少有四部分构成:Web 业务逻辑系统、交易撮合系统、运营后台管理系统、资金管理系统。资金管理系统其实就是刚才说到的内部账本。
Web 业务逻辑系统:这个模块通常包含了用户账户模块、登录网关、账户安全管理、KYC 认证、行情推送等等,这个模块更偏向用户,也与通常的电商账户系统十分类似。
交易撮合系统:这个模块是一个交易所的核心模块,为所有的用户提供订单撮合。
运营后台管理:这个模块是一个交易所运营人员使用的系统,交易所内部人员才能访问。
资金管理系统:这里的资金管理其实包含了三部分,第一部分是法币的支付网关,可能需要对接银行或第三方支付机构;第二部分就是数字货币钱包管理,它提供了大部分主流数字货币的支付功能;第三部分是用户持仓信息,所谓持仓就是用户持有多少数字货币,这个是记录在数据库中的,不需要与区块链保持一致,但是要求交易所的总账是平的。

各自模块的特征

Web 业务系统与我们常见的电商系统无异,主要是用户账户以及简单的业务逻辑,重点是可扩展性,业务要求比较弹性。
交易撮合系统本质上是一个高并发的计算系统,特点是系统性能高和稳定性好,其中订单队列可以是编程语言中的数据容器,也可以是内存数据库。
运营后台系统在整个交易所生命周期的早期并不凸显重要性,但是运营后台系统恰恰是交易所中后期发展的核心系统,重点在数据准确,要求网络安全性高和可扩展性好。
资金管理系统包含用户持仓状态,以及数字货币钱包服务,它是一个交易平台中安全性要求最高的系统,资金管理系统往往要搭配一个内存数据库,其中数字货币钱包服务也可以拆出来做成独立子系统,甚至可以改造成整个公司的内部区块浏览器,因为钱包服务需要设计成多个钱包实例,并统一所有的币种钱包接口。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《深入浅出区块链》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(14)

  • /
    老师你好,有些迷惑,请帮忙解答一下:
    用户之间交易只是资产转移,那真正的数字货币是存储在交易平台的冷钱包里嘛?
    我知道如果是币币交易的话,平台存储的币可能是来自用户的充值
    但场外交易呢?那些只有场外交易的平台他们会存储币么?随着交易额的不断增加,存储量也要时时增加(Transaction)嘛?但这样就会产生旷工费了,是在Trade时的手续费中扣嘛?
    2018-05-28
    1
    3
  • 亮哥
    老师,您好!看了后有点迷糊,麻烦帮忙解答下。
    看了区块链交易系统感觉与传统的基于虚拟账户的交易系统思路是一致的,只有在充值和提现的时候才与外部的区块链产生Transaction,这个理解对吗?
    如果上面的理解是对的,那么这里交易的第一步用户A的0.01BTC是通过WalletGroup子系统发起区块链上的交易(Transaction)充值来的吗?这个充值的钱需要有个中间过度账户(比如是交易平台的一个区块链账户,我的理解是像支付宝充值,这个钱是到支付宝在银行开的一个中间账户里)来做担保吗?但可能这样是不是有另外一个问题,就是交易平台会拿着中间账户里的BTC跑路了,感觉自己理解的还是有问题,老师帮忙看看。

    作者回复: 你好,你的理解是对的。平台是有跑路风险的哦。关键是平台和平台之间是互通的,平台之间的竞争压力会很大。

    2018-07-19
    1
  • 小可爱爱
    老师我刚学习区块链,很多还不懂,请教下如果是去中心化交易所,哪些是一定要放在公链上的?老师能不能再加餐一期专门说去中心化交易所.....真的很期待啊

    作者回复: 你好,我会单独发文哒,发到咱们公众号上

    2018-06-11
    1
  • 阿痕
    如果我在某交易平台上花1万人民币充值1比特币,这枚比特币只记录在交易所中心化的数据库里,并没有真正在区块链上产生transaction,这样理解对吗?

    作者回复: 你好,充值过程是有transaction的,但是充值成功后,你在交易所显示的比特币只是一个数字啦,并不是真的比特币了。

    2018-05-29
    1
  • 不了峰
    360公司Vulcan(伏尔甘)团队发现了区块链平台EOS的一系列高危安全漏洞。
    EOS网络负责人表示,在修复这些问题之前,不会将EOS网络正式上线。

    请问不会将EOS网络正式上线是什么意思?

    作者回复: EOS代币预售是使用的ERC20 token,正式上线是指运行属于自己的主网,与ERC20脱离关系的过程。

    2018-05-29
    1
  • Ender0224
    也就是说交易所并不一定持有和存入交易所等量的数字货币?就跟银行一样,前提所有的用户不会同时把币都提出来。
    如果是这样,交易所会不会也会把币自己外借呢(借给dapp开发团队用于开发)?

    作者回复: 是的,内部不透明,很难说清楚哦。

    2018-05-29
    1
  • 汪玉斌
    陈老师, 以下的理解是否正确, 请指教.
    1. 在交易所开户之后, 开通的只是交易所的账户, 并不是区块链上的账户
    2. 交易所的账户可以进行各种币币交易, 每种币币交易完成后其实没有实际区块链上的transaction, 只是交易所内当前账户各个币的数字变化而已
    3. 充币的过程其实是把币充到交易所在区块链上的地址上, 然后交易所只是给用户账户的持币数字变化下而已
    4. 提币的过程, 其实是从交易所在区块链上的地址提币到用户其他的区块链地址, 是这样吗?

    作者回复: 1.2.3.4 我们理解完全一致

    2019-09-16
  • Eric
    陈老师,文中所说的ETP就类似传统交易所的发行的股票么?每个交易所都可以发行自己的凭证了?
    2018-12-02
  • Leon
    陈浩,你好,我在极客时间订阅你的课程,讲的很好。
    我还有一个问题想请教一下,你在https://www.zhihu.com/question/61185047这个回答里面提到的
    “通常的做法,可以购买一套文交所或者期货交易所的源码,只需要在资金管理系统中,把数字货币加上即可。”
    请问在哪里购买呢?
    2018-06-24
  • Leon
    陈浩老师你好,我在极客时间订阅你的课程,讲的很好。
    我还有一个问题想请教一下,你在https://www.zhihu.com/question/61185047这个回答里面提到的
    “通常的做法,可以购买一套文交所或者期货交易所的源码,只需要在资金管理系统中,把数字货币加上即可。”
    请问在哪里购买呢?
    2018-06-24
  • an7N0l
    老师我有个问题,既然交易平台只有充提币才会上链,是不是意味着交易平台的钱包是用户公用的,那这样的话不同用户的同一个币种的充币地址应该是一样的才对啊?
    为什么我观察到的基本上不同用户的地址是不一样的呢?
    2018-06-22
    1
  • 合民
    老师,您好,我是后加入到学习队伍中的,正在努力追赶进度,学习的过程中心里一直有个疑问。对于区块链,主要是尝试解决分布式下的信任问题(共识),但这个规则是适用于用户之间的,那么对于系统的创建人是否有控制呢?假如系统的开发人员在系统上留后门,现在有什么解决方案吗?这个问题可能不局限于技术角度,期待老师的解答!

    作者回复: 主要是开源以及社区自治。创建人可能会初次获利,后续社区会逐渐监督创建人的权力。

    2018-05-29
  • 袁克强😅
    充值是否给每个用户生成一个地址?
    用户的余额查询是查询区块还是直接查询数据库,查询数据库的话有充值进来如何触发更新数据库?

    作者回复: 是的,应该是每人每次一个地址。
    一般查询数据库,这个叫持仓。
    通过监听充值交易transaction。

    2018-05-29
  • 阳仔
    1、交易平台为何不直接使用数字货币钱包检测用户是否充值到账,而是使用“扫块”(block_scan) 这一方法检测用户的充值呢?
    2、是因为扫块的方式效率高?
    3、以比特币充值为例,是不是需要有6个块确认之后交易平台才显示确认到账呢?

    作者回复: 1和2. 首先是性能考虑,因为交易平台拥有庞大的用户基数,如果仅仅只有钱包,显然钱包的性能不足以支持庞大的查询请求。其次是风控角度,针对异常交易检测需要比较精细稳定的查询服务。后续文章会有剖析哦
    3. 是的。

    2018-05-28
收起评论
14
返回
顶部