五分钟了解共识机制

简介:

什么是共识机制?

“共识机制是区块链的灵魂。”这是业内经常能听到的一句话,共识机制在区块链中的地位可想而知。那么到底什么是共识机制呢?我们不妨从拜占庭将军问题说起。

拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了防御目的,每个军队都分隔很远,将军与将军之间只能靠信差传消息。 在战争的时候,拜占庭军队内所有将军和副官必须达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成。

拜占庭将军问题是一个协议问题,拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。问题是这些将军在地理上是分隔开来的,并且将军中存在叛徒。叛徒可以任意行动以达到以下目标:欺骗某些将军采取进攻行动;促成一个不是所有将军都同意的决定,如当将军们不希望进攻时促成进攻行动;或者迷惑某些将军,使他们无法做出决定。如果叛徒达到了这些目的之一,则任何攻击行动的结果都是注定要失败的,只有完全达成一致的努力才能获得胜利。

而这个问题该如何解决?中本聪的理念给出了一个比较好的答案:不能让所有人都有资格发信息,而是给发信息设置了一个条件:“工作量”,将军们同时做一道计算题,谁先算完,谁才能获得给其他小国发信息的资格。而其他小国在收到信息后,必须采用加密技术进行签字盖戳,以确认身份。然后再继续做题,做对题的再继续发消息……对这种先后顺序达成共识的算法,就是共识机制。

共识机制的作用

区块链作为一种按时间顺序存储数据的数据结构,可支持不同的共识机制。在区块链上,每个人都会有一份记录链上所有交易的账本,链上产生一笔新的交易时,每个人接收到这个信息的时间是不一样的,有些想要干坏事的人就有可能在这时发布一些错误的信息,这时就需要一个人把所有人接收到的信息进行验证,最后公布最正确的信息。

共识机制是区块链技术的重要组件。它就像一本法典,维系着区块链世界的正常运转,使得区块链技术自带改善世界的光芒,也是让区块链得以被全世界逐步接受和认可的最大幕后功臣,它让互联网、陌生人之间,在没有第三方作为信用背书的情况下发生的一切交易变成可能,它赋予了机械的代码以人性和温度。

共识机制的类别

目前的共识机制主要有POW、POS、DPOS、PBFT、dBFT、Pool验证池。

POW,就是人们熟悉的比特币挖矿,通过计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储。可实现完全去中心化,节点自由进出。干的越多,收的越多。

POS,权益证明,POW的一种升级共识机制,根据每个节点所占代币的比例和时间,以此等比例的挖矿难度,从而加快找随机数的速度。持有越多,获得越多

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

PBFT ,Practical Byzantine Fault Tolerance,实用拜占庭容错算法,是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制,每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。

dBFT,delegated BFT 授权拜占庭容错算法,由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。

Pool验证池,基于传统的分布式一致性技术建立,并辅之以数据验证机制,是目前区块链中广泛使用的一种共识机制。Pool验证池不需要依赖代币就可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础之上,可以实现秒级共识验证,更适合有多方参与的多中心商业模式。

现有共识机制存在问题

目前现有的共识机制都不算完美,在一些实际应用场景弊端很多。

A、计算能力浪费

在工作量证明机制POW中,猜数字最快的通常是电脑计算能力强的。超强的计算能级仅用来猜数字,实在是浪费。

B、权益向顶层集中

在权益证明机制POS中,token的余额越多的人获得公示信息的概率越高,公示人会得到一定的token作为奖励,如此持有token多的人会越来越多,少的人越来越少。

C、作恶成本低下

在靠算力与权益的的多少来获得公示信息的权利的模式当中,当算力和权益向少数人集中之后,这些少数人如果想要做一些违反规则的事情是轻而易举的;在PBFT中,由所有人投票,如果一个没有任何token余额的人想要捣乱,那他几乎是完全没有利益损失。

D、对于真正的去中心化构成威胁

在工作量证明机制中,计算能力越强,获得记录权利的概率就越高。如果有人把很多人集中在一起来猜数字,把好多电脑的算力加在一起来用,那这些抱团的人就会更容易获得公示信息的权利,发展到最后可能公示权就直接掌握在这些人手里。

在权益证明机制POS中,权益越大的人获得记录权利的概率越高,而记录的人就会有奖励token ,这样一来这些人就会越来越富有,贫富差距就会越来越大。持有token少的人几乎都没有话语权了。权利掌握在少数人手中,这有违区块链去中心化理念。


原文发布时间为:2018-06-25

本文来自云栖社区合作伙伴“CDA数据分析师”,了解相关信息可以关注“CDA数据分析师”。

相关文章
|
3月前
|
存储 算法 NoSQL
分布式一致性与共识算法(一)
分布式一致性与共识算法(一)
62 0
|
8月前
|
消息中间件 存储 容灾
共识协议的技术变迁 -- 既要“高”容错,又要“易”定序,还要“好”理解
这篇文章与读者朋友们好好聊一聊共识这个技术领域,期望能够让大伙儿对共识协议的前世今生以及这些年的技术演进有个大体了解。
20752 53
|
11月前
|
算法 区块链
共识机制是什么?
共识机制是什么?
111 0
|
11月前
|
存储 算法 Java
分布式系统的一致性与共识(1)-综述
分布式系统中的许多事情可能出错,最简单方法是让整个服务失效,并向用户显示错误消息。若无法接受,就得找到容错方法:即使某些内部组件出现故障,服务也能正常运行。
109 0
|
12月前
|
存储 消息中间件 算法
深入剖析共识性算法 Raft
深入剖析共识性算法 Raft
200 0
|
12月前
|
存储 算法 索引
深入剖析共识性算法 Raft-2
深入剖析共识性算法 Raft
118 0
|
存储 安全 区块链
非对称加密与共识机制
非对称加密与共识机制
81 0
|
算法 区块链 vr&ar
共识算法-PBFT
简介 PBFT简介 BFT(Byzantine Fault Tolerance)是区块链共识算法中需要解决的一个核心问题。例如,公有链网络中,比特币和以太访中用的是POW,EOS用的是DPOS。PBFT一般用于联盟链场景中,它是共识节点较少的情况下BFT的一种解决方案。
3183 0
共识算法-PBFT
|
存储 分布式计算 算法
区块链开发中的9类共识机制,你知道多少
区块链开发中的9类共识机制,你知道多少
243 0
|
算法 区块链
一个基于DPoS共识算法的区块链案例解析
前面我们介绍了PoW以及PoS的案例,我们会发现它们都有一些缺点,比如PoW耗费能源比较多,而PoS是持有的币越多,成功挖矿的几率越大,这会造成贫富差距越来越大,并且人们都不太愿意消耗自己的币。 而我们的DPoS,全名为Delegated Proof of Stake,也就是股份授权证明就解决了这些不足。 DPoS就是大家投票选出一定数量的节点来挖矿,用户拥有的票的数量和他持有的币数量有关。这就和股份制公司很像了,大家投票选出董事会成员。 这些被选出来的拥有挖矿权的节点的挖矿权力是一模一样的。 如果某个节点挖到了矿,那么他就要将获得的币分一些给投票给他的人。
364 0