并非黑客攻击“幕后元凶”是它 - BDP 无法提现事件分析

知道创宇区块链安全实验室
企业专栏
热度: 7268
据 Big Data Protocol 官方群消息,2021年3月12日,区块高度达到 12022010 时 BDP 挖矿结束,用户暂时无法正常提出挖矿资产。知道创宇区块链安全实验室跟进进行分析。

撰文 : 知道创宇区块链安全实验室


前言

Big Data Protocol 是为 Web3.0 数据市场提供动力的 DeFi 协议;该协议通过由专业数据提供商组成的网络,对具有商业价值的数据进行令牌化,并使数据令牌在 Uniswap 上具有流动性;用户通过为数据令牌提供流动性来赚取数据。挖矿机制上线后总锁仓量一度达到 65 亿美元,位列 DeFI 项目锁仓量榜首。

据 Big Data Protocol 官方群消息,2021 年 3 月 12 日,区块高度达到 12022010 时 BDP 挖矿结束,用户暂时无法正常提出挖矿资产。

挖矿挖矿

https://cn.etherscan.com/tx/0x15aed01b104f06fa8876db2bd86894791bd0830a36fc28f1d7590ab8d77c3336

消息发出后,大量用户通过直接调用合约的方式(emergencyWithdraw)提取挖矿资产,但无法提取挖矿所得的 BDP 奖励。

挖矿




分析

当用户调用合约的 withdraw 函数领取奖励时,合约内会调用 updatePool 函数。

挖矿

updatePool 函数主要用于根据当前区块时间点,更新相关数据,并向质押功能合约铸币,用于奖励分发

挖矿

而提取失败的问题根源就在这个 mint 铸币函数中

挖矿

mint 函数中会校验 seedPoolAmount 变量大于 0,否则全部回滚。但由于 seedPoolAmount 的奖励在结束挖矿之前已全部分发,所以用户调 ? 合约时 ? 法增发代币,交易直接 revert,导致提取奖励失败。

挖矿

挖矿

https://bloxy.info/tx/0x15aed01b104f06fa8876db2bd86894791bd0830a36fc28f1d7590ab8d77c3336




总结

通过对整个事件分析来看,本次事故并未造成用户的本金损失;主要原因在于对合约提现函数的依赖条件考虑不充分,项目上线时应当模拟合约的不同状态,进行充分测试验证。




建议

目前,由于提现失败造成社区的恐慌,大量用户通过合约的 emergencyWithdraw 函数提取本金;Big Data Protocol 官方也给出了相应的解决措施,更新前端 UI 便于用户提取挖矿资产,对于挖矿未提取的 BDP,后续补发所欠奖励部分。

挖矿

声明:本文为入驻“火星号”作者作品,不代表火星财经官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。 未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:作为区块链信息平台,本站所提供的资讯信息不代表任何投资暗示,本站所发布文章仅代表个人观点,与火星财经官方立场无关。鉴于中国尚未出台数字资产相关政策及法规,请中国大陆用户谨慎进行数字货币投资。
语音技术由科大讯飞提供
本文来源:知道创宇区块链安全实验室
原文标题:
下载火星财经APP
以行业热点、实时快讯、视频解读等维度提供全方位的区块链整合服务。
24H热门新闻
暂无内容

评论0