BABE
Blind Assignment for Blockchain Extension
Block Production Algorithm
Designed for public and permissioned networks, BABE is a slot-based block authoring mechanism prevalent in highly democratic POS blockchains. BABE randomizes the assignment of block-building validators to slots and the selection of validators for inclusion into an epoch through a combination of a VRF (Verifiable Random Function) and an epoch-weight candidacy. After a set of validators has been chosen for inclusion into an epoch, they receive VRF outputs to use in organizing themselves (whenever a validator VRF is below its slot weight, it is allowed to author the block).
Validators do not posses any information before the instantiation of BABE as to which blocks they will be responsible for producing nor whether they shall be included in the upcoming epoch. This absence of predictability is vital in helping the system retain integrity and security.
Functions of BABE:
Election of validators to Epoch
Randomize assignment of active validator role to Era Slots
Selection of which Chain extension to build on
Validator Slotβ Specifications
Multi-Validator Slots During the randomized assignment of validators to slots, it is likely that more than a single validator is are assigned the same slot. In these cases, it become a matter of luck and competition between them. All the validators should produce very similar, if not exactly the same, types of blocks. All the validators will broadcast their blocks at the same time. It will come down to matter of latency and network topology as to which block will become the one that is appended first. There are situations where the chain temporarily begins to build multiple extensions from each of the block; this lasts less than 6 seconds and will not grow beyond the current block because before the following block gets published, the GRANDPA finality gadget will activate and synch all the extensions into a single chain again.
Unassigned Slotβ Just as it is possible for a slot to be assigned multiple validators, the VRF can generate outcomes where slots are left unassigned. Technically what happens in these events is that the VRF outputs were above some of the slot thresholds, this having nobody capable of being included. In these rare cases, the system will run a secondary round-robin backup assignment algorithm. Those assigned through this method produce tier-2 blocks and ensure the chain does not skip a block.
Extension Version Selection
In order for BABE to produce blocks, it must understand where those blocks must be attributed. BABE has been outfitted to select a chain based on two factors; GRANDPA stamp and the Heaviest Chain rule. Thus in order to BABE to consider a version to build on, it requires the block to be finalized by GRANDPA and have the largest chain height; both must be present.
Block Production Timetable:
Blocks | Time |
---|---|
1 block | 6 seconds |
10 blocks | 1 minute |
600 blocks | 1 hour |
14,400 blocks | 1 day (24 hours) |
100,800 blocks | 1 week (7 days) |
432,000 blocks | 1 month (30 days) |
1,296,000 blocks | 3 months (90 days) |
2,592,000 blocks | 6 months (180 days) |
5,184,000 blocks | 1 year (365 days) |
Last updated