Finality and Forks
Chain agreement.
Finality and Forks is a free Web3 & DApp Development Fundamentals lesson on CoddyKit — lesson 4 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Web3 & DApp Development Fundamentals learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
When Is a Block Final?
Adding a block is not the same as it being permanent. Finality is the guarantee that a block can no longer be reverted.
Understanding finality and forks is key to knowing when a transaction is truly settled.
What Is a Fork?
A fork occurs when the chain temporarily splits into two competing branches — for example, when two valid blocks appear at nearly the same time.
The network must decide which branch becomes the official history.
Block 9
|
+-- Block 10a (branch A)
|
+-- Block 10b (branch B)
Which one wins?The Fork Choice Rule
A fork choice rule tells nodes which branch to follow. PoW chains often use the longest (heaviest) chain rule.
Whichever branch accumulates the most work or attestations becomes canonical.
Orphaned and Stale Blocks
The losing branch's blocks become orphaned (or stale). Their transactions return to the mempool to be included in a future block.
This is why a single confirmation is not yet fully safe.
Probabilistic Finality
In PoW, finality is probabilistic: the more blocks built on top of yours, the less likely it can be reversed.
Each additional confirmation makes a reversal exponentially harder. Bitcoin users often wait for 6 confirmations.
tx in Block 100:
+1 block -> low confidence
+6 blocks -> very high confidence
reversal cost grows exponentiallyAbsolute Finality
Some PoS systems offer absolute (deterministic) finality: once a block is finalized by validator votes, it can never be reverted without massive slashing.
This gives a clear, hard cutoff instead of waiting for probabilities to improve.
Finality in Ethereum PoS
Ethereum groups slots into epochs. After two epochs of supermajority attestations, blocks become finalized.
Reverting a finalized block would require burning at least one-third of all staked ETH.
Soft Forks
A soft fork is a backward-compatible rule change: blocks valid under the new rules are still valid under the old ones.
Non-upgraded nodes can still follow the chain, so soft forks are less disruptive.
Hard Forks
A hard fork is a backward-incompatible change. Nodes must upgrade, or they will reject the new blocks.
If the community disagrees, a hard fork can permanently split one chain into two (for example, Ethereum and Ethereum Classic).
Reorganizations
A reorg happens when nodes switch from one branch to a longer competing branch, replacing recently accepted blocks.
Small reorgs are normal near the chain tip; deep reorgs are a serious security concern.
Putting It Together
Forks are temporary disagreements resolved by a fork choice rule. Finality tells us when a block is safe: probabilistic in PoW, often absolute in PoS.
Soft and hard forks describe how rules themselves change over time.
Quick Check
Test your understanding of finality and forks.
Recap: Finality and Forks
You learned that:
- A fork is a temporary split resolved by a fork choice rule
- Losing blocks become orphaned
- PoW gives probabilistic finality; PoS can give absolute finality
- Soft forks are compatible; hard forks are not
Next course: gas and transactions.
Frequently asked questions
Is the “Finality and Forks” lesson free?
Yes — the full text of “Finality and Forks” is free to read here on the web, and the Web3 & DApp Development Fundamentals course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Web3 & DApp Development Fundamentals course, upgrade to CoddyKit PRO.
What will I learn in “Finality and Forks”?
Chain agreement. You practise Web3 & DApp Development Fundamentals with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Web3 & DApp Development Fundamentals?
No prior experience is required. Web3 & DApp Development Fundamentals on CoddyKit is structured for beginners through advanced learners; this is — lesson 4 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Finality and Forks” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Web3 & DApp Development Fundamentals lesson?
Yes. Every Web3 & DApp Development Fundamentals lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Proof of Work
- Proof of Stake
- Other Mechanisms
- Finality and Forks