What Is the Difference Between Confirmations and Finality?
Produce consecutive blocks and advance a simplified finality switch to separate ‘included’ from ‘safe to depend on’.
- Separate block height, confirmations, and finality
- Watch later blocks create a safety buffer
- Understand why financial apps wait for a dependable state
- PREVIOUSWhy Must the Same Transactions Have the Same Order?
- CURRENTWhat Is the Difference Between Confirmations and Finality?
Produce consecutive blocks and advance a simplified finality switch to separate ‘included’ from ‘safe to depend on’.
- NEXTFree sandbox
Think about these questions first.
Choose an answer before opening the explanation. You can add anything unexpected to your review list.
Q01Why distinguish finality after many confirmations?+
Confirmations usually mean a reorganization is becoming harder; finality is a protocol commitment that is not easily revoked. Their assumptions differ, so applications wait for more than a block counter.
Seeing a transaction in a block does not mean an application can treat it as an irreversible fact. Produce consecutive blocks and advance a simplified finality switch to separate “included”, “confirmed”, and “safe to depend on”.
Height, confirmations, and finality
Block height says where the chain is. Confirmations say how many later layers exist. Finality says whether an application can depend on the state under its consensus rules. Networks provide different guarantees; this lab builds intuition by advancing finality one block at a time.
一笔交易如何变成状态?
交易先被签名和广播,再由节点验证并打包进区块。任何一步不满足规则,余额都不会改变。
- Nonce
- 0
- 公钥
- pk_alice_demo
- Nonce
- 0
- 公钥
- pk_bob_demo
- Nonce
- 0
- 公钥
- pk_you_demo
还没有交易。先用正确 Nonce 广播一笔转账。
第一笔交易需要一个区块,后面的空区块用来制造确认缓冲。最终性高度不会自动追上链高。
- 链高 / 最终性
- #0 / #0
- 确认缓冲
- 0 个区块
先看三张账户余额和 Nonce。签名只授权一组具体字段,节点还要在打包时检查 Nonce、余额和状态规则。
还没有区块。交易先在本地 Pending,等节点打包。
- 01
创世状态:三个账户各有 1,000 积分,Nonce 从 0 开始。
Use the slider to return to an earlier step. Continuing from there replaces the later history with a new sequence.
Mine the first transfer block, create empty blocks for confirmation buffer, and then advance finality. Chain height can grow while finality moves at its own pace.
Expand: how this step works
if block.height <= finalizedHeight:
application_may_depend_on(block)
else:
wait_for_more_confirmations()
Real networks use validator votes, economic penalties, or other consensus rules. This lab only models the separation between block production and an application's finality choice.