Avalanche x Filecoin: combining Snowball and Expected Consensus #116
xuechao2
started this conversation in
Project proposals
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Description
We explore the possibility of adopting Snowball consensus from Avalanche to improve the finality of Expected Consensus (EC) in Filecoin.
Background
Snowball is a Byzantine agreement protocol and it works as an important building block in the Avalanche network In two different ways:
A summary of these protocols can be found here.
EC is a longest-chain style protocol. At a high level, it operates by running a leader election every epoch in which, on expectation, a set number of participants may be eligible to submit a block. All valid blocks submitted in a given epoch form a tipset. Particularly, a tipset is a set of blocks that each has the same height (i.e., epoch number) and parent tipset; in EC, the blockchain is a chain of tipsets, rather than a chain of blocks. Every block in a tipset adds weight to its chain of tipsets, while the fork choice rule is to choose the one with the highest weight. A closer look at tipsets can be found here. Although the idea of tipset can slightly improve the throughput of the blockchain, EC still suffers from the same long finality issue as many other longest-chain style protocols.
Proposal
In EC, we can use Snowball to finalize one tipset per epoch. Following the same design principle of Avalanche and Snowman, we can take advantage of the DAG structure. For example, when a block/tipset is queried, all blocks/tipsets reachable from it by following the DAG edges are implicitly part of the query. We need to smartly design a voting rule such that 1) the votes converge fast, 2) all honest blocks should be included in the finalized tipset.
Challenge
Beta Was this translation helpful? Give feedback.
All reactions