I. 前言
1620 年,一艘名为五月花号(Mayflower)的英国船只驶离英格兰,五月花号带着102名乘客和大约30名船员驶向美国,他们离开英格兰的原因是认为英格兰教会不仅**改革而且过于腐败,所以决定穿越大西洋来到北美,在那里他们将建立属于自己的新**社区。
2017 年7月,Hayden Adams 被他大学毕业后的第一个雇主西门子解雇,彼时他还是一位毫无区块链开发经验的机械工程师。2018年8月,在 Hayden 失业的第13个月时,Hayden 与他的伙伴们完成了 Uniswap v1 的开发并在以太坊主网上线,从此成为 DeFi 世界里最不可或缺的拼图之一。而在本文着笔的48小时前,Uniswap 发布了他们的第四版迭代。我们在第一时间内浏览了他们的白皮书和合约代码,试图分析这一酝酿两年之久的更新较于前代有哪些坚持与变革。
II. Uniswap 的坚持
坦率地说,目前 v4 的合约还不是一个开发完成的状态,可读性和可性都受到了一定的影响。但是我们还是可以确认,v4 保留了很多前代验证为有效的特性:
- 恒定积公式 x*y = k 沿用至今;
- 限价流动性依然基于tick这一刻度体系来搭建;
- 流动性分布依然是水平分布在限价区间内,每个池的流动性深度依然是该市场内所有参与的流动性堆叠的结果;
可以说经过两年的市场验证,Uniswap v3 证明了其在资金利用率上的优势,限价流动性单这一极具创造力的设计在 v4 中被沿用。
III. Uniswap 的革新
结合白皮书和合约代码,我们欣喜地发现 v4 在上述坚持的基础上完成了诸多创新和改变,而这些革新主要着力于以下四个方面:
- 全新的合约结构
- 巧妙的账本设计
- 更高的开发者自由度
- 对于流动性提供者更多的保护
接下来,我们将从这四个方面入手,详细讨论其设计和工程实现上的巧思:
3.1 全新的合约结构
熟悉 Uniswap 过往版本代码的人都知道factory-pool这一自其 v1 沿用至今的合约架构,可以说这个架构至今都是目前 DeFi 世界里使用最广泛的合约结构。而 Uniswap 在 v4 中决定弃用,引入了新的单例合约(Singleton)结构,旨在**限度的降低创建流动性池以及跨池(合约)调用中的 gas 消耗。
我们可以看到,v4-core 中仅剩下PoolManager一个合约承担着核心的业务逻辑,而PoolManager将承担着协议所有流动性汇算的任务,使用PoolKey这一字段来索引对应的币对市场,而 AMM 曲线以及流动性的相关计算都抽象到了 libraries 库合约中。
在合约结构方面,同样值得一提的是 v4 的流动性仓位数据的存储与封装也产生了巨大改变:
- 在 v2 中,由于流动性全区间分布,协议使用的是同质化流动性代币(ERC-20)作为流动性份额的凭证;
- 在 v3 中,因为限价流动性的引入,仓位之间无法继续使用 ERC-20 来代币化流动性,而是选择在对应的流动性 Id 相关数据外层封装了非同质化代币(ERC-721),并使用NonfungiblePositionManager这一合约进行流动性相关操作的管理。
- 而在 v4 中,我们惊讶地发现,流动性仓位不再使用代币化的方法进行封装,而是使用地址进行仓位管理。
可以说 v3 在流动性仓位数据外层进行封装 ERC721 凭证的操作是比较割裂的,而 v4 这种简单直接地将流动性数据与地址绑定,虽然可能会丧失一些流动性代币相关的可组合性,但是无论从 gas 经济性上还是工程美学上都有极大的进步。
3.2 巧妙的账本设计
闪电记账(Flash Accounting)可以说是 v4 中**有开创性的设计之一。回顾过往市场中绝大多数流动性协议,它们的交易和流动性相关操作都伴随着代币转移,流程无外乎:安全性检查 -> 根据设定目标计算代币转换的数量 -> 更新账务数据 -> 代币转移。而 v4 中颠覆了这一固有的编码逻辑,利用回调函数(Callback Function)的特性,构建了一套复式记账账本。
什么是复式记账法?复式记账法是以资产与权益平衡关系作为记账基础,对于每一笔经济业务,都要以相等的金额在两个或两个以上相互联系的账户中进行登记,系统地反映资金运动变化结果的一种记账方法。举一个简单的例子,Alice 从 Bob 那里借款 1000 USDC,这一笔经济活动将被记录成:从上面的表格中,我们很好理解:资产 = 权益 – 负债。(此处负债为**值)
我们把这个例子拓展的更复杂一些:Alice 从 Bob 那里借款 1000 USDC;Bob 从 Carl 那里借款 1 ETH;Carl 又向 Alice 借了 1000 DAI,那么我们的复式记账表格将会是:
显然,Uniswap 的流动性池是交易者进行借贷的对象,而 swap 交易的本质则是:在交易完成后,流动性池与交易者彼此之间债务两清。也就是说当 Alice 试图使用 1800 USDC 购买 1 ETH 时,她与流动性池的关系也可以使用复式记账法来记录:
如果此刻 ETH-USDC 池中的 ETH 恰好价值 1800 USDC,那么在 swap 交易结束后,Alice 与 pool 互不相欠,交易可以成功执行。而在 v4 中,每个操作都会更新一个称为delta的内部净余额,而这个内部净余额就可以看作我们上面所说的资产。每笔交易,无论其跨过多少个交易对,都需要在完成时保证delta为零,否则将被驳回。v4 中新增的take()和settle()函数便可用于借出或存入资金到池中,协议便通过这两个函数来强制执行池的结算和偿付,以保证在调用结束时PoolManager与调用者之间互不相欠任何代币。
同时,协议引入了 ERC-1155 这一半同质化代币,并将协议的债务进行代币化。也就是说,当交易者或者 LP 在任一操作中导致协议对其产生欠款,他可以不使用take()而是使用mint()函数来 1:1 的铸造对应资产的 ERC-1155 代币来获得可刚性兑付的权益凭证。基于该权益凭证的激励或者衍生产品将会有极大的创造空间,而这也意味着,将会有更多流动性被留在流动性池内,为交易者提供更好的流动性深度和交易体验。
单例合约结构和闪电记账这两个特性的结合使得在多个 v4 池之间更高效地进行路由成为可能,降低了流动性碎片化的成本。
3.3 更高的开发者自由度
在 v4-periphery repo 中引入钩子hooks合约,hooks是在流动性池生命周期的各个时间节点运行的代码片段。开发者可以利用给出的BaseHook合约构建属于自己的个性化交易操作。
Uniswap v4 目前支持八个这样的钩子回调:
- beforeInitialize / afterInitialize
- beforeModifyPosition / afterModifyPosition
- beforeSwap / afterSwap
- beforeDonate / afterDonate
也就是说无论是 LP 还是交易者都可以在流动性池中操作时利用定制化的hooks来执行核心逻辑以外的业务逻辑。这无疑为很多原本通过链下中心化服务(如 Gelato Network)才能实现的功能提供了链上操作的可能性:
- 动态手续费
- 基于时间加权平均做市商来进行更低滑点的 swap 拆单
- 链上限价单
- 自定义链上价格预言机,如几何平均预言机(Geomean Oracles)
在此之上,我们可以展开想象,更多场景也有了实现空间:
- 动态手续费可以不是简单地根据时间线性变化,可以根据单笔 swap 产生的tick跳跃数量来量化波动率,从而动态改变手续费,实现对于 LP 无常风险的对冲
- 链上量化交易策略和流动性调仓策略
- 自动手续费复投
此外,引入hook后,池的数量预计将大幅增加,这也使得单例合约结构和复式记账的新设计有更多的用武之地,即,不同的设计更新之间是互相牵连的。
综上所述,v4 的确继续践行着其作为 DeFi 基础设施的使命,将自己的核心业务逻辑从纷繁的产品需求中抽象出来,将无尽的想象空间交给社区和开发者,引领更多的人参与进来。这一点上,Uniswap v4 做得比前代以及一众竞品更好。
3.4 对于流动性提供者更多的激励
v3 被一直诟病的缺乏对于 LP 的激励和保护在 v4 中有所改观。
PoolManager中内置的donate()方法将允许用户、协议外集成者和钩子直接以池中任一代币向在价格范围内的 LP 支付费用。这一新机制可以将 MEV 内化到 LP 的回报中,以便 LP 可以从 MEV 中受益。
3.5 其他协议的影子
Uniswap 作为 DEX 赛道的龙头,一直站在 AMM 研究的最前沿,但是在 AMM 的研究上其他 AMM 竞品也有各自的创新,在 Uniswap v4 这次的更新上我们也能看到其他协议的影子:
- 如 Uniswap v4 的 Singleton 和 Flash Accounting 结构与Balancer v2的Vault <-> Pool logic结构的高度一致,都采用了虚拟账本的形式对多个 Pool 进行统一记账来降低交易路由过程中的gas消耗。
- 在动态手续费、链上原生限价单,以及使用 ERC-1155 来具象化流动性是刚刚上线的Joe v2.1中已经实现的功能
- 同时,如 3.4 节所提到的内部化 MEV,LP 们从原本被 bots 获取 MEV 的对手方,因为 hooks 的存在,可以将它们纳入到自己的价值循环体系中,叠加 Flashbot 或者 Eden Network 等 MEV 拍卖/分配协议,可以把激励二次分配到提供了有效流动性的 LP 手中。这一点上,尽管Oosis并非 EVM 生态中的产品,但是 Skip Protocol 为其开发设计的 ProtoRev 也有很多借鉴之处。
IV. 思考
无疑,当下的加密市场处于深熊阶段,流动性萎缩叠加 SEC 监管升级都如同乌云笼罩在整个市场上空。与此同时,Uniswap 的交易量已经连续四个月超过 Coinbase,在监管压力之下,**的 DeFi 产品愈发证明其价值。时至今日,我们依然可以毫不吝啬地说,Uniswap 是以太坊上最伟大的用例之一。
故事回到本文的最开始,经过10周艰苦的海上航行,五月花号抵达美国,1620年11月21日在今美国马萨诸塞州科德角附近抛锚靠岸。当他们到达北美以后,1620年的冬季格外寒冷,102名乘客中有一半因病去世。但是活下来的50人继续在北美新英格兰扎根生活,生养众多,到21世纪他们的后裔已经达到3,500万人。在他们的后代中有很多美国**人物,包括大约五分之一的美国总统,例如亚当斯父子总统,小罗斯福总统,布什父子总统等政治、法律界人物,以及许多文艺界、科学界、宗教界人物。而在五月花号前往北美的航程中,这些乘客们在会议中签署了**《五月花号公约》,这个公约成为160年以后美利坚合众国成立时的宪法精神基础。
2017年,在 Hayden Adams 刚失业的那几个月里,他学习了智能合约的编写,又先后结识了 Vitalik Buterin,Philip Daian,Dan Robinson 等等与他志同道合的朋友,在他们的影响和帮助下,秉持着抗审查和开源的加密精神,Hayden 建造了 Uniswap,这艘 DeFi 世界的五月花号。而今天,它也即将再次启程,继续向着未知之境进发。
资料
- https://github.com/Uniswap
- https://blog.uniswap.org/uniswap-v4
- https://github.com/Uniswap/v4-core/blob/main/whitepaper-v4-draft.pdf
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
文章标题:Builder DAO:Uniswap v4 —— DeFi 五月花号再次启程
文章链接:https://www.btchangqing.cn/553690.html
更新时间:2023年06月17日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。