Finality Gadget for Rollups
A simplified version of the new consensus for the rollups:
Algorithm: CanBlockBeFinalized
Input: block
Output: boolean
1. if not CanBlockBeFinalized_Old(block) then
return false
2. if not HasEnoughFinalitySignatures(block) then
return false
3. else
return true
Before finalizing a block, besides satisfying all the existing requirements to finalize the block, one extra check is added to see if the block has received enough finality signatures.
Only minimal changes are needed to the existing rollup consensus, thus we also call it a rollup finality gadget.