浅谈区块链的共识机制

956 阅读6分钟

在学习区块链技术的过程中,势必需要了解一些关键的概念等,像共识机制、加密协议、分布式存储等等,这些都是在学习过程中需要了解的点,然后再由点发散到面。那么今天先来讲一讲关于区块链的共识机制,之后再继续更新关于区块链的其他了解。

一、 共识机制是什么?

复杂来说,共识机制,是一种多方协作机制,用于协调多方,让多方共同接受一个唯一的结果,这个过程难以被欺骗,且持续稳定运行。 简单来说,用一个例子,当我把我的想要从支付宝中提取一笔钱转账到自己的银行卡中,那么不管是哪个银行,都应该承认我这笔交易是有效的,都应该承认支付宝中的钱就是通用的RMB,这就是我理解的共识。

二、区块链的类别

在区块链世界中,根据共识算法和应用场景,区块链分为三类:公有链、联盟链和私有链。

  • 公有链是完全开放的分布式系统,其中的节点可以自由的加入、退出,而不需要经过审核,像比特币、以太坊就是最典型的公有链。而由于是完全开放的分布式系统,共识机制需要考虑的除了普通节点外,还有故障节点和作恶节点,并确保最终结果的一致性。
  • 联盟链是相对开放的分布式系统。新节点想要加入,都是需要经过验证和审核的。联盟链大多存在于企业之间,对于数据的安全性要求较高,需要考虑故障节点和作恶节点,确保最终结果的一致性。
  • 私有链是封闭式的分布式系统,由于是封闭式的,就无需去考虑故障节点和作恶节点。

三、多种共识机制

1、PoW 共识机制

PoW 也就是 Proof Work,工作量证明。按劳分配,多劳多得的工作模式,是比特币所使用的共识机制,也就是“挖矿”。

PoW 是指系统为达到同一目标而设置的证明方式,用来确认你是否有完成对应的工作量。算力决定一切,谁的算力强,谁挖矿成功的概率也就越大

  • PoW 应用的典型就是比特币,即所有节点进行竞争,区块链需要生成新的区块来进行记账,而竞争者就是通过计算机的算力进行计算,计算出特定的 nonce 的值,谁能够先计算出这个值,就先开始记账,同时把解出的答案发布给其他节点进行验证,验证有效后,该竞争者就能够获得这个区块带来的盈利。同时,所有竞争者开始下一轮的竞争
  • PoW 的优缺点

优点:(1)完全的去中心化(任何人都可以加入挖矿)(2)节点可以自由的加入、退出(3)安全,被破坏的概率小

缺点:(1)效率低(2)对节点的性能环境要求较高(3)可能会出现分叉(4)比特币的挖矿产量逐渐减少,这可能会导致将来矿工数量的减少而出现问题

2、PoS 共识机制

相对于 PoW 太过于浪费资源、总是重复的进行 hash 计算来说,人们开始讨论更好的共识机制,也就是 PoS 的出现。

PoS 也就是 Proof of Stake,权益证明。按资分配,钱多的越来越有钱,钱少的越来越穷。

  • Peer Coin 是最先采用 PoS 共识机制的数字货币,在 Peer Coin 中,引入了币龄和币天的概念,币天就是持有货币的天数,币龄=币的数量*币天

  • 在每一轮竞争开始前,以自己一定的币龄进行下注,成为验证者,而这时会随机的选出一个记账者,同时把他的币龄清空,并根据币龄给予一定的利息。而这个“随机选取”,其实根本上是根据谁下注的币龄更多,从而增加他被选到的概率。这也就是为什么说,钱多的越来越有钱,钱少的越来越穷

  • PoS 的优缺点

优点:(1)PoS 省去了无用的 hash 计算的时间(2)PoS 由于是验证节点,有质押的机制,对于作恶者可以及时做出相应的惩罚(3)PoS 均衡性比较好,人人都可挖矿

缺点:(1)PoS 需要一定的竞争资本(2)由于是按资分配,谁更富有,谁就可能获取更多的利润,这样容易出现少数人获取多数资产的情况

3、DPoS 共识机制

尽管 PoS 已经对 PoW 的诸多不足进行相应的改进,但是 PoS 依旧还是存在各种的问题。其中“权力集中制”最为明显。在 PoS 机制中,根据“本金”的多少来进行选择,会导致富有的账户获得更多的权力和利润,甚至可能支配记账权,导致最后变成了几个“富人”的游戏。

DPoS 也就是 Delegated Proof of Stake,授权股权证明机制,是基于 PoS 的,类似与投票选举,由被选举的节点来记账,类似于民主制度。

  • 与 PoS 共识不同,DPoS 机制下,权益小的节点也有机会来行使记账的权利,只要选举时投的人足够多。但是要注意的是,DPoS 是基于 PoS,因此资产多的人在其中依旧能够享有更多的权利,也就是在投票过程中,竞选者拥有的货币数量越多,投票占比就越大。

  • 同时,选举出来的节点一旦滥用权利、不作为、胡作为,就会被其他节点举报并被剥夺相应的权利。

  • DPoS 的优缺点

优点:(1)记账节点更少,交易速度更快(2)更加安全,确保最终一致性(3)更加节省资源

缺点:由于节点是由投票产生,就会出现贿赂、一个人操纵多个节点的情况存在,严重影响到去中心化的本质

4、Raft 共识机制

对于联盟链和私有链来说,PoW、PoS、DPoS 可能并不是非常适用,由此产生了 Raft 共识机制

  • 一个 Raft 集群通常有 5 个节点,允许系统有两个故障节点(因为至少要 N/2 +1 个节点投票)。每个节点有三种状态: leader、follower、candidate。正常状态下,仅有一个 Leader,其他均为 follower。follower 是被动的,不会主动发起请求,只能对 leader 和 candida 的请求做出响应。leader 处理所有客户端的请求,candidate 状态用来选举。

  • 选举leader只会在两种情况下发生:1)第一次启动Raft集群的时候;2)一个已知存在的Leader故障的时候;

  • Raft 的优缺点

优点:(1)速度快,传输效率高(2)无需挖矿,更加节能(3)不需要考虑分叉,更简单 缺点:Raft 过于依赖 leader,可以说缺少了去中心化这一数字货币的特色,所以一般 Raft 共识只用于联盟链或者私链中。