行业事件

Wormhole 跨链桥被黑事件:3.2 亿美元损失的始末

2026-05-29 · 链上迷雾

损失 3.2 亿美元。攻击者绕过了签名验证。24 小时内 Jump Crypto 注入等额资金把窟窿填上。

这是 2022 年 2 月 2 日 Wormhole 跨链桥被黑事件能用三句话概括的全部框架。它不是当年最大的一笔损失(Ronin 桥晚些时候的 6.25 亿美元才是),但在结果上是极少见的"用户没有实质损失"的大型攻击——不是因为 Wormhole 坚固,而是 Jump Crypto 极快用自家钱补了上来。

Wormhole 是干什么的

Wormhole 是连接 Solana 与多条 EVM 链(以太坊、BSC、Polygon 等)的"消息层 + 资产桥"。最常见的用法:你在以太坊上锁定 1 个 ETH,Wormhole 在 Solana 链上铸造 1 个 wETH 给你,反之亦然。本质是两条链上各有一份"凭证",由桥合约和验证者保证数量同步

Wormhole 的验证者机制叫 Guardian Network,由当时 19 个独立节点组成,每笔跨链消息需要至少 13 个 Guardian 多签确认(13/19 阈值)。Guardians 把签名打包成 VAA(Verified Action Approval),交给 Solana 端的桥合约——合约验证 VAA 上的签名合规,才铸造 wETH。

这种结构和CEX 和 DEX 的差异一样,把"信任谁"明确化:你信任的不是某段代码,而是那一组验证者会诚实签名、那段合约会严格验证。两个环节任何一个出错,桥就破了。Wormhole 这次出错的,是后者。

(/uploads/20260529/1780055382673-46303.png)

漏洞机制:签名验证的一个"形式"判断

问题出在 Solana 端 verify_signatures 的前置——它依赖 Solana 系统指令 Secp256k1 做签名验证,但合约没有真正核对调用者用的是不是 Solana 官方的 Secp256k1 指令。

代码原意是"我让 Solana 帮我验签,验过的才放行";写出来却变成"我看到某个指令叫 Secp256k1,就当真"。攻击者只需构造一个伪造指令,让合约误以为前置验签已经完成。这种叫做 "signature verification bypass"的漏洞类型,事后被 Solana 社区写进了智能合约的必查清单里——它的危险性在于:单元测试和功能测试都会通过,因为程序逻辑在"正常调用"时表现正确,只有面对带恶意构造的指令时才会暴露。

这是典型的"形式验证 vs 实质验证"。代码相信了一个名字,没有核对那个名字来自哪里。结果是攻击者可以提交一组并未被 Guardians 真正签过的"VAA",桥照样放行铸币

值得对照的是,Ronin 桥那次是验证者私钥被钓鱼,多签的"人"被攻破;Wormhole 这次是合约本身没正确校验签名,多签的"机制"被绕开。两种攻击都通向同一个结论——Ronin 事件复盘里那句话同样适用:跨链桥的安全 = 验证环节最弱那一段

攻击是怎么完成的

攻击在链上的轨迹大致是:

第一,以太坊侧不存任何钱。攻击者没有锁定真实 ETH,目标是直接在 Solana 端"凭空"铸造 wETH。

第二,构造伪造的指令调用。攻击者把一个看起来像 Secp256k1 验签的指令塞进交易,传给 Wormhole 的桥合约。

第三,桥合约误以为签名已经验过,铸造了 12 万 wETH——在以太坊主网上根本没有对应抵押。按当时的 ETH 价格,约 3.25 亿美元

第四,转出与换币。攻击者把铸出来的 wETH 一部分留在 Solana、一部分反向桥回以太坊换回真实 ETH 和 USDC。

从第一笔可疑交易到桥被发现,只有几个小时。和 Ronin 那次 6 天才被发现相比,Wormhole 这次反应算快——这也为后面的"快速补救"留出了关键窗口。

24 小时内的补窟窿与最终影响

Wormhole 的核心赞助方是 Jump Crypto(量化巨头 Jump Trading 的加密分部)。攻击发生后不到 24 小时,Jump 公开宣布用自有资金注入 12 万 ETH,把 Solana 端 wETH 的足额抵押重新撑起。对用户来说,真 ETH 还能正常赎回;持有 wETH 的项目方不会发生连锁清算。

为什么 Jump 愿意承担?Wormhole 是 Jump 的"嫡系"基础设施,Solana 生态当时正处上升期,桥失守意味着整个生态信用瞬间崩盘——Jump 在 Solana 的其他持仓远比 3.2 亿美元更值得保护。

团队同时做了几件事:暂停桥、修补合约、公开复盘和审计报告、把 Immunefi 赏金上限提到 1000 万美元。和DAO 黑客事件、Ronin 桥事件一起,构成了"跨链桥安全"最常被引用的三组教材。

(/uploads/20260529/1780055410905-75773.png)

普通用户能从中学到什么

第一,桥不是"自动的",它的安全等于背后团队的工程质量和救助意愿。Wormhole 这次能把损失"对用户屏蔽掉",是 Jump 选择承担的结果,不是桥本身的属性。下一座桥不一定有同样的赞助方。

第二,桥另一端的"封装币"(wXXX)始终带着对桥的信用风险。哪怕原链资产没问题,封装版被增发、贬值、脱锚,都会让"票据"瞬间贬值。这和稳定币的风险同源——你信任的不是底层资产,而是发行方。

第三,跨链动作要量化对待。把"跨 1 ETH 过去玩一下"看成"借给桥的验证者团队"。只跨当下用得到的金额、不长期把大额停在封装币里,几乎是唯一稳妥做法。和选交易所的标准一致。

跨链桥的安全 = 最弱一条链的安全

值得长期记住:跨链桥不会让两条链同时变得更安全,它只会把安全下限拉到同一个低点。Wormhole 这次不是 Solana 不安全,也不是以太坊不安全,而是连接它们的那座桥不安全——一个不到 200 行的形式校验失误,让 13/19 的多签机制变成了 0/19。13 个 Guardian 没有一个被攻破,但他们的存在在那笔被铸造出来的 wETH 面前没有任何意义。

下次看到一条新链宣传"我们和主流生态实现了跨链互通"时,多问一句:那座桥是谁建的、谁验证、谁兜底。答案不清楚的时候,资产留在自己更熟悉、更愿意承担的那条链上,永远是更保守、也更聪明的选择。Wormhole 之后行业里冒出了 LayerZero、Axelar、CCIP 这类号称"更安全"的新一代消息层,它们各自给出了不同的信任模型,但所有人都默认了同一件事:桥的安全是一个永远在被重新验证的问题,不是一次性能勾完的清单

本文仅作科普,不构成投资建议。加密资产波动大、风险高——永远只投入你亏得起的钱。

最新文章

助记词与私钥

助记词可以借给别人保管吗?如果是亲人朋友、会有什么后果

把助记词抄一张纸塞给爸妈、把照片发给最信任的朋友——这种"我不会自己丢"的选择,看起来安全,其实把风险换了一种方式。本文把"借人保管"逐种关系拆开,看真正会出什么事。

常见误区

为什么所谓的"内幕消息"九成都是陷阱?

"我有内幕"是加密圈最便宜也最常见的开场白。剥开外壳之后,这句话的真实结构往往不是分享,而是一个精心设计的出货流程。

交易所安全

为什么把币长期放在交易所是危险的?别等到出事才明白

把币放在交易所方便、有客服、看起来正常。但"长期"放在交易所是一件被反复验证过会出事的事情。本文讲清楚为什么这件事一直都不安全。

心态与 FOMO

为什么不要在 Telegram 群里晒自己的盈利,代价比你想象的大?

在 TG 群里发一张 PnL 截图,5 秒内是骄傲,5 分钟内是同伴注视,5 个月内可能是被针对、被复制、被绑架预算。这篇把"为什么不晒"分成四层,从安全、心态、社交、操作面给你看代价。

防骗避坑

为什么聪明人也会被加密骗局骗到?背后的心理机制拆解

加密骗局不只针对"小白",受过良好教育、做事谨慎的人也大量中招。原因不在 IQ,而在几种几乎所有人都有的心理机制被精准利用。本文逐条拆解。

心态与 FOMO

为什么 SocialFi 应用让人特别上瘾,你应该警觉哪几条机制?

SocialFi 给"刷社交"加了真金白银的反馈,让人比刷传统社交更容易停不下来。这篇把它在心理层面利用的几条机制摊开来讲,顺便给你一份能让你少消耗自己的使用边界。