一座 XRP 跨链桥因「假存款」被盗20万美元——用大白话讲清跨链桥是怎么被黑的
8月9日,一座连接 XRP Ledger 与另一条名为 tx 的区块链的跨链桥损失了近20万枚 XRP(约20万美元)——攻击者骗过了它的软件,让系统认可了实际上从未发生的存款。项目方已暂停该桥、修补漏洞,并向 FBI 报案,但尚未说明将如…
8月9日,一座连接 XRP Ledger 与另一条名为 tx 的区块链的跨链桥损失了近20万枚 XRP(约20万美元)——攻击者骗过了它的软件,让系统认可了实际上从未发生的存款。项目方已暂停该桥、修补漏洞,并向 FBI 报案,但尚未说明将如何赔偿受影响的用户。
要弄懂问题出在哪,先要明白跨链桥的作用。不同区块链之间无法直接「对话」,于是跨链桥就像一个带收据系统的金库:你把真实代币锁进一条链上的储备金库,桥便在另一条链上给你发行等量的「跨链版」代币;把这些收据交回,你就能从金库取回原来的代币。
这名攻击者找到了「不往金库存钱也能拿到收据」的办法。由于一处软件漏洞,即便没有任何 XRP 真正到账,桥仍把交易记为存款。这凭空造出了没有任何抵押的跨链 XRP,攻击者再把它们送回桥,从储备金库中取走真实的 XRP。整个盗取过程持续了约97分钟才被叫停。
值得深思的是:这座桥的安全机制完全按设计运转,却依然失守。每一笔提款都获得了28个「中继程序」(relayer)中17个的批准——这些程序负责监视两条链并为转账签名。它们之所以放行,是因为桥自己的记录告诉它们这些存款是真的。真正的错误藏在更底层:处理这些付款的代码没有正确核验资金要转往何处。
跨链桥是加密世界中最常被攻击的环节之一,正因为它们存放着大量储备,又依赖复杂代码去判断什么才算「真」。对新手而言,这并不意味着一定要远离跨链桥,但确实要格外小心:优先选择成熟、经过广泛审计的桥,先小额试水,别把资金在桥里停留超过必要的时间。一旦跨链桥被攻破,被盗代币通常在数小时内就会转移,这也是为什么追回的可能性很低。