出品:DODO Research
编辑:Lisa
作者:xiaoyu
Dan, with all respect. The game was changed long ago by @1inch when they first did high-quality aggregation and @CoWSwap when they pioneered the solver model.
It’s good stuff, but you are not really the first or the second.
—— @Curve Finance
UniswapX 推出轰动一时,也饱受争议。最尖锐的问题指控 UniswapX 是否抄袭 CoWSwap 的和 1inch。Curve 官方推特发言道:“游戏规则早就被 1inch 高质量的聚合和作为 solver 模型先驱的 CoWSwap 改变。UniswapX 是不错,但它真的不是第一个,也不是第二个。”
CoWSwap 发图直指其 Intent Based Trading 先驱的地位。那么,CoWSwap 到底是什么?与 UniswapX 有什么区别?同走聚合器的 solver model 路线,为何市场声音指控 UniswapX “抄袭“ CoWSwap 而不是 1inch fusion。
我们从诞生背景,到机制解读、数据表现,再到与 UniswapX 和 1inch fusion 的 9 个产品差异,以庖丁解”牛”的精神,一起探究下 CoWSwap 究竟是什么,怎么样,并回答“抄袭”风波。
Defi 用户的“小偷”:MEV 攻击
DeFi 用户一直是 MEV 攻击的受害者,比如抢跑(front-running)、尾随(back-running)和三明治攻击(sandwich attack)。CoWSwap 协议提供了 MEV 保护,力求减少用户的 MEV 损失。展开之前,让我们简单了解一下 MEV 攻击是什么。
试想这一情景:等待,你终于得到了理想的交易机会!打开 Uniswap,随着 Pending 结束,你发现钱包收到的代币比预期少了许多。打开区块浏览器,有人在你买入前拉高了价格,并在你买入后迅速卖出,你被赚走了差价。没错,你遭受了 MEV 攻击。
MEV 攻击发生是由于提交交易到上链的“异步”。当用户在以太坊上提交交易时,它不会立即添加到下一个区块。相反,它首先进入“内存池”,这是所有待处理事务的集合。然后,验证者从内存池中提取交易,并在构建时将它们添加到下一个区块中。由于内存池公开,搜索者有机会向验证者支付费用以特定方式订购交易,通过排序从用户手中提取价值。
图源:CoWSwap Docs
黑森林的引路人:CoWSwap 的 MEV 保护
Better than the best price. —— CoWSwap
CoWSwap 的名字好像跟“牛”(Cow)有关,但这里的 CoW 指的是“需求巧合”(CoW, Coincidence of Wants),指的是一种特殊的交易匹配的方式。具体来说,“需求匹配”是一种经济现象,“两个人同时持有对方需要的东西,双方可以直接交易,无需货币作为媒介”。
在 CoWSwap 协议中,用户不需要发送一个 transaction 来提交一个交易,而是需要用户发送一个签名的订单(或者说,交易意图)。该订单指定他们愿意在特定时间段内在交易中获得的最大和最小输出。用户并不在乎也并不需要在乎它是如何被执行的。接着,在链下签名的订单会被交给求解者(Solver),他们竞相在订单生效时找到最佳执行路径。位首的求解器将获得执行批处理的权利。这也意味着,执行订单所需的 Gas 由 Solver 承担,用户在交易失败的情况下(譬如没有在截止时间前找到路径满足承诺的价格),无需支付 Gas。
CoWSwap 的 MEV 保护具体可以总结为以下三点:
1. 批次拍卖(Batch Auctions)
当两个(或多个)交易者相互交换加密货币而不必使用链上流动性时,就会发生“需求巧合”。CoW 的发生让订单打包在一同一批次可以实现效率提升。具体体现在:省去链上成本如 LP fee,Gas fee,链下 P2P 的方式还能避免滑点产生和链上可能发生的 MEV 攻击。
CoWSwap的技术负责人,Leupold 表示:由于 DeFi 领域各种代币的“寒武纪爆炸”,市场流动性高度分散。为了在各种各样的代币对之间创造流动性,做市商需要“介入并提供流动性”。如果能在每个区块中找到需求巧合,就可以重新汇总分散的流动性空间。
2. 链下求解
由于第三方代替用户处理交易订单,隐藏了内存池的可见性,MEV 的所有风险均由第三方承担。如果第三方更好的执行路径,将以更好的价格完成订单,否则按照签署的最差报价完成订单。所有管理交易的风险和复杂性,由专业求解器处理。
用户只需要表达“交易意图”,无需在乎执行过程。对于不知道如何“提升”自己在公共内存池中优先级的不成熟的用户,受到了 CoWSwap 该机制的保护。不必担心身处在“黑暗森林”中。
3. 统一清算价格
如果有两个人在同一批次中交易相同的资产,协议会强制要求每批代币只有一个价格。两笔交易将以“完全相同的价格”清算,没有先到先得的概念。即使一个区块具有相同代币对的多笔交易,每笔交易也会获得不同的价格,具体取决于与池的交易顺序。但 CoWSwap 协议要求统一清算价格,因此重新排序是没有意义的。根据 Leupold 的说法,这种方法消除了“各种MEV”。
CoWSwap 的机制颇为新颖,在 Intent 概念提出之前,就暗自大致符合了 Intent 概念下对 DEX 的要求,各路研报亦对该架构高度评价。但很明显,CoWSwap 并不是名流,提起聚合器更多人想到的是 1inch 等。原因几何?
我们总结了 CoWSwap 的缺点,具体体现在以下三点:
1. 不适于不活跃的币种
理论上,该机制能给用户呈现更好的价格,但是也可能导致用户的损失。对于交易活跃的代币,订单大概率可以在批次中找到“需求巧合”优化价格。对于在交易不活跃的代币(此处假设为 ETH),Solver 就有可能以滑点的最大限度成交,甚至超过单一流动性源中会造成的滑点。
2. 额外的协议费用
对于流动性充足的小额交易,Cow 的协议收入可能会对用户造成损失。
3. 不支持所有代币
CoWSwap 并不支持所有代币的交换,只支持符合 ERC-20 标准的代币。而且,有些代币虽然实现了典型的 ERC20 接口,但在调用传输和传输从方法时,接收方将获得的实际金额将小于指定的发送量。这会导致 CoWSwap 的结算逻辑出现问题,如 $Unibot 就不支持在 CoWSwap 交易。
透过数据看本质:细窥 CoWSwap 的市场表现
理想总是很丰满,但现实骨干。透过数据才能对 CoWSwap 的市场表现一探究竟。结合 CoWSwap 的优势特点,我们将从抗 MEV 性能、交易量、市场份额等角度探究 CoWSwap 的市场表现。
1. 抗 MEV 性能
对比在 Uniswap 和 Curve 上发生的三明治攻击,通过 CoWSwap 路由受到攻击的交易数量大大减少;对比 1inch 和 matcha,CoWSwap 在 2022年有最少的三明治攻击次数和最低的交易量比例。
来自链上 MEV 分析团队 @EigenPhi 的研究报告。
2. 交易量与市场份额
聚合器赛道横向对比。CoWSwap 交易量排名第四,用户数量排名第九,平均交易规模排名第五。其中,1inch 均位榜首。
https://dune.com/murathan/uniswap-protocol-and-aggregators
横向对比聚合器市场份额。1inch 基于广大的用户数量占主导地位,市场份额约为 70%,CoWSwap 次之,市场份额约为 10%,其后是0xAPI,Match,Paraswap。CoWSwap 的市场份额呈增长趋势。
https://dune.com/murathan/uniswap-protocol-and-aggregators
CoWSwap 每月交易量表现波动较大,截止 9 月 1 日,总交易量达到 $27.4B。
https://dune.com/cowprotocol/cowswap
3. DAO 选择
1/3 的 DAO 的交易量都在 CoWSwap 上发生。因为 DAO 时常需要大额的,抗 MEV 的交易,能满足 DAO 的特殊订单需求的平台,如限价单和 TWAP、Milkman ( 7 月 10 号,Milkman 被 AAVEDAO 使用,用于监控将 326.88 wETH 和 $1,397,184 的 $BAL 换作 B-80BAL-20WETH 的滑点)。该比例仍在增长,8 月份,CoWSwap 甚至占到了一半以上(54%)。
https://dune.com/queries/2338370/3828396
4. Balancer 提供激励
Balancer 3 月 24 日发布 [BIP-295] 提案为 CoWSwap 的 solvers 提供 ~50-75% 的费用折扣。CoW 路由 balancer 的交易量排名第三,仅次于 Uniswap 与 Curve。
https://dune.com/sixdegree/dex-aggregators-comparision
“抄袭”风波
“CoW Swap is the first DEX Aggregator offering some protection against MEV”
—— CoWSwap About
CoWSwap 的前身 Gnosis Protocol V1 于 2020 年推出。它是第一个通过批量拍卖提供环形交易的 DEX。UniswapX 和 1inch fusion 采取了与 CoWswap 相同的架构:签名 Order —— 将交易创建外包给第三方 —— (竞争激励第三方返还 MEV 给用户)。UniswapX 推出时,指控其抄袭 CoWSwap 的声音不绝于耳。1inch 推出时就被戏称为 CoWSwap 的魔改版。
今天就来探讨一下三者的区别,总结为九个方面。
1. 第三方名字
- UniswapX:filler
- CoWSwap:solver
- 1inch fusion:resolver
职责相同:为用户签署的订单提供解决方案,打包在一个 transaction 中打包进区块。
2. 执行过程
- UniswapX:赢得报价的 filler 在一定时间内有执行的优先权,之后进行荷兰拍。
- CoWSwap:将所有 solver 的解决方案提交给 Driver 排名,一旦投标结束,即所有解决方案都已提交并排名,播报排名信息,通知排名第一执行
- 1inch fusion:随时间增加 resolver 的数量,同时价格衰减。
1inch fusion 在最初一分钟只有 1 个 resolver,“resolver 会等到价格降低再执行” 被诟病。用户等待时间延长。
注:目前提案已通过,增加 resolver 的数量为 10 个
3. Batch 形成
“Leopold contends that CoW Swap’s design still offers better pricing because it batches trades rather than processes them individually like UniswapX. Batching many different trade requests together provides better MEV resistance, he said.”—— CowSwap CTO
- CoWSwap:将链上所有未结订单,打包成一个 batch 进行荷兰拍,可以组合订单匹配 CoW。
- UniswapX:fillers 通过 API 自行捡拾一个或多个订单做处理。
介于订单的复杂性,CoWSwap 需要将所有未结订单打包成一个 batch ,在一个区块时间之内能否求出最优解是难以确定的,甚至可能不存在最优解。
4. 订单参数化程度
- UniswapX:用户有更多的自由(也可能带来更多的复杂性)来定义参数,包括拍卖的衰减函数、初始荷兰订单价格等。
- CoWSwap 和 1inch fusion:用户只需要提供交换代币和滑点。CoWSwap 还可以设置订单的持续时间。
5. 第三方的流动性来源不同
- UniswapX:允许任何 filler 能接触到的流动性源,即允许私人流动性。
- CoWSwap:CoW 和外部流动性源。
- 1inch fusion:通常是大型的做市商。
CoWSwap 更多的是去找同一时刻的对手盘,1inch 做市商担任 resolver 可以选择直接成交。UniswapX 也可以允许专业做市商介入,有望解决 1inch 被诟病的“ resolver 等到价格降低再执行”,抢占 1inch 的市场份额。
6. 去中心化程度
- UniswapX:绝对 permissionless,任何人可以通过 API 访问未结订单,发送给 Reactor 与其他 filler 的方案竞争。(除非用户指定了 filler)
- CoWSwap:要么通过创建 $1M 的 USDC/COW 的池子被列入白名单;要么根据 DAO 的标准被 Cow DAO 列入白名单。
- 1inch fusion:根据 $1INCH 代币质押数量,加权质押年限后,选择排名前十的地址作为 Resolver。需要注册,进行 KYC 流程,并保持足够的余额来支付订单费用。
注:CoWSwap 目前处于 phase 1 Cow 项目方授权;phase 2 需要质押代币,DAO 投票同意;phase 3 允许任何人成为 solver。
7. 报价来源不同
- UniswapX:允许 filler 报价(RFQ),即允许 filler 初始化荷兰拍的初始价格。
- CoWSwap、1inch fusion:API 报价。
8. UniswapX 使用 RFQ 和考虑使用名誉系统
- UniswapX:允许订单在一定时间内指定 filler 执行订单(之后进行荷兰拍),以此激励 filler 向 RFQ 系统报价。为了限制 filler 对这种独家权利的滥用,可能引入相应的声誉或惩罚系统。
- CoWSwap:每周一次奖励上周成单率最高的 Solver 实现激励。
9. Uniswap X 推出跨链聚合功能(尚未实现)
- UniswapX:可以扩展到支持跨链交易,交换和跨链被合并成一个单独的动作,不需要交换者直接与桥交互,就可以将原始链上持有的资产交换到目标链上所需的资产。
- CoWSwap、1inch fusion:仍在讨论中。
写在最后
总的来说,CoWSwap 是一个令人关注的项目。将订单外包给第三方 Solver 求解与 L2 的扩容“哲学”颇有相通之处:执行 off-chain,而最终结算和验证 on-chain。CoWSwap 巧妙地使得交易可以成为一个庞大的易货经济,解决流动性的碎片化问题,点对点交易无法满足的部分再动用链上的流动性。
在 Intent 的实施其中一个要求就是,任何人都可以作为 Solver 从而在竞争中提升效率。CoWswap 的架构无疑与之暗合。将所有管理交易的风险和复杂性,由专业求解器处理。受到 CoWSwap 机制的保护,用户不必担心在黑暗森林中“行走”。这点和 DODO V3 的哲学一致,在 DODO V3 中,流动性提供者的资金由专业做市团队管理,无需亲自考虑策略。
CoWSwap 在解决 MEV 问题取得了不错的成果,Intent 叙事下,市场份额亦呈增长趋势。同时也遭遇协议费、不支持所有代币等大规模应用的阻力。作为 solver 模型的先驱,UniswapX 和 1inch fusion 的机制更像在其基础上的创新,1inch 将 resolver 依次放出,对接专业的做市商;Uniswap 的 RFQ 系统允许用户先指定 filler,而不是同时提出方案。期待 CoWSwap 的框架在去中心化交易聚合器领域推动更多创新出现,期待 CoWSwap 有长足和出色的发展。
参考文献
https://ld-capital.medium.com/the-future-of-mev-is-the-future-of-the-crypto-has-the-importance-of-the-mev-track-been-76bb36caf9f4
https://app.aave.com/governance/proposal/?proposalId=267
https://eigenphi.substack.com/p/sandwich-mevs-impact-on-cow-swap
https://snapshot.org/#/balancer.eth/proposal/0xd991e9f3c6edd148bd37c600d7ada3d28db1758e3cfd703c02d290f502906f05
https://blog.cow.fi/what-are-cows-on-cow-swap-e72baaa4678a
https://blockworks.co/news/cow-swap-mev-problem
https://swap.cow.fi/#/about
https://twitter.com/RaccoonHKG/status/1607030613495939074