A lightweight BFT consensus protocol for blockchains
We present a general consensus framework that allows to easily introduce a customizable Byzantine fault tolerant consensus algorithm to an existing (delegated) proof-of-stake blockchain. We prove the safety of the protocol under the assumption that less than 1/3 of the block proposers are Byzantine. The framework further allows for consensus participants to choose subjective decision thresholds in order to obtain safety even in the case of a larger proportion of Byzantine block proposers. Moreover, the liveness of the protocol is shown if less than 1/3 of the block proposers crash. Based on the framework, we introduce Lisk-BFT, a Byzantine fault tolerant consensus algorithm for the Lisk blockchain. Lisk-BFT integrates with the existing block proposal, requires only two additional integers in block headers and no additional messages. The protocol is simple and provides safety in the case of static proposers if less than 1/3 of the block proposers are Byzantine. For the case of dynamically changing proposers, we proof the safety of the protocol assuming a bound on the number of Byzantine proposers and the number of honest proposers that can change at one time. We further show the liveness of the Lisk-BFT protocol for less than 1/3 crashing block proposers.
READ FULL TEXT