0x协议:每次升级背后的取舍
0x是以太坊上历史最悠久的DEX基础设施协议之一,自2017年发布白皮书以来已历经多次重大版本迭代。每一次0x升级都不是简单的功能叠加,而是对链上交易效率、流动性来源和开发者体验的深度重构。本文逐版本拆解0x的演进逻辑,帮你理解这个协议为何能在竞争激烈的DEX基础设施赛道持续存活并演进。
v1:链下撮合,链上结算的起点
0x v1于2018年主网上线,确立了协议最核心的设计哲学:订单在链下传播,结算在链上执行。做市商通过中继器(Relayer)广播限价订单,Taker发现合适订单后在链上调用fillOrder完成交易,结算过程完全透明可验证。
v1的局限在于:每笔成交都需要独立的链上交易,批量成交效率低;订单格式较为固定,难以支持复杂的流动性来源;此外ERC20标准批准(approve)机制在当时尚未统一,用户体验参差不齐。
v2:批量成交与元交易
0xv2在2018年末推出,重点解决了v1的批量处理瓶颈。核心改进包括:
batchFillOrders和marketBuyOrders:单笔链上调用可以跨多个订单完成成交,显著降低了聚合交易的gas成本- 元交易(Meta-transactions):允许第三方代付gas,用户无需持有ETH即可完成代币兑换,这在2018年DApp用户教育成本极高的背景下是重要突破
- 标准化订单格式:统一了不同中继器之间的订单结构,促进了生态互通
v2奠定了0x作为流动性基础设施的地位,多个DEX前端开始基于其合约构建交易界面。
v3:协议费用与流动性激励
0xv3于2019年底上线,是0x商业模式上的重要转折点。这一版本引入了**协议费用(Protocol Fee)**机制:每笔成交需支付以ETH计价的小额协议费,费用进入DAO金库,用于激励ZRX质押者和资助生态发展。
同期还引入了流动性池质押:ZRX持有者可以将代币质押到特定的做市商池,分享该做市商产生的协议费收入。这是早期DeFi中将代币持有者收益与协议使用量直接挂钩的典型设计。
v3的主要技术改进:
- 更紧凑的订单编码,节约calldata gas
- 支持通过
executeTransaction批量提交多笔元交易 - 资产代理合约(AssetProxy)解耦,支持更多资产类型
v4:模块化架构与gas效率极致压缩
0xv4于2021年初发布,是迄今最彻底的一次架构重写。核心变化是放弃单一大合约,转向模块化特性合约(Feature Contracts):
每种订单类型(限价单、RFQ订单、批量购买等)都有独立的特性合约,通过中心化代理合约路由调用。这一架构带来:
- 按需升级:只需替换特定特性合约,无需全量迁移
- gas大幅下降:v4的
fillLimitOrder比v3同等操作节省约30%的gas,0xgas优化效果显著 - RFQ(Request for Quote)原生支持:做市商可以基于请求实时报价,而非依赖挂单池,更贴近传统金融的询价成交模式
v4还引入了Transformer概念:在成交前后插入任意的链上转换逻辑,例如自动将ETH包装成WETH、在成交后将代币存入Compound赚取利息等,实现了"可编程成交流程"。
0x API:聚合层的崛起
单纯的协议升级并不足以描述0x的演进全貌。在v3至v4过渡期间,0x团队推出了0x API(后更名为Swap API),将协议自身流动性与Uniswap、Curve、Balancer等外部AMM整合,形成路由聚合层。
这意味着调用0x合约的成交,可能实际上拆分到多个流动性来源完成,用户拿到的是聚合后的最优价格。0x更新的方向已从单纯的链上订单簿演进为全栈流动性基础设施。
各版本对比
| 版本 | 发布年份 | 核心创新 | 主要局限 |
|---|---|---|---|
| v1 | 2018 | 链下撮合+链上结算 | 无批量成交 |
| v2 | 2018 | 批量填单+元交易 | 固定大合约难升级 |
| v3 | 2019 | 协议费用+ZRX质押 | gas仍较高 |
| v4 | 2021 | 模块化+RFQ+Transformer | 学习曲线陡 |
对开发者的实际影响
如果你在0x生态上构建应用,理解版本差异至关重要:
- v2合约已停止维护:链上流动性几乎为零,不建议新项目集成
- v3合约仍有历史流动性,但新功能不再更新
- v4是当前推荐版本:Matcha、Coinbase等主流聚合前端均基于v4构建
- 0x移除流动性操作在v4中通过
cancelLimitOrder或到期自动失效,无需额外链上操作
对于关注底层机制的开发者,0x v4的开源合约值得深入研读,尤其是Transformer机制对可组合性的影响。
升级背后的权衡
回顾0x四个版本的演进,可以提炼出几个贯穿始终的设计张力:
去中心化 vs 效率:v1-v2强调完全无许可的链下订单传播;v4的RFQ模式引入了做市商白名单,部分牺牲无许可性换取更好的成交质量。
单一合约 vs 模块化:v1-v3的单体合约升级成本高,v4的模块化解决了这个问题,但也引入了代理合约的额外调用层。
协议收入 vs 用户成本:v3引入协议费用,直接推高了交易成本;v4通过gas优化部分抵消了这一影响。
0x的每次升级都在这些张力之间寻找新的平衡点,这也是协议持续演进而非停滞的根本原因。