-
Notifications
You must be signed in to change notification settings - Fork 4
Fork Mechanics
Fork pair is a pair of fork events {a, b}, such that:
a != b AND a.Seq == b.Seq && a.Epoch == b.Epoch && a.Creator == b.Creator
The creator of a fork pair is called cheater. In other words, cheater is a Byzantine participant.
Simply said, the fork event is created when validator doesn't use his last event as self-parent.
Unlike consensus algorithms focusing on availability rather than finality (such as PoW, round-robin PoS or coinage-based PoS), Sirius doesn't have "longest chain rule".
Sirius doesn't discard fork events, because they are valid BFT consensus messages, which contain information about misbehaving. When a fork event is connected, Sirius node doesn't "choose" only one "branch", it continues to normally store and process the whole graph of BFT consensus messages.
The Sirius consensus will result into the exact same blocks regardless of fork events, unless more than 1/3W are Byzantine.
To protect the consensus from forks, the stricter forklessCause relation is used in Atropos election instead of happened-before relation.
When a fork pair gets confirmed, the validator gets slashed.
See attack page for more detailed information on these and other protections related to forks.