ING:首发 | 一朝跌落云端 Yam Financial智能合约漏洞事件分析 ?

红薯刚种下,就得挖出来了?

今日DeFi领域再次发生一起魔幻事件,呼声极高的红薯项目一经上线,流动性矿工们就开始疯狂涌入。短短8个小时内,YamFinance中锁仓总价值就超过2亿美元。COMP挖矿带动了DeFi产业出圈,而YAM直接带动了DeFi头部项目集体上涨,堪称“一飞冲天”。

然而短短36小时内,眼见它高楼起,高楼塌。数亿美元因为一个小小的漏洞,消失于无形。本以为反应迟钝的自己损失了一个亿,没想到保住了自己的五块钱。

好好的小红薯,究竟承受了什么?

国家电网公司区块链技术实验室正式成立:6月24日,国家电网公司区块链技术实验室正式揭牌成立。据悉,该实验室旨在以区块链建设成果全面赋能我国新型基础设施建设和数字化经济发展。国网区块链技术实验室主任王栋表示,该实验室有助于培育区块链产业新业态,实现区块链科技成果转化全面惠及我国能源、政务、经济等各领域的数字化升级。(北京日报)[2020/6/25]

事件背景

8月12日,YAMFinance官方宣布他们发现了一个智能合约漏洞,并称该漏洞将生成超出最初设定数量的YAM代币。在这种情况下,大量的保留代币将造成治理操作所需的代币数量过大。这意味着社区将来将没有足够的代币来执行任何治理操作。

区块链电子合同签署平台在国家电网浙江电力物资采购系统上线:4月13日,一个基于区块链技术的电子合同签署平台在国家电网浙江电力物资采购系统上线。今后,国网浙江电力每年400多亿元的采购合同,不用上千供应商来回奔波,就可以在网上安全、迅速地签署完成,并按照合同实施进度,及时支付货款,助力企业复工复产。  

国网浙江电力互联网部副主任黄建平介绍,过去,整个流程走完需要4天。现在供应商中标之后,通过区块链电子合同签署平台,电子合同同步发送至供应商、物资公司合同代表和地市供电公司使用单位,三方同步线上审核,互联网法院则启动备份整个流程。三方审核确认无误后,使用电子钥匙进行电子签署,合同即时生效,总共花费20分钟。基于区块链技术的电子合同,实现了对合同内容、节点存证、关键数据存证、读取等各环节的全链条记录。  

据了解,该区块链电子合同签署平台自2月21日试运行以来,已网上发起合同签署386份,总计金额7.8亿元,为武汉、北京、南京等省外供应商提供了零接触签署服务。(浙江日报)[2020/4/15]

智能合约漏洞出现在哪里?

声音 | 国家电网董事长:区块链等技术为电网技术升级提供强大动力:据中国电力新闻网报道,国家电网有限公司董事长、党组书记寇伟接受《中国电力报》记者专访表示,新能源、储能和新型用电技术的发展对电网技术创新形成倒逼之势,多能互补、综合利用,电力电子、先进输电等技术在电力系统日益广泛应用,以大数据、云计算、物联网、人工智能、区块链为代表的数字技术与电网技术加速融合,为电网技术跨越升级提供了强大动力。泛在电力物联网是一系列先进数字技术在能源电力领域的应用,包括物联网、移动互联、区块链等互联技术,大数据、云计算、人工智能、边缘计算等智能技术,以及5G等通信技术。[2019/12/15]

该漏洞发生在YAM项目智能合约YAM.sol的rebase功能上,如下图所示:

图片来源:?

https://github.com/yam-finance/yam-protocol/blob/767e3a4a6918b6fb6100ad6bb356164408f5d82f/contracts/token/YAM.sol#L340

上图中的rebase功能应该执行rebase,以保持稳定的价格。但是,有一行代码在计算totalSupply时,给出了错误的结果,这会导致系统保留的代币数量过多。

这行代码的正确代码/计算方程形式应类似于以下代码/方程:

totalSupply?=initSupply.mul(yamsScalingFactor).div(BASE);

那么是否可以在截止日期之前通过治理操作来修复此漏洞?

第二次调整是在美国东部时间8月13日凌晨4点。

YAMFinance公开宣布,在美东时间凌晨3点之前,他们需要约16万YAM委托要求才能提交治理提案。如果在投票窗口中得到的委托超过40万YAM,则该提案将允许用户将YAM自行转移或存入储备池。?

有一个好消息是,YAM获得了其社区的大力支持,并且该提案已成功提交。但是,新提交的提案无法在智能合约中运行,所以YAM目前依旧是一个不可管理的状态。

YAM的现状

YAMFinance目前已经失去了治理能力,75%的流动资金已经从YAM/yCRV未拨出资金池中移出。但是,其余的流动资金将从储备库中删除。

据官方消息,Gate.io将为YAMGitcoin捐赠,捐赠资金将被用于对YAM合约进行审计。审计完成后,YAM合约将迁移到YAM2.0。

如何避免?

CertiK安全团队强烈建议:

所有区块链项目在正式发布之前不仅需要使用严格的软件测试工具来验证项目的代码安全性,更是应该邀请多个第三方区块链安全团队,做好对区块链项目中代码的验证审计工作,并在每次更新代码后进行重新审计。从而设计一个更好的项目管理系统,以备进行项目紧急更新的需求。

我们绝不仅仅是寻找漏洞,而是要消除哪怕只有0.00000001%被攻击的可能性。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-4:467ms