据MarsBit报道,过去40天内,黑客利用五个已被弃用但仍在链上运行的智能合约盗取了将近1700万美元。这些合约被称为“僵尸合约”——代码仍在链上,但原始团队已停止维护或弃用,却未彻底收回权限、清空资金或禁用调用入口。攻击者正是瞄准了这一安全盲区,将旧合约变成了自动提款机。
攻击目标与手法
涉及的五个项目分别是:DxSale、TrustedVolumes、Huma Finance V1、Raydium Legacy AMM和Aztec Connect。黑客通过分析链上历史交易和合约代码,发现这些合约虽然名义上已退役,但依然保留了管理权限、资产余额或外部调用功能。攻击者利用残留的权限直接提取资金,或者通过未关闭的接口触发伪造交易,从而窃取资产。整个攻击周期长达40天,累计损失约1700万美元。
“僵尸合约”为何成为高危目标
“僵尸合约”的本质是智能合约的生命周期管理缺失。当项目方升级或放弃某个协议时,若没有执行以下操作:撤回管理员权限、转移剩余资金、冻结外部调用接口,则该合约在链上仍处于可交互状态。黑客可以反向利用这些老旧代码中的漏洞(比如未验证的授权函数、过时的代理合约逻辑),甚至直接调用原本用于紧急情况的admin函数。由于社区和审计机构通常不再关注旧合约,攻击者可以在无人察觉的情况下长期作案。
对DeFi生态的警示
此次事件再次提醒所有DeFi项目方:智能合约的退役过程应与部署同样严谨。建议在弃用合约前进行以下操作:1) 执行renounceOwnership()或转移管理权至零地址;2) 将合约内所有资金提至多签钱包并完成清算;3) 在合约中增加不可逆的暂停开关;4) 对旧合约进行最终审计,并公开退役公告。此外,链上监控工具应增加对旧合约异常交易行为的告警,社区也应主动排查历史遗留的“僵尸合约”。
总结
1700万美元的损失并非源于新型攻击手段,而是老生常谈的运维疏忽。在DeFi快速迭代的背景下,大量被替代的旧合约仍停留在链上,成为悬在行业头顶的“定时炸弹”。项目方必须将退役操作纳入安全规范,从源头消除这些“自动提款机”。

