
A single Ethereum block reorg caused THORChain to pause swaps involving 10 blockchain networks. The surprising part? It all started with a 10 ETH deposit that never actually reached the vault. Here's what happened. 1️⃣ Deposit detected A user submitted 10 ETH to a THORChain vault. The transaction appeared in an Ethereum block, and THORChain recorded the deposit. 2️⃣ Ethereum block reorg Ethereum replaced the original block, removing the deposit from the canonical chain. But THORChain had already accounted for those funds. 3️⃣ Incorrect refund The swap failed its price-limit condition, triggering a refund. THORChain sent 10 ETH to the user, even though its vault had never received the corresponding deposit. 4️⃣ Emergency halt THORChain's solvency checker detected the shortfall and paused swaps. The user later returned the extra 10 ETH. So, what went wrong technically? The key issue was the difference between observing a transaction and having sufficient confirmation that it will remain in Ethereum's canonical history. A transaction appearing in a block doesn't mean that block cannot be reorganized. This is where @ethlabs_org raised an interesting solution: Ethereum's Fast Confirmation Rule (FCR). Instead of simply waiting for an arbitrary number of blocks, FCR analyzes Ethereum validator attestations to determine whether a block has sufficient support. It can provide strong confirmation in roughly 15–30 seconds, significantly earlier than Ethereum's full consensus finality. But FCR isn't absolute finality. Its guarantees still depend on network and validator assumptions. The important distinctions: • Transaction observed ≠ Transaction finalized • Block confirmations ≠ Validator-attestation-based confirmation • Fast confirmation ≠ Consensus finality For cross-chain infrastructure, receiving a deposit is only one part of the process. Verifying that the source-chain transaction is sufficiently secure before releasing funds is equally important. That's what makes this incident such a useful example of why confirmation and finality should not be confused.

