共识算法,区块链技术有多少种共识算法如何理解它们

目前主要几类共识算法如下共识算法:PoW、PoS、DPos、Ripple Consensus、PBFT

1、PoW(工作量证明)

通过与或运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储;

优点:易实现,节点间无需交换额外的信息即可达成共识,破坏系统需要投入极大的成本。

缺点:浪费能源,区块的确认时间难以缩短;共识达成的周期较长,不适合商业应用

2、PoS(权益证明)

PoW的一种升级共识机制,本质上是采用权益证明来代替PoW的算力证明,记账权由最高权益的节点获得,而不是最高算力的节点。根据每个节点所占代币的比例和时间;等比例的降低挖矿难度,从而加快找随机数的速度。

优点:,解决了PoW 消耗算力的问题,在一定程度上缩短了共识达成的时间

缺点:拥有权益 的参与者未必希望参与记账,还是需要挖矿。

3、DPos(股份授权证明机制)

类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。

优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。

缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。

4、Ripple Consensus(瑞波共识算法)

使一组节点能够基于特殊节点列表达成共识。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循这核心成员的51%权力,外部人员则没有影响力。由于该俱乐部由“中心化”开始,它将一直是“中心化的”,而如果它开始腐化,股东们什么也做不了。

5、PBFT:Practical Byzantine Fault Tolerance(实用拜占庭容错算法)

PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。

PBFT算法主要特点如下:客户端向主节点发送请求调用服务操作;主节点通过广播将请求发送给其他副本;所有副本都执行请求并将结果发回客户端;客户端需要等待f+1个不同副本节点发回相同的结果,作为整个操作的最终结果。

区块链的共识机制一定会越来越清晰,在现实当中起到的作用也会越来越大,并受到众多机构的支持,从而让区块链在现实当中的普及进入到一个全新的应用阶段。

共识算法,区块链技术有多少种共识算法如何理解它们

我在上一篇文章讨论了什么是区块链。为了方便大家理解,文章中并没有使用过多技术术语。今天我们来聊聊区块链中的灵魂——共识机制。还不了解区块链的小伙伴可以点击链接回顾上一篇的内容10分钟快速了解是什么是区块链,同样你也可以参考下面的内容,快速回顾区块链的定义以及特点。

共识算法,区块链技术有多少种共识算法如何理解它们

区块链它是一个去中心化的分布式加密的共享账本(或数据库),存储在其中的数据或信息,具有不可篡改、不可伪造、全程留痕、可追溯、公开透明,集体维护等特点。

共识算法,区块链技术有多少种共识算法如何理解它们

什么是共识机制

共识算法,区块链技术有多少种共识算法如何理解它们

所谓共识机制,是一种多方协作的机制。旨在保障多方在安全可信、难以欺诈的模式下,最终达成相互认可的一致性结果,从而解决多方信任问题。

共识算法,区块链技术有多少种共识算法如何理解它们

共识算法,区块链技术有多少种共识算法如何理解它们

用一句话描述在区块链中的共识机制,其实就是用来决定多节点参与的情况下最终有哪个节点参与记账的技术手段与机制。

例如:

我们经常在港剧看到,法官会在正式裁决之前,先聆听陪审团的结论。而陪审团会就案件整体的证据链做出客观的判断。最终陪审团的全部成员会对指控达成一直结论,并对被告人的某项罪名成立与否向法官和听审人员做出陈述。那么他们如果说对被告人的指控不成立,那么基本上法官也会参考陪审团的决议。

陪审团成员会参与庭审,同时可以获得完整的证据链。其次他们都有一个共同的目标,就现有的证据而言做出理性的分析,判断被告人的罪名是否成立。而后经过成员会互相阐述各自的观点,并相互监督。最后将达成一致的结果提交给法官,这个过程就是共识过程。

(这常见于英美的司法体系中,我们知道香港在回归祖国之前曾经是英国统治,所以使用的英美的司法体系,1997年香港回归祖国,在 ‘一国两制’的背景下,香港的司法制度得以延续。 )

为什么共识机制是区块链中的灵魂?

由于区块链是一个去中心化的分布式账本,其应用场景大多是需要多方参与的情况。设想一下如果每个人都可以自由的操控区块链里面的数据,当一笔交易到来需要在区块链中记账,那么所有网络的参与节点都将尝试对此进行处理,那又如何来确定应该使用哪一个节点所反馈的结果呢?

中本聪伟大的地方在于,它采用了巧妙的设计来解决这一个问题。我们都知道比特币是基于区块链技术的数字货币的一种应用,其发行过程不依赖于任何机构,而是通过挖矿。那挖矿是什么呢?其实所谓的挖矿本身是分布式网络节点共同参与的名为POW(Proof of Work,工作量证明)的共识过程来完成交易的验证与获得记账权的。

在比特币中共识过程本身就是挖矿,参与挖矿的节点称之为矿工。矿工的职责是完成继续所出的一套数学题,谁最先完成运算谁将获得最终的记账权。我们来一起看下究竟是怎么样的数学题才能完美解决记账权争夺战。

具体如下:

生成交易,并与其它所有准备打包进区块的交易组成交易列表,生成Merkle根哈希值。

将Merkle根哈希值,与区块头其它字段组成区块头,80字节长度的区块头作为Pow算法的输入。区块头 = Nonce + 上一个区块HASH值 + 当前Merkle跟HASH+难度值+时间戳+版本

不断变更区块头中的随机数Nonce,对变更后的区块头做双重SHA256哈希运算,与当前难度的目标值做比对,如果小于目标难度,即Pow完成。SHA256(SHA256(version, hashPrevBlock, hashMerkleRoot, time, bits, nonce)) < TARGET

Pow完成的区块向全网广播,其他节点将验证其是否符合规则,如果验证有效,其他节点将接收此区块,并附加在已有区块链之后,之后将进入下一轮挖矿。

PoW优缺点

优点:

去中心化,将记账权公平的分派到其他节点记账权是通过看节点的PoW, 谁挖矿最快, 谁就能拿到记账权。安全性高,作恶需要花费高昂的成本,因为获得正确哈希值的概率和算力成正比,如果没有掌握51%的算力就不能作弊,由于作恶的成本远远高于诚实挖矿的成本,因此安全性高。缺点:

会造成资源浪费 因为挖矿需要大量的哈希运算,需要电力和各种算力资源,而且找到合适的哈希值实际上并没有其他的作用。网络性能太低 因为比特币出块的时间是10分钟, 所以交易确认至少需要10分钟,而且目前支持支持每秒7笔交易的速度,不适合商业用处。PoW共识算法算力集中化。 目前挖矿矿池是主力, 算力高的矿池有选择权, 持本人么有参与决定的权利。常用的几种共识机制

今天我们通过一个例子了解了什么是共识机制,以及共识机制在区块链中的意义。通过对POW的机制的研究,了解到比特币通过挖矿的机制保障节点间共识。在文章的最后我列举了常见的共识机制以后有机会我们深入探讨。

欢迎关注我的头条号,我们可以进一步讨论。

2022-06-11

2022-06-11