Lesson 0004: Miners, Nodes & the Block Race

โฑ ~20 minutes ๐Ÿ“… 2026-06-10 ๐ŸŽฏ Supplementary โ€ข Block Propagation
Goal: Understand exactly what happens the moment a miner finds a valid block โ€” how it's validated, how it propagates, what happens when two miners find blocks simultaneously (stale blocks), and the fundamental relationship between miners (who propose blocks) and full nodes (who enforce the rules).

Part 1: The Moment of Discovery โ€” What Happens When a Block Is Solved

After trillions of nonce attempts, an ASIC finds a double-SHA-256 hash below the difficulty target. The block is valid. Now what?

The Winning Miner's Immediate Actions

  1. The ASIC signals the mining node: "I found it โ€” here's the nonce." The mining software (bitcoind or the pool server) assembles the full block: the 80-byte header (with the winning nonce) plus the complete transaction list (which the header's Merkle root already commits to).
  2. The miner broadcasts the block: The mining node sends a block message to every connected peer. This is a push โ€” no inv/getdata round-trip needed. Speed matters: every millisecond of delay increases the chance another miner finds a competing block at the same height.
  3. The miner immediately starts on the next block: Even before validation propagates, the miner builds a new block template on top of the one they just found and starts hashing. They want to extend their own chain before anyone else can.
โฑ๏ธ The race is measured in milliseconds. Block propagation speed is a genuine competitive advantage. A miner with slow peers or poor network topology loses more blocks to stale-block races. This is why miners invest in low-latency fibre connections and the Fast Internet Bitcoin Relay Engine (FIBRE) network โ€” a UDP-based relay that shaves hundreds of milliseconds off block delivery.

What Every Receiving Full Node Does: The Validation Checklist

When a full node receives a block message, it runs a comprehensive validation gauntlet. Here's the checklist, in order:

1
Check the block header's PoW. Double-SHA-256 the header. Is the hash below the current difficulty target? If not, reject immediately โ€” no further checks needed. This is cheap to verify.
2
Check the previous block hash. Does it point to a block the node already knows about and considers part of the valid chain with the most work? If it points to an unknown block, the node may hold it in an "orphan block" buffer and request the missing parent.
3
Check the timestamp. Is it greater than the median of the last 11 blocks, and no more than 2 hours in the future? This prevents miners from manipulating the difficulty adjustment.
4
Check the Merkle root. Recompute it from the transaction list. Must match the root in the header exactly. If not, the block is structurally corrupt.
5
Check the block size/weight. Must not exceed 4 million weight units. The coinbase transaction's size is also checked (must be within 100 bytes for the arbitrary data portion).
6
Validate every transaction. This is the expensive part. For each transaction: verify all input signatures (or witness data), confirm referenced UTXOs exist and haven't been spent, check that input values โ‰ฅ output values, verify locktime constraints, ensure scripts execute successfully. The coinbase gets special treatment: no real inputs, output value โ‰ค subsidy + fees.
7
Check the coinbase maturity. Ensure the coinbase is paying the correct subsidy (3.125 BTC, valid until the next halving). Total fees = ฮฃ(inputs) โˆ’ ฮฃ(outputs) for all non-coinbase transactions. Coinbase output โ‰ค subsidy + total fees.
8
Update state. If all checks pass: append the block to the chain tip, update the UTXO set (remove spent outputs, add new ones), remove confirmed transactions from the mempool, and relay the block to all peers.
๐Ÿ”‘ Key insight: Steps 1โ€“5 are fast (header-only or structural checks). Step 6 (transaction validation) is the bottleneck โ€” signature verification is CPU-intensive. Modern bitcoind uses libsecp256k1 with optimised assembly and parallel signature verification to minimise this.
Source: Bitcoin Developer Guide โ€” Block Broadcasting; Bitcoin Wiki โ€” Block Validation Rules

๐Ÿง  Quick Check

A full node receives a new block. The header's PoW checks out, the previous block hash is correct, the Merkle root matches โ€” but one transaction has an invalid signature. What happens?

Part 2: Two Miners, One Block Height โ€” The Stale Block Race

Bitcoin blocks are found roughly every 10 minutes on average, but the timing is random (a Poisson process). Sometimes two miners find valid blocks within seconds โ€” or even milliseconds โ€” of each other.

What Actually Happens

Block 800,000 โ€”โ€”โ€”โ€”โ€”โ€” Block 800,001 (Miner A finds it first, in Texas)
         \
          โ€”โ€” Block 800,001 (Miner B finds it ~3 seconds later, in Kazakhstan)

Both blocks are fully valid. Both pay the correct subsidy. Both contain valid transactions. But they are at the same height โ€” they both point to block 800,000 as their parent. Only one can survive.

The Timeline of a Chain Split

T+0s
Miner A finds block at height 800,001. Broadcasts it. Nodes in the Americas and Europe see it first due to network topology.
T+3s
Miner B finds their own block at height 800,001. Broadcasts it. Nodes in Asia see it first. Miner B hadn't yet received A's block โ€” the signal was still propagating.
T+5s
The network is now split. Some nodes have A's block at their tip. Others have B's block. Both groups consider their tip valid. Each group's miners start building on whichever block they saw first.
T+8s
Nodes that had A's block now receive B's block (and vice versa). Each node now has both competing blocks. The node keeps both in memory but designates the one it received first as its active chain tip.
T+~10 min
The tie is broken. A miner (any miner) finds block 800,002 โ€” and it builds on one of the two competing tips. Whichever chain gets block 800,002 first becomes the longest (has more accumulated PoW). The other chain's block becomes stale.
T+~10 min+ฮ”
Reorganisation. Nodes that were following the losing chain reorganise: they undo the stale block, restore its transactions to their mempool, and apply the winning chain's blocks. Everyone now agrees on a single chain.
โœ… Good news for users: Transactions that were only in the stale block return to mempools and get included in a future block โ€” usually the very next one. No coins are lost. A 1-block reorg is a normal, expected event that happens roughly once every few weeks.
โš ๏ธ Bad news for Miner B: They spent enormous electricity finding a valid block and earned nothing. Their block subsidy (3.125 BTC) is on the stale chain and will never be spendable (coinbase outputs require 100 confirmations on the winning chain). This is the economic cost of slow propagation.

Why Don't Miners Just Keep Mining on Their Own Block?

A miner who stubbornly continues mining on the stale tip (the one that didn't get the next block) is racing against the entire honest network. The winning chain already has a 1-block lead and the combined hashrate of everyone else building on it. For the stubborn miner to overtake, they would need to find two blocks faster than the rest of the network finds one. Unless they control >50% of hashrate, this is a losing bet.

Rational miners immediately switch. The moment a node receives a valid block at the current height (or higher), it builds a new block template on top of it โ€” even if it was previously mining on a different tip. The incentive is to be the one who finds block 800,002, not to defend a block that's already losing.

๐Ÿ”‘ The network doesn't "vote" on the correct chain. It converges through pure economic rationality. Every miner wants their block to be part of the longest chain. Mining on a losing tip is throwing money away. The convergence is automatic and requires no coordination.

๐Ÿง  Quick Check

Miner B's block becomes stale (orphaned). What happens to the transactions that were only in Miner B's block?

Part 3: The Miners-and-Nodes Relationship

This is one of the most misunderstood dynamics in Bitcoin. Let's clarify exactly who does what.

โ›๏ธ Miners

๐Ÿ–ฅ๏ธ Full Nodes

The Power Dynamic: Nodes Rule, Miners Serve

It's tempting to think miners "run" Bitcoin because they produce blocks and earn rewards. This gets the power relationship backwards:

Miners propose blocks. Nodes accept or reject them. A block that violates any consensus rule โ€” excess subsidy, invalid signature, double-spend โ€” is rejected by every full node on the network. The miner who produced it wasted all their electricity. They earned nothing.

If 100% of miners colluded to change a rule, and 0% of nodes accepted it, the miners would be mining a worthless fork. The economic value of bitcoin exists because users (running nodes) accept it as payment. Miners convert electricity into bitcoin โ€” but only if the bitcoin they produce is accepted by the node network.

Why Run a Full Node If You're Not Mining?

This is a common question. Full nodes earn no block rewards. They cost money to run (disk space, bandwidth, electricity). Why does anyone bother?

  1. Self-sovereign verification: If you run your own node, you don't need to trust anyone. You validate every transaction independently. Exchanges, payment processors, and large holders run nodes to protect their assets.
  2. Privacy: Light wallets that query third-party servers leak which addresses belong to you. A full node lets you query your own blockchain โ€” nobody learns your balance or transaction history.
  3. Network health: Every full node is a relay point that helps transactions and blocks propagate. More nodes = more resilient network. Running a node is a public good.
  4. Economic weight: If a contentious protocol change were proposed, the side that economic nodes (exchanges, custodians, payment processors) choose is the side that retains value. Miners follow the economic majority โ€” they mine where the fees are.
๐Ÿ“Š The network today: Approximately 50,000โ€“80,000 reachable full nodes run globally (and many more behind NAT/firewalls). Compare this to a few dozen significant mining pools. Nodes outnumber miners roughly 1,000:1. This is the distribution that protects Bitcoin.
Source: Bitcoin.org โ€” Running a Full Node; Bitcoin Developer Guide โ€” P2P Network; Satoshi Nakamoto โ€” Bitcoin Whitepaper, ยง5 (Network)

The Full Picture: How It All Fits Together

Let's trace the entire loop โ€” from block discovery through propagation through miner response โ€” in one sequence:

  1. Miner A finds valid nonce
         โ”‚
  2. Miner A broadcasts BLOCK to peers
         โ”‚
  3. Peers validate (8-step checklist)
         โ”‚
  4. Peers relay BLOCK to their peers  โ†โ”€โ”€ Network floods the block
         โ”‚
  5. Miner B receives BLOCK
         โ”‚
  6. Miner B validates, accepts it as new tip
         โ”‚
  7. Miner B abandons current work, builds new template on BLOCK
         โ”‚
  8. Miner B starts hashing for block N+1
         โ”‚
  9. ~10 min later, someone finds block N+1 โ†’ repeat from step 1
      
๐Ÿ”— This is the heartbeat of Bitcoin. Every ~10 minutes, this cycle repeats. A block is found, it floods the network in seconds, every miner resets, and the race begins again. The system has been running this loop continuously since January 2009 โ€” over 880,000 times.

Common Misconceptions

โŒ "Miners control Bitcoin because they produce blocks."
โœ… Nodes control Bitcoin. Miners propose; nodes dispose. If every miner switched to invalid software tomorrow, nodes would reject every block and the network would halt until honest miners returned.
โŒ "There's a central server that tells miners which block to work on."
โœ… There is no coordinator. Each miner independently builds a template and starts hashing. The convergence is emergent and economic โ€” no one gives orders.
โŒ "Stale blocks mean transactions are double-spent."
โœ… Transactions in stale blocks return to the mempool. They are mined again, typically in the very next block. No funds are lost. A stale block is just a valid block that lost a race.

๐Ÿง  Quick Check

If 100% of miners colluded to increase the block subsidy from 3.125 BTC to 6.25 BTC (breaking the 21M supply cap), what would happen?

Key Takeaways

  1. Block validation is a gauntlet. Full nodes run an 8-step checklist on every block โ€” header PoW, previous hash, timestamp, Merkle root, size/weight, every transaction's signatures and scripts, coinbase subsidy, and UTXO set consistency. Any failure rejects the entire block.
  2. Stale blocks are normal. When two miners find blocks at nearly the same time, the network temporarily splits. The next block breaks the tie โ€” the chain with more accumulated PoW wins, the other is discarded. Transactions in stale blocks return to the mempool.
  3. Miners switch instantly. The moment a miner receives a valid new block, they abandon current work and start mining on top of it. Mining on a losing chain is throwing money away โ€” the rest of the network is advancing the winning chain.
  4. Nodes are the sovereigns; miners are the servants. Miners expend energy to propose blocks. Nodes independently enforce the rules. If miners produce invalid blocks, nodes reject them regardless of hashrate. Economic value follows the node network, not the miners.
  5. The cycle is self-sustaining. Block found โ†’ flood the network โ†’ validate โ†’ relay โ†’ miners reset โ†’ repeat. No coordinator, no downtime, no single point of failure. Over 880,000 times and counting.
๐Ÿ”— Primary source for deeper reading: Bitcoin Developer Guide โ€” P2P Network โ€” the canonical reference for block propagation, validation, and the peer-to-peer protocol. For the node-miner power dynamic, read Bitcoin.org โ€” Full Node and Bitcoin Wiki โ€” Full Node. Also: Chapters 8โ€“10 of Mastering Bitcoin, 2nd Edition (Antonopoulos) for the complete network and mining deep-dive.
๐Ÿ’ฌ Questions? Ask your agent-teacher: "walk me through a real historical chain split," "explain compact block relay in depth," "how does FIBRE work," or "what's the difference between a full node and a light client?" Every question deepens the model.

Navigate