Post
Topic
Board Development & Technical Discussion
Re: The Finality Design of Blockchain Consensus Mechanism
by
Khaos77
on 25/06/2019, 16:14:39 UTC
When you use the word absolute, you are describing a checkpoint.

A checkpoint does provide finality.

What we need discuss is how to add checkpoint.

Adding by someone is not acceptable, because it leads to centralization.

Adding by a rolling rule like BCH is not good enough, because splitted miners certainly will choose different checkpoints.

We have to make a consensus on the finalized block.

This is the key point.

Rolling checkpoint, means a past block number that has been agreed upon by all for a specific number.
Meaning all miners and everyone else accepted it and it has been included in the blockchain for the specified time.
Miners literally can't choose different checkpoints without having forked their network before the rolling checkpoint.
IE:
The rolling checkpoint , just picks a block already agreed upon by it being say 500 blocks old and allows no reorgs older than than block.
This mean no reorgs older than the 500 blocks, all blocks newer than the 500 are still determined only by consensus.

In Bitcoin Case , the rolling checkpoint would be after every 145 blocks to cover ~24 hour period and have absolute finality.

FYI:
Rolling checkpoints were 1st used by coins such as NXT (720 Blocks) & Blackcoin(500 Blocks).

FYi2:
Bitcoin Cash does use a 10 block rolling checkpoint, but to be honest, it is too short ,
if their consensus is weak then it is very susceptible to an attacker forking it's network ,
so that half the network ends up on 1 fork and the other half another, ie: using the rolling checkpoint against it.  Tongue
Which is why rolling checkpoints should be after a lot more confirmations than 10.  

FYI3:
Absolute Finality can only realistically be used to guarantee blocks 12 to 24 hours old or longer is protected,
anything shorter risks making a rolling checkpoint an attack vector.
Consensus alone is the only way to protect a coin for the 1st 12 hours to keep a coin decentralized.