【前言】
笔者一直好奇去中心化交易所和去中心化交易所交易流程的本质区别,也曾在币问发过问题求解《交易所的地址和分配给用户的地址机制是怎样的?》,可惜人微言轻,虽然浏览量达到了100,但是至今没有收到过回复,具体问题为:
一直好奇: 交易所的地址和交易所内用户的地址之间的分配机制? 感觉上交易所地址是正式对外的地址,用户地址是交易所内部分配的地址,这样在参与艾西欧的时候由于新币的地址在交易所内部尚未分配,从而导致新币是直接进入交易所的账户而导致用户丢失。 不知道理解是否正确,忘得到专业人士解答,回答从三个角度进行:
1.交易所分配用户地址的分配运作机制;
2.案例一个币从交易所用户地址转出和转入的过程;(个人理解转出是交易所地址直接转出,而转入是外部地址先转到用户地址,用户地址转入交易所地址,两次矿工费。艾西欧另当别论)
谢谢!
本文将以ERC20代币体系来讲解中心化交易所和去中心化交易所的区别,结论直通车直接看总结部分。
【背景】
那么既然无人解答,我就自己死磕吧,同时感谢DRC组织的DEW和Kyber的尽调,在探讨过程中,笔者逐渐死磕出来了思路。为了讲清楚这个问题,我先贴几个交易所的ETH的地址供大家使用。(获得方式可从Etherscan四步检验法——案例BITE币一文中学得)
1、中心化交易所地址(可持续更新,交易所容易变更地址,而且策略各异):
币安:0x3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be (BinanceWallet)
火币:0xeb574cd5a407fefa5610fcde6aec13d983ba527c (ETH地址,还有其他地址)
OKEX:0x236f9f97e0e62388479bf9e5ba4889e46b0273c3 (没用过,推断出来的,应该没错)
ZB(地址1):0x296e781bbb0179b032cbcc31e4b6cdab724b2773
ZB(地址2):0x6f4d027a2335866e4bf7979e7a3e5bf75495906e
Gate.io:0x05ee546c1a62f90d7acbffd6d846c9c54c7cf94c
BIBOX:0xf73c3c65bde10bf26c2e1763104e609a41702efe
BIGONE:0xa30d8157911ef23c46c0eb71889efe6a648a41f7
库币网:0x2b5634c42055806a59e9107ed44d43c426e58258
2.去中心化交易所智能合约地址(可持续更新,均为智能合约地址,基本不会变更):
以德交易所智能合约地址:0x8d12a197cb00d4747a1fe03395095ce2a5cc6819
DEW交易所智能合约地址:0x7b74c19124a9ca92c6141a2ed5f92130fc2791f2
Kyber储备库智能合约地址:0x63825c174ab367968ec60f061753d3bbd36a0d8f
Kyber交易所智能合约地址:0x964f35fae36d75b1e72770e244f6595b68508cf5
【中心化交易所机制和特点】
中心化交易所机制一、区块链中心化交易所和大家日常使用的股票交易所模式一致:
1.开户:注册户名并设置的密码,通过密码进入交易所进行币币买卖(往往伴随KYC);
2.充值:如图1→2过程,依照币的属性,交易所会分配coin的地址和token对应的coin的地址(此处概念参考区块链基础概念 - 理解COIN和TOKEN)供用户充值代币。对应本文主要讨论的ERC20代币,会统一使用ETH的地址。可以理解为这个地址是交易所分配的给用户的,用户只享有地址,却不拥有对应密钥,密钥仍在交易所手中!(核心)
3.自动转账:如图2→3过程,当用户用自己的钱包地址向自己的交易所地址充值时,所有的币会自动转入交易所的地址。此处可以类比股票交易所,即用户把钱(币)交给了交易所,由交易所作为信用背书,代管用户的钱(币),这个时候钱(币)的实际控制人为交易所。
4.交易:如图3→4过程,用户向交易所提交交易指令,交易所中心化服务器进行交易撮合(中心撮合或者集中撮合),成交后将结果告诉用户。中心撮合(集中撮合)最大的好处是当订单量达到一定数量级后,成交撮合效率非常高(实时),那种感觉可类比股票交易。
5.提现:如图3→1过程,用户向交易所提出提现指令,由上述的步骤可知,所有的币都在交易所的地址里,所以提币的过程是由交易所的地址转向用户钱包地址。
二、整个过程产生费用的地方有:
1.充值时,用户钱包地址充值到交易所分配给用户的地址,需要消耗GAS,费用由用户直接承担;
2.自动转账时,交易所分配给用户的地址自动转入交易所地址,也需要消耗GAS,费用由交易所直接承担,目前基本上主流交易所均采用充值免费的模式;
3.交易时,交易所会收取手续费,一般是总交易金额的0.1% (个别交易所为0.2%,使用交易所代币打5折),费用由用户直接承担;
4.提现时,交易所地址充值到用户钱包地址,也需要消耗GAS,交易所一般直接收取用户0.01ETH作为手续费。
由此可见,中心化交易所交易和体现过程都是收手续费的。
三、中心化交易所优势:
1.中心化交易所在技术实现上是有传统成熟解决方案的,即使面对海量大并发实时交易,依旧可以给用户提供很好的服务体验。
2.中心化交易所庞大的用户量和交易量,也带来了足够的交易深度,提供了充分的流动性。
3.中心化交易所的交易成本从经济上看是由市场环境和监管政策决定的。它可以根据运营策略来制定变化的手续费规则。为了鼓励用户高频交易,甚至可以不收取交易手续费。但一般都会对资产提现进行收取手续费。
4.由于中心化交易所的所有交易实质都是IOU记账,所以从技术上看交易成本是非常低的。
四、中心化交易所劣势:
1.人为因素——中心化信用背书,会面临包括内部运营风险、商业道德风险、资产盗用等严重影响用户资产安全的风险。有名的案例也比比皆是,如:
2013年10月比特币交易所GBL突然关闭,负责人捐款跑路,用户损失2000万美元资产。
2014年2月Mt.Gox85万比特币监守自盗,大名鼎鼎的门头沟事件
2014年5月 FXBTC长期亏损停止运营,疑似卷款跑路。
2015年1月 加拿大交易平台Virtex停止提现,并将资金分批转走,疑似跑路。
2015年2月3日 台湾比特币交易所Yes-BTC被盗435个比特币,网站声明其董事长何兆翼不知去向。
2016年4月7日 交易所ShapeShift的钱包被黑客盗窃,后证实该盗窃行为是监守自盗,黑客受一名离职员工的指使。
2017年1月 比特币亚洲闪电交易中心卷款跑路,卷走上亿资金。
2017年7月 BTC-e交易所下线,随后域名被封禁,运营者Alexander Vinnik涉嫌洗钱、盗窃被捕。
2017年9月6日 瑞通光泰投资基金管理有限公司旗下网站莱特中国卷款跑路,页面关闭,投资者被拉黑,资金不翼而飞。
2017年12月10日 加密货币交易平台币集网网站关闭,疑似跑路,用户已报案维权。
2.技术因素——资产的第三方背书集中式托管,会招致巨大的黑客攻击风险,相当考验网站技术能力和紧急应对能力,有名的案例也比比皆是,如:
2014年3月1日 美国加密货币交易所Poloniex被盗,损失总量12.3%的比特币。
2014年8月15日 加密货币交易所比特儿微博称被黑客盗走5000万个NXT,价值约1000多万元人民币。
2015年1月10日 比特币交易所Bitstamp遭受黑客攻击,损失价值510万美元的比特币。
2016年5月 香港数字交易所Gatecoin被盗18万个ETH,250个比特币。
2016年6月 众筹项目The Dao因智能合约漏洞遭黑客攻击被盗360万个ETH。
2016年8月 香港Bitfinex由于网站出现安全漏洞,12万个比特币被盗,当时价值6500万美元。
2017年7月 韩国加密货币交易所Bithumb被盗,据评估损失达数十亿韩元。
2017年7月 加密货币交易所CoinDash遭黑客盗走大量以太坊,损失达700万美元。戏剧性的是黑客分别于2017年9月与与今年2月,分两次将被盗以太坊原数返还。
2017年12月19日 Youbit第二次遭受黑客攻击,损失17%的数字资产,并宣告破产,用户补偿工作暂无后续进展。
2018年1月26日 加密货币交易所Coincheck被黑客盗走大量NEM,损失约5.3亿美元。
2018年2月10日 意大利交易所BitGrail遭黑客攻击,损失了1700万个NANO币,总价值约1.7亿美元。
2018年3月7日 加密货币交易所Binance遭受黑客攻击,所幸没有出现丢币情况。
【去中心化交易所机制和特点】
理想化的去中心化交易所机制一、理想化的去中心化交易所运作机制(实际去中心化交易所均稍有改良,详见后文):
1.开户:注册获得新的地址(账户公钥)和密钥,或者直接导入钱包地址,一旦丢失密钥是无法找回的(一般无KYC);
2.充值:目前去中心化交易所主流基本上都是ERC20体系(也有采用Relay来做跨币交易的,基本处于实验阶段),所以充值过程比较简单,直接由钱包地址充值到去中心化交易所的新地址(账户公钥),如图1→2过程
3.自动转账:作为理想化的去中心化交易所没有自动转账这一步,自己的新地址就是交易主体(这个过程有些去中心化交易所也是存在的,详见后文)
4.交易:当发起交易时,直接执行去中心化交易所的智能合约来完成交易,这个过程往往需要花费很长的确认时间和撮合时间,所以去中心化交易所的”慢“也是成了一个特征,整个过程用户一直拥有着币的所有权,去中心化交易所无掌控权,如图2→3和3→2过程
5.提现:用户从去中心化交易所的新地址(账户公钥)转账到自己钱包地址,如图2→1过程
二、整个过程产生费用的地方有:
1.充值时,用户钱包地址充值到中心化交易所的新地址(账户公钥),需要消耗GAS,费用由用户直接承担;(花费同中心化交易所充值过程)
2.自动转账时,去中心化交易所无这步(部分有的也同中心化交易所的自动转账过程)
3.交易时,去中心化交易所也会收取手续费,一般是总交易金额的0.1% (个别交易所为0.3%,但是是taker单项付费,maker是免费的,流动性和交易深度优惠问题),费用由用户直接承担。这里有个特别之处是,取消交易时也有会有费用,因为整个过程都是类似转账过程,所以都有GAS的消耗。
4.提现时,交易所地址充值到用户钱包地址,也需要消耗GAS,费用由用户直接承担;
由此可见,去中心化交易所只有交易手续费,其他过程均为GAS消耗。
三、去中心化交易所优势:
1.从业务视角来看,去中心化交易所模式简单,它只需要承担主要的资产托管、撮合交易及资产清算。而不需要承担像中心化交易所所需要承担的非交易的功能像账户体系、KYC、法币兑换等。用户在区块链上的账户公钥就是身份,不需向交易所注册个人信息因此就不存在个人信息安全问题也不需要KYC。
2.与中心化交易所最大不同在于,所有的这一切都通过开源智能合约来实现,将资产托管、撮合交易、资产清算都放在区块链上。
3.用智能合约来实现去中心化去信任的交易机制,解决了中心化交易所人为因素产生的内部运营风险、商业道德风险、资产盗用等严重影响用户资产安全的风险。
4.用户的托管资产可以自由转移无需任何人审批,安全上得到了足够的保障。
5.由于用户的账户密钥是控制在自己手中,所以技术上黑客攻击由集中式攻击交易所改成针对分散式的个人账户进行攻击,利润空间下降反倒造成了相对安全性的提升。攻击的成功取决于个人账户的安全意识和习惯。(当然,黑客也可以攻击交易所造成交易瘫痪,或者像上次攻击以德一样,更改以德服务器DNS来骗取用户的密钥,但这些攻击都可以针对中心化来实施,相对于中心化交易所来说,攻击造成的影响范围和程度会有所下降)
四、去中心化交易所劣势:
1.用户在去中心化交易所的一切资产和交易操作是以区块链交易来驱动的,因此既时上就受到区块链本身的确认速度的影响,在目前以太坊上交易确认大约需要几十秒的时间,这对用户体验而言并不友好。
2.交易成本也会受到区块链本身交易费用的影响,因此对于小额交易而言交易成本会变得很高。
3.由于区块链网络交易处理性能低下,并不能处理大并发的实时交易,所以在交易量和交易深度上远远不如中心化交易所,流动性上有所受限。
4.用户本身需要对账户公私钥有足够的安全操作知识才能保障足够安全,否则账号遗失、被盗也是会经常发生的。
【去中心化交易所案例】
中心化交易所大家都很熟悉了,而且机制基本一致,所以为了更加直观的讲清楚去中心化交易所机制的微妙区别,讲使用以下五个案例来具体说明:
1.EtherDelta以德
2.DEW达尔文
3.KyberNetwork开博网络
4.0x Project
5.Loopring路印协议
一、EtherDelta以德——笔者称之为相对最标准的去中心化交易所
1.以德的构成和特点:
以德由EtherDelta网站和etherdelta智能合约构成,EtherDelta智能合约的Solidity代码可以在Etherscan这里免费获得(智能合约地址):
https://etherscan.io/address/0x8d12a197cb00d4747a1fe03395095ce2a5cc6819
12月21日,以德交易所DNS遭黑客劫持遭受损失,就属于网站被黑客攻击,攻击者成功地劫持了EtherDelta的DNS服务器,并为交易者提供了一个虚假版本。虚假网站模仿了真实网站的域名,这比常见的网络钓鱼攻击更为危险。整个攻击只存在了几个小时,真实的EtherDelta网站很快就得到了恢复。但这几小时期间,凡是使用了网站的交易者基本上都将自己的代币发送给了黑客。包括以前发生的被盗事件,黑客利用交易所存在的安全漏洞,注入恶意代码,从受害者钱包窃取私钥,然后手动榨干钱包中的资金。
以德为代表的去中心化交易所被盗模式基本上都是攻击以德网站来让用户泄漏自己的私钥,从而获得利润,这种模式相对于中心化攻击来说,造成的损失较小,取决于被盗的用户资产额以及上当的用户数。
2.Maker和Taker的概念
在继续讲解以德机制前,先解释前文提到的Maker和Taker的概念:
Maker VS TakerMaker就是制造者,指提供深度的人(也可以理解成下限价单的人)。很简单,如果你下一个的委托,因为价格高或低,不会和已有的委托马上成交,那么你的委托就会被加入到交易所的深度(Orderbook)里。这样你就为交易所提供了深度。这样你是Maker。
Taker反过来,就是拿走深度的人(也可以理解成下市价单的人)。也很简单,如果你的委托会和已有的委托马上成交,那么你的委托会“拿走”深度。
从交易所来看,Maker为整个市场的交易提供了深度的同时也锁定了自己的资金,为交易所提供了流动性,属于相对受害方,所以以德对Maker的补偿是不收取手续费;而Taker提取了交易所的流动性,作为利益获得方,以德将收取0.3%的手续费。(专业术语为:maker实际上是向所有人发了一个权证,他是义务方,但其他人却没有支付给他权利金,所以交易所要补贴他。)
以德手续费说明地址:https://www.reddit.com/r/EtherDelta/comments/6hrvwl/how_fees_work/
3.以德的机制
理解了Maker和Taker后,我们回到以德机制的话题
由上图会发现,以德的充值、交易、提现过程基本上同前文介绍的去中心化交易所模式,唯一有一个小小的区别是发起交易时采用的链下存储订单簿的方式。
以德的不同之处考虑到成本和速度的影响,EtherDelta没有链上存储订单而采用链下存储订单簿的方式:
a.Maker在链下发送订单以及签名(在EtherDelta中,这一个步骤通过一组服务器用WebSockets传递JSON消息来完成);
b.当Taker想要与该订单进行交易时,签名和订单信息被发送到智能合约的交易功能;
c.智能合约验证签名来源于Maker,智能合约确认订单没有过期或已经履行;
d.资金转移并收取费用。
二、DEW达尔文——中心化撮合,去中心化清算的混合型去中心化交易所
DEW机制DEW是中心化交易所和去中心化交易所的混血儿,因为它也有自动转账的过程,也就是说它的充值和交易过程是和中心化交易所一样的:当币充值到交易所的分配的地址时会自动转入到交易所的智能合约地址(地址见前文)进行中心化撮合;资产清算时则采用代码记录在智能合约当中的,保障资产清算过程透明独立,同时每笔交易都需要用户自己的私钥进行签名,任何人无法伪造和篡改交易请求。所以,任何人在提现过程只能提到绑定的钱包地址,从而实现了去中心化的过程。
这样一种混合型去中心化交易所模式,使交易过程和体验都相当不错,笔者一直将之称之为小币安(Binance)。可惜DEW的定位重心在于期货以及以后的股票市场与币市的连接,币币交易的热度和深度并不高,导致币币交易额只占其整个业务的2%不到,98.2%来自期货。
三、KyberNetwork开博网络——去中心化的货币兑换平台
比起其他去中心化交易所,笔者觉得Kyber更像是一个去中心的币币OTC(场外交易服务商)。Kyber引入了储备贡献者的角色为代币储备库提供代币,引入了储备库管理者来管理运营储备库。每个储备库都由对应的储备管理者来运营,由其负责周期性设置储备库兑换率,并利用储备库对普通用户提供的兑换折价来获取利益,该利益由储备管理者和储备贡献者共同分享。储备库与储备库之间是互相竞争关系,以保障给用户提供最优的兑换价格。KyberNetwork为储备库管理者提供平台,并设有KyberNetwork的全局运营者对所有储备库、储备库管理者进行集中管理维护。
通俗讲储备贡献者就兑换货币的,提供自己的兑换比例,当用户要兑换时,Kyber会自动选择最优的汇率来提供用户兑换,所有过程均在智能合约里执行。可想而知,这样一种兑换模式,用户的兑换成本肯定高于币币的交易成本,所以它的应用场景是与钱包供应商互补合作,一旦交易所被禁止或者交易门槛提升,这种模式将会成为主流。
Kyber包含有两个智能合约,一个是为储备库提供货币准备的,一个是为普通用户兑换准备的:
Kyber智能合约用户的交易均可以从网络合约(智能合约)地址查询到。
四、0x Project——去中心化的交易协议
0x不是交易平台,它是一个开源的去中心交易协议。它的目标是成为以太坊生态上各种Dapp的共享基础设施,它期望成为区块链生态中开放的技术标准规范。
0x机制0x属于订单薄托管模式,技术实现中引入了Relayer的概念。Relayer可以理解是任何实现了0x协议和提供了链下订单簿服务的做市商、交易所、Dapp等等。Relayer的订单簿技术实现可以是中心化的也可以是非中心化的。
Relayer从成交交易中收取手续费获利。交易过程大略如下:
1、Relayer设置自身的交易服务费用规则,并对外提供订单簿服务。
2、Maker选定一个Relayer进行挂单创建和填充必要的订单,手续费信息,并用私钥签名。
3、Maker将签名后的订单提交给Relayer.
4、Relayer对订单做必要的检查,并将其更新到自身的订单簿。
5、Takers监看到订单簿的更新,并选中成交订单。
6、Takers对选中的订单进行填充,并广播至区块链完成最后的成交。
0x 相比于EtherDelta更好的利用了去中心化和中心化各自的优势,把链上链下作了结合。它也是把清算功能保留在链上,同时把交易撮合放到链下来处理(中心化撮合)。一方面保障了用户资产安全,另一方面借助链下的Relayer提升了用户体验也降低了用户交易成本。
但有一点需要注意的是,Relayer和Relayer之间是割裂的,Relayer之间由于利益上关系彼此是互相竞争的。如果Relayer自身用户并不多、交易量不足、交易深度不够那流动性上会有所欠缺。未来如果以太坊Dapp生态发展顺利,Dapp遍地开花,且普通Dapp都能达到百万级别用户量的基础上,0x协议会有广泛的应用基础。
不难发现,0x作为去中心化的交易协议出来后,它的构想启发了DEW和Kyber模式。而0x的应用场景基本上也是与钱包供应商、kyber等进行互补合作,笔者拭目以待imtoken 2.0整合Kyber和0x后的新功能。(3.21日开始公测哦!)
五、Loopring路印协议——类似0x的去中心化的交易协议(国内项目)
Loopring是类0x的去中心化的交易协议,从整体思路上与0x Project是非常类似的,也主要是受到0x的启发,均采用链上智能合约负责资产托管、实施撮合成交,链下负责订单匹配。
具体技术实现上的不同点:
1.Loopring将撮合扩展到了多币种多订单上,即白皮书所说的链上交易环路撮合技术,鼓励交易所匹配最大折扣的成交路径,为用户节省交易成本的同时交易所也有利可图。但也增加了智能合约的复杂度和以太坊交易的执行成本,在实际应用中效果有待观察。
2.设计了经济激励机制,提倡交易所从交易手续费为主的模式转变为成本节约分润为主的模式。3.交易所之间是互相平等竞争的关系,用户的订单可以选择发送给一个或多个交易所,甚至为了快速达成,可以发送给全网所有的交易所,尽管这样会给市场深度带来好处,让成交更快更有效,但对于交易所而言也会带来抢单的问题,因为理论上大部分交易所对于链上订单合约的变更的感知速度是一样的,因此对于同样的订单匹配,不同交易所就会各自发送相同的撮合请求到链上,造成大量无效的撮合交易。
loopring的多链支持模式【总结】
由上可知,中心化交易所和去中心化交易所一个最显著的直观区别,就是使用https://etherscan.io去查询地址,中心化交易所只是一个erc20地址,去中心化交易所绝对是智能合约地址。
根据本文开头提供的一些交易所的地址,大家可以去查询一些币的转入情况来判断一下信息,比如:
1.2018年3月8日时,J8T在库币网开始交易,笔者发现库币网含有了4.2%的J8T总量,排行第四,前三应该是官方持有者,问题是排行第2的地址也像库币网转去了83万代币就有点儿让人不放心了,J8T据说当天破发的有点儿狠。
2.2018年3月14日时,BFT在Gate.io开始交易,笔者发现Gate.io含有了0.13%的BFT总量,排行第7(15日的时候滑倒第8名,但是含币量有所上升,好像到了0.6%),官方并没有啥转币交易所的行径,第一天价格相对于1C0的ETH价格是涨了两倍,相对于USD是持平微有上涨,虽然第二天还是破发了,因为没有足够的买单,市场热度不够,了解的人并不多也能理解。
虽然这样的判断并不能完全反映在涨跌上,但基本能给人一个很直观的感受,甚至爬虫高手们能够监控获得更多信息。
最后,笔者将逐渐将去中心化这个概念淡化,使用分布式、点对点以及去中介化作为区块链更贴切的特征描述。
网友评论
1)中心化交易所,自动转账流程,这里的自动转账是如何实现的?代码定时执行而已嘛?
2)后面说到的ox协议,这里的relayer之间是割裂的,就相当于每个流量入口是一个单独的交易所,那确实每个深度都不够。然后看路印优化了这点,即maker可以同时向所有“交易所”(流量入口)发送order,然后这里的缺点我就不太明白了,说会因交易所抢单造成大量无效撮合交易订单。我感知中的,这里感觉像路印在维护一个根订单薄,然后不同入口的人(或者你上文说的交易所),都可以通过该入口看到当前所有的订单。这就和传统交易所一样了,比如币安把交易接口,行情接口都分发到各个流量入口,大家在任何地方都可以像在币安一样交易,这样深度会越来越好,不知道我理解的对不对,求赐教~
2.loopring这个是愿景,要到那个阶段路还很远,而且打通所有交易所是最难的。在这种情况下,其实任何交易所都会找到自己最优的撮合方式进行交易了,更加不存在搬砖之说。你的理解是对的,特定假设下,这个深度等同于整个市场的深度了,对所有人都是一样的,横向已经打通了。一个极端理想的情景假设啦