主页 > imtoken百科 > 区块链共识机制介绍

区块链共识机制介绍

imtoken百科 2023-02-02 06:04:31

区块链是由所有参与节点共同维护并使用密码学保证数据传输和安全访问的分布式技术系统。 区块链中的数据不可篡改,由所有参与节点共同维护,每个参与节点对区块链网络具有同等的读写权限。

由于所有参与节点对区块链网络具有相同的读写权限,那么在某个时刻,谁负责将新生成的区块写入区块链网络? 这时,共识机制就发挥作用了!

什么是共识机制

共识机制是区块链的重要组成部分。 在某一时刻,通过共识机制,让权利平等的参与节点达成共识,选出运行节点,保证区块链中的区块只能由该节点写入。 目前主流的共识机制主要有实用拜占庭容错(PBFT)、工作量证明(PoW)、权益证明(PoS)、委托权益证明(DPoS)等。

主流共识机制介绍

实用拜占庭容错 (PBFT)

Practical Byzantine Fault Tolerance(PBFT:Practical Byzantine Fault Tolerance)的提出主要是为了解决拜占庭一般性问题[1],保证系统中的部分节点在发生恶意行为时能够继续运行。 解决办法是:当N≥3F+1时,一致性是可能的(N为计算机总数,F为问题计算机总数)。 在计算机节点之间交换信息后,每个计算机节点列出所有获得的信息,并取大部分结果作为解决方案。 流程图如下:

比特币pow机制_比特币机制_比特币转错到比特币现金地址了

比特币转错到比特币现金地址了_比特币机制_比特币pow机制

上图展示了一个简化的PBFT协议通信模式比特币pow机制,其中C为客户端,0~3代表服务节点,其中0为主节点,3为故障节点。 整个协议的基本流程如下:

1、客户端C发送请求激活主节点0的服务运行;

2、主节点0收到请求后,启动三阶段协议,将请求广播给各个从节点;

2.1 在序号分配阶段,主节点0为请求分配一个序号n,广播序号分配消息和客户端C的请求消息Message,构造Pre-prepare消息给各个从节点;

2.2 在交互阶段,从节点接收Pre-prepare消息,将Prepare消息广播给其他服务节点;

比特币pow机制_比特币转错到比特币现金地址了_比特币机制

2.3 在序列号确认阶段,每个节点在视图中验证请求和顺序后,广播Commit消息比特币pow机制,执行接收到的客户端请求并响应客户端。

3. 客户端等待不同节点的响应。 如果2F+1(F为故障节点数)个响应相同,则响应为运算结果。

由于特别适合联盟链的应用场景,实用的拜占庭容错机制及其改进算法是目前联盟链使用最多的共识算法。 改进后的算法在以下几个方面进行了调整:修改底层网络拓扑的要求,使用P2P网络; 适当调整节点数; 减少协议使用的消息数量等。

工作量证明 (PoW)

工作量证明机制(简称PoW)通常只能从结果上证明,实施过程通常繁琐且低效。

比特币在区块生成过程中使用 PoW 机制,即一个合格的区块哈希值由 N 个前导 0 组成(0 的数量取决于网络的难度值 [2])。 要得到一个合理的区块哈希值需要大量的试算,计算时间取决于机器的哈希速度。 当一个节点提供了一个合理的区块哈希值时,说明该节点确实经过了很多次计算尝试,但是无法得到计算次数,因为找到一个合理的哈希值是一个概率事件。 当一个节点拥有全网n%的算力时,该节点有n%的概率找到区块的哈希值。 流程图如下:

比特币机制_比特币pow机制_比特币转错到比特币现金地址了

比特币pow机制_比特币机制_比特币转错到比特币现金地址了

PoW 的优点是算法简单,易于实现,无需节点间交换额外信息即可达成共识; 缺点是 PoW 依赖机器进行数学运算获得记账权,消耗大量资源,共识机制高,监管薄弱。 性能效率比较低,适用场景主要在公链方向。

股权证明(PoS)

Proof of Stake(简称PoS)最早由Quantum Mechanic于2011年在比特币论坛演讲中提出,后来通过Peercoin[3](点币)和NXT[4](Future Coin)的改造实现了不同的思路。

股权证明(PoS)类似于工作证明(PoW),但引入了币龄的概念。 所谓币龄就是节点拥有的币数与剩余使用时间的乘积。 节点拥有的币龄越大,计算难度值越小,越容易获得区块的记账权。 获得区块记账权后,清空一定币龄,获得相应奖励。 流程图如下:

比特币转错到比特币现金地址了_比特币pow机制_比特币机制

比特币pow机制_比特币机制_比特币转错到比特币现金地址了

与 PoW 相比,它在一定程度上减少了数学运算带来的资源消耗,其性能也得到了相应的提升。 但仍基于哈希运算,竞争记账权,监管薄弱。

委托权益证明(DPoS)

从名字上我们也可以判断出DPoS与PoS共识有直接关系。 DPoS 算法是针对 PoW 和 PoS 的不足而改进的共识算法。 其目的是提高性能,即交易确认时间短。

BitShares社区首先提出了Delegated Proof of Share (DPoS)机制。 它与 PoS 的主要区别是节点选举若干个代理人,由代理人进行验证和记账,但其合规监管、性能、资源消耗和容错性与 PoS 类似。 DPoS 的工作原理如下:

比特币pow机制_比特币转错到比特币现金地址了_比特币机制

DPoS 的缺点是整个共识机制仍然依赖代币,很多商业应用不需要代币。

比特币pow机制_比特币转错到比特币现金地址了_比特币机制

主流区块链使用的共识机制介绍

比特币pow机制_比特币转错到比特币现金地址了_比特币机制

参考

[1] 闵英华. 拜占庭将军问题[J]. 中国传媒技术, 2006(03):35-38.

[2] 难度值

[3] 比特币

[4] 未来货币