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
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).
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.
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.
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
Propose blocks โ they assemble candidate blocks and
expend energy to find valid PoW
Run sometimes a full node (solo miners do; pool miners
don't)
Earn block subsidies and fees
Select which transactions to include
Determine the ordering of transactions within a block
Cannot change consensus rules โ an invalid block is
rejected by every node regardless of how much hashrate produced it
๐ฅ๏ธ Full Nodes
Enforce the rules โ every block and transaction is
independently validated
Maintain a full copy of the UTXO set
Relay transactions and blocks to peers
Define what "Bitcoin" is โ if miners produce a
block that breaks the rules nodes run, it's not Bitcoin
Earn nothing directly (run voluntarily by users, businesses,
enthusiasts)
Are the ultimate authority. Miners serve nodes, not
the other way around.
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?
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.
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.
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.
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.
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
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.
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.
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.
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.
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.