主页 > 官网imtoken钱包苹果版下载 > 区块链中的共识机制

区块链中的共识机制

区块链系统像比特币、以太坊、NXT、Bitshares等,本质上是一种加密的经济组织,建立在对等网络上,是去中心化的,没有管辖权,由密码学、经济学和社会共识组成共同维护。 由于各种原因,这些加密网络有多种形式——一些基于 ASIC 的工作量证明(PoW),一些基于 GPU 的工作量证明,一些本地权益证明(PoS),一些委托证明- Stake (DPOS),还有我们即将看到的Casper Proof of Stake——这些不同的风格都有它们的哲学。 在学习共识机制的时候,更重要的是理解思路。

区块链系统像比特币、以太坊、NXT、Bitshares等比特币区块链技术原理,本质上是一种加密的经济组织,建立在对等网络上,是去中心化的,没有管辖权,由密码学、经济学和社会共识组成共同维护。 由于各种原因,这些加密网络有多种形式——一些基于 ASIC 的工作量证明(PoW),一些基于 GPU 的工作量证明,一些本地权益证明(PoS),一些委托证明- Stake (DPOS),还有我们即将看到的Casper Proof of Stake——这些不同的风格都有它们的哲学。 在学习共识机制的时候,更重要的是理解思路。

“共识”,它的中文解释是共同的理解。 那些互不相干的人在某个特定问题上持有共同的观点,除了一些无法控制的道德和价值观上的共识,规则的作用是非常重要的。

共识机制是游戏规则,是社会的规律。 它是人们达成和维持共识的一种方式,即每个人都承认并遵守的规则。 这也是区块链的灵魂。

区块链中的共识机制

区块链是去中心化的,没有指挥中心告诉每个节点什么时候做什么。 网络上的所有参与者(节点)都在共识机制下工作。 它们共同完成一个时间顺序的可信公共账本(公共数据库),每个节点都保存完整的数据备份。 节点的数据内容必须完全一致。

矿工在区块链上的工作

在区块链上,每个矿工都在努力打包交易数据。 某矿工a打包一个数据块,他把这个数据块广播给全网。 收到区块后,其他矿工验证数据。 本次区块保存,停止本次打包工作,继续下一次打包,延伸区块链。

矿工

sitebishijie.com 比特币区块链_区块链和比特币的关系_比特币区块链技术原理

潜在问题

根据 FLP 的原理。 文章 Impossibility of Distributed Consensus with One Faulty Process 提出:在异步系统中,我们不可能准确知道任何一台主机是否死了,因为我们无法区分主机或网络性能下降与崩溃之间的区别主机的,也就是说我们无法可靠地检测到故障错误。 当多台主机通过异步通信组成网络集群时,这种异步网络默认是不可靠的。

在这种不可靠的网络上,数据会延迟并可能丢失。 但是每个矿工都在默默的做着自己的工作,努力的打包存储数据块,不会去问别人打包的情况。 然后:

此外,所有在这个网络上工作的矿工,他们都会想:

网络上肯定有一些恶意矿工,例如:矿工a没有广播他的数据块,而是直接继续默默打包

区块链的共识机制主要就是为了解决这些问题。 目前,已经开发了多种机制,每种机制都有优点和缺点。 本文主要简单介绍POW(Proof of Work)工作量证明,后续会陆续介绍其他共识机制。

工作量证明 (POW)

最早的比特币区块链采用的共识机制是消耗大量的算力来争夺区块。

比特币最长链式法则

区块链和比特币的关系_sitebishijie.com 比特币区块链_比特币区块链技术原理

比特币区块链有一个共识——最长链永远是主链(有效链),即“最长链法则”。 每个节点使用数据块最多的链作为其添加和更新块的选择。 这条规则无疑是工作量证明的神器。 主链一定是大多数消耗经济资本的矿工创建的链。 所有不在主链上的非法区块最终都会被丢弃,以维护一个权威的公共账本。

矿工挖矿的过程就是求nonce的值,使得下面的公式成立:

SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + nonce )) < TARGET

版本:块的版本

prev_hash:前一个区块的哈希值

merkle_root:需要写入的交易记录的哈希树的值

ntime:更新时间

nbits:当前难度

其中,TARGET 不是常数。 在比特币区块链中,每2016个区块(约14天)会根据这段时间的出块速度进行调整,让出块速度保持在10分钟左右,这就是难度控制。

区块链和比特币的关系_比特币区块链技术原理_sitebishijie.com 比特币区块链

2016个区块期间比特币区块链技术原理,哈希运算的难度是一定的,对每个矿工来说都是公平的。 比拼的是速度和运气。 谁的算力大,谁在竞争中获胜的概率就越高,区块打包的速度就越快。

因此,比特币区块链的工作量证明确实是一种非常纯粹的努力,有时也被称为经典 POW。

为什么要等这么久,比特币系统在这10分钟里在做什么?

这么长的时间,大大降低了网络传输造成数据问题的概率,保证了所有矿工都尽可能的收到广播和验证数据,但实际上传输和验证是不需要的长达10分钟,其中90%的时间用于hash操作,因为这个操作的难度真的很大。 正是这个难度足够大,保证了不同矿工同时出块的概率尽可能小,从而控制了区块链分叉的发生。

在最长链规则下,即使区块链出现分叉,随着时间的推移,两条链也会变得不同长度,相对较短的链会被丢弃,从而只维持一条主链。

因此,比特币区块链的数据一致性是建立在放弃交易处理效率的基础上的。

大约51%的攻击

在POW共识机制下,如果一个节点拥有全网51%以上的算力,那么他就可以实现51%攻击(双花攻击)。 因此,在区块链上,算力越大,就越去中心化,也就越安全。 那么要保持矿工的活力,要有足够的激励让矿工努力挖矿,不断有新的矿工加入。 这种激励是慷慨的区块奖励和交易费用。

在比特币区块链上,区块奖励从最初的50个比特币每四年减少一半,现在只有12.5个。 然而,在区块奖励减少的同时,流通的比特币数量增加了,交易手续费也增加了。 交易手续费的竞争进一步促进了矿工的积极性,从而保证了比特币区块链的健壮性。

sitebishijie.com 比特币区块链_比特币区块链技术原理_区块链和比特币的关系

POW 区块链的安全性建立在巨大的功耗之上。 据消息称,2019年比特币挖矿用电量超过了瑞士的全国用电量。

至此,相信对共识机制和POW有了初步的了解。 我们来看看以太坊的POW共识机制。

以太坊的POW共识机制

看了以太坊发展简史,我们知道以太坊仍然是一种POW共识机制。 据最新消息,伊斯坦布尔(Istanbul)升级将于2019年12月发布,届时以太坊将从POW过渡到POS。 有兴趣的朋友可以了解一下以太坊2.0的美图。

以太坊的 GHost 协议

与比特币的最长链规则相比,以太坊的GHOST协议唯一也是最重要的区别是它选择主链的方式。

分叉

以太坊的出块时间只有十几秒。 缩短出块时间意味着难度会降低。 可以同时出块的矿工会更多,分叉的概率会大大增加。 维护一条主链。 这就是GHOST的精妙之处。 在比特币的最长链规则下,分叉是应该避免的,但是在GHOST协议下,分叉是为了保护区块链的安全,如下图所示:

引用叔块

sitebishijie.com 比特币区块链_区块链和比特币的关系_比特币区块链技术原理

在以太坊的GHOST协议中,引入了叔块,如上图所示。 当分叉发生时,矿工m0在挖区块2时可以引用1a和1b作为叔块。当m0挖出区块2时,矿工m1和m2可以获得区块奖励的7/8,m0可以额外获得1/32× 2块奖励。 当矿工 m1 和 m2 收到区块 2 的广播后,他们会验证发现 m0 挖出的链更长,于是他们放弃工作,在区块 2 之后继续挖矿。

引用叔块时,最多同时引用2个,即m0引用一次叔块最多可获得1/32×2的奖励

与叔块距离每增加1,叔块奖励减少1/8,直到距离达到第8个块,不再有叔块奖励。 例如上图中的区块1指的是两个叔块1c、1d,矿工m3和m4分别获得7/8的区块奖励

这样可以在网络中产生很多分叉,鼓励矿工在找到最长链时尽快合并,让更多的矿工在主链上挖矿。 只要控制好难度,主链和全网出块率不超过安全阈值,就可以有效抵御双花攻击。

总结

在工作量证明的逻辑下,区块链消耗大量能量,其攻击和防御成本是1:1,没有防御优势。 但我们仍然不能否认它在区块链中的价值。 它建立在自由市场和博弈论的基础上,为日后其他共识机制奠定了基础。

本文来自社区共建者影无双。

深入浅出地讲解区块链——打造优质的区块链技术博客,来这里学习区块链,关注知乎和微博,掌握区块链技术动态。

本文参与登联社区写作激励计划,好文章好收益,欢迎正在阅读的你加入。