Cardano的Wanchain桥遭遇严重攻击:5.15亿枚NIGHT代币被盗
连接Cardano与BNB Chain的跨链桥Wanchain遭遇漏洞攻击,震惊了整个社区。攻击导致流动性池中约5.15亿枚NIGHT代币被提取。据我估算,事件发生时,根据市场条件,这笔金额约在900万至1300万美元之间。
这一事件再次严峻地提醒我们,跨链桥仍是DeFi生态系统中最薄弱的环节。下面我们来分析技术细节和影响。
事件原因:TreasuryCheck验证器存在漏洞
由BlockSec安全专家进行的初步调查揭示了问题的根源——验证器TreasuryCheck中签名消息的非单射编码。验证器是负责检查操作合法性的智能合约。术语“非单射编码”意味着不同的输入数据集可能产生相同的输出值。简单来说,系统失去了区分不同操作的能力,从而为攻击打开了通道。
漏洞机制如下:
- 签名消息通过“原始”拼接14个可变长度字段(redeemer)形成,使用AppendByteString函数,没有分隔符和长度前缀。Redeemer是附加到交易中以确认其合法性的数据集。
- 因此,不同的字段值集可能产生相同的字节串。
- 相同的字节串导致相同的哈希(数字指纹),进而产生相同的签名,可被重复使用。
BlockSec通过反编译Plutus V2链上字节码并解码攻击交易中的redeemer,证实了这一点。代码中存在内置的SerialiseData函数,但仅在匹配output-datum时使用,而非在构建签名哈希时使用。使用Sha3_256(SerialiseData(...))本可确保CBOR编码中字段边界的唯一性,并防止此类攻击。
想象一下:主管批准数字组合“12345”并签名确认。验证程序将组合分为字段:“接收方”=12,“金额”=345。但组合本身没有分隔符。攻击者不伪造签名,而只是移动不可见的边界:“接收方”=123,“金额”=45。签名仍然有效,但接收方和金额发生了变化。攻击正是基于此原理。
后果与市场反应
攻击者利用这一漏洞伪造消息进行非法代币发行,随后将窃取的NIGHT在Cardano网络上兑换为ADA。Wanchain团队迅速关闭了该桥以进行调查,并承诺完全透明。
NIGHT代币是专注于隐私的项目Midnight的原生资产,由Cardano背后的Input Output(IO)支持开发。市场反应迅速而剧烈:NIGHT价格在24小时内暴跌超过30%,创下约0.016美元的历史新低。
Midnight基金会急忙向社区保证,该事件仅限于Wanchain桥范围内,并未影响Midnight网络本身、其协议、验证器及关键基础设施。他们强调问题出在第三方基础设施,而非NIGHT资产或Midnight区块链。
分析结论:这一事件是“签名重用攻击”的典型案例,源于对安全编码标准的忽视。它不会终结Cardano或Midnight,但为所有跨链解决方案开发者敲响了警钟。桥的安全性必须大幅提升,否则我们将继续目睹此类崩溃。恢复对Wanchain和NIGHT代币的信任将是一个漫长而痛苦的过程。