Tornado Cash 再现恶意提案,2300 万美元社区金库成目标
2026-06-2614:00
ForesightNews 速递
2026-06-26 14:00
ForesightNews 速递
2026-06-26 14:00
收藏文章
订阅专栏
有人用一个差一个字符的假地址,试图接管 Tornado Cash 社区金库。


撰文:angelilu,Foresight News


2026 年 6 月 25 日凌晨 6 点 18 分,一份编号为 67 的治理提案出现在 Tornado Cash DAO 的投票页面上。



标题写得很正式:「建立 0.5% 费率标准与 90% 动态通缩销毁方案」。正文洋洋洒洒,声称要把中继者注册表升级到「V5 Strategy A」架构,把协议收取的手续费 90% 永久销毁、10% 分给质押者,并附上一套「财富正向循环」的经济模型推演。


提案人还申请从国库领取 50 枚 TORN,用于补偿部署合约时预付的 Gas 费——这个细节让整份提案看起来像是一个认真负责、自掏腰包的社区贡献者写的。


但这份提案的合约代码没有经过任何验证。即提案的执行逻辑(Calldata)未在区块浏览器(如 Etherscan)进行源代码验证,没有验证,社区看到的只是一堆机器码,无法直接审查。Tornado Cash 历史上的正常提案都会做这一步,这份提案跳过了。


L2BEAT 研究员Sergey Shemyakov是第一个注意到这一点的人。提案上线约 8 小时后,他艾特安全研究员 Pascal Caversaccio 表示:「这份提案逻辑异常复杂,请帮我独立审查。」



Security Alliance 研究员 Pascal Caversaccio 很快给出了结论。


提案的真实目的:把协议的管理员地址偷偷换掉


Caversaccio 用反编译工具把提案合约的字节码还原出来,认定这个提案是恶意的。


代码里有一个名为「governance(治理者)」的函数,功能只有一个:返回一个地址,告诉协议「谁是管理员」。而这个函数里写死的地址,是攻击者自己的钱包。



在 Tornado Cash 的架构里,协议的各个部分都会调用这个函数来确认最高权限归谁。一旦提案通过执行,原来指向社区治理合约的地址就会被悄悄替换成这个攻击者地址。


真实的治理地址是 0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce;

伪造的攻击者地址是 0x5efda50f22d34f272c7077689d6abc42f15e285f。


两个地址前 15 个字符完全一样,从第 16 位才开始出现差异。普通人用肉眼对比很难发现。


如果这份提案通过,后果是:协议认定的「最高管理员」地址会被悄悄换成攻击者的地址。届时攻击者可以用这个身份,把目前锁在治理合约里的约 2300 万美元 TORN 代币提走——这笔钱是社区成员质押进来参与投票用的。除此之外,攻击者还可以把协议内所有中继者(负责帮用户转发交易的服务商)的余额强制清零,让整个协议瘫痪。


值得注意的是,TORN 代币当前完全稀释估值(FDV)约为 4800 万美元,而这次被盯上的 2300 万美元约占 FDV 的 48%。也就是说,攻击者瞄准的金库,几乎相当于整个代币市值的一半。截止发文,TORN 代币价格为 4.83 美元,24 小时跌幅 3.7%。


攻击者是谁,钱从哪来


提案创建者的钱包地址是 0xd4eca8c9242b9f9faa3cf19a78defc21dc97a925。


Caversaccio 追溯这个地址的资金来源,发现它在提案提交前 4 天刚刚收到一笔转账。转账方是 Railgun——另一个链上隐私混币协议,也是 Tornado Cash 的直接竞争对手。通过 Railgun 转账意味着资金来源被混淆,无法溯源到真实身份。



社区发现后,投票现状如何


截至目前,这份提案的投票结果是:赞成 0 票,反对 27,163 枚 TORN,占比 100%。投票在 6 月 30 日关闭。


Tornado Cash 的治理规则要求至少 10 万枚 TORN 参与投票才算达到法定人数,目前只到了 27%。除非接下来 4 天内出现大规模的异常赞成票,把法定人数推上去并翻转结果。否则这个提案失效和被否决结果都是不执行。但这件事给人带来的警示作用更大。


这已经是 Tornado Cash第二次面对这类攻击了。2023 年 5 月,一位攻击者通过一份隐藏自毁函数的提案拿到了 120 万票的治理控制权,彼时整个 DAO 的合法投票只有 7 万票。那次攻击者提走了约 217 万美元的 TORN,洗钱用的工具正是 Tornado Cash 本身,然后提交了一份「恢复治理」的提案,净赚约 90 万美元后全身而退。那次之后,没有人从根本上修复这套治理结构。


DAO 治理攻击,普通人怎么防


治理攻击已经是 Web3 的常规风险,不是某个协议的特例。2022 年 4 月,Beanstalk 被攻击者用闪电贷借出 10 亿美元临时投票权,在同一笔交易里通过提案、转走 1.82 亿美元、还清借款,全程不到一分钟。同年 2 月,Build Finance DAO 被攻击者通过伪造治理代币取得控制权,1100 万美元国库被清空。


攻击的形式在进化:从闪电贷抢票,到隐藏自毁函数,到这次的地址字符替换。但底层逻辑始终一样——DAO 的权力来自代币,代币可以被借、被伪造、被混淆。任何治理机制,只要能被代码操控,就能被攻击。


对于持有治理代币的普通用户,有几条路径切实可用。第一,关注安全研究员的实时预警,这次攻击正是被 L2BEAT 研究员第一个发出警报。第二,指向未验证合约的提案,大概率需要直接投反对票。第三,如果你持有协议治理代币但不打算主动参与,把投票权委托给活跃的社区成员,比让代币在钱包里沉睡更安全,沉默的代币只会让法定人数更难凑够。


对于协议开发者,更根本的防线是在治理层引入时间锁(timelock)——提案通过后不立即执行,留出 48 至 72 小时的窗口,让社区和安全研究员有机会审查并触发紧急暂停。Compound、Aave 等协议早已标配这一机制,Tornado Cash 至今没有,这也是其一种合规与抗审查的极端选择。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

专栏文章
查看更多
数据请求中

推荐专栏

数据请求中

一起「遇见」未来

DOWNLOAD FORESIGHT NEWS APP

Download QR Code