Using Tendermint as a Finality Gadget
Motivation A hot topic in blockchain consensus study is to combine a probabilistic-finality consensus (PoW/BABE/LMD-GHOST) with a fast-finality consensus (GRANDPA/Casper). This allows to harvest the benefits of both chains - if the network is bad/partitioned, the system can still produce blocks using the probabilistic-finality consensus, and as the network resumes, the system could quickly finalize the blocks that are produced by the probabilistic-finality consensus. However, after extensive study on existing protocols such as BABE/GRANDPA and LMD-GHOST/Casper, we found these protocols are pretty complicated and hard to use - their BFT properties are pretty hard to analyze and understand, and their implementations are highly coupled with their specific implementations. The objective here is to use Tendermint as a finality gadget, make it as a module so that it can easily be reused to finalize another probabilistic-finality consensus/chain. Setup We assume a node in the network has two components: • A client of the TM chain, where the chain is used to finalize another probabilistic-finality chain; and • A client of the probabilistic-finality chain, or pChain in short.…
Excerpt (1199 of 3916 characters). Read the whole post on the forum ↗