白帽黑客成功挽救960万美元以太坊资产
一位名为samczsun的区块链安全研究员兼白帽黑客近日公布了一份详细的"善后报告",记录了一项秘密行动成功挽救了25,000枚ETH(当时价值超过960万美元)的经过。这些资金从一个存在漏洞的以太坊智能合约中被及时拯救。
漏洞发现过程
9月15日,samczsun像往常一样在检查以太坊智能合约时,发现了后来被证实为Lien Finance协议的一部分:一个包含超过25,000枚ETH的智能合约。根据报告,该智能合约包含一个"销毁"功能,理论上任何用户都可以铸造大量无价值的代币,并通过该功能换取合约中存储的所有ETH,从而获得近1000万美元的资金。
救援行动部署
由于Lien Finance团队是匿名的,这位白帽黑客通过多方联系寻找相关人员。ConsenSys的安全研究员Alexander Wade(该公司曾审计过该智能合约)和以太坊安全专家Scott Bigelow很快加入了救援行动。
团队面临两个选择:第一,Lien Finance可以公开披露该漏洞,但这会为黑客创造完美的窃取机会;第二,白帽团队可以利用智能合约本身,然后将资金返还给合法所有者,但这很可能会吸引所谓的"广义抢先交易机器人"——以太坊内存池中的顶级掠食者。
技术挑战与解决方案
以太坊内存池(被形象地称为"以太坊的黑暗森林")是交易在被矿工接收并打包到下一个区块之前的特殊"预备区域"。这个区域时刻受到抢先交易机器人的监视,它们会寻找任何可利用的交易进行劫持。
在区块链研究员Tina Zhen的协助下,团队联系了CertiK(第二家审计该智能合约的公司)和以太坊矿池SparkPool的成员,并最终与Lien Finance取得了联系。
经过简短的准备工作,SparkPool的程序员花了几个小时开发和测试了一个专门的"白帽API",可以让矿工在不将交易显示在内存池中的情况下接收交易。与此同时,白帽团队成员完成了生成四个连续签名交易的脚本,这些交易最终将挽救25,000枚ETH。
救援行动实施
当所有准备工作完成后,白帽团队正式启动了救援行动。通过与矿池合作,交易成功避开了机器人。这是因为这些交易没有发送到内存池,而是由矿工直接打包进区块。
报告描述道:"在调整了交易创建脚本以直接将交易发送到SparkPool的新端点后,时机到了。我犹豫了一下,但这是我们最大的努力。我们可能会损失960万美元,但不会后悔。"报告补充说,"等待我们的交易被打包的约15个区块感觉像是几个小时,但最终,我们实现了完美的交易:按顺序被打包,未被撤销。"
成功挽救资金
最后一步是由Lien Finance团队使用销毁功能将SBT和LBT代币兑换为ETH。在最终交易执行后的片刻,Etherscan报告了其成功完成,将25,000枚ETH转移到了安全的地方。
就这样,白帽团队"逃离了黑暗森林",挽救了一笔巨额数字资产。