BitcoinMachine
TECHNICAL_DOC // BLOCKCHAIN / ASSUME-UTXO
ASSUME
UTXO
AssumeUTXO is a bitcoin-core/">Bitcoin Core optimization that allows a new node to bootstrap from a serialized utxo-set/">UTXO set snapshot rather than replaying the entire blockchain from the block/">Genesis Block. The node becomes functional within minutes, while full historical validation continues in the background. Activated in Bitcoin Core 27.0 (2024).
TRADITIONAL IBD — INITIAL BLOCK DOWNLOAD
Download entire blockchain: ~650 GB Validate every transaction: ~600,000 blocks × all txs Time on modern hardware: ~1–5 days RAM required: 6 GB (UTXO set) Bottleneck: CPU-bound signature verification
ASSUME UTXO APPROACH
ASSUME UTXO — FAST PATH
1. Load UTXO snapshot (hardcoded hash in source code) Snapshot size: ~4 GB (serialized UTXO set) Time to load: ~5–15 minutes 2. Node immediately syncs and validates recent blocks only → Functional for sending/receiving within ~15 minutes 3. Background validation continues from Genesis Block → Full validation completes over hours/days in background → If background validation finds a discrepancy → shutdown
How the Snapshot is Trusted
CRYPTOGRAPHIC HASH
The snapshot hash is hardcoded into Bitcoin Core's source code, reviewed by developers and built by thousands of reproducible build verifiers. It is not trusted from the network — only from the compiled binary.
// In src/kernel/chainparams.cpp (Bitcoin Core 27.0): assumeutxo_data = { .height = 840000, .hash_serialized = uint256{ "a0f7d0c5f9b7e3a1d6c8...2f4b9e7a3c1d5f0b8e" }, .nChainTx = 992424860, .blockhash = uint256{ "0000000000000000000320a7...f9c2eff5d7b04" } } The hash commits to the ENTIRE UTXO set at block 840,000. If the loaded snapshot doesn't match → abort, fall back to IBD.
The snapshot is not trusted more than the developers who signed the Bitcoin Core release. Reproducible builds allow independent verification of the hardcoded hash.
SECURITY_TRADEOFF
AssumeUTXO does not skip validation — it defers it. The node will eventually fully validate the entire chain in the background. During the period before background validation completes, the node trusts the snapshot (which is as trustworthy as the Bitcoin Core binary itself). This is strictly more trust than a fully validated node, but strictly less trust than an SPV node or exchange.
TERMINOLOGY_INDEX
AssumeUTXO
Bitcoin Core feature allowing fast bootstrap from a UTXO snapshot with deferred full validation.
IBD
Initial Block Download. The traditional process of validating all blocks from Genesis to chain tip.
UTXO Snapshot
A serialized dump of the entire UTXO set at a specific block height.
Background Validation
The process running after AssumeUTXO bootstrap that validates all historical blocks from Genesis.
assumevalid
An older Bitcoin Core optimization that skips script validation for known-good old blocks. Not the same as AssumeUTXO.