官术网_书友最值得收藏!

Classification

The consensus algorithms can be classified into two broad categories:

  • Traditional—voting-based consensus
  • Lottery-based—Nakamoto and post-Nakamoto consensus

Traditional voting-based consensus has been researched in distributed systems for many decades. Many fundamental results and a lot of ground-breaking work have already been produced in this space. Algorithms like Paxos and PBFT are prime examples of such types of algorithms. Traditional consensus can also be called fault-tolerant distributed consensus. In other words, this is a class of consensus algorithms that existed before Bitcoin and has been part of distributed system research for almost three decades.

Lottery-based or Nakamoto-type consensus was first introduced with Bitcoin. This class can also be simply called blockchain consensus.

The fundamental requirements of consensus algorithms boil down to safety and liveness conditions. A consensus algorithm must be able to satisfy the safety and liveness properties. Safety is usually based on some safety requirements of the algorithms, such as agreement, validity, and integrity. Liveness means that the protocol can make progress even if the network conditions are not ideal.

Now we'll define these terms separately:

Safety: This requirement generally means that nothing bad happens. There are usually three properties within this class of requirements, which are listed as follows:

  • Agreement. The agreement property requires that no two processes decide on different values.
  • Validity. Validity states that if a process has decided a value, that value must have been proposed by a process. In other words, the decided value is always proposed by an honest process and has not been created out of thin air.
  • Integrity. A process must decide only once.

Liveness: This requirement generally means that something good eventually happens.

  • Termination. This liveness property states that each honest node must eventually decide on a value.

With this, we have covered the classification and requirements of consensus algorithms. In the next section, we'll introduce various consensus algorithms, which we can evaluate using the consensus models covered in this section.

主站蜘蛛池模板: 西盟| 丁青县| 奉新县| 敦煌市| 荣昌县| 鹤峰县| 德兴市| 红安县| 翁牛特旗| 玉山县| 明溪县| 马龙县| 恩平市| 清水河县| 吐鲁番市| 上饶市| 礼泉县| 会昌县| 祥云县| 阿城市| 伊吾县| 邳州市| 和硕县| 沭阳县| 姚安县| 高雄市| 宜良县| 开原市| 星子县| 汶川县| 永和县| 和林格尔县| 玉树县| 上犹县| 高要市| 舒城县| 遂昌县| 濉溪县| 潢川县| 钟山县| 通河县|