去中心化是区块链的一个很大的特点,去中心化交易所让用户对自己的资产拥有控制权,无需信任,撮合交易、资产清算都在区块链上,公开透明,交易完成后资产就自动回到钱包。但因为用户体验、交易速度等原因,市面上去中心化交易所在交易量上无法与中心化交易所相提并论。
中心化交易所存在很多典型的问题:
安全性问题
最突出的问题。中心化交易平台依然按照传统金融机构的方式运作,需要充值提现,扮演了资金托管的角色,容易被黑客攻击造成资产损失,同时交易平台也可能倒闭或卷款跑路。
交易过程不透明
交易所可以利用信息不对称来操纵价格。交易所内部的挂单和成交,都是用平台的IOU来记录的。IOU:I OWE YOU的简称,类似银行券的存在,其所代表的真正含义,就是用户在平台所实际抵押的法币/数字币数量的实际数量。中心化交易所需要对抗的是人性中的贪婪,交易所虚增IOU和挪用客户保证金参与市场做对赌的行为,将成为交易所的系统性风险。
KYC信息
KYC即Know your customer,KYC在追查黑客和不法分子时,KYC预留的信息可以提供很好的帮助,但是大量的交易者是在做合法交易,中心化交易平台通过KYC收集客户信息,也与数字货币匿名性不符。
不过随着中心化交易所的弊端越来越多的为人诟病,去中心化交易所正在快速发展。作为DEX的底层基础,去中心化交易所撮合协议如0x、R1、Kyber等已初具影响。基于这些协议,不同团队提出了各自的交易所解决方案。
下面来谈谈几种去中心化交易协议的优缺点。
Loopring协议
路印协议和0X协议很相似,王东在分享上也说受到了0X的很多启发。
路印协议中同样有Relayer的概念,并且借鉴了闪电网络的思路,将订单生成、传播、撮合放到区块链之外,可以避免链上交易拥堵,去除区块链对订单表更新维护的性能瓶颈。
对于用户来说,路印协议简化了整个交易的充值提现步骤,使资产丢失的可能性为零。同时订单卖出时代币不必锁定,下单后还可以将代币随时转走。
路印协议引入了环路撮合的概念,传统撮合系统是在两个币种间,即一个交易对的买卖两个方向间完成撮合;而Loopring 协议将撮合的概念扩展到多币种,通过交易环路来完成多个币种之间交易的撮合。环路撮合可以大大增加资产的流动性,提高交易确认速度。
- 用户甲、乙、丙分别对 Loopring 撮合智能合约授权,授权后该合约可对用户指定代币账号做不超过一定额度的转出操作。在上面实例中,合约可最多从用户甲的账号转出 1000 个 A 代币,从用户乙账户转出 9个 B 代币,从用户丙账户转出 100 个 C 代币;
- 用户甲、乙、丙分别生成自己的订单,并用私钥对其进行数字签名。订单不再区分买单和卖单,所有订单都被视为交换单 — 甲的订单声明:甲愿意卖出不多于1000 个 A 代币,买到尽可能多但不少于 10 个 B 代币;如果是部分成交,那么 A到 B 的兑换率不得低于 1000/10 = 100.0(卖出代币数量除以买入代币数量)。
- 甲、乙、丙分别将自己的订单通过适当的方式发送到一个或多个交易所;
- 交易所收到上述三个订单,将它们分别放到三个对应的订单表(orderbook)中,并实时通过区块链数据更新计算每个订单的状态,同时不断努力寻找能够撮合的一组订单 — 我们后续称之为交易环路或者撮合环路。一旦确定三个订单的当前状态可以撮合成功,且收益满足预期,即决定实施这个撮合;
- 交易所对撮合交易签名后发送到 Loopring 撮合智能合约地址;
- 撮合智能合约验证四方签名,之后验证三个订单(的最新状态)是否可以真正成交。若无法成交,合约终止(交易所依然要消耗一定的油费);否则智能合约分别计算出甲、乙、丙三方各自需要支出的金额,以及交易所该收取的费用,并且实时将甲、乙、丙账号中的资产进行互转,并完成对交易所的费用支付 — 如下图
- 所示。在交易过程中,撮合智能合约还会调用 Loopring 注册智能合约(LoopringRegistration Contract)来计算交易所应该给予该笔交易的费用折扣;在交易完成前,还会调用 Loopring 统计智能合约(Loopring Stats Contract)对交易所以及代币相关的统计数据做更新。
- 交易所监听新的区块和链下新的交易数据,并根据这些数据更新订单表,然后不断进行新的撮合。
0x Project
0x是一个基于以太坊的,为去中心化交易所而设计的开源协议,允许符合ERC20标准的币种在上面交易,目标是成为以太坊生态上各种DAPP的共享基础设施,为区块链生态提供技术标准规范。
在0x协议中,交易通过链下传输实现,相较置于主链的线上方案,0x协议可以降低交易成本,消除网络拥堵。每一次发起交易时,任何一个节点都可以称为“中介”,可以传输订单交易并收取一定的费用。
0x协议建立在以太坊的分布式网络上,能够7*24小时运作,不会像中心化机构那样会因为服务器故障而无法工作
交易记录公开透明,具有去信任的特点,消除了交易中存在的信任风险。
0x在技术实现上引入了Relayer的概念,其中任何可以实现0x协议,包括提供链下订单簿服务的做市商、交易所、Dapp等,都可以称为Relayer。更简单的理解,Relayer就是一个特别的中继节点,而基于Relayer的订单簿技术可以是中心化的也可以是非中心化的。
通过0x协议的交易过程大致如下:
- Relayer设置自身的交易服务费用规则,并对外提供订单簿服务。
- Maker选定一个Relayer进行挂单创建和填充必要的订单,手续费信息,并用私钥签名。
- Maker将签名后的订单提交给Relayer。
- Relayer对订单做必要的检查,并将其更新到自身的订单簿。
- Taker看到订单簿的更新,并选中成交订单。
- Taker对选中的订单进行填充,并广播至区块链完成最后的成交。
R1协议
R1协议是ONEROOT提出的基于以太坊的去中心化交易协议。
R1协议实现了链下订单中继、链上结算、交易记录可审计、去中心化资产托管。此外,R1协议还实现了基于委托的链上资产结算机制和订单的链上撮合功能,为基于R1协议的交易所带来更好的交易体验。
R1协议的链下部分由Relayer实现。Relayer即订单中继,是指接入了R1协议的交易所,负责收集用户订单、初步撮合后提交到链上进行结算。当前,接入R1协议的Relayer为ROOTREX交易所,由ONEROOT团队负责实现。用户将资产存入R1智能合约后依然保持对资产的控制权,能够自由提取,Relayer不会操作用户的资产。
通过R1协议的交易过程大致如下:
- 用户将资产(如ETH和ERC-20 Token)存入R1智能合约。
- Maker挂单并进行数字签名后,订单被Relayer收录订单薄。
- Taker创建吃单并且进行数字签名后,订单被Relayer收录订单薄。
- Relayer收集并撮合链下订单,寻找匹配订单。
- Relayer 对订单进行审核,基于委托授权的订单上链。
- 上链数据经过R1协议审计,资产清算划转。
KyberNetwork
KyberNetwork是一个数字资产与加密数字货币的即时交易和兑换的链上协议,基于KyberNetwork协议的链上去中心化交易所可为用户提供多种应用,包括构建各种交易API并提供给商家与用户。
KyberNetwork采用储备库机制,网络中的参与者共分为 5 种角色:
在网络中发送和接收代币的用户。 KyberNetwork 的用户包括个人用户、智能合约账户和商家。
为平台提供流动性的(一个或多个)储备实体。它可以是平台自己的储备库或者由其他者注册的造市第三方储备库。根据是否从公众那里取得贡献,储备库也被分为公共的和私有的两类。
为储备实体提供资金并分享平台的利润贡献者。这类参与者只存在于公共储备库中,从公众那里接收贡献来创建储备库。
维护储备库、决定兑换率并将该比率反馈给 KyberNetwork 的储备管理者。
KyberNetwork 运营者,负责在网络中添加、删除储备实体以及将代币对列入/移出交易列表。Kyber 团队将作为初始运营者引导平台的早期发展。后期将设置去中心化的管理来接替团队的运营者角色。每一位参与者都以不同的方式独立地与智能合约交互。
0x、R1和Kyber优缺点比较
用户使用0x交易前需要授权0x智能合约转账Token,如果用户未取消订单却将资产从钱包转出,可能带来交易失效的问题。这使得Relayer无法很好的控制订单簿,从而令交易体验大打折扣。
与之相比,R1对于订单的控制和处理更加实用化,而且在订单信息和流动性共享上的想象空间比较大,如果能够接入足够多的B端用户,可能会提供不输中心化交易所的交易深度。
Kyber采用的是另外一套机制:储备库与竞争机制,可以实现去中心化的代币交易,但目前依赖于以太坊网络,受主链性能约束较多。未来的规划也包括跨链交易,但是需要相关技术突破,因此前景不明。
目前Cosmos、Polkadot等跨链技术还不成熟,作为占据绝对优势的代币发行平台,大部分去中心化交易所只能交易以太坊上的代币。
跨链技术突破后,代币有望在不同公链之间进行交易,届时若plasma等提升公链性能的技术也完全落地,去中心化交易所将能够提供不输中心化交易所的速度和体验。
我们坚信去中心化的交易平台将是今后的趋势,但现阶段还是要解决交易速度、流动性、交易深度、版本更新问题,甚至有可能发生的分叉等问题。
本文参考邴越的《去中心化三大协议对比》,各去中心化协议网站、中文白皮书,并咨询技术人员后创作,欢迎转载。