风险提示:防范以"虚拟货币""区块链"名义进行非法集资的风险 —银保监会等五部门

慢雾:DeFi 当红项目 YAM 闪电折戟,一行代码如何蒸发数亿美元?

当红流动性挖矿项目 YAM 创始人披露该项目合约漏洞,慢雾技术详解漏洞细节。

原文标题:《DeFi YAM,一行代码如何蒸发数亿美元?》
 撰文:yudan @ 慢雾安全团队

慢雾:DeFi 当红项目 YAM 闪电折戟,一行代码如何蒸发数亿美元?

发生了什么?

慢雾:DeFi 当红项目 YAM 闪电折戟,一行代码如何蒸发数亿美元?

以上是 YAM 官方对本次事件的 简短说明。

简单来说就是官方在合约中发现负责调整供应量的函数发生了问题,这个问题导致多余的 YAM 代币放进了 YAM 的 reserves 合约中,并且如果不修正这个问题,将会导致 YAM 的后续治理变为不可能。同时,官方给出了此次漏洞的具体问题代码,如下:

慢雾:DeFi 当红项目 YAM 闪电折戟,一行代码如何蒸发数亿美元?

从上图可知,由于编码不规范,YAM 合约在调整 totalSupply 的时候,本应将最后的结果除以 BASE 变量,但是在实际开发过程中却忽略了,导致 totoalSupply 计算不正确,比原来的值要大 10^18 倍。但是代币供应量问题和治理是怎么扯上关系呢?这需要我们针对代码做进一步的分析。

YAM 会变成怎样?

为了深入了解此次漏洞造成的影响,需要对 YAM 项目代码进行深入的了解。根据官方给出的问题代码及项目 Github 地址(https://github.com/yam-finance/yam-protocol),可以定位出调整供应量的 rebase 函数位于 YAMDelegator.sol 合约中,具体代码如下:

function rebase( uint256 epoch, uint256 indexDelta, bool positive ) external returns (uint256) { epoch; indexDelta; positive; delegateAndReturn(); } 
如有疑问联系邮箱:
知币版权及免责声明:仅作为区块链信息平台,本站所提供的资讯信息不代表任何投资暗示,本站所发布文章仅代表个人观点,与知币官方立场无关。
*本文转载自网络转载,版权归原作者所有。本站只是转载分享,不代表赞同其中观点。请自行判断风险,本文不构成投资建议。*