36小时内,眼看他起高楼,几分钟内,眼看他楼塌了。 北京时间08月13日上午03时整,备受瞩目的 DeFi 项目 YAM Finance 宣布启动流动性挖矿,仅仅一天时间锁仓资产价值就超过了6亿美元,其锁定资产增量和增速都达到了近乎癫狂状态。且照此发展,一些早期给池子注入流动性的羊毛党年利率甚至可逼近200倍,其疯狂程度可见一斑。 不过,正当大家都陷入挖矿狂欢的时候,意外发生了。 北京时间08月13日凌晨,YAM Finance发现其智能合约的弹性供应机制(rebase)存在漏洞,导致合约第二次 rebase 触发时会铸造大量额外代币,这意味着未来社区将无法获得足够的代币来执行任何治理操作,YAM 将成为一个失控的机器,最终将彻底失去社区用户的信任。 该如何拯救我们的 YAM 小红薯呢? 在发现漏洞后,YAM 团队发起了“拯救行动”,称他们需要16万委托投票才能提交治理提案,于是向社区发起呼吁投票。很快,这场轰轰烈烈的社区投票行动就完成了。 然而,就在大家以为只是虚惊一场的时候,北京时间08月13日下午16时01分,YAM 创始人 Brock Elmore 却发推特称,对不起大家,我失败了。这究竟是怎么回事呢? PeckShield 安全人员介入分析后,迅速定位到问题的本质在于:弹性供应机制(rebase)存在一个代码公式的错误,致使第二次 rebase 触发时系统会自动增发10 ^ 18个新代币,如果行情一直保持高位的话,那么以后的每次 rebase 触发时都会进行指数级的增发,这将使小红薯 YAM 的数量变成一个可怕的天文级数字。这意味着,无论后期社区怎样委托投票,都无法获得足够的投票量对系统进行控制,整个系统将陷入失控无主状态。 本来 YAM 官方号召广大 YAM 持有人通过代理投票的方式,一起完成此次投票“拯救行动”,以修复这个存在的漏洞。然而,PeckShield 安全人员进一步分析发现,当YAM 官方开始发出呼吁的时候,这次拯救行动其实就已经注定失败了。 原因有二: 1)时间来不及: YAM 官方或许忽略了一点,在其提案投票拯救行动准备工作完成后,也需要至少12.5个小时才能被执行生效,而按照现在的时间节奏,当其执行生效时,第二次 rebase 早已触发。 2)新部署治理合约无法被有效执行:由于第二次 rebase 触发,因此官方原先预期要执行的新治理合约到了执行时间后,却发现由于投票总量远远无法达到合约约定的总量的4%,故而无法被有效执行。 究竟是为何呢?接下来上技术干货: 技术概要首先介绍下 YAM 智能合约的弹性供应机制(rebase): (责任编辑:admin) |