DeFi 的火热催生了很多项目,但轰动了整个加密社区的明星项目 Yam,却在启动了仅仅 37 个小时就黯然落幕了。
一行代码毁了一个项目
8 月 12 日凌晨三点,DeFi 项目 Yam 正式开启流动性挖矿(即通过为 DeFi 提供流动性赚取收益)。
Yam 全称 Yam Finance,是一个由社区孵化的 DeFi 协议。根据 官方介绍,YAM 引用了Ampleforth(AMPL)的弹性供应机制和YFI 的代币发行理念,并且采用了时下DeFi 项目最流行的去中心化治理(DAO),其YAM 就是社区治理代币。
YAM 本质上是一种有弹性供应的加密货币,Yam 每天根据价格会进行 rebase,对代币供应量进行调整。同时,YAM 非常去中心化,没有预售和预挖行为,创始人团队也没有股份,所有人都可参与。YAM 总量为 500 万枚,YAM 官方初始定价为 1 美元。
Yam 将挖矿的用户称为“农民”,YAM 代币图标为“山药”,大家将此项目称为“挖山药”,项目一启动就搅动了整个加密社区。
尽管该项目在项目启动前就警告称,尚未对其合约进行任何审计,但“农民”们还是在不到一小时内就向该项目存入了 7600 万美元,项目启动 8 小时后,Yam 总锁仓价值就突破了 2 亿美元。
随后,BKEX Global、币赢 CoinW 等交易所先后上线了 YAM/USDT 交易对。15 个小时后,BitMEX 创始人 Arthur Hayes 声称自己参与了 Yam 流动性挖矿,据悉还有很多人参与到了该项目中。此时,Yam 锁仓价值已超过 3 亿美元。8 月 13 日零时,Yam 锁仓价值达到 4.6 亿美元,YAM 代币价格涨至 167 美元的历史高点。
YAM 价格走势,来源:CoinMarketCap
但到了 8 月 13 日 5 时,Yam 发布推文称在 Rebase 合约中发现 bug,这将导致产生比预期更多的 YAM。
Yam 官方给出了两个修复建议,并号召 YAM 持有人通过代理投票方式帮助修复提案通过。消息一出,YAM 代币价格跌超 90%,至 14 美元。
不过,用了 8 个小时左右的时间,Yam 投票数就达到了 18 万枚 YAM,超过了 16 万枚的最低门槛。Yam 项目方表示,参与投票的用户将会获得一定的奖励。
下午 15 点时,Yam 锁仓价值超过 7.3 亿美元。Yam 官方建议用户在 16 时 rebase 前退出 Uniswap YAM/yCRV 池,原因是存在可能会阻止提案执行的潜在缺陷。如果治理不能通过该提案,那么在 rebase 期间累积的 yCRV 将面临无法移动的风险。
但 Yam 项目还是没有抢救过来。一个小时后,Yam 核心开发者 belmore 在推特上表示,“对不起大家。我失败了。谢谢你们今天的大力支持。我太难过了。”Yam 官方表示,该项目中存储的约 75 万美元的 Curve 代币也全部丢失。
事后,YAM 在发布的 博客中指出了发生错误的代码:
totalSupply = initSupply.mul(yamsScalingFactor);
而这一行代码本来应该是:
totalSupply = initSupply.mul(yamsScalingFactor).div(BASE);
区块链安全公司 Quantstamp 首席执行官 Richard Ma 表示,加上“ div(BASE)实质上是将 totalSupply 除以一个非常大的数字——10^18。没有这个除数,这个网络将会产生“津巴布韦式”通货膨胀。
比特币开发者 James Prestwich 表示,这个 rebase 漏洞导致向治理库铸造了数十亿个 YAM。这些 YAM 确实存在但无法进行投票。鉴于 YAM 的治理模块,这意味着没有任何投票提案可以被通过,因为提案永远无法达到需要的投票数量。
根据 Ma 的说法,这个漏洞目前没有办法修复。价值大约 75 万美元的加密货币将被永久锁定。
不审计成为一种营销手段?
这是一个从开始到启动仅用了 10 天的项目。
项目发布之前,Yam 就在官方博客中明确表示项目代码是没有经过审计的:“虽然 Yam 协议的初始创建者已经尽力确保合约的安全,包括从现有审计良好的项目中派生出大量代码基,并征求了朋友的意见,但 Yam 协议目前还没有进行任何接近正式的严格审计。“
但这并没有影响投资者们的热情,因为不经审计便启动项目在业内已经不是新鲜事了。
Ma 在接受媒体采访时表示,许多 DeFi 项目未经审计就启动了,像 Yearn Finance、Cream 和 Yearn Finance II 都是以这样的方式推出的。
“目前不进行审计被认为是利用逆向心理进行营销的一种好方法,”Ma 补充说:“这会使人感觉到这些项目非常抢手,而你在别人还没听说之前就已经抢先一步了。”
Ma 表示:“最大的危险在早期。”如果一个项目在早期的成长过程中幸存下来,就会开始积累许多非正式的安全审查。比如 Yearn Finance 项目,Quantstamp 后来进行了一次正式的安全审计,只是 Yam 没有那么幸运能够走到那个阶段。
其实,Yam 启动后,也有开发人员对其进行了审核,但可惜并没有发现该漏洞。
8 月 12 日,Aave 开发人员 Emilio Frangella 在推特上发布自己对 Yam 的审核,他认为该协议“很大程度上基于原始的 Synthetix 奖励合同”,配置设置的更改很少,对安全性没有任何影响。
项目不死,计划推出 YAM 2.0
宣布项目失败后,Yam 官方表示,只要以太坊继续支持这份合约,Yam 将继续生存下去。
Yam 不能再通过治理进行修改,因此在技术层面上将以类似于其他 rebasing 资产 (如 AMPL) 的方式运行。而 YAM / yCRV Uniswap V2 池将永远保持不安全的状态。尽管 YAM 在第二次 rebase 前已从池中取出了 75% 的流动性,但任何剩余的流动性都应尽快移除。
同时,Yam 还表示,YAM 社区应该有机会坚持下去。Yam 将设立 Gitcoin 捐赠,以协调由社区资助的对 Yam 合约的审计。如果资金目标达到,在审计完成后,Yam 将启动迁移计划,让社区控制项目,并推出 Yam 2.0。
如果获得社区支持, Yam 将在未来几周内通过两个阶段的启动程序推动 Yam 协议迁移到审计合约版本。
第一阶段,Yam 部署地址将建立一个迁移合约,Yam 持有者将在一定的期限内销毁此前代币同时铸造新的 Yamv2 代币。在第二阶段,完整的 Yam 系统预计将通过审核,并重新部署为 Yamv3。Yamv2 持有者将通过附加的合约迁移到更新后 Yamv3 代币地址。
Yam Finance 表示,在任何时候都没有也不打算对协议进行管理和控制。在成功迁移之后,计划奖励一些代币持有者,但这需要获得投票批准。目前,Yam 代币持有人无需采取任何行动。
针对此事件,区块链安全公司慢雾团队建议,项目中去中心化治理应循序渐进,在项目开始阶段,需要设置适当的权限以防发生黑天鹅事件。由于 DeFi 合约的高度复杂性,任何 DeFi 项目都需在经过专业的安全团队充分审计后再进行上线,降低合约发生意外的风险。
8 月 13 日,Yam 核心开发者 belmore 在推特上称,用户现在看到的任何 Yam 分叉几乎可以肯定都是骗局,不要参与。如果想要获取收益,请转向定期进行审核且信誉良好的 DeFi 产品。
受 YAM 事件影响,协议中可用于投资的其他代币,如 WETH、LINK、YFI、AAVE、SNX、MKR 和 COMP 的价格也受到了影响。
不过,Ma 认为 Yam 的崩溃不会破坏 DeFi,因为 DeFi 用户可以很好地应对波动。