『链得得APP』· DeFi 课堂,烤星

打开DeFi世界之门 , 从小白到DeFi大神的进阶必修课 。
由Conflux×Odaily星球日报联合出品 , 星球日报资深采访人员@王也担任主笔 。
短短48小时 , 黑客让dForce团队真切地体会到了“失而复得”的美好 。
4月19日上午 , 由dForce团队开发的去中心化借贷协议Lendf.Me遭黑客攻击 , 价值2500万美金的锁仓资产被黑客洗劫一空 , 震动社区与行业 。
而随后发生的“神反转”更是比电影还精彩 , 4月19日晚 , 黑客向Lendf.Me账户归还了12614枚PAX , 并附言BetterFuture , 4月20日 , 黑客再次陆续归还代币 , 至今已悉数归还了全部被盗资产 。
据悉 , 黑客此举 , 是因为在去中心化交易所1inch上泄漏了自己的IP地址 , 1inch配合新加坡警方以及dForce团队向黑客施压 , 迫使其归还赃款 , 1inch官方也证实了这一过程 。
dForce团队则在4月22日凌晨发文告知用户接下来将采取的行动方案:将永久关闭现有合约 , 新产品将启用新合约 , 并将在一周内公布资产返还的建议方案 。
不幸之中的万幸 , Lendf.Me本次被盗最终并没有给用户和平台造成损失 , 但带来的思考和探讨已远超事件本身 。
事件发生后 , 许多看客已从多方视角发布过专业的复盘内容 , 但我们依旧看到了不少错误的说法和偏颇的论调 , 因此 , 我们也想以这篇文章表明:Whatdoesnotkillyoumakesyoustronger , 相信历劫后的dForce团队和DeFi行业 , 会更加健康地成长 。
DeFi乐高遭遇“多米诺骨牌”式崩塌 , 到底是谁的锅?
4月19日 , 黑客利用ERC777合约和DeFi平台的兼容性问题 , 在Lendf.Me上多次调用重入攻击 , 并以imBTC为抵押 , 将Lendf.Me上价值2500万美金的资产洗劫一空 。
发生盗币事件后 , 媒体和大众关注的焦点是“追责” , 大额资金被盗 , 到底是谁的锅?虽然事件已告一段落 , 但依然有很多错误说法在社群内误传 。
讨论的声音很多 , 有的把“罪名”扣在ERC777头上 , 称是合约本身存在漏洞;有人追问dForce的安全合作方Peckshied为何没有及时发现漏洞;还有人将矛头指向imToken , 声称是imBTC存在问题 , 黑客抵押了假imBTC贷出ETH 。
而事实是 , 以上都是错误说法 。
ERC777合约本身并没有问题 , 它是对ERC20合约的一个改造和升级 , 不但实现了功能扩展 , 还有ERC20标准一样良好的兼容性 。
这件事也并非Peckshied的责任 , 虽然PeckShield是dForce的安全合作方 , 但他们并没有对Lendf.me的代码进行过审计 , Lendf.me的协议为分叉CompoundV1代码而来 。
假imBTC也是一个谣言 , 并不存在这个过程 , imBTC本身也无漏洞 。
事实是 , Lendf.me在CompoundV1代码的基础上加入了基于ERC777的imBTC , 而ERC777合约与DeFi协议的兼容性问题 , 给了黑客可趁之机 。
具体来说 , ERC777原本是在ERC20基础上加强了对Token的风险控制接口 , 是一次有益的改进 。 不过由于DeFi项目的可组合特性 , 一个合约在不同产品之间相互调用时 , 其业务逻辑复杂度也会大大增加 , 这就给注入代码攻击提供了可能性 。
据PeckShield团队介绍 , ERC777标准扩展的功能之一是提供了“hook”机制 , 可以使普通地址或合约通过注册一个tokensToSendhook函数来控制或拒绝发送Token 。 简单点说 , “hook”函数能够在一笔交易完成前后将通知发送给交易双方 , 并允许其取消交易 , 确保了交易相对的客观公正 。
因为“hook”函数通知是需要操作时间的 , 黑客就利用这一点 , 发起重入攻击 , 在用户一笔交易未完成的时候 , 又发起一笔新的交易 , 扰乱了原有的交易节奏 。
『链得得APP』· DeFi 课堂,烤星
文章图片
图片来源于:PeckShield
这个理解起来可能有些门槛 , 简单解释下:


推荐阅读