首页
要闻详情
图标图标

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

2021-03-12 21:05:17
864
Big Data Protocol 是为 Web3.0 数据市场提供动力的 DeFi 协议;该协议通过由专业数据提供商组成的网。据 Big Data Protocol 官方群消息,2021年3月12日,区块高度达到 12022010 时 BDP 挖矿结束,用户。矿所得的 BDP 奖励。

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

前言

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

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

3C3a2K8u90o7l0lYfBLgVAyAf3QQDq0wsw69Xsq5.png

50qDgSsho7WlvxDttVOXgLCkEmpNTE7OLr4HrX8A.png

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

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

8lyeg8Ll4ORIR6vkx260k0hPqiqLIXPC6EbEFfUX.png

分析

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

lriv2iv3clRe79hkMX9vzCHwDP5MOP76r6PlinIM.png

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

T5HEw7y0SQmCmfhcl3S6sgI2RHoat5NhnOj9nsr2.png

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

EmlXQbsYbVxNkBx14UQFjVIEZKEzG2IcMGMjGGf8.png

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

4uCr3Lcl17bMrI3WcmaD4RW6G7LjSvP4Ldk6yNCD.png

3NyiBN2XHzIhSfDJEWBmMVZmHZVgurlT0ClcpjSH.png

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

总结

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

建议

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

u1ifyJ7enx7cxmdWjedYsQUleoZ6R1XvtnIxcEkc.png

来源:金色财经

风险提示及免责声明

文章来源于金色财经,转载注明原文出处,此文观点与指股网无关,理性阅读,版权属于原作者若无意侵犯媒体或个人知识产权,请联系我们,本站将在第一时间删掉 ,指股网仅提供信息存储空间服务。