Bitcoin is commonly described as a “decentralized database,” but looking at how a full node actually works, that framing feels a bit off.
Blocks form an append-only transaction log. Nodes replay that log to derive the current UTXO set, which Bitcoin Core stores in LevelDB (chainstate/). That’s not really how traditional databases work — it feels closer to event sourcing or a replicated state machine where the ledger state is derived rather than primary.
So which mental model is actually correct?
• Is the UTXO set the “database “?
• Or is the block log canonical, with the UTXO set essentially being a cache that could be reconstructed?
Is there anything from early mailing list discussions or Satoshi’s design notes that addresses this directly?










