Introduction to Consensus by Dominic Williams (Ethereum DevCon1)

  • Older than Blockchain there is another type of consensus (traditional) which is based on the message passing;
  • In message passing faulty nodes are the nodes the "lie" - i.e. send different messages to different nodes (suppose classic problem of Byzantine generals, i.e. voting situation). In order to ensure consensus here other nodes need to detect faulty nodes - i.e. check if any given node send the same message to all the other nodes.
  • this means that the number of messages in a network increases proportionally to n^2; What bitcoin protocol does - it reduces the need of this explosion of messages for achieving consensus.
  • But traditional message passing does not work with complete asynchrony - because nodes / processes cannot wait forever for all the messages. Withhelding messages in message passing becomes a tools for faulty processes to disturb computation.
  • In order not to allow any Byzantine Quorum to break the consensus, Less than â…“ processes/nodes should be non-faulty. These protocols proceed when processes get >=3f+1 correct messages...
  • Paper (maybe interesting to check): Asynchronous Byzantine Randomized Leader-free Binary Consensus 2014 Mostefaoui, Hamouna, Raynal.