Research/Stablecoins

Stablecoin Bridge Hacks: Postmortems from Ronin, Wormhole, and Nomad

Detailed postmortems of the largest cross-chain bridge hacks, how stablecoins were exploited, and what the industry learned about bridge security.

bcTanjiOct 5, 2026

Between February and August 2022, three cross-chain bridge exploits drained over $1.1 billion from crypto protocols. The Ronin bridge lost $625 million to compromised validator keys. Wormhole lost $326 million to a signature verification bypass. Nomad lost $190 million because a routine upgrade initialized a trusted Merkle root to zero. Each hack exposed a different class of vulnerability, but they share a common thread: bridges concentrate enormous value behind a small number of trust assumptions, and attackers will find the weakest one.

These incidents reshaped how the industry thinks about bridge security, stablecoin freezing authority, and cross-chain architecture. This article walks through each exploit in technical detail, examines what was recovered, and extracts the lessons that still matter in 2026.

Ronin Bridge: $625 Million from Stolen Validator Keys

On March 23, 2022, attackers drained 173,600 ETH and 25.5 million USDC from the Ronin bridge, a sidechain connecting Ethereum to Sky Mavis's Axie Infinity game. The exploit went undetected for six days. It was only discovered on March 29 when a user reported being unable to withdraw 5,000 ETH.

The Vulnerability

Ronin used a multisig validation scheme requiring 5-of-9 validator signatures to authorize withdrawals. Sky Mavis controlled four of the nine validators directly. A fifth signature was available through a temporary delegation from the Axie DAO, granted in November 2021 to help process a backlog of transactions. The delegation was supposed to be revoked after the backlog cleared. It was not.

This meant a single entity, Sky Mavis, held the threshold needed to authorize any withdrawal. The decentralization that a 5-of-9 scheme implies existed only on paper.

The Attack

The U.S. Treasury later attributed the attack to North Korea's Lazarus Group. The attack vector was social engineering: a senior Sky Mavis engineer received a fake job offer via LinkedIn containing a malicious PDF. The payload gave attackers a foothold in Sky Mavis's internal network. From there, they moved laterally into the Ronin validator infrastructure, extracted four validator private keys, and used the still-active Axie DAO delegation to forge the fifth signature.

With five keys, the attackers signed two fraudulent withdrawal transactions. The bridge contract executed them as valid. No smart contract bug was involved: the code worked exactly as designed. The failure was operational.

Key lesson: A multisig is only as decentralized as its key distribution. Ronin's 5-of-9 scheme provided security theater when one organization controlled the threshold. The attack cost $625 million not because of a code flaw, but because governance hygiene failed: a temporary permission was never revoked.

Recovery

Sky Mavis raised $150 million in emergency funding, led by Binance with participation from Animoca Brands, Andreessen Horowitz, and Paradigm, to reimburse affected users. Norwegian law enforcement later recovered $5.7 million of the stolen funds, and an additional $40 million was frozen by authorities. The bridge reopened in June 2022 with an expanded validator set. Of the original $625 million, the vast majority was never recovered from the attackers.

Wormhole: $326 Million from a Signature Verification Bypass

On February 2, 2022, an attacker exploited the Wormhole bridge between Ethereum and Solana, minting 120,000 wETH on Solana without depositing any corresponding ETH on Ethereum. At the time, that was worth approximately $326 million.

The Vulnerability

Wormhole's Solana contract used a deprecated function called load_instruction_at to verify that a Secp256k1 signature check had been executed in a prior instruction. This function was supposed to read from the Instructions sysvar, a special Solana account that records which instructions have been processed in the current transaction.

The critical flaw: load_instruction_at did not validate that the account it read from was actually the Instructions sysvar. An attacker could pass in any account with the right data layout. Solana had already deprecated this function in favor of load_instruction_at_checked, which does perform the validation. Wormhole's contract had not been updated.

The Attack

The attacker created a fake account mimicking the Instructions sysvar, pre-populated with data indicating that a valid Secp256k1 verification had occurred. They passed this fake account into the Wormhole contract's verify_signatures function. The contract read the forged data, concluded the guardian signatures were valid, and accepted a fabricated VAA (Verified Action Approval) message authorizing the mint of 120,000 wETH.

The attacker then bridged 93,750 wETH back to Ethereum (approximately $254 million) and liquidated the rest on Solana through various DEXs and lending protocols.

Key lesson: Deprecated functions persist in production far longer than their security advisories suggest. The fix for this vulnerability already existed in Solana's SDK. Wormhole's contract simply had not adopted it. A single unvalidated input allowed an attacker to forge $326 million in assets.

Recovery

Jump Trading (which had acquired Wormhole's developer, Certus One) backstopped the full loss within 24 hours, depositing 120,000 ETH to restore the bridge's backing. This was not a recovery of stolen funds: it was a corporate bailout. Jump Trading absorbed the loss to protect the protocol's users and its own investment. The bridge was patched and restored shortly after.

Nomad: $190 Million from a Misconfigured Upgrade

On August 1, 2022, the Nomad bridge was drained of approximately $190 million in what security researchers called a "frenzied free-for-all." Unlike Ronin and Wormhole, this exploit did not require sophisticated tooling. Once the first transaction succeeded, anyone could copy it.

The Vulnerability

Nomad used an optimistic verification model where cross-chain messages were submitted to a Replica contract and could be disputed within a challenge window. Messages were authenticated by checking their Merkle proof against a trusted root stored in the contract.

In a routine upgrade on June 21, 2022, a new implementation of the Replica contract was deployed. During initialization, the trusted root was set to 0x00. This is a common initialization pattern in Solidity, but in this context it was catastrophic: the default Merkle root for any unproven message is also 0x00. With the trusted root matching the default unproven root, every message was automatically treated as valid.

The Attack

The vulnerability sat dormant for six weeks. On August 1, someone called the process() function with a fabricated message, listed themselves as the recipient of funds they had never deposited, and the transaction succeeded. The first drain was approximately $2.3 million.

Because the exploit required no special knowledge or tooling (just copying a successful transaction and replacing the recipient address), hundreds of addresses piled in. Over 300 wallets participated in draining the bridge. Some were opportunistic copycats. Others were white hat hackers who grabbed funds to return them later.

Key lesson: The Nomad hack demonstrates how a single misconfigured initialization value can invalidate an entire security model. The optimistic verification logic was sound in theory. But when the trusted root equals the default empty root, "optimistic" becomes "approve everything." This was not caught in code review, testing, or the deployment process.

Recovery

Nomad offered a 10% bounty to anyone who returned at least 90% of what they took. White hat hackers returned approximately $34.1 million. The remaining $156 million was never recovered. Unlike Ronin (where Sky Mavis raised funds to make users whole) or Wormhole (where Jump Trading backstopped the loss), Nomad's users bore most of the loss directly.

Major Bridge Hacks by Dollar Value

These three incidents sit within a broader pattern. Since 2021, bridge exploits have accounted for over $2.8 billion in cumulative losses, representing roughly 40% of all value hacked in Web3.

BridgeDateLossAttack VectorRecovered
RoninMar 2022$625MValidator key compromise (social engineering)Users reimbursed via $150M fundraise
Poly NetworkAug 2021$611MPrivilege escalation in cross-chain relay$611M (all funds returned by attacker)
WormholeFeb 2022$326MSignature verification bypass (deprecated function)$326M (Jump Trading backstop)
NomadAug 2022$190MMerkle root initialization to zero$34.1M via white hat bounty
MultichainJul 2023$125MMPC key compromise (insider/custodial failure)Minimal
Harmony HorizonJun 2022$100M2-of-5 multisig key theftMinimal
Orbit ChainDec 2023$82MBridge access key compromiseUnder investigation

The Stablecoin Angle: Freezing Authority and Its Limits

Stablecoins like USDC play a unique role in bridge exploits. Unlike ETH or other decentralized tokens, centralized stablecoin issuers have the technical ability to freeze tokens at specific addresses. Circle's USDC contract includes a blacklist function that can render tokens at any address permanently untransferable. This creates both a recovery mechanism and a philosophical tension.

When Freezing Works

In the Ronin hack, 25.5 million USDC was among the stolen assets. The ability to freeze stablecoins gives issuers a potential tool to limit damage. In more recent incidents like the September 2026 Bitget exchange breach, Circle and Tether both froze attacker wallets within hours. When coordination is fast, freezing can meaningfully reduce losses.

When Freezing Fails

The track record is inconsistent. During the Nomad hack, approximately $45 million in USDC sat in exploiter addresses for 30 to 45 minutes before being swapped out. Those addresses were never blacklisted by Circle. On-chain investigator ZachXBT has documented at least 15 cases since 2022 totaling over $420 million in illicit USDC flows that Circle failed to freeze in time.

The problem is structural. Freezing requires the issuer to detect the exploit, verify it is not a false positive, identify the correct addresses, and execute the blacklist transaction, all before the attacker swaps to a non-freezable asset. Sophisticated attackers convert USDC to ETH or wrapped assets within minutes of the initial exploit, making the freezing window extremely narrow.

The Philosophical Tension

Centralized freeze authority cuts both ways. It offers a recovery tool after hacks, but it also means a single entity can unilaterally render anyone's stablecoins worthless. This is the core concern behind debates about stablecoin blacklisting and censorship resistance. Users who hold bridged stablecoins face a compounding risk: they depend on both the bridge's security and the issuer's discretion.

Common Patterns Across Bridge Exploits

Despite different attack vectors, these hacks share structural patterns that reveal why bridges remain the most exploited category in crypto.

PatternDescriptionExamples
Key concentrationToo few keys or entities controlling the validation thresholdRonin (5 keys, 1 entity), Harmony (2-of-5 multisig)
Deprecated dependenciesUsing outdated functions with known security issuesWormhole (deprecated Solana instruction loader)
Upgrade-induced regressionRoutine deployments that silently break security invariantsNomad (Merkle root set to zero during upgrade)
Delayed detectionHours or days between exploit and discoveryRonin (6 days undetected), Nomad (hours of copycat draining)
Honeypot economicsBillions in locked TVL incentivize proportionally large attacksAll major bridge hacks target the locked asset pool

The fundamental issue is architectural. Bridges hold large pools of locked assets on one chain to back wrapped representations on another. This creates a single point of failure: compromise the bridge's validation mechanism, and you gain access to the entire pool. The higher the TVL, the greater the incentive to attack.

How Bridge Security Has Evolved

The 2022 exploits catalyzed significant changes in how bridges are designed and operated. Bridge-specific losses dropped from roughly $2 billion in 2022 to under $300 million in 2024, reflecting both improved security practices and reduced trust in the riskiest bridge designs.

From Multisig to Cryptographic Verification

The Ronin and Harmony hacks demonstrated that multisig-based bridges are only as secure as their weakest key holder. The industry has responded in three directions:

  • MPC (multi-party computation) with TEE-backed signing reduces single-key exposure by distributing key generation and signing across multiple parties in hardware-isolated environments
  • Native-mint bridges like Circle's CCTP and LayerZero's OFT standard eliminate locked pools entirely by burning tokens on the source chain and minting on the destination
  • ZK light client bridges use zero-knowledge proofs to cryptographically verify source-chain state without trusting any intermediary, with zkBridge and IBC Eureka (launched April 2025) demonstrating production viability

Formal Verification and Audit Standards

The Nomad hack in particular pushed bridge teams toward formal verification of critical contract logic. If the initialization invariant (trusted root must not equal the default empty root) had been expressed as a formal property, automated tooling would have flagged the regression before deployment. Multiple audit firms now offer bridge-specific security reviews that test upgrade paths, not just the initial deployment.

Real-Time Monitoring

Ronin's six-day detection gap was a wake-up call. Bridge operators now deploy real-time monitoring that triggers alerts on unusual withdrawal patterns, large single transactions, or deviations between locked and minted asset ratios. Companies like Hypernative and Forta provide automated threat detection specifically designed for bridge contracts.

Bridge Security Trust Hierarchy

A rough consensus has emerged around a trust hierarchy for cross-chain transfers:

  1. Native verification (ZK light clients, IBC): cryptographic proof of source-chain state with no trusted intermediary
  2. Native mint/burn (CCTP, OFT): issuer-controlled but no locked pool to drain
  3. Optimistic verification with fraud proofs: valid if the challenge window is long enough and watchers are incentivized
  4. MPC/threshold signature schemes: better than multisig if key generation is distributed, but still relies on honest-majority assumptions
  5. Pure multisig: the highest-risk category, responsible for the largest losses in bridge history

Avoiding the Bridge Problem Entirely

The safest bridge is no bridge at all. Every bridge design, from simple multisig to ZK light clients, introduces trust assumptions beyond what the underlying chains provide. The question is whether cross-chain transfer is necessary in the first place.

For stablecoins specifically, the risks of cross-chain bridging compound with the assets' centralized freeze authority. A bridged USDC token carries the bridge's security risk on top of the issuer's counterparty risk. Native issuance on each target chain (as Circle does with CCTP) eliminates the bridge layer but still requires trusting the issuer.

Protocols like Spark take a fundamentally different approach to this problem. Spark's statechain architecture keeps Bitcoin on Bitcoin: transfers happen by rotating key shares between users and operators, not by locking assets in a contract on one chain and minting representations on another. There is no bridge contract to exploit, no locked pool to drain, and no wrapped token whose backing can be stolen. The attack surface that produced $2.8 billion in bridge losses simply does not exist.

This is not a theoretical advantage. The USDB stablecoin on Spark operates natively within this architecture, meaning dollar-denominated payments settle without ever crossing a bridge. For developers building payment applications where security against bridge exploits is a requirement, the Spark SDK provides integration without the bridge risk that has defined cross-chain stablecoin transfers.

What Builders Should Take Away

The three postmortems in this article cover different attack vectors, but the defensive lessons converge:

  • Audit key distribution, not just code: Ronin's contract was fine; its governance was not
  • Treat upgrades as attack surface: Nomad's initialization bug shipped in a routine deployment, not a major rewrite
  • Eliminate deprecated dependencies: Wormhole's fix existed before the hack happened
  • Monitor continuously: six-day detection gaps are unacceptable for contracts holding hundreds of millions
  • Minimize locked-pool exposure: native-mint and ZK verification models reduce the blast radius of any single compromise
  • Question whether bridging is necessary: the most secure cross-chain transfer is one that never crosses a bridge

For a deeper look at how different bridge architectures compare on security, see our Bitcoin L2 bridge security taxonomy and the bridge security comparison tool.

This article is for educational purposes only. It does not constitute financial or investment advice. Bitcoin and Layer 2 protocols involve technical and financial risk. Always do your own research and understand the tradeoffs before using any protocol.