查看原文
其他

一文读懂「去中心化交易所」经典设计模型

Hydro社区 2021-01-13

The following article is from 链闻ChainNews Author Richard Chen

撰文: Richard Chen,1confirmation 分析师,1confirmation 是一家位于旧金山的早期加密风险基金

编译:Neo

校译:代世超,去中心化交易所 DDEX 市场负责人


中心化交易所的历史就是一部血腥的被盗史,而去中心化交易所(DEX)正在成为一种解决方案涌现出来。


去中心交易所的创新在于允许用户直接从自己的钱包进行交易,无需信任交易所来托管资金。「用户自托管」是去中心化交易所的核心功能


链闻 X Hydro 批注:


事实上,设计一个去中心化的加密货币交易所,本质上应该满足三个功能:

  • 去中心化:用户资金自托管

  • 加密货币:链上资产作为交易对象

  • 交易所:执行资产交换及结算


交易所的三个经典设计模型是订单簿模型、自动化做市模型和荷兰式拍卖模型。如何在这 3 种经典交易模型中,做到「去中心化交易」,是每个去中心化交易所的课题。


市场的先锋者们,是怎么做的?


 订单簿模型 


订单簿包含了代币的买单和卖单列表。买单称为出价(bid),卖单称为要价(ask)。订单簿列出了在每个价格点出价或要价的代币数量。最高出价(买一)和最低要价(卖一)被称作买卖一(top of the book)。它们标志着市场情绪以及获得订单所需的买入价和卖出价。最高出价和最低要价之间的差异叫价差(spread)。


DDEX 的订单簿


目前,IDEX、DDEX、Radar Relay、EtherDelta、Paradex 和 Ethfinex 都是订单簿式 DEX。


在订单簿式去中心化交易所(以下简称订单簿式 DEX)中,你可以提交两种类型的订单:市价订单限价订单


提交市价订单时,你可以设定买入 / 卖出的代币数量,DEX 会立即以最优市场价执行你的市价单。下一个市价单意味着,优先保证订单成交速度,无论订单簿上现有订单价格是多少。执行市价单的方式是,为买家匹配现有的卖一订单,为卖家匹配现有的买一订单。


提交限价订单时,DEX 会以你设定的价格和数量买入或卖出代币,如果当前没有能与你匹配的订单,你的订单会被挂在订单簿上,等待交易。


Radar Relay 的订单簿


订单簿可以存储在链上或链下。链下的订单簿式交易所(例如 0x)需要 Relayer (指的是采用此交易协议的 DEX)将订单簿存储在中心化服务器上。而链上的订单簿式交易所不需要中心化服务器,但用户需要自己创建交易并为挂单和取消订单的操作支付 gas 费用,即使订单没有被成交,gas 费也无法退还。


在订单簿式交易所中,做市商通过挂单来提供流动性,这些订单可以减少价差并补偿库存风险。通常,交易量越低,价差越大,因为做市商承担的流动性匮乏的风险更大。


 优点 


适合流动性市场。一个订单簿交易所的交易量越大、价差越小,证明一个交易所的流动性越好。在高流动性市场中,订单簿式交易所最适合于显示市场价格,并且大额订单不受价格滑点影响。Coinbase 和币安等大型中心化交易所、以及纽约证券交易所等传统交易所都依赖于订单簿模式。


 缺点 


不适合缺乏流动性的市场。只有当出价和要价相匹配时,订单才会被完成,反之亦然;如果你的最高出价仍然要低于最低要价,那么你将无法进行交易。因此,对于流动性不足的市场,订单簿交易所将导致大额差价,交易成功率低,而且小量资金即可对市场价格造成巨大影响。


矿工抢先交易 (front-running)。部分链上订单簿式交易所面临着矿工与交易者之间的抢先交易问题。


矿工可以在交易被区块打包之前就看到所有交易。如果你下了一个大买单,一旦矿工看到这个订单,他们发现你的订单已经大到足以拉高代币价格,那么矿工便可以自己创建一个买单并把自己的买单在你之前添加到区块中。当这个区块被挖出,相当于这个矿工低价买入了代币,然后代币价格被大单拉高。矿工再高价卖出这个代币,就能无风险套利。


针对订单簿式交易所的矿工抢先交易有几种创新解决方案。Injective Protocol 使用可验证延迟函数(VDFs)来为订单添加时间戳,防止矿工「抢跑」用户。0x 建议使用一个交易执行协调器,交易所将交易发送至一个实体来确保交易上链结算之前根据价格-时间优先级执行交易。到目前为止,矿工与交易者之间的抢先交易主要是一个理论问题,但也有少数在悄悄发生的案例。


链闻 X Hydro 批注:


其实还有另外一些实践,一些 Hybrid 模式的订单簿交易所,如 DDEX 和 IDEX,因为将提交订单上链的操作交给交易所而非矿工,能够避免抢先交易的问题。


市场操纵。订单簿提供了资产价格方向的短期信号。比如,大量买单可能预示价格上涨。但是这些信号可以随时改变。例如,一个交易者可以挂很多大单,但他们本身的动机并不是成交这些订单,而是只是试图表现出市场情绪,诱导交易者。


订单簿式 DEX 容易被市场操纵行为影响,例如拉盘砸盘、幌骗和刷单。这些操纵行为造成了市场的不稳定和虚假交易量。纽约证券交易所这样的传统交易所对这种不道德行为有严格的惩罚。但目前,现实世界的法律并不适用于智能合约程序,因此我们需要找到一种技术解决方案,代替法律来解决市场操纵问题。


 自动化做市(AMM)模型 


自动化做市商是提供市场流动性的算法代理商。自动化做市商的概念在博弈论和机制设计领域已有十多年的历史,最近才进入加密领域。


AMM 交易所不存在订单簿的概念:交易所不提供订单簿来展示买家和卖家想要交易的价格,而是将流动性汇集到一起,并根据确定性算法做市。该算法根据某个预定义的公式向用户报价。不同的自动化做市商使用不同的算法。


Uniswap 和 Bancor 都设定了一种币币之间的兑换算法,用户可以选定一种交易对,以交易所当前给定的兑换率,进行两个代币之间的兑换,这种交易类似在机场换汇。


Uniswap 是使用恒定乘积做市(Constant Product Market Maker 模型「即 x * y = k 模型」)去中心化交易所。在 Unisawp 上,每个人都可以成为做市商。用户可以通过向「资金池」为特定交易对添加资金,如选择 ETH/DAI,需要同时添加相等价值的 ETH 和 DAI。当池子里的 ETH 或 DAI 被兑换后,每个用户都可以按照比例分得交易手续费。


用户可以随时删除自己添加到池子里的资金,以当前池子计算的兑换率来提现本金。



Uniswap:添加和删除流动金


Bancor 则是一款使用平台币为其自动化做市的去中心化交易所。


 优点 


为缺乏流动性的市场持续提供流动性。这对于流动性高度分散的市场来说非常有用,例如对于像 Augur 和 Veil 这样的预测市场,流动性分散在各个市场之间。用自动化做市商预测市场取代订单簿预测市场,更容易对长尾市场下注。


 缺点 


大额订单滑点较高。滑点指的是下单的价格点位和最后成交的价格点位差距。在自动化做市商交易所中,滑点体现为下单的瞬间兑换率发生变化。



在恒定产品做市交易所购买 ETH 的价格细分,流动性池为 100,000 个 DAI 和 1,000 个 ETH


滑点取决于交易对的流动性池大小。在 Uniswap 的情况下,从上图看出,订单规模占流动性池的的比例越大,滑点溢价越高。比如,一个占流动池规模一半的订单会导致每个代币的平均价格翻倍,即滑点率 100%,这种情况在在订单簿式交易所中几乎不可理喻。为了使滑点率保持在 1% 以下,流动性池需要比订单金额大 100 倍。


只有当订单规模占流动性池的一小部分时,自动化做市商交易所才能为代币获得的最佳平均价格,大额订单不适用于自动化做市商交易。因此,每天执行数十亿美元订单的传统金融交易所和大型机构交易者,是不会使用 AMM 模型的。


做市商风险。一个常见的误解是 AMM 流动性提供者会获得固定的收益。恰恰相反,AMM 的流动性提供者并不像作为 Compound 和 Dharma 这样的 DeFi 借贷产品的贷方一样有固定收益,而是存在更大的亏损风险。


Pintail 和 Mohamed Fouda 发现, 只有在用户从资金池提取本金时的兑换率,和添加资金时的兑换率一致时,才能稳赚手续费提成。以 ETH/DAI,为例,不论 ETH 价格涨跌,我的总本金都会贬值,只有我赚的手续费能抵消这部分损失,才不会亏本。当价格发生重大变化,相比于持有这些代币来说,我亏本的可能性更大。


这对于正常波动的代币是很严重的风险,风险最大的是那些交易量低、价格波动大的代币。做市商可以通过不断向资金池添加和删除资金来应对价格变化,降低风险。


 荷兰式拍卖模型 


区块链的时间是离散的。每个区块将时间分成非连续的时间段,区块间的时间使矿工能比交易者提前知道一个区块中包含哪些交易,于是有了抢先交易的机会。这是链上交易所的一种弊端。

但是有一种交易所,恰恰利用了区块链的时间离散性


荷兰式拍卖交易所,正是这样的设计。荷兰式拍卖,是一种减价拍卖,广泛用于花卉水果海产品等物品,简单来说是不断降低报价直到有买家愿意买,由这个买家直接完成交易。


荷兰式拍卖应用在 IPO 定价中,所有买家暗箱声明自己的出价和购买量,后台按照价格从高到低排序后,累加购买量直到总发行量,以最后一个累加的订单价格为最终交易价格,每个报价高于此价格的买家都以这个交易价格买到自己声明的股权数量。


在加密货币的荷兰式拍卖交易所,利用区块的时间窗口,交易按「批次」进行。在拍卖开始前,所有卖单收集在同一个批次中。(卖家仍然可以在拍卖期间提交订单,不过订单会在被放在下一批拍卖中。)


拍卖开始时,代币初始价格设定为上次拍卖收盘价的两倍,然后价格逐渐降低,价格反映买家的最大支付意愿时,买家就会提交出价。报价降低的过程持续到所有代币卖完,达到清算价格,则拍卖结束。


交易所设计的关键在于,收盘时每个买家以相同的价格收到代币。买家只需按最终的清算价格支付(即使买家出价更高),买家收到的代币数量由其出价的订单规模决定。


资料来源:Gnosis DutchX


Gnosis 建立了一个名为 DutchX 的荷兰式拍卖交易协议,FairDEX 是 DutchX 协议上的交易平台。FairDEX 的前两次大额拍卖已经顺利完成。第一次和第二次 DAI/ETH 的拍卖成交价格,分别低于 Bitfinex 上同交易对价格的 1.23% 和 2.25%。这表明 DutchX 交易协议在处理大额订单上没有问题,并且拍卖的收盘价与市场价格相差不远。


0x 上也有荷兰式拍卖合约,用来创建荷兰式拍卖市场。


 优点  


为缺乏流动性的代币提供价格发现。相比于传统的订单簿式交易所,荷兰式拍卖通过累积订单同批执行,能为缺乏流动性的代币更好地确定一个公平的市场价格。Decentraland 和 CryptoKitties 等网站就使用荷兰式拍卖来为非同质代币(NFT)实现价格发现。


减少抢先交易。同一批卖单在同一时间执行,防止矿工抢先成交自己的订单。


 缺点  


交易时间较慢。拍卖结束,交易才会执行,而拍卖可能花费几个小时。由于交易非即时,使得快速交易(如订单簿交易所中的市价订单)无法实现。


 所以呢?


交易所设计三种方法中的每一种 —— 订单簿模型、自动化做市模型和荷兰式拍卖模型都有其独特的优势和利弊权衡。


我认为,订单簿式交易所将继续作为 BTC 和 ETH 等主流代币的交易场所,而自动化做市交易所和荷兰式拍卖交易所将作为补充,帮助用户在长尾代币市场获得更好的价格。


但不论哪种模型,要成为交易所领域的赢家,最重要的是价格流动性。即使产品设计一般般,哪里价格更好、流动性更充足,用户就会往哪里去。


感谢与 Alex Evans 的交流启发了这篇文章。




本译文由链闻 x Hydro 联合发表

原文:https://thecontrol.co/a-comparison-of-decentralized-exchange-designs-1deef249f56a

加笔者微信 Diane_1997,请注明来意哦


试试用 xDai 赞赏一下?





【近期动态】


Hydro SDK | Hydro合约 1.1 版本 | TRON DDEX去中心化交易所 | Hydro 升级 |  DDEX 1.0 | Hydro 分叉0x 


【往期文章回顾】


抢先交易百亿美金DeFi市场,还需要一个它 | 世界货币失败史 | 美股交| DeFi 投资密码 | 一个人的量化基金 | 用 Dai 做空美股 | Facebook 发币 | J.P.摩根发币 | WBTC的V神小意见   | 去中心化交易所 2019 | 以太坊 2018


Modified on

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存