This post takes you deep into the weeds of consensus systems, but it is well and clearly summarized by Adrian Colyer (who is really good at this). It's the first part of a PhD thesis by Heidi Howard on consensus algorithms. The challenge overall is to distinguish between properties that are essential to consensus algorithms, and properties that represent design choices. This would define the minimum criteria needed for an interconnected network to agree on a shared value even if parts of the network are subject to failure. This first part focuses on the classic Paxos algorithm (Colyer links back to part two of a previous ten-part series on consensus (all of this can be understood by anybody, but you have to take the time to step carefully through each iteration).