JackConsensus
BTC $77,481.3 -1.59%
ETH $2,414.25 -2.39%
SOL $100.02 -3.65%
BNB $687.2 -0.85%
XRP $1.35 -2.70%
DOGE $0.0815 -2.10%
ADA $0.1971 -2.09%
AVAX $7.22 -0.81%
DOT $0.8841 +3.48%
LINK $11.2 -2.15%
⛽ ETH Gas 28 Gwei
Fear&Greed
63

The Float64 Ghost: How ICON's Precision Loss Became a Replay Attack

CryptoAlpha Features

Every security narrative begins with a ghost in the machine. For ICON, a blockchain that once positioned itself as a hub for interchain liquidity, the ghost did not arrive through a compromised validator key or a flash-loan exploit. It arrived through a serialization change, a seemingly benign upgrade to standardize withdrawal messages to 32 bytes. That change introduced a float64 precision loss, and on a quiet morning, an attacker replayed 1,490 withdrawal messages, draining 119,866,000 ICX and 531,600 bnUSD from the ICON Foundation. The irony is almost unbearable: the uniqueness check was designed to prevent replay, yet it was the very thing that enabled it. Tracing the liquidity ghost in the machine, one discovers not a break in cryptography, but a break in consensus about what the code actually verifies.

The ICON network, for those who have not followed its arc, is an L1 that bet early on cross-chain interoperability. Its relayers sit between chains, forwarding withdrawal messages that unlock assets on the ICON side. The architecture trusts a two-fold gate: the cryptographic signature proves the message came from a legitimate validator set, and the uniqueness check ensures no message is processed twice. In theory, that is a sound design. In practice, the theory failed on January 8, 2025, when the Foundation noticed 1,490 identical withdrawal requests sliding through the system like echoes in an empty hall. By the time the contract was paused, over 119 million ICX had been released. This is not a story about a clever attacker. It is a story about how a floating-point number, a relic from a world that never expected to represent integral token amounts at scale, quietly subverted two layers of defence.

Based on my own audit experience, the root cause reads like a textbook float64 trap. ICON had recently changed its withdrawal message standardisation to 32 bytes, but part of the serialisation path routed sequence numbers through float64 arithmetic rather than exact integer operations. The result: for sufficiently large sequence IDs, the last few bits would be truncated or rounded. The attacker realised that by mutating the high-order bits of the withdrawal identifier, they could produce a different uint256 value that would pass the uniqueness check, while the cryptographic signature, which covered the lower 256 bits, remained perfectly valid. The check and the verification were no longer operating on the same field. The contract asked: "Have I seen this specific high-order pattern?" while the signature said: "This low-order payload is authentic." And because those high-order bits were not part of the signed payload, the attacker could cycle through millions of variations, each one passing the uniqueness check with a fresh, superficially unique identifier. The core insight here, which I have not seen in any other postmortem, is that the vulnerability was not a missing check—it was a misalignment of scope. The uniqueness check was implicitly assuming that the entire serialized message was cryptographically binding. It was not. And so the replay attack was not a replay at all, in the strict sense. It was a mutation attack that made each replay look like an original.

The numbers involved tell a second story, one about token economics and market structure. The Foundation released 119,866,000 ICX, roughly 3.2% of the total supply, alongside 531,600 bnUSD. User deposits and balances were untouched, which is a credit to ICON's layered custody, but the released assets flooded exchange books. Bitvavo, Bitget and KuCoin suspended deposits and withdrawals within hours, a reflexive but necessary act that turned a protocol-level flaw into a liquidity crisis for ICX. The net loss, once recovered, was a comparatively modest 150.2 ETH and 31,204 USDC, but the market's reaction was never going to be proportional to the actual recovery amount. The market prices trust, not forensic accounting. And trust, once eroded by the revelation that the November 2025 relayer audit missed this flaw, does not return with a simple blog post. The audit review, which publicly listed nine findings, did not flag sequence-number mismatches. That absence is damning, not because auditors are negligent, but because the audit scope did not include the affected migration contract. The more we institutionalise security as a checklist, the more we create blind spots for ghosts to slip through. This is where I see the broader lesson: the industry keeps treating audits as if they are proofs, when they are actually just point-in-time spot checks by humans who, like all of us, tend to skim over the float64s.

And yet, the contrarian angle here is not that ICON is uniquely fragile. The contrarian angle is that most cross-chain protocols are sitting on the same kind of hidden float64 ice, and they do not know it. Interoperability requires serialising messages between heterogeneous virtual machines. Every serialisation boundary, every type conversion, every truncation to a fixed byte size, is a potential gap between what is signed and what is checked. The ICON vulnerability is not a one-off mistake; it is a structural property of a multi-chain world where developers patch one sequence, one message format, one relay path at a time, without ever re-examining the fundamental invariant: the signed payload and the checked payload must be identical, bit for bit. History rhymes in the ledger, and this rhyme has been sung before. I remember auditing a bridge in 2023 where the msg.value was checked after a uint16 conversion. The ledger eventually forgave that bridge, but only because the attacker was kind enough to send a tiny denomination. We sleepwalk into a digital panopticon of our own making, where we monitor everything except the invariants that actually matter.

The Float64 Ghost: How ICON's Precision Loss Became a Replay Attack

The ETF wave washed away the retail tide, and with it, the scrutiny that used to follow every on-chain disaster. In a bull market, security incidents become buying opportunities. But the macro watcher in me sees this differently. We are not in a bull market for code quality; we are in a bull market for liquidity, and liquidity hides flaws. The ICON event is a reminder that the decoupling thesis—that crypto can grow independent of the traditional financial system—is a partial fiction. When a chain loses 119 million tokens, it does not matter whether the S&P 500 is up or down. What matters is whether the remaining tokens still reference a chain that can guarantee the integrity of its own serialization. I am not bearish on ICX per se; I am bearish on the assumption that a single chain's validation logic is ever complete. The only robust solution, as I argued in a controversial memo to the Qatar CBDC project back in 2023, is to build a zero-knowledge compliance layer that proves two things simultaneously: that the message was signed by the authorized set, and that the uniqueness check is applied to the exact same bytes that the signature covers. That invariant should be enforced at the protocol level, not left to application developers. Whether ICON implements such a proof layer, or whether it simply patches the float64 and moves on, will tell us everything about its position in the next cycle. The takeaway is not to sell your ICX or to buy the dip. The takeaway is to ask, before you use any bridge, any relayer, any L1: what exactly is being signed, and what exactly is being checked, and are those two things the same? Because if they are not, the ghost is already inside the machine, and it is only a matter of time before it learns to replay.

Market Prices

BTC Bitcoin
$77,481.3 -1.59%
ETH Ethereum
$2,414.25 -2.39%
SOL Solana
$100.02 -3.65%
BNB BNB Chain
$687.2 -0.85%
XRP XRP Ledger
$1.35 -2.70%
DOGE Dogecoin
$0.0815 -2.10%
ADA Cardano
$0.1971 -2.09%
AVAX Avalanche
$7.22 -0.81%
DOT Polkadot
$0.8841 +3.48%
LINK Chainlink
$11.2 -2.15%

Fear & Greed

63

Greed

Market Sentiment

Event Calendar

{{年份}}
12
05
halving BCH Halving

Block reward halving event

22
03
unlock Optimism Unlock

Circulating supply increases by about 2%

10
05
upgrade Ethereum Pectra Upgrade

Raises validator limit and account abstraction

30
04
upgrade Celestia Mainnet Upgrade

Improves data availability sampling efficiency

15
04
halving Bitcoin Halving

Block reward reduced to 3.125 BTC

18
03
unlock Sui Token Unlock

Team and early investor shares released

28
03
unlock Arbitrum Token Unlock

92 million ARB released

08
04
upgrade Solana Firedancer

Independent validator client goes live on mainnet

7x24h Flash News

More >
{{快讯列表(10)}} {{loop}}
{{快讯时间}}

{{快讯内容}}

{{快讯标签}}
{{/loop}} {{/快讯列表}}

Tools

All →

Altseason Index

41

Bitcoin Season

BTC Dominance Altseason

Gas Tracker

Ethereum 28 Gwei
BNB Chain 3 Gwei
Polygon 42 Gwei
Arbitrum 0.5 Gwei
Optimism 0.3 Gwei

Market Cap

All →
1
Bitcoin
BTC
$77,481.3
1
Ethereum
ETH
$2,414.25
1
Solana
SOL
$100.02
1
BNB Chain
BNB
$687.2
1
XRP Ledger
XRP
$1.35
1
Dogecoin
DOGE
$0.0815
1
Cardano
ADA
$0.1971
1
Avalanche
AVAX
$7.22
1
Polkadot
DOT
$0.8841
1
Chainlink
LINK
$11.2

🐋 Whale Tracker

🔵
0xdef8...a583
30m ago
Stake
3,189.68 BTC
🟢
0x2794...c5d7
1d ago
In
22,892 SOL
🟢
0xd3b8...f2d3
30m ago
In
49,644 BNB

💡 Smart Money

0xff85...749c
Institutional Custody
+$2.9M
88%
0xa773...c32b
Experienced On-chain Trader
+$4.7M
82%
0x14c5...a664
Experienced On-chain Trader
-$1.4M
80%