Figure 3: Overview of state machine Each round has a designated proposer chosen in round-robin fashion such that validators are chosen with frequency in proportion to their voting power [TODO: add algorithm to appendix]. Given a blockchain of height H and a deter- ministic round-robin algorithm, it is clear that all nodes will agree upon the the sequence of proposers for all rounds. Figure 4: Proposal structure The first step is the Propose step. In the beginning of the Propose step the designated proposer for that round broadcasts a proposal to its peers via gossip. If the proposer is locked on a block from some prior round it proposes the locked block and includes a proof-of-lock in the proposal (more on that later). During the Propose step all nodes gossip the proposal to their neighboring peers. In the beginning of the Prevote step each validator makes a decision. If the validator is locked on a proposed block from some prior round, it signs and broadcasts a prevote for the locked block. Otherwise if the validator had received an acceptable proposal for the current round, then it signs and broadcasts a prevote for the proposed block. If the validator had received no proposal or an invalid one, it signs a special nil prevote. No locking happens during the Prevote step. During 6
Tendermint: Consensus without Mining Page 5 Page 7