浅析常见的三种共识算法

文浅要分析常见的共识算法,最后Tendermint算是一种实现方式吧,详见github https://github.com/tendermint/tendermint

  • POW共识
  • POS共识
  • PBFT
  • Tendermint

使用工作量证明达成共识(POW)

• 新的交易将会广播给所有节点。
• 每个节点将都会讲新的交易收集到一个区块中。
• 每个节点都在为其区块收集困难的工作量证明。
• 当节点发现工作量证明时,它会将该区块的情况广播给所有节点。
• 只有在节点中的所有交易都有效且尚未使用时,节点才接受该区块。
• 节点通过在链中创建下一个区块来表达他们对之前区块的接受,使用之前所接受区块的散列值作为前一个散列值。
• 节点始终认为最长的链是正确的,并将继续努力扩展这个链。

区块链分叉直观图-分叉之前

区块链分叉直观图-同时发现两个区块

区块链分叉直观图-两个区块繁殖,将网络分离
这里写图片描述

一个新区块拓展一个分叉
区块链分叉直观图-网络重新覆盖最长的新链

比特币等加密货币可以让用户无需经过一个中心化的受信组织即可提交他们的支付交易。比特币依赖于工作量证明的采矿来保障共识,这是一个比较麻烦的问题,因为采矿需要大量的能源开支,交易确认很慢,安全性很难量化。现在也有一些提议,建议开发新的共识算法,比如权益证明共识和拜占庭容错共识。

无采矿的共识 – 权益证明(POS)

在所使用的权益证明模型中,网络安全是由在网络中拥有权益的点所掌控的。这个算法所提供的激励并不是像工作量证明算法那样来促进中心化。网络将会高度去中心化,因为很大一部分的独特账号通过投票的方式为网络添加区块,而且创造区块的奖励则股份比例分给参与者们。


在一场没有危险的攻击中,伪造者试图在所有的分叉上建立区块,因为这样做的成本几乎为零,而且忽视任何一个分叉都可能意味着失去区块奖励,而这个区块的奖励是能够获取的,只要分支成为具有最大累计困难的链。这使得单一区块链的共识得不到保障。

无采矿的共识 – 实用拜占庭容错(PBFT)

拜占庭容错算法很重要,因为恶意攻击和软件错误逐渐普遍化,并且能导致错误节点展示任意行为(拜占庭错误)。PBFT能在像互联网一样的非同步环境下工作,在PBFT之后,又引入了几个BFT协议,来提升它的稳健性和性能。超级账本共识和Tendermint核心共识就是这种共识算法的例子。

Tendermint

Tendermint是针对区块链共识问题的一种解决方案,它不需要通过调整解决方案来适应拜占庭将军问题。它解决了权益证明中那个“没有危险的问题”。这个算法是以DLS协议已修订的版本为基础,并且具有弹性高达1-3美元的拜占庭参与者。

Tendermint核心是一个高性能的区块链共识引擎,能够使你在全球范围内的多个机器上运行用任何编程语言编写的拜占庭容错应用程序,并提供极高的安全保障。
https://github.com/tendermint/tendermint

                                                                         备注*甜甜新作*

猜你喜欢

转载自blog.csdn.net/kdchxue/article/details/80834496
今日推荐