AssumeUTXO
AssumeUTXO is a proposed mode for bootstrapping new full nodes that allows them to postpone verifying old block chain history until after the user is able to receive recent transactions.
Embedded in the code of the node would be a hash of the set of all spendable bitcoins and the conditions necessary to spend them (the UTXO set) as of a certain recent point in time. Similar to the existing assumevalid setting and other parameters used by nodes to converge on consensus, revisions of the assumeutxo hash would be checked for correctness by developers during code review. This would allow operators of new nodes to optionally trust that hash and download a UTXO set that matches that hash. For blocks produced subsequently to the UTXO set hash, the node would verify new blocks and update their own UTXO set like any other node without further trust. As currently designed, the node would also download and verify older blocks in the background so that it could eventually prove that the hash it first started with was correct.
Primary code and documentation
Optech newsletter and website mentions
2024
- Bitcoin Core #30807 has assumeUTXO nodes during background sync signal NODE_NETWORK_LIMITED
- Bitcoin Core #28553 adds assumeUTXO snapshot parameters for mainnet block 840,000
- Bitcoin Core #30598 removes block height from the assumeUTXO snapshot file metadata
- Bitcoin Core #30320 only loads a AssumeUTXO snapshot if it’s the ancestor of the most-PoW chain
- Notes from Bitcoin developer discussion about assumeUTXO for mainnet
2023
- Bitcoin Core bug found in computation of UTXO set hash
- Bitcoin Core #27596 adds assumedvalid snapshot chainstate and full validation sync in the background
- Summaries of Bitcoin Core developers in-person meeting
- Bitcoin Core #25740 allows background validation of bootstrapped UTXO state
2021
- Bitcoin Core #23155 extends the
dumptxoutset
RPC with new information - Bitcoin Core #19521 simplifies generating UTXO set hashes for old blocks
- MuHash function added in preparation for tracking UTXO state hashes
2020
2019
- 2019 year-in-review: AssumeUTXO
- CoreDev.tech demo and discussion of assumeutxo
- Assume valid discussion
See also
Previous Topic:
ASICBoost
Next Topic:
Async payments