All vulnerabilities
CRITICALWeb3curated

WEB3-BITFINEX-2016

Exchange · Custody · Bitfinex

Summary

In August 2016 the exchange Bitfinex lost about 119,754 bitcoin (around $71 million then, billions later) in one of crypto's largest hacks. Bitfinex used a multi-signature custody setup with BitGo, meant so that no single compromised key could move funds, but the per-wallet withdrawal controls were not enforced as designed, and the attacker pushed through more than 2,000 fraudulent transfers out of customer hot wallets. The case became famous years later: in 2022 the US DOJ arrested Ilya Lichtenstein and Heather "Razzlekhan" Morgan for laundering the proceeds and seized 94,636 BTC (then about $3.6 billion), the largest financial seizure in its history, and Lichtenstein later admitted he was the original hacker. It is a lesson in custody design, server-side policy enforcement, and the long memory of the blockchain.

How it happened

On paper, Bitfinex had done the responsible thing. Rather than pool customer funds, it used a multisig arrangement with the custody firm BitGo: each customer's bitcoin sat in its own wallet that needed two of three keys to move, with Bitfinex holding two keys and BitGo the third. The intended safety net was that BitGo, as the independent third signer, would refuse to co-sign withdrawals that broke pre-set per-wallet limits.

That net was never wired up. To satisfy a US regulator's view on segregated customer funds (the CFTC had just fined Bitfinex $75,000 and pushed it toward per-customer wallets), Bitfinex is understood to have configured the setup so that BitGo would co-sign transactions without enforcing those withdrawal limits. So when the attacker compromised Bitfinex's own infrastructure and obtained its two private keys, they could submit transaction after transaction, and BitGo's system dutifully co-signed all of them. More than 2,000 unauthorised transfers drained customer hot wallets. The multisig that should have stopped it did nothing, because the policy it was supposed to enforce had been switched off where it mattered.

The damage

The stolen 119,754 BTC was worth about $71 million in 2016 and would be worth billions at later prices. Bitfinex made the unusual choice to spread the loss across all of its customers, imposing a roughly 36% haircut on every account and issuing IOU tokens that it later repaid in full, an approach that kept the exchange alive. The story's second act made it legendary: in 2022 the US Department of Justice arrested Ilya Lichtenstein and his wife, the rapper and influencer Heather "Razzlekhan" Morgan, for laundering the proceeds, and seized 94,636 of the stolen bitcoin, then about $3.6 billion and the largest financial seizure in DOJ history. The forensic break was not magic: investigators followed laundered funds to a Walmart gift card redeemed under Morgan's own name and decrypted a cloud file holding the wallet keys. Lichtenstein pleaded guilty in 2023 and admitted he was the original hacker; the couple were sentenced in 2024 (Lichtenstein to five years, Morgan to eighteen months), and by then the government's recovery tied to the hack had grown to about $10 billion as bitcoin appreciated.

Why Bitfinex still matters

Bitfinex is two lessons in one. The first is about custody: a multisig is only as strong as the policy enforced behind it. A scheme that auto-co-signs without checking limits is single-signature with extra steps and a false sense of safety. The durable controls are to keep the overwhelming majority of funds in cold storage, size hot wallets to operational need, enforce withdrawal limits and approvals on the server side where a client cannot bypass them, and segregate signing keys across people and systems. The second lesson is for attackers: a blockchain is pseudonymous, not anonymous. The stolen coins sat traceable on-chain for six years until forensic analysis and an off-chain identity slip unwound the laundering, producing the largest seizure ever. The same key-theft theme reached its grim peak in the Bybit hack nearly a decade later.

How to fix it

  • Freeze withdrawals and rotate all signing keys and API credentials the moment anomalous transfers are detected.
  • Enforce and re-test withdrawal limits, allowlists, and multi-party approval on the server side, not just in the client.
  • Trace stolen funds on-chain and work with exchanges and law enforcement to flag and freeze them.
  • Move remaining funds to fresh, hardware-backed cold storage under a rebuilt signing policy.

How to avoid it

  • Keep the overwhelming majority of funds in cold storage; size hot wallets to operational need only.
  • Enforce multi-signature and withdrawal policy (limits, allowlists, velocity checks, approvals) on the backend, where the client cannot bypass it.
  • Segregate signing keys across people and systems so no single compromise can authorize large transfers.
  • Monitor for anomalous withdrawal patterns and require step-up approval for large or new destinations.
  • Independently audit custody and authorization logic; a multisig that does not enforce its own limits is single-sig with extra steps.

References

Related vulnerabilities

All Web3 →