主页 > imtoken钱包下载2.0版本 > 区块链有哪些共识算法?

区块链有哪些共识算法?

imtoken钱包下载2.0版本 2023-06-25 09:49:46

目前的区块链中有很多共识算法。主要可分为以下四类:

(1):工作量证明(pow)类型的共识算法:

主要包括区块链鼻祖比特币采用的共识机制已经在其他数字货币中使用,例如莱特币。该算法的核心思想是所有节点竞争记账权,每次记账需要解决一个“难点”,只挖出第一个解决这个问题的节点。只有块是有效的。该算法可以通过调整“拼图”中的参数,轻松控制求解问题所需的时间。

比特币加密算法

该算法需要大量计算节点才能解决。给计算机带来了很大的开销。而且这种工作除了延长区块链的长度外没有其他作用,而且消耗大量的能量。

(2)类po*的共识算法(*的证明(*代表各种算法引入的凭证)):

比特币加密算法

根据每个节点的某些属性(拥有的数字货币数量、拥有的资源、拥有的算力、算力、信誉等)来定义每个节点出块的难度或优先级,并取最高优先级或少数具有最高凭证的节点进行加权随机选择一个节点,或对下一个块进行记账,与pow算法相比比特币加密算法,该算法在一定程度上降低了整体的块生成开销,并且可以选择性地分配块资源。但是,这种po*的想法在一定程度上违反了区块链。去中心化的概念,这类算法没有经过大量实验,节点缺乏参与记账权的动力。

(3):BFT(拜占庭容错)共识算法:

比特币加密算法

无论是PoW算法还是Po*算法,中心思想都是将所有节点视为竞争者,每次分散都需要进行一些计算或提供一些凭证来竞争出块。权利(获得相应的出块收益)。 BFT算法采用了不同的思路。它期望所有节点协同工作,生成可以被所有(诚实)节点协商识别的区块。

拜占庭容错问题最早由Leslie Lamport等学者在1982年的论文TheByzantineGeneralsProblem中正式提出,主要描述分布式网络节点通信的容错问题。自 1980 年代以来,已经提出了许多算法来解决这个问题。该算法统称为BFT算法。实用拜占庭容错(PracticalBFT,PBFT)算法是最经典的BFT算法,由Miguel Castro和Barbara Liskov在1999年提出。PBFT算法解决了以往BFT算法容错率低的问题,减少了算法复杂性,使得 BFT 算法可以实际应用于分布式系统。 P BFT 广泛应用于实际的分布式网络中。随着当前区块链的快速发展,许多针对特定场景优化的BFT算法不断涌现。

比特币加密算法

具体来说,BFT共识算法一般会周期性地选举出leader,leader在区块链系统中接收交易并进行排序,leader生成区块并提交给所有其他节点。区块被验证,其他节点在“举手”投票时接受或拒绝领导者的提议。如果大部分节点认为当前的leader有问题,这些节点也可以通过多轮投票和协商推翻现有的leader,然后按照预定的协议协商一个新的leader节点。

BFT算法一般都有完整的安全证明,可以保证当群内恶意节点数量不超过三分之一时,诚实节点的账本是一致的。但是这种算法的协商轮数较多,协商的通信开销也比较大,使得这种算法一般不适合节点数较多的系统。业界普遍认为BFT算法所能承受的最大节点数不超过100个。

比特币加密算法

(4)共识算法结合可信执行环境:

以上三种共识算法都是纯软件共识算法。此外,还有一些共识算法利用了硬件,比如一些使用可信执行环境(TEE)将软件和硬件结合起来的共识算法。

Trusted Execution Environment 是一种环境类型,可以保证在这种类型的环境中执行的操作是绝对安全可靠的,不能被外部干预修改。它与设备上的普通操作系统(Rich0S)共存,可以为 Richos 提供安全服务。可信执行环境可以访问的软硬件资源有:与Rich0S完全分离比特币加密算法,从而保证了可信执行环境的安全性。

使用可信执行环境,可以限制区块链系统中参与共识的节点,可以很大程度上杜绝恶意节点的不规则或恶意操作,可以减少设计时需要考虑的异常场景共识算法,一般可以大大提高共识算法的性能。