The Bitcoin Network

In order to participate in the Bitcoin network, users download Bitcoin software and run it on their computer. Computers running Bitcoin software then connect to form a peer-to-peer network. Each computer independently calculates and stores three data structures – the blockchain, UTXO set and mempool.

Once the software is installed and running, the computer becomes a full node and seeks out connections to other computers, or peers, who are also running Bitcoin software. As a full node, the computer then ‘asks around’ for the Bitcoin blockchain, always accepting the chain with no rule violations and the most accumulated Proof-of-Work as the correct chain.

Once the blockchain is downloaded, the full node will re-verify both the transactions and the Proof-of-Work in each subsequent block to ensure none of the protocol rules have been violated. While the chain is being verified, the full node uses the blockchain to construct the database of current bitcoin balances — known as the Unspent Transaction Output, or UTXO, set.

The full node will request from its connections their ‘waiting list’ of signed transactions that have not yet been added to the blockchain. The node then re-verifies these transactions to ensure no rules have been broken, before adding them to its own waiting list. This waiting list is called the mempool. After assembling its own mempool, the full node will constantly receive transactions from its network peers, verify them, and relay them to its other peers, ensuring that valid transactions are propagated across the network.