Bitcoin system design overview — architecture, data flow, and design-document index

Figures: Satoshi Nakamoto

What this document series is

This is an editorial design reading of Bitcoin — a set of twelve pages written by Bitcoin Institute that decompose the system into its constituent parts and explain how they fit together. The series is not a protocol specification and does not carry normative authority. It is an analytical companion to the whitepaper, the visual glossary, and the reference implementation source code.

Baseline. Unless stated otherwise, “modern Bitcoin Core” means the v27+ codebase. Satoshi-era descriptions refer to v0.1 (January 2009). Where behavior differs between the two, both are noted.

Scope. The series covers the Bitcoin protocol and its reference implementation. Layer-2 systems (Lightning Network, sidechains) and application-layer software (wallets, exchanges, indexers) are mentioned at interface boundaries but not decomposed in detail.

This page is L0 — System design overview in the design-document series. It provides the system-wide picture and links to each domain page.

1. System architecture

The diagram below shows every major subsystem and the data paths between them. Each box maps to one or more pages deeper in the series.

Full node

External actors

broadcast tx

blocks / txs / addrs

submit block

accepted

block template

new block

User / Wallet

Peer nodes

Miner

Network layer

(P2P message handling)

Mempool

(unconfirmed tx pool)

Transaction validation

Block validation

Consensus engine

(most-work chain selection)

Chain state

(UTXO set + block index)

Storage layer

(blocks + undo data on disk)

Script interpreter

(signature + lock verification)

Policy filter

(relay / mempool rules)

SubsystemRoleDesign page
Network layerP2P gossip, peer management, message serializationL1 #1 P2P
Transaction layerUTXO model, Script, inputs/outputs, signaturesL1 #2 Transaction
Block / chain layerHeader, Merkle tree, chain structure, coinbaseL1 #3 Block/Chain
Consensus enginePoW, difficulty adjustment, fork handling, validationL1 #4 Consensus
Monetary layerIssuance schedule, fee market, miner incentivesL1 #5 Monetary
Cryptography layerKeys, signatures, hashes, address derivationL1 #6 Cryptography
Storage layerBlock files, UTXO database, chain state on diskL1 #7 Storage
Wallet / interfaceKey management, coin selection, PSBT, RPCL1 #8 Wallet

2. Layer model

Bitcoin’s design stacks into five layers. Each layer depends only on the layers below it.

Application layer

wallets, explorers, Lightning, exchanges

Transaction layer

UTXO model, Script, signatures

Consensus layer

block validation, most-work chain, difficulty adjustment

Network layer

P2P gossip, peer discovery, message relay

Storage layer

block files, UTXO database, chain index

LayerWhat it decidesKey data structures
ApplicationUser-facing behavior: address generation, coin selection, fee estimation, payment channelsHD key trees (BIP 32/44/84), PSBT
TransactionWhat a valid spend looks like: inputs, outputs, lock scripts, witness dataCTxIn, CTxOut, CScript, witness stack
ConsensusWhich blocks are accepted and which chain tip winsBlock header, Merkle tree, difficulty target, nChainWork
NetworkHow nodes find each other and exchange dataversion, inv, getdata, block, tx messages
StorageHow validated data persists to disk and how it is retrievedLevelDB (UTXO set), blk*.dat / rev*.dat flat files

3. Data flow: transaction to blockchain

The sequence below traces a single transaction from the moment a user signs it to the moment it is buried under confirmations.

BlockchainMinerNode BNode AWalletBlockchainMinerNode BNode AWalletTransaction now has 1 confirmationEach subsequent block adds 1 confirmationBroadcast signed transactionPolicy check (fee, size, standard scripts)Validate (UTXO exists, signature correct, no double-spend)Accept into mempoolRelay via inv → getdata → txIndependent validationAccept into mempoolBuild block template from mempoolSolve proof-of-work (iterate nonce)Broadcast new blockValidate block (header PoW, all txs, Merkle root)Update UTXO set, extend chain stateRelay blockValidate and extend chain

Key design properties visible in this flow:

  • No central checkpoint. Every node validates independently — there is no authority a transaction must pass through.
  • Two-phase acceptance. A transaction is first accepted into the mempool (unconfirmed), then accepted into a block (confirmed). The mempool is local and non-binding; only block inclusion is consensus-level.
  • Most-work chain wins. If two miners find blocks at nearly the same time, the network temporarily forks. Nodes follow whichever chain accumulates the most total proof-of-work. The losing block becomes stale (orphaned); its transactions return to the mempool.

4. Component interaction map

The flowchart below shows how the major code-level components interact when a node receives a new block from the network.

fail

pass

yes

no

any tx invalid

all pass

mismatch

match

yes

no

no

yes

Receive block message

from peer

Deserialize

block header + body

Header checks

valid PoW?

timestamp ok?

correct difficulty?

Reject block,

penalize peer

Already

in chain?

Ignore duplicate

Validate every transaction:

• UTXO lookup

• script execution

• signature verification

• amount check (inputs ≥ outputs)

Recompute Merkle root,

compare to header

Connect block to chain state:

• spend UTXOs (remove from set)

• create new UTXOs (add to set)

• write block to disk

• update chain index

Extends current

best chain?

Update chain tip,

remove confirmed txs from mempool

More total work

than current tip?

Store as

stale branch

Reorganize:

disconnect old tip blocks,

connect new branch

5. Two-era comparison

The table below gives a brief structural comparison between the Satoshi-era v0.1 implementation and modern Bitcoin Core (v27+ baseline). Each row is explored in depth in the domain pages listed in § 7.

AspectSatoshi v0.1 (Jan 2009)Modern Bitcoin Core, v27+ baseline
Consensus rule enforcementSingle CheckBlock / CheckTransaction pathSeparated into consensus, policy, and validation layers
Chain selectionMost-work chain (measured by cumulative difficulty)Same rule; implementation hardened with nChainWork tracking
Script systemFull opcode set including OP_CAT, OP_MUL, etc.Many opcodes disabled (2010); SegWit witness versioning added (2017)
Transaction formatVersion 1, no witnessSegWit witness field (BIP 141), version 2 (BIP 68 / 112 / 113)
Block sizeNo explicit limit in v0.1 (1 MB added in 2010)4 MWU weight limit (BIP 141), ~1.5–2 MB observed
Network protocol7 message types27+ message types; compact blocks (BIP 152), addr v2 (BIP 155)
Peer discoveryHardcoded IRC channel + addr messagesDNS seeds, addrv2, Tor/I2P/CJDNS support
StorageBerkeley DB for all stateLevelDB (UTXO set), flat block files (blk*.dat), undo files (rev*.dat)
MiningCPU only, internal miner in clientExternal via getblocktemplate (BIP 22/23); Stratum v2 in ecosystem
WalletIntegrated in node binary, random keysDescriptor wallets (BIP 380+), logical separation (experimental multiprocess in progress)
CryptographyOpenSSL for ECDSA + SHA-256libsecp256k1 (custom ECDSA/Schnorr), internal SHA-256

6. Reading guide

Different readers benefit from different paths through the series.

AudienceSuggested reading order
New to BitcoinStart with the visual glossary, then return here, then L1 #2 (transaction) → #3 (block) → #4 (consensus)
DeveloperThis overview → L1 #2 (transaction) → #3 (block) → #4 (consensus) → #1 (P2P) → #7 (storage)
Researcher / economistThis overview → L1 #5 (monetary) → #4 (consensus) → #2 (transaction) → L2 #9 (architecture evolution)
Security auditorL1 #2 (transaction) → #4 (consensus) → #1 (P2P) → #6 (cryptography) → L2 #11 (security model)

7. Design-document index

The series is organized into three levels:

  • L0 — this page (system overview)
  • L1 — eight domain pages, each covering one subsystem end-to-end
  • L2 — three deep-dive pages on cross-cutting topics

Bitcoin

Design Series

L0 Overview

L0: System overview

L1 Domains

1: P2P Network

2: Transaction

3: Block / Chain

4: Consensus

5: Monetary

6: Cryptography

7: Storage

8: Wallet / RPC

L2 Cross-cutting

9: Architecture evolution

10: Ecosystem

11: Security model

L1 — Domain pages

#PageScope
1P2P networkPeer discovery, connection lifecycle, message format, gossip relay, compact blocks, BIP 324 transport
2TransactionUTXO lifecycle, transaction structure, Script evaluation, signatures (ECDSA/Schnorr), SegWit, Taproot
3Block / chainHeader fields, Merkle tree, chain structure, most-work chain selection, block weight, coinbase
4ConsensusPoW mechanics, difficulty adjustment, block validation, fork types, activation mechanisms, finality model
5Monetary21M cap arithmetic, halving schedule, fee market, miner incentives, fee-only future
6Cryptographysecp256k1, ECDSA/Schnorr, SHA-256d, address derivation, HD wallets, quantum considerations
7StorageBlock files, UTXO database (LevelDB), chain state, mempool, pruning, assumeUTXO
8Wallet / RPCDescriptor wallets, coin selection, PSBT, fee estimation, RPC/REST/ZMQ interfaces

L2 — Cross-cutting deep dives

#PageScope
9Architecture evolutionSide-by-side v0.1 vs v27+ comparison across all 8 domains
10EcosystemLightning Network, sidechains (Liquid), L1 extensions (Ordinals), mining pools
11Security modelTrust assumptions, attack taxonomy, defense layers, economic security, quantum threat