本文仅作为学习目的,一切内容均不构成任何投资意见或建议, 投资有风险入市需谨慎
术语概括
- 区块链 = 分布式数据库, 已上链的数据无法更改, 支持智能合约。
- 矿工 = 区块链的一个节点,它包含完整历史数据,负责接收读写请求。
- 挖矿成功 = 成功获得区块写入权的节点,负责验证数据,广播给其他节点
- 智能合约 = 链上某个程序的代码(BTC是最简单的合约),代码上合约是
contract
面向对象类是class
- Gas费 =
修改(Write)
需要支付手续费(即Gas费),否则没有矿工打包区块就无法上链, 无法上链就没有记录,没记录就谈不上修改; 纯查询(Read)
则不需要。 - Cex = 中心化交易所
- Dex = 去中心化交易所
$Gas费 = {Gas价格(Price)}\times{资源使用(Unit)}$。 Gas价格由链忙碌程度决定, 资源使用则根据合约复杂度不同而不同。以太坊为例,空闲时一个简单的操作可能要支付手续费$10左右。虽然ETH手续费很贵,但是相比其他链,ETH上有更多的高价值原生资产。
CEX问题
CEX主要可能有技术故障,挪用资产,虚假交易,准入门槛等许多问题。
- 2014年2月MtGox祭天,共计损失
744,408
枚BTC, 当时头沟市场份额70%损失市价473M(4.73亿美金),127,000
债权人仍没得到补偿 - 2022年11月FTX祭天, FTX全球是第三大交易所,损失超过80亿美金,拥有超过一百万用户(现在变成债权人), 320亿估值化为乌有, 波及60多家投资机构(老虎, 黑石, 软银,红杉, 淡马锡, 加拿大教师退休基金等), 美国检察官Damian Williams称之为“美国历史上最大的金融欺诈之一”。FTX亲儿子FTT暴跌(25-2), USDT脱钩(0.97), FTX的私生子SOL暴跌(38-10), 投资者担心类似问题纷纷逃离各大交易。
去中心化主要是为了解决单点失败问题(无论是技术还是道德层面)和平等准入问题。
去中心化不能解决被攻击问题,但一旦出现问题所有记录都公开可查询。安全问题可以通过查看源码或三方审计报告(审计不代表绝对安全)
DEX历史
链上交易所
早在2014年1月ETH宣布时,就有创建Dex的想法,代表EtherEx/OasisDex
最开始Dex
的设想是基于传统Cex
的架构, 使用订单簿:
Maker
需要提交限价单到订单簿待命, 等待矿工挖出区块上链(例如ETH大概12秒)Taker
需要查询订单簿, 匹配交易, 划掉匹配的Maker订单, 完成交易。
基本上实现了交易所的功能, 但缺点很明显:
- 修改订单簿,需要支付Gas费。包括添加和取消订单, 尤其对
Maker
来讲是极大的成本消耗, 因为Maker
可能挂单量百倍于成交量 - 每个修改操作延迟高, 即出块时间。
线下订单簿
由于订单簿以上缺点,改进是订单簿不上链,而是在某个服务器中保持订单簿状态。代表EtherDelta
和0x
Maker
添加签名过的限价单到订单簿(没有上链延迟), 订单可以放在任何公共地方(交易网站,IM群,论坛,github等等), 但取消订单需要在链上执行Taker
寻找合适的对手订单,再次签名交给智能合约执行。
但EtherDelta
引入了新的用户体验问题:
- 链上冲突,多个人看见同一笔订单,只有一个会成功,其他的都会失败,失败也是要支付Gas费的
- 价格竞争,人们看到好的价格订单,会加剧链上冲突, 链上冲突增加,会增加资源消耗,Gas价格变高,不利于正常交易。
- 矿工抢跑,由于节点可以访问即将出块内存状态,它可以通过排序将自己的有利订单放在前面,从而拦截其他竞争者,以此获利。
- 取消订单可能由于竞争激烈Gas费高昂;或可能被矿工抢跑导致交易完成无法取消而失败,此时矿工还能获得取消失败的Gas费(完美双杀)。
Maker
挂单没有任何参数限制(虚假订单),如果手残点错了挂单参数,可能来不及撤销就被taker
执行- 交易所作恶,由于下单是链下部分,交易所可能会隐藏部分有利订单,而选择自己获利,甚至可能会封禁用户提交订单, 违反了公平准入原则
0x
引入治理代币ZRX
, 但除了治理貌似没啥用。虽然链上合约不可修改(但可以销毁),合约里面的参数是可变的,如果一个变量引用另一个合约,那么新的合约只要接口一致,便可切换引用达到合约升级的目的。
- 早期的
0x
治理安全性不够,允许使用上述升级代码,可能会导致51%治理攻击,即获得过半投票权的人可以使提案通过,升级到恶意代码 - 公开链下的订单簿是收手续费的,
0x
还允许p2p交易免收手续费,交易双方私下沟通可以绕过手续费,让交易平台不可持续。 - 如果
Maker
提交订单,但是挪用相关资金会导致Taker
执行交易时失败。浪费时间和手续费。
线下执行
EtherDelta
有两个大的问题是取消慢和执行慢,而且如果订单正在被执行,订单簿上该订单仍然存在。
IDex
改进思路是,一旦订单被执行,不断查询节点的内存池(mempool)来识别哪些是来自订单簿的,如果有就删掉对应订单, 更进一步的方案如下
Maker
添加签名过的限价单到订单簿Taker
寻找合适的对手交易单,对对手单签名,并提交给线下交易所- 交易所负责检查订单的合法性,然后最后上链完成交易
虽然改进更中心化了,但是还是有些好处
- 订单簿中不会再有执行中的订单
- 由交易所控制上链过程,交易所能够确保上链,用户交易之后不用等待可以继续交易
- 用户能够免费取消交易,因为交易距离上链会有一定时间
IDEX
领先超过两年,超30万用户,30亿交易额,但缺点仍有
Taker
仍需匹配订单,由于竞争条件存在,如果订单已经被取消或执行会失败- 链下API不过稳健,API用户会遇到不确定的交易执行,集成过程混乱容易出错
- 交易所每次只能上链一个订单,网络拥堵时导致高额的上链成本
AMMs
Uniswap V1的全新的解决方案,完全去掉了订单簿,使用AMMs(Automated market makers)
= 自动做市商
这种全新的机制,永远在线,无需许可的流动性使得Uniswap获得了前所未有的成长,促成了ICO的第二春
任何人都可以在Uniswap上线交易对,流动池(LP)的结构使得任何人可以贡献流动性并获得交易收益。
交易收益开始了流动性挖矿的新的篇章。
- 流动池机制,消除了
Maker
增添删除订单的Gas费成本和上链延迟,只有在提供和移除LP的时候消耗Gas费 - 无需撮合机制,
Taker
不在需要寻找对手单,最坏的情况只是Taker
用比较差的价格完成交易而不是完全不能交易
Others
- Uniswap V2, 不在需要ETH作为中介资产,支持闪电贷。
- Uniswap V3, 可以使用集中流动性,使用NFT作为LP证明
- Curve V1 适合稳定币和锚定资产,使用不同的AMM函数交易滑点更低。其VeToken治理也是一大创新。
- Curve V2 适合任意资产, 仍保持滑点低的特性。
- Balancer允许超过2种资产作为交易对。
除了一些Fork项目几乎没什么创新之外,这是一个快速发展的领域,Dex只是DeFi交易所部分,DeFi包含稳定币, 借贷,质押,交易,合约,聚合器,合成资产,隐私,支付,保险等
更多
- https://ycharts.com/indicators/ethereum_average_block_time
- https://blog.idex.io/all-posts/history-of-dexs-phase-1
- https://blog.idex.io/all-posts/history-of-dexs-phase-2
- https://blog.idex.io/all-posts/phase-3-off-chain-execution-on-chain-settlement
- https://blog.idex.io/all-posts/history-of-dexs-phase-4
- https://blog.idex.io/all-posts/history-of-dexs-phase-5