撰文: 潘致雄,链闻研究总监
一个新的 DeFi 项目Curve.fi目前是去中心化金融这个赛道中最火爆的明星。这个看上去非常「简单」、甚至有些「简陋」的新项目,只解决一个需求:稳定币之间的互换。
你没有看错。
稳定币之间的频繁互换,是不少业内人士的刚需,因为 USDT 出入金更方便,而 DAI 和 USDC 更合规。但是考虑到手续费高和流动性差,转换成本不低。Curve.fi 就要解决这个痛点。这个初创项目开发了基于以太坊的自动交易协议,专注于解决这个问题,同时又利用了开放式金融的可组合性,以此激励平台的贡献者。
简单来说,Curve 是一个利用了特殊算法、结合了「特定版 Uniswap」与「Compound」的去中心化交易所协议。称其为「特定版 Uniswap」,是因为该协议仅仅解决稳定币之间的互换。
Curve 已于今年 1 月上线了以太坊主网,但仍处于早期开发阶段,截止链闻发稿时,未公布合约审计结果。其界面也非常简陋 (或者也可以说是「独特」) ,让人不禁怀疑这是开发者故意这样设计,模仿了 80 年代的电脑界面以体现目前的开发阶段。当然,这样似乎也能将不了解该产品风险的用户拒之门外。
Curve.fi 的复古界面
不过 Curve 的发展速度却超过了很多人的想象。上线仅一个多月,Curve 已经被多个以太坊的去中心化聚合交易所接入。以1inch这个帮助用户选择最优路径 (滑点最低) 的交易所为例,2 月 17 日至 23 日当周,1inch 周交易量中排名第一的当属 Curve,占比 60%,是 Uniswap 的 3 倍、Kyber 的 6 倍。虽然近日数据有些滑落,但依旧占比很高。这多少也体现出,对用户而言,稳定币互换的需求非常迫切。
用户们喜欢用 Curve 来互换稳定币,是因为 Curve 的交易成本和滑点都极低,毕竟这才是稳定币的交易者最关心的因素。Curve 的自动做市算法是为稳定币交易场景定制的,比 Uniswap 的通用型算法更聚焦,所以通过该做市算法实现的交易滑点较低。另外,Curve 的交易手续费仅为0.04%,相比之下,Coinbase 的 DAI/USDC 交易对的手续费为 Curve 的12.5 倍。
另一方面,为 Curve 注入资金的用户还能获得超高的年化收益。为了增加协议中的资金量以满足更大规模的交易需求,Curve 为提供流动性的用户分配所有的手续费收益,并通过聚合第三方协议来获得额外收益,让投入资金的用户有机会获得约20%的年化收益率 ——相比之下,Compound 上 DAI 的年化收益目前在 8% 左右。
不过,上周末在 Curve 上发生了一起「用户损失」事件,更是把这个新产品推上了 DeFi 社区争议的风口。大家一开始都以为是由于 Curve 的流动性问题导致了这名用户损失 14 万美元,但后来根据交易行为的推测,这名用户本身可能就是想「攻击」协议并窃取其中的资金。这个过程非常复杂,我们会在后文专门分析。
不过无论如何,Curve 的产品的确还处于早期阶段,产品逻辑中的滑点保护功能尚未完善。在后文中,我们也会一一道来。
整体而言,Curve 更像一个专为稳定币交易而定制的「Uniswap」。
Uniswap 是以太坊去中心化交易协议的基础设施,优点为产品逻辑简单,而且因为没有管理员特殊权限(admin key), 被社区认为是去中心化程度较高的协议。Uniswap 准确来说可以定义为「自动化做市商」或「流动性池」,英文为「AMM」 (Automated Market Maker) 或「LP」 (Liquidity Pool) 。其他一些去中心化交易协议,如 Kyber、0x API,也会将部分交易分配至 Uniswap 完成。
简而言之,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 曲线和恒定价格之间的一条曲线。如下图:
Uniswap 曲线、恒定价格与 StableSwap 曲线
读者们先不用急着理解上图中的曲线或者公式,因为目前 StableSwap 的所有细节并没完全公开。但是我们可以给出一些已知的信息,帮助读者理解这个算法的原理。
我们不妨先做两个假设:
StableSwap 最大的优势是滑点更低,也就是交易成本更少。StableSwap 的白皮书中绘制了该算法和 Uniswap 的恒定乘积算法中,卖出数量和价格变化的函数曲线,其中 StableSwap 更能保持在 1 美元,而 Uniswap 的算法随着卖出的数量增加,已经把价格快速压低了。
StableSwap 曲线与 Uniswap 曲线
在我们的测试中,Curve 的滑点不输中心化交易所。以 Coinbase 中稳定币之间的交易对 DAI/USDC 为例,将10 万美元级别的订单推入交易系统,以截图时的快照来看,Curve 略优于 Coinbase,而且 Coinbase 的手续费要比 Curve 多 460 美元。
Curve 与 Coinbase 订单手续费对比
其实 Uniswap 也面临同样的问题,就是如何激励用户投入自己的资金,成为「做市商」的一员,分享收益。其中,交易费率是一个基础参数,如果太高了,交易者就可以选择其他交易费率更低的平台;如果太低了,提供流动性的「做市商」们分得的利润就很少。
Uniswap 的费率是 0.3%,Curve 是0.04%,目前来看,Curve 的交易费率对交易者更友好,对流动性提供方不是很友好。但费用的收入还依赖于总交易量的,所以如果稳定币的需求量大,以优惠费率吸引到更多人来交易,整体的收入总规模会不输 Uniswap。
除了费率之外,Curve 还利用 DeFi 的可组合性,为流动性提供方进一步提高收益。
设想有如下两个场景:
其实 Curve 和 iearn 的组合产生的效果与 Compound 的组合类似:
iearn 创始人 Andre Cronje
需要特别写一笔的是,iearn 项目的创始人是 Andre Cronje。对于加密货币世界的老炮来说,Andre Cronje 是个熟人。他曾经是区块链媒体 Crypto Briefing 的首席代码评测官,在 ICO 热潮中,评测过一大批热门项目的代码质量,眼光犀利额,撰写的文章也以刻薄著称。不少明星项目的技术能力和代码质量被他狠狠奚落。
Michael Egorov
不过根据推特的信息来看,iearn 项目的创始人Andre Cronje也可能是 Curve 的核心人物之一,因为他频繁参与了 Curve 的产品规划和外部沟通。
Curve 在过去的一个多月中陆续上线了四个独立的资金池,也可以称为 V1、V2、V3 和 V4,分别是:
Curve 四个独立资金池 V1、V2、V3 与 V4 基本信息
根据目前四个交易池的资金量和交易量来说,V3 和 V4 版本的资金池更受欢迎,不过从趋势来看,V4 可能会追平甚至超过 V3。这也就表明了,流动性提供方更喜欢带有额外收入的 iearn 版本 Curve 资金池,哪怕需要承担更多的风险。
不过幸好,此漏洞尚未被利用。Michael Egorov 调查后发现,该漏洞隐藏在 Curve 的算法之中,而且白皮书尚未公开这些细节。他随后通过部署一个全新的智能合约,并进行前端相关的 UI 调整,将所有资金转移到了全新的智能合约中。
Curve 的网站上的提示也很明确告知了风险,不仅代码审计的细节还没有全部公开,Curve 目前也只是处于 Beta 阶段,官方希望使用者不要投入无法承担损失的资产,特别是对于流动性提供方。Curve 网站上称,对于交易功能使用者来说,风险相对很低。
Curve 在一周前表示,即将公开由Trail of Bits进行的安全审计细节 ,不过总体来说,USDT 和 Y 资金池不需要重新部署,没什么问题,但是 Compound 资金池需要重新部署,以修复上述两个资金池已经修复的问题,因为这是最早的一个合约。
但是风险依然存在,而且不仅在技术层面。
我们必须重新回顾和认识一下 DeFi 世界暗涌的各种风险。以 bZx 最近遭遇的 闪电贷套利攻击 为例,这名攻击者显然非常了解整套 DeFi 生态中的薄弱环节,精通利用流动性缺陷,这不完全是由技术缺陷导致的。所以,Curve 面临的问题也不仅仅是代码审计,而是其他系统性风险。
比如,iearn协议如果被套利者攻击 ,那 V3 和 V4 资金池也会导致损失;如果行情大跌导致 Compound清算系统产生损失,也就波及了 V1 资金池;风险还包括整个系统中的价格源或者是预言机出现问题,等等。由于 Curve 是基于很多项目搭建起来的,所以风险是自下而上累计的。
2 月 28 日,一名用户在Curve V4流动性不充足 的前提下进行了超大额的兑换,虽然团队发现了该事件,并立即进行了补救,但这名用户最终还是损失了14 万美元。后来,经过对交易记录的详细研究,却发现故事并不是表面这样简单。
事后Andre Cronje写了两篇文章,详细描述这件事情前因后果,而以下的分析基于他 写的第二篇文章。
该事件涉及 3 个地址,为了方便起见,分别称之为:
A:损失 56 万美元; B:获利 3527 美元; C:获利 42 万美元; Curve V4 资金池:获利 14 万美元手续费。
后来团队找到了 A 和 B 两个人,计划将 C 获利的 42 万美元还给 A。但是在他们联系 B 之后,他未回复并删除了社交网络账号。
所以最终的结果就是:
A:损失14万美元 ; B:获利 3527 美元; Curve V4 资金池:流动性提供方获利 14 万美元。
该事件在发生后受到了不少 DeFi 业内人士 (如 Chris Blec) 的质疑和抨击,指责 Curve 以及 iearn 没有及时将该事件的细节公开,并且指出,他们的产品因缺少滑点保护功能所以才产生了这次的事故。
当然,也有社区人士 (如 Gnosis 的产品负责人 Eric Conner) 认为不必对该事件过于苛刻,因为指责和攻击这些 DeFi 项目的创建者并没有任何好处,不如设立起社区的资源,帮助这个自由的市场更好地识别风险。
后来, DeFi Weekly的作者Kerman Kohli与 Andre Cronje 进行了单独的沟通,在他获得了更多的信息后, 他认为指责 Andre Cronje 是不公平的,之后便写了一份详细的报告,描述了这件事的经过。其中大多数的细节与 Andre Cronje 自己写的报告一致,只是更详细一些,也修复了一些之前的错误。
除此之外,Kohli 还在报告中透露了一些新的发现:根据损失者 A 的多次故意产生损失的交易行为判断,有足够的理由怀疑这名用户是在探索 Curve 的做市算法,以找到合适时机「攻击」并从中获利。因为他在已经产生了损失之后,还持续用 BUSD 兑换更少的 USDC,他可能是认为当两者的汇率有足够差异的时候,就可以将 USDC 换得更多的 BUSD。但是,中间出现了用户 B和用户 C,让他没有能完成这样的操作,更何况,也许就算他来得及这样操作,也并不能从中获利。
但这个事件的连锁反应还在继续。iearn 的创始人 Andre Cronje 最终赌气离开iearn 这个项目,留下已经开发完的平台。用户还可以继续使用收益聚合器、Zap、一键买入 Opyn 保险等,这些都将继续运行下去,但也有可能随着其他平台的更新而逐渐不能使用。
Andre Cronje 表示,自己对 DeFi 社区非常失望,他认为很多人并没有了解背后的具体原因,就发表错误的信息并攻击团队。他还发表了一篇名为《在 DeFi 领域创建项目逊毙了》的文章,辅以截图,证明社区不同人士是如何不公正对待他的。
幸好 iearn 目前是开发完成状态,可以自运营下去,但尚不清楚后续是否有人会接手继续更新维护。也有部分社区人士依旧在和他沟通,在推特上表示希望他可以回归。
Curve 的流动性不足是导致这件事情的起因,不过其他去中心化协议的流动性也面临同样的问题。以 Uniswap 为例,将 40 万美元的 TUSD (由于 Uniswap 未列入 BUSD,所以用了类似的 TUSD 替代) 换为 USDC,也只能换得 2.8 万美元。更何况 Curve 是个仅运行了一个多月的开源协议,而 V4 资金池遭遇该事件,更是在还未对外公开之前。
但是 Uniswap 自带的滑点保护功能,却可以避免很大的滑点,为用户建立起的一道防御措施。通过该设置,用户可以选择最大可以接受的滑点比例,如果超过该比例,交易就不会成交。而 iearn 的Zap作为 Curve 最重要的入口功能,之前未包含这样的功能。
在该事件发生后,Andre Cronje 也终于给 iearn 加上滑点保护。Andre Cronje 表示,这是 iearn 更新的最后一个功能。
至于刚刚提到的获利者 B,由于他的以太坊地址中拥有以太坊域名「nigeldesouza.eth」,而被发现其背后的真实用户可能是 Nigel de Souza,推特账号为 @nigeldesouza。在该用户拒绝沟通后,该推特账号已经删除。大多数人推断,这应该是被该用户自己删除。
一个难以一句话回答的问题是:对于一个去中心化且开源的协议而言,如果完全按照设定的逻辑运行,产生了意外的获利或者损失,能否说是这个协议「出错」?
进而言之,如果该协议中存放着其他人几百万美元的时候,协议的开发者究竟有没有义务为投资者提供实时、清晰和透明的公开信息?如果协议产生了用户不正常的损失,谁应该承担责任,进行赔付? 不过,幸好还有几个基于区块链平台的保险业务可以帮助减轻这类风险所带来的影响。
有两个基于以太坊的平台的去中心化产品为 Curve 提供了类似于保险的业务,也算是一种可以对冲资金潜在损失风险的机制。其中一个是Opyn,为 Curve 的资金池提供了一个名为 oCRV 的看跌期权代币,购买者相当于购买了一种保险,如果 Curve 资金池归零,Opyn 需要将之前抵押的 1.6 倍的 ETH 进行赔付。不过 oCRV 上线时成本极高,如果购买的话,将抵消可能在 Curve 赚得的收益。
另一个提供风险对冲机制的是Nexus Mutual,这更像一个独立的保险机构,或可以称为「互助保险社区」。当用户的资金真的因为智能合约漏洞出现损失时,平台中的用户就可以对每笔理赔申请进行投票,如果投票通过的话,就可以获得赔偿。在 bZx 的事件中,就有几笔用户的损失得到了 Nexus Mutual 平台的赔付。
除了安全性之外,用户体验也是 Curve 目前尚未探索的领域。从目前网站页面来看,这点并不着急,因为 Curve 更像是在做一个协议,更多的流量应该是来自于接入的服务商。目前来看,Curve 的交易量主要来自于1inch这类的聚合交易所 ,另外还有ParaSwap和0x API接入了 Curve 的交易功能,而注入流动性的功能主要通过 iearn 的 Zap 实现。
之前 Curve V3 曾经可以提供 20% 的年化收益,这很吸引人,但可能不可持续,因为在安全性、用户体验和入口流量的问题解决之后,就会有更多资金注入,成为「做市商」的一员,分摊更多的收益。于此同时,这又会进一步提升资金池的大小,开启一个良性循环。
不过谁知道呢,毕竟这些算法、参数、交易费都要经过试验才能知道其有效性。这就像 Curve 在推特说的第一句话:「我们有史以来第一次有能力进行『实验经济学』。我们开始做吧!」
他们说的很对。让我们开始吧,为 DeFi 喝彩,但也不要放松警惕。
参考文献
Andre Cronje 《在 DeFi 领域创建项目逊毙了》
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:前沿金融科技精英读物
评论0条