【Odaily星球日报】读透热门DeFi项目Curve:它为什么重要?为何被「攻击」?( 二 )


简而言之 , Uniswap 具有两个功能:注入流动性和提取流动性 , 对应的两个角色就是做市商和交易者 。 注入流动性的做市商可以获得交易池中手续费分成 , 而提取流动性的交易者的需求是进行代币之间的兑换(交易) , 并支付一部分交易费用 。
举个例子 , 一名用户钱包中有 ETH 和 DAI , 就可以把 ETH 和 DAI 按照最新的兑换比例投入 Uniswap 的资金池成为其中的做市商 。 假设他按照新的兑换比例投入了 1 个 ETH 和 200 个 DAI 。 当有一名交易者希望用 DAI 换成 ETH 时 , 就可以进入这个池子进行兑换 , Uniswap 的「做市商算法」会计算出这个交易者可以买到多少 ETH 。 和中心化交易所一样 , Uniswap 也会在交易中产生「滑点」 , 用户交易资金越大 , 滑点越大 , 也就是交易成本越高 。 当交易完成 , 这名交易者付出的交易费用 , 将会按照池子中所有做市商投入资金的比例进行分配 。
Uniswap 采用了一个叫「恒定乘积做市商模型」(Constant Product Market Maker Model)的做市算法 , 逻辑非常简单 , 所以在大多数的通用场景中可以满足需求 。
不过稳定币之间的兑换和其他类型的代币兑换不一样 , 值得专门对待 。 美元稳定币的价格是锚定 1 美元的 , 虽然会因为市场波动有些许的变化 , 但长期来看各个美元稳定币之间都是等价的 , 无论是抵押生成的 DAI、合法且有实体资产背书而发行的 USDC、PAX、TUSD , 还是号称「有实体资产背书」的 USDT 。 既要考虑到「稳定币之间很多时候是等价的」 , 也要允许「稳定币之间存在价格差异」 , 当这两个要素组合在一起 , 就需要一个完全不同于 Uniswap 的机制 。
由 Curve 团队发明的「StableSwap」(稳定互换)机制 , 就是专为稳定币之间互换设计的做市商算法 。 如果将他们的算法绘制成曲线(Curve) , 那这就是介于 Uniswap 曲线和恒定价格之间的一条曲线 。 如下图:
【Odaily星球日报】读透热门DeFi项目Curve:它为什么重要?为何被「攻击」?
本文插图
Uniswap 曲线、恒定价格与 StableSwap 曲线
读者们先不用急着理解上图中的曲线或者公式 , 因为目前 StableSwap 的所有细节并没完全公开 。 但是我们可以给出一些已知的信息 , 帮助读者理解这个算法的原理 。
我们不妨先做两个假设:

  • 假设 1:如果所有稳定币之间的价格保持恒定为 1 美元 , 那稳定币 X 和稳定币 Y 就是等价的 , 可以无损互换 。 在上图中 , 如果初始状态下 , 稳定币 X 与稳定币 Y 各有 5 枚 , 那基于这个假设建立起的交易池的兑换比例就是 X+Y=10 , 也就是上图的那条虚的直线 , 也可以称为「恒定价格」做市商 。 对于需要兑换的交易者而言 , 用 3 枚 X 就能换到 3 枚 Y , 但这个池子有容量上限 , 必须 X<=10 且 Y<=10;
  • 假设 2:如果稳定币之间采用 Uniswap 的恒定乘积做市商模型 , 也就是图中最外部的那条虚的曲线 , 如果稳定币 X 与稳定币 Y 在初始状态下各有 5 枚 , 那条曲线就是 XY=25 , 也总算可以交易超过 5 枚代币了 , 但是随着价格波动 , 离「恒定价格」做市商的距离非常远 , 也就是价格波动非常明显;
Curve 设计的 StableSwap 机制介于上述两者之间 , 既考虑到了「稳定币之间很多时候是等价的」(也就是假设 1) , 也允许了「稳定币之间存在价格差异」(也就是假设 2) 。 换句话说 , 这是一个比 Uniswap 算法更接近「恒定价格」互换的做市商算法 。
StableSwap 最大的优势是滑点更低 , 也就是交易成本更少 。 StableSwap 的白皮书中绘制了该算法和 Uniswap 的恒定乘积算法中 , 卖出数量和价格变化的函数曲线 , 其中 StableSwap 更能保持在 1 美元 , 而 Uniswap 的算法随着卖出的数量增加 , 已经把价格快速压低了 。


推荐阅读