Which consensus protocol multichain use?

+4 votes
Which of the Blockchain Consensus Protocols multichain use?
asked Jan 23, 2017 by anonymous

1 Answer

+3 votes
Best answer
Distributed consensus between identified block validators. It's close in spirit to something like PBFT (Practical Byzantine Fault Tolerance), but instead of multiple validators per block, there is one validator per block, working in a round-robin type of fashion. It's described in detail in the 'Mining in MultiChain' section beginning on page 7 of the white paper: http://www.multichain.com/white-paper/
answered Jan 23, 2017 by MultiChain
What happends if one validator in the round-robin type fashion failes? Does it time-out and re-assign another validator/proposer in the same round-robin type fashion?


Round 1
Proposer/Validator: NewHeight -> (Propose -> Prevote -> Precommit)+ -> Commit

Error condition: Proposer/Validator Fails at Precommit.
No Impact for the validator nodes right? As long as the majority of the validators have received the prevote.

Otherwise if a validator/proposer fails in a round-robin type scheme
Re-round is performed and another validator/proposer is picked right?

NewValidator/Proposer: NewHeight -> (Propose -> Prevote -> Precommit)+ -> Commit
First you should note that it's not a propose -> prevote -> precommit type of consensus algorithm, but rather a stochastic consensus algorithm where rollbacks can happen in the event of a conflict – just like bitcoin.

In practice if you use set mining-turnover=0 and validators don't override that, a rollback can only happen in the event of a validator failure.

If a validator fails, i.e. too much time has passed, other validators who were not part of the self-selected rotation will step in after a random time delay. Usually one will outright win and become part of the new round robin set. If not, there's a fork which will be resolved by whichever validator was next in the rotation.