请选择 进入手机版 | 继续访问电脑版

巨推链

币圈币圈
关注: 0贴子:3060 排名: 5 
20 回复贴,2142 次查看
<返回列表

区块链共识机制有哪些?

发表于 2020-3-18 14:09:27
区块链现在有哪些共识机制,分别有哪些平台在使用?
回复

使用道具 举报

发表于 2020-3-18 14:09:43
首先,没有一种共识机制是完美无缺的,各共识机制都有其优缺点,有些共识机制是为解决一些特定的问题而生。
1.pow( Proof of Work)工作量证明
一句话介绍:干的越多,收的越多。
依赖机器进行数学运算来获取记账权,资源消耗相比其他共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。
优点:
1)算法简单,容易实现;
2)节点间无需交换额外的信息即可达成共识;
3)破坏系统需要投入极大的成本;
缺点:
1)浪费能源;
2)区块的确认时间难以缩短;
3)新的区块链必须找到一种不同的散列算法,否则就会面临比特币的算力攻击;
4)容易产生分叉,需要等待多个确认;
5)永远没有最终性,需要检查点机制来弥补最终性;
2.POS Proof of Stake,权益证明
一句话介绍:持有越多,获得越多。
主要思想是节点记账权的获得难度与节点持有的权益成反比,相对于PoW,一定程度减少了数学运算带来的资源消耗,性能也得到了相应的提升,但依然是基于哈希运算竞争获取记账权的方式,可监管性弱。该共识机制容错性和PoW相同。它是Pow的一种升级共识机制,根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度
优点:在一定程度上缩短了共识达成的时间;不再需要大量消耗能源挖矿。
缺点:还是需要挖矿,本质上没有解决商业应用的痛点;所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响。例如,以太坊的DAO攻击事件造成以太坊硬分叉,而ETC由此事件出现,事实上证明了此次硬分叉的失败。
DPOS与POS原理相同,只是选了一些“人大代表”。
BitShares社区首先提出了DPoS机制。
与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账。其合规监管、性能、资源消耗和容错性与PoS相似。类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。
DPoS的工作原理为:

去中心化表示每个股东按其持股比例拥有影响力,51%股东投票的结果将是不可逆且有约束力的。其挑战是通过及时而高效的方法达到51%批准。为达到这个目标,每个股东可以将其投票权授予一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每名代表分配到一个时间段来生产区块。所有的代表将收到等同于一个平均水平的区块所含交易费的10%作为报酬。如果一个平均水平的区块含有100股作为交易费,一名代表将获得1股作为报酬。
网络延迟有可能使某些代表没能及时广播他们的区块,而这将导致区块链分叉。然而,这不太可能发生,因为制造区块的代表可以与制造前后区块的代表建立直接连接。建立这种与你之后的代表(也许也包括其后的那名代表)的直接连接是为了确保你能得到报酬。
该模式可以每30秒产生一个新区块,并且在正常的网络条件下区块链分叉的可能性极其小,即使发生也可以在几分钟内得到解决。
成为代表:
成为一名代表,你必须在网络上注册你的公钥,然后分配到一个32位的特有标识符。然后该标识符会被每笔交易数据的“头部”引用。
授权选票:
每个钱包有一个参数设置窗口,在该窗口里用户可以选择一个或更多的代表,并将其分级。一经设定,用户所做的每笔交易将把选票从“输入代表”转移至“输出代表”。一般情况下,用户不会创建特别以投票为目的的交易,因为那将耗费他们一笔交易费。但在紧急情况下,某些用户可能觉得通过支付费用这一更积极的方式来改变他们的投票是值得的。
保持代表诚实:
每个钱包将显示一个状态指示器,让用户知道他们的代表表现如何。如果他们错过了太多的区块,那么系统将会推荐用户去换一个新的代表。如果任何代表被发现签发了一个无效的区块,那么所有标准钱包将在每个钱包进行更多交易前要求选出一个新代表。
抵抗攻击:
在抵抗攻击上,因为前100名代表所获得的权力权是相同的,每名代表都有一份相等的投票权。因此,无法通过获得超过1%的选票而将权力集中到一个单一代表上。因为只有100名代表,可以想象一个攻击者对每名轮到生产区块的代表依次进行拒绝服务攻击。幸运的是,由于事实上每名代表的标识是其公钥而非IP地址,这种特定攻击的威胁很容易被减轻。这将使确定DDOS攻击目标更为困难。而代表之间的潜在直接连接,将使妨碍他们生产区块变得更为困难。

优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的。
3.PBFT :Practical Byzantine Fault Tolerance,实用拜占庭容错
介绍:在保证活性和安全性(liveness &amp; safety)的前提下提供了(n-1)/3的容错性。
在分布式计算上,不同的计算机透过讯息交换,尝试达成共识;但有时候,系统上协调计算机(Coordinator / Commander)或成员计算机 (Member /Lieutanent)可能因系统错误并交换错的讯息,导致影响最终的系统一致性。
拜占庭将军问题就根据错误计算机的数量,寻找可能的解决办法,这无法找到一个绝对的答案,但只可以用来验证一个机制的有效程度。
而拜占庭问题的可能解决方法为:
在 N ≥ 3F + 1 的情况下一致性是可能解决。其中,N为计算机总数,F为有问题计算机总数。信息在计算机间互相交换后,各计算机列出所有得到的信息,以大多数的结果作为解决办法。
1)系统运转可以脱离币的存在,pbft算法共识各节点由业务的参与方或者监管方组成,安全性与稳定性由业务相关方保证。

2)共识的时延大约在2~5秒钟,基本达到商用实时处理的要求。

3)共识效率高,可满足高频交易量的需求。
缺点:
1)当有1/3或以上记账人停止工作后,系统将无法提供服务;
  2)当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据;

下面说两个国产的吧~
4.dBFT: delegated BFT 授权拜占庭容错算法

介绍:小蚁采用的dBFT机制,是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。

此算法在PBFT基础上进行了以下改进:
将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式;
将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;
为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);
在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题。
优点:
  1)专业化的记账人;
  2)可以容忍任何类型的错误;
  3)记账由多人协同完成,每一个区块都有最终性,不会分叉;
  4)算法的可靠性有严格的数学证明;
缺点:
  1)当有1/3或以上记账人停止工作后,系统将无法提供服务;
  2)当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使系统出现分叉,但是会留下密码学证据;
  以上总结来说,dBFT机制最核心的一点,就是最大限度地确保系统的最终性,使区块链能够适用于真正的金融应用场景。

5.POOL验证池
基于传统的分布式一致性技术,加上数据验证机制。
优点:不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证。
缺点:去中心化程度不如bictoin;更适合多方参与的多中心商业模式。

原文:[干货]区块链的几大共识机制及优缺点

更多共识机制见csdn:区块链上的共识机制
回复

使用道具 举报

发表于 2020-3-18 14:10:03
Keegan小钢:016 | 漫谈区块链共识机制

共识机制是区块链的一个核心特征,是保证区块链系统在分布式架构下的一致性方案。目前主流的也有好多种共识算法:POW、POS、DPOS、RCP、PBFT、DBFT 等等。网上已经充斥了很多对这些共识算法的简单介绍,但基本流于表面而缺少深入的讲解,从而读者们也很难理解到这些共识机制背后的核心原理。而本文将以深入浅出的方式讲解区块链共识机制,但由于篇幅有限,因此,只会讲解最重要的两种区块链的共识机制,即比特币和以太坊的共识机制。
[size=5]比特币共识机制[/size]

比特币是区块链的第一个应用,也是第一个实现了共识机制的,因此,要理解区块链共识机制,自然也要先从比特币共识机制开始。另外,虽然很多文章都提到比特币的共识机制为 [b]POW(Proof of Work,工作量证明)[/b],但实际上,POW 只是整个比特币共识机制中的一部分,虽然是核心的那部分,但却不是全部。其实,比特币的分布式共识是由网络节点的 4 种独立过程相互作用而达成的:
[list][b]每个全节点基于一份长长的判断标准清单对每个交易进行独立验证[/b][b]每个挖矿节点独立将多个交易打包进新区块,通过完成 POW 算法的验算[/b][b]每个节点独立验证新区块并组装进区块链[/b][b]每个节点独立选择最长链,即在 POW 机制下累计工作量最多的那条链[/b]
[/list]先说第一种过程,对交易的独立验证。每个节点收到每一个交易之后,都会先根据一份很长的判断标准清单对该交易进行有效性校验,包括但不限于校验交易的语法和数据结构是否正确、输入和输出是否为空、输入总额是否小于输出总额、每一个输入所引用的输出是否已经被消费,等等。如果该交易通过所有验证,则可以说明该交易是有效的,那么,该节点就会将该交易放入本地的[b]交易池[/b](或称[b]内存池[/b]),并将该交易广播给其他相临的节点。如果没通过验证,则会废弃该交易,也不会将其广播出去。其他节点接收到该交易后,也各自做同样的独立校验,校验为交易有效之后,同样也放入各节点自己的[b]交易池[/b],并继续广播给其他节点。所以,理论上来说,无效的交易一开始就会被废弃,而有效的交易最终会到达整个网络所有节点,并被每个全节点所保存,即全网达成了“该交易有效”的共识。
接着,再来聊聊第二种过程,了解有效的交易是如何被打包进区块的。经过一段时间后,一般是 10 分钟左右,每个节点的交易池里会收集到很多有效但还未确认的交易,这些交易会组装成一颗 [b]Merkle Tree[/b]。关于 [b]Merkle Tree[/b] 的结构,我们在之前的文章《014|从微观到宏观理解区块链》已经讲过,这里就不赘述了。不过,组装进 [b]Merkle Tree[/b] 的第一笔交易是比较特殊的,这是一笔[b]创币交易[/b],也叫 [b]Coinbase 交易[/b],新的比特币就是从该笔交易产生的。这笔交易是由节点自己创建的,并将挖矿奖励支付到矿工自己的地址,挖矿奖励包括新创建的比特币和打包进该区块所有交易的手续费总额。组装好 [b]Merkle Tree[/b] 之后,就得到 [b]Merkle Root[/b],再结合区块头的其他 5 个字段——[b]Version、Pre Block、Times、Difficulty、Nonce[/b],总共 6 个字段合在一起经过[b]两次 SHA256 计算[/b]得到区块哈希值。一个有效的区块要求其哈希值必须小于 Difficulty 难度值,写作本文时的难度要求哈希值至少已经有 18 个 0 开头。挖矿其实就是通过修改参数的值而不断计算区块哈希值,直到计算出符合难度要求的哈希值。一般是通过修改 Nonce 值来计算区块哈希值,其他 5 个字段基本是不变的。而由于哈希函数的特性,难度值越大,理论上计算出符合要求的哈希值所需的计算量就越大。举个简单例子,比如你扔三个骰子,如果难度要求总和小于18,那是非常容易达到的,基本扔个一两次就能满足要求了;而如果加大难度,要求总和小于9,那从概率上来说相对就没那么容易了,可能要扔个十几次甚至几十次才能达到;而如果要求总和等于 3,那只能扔出三个 1 才行,这谁都知道要达到的概率是很低的,也许扔个一两百次才可能出现。因此,从统计学来说,一定的难度值可以推算出概率上对应所需的计算次数,也就是“工作量”,所以,只要你达到了难度要求,也就间接证明你付出了对应的工作量,这就是[b]工作量证明[/b]。
当某个节点计算出符合难度要求的区块哈希时,即说明该矿工挖矿成功了,该节点就会将此区块组装到本地的区块链,同时也将此区块广播给其他节点。然后,就进入第三种过程了。当其他节点收到此区块时,也会各自独立验证该区块是否有效。和独立验证交易一样,也存在一份验证标准清单,包括但不限于校验引用的上一个区块是否是否正确、难度值是否符合标准、区块哈希是否真的符合难度要求、Coinbase 交易中的挖矿奖励是否多于应得的、整个区块的每笔交易是否都是有效的,等等。其中,难度值是有标准的计算公式的,每个节点都会根据标准公式独立计算实际的难度值,所以,矿工如果不按照标准而自己设置一个较低的难度,在其他节点是无法通过的。同样,挖矿奖励也是有标准公式的,所以,如果矿工给自己奖励过多的比特币,在其他节点也是同样无法通过的。每个节点验证该区块为有效之后,也会各自将该区块组装进它们本地的区块链,并继续将该区块广播给其他节点。
由于所有节点同时在挖同一个区块,就有可能会出现多个节点同时挖出了同个区块,并都将各自挖到的区块广播到其他节点。假设有两个节点同时挖出了新区块,分别为区块 N1 和 N2,它们的上一个区块都是 P。有些节点会先收到 N1,它们会将 N1 先组装进它们本地的区块链,也称为主链。但之后不久,这些节点也会收到 N2,这时候,它们会将 N2 放入备选链。而其他节点则先收到 N2 再收到 N1,则 N2 在它们的主链上,而 N1 在它们的备选链上。这时候,整个区块链暂时就分成了两个分叉,而要打破这种局面,就要看下一个生成的区块是基于 N1 还是 N2 了。如果下一个区块是基于 N1,自然,N1 的这条链就变成了最长链,也是累计工作量最多的链。那么,那些将 N2 链设为主链的节点就会根据实际情况自己选择将 N1 链改为主链,而 N2 将成为[b]孤块[/b]而被废弃。
以上就是比特币共识机制的核心内容了,说白了其实就是根据一些所有节点都认可的标准对每个交易和区块的创建和校验进行独立验证,当大多数节点都认可并写入自己的区块链的时候,就自动形成了分布式共识。所有区块链基本都是这个逻辑,不同区块链主要在于制定的标准不同,比特币主要就是基于 POW 机制,这种机制实现简单,但它会造成大量的能源浪费,由于所有节点同时竞争挖矿同一个区块,而基本只有一个节点能胜出,那其他未胜出的节点所消耗的算力能源就白费了。另外,每次交易确认(即出块时间)大概 10 分钟,一笔交易一般要有 6 次确认才算安全,那基本就要 1 个小时了,这共识达成的时间太长了。
[size=5]以太坊共识机制[/size]

以太坊的共识机制也是基于 POW 的,但与比特币相比,主要有两点不同:一是挖矿时间控制在 10 ~ 19 秒之间,出块时间比比特币快了很多;二是对于[b]孤块[/b]也有挖矿奖励。在比特币中,[b]孤块[/b](即上文的 N2 区块)是会被丢弃的,挖出了孤块的矿工是得不到任何奖励的。但在以太坊中,孤块是能被打包进区块里的,如果后续的区块将前面产生的孤块也打包进区块里,那这个孤块就变成了[b]叔块[/b],那么,挖到这个叔块的矿工就能得到奖励,而将叔块打包进区块的矿工也能得到额外的奖励,但每个区块最多只能包含两个叔块,而且也不能包含太久的孤块,最多只支持到 7 层的祖先孤块。由于以太坊的出块时间短很多,那自然更容易出现临时分叉而产生孤块,而且这么短的时间内,每个区块也很难能够在全网充分传播,那对于网速慢的矿工来说,就非常吃亏了。所以,为了平衡各方利益,以太坊才设计了叔块机制。写作本文时,叔块率在 16.9% 左右。
不过,以太坊正在计划从 POW 机制切换为 [b]POS(Proof of Stack,权益证明)[/b]机制,其新的共识机制名为 [b]Casper[/b],其存在两个不同实现的版本,分别是:
[list]Casper the Friendly Finality Gadget(FFG)Casper the Friendly GHOST: Correct-by-Construction(CBC)
[/list]Casper FFG 是由 Vitalik 主导的,侧重于通过逐步迭代实现,慢慢过渡到 POS 机制。而 Casper CBC 则是由 Vlad Zamfir 主导的,不同于传统的协议设计方式,即先定义完整的协议,CBC 协议在开始阶段只是部分确定的,其余部分协议以证明能够满足所需/必需属性的方式得到。不过,也只是两种不同的方法,关于 POS 的核心理念还是一致的。相对来说,FFG 比较容易理解,也很大可能是即将第一个部署到以太坊的 Casper 版本,所以下面的篇幅主要讲解 FFG。
FFG 版本的 Casper 是一种混合 POW / POS 的共识机制,该机制下的每次出块依然还是采用 POW 挖矿机制,但每 100 个区块会增加一个 POS [b]检查点(checkpoint)[/b],通过[b]验证人(validator)[/b]来评估区块的最终有效性。创世区块是一个检查点,区块高度为 100 的倍数的区块也是检查点,将这些检查点连起来就组成了一条[b]检查点链(checkpoint chain)[/b]。检查点一般会有两种状态:[b]justified[/b] 和 [b]finalized[/b],[b]finalized[/b] 则表示已经确定为最终有效的,该状态的检查点至少已经存在一个子检查点,[b]justified[/b] 则表示该检查点是已经被证明合理的,[b]finalized[/b] 的检查点一定是 [b]justified[/b] 的,但反过来则不一定。而一个检查点是否有效,是通过多个验证人投票得出的结果。下面,我们就来简单聊聊这个过程。
首先,要成为验证人,是需要投入[b]保证金[/b]的,即抵押一定量的以太币作为权益证明,才有资格成为验证人。投入保证金是通过广播一条 [b]deposit[/b] 消息进行操作的,只要这条消息是有效的并被打包进区块中,那就能加入[b]验证人集合(validator set)[/b],成为其中一个验证人。另外,如果要退出[b]验证人集合[/b],则可以再广播一条 [b]withdraw[/b] 消息。不过,需要注意,一旦退出后,该验证人的公钥将被永久禁止再次加入验证人集合。
接着,成为验证人之后,就可以开始投票选举检查点了,通过广播一条 [b]vote[/b] 消息到网络中。vote 消息主要包含五个信息:两个检查点 [b]s[/b] 和 [b]t[/b],以及这两个检查点的高度 [b]h(s)[/b] 和 [b]h(t)[/b],以及验证人的公钥 [b]ν[/b]。要求 s 必须是 t 的祖先,一般来说,t 就是最新的检查点,而 s 是上一个已经确定为最终有效的检查点。另外,还要求验证人的公钥 v 必须在验证人集合中找得到,否则都认为该投票是无效的。当超过 2/3 的验证人(实际上是 2/3 的总保证金)都投给了 (s, t) 这对检查点时,那 s 就是 [b]finalized[/b] 的,t 则是 [b]justified[/b] 的。而且,那些投注了 (s, t) 的验证人还会得到货币奖励,得到的奖励是和抵押的保证金成比例的,就是说抵押的保证金越多,得到的奖励越多。这个奖励也可以理解为抵押保证金的利息。
另外,Casper 设置了两条戒律:
[list=1]验证人不能发布两个 h(t) 相同的投票,即如果存在两个投票:&lt;ν, s1, t1, h(s1), h(t1)&gt; 和 &lt;ν,s2,t2,h(s2),h(t2)&gt;,那么 h(t1) = h(t2) 是不允许的;如果 h(s1) &lt; h(s2) &lt; h(t2) &lt; h(t1),则第一个投票的跨度已经涵盖了第二个投票,这也是不允许的。
[/list]如果验证人违反了上面的戒律,则会对验证人进行惩罚,没收他抵押的保证金。
最后,Casper 对分叉链的选择不同于 POW 机制下选择累计工作量最多的那条链,Casper 对分叉链选择的规则就是选择 justified 检查点高度最大的链,原文是:
[list][b]FOLLOW THE CHAIN CONTAINING THE JUSTIFIED CHECKPOINT OF THE GREATEST HEIGHT.[/b]
[/list]很明显,以太坊的共识机制和比特币相比复杂得多,主要在于两点引起的:一是大大缩短了出块时间,二是引入了 POS 机制。在 POW 机制下将出块时间缩短到十几秒,虽然加快了性能,但其实减低了安全性,因为会引入很多其他问题,比如新区块难以在这么短的时间内扩散到全网,比如分叉链出现的概率更大,为了解决这些问题,就需要设计更多共识协议来提高安全性。引入 POS 机制变成 POW + POS 的混合机制,那这种复杂度不是 1 + 1 = 2 这么简单的。
回复

使用道具 举报

发表于 2020-3-18 14:10:49
目前用到的共识机制有[b]工作量证明机制(PoW)[/b],[b]权益证明机制(PoS)和代理权益证明机制(DPoS)。[/b]接下来我详细说一下前两种。
[indent]这个回答认为通过激励相容的算法规则和相关契约安排,区块链明确各方的经济利益,充分调动各方的积极性,使分布式协同作业真正成为可能。[/indent][b]工作量证明机制(PoW)的激励相容[/b]
Nakamoto(中本聪)提出的工作量证明机制(PoW)同时包含了分布式共识的激励和惩罚机制。
[b](一)激励机制[/b]
如前述所言,区块链是一个公共可见的账本,用来记录交易的历史信息。当一笔新的资产交易被创建时,资产转出方须通过签名脚本来证明自己是资产的合法使用者,并且指定输出脚本来限制未来对本交易的使用者(资产收入方)。如果是合法创建并签名的,则该笔交易现在就是有效的,它将被广播到区块链网络并被传送,每一个收到交易的节点将会首先验证该交易,确保只有有效的交易才会在网络中传播,而无效的交易将会在第一个节点处被废弃,直至抵达挖矿节点。
挖矿节点在验证交易后,会将这些交易添加到自己的内存池中,构建新的区块。在 PoW 机制,矿工们接着通过反复尝试求解一种基于哈希算法的数学难题来竞争获得记账权,具体而言,矿工不断更换区块头的填充随机数并计算这个区块头信息的哈希值,看其是否小于当前目标值。如果小于,则成功「出块」,随后矿工将这个区块发给它的所有相邻节点。这些节点在接收后进行一系列的检查标准去验证区块的正确性。检查的标准包括区块的数据结构和区块包含的交易合法有效;区块头的哈希值小于目标难度(确认包含足够的工作量证明)等。一旦一个节点验证了一个新的区块,它就会将新的区块连接到累积了最大工作量证明的区块链中,矿工挖矿成功。
在上述过程中,矿工获得两方面奖励:一是代币奖励。矿工构建的新区块中的第一笔交易是一笔特殊交易,称为创币交易或者 Coinbase 交易。矿工挖矿成功后,将获得这笔新创造的加密代币。在比特币网络,每隔 10 分钟将一个新的区块添加至链上,每添加一个区块可以获得 50 枚比特币作为奖励(每四年减半)。二是记账决策权与交易手续费。矿工拥有记账决策权,有权决定将哪些交易添加至新构建的区块,并对收录在区块内的所有交易收取手续费。
[b](二)惩罚机制[/b]
通过惩罚设计,PoW 设置了两道门槛:第一道门槛设在矿工竞争记账权的时候,使得矿工不能随便「发言」(新增区块)。一方面,矿工为获得记账权,须不断求解哈希难题,因此付出「不菲」的成本,这一成本是沉没成本,只要矿工想参与「发言」,那么无论他最终能否成功「发言」,他均必须付出这一笔建言成本;另一方面,由于哈希难题的验证要比求解来得简单,对新出区块的验证成本微乎其微,因此只要矿工一错误「发言」(如交易无效、格式不符等),就会很快地被其他节点检测出来废弃掉,他之前付出的建言成本相当于对他的惩罚。
第二道门槛则设在区块被成功添加区块链后的修改,使得矿工不能随意更改区块链。在比特币网络,每 2016 个区块(大约两周)后,所有客户端把新区块的实际数目与目标数量相比较,并且按照差异的百分比调整目标哈希值,来增加(或减少)产生区块的难度,确保每 10 分钟 1 块的恒定出块速度。挖矿难度值的提高,增加了攻击的成本。攻击者如果要构造出一条比真实区块链更长的秘密区块链,需要在比特币网络产出 6 个区块的同时秘密产出 7 个区块。
[align=center][size=14px][b]使用 App 查看完整内容[/b][color=#999999]目前,该付费内容的完整版仅支持在 App 中查看[/color]
回复

使用道具 举报

发表于 2020-3-18 14:10:55
自比特币诞生以来,为了解决点对点网络信息传递的延时影响问题,区块链系统设计了一种机制,来实现对差不多时间内发生的事务进行先后顺序排序的共识,这种对达成共识的算法被称为“共识机制”。常见的共识机制包括:
1)Pow(Proof of Work)工作量证明,就是挖矿。通过运算,计算出一个满足规则的随机数,解决规定的hash问题,即获得本次记账权。再发出本次需要记录的数据,全网其它节点验证后一起存储。代表应用包括比特币、莱特币和即将上线的Conflux。以及以太坊的前三个阶段:Frontier(前沿)、Homestead(家园)、Metropolis(大都会)。
2)Pos(Proof of Stake)权益证明。为了提高处理速度的一种共识机制;根据每个节点所占代币的比例和时间,获得股份比例。拥有代币股份越多的人越容易获取记账权。区块链的代表应用包括Qtum 量子链、ETH当前阶段和Cosmos、Tezos。
3)DPos(Delegated Proof of Stake)股份授权证明机制。持币者投出一定数量的节点作为代理点,代理点代持币者进行验证和记账,DPoS通过减少验证者的数量来提高交易速度以及创建块的速度。验证者是TOKEN持有者通过投票选出来的,新块由验证者而不是TOKEN持有者创建。每票的权重由投票人的资产总和决定。投票人可以在任何时候投票给验证者。代表区块链平台包括:Eos、Bitshares。
4)PoA(Proof of Authority)权威证明机制。
这种PoA机制不挖矿也不需要Token。在基于此PoA的区块链网络中,所有的交易和区块均由验证人(Validator)处理。PoA平台的维护成本低,但在PoA中,交易和验证区块的验证人,必须是能通过可靠性审查的人。所以,PoA的验证人必然非常关注自身声誉。声誉在PoA里就是非常重要的资产。一般情况下,验证人会公开自己的实际身份。目前,这种共识机制形成的区块链技术主要是应用在行业特征明显的联盟链、私有链上,代表区块链包括:GE航空(GE Aviation)和沃尔玛(Walmart)的物流链、Giveth、Tomochain、Go-Chain等。
5)PoI(Proof of Importance),即重要性证明。
PoI算法提供了一种分布更为均匀的挖矿方法。人们既不需要使用更强劲的机器,也不需要持有更多的股份来获取更多奖励。只需要向整个经济体证明自己的重要性来获取区块奖励。这个方案的重要性证明是指:更有钱和资产并不意味着就更重要。PoI更看中的是交易量、活跃度、以及交易的对象,根据算法来获得重要性指标,从而获得更高的挖矿概率。代表区块链是NEM(新经济运动)。
6)PoA(Proof of Asset),即资产证明。
这种PoA(资产证明)是将实物代币化的一种共识模式。此PoA协议实现了实体资产代币化和文档化的实例。PoA的认证过程是在以太坊上记录和提供一项资产的审计跟踪,从而创建PoA资产卡。这些资产卡通过来自监管链参与者(即黄金供应商、托管商和审计商)的连续数字签名获得认证,然后进一步将数字签名提供和上传到IPFS(星际文件系统),被永久保存起来的购买和存储收据证明所确认。代表区块链技术来自新加坡Digix Global。
7)POB (Proof of Burn),即烧毁证明。
PoB要求创建新区块的人必须为创建新的货币支付费用。这些费用是按照预先规定的比例或者算法,将其它数字加密货币或者以往的本身数字货币,转换为新的货币。矿工、开发者、用户旺旺通过将加密货币发送到一个无法被使用的加密货币地址上,从而达到“焚毁”这批加密货币的目的。这些加密货币可以是其他种类的数字货币,比如比特币,也可以是以前生成的同类货币。合约币XCP,就是通过烧毁比特币而产生。
当然,还有一些其它的共识算法或者多种算法结合形成的机制。比如PoD(Proof of Developer)开发者证明、PoP(Proof of Purchase)购买证明、PoT(Proof of Time)时间证明、PoId(Proof of Identity)身份证明和CP(Combining Proofs)混合证明、PoA(Proof of Activity)即PoW和Pos混合证明的共识机制、PBFT(Practical Byzantine Fault Tolerance)实用拜占庭容错算法、PoB(Proof of Brain)脑力证明、PoPA(Proof of Physical Address)物理地址证明、PoBA(Proof of Bank Account)银行账户证明等等,样类繁多。
但无论哪一种共识算法,都有各自的应用场景,在处理实际应用的时候各有优劣。区块链到底选择哪种或者多种结合的共识算法,主要取决于网络和数据处理能力等多个方面,以及该链的中心化程度和算力分布情况等方面的因素。
回复

使用道具 举报

发表于 2020-3-18 14:11:11
作为一个新兴技术,区块链在不断为各行各业注入新能量,区块链本身的运行机制就成了很重要的一部分,只有运行规则清晰了,才能被接入更多的行业进行落地应用,而区块链本身的这套运行机制,我们就可以简单的称为共识机制。
区块链共识机制有哪些?-1.jpg [b]那怎么理解共识机制呢?[/b]
维基百科对共识机制的解答是这样的:由于加密货币多数采用去中心化的区块链设计,节点是各处分散且平行的,所以必须设计一套制度,来维护系统的运作顺序与公平性,统一区块链的版本,并奖励提供资源维护区块链的使用者,以及惩罚恶意的危害者。
这样的制度,必须依赖某种方式来证明,是由谁取得了一个区块链的打包权(或称记帐权),并且可以获取打包这一个区块的奖励;又或者是谁意图进行危害,就会获得一定的惩罚,这就是共识机制。
简单来讲,区块链系统是一个点对点的网络系统,而这些节点在同一时间会有时间上的延迟和动作的不同,要想使这些节点达成共识进行下去,就需要一套公平的规则来规范这些节点,只有这样,才能让整个区块链系统顺利地运行下去。所以,从本质上来讲,共识机制就是决定了谁在区块链系统中负责哪一个新区块生成的作用。
目前,区块链共识机制主要有三种,分别是PoW(工作量证明)、PoS(权益证明)和DPoS(代理权益证明)。
区块链共识机制有哪些?-2.jpg [b]PoW(Proof of Work),工作量证明[/b]
工作量证明系统这个概念由Cynthia Dwork 和Moni Naor 1993年在学术论文中首次提及, 而工作量证明(PoW)则是Markus Jakobsson 和Ari Juels在1999年的文章中才被正式提出。直到2008年10月,中本聪在比特币的白皮书中将PoW作为了比特币的共识机制,PoW才开始被一些人所知道。
PoW跟其名字工作量证明一样,矿工工作了多少就会获得多少挖矿奖励。拿我们比较熟悉的比特币来说,矿工的矿机性能越好、数量越多,挖出的比特币奖励就会越多,这跟按劳分配是一个道理。
除了比特币,以太坊(ETH)和莱特币(LTC)的底层共识机制也都是运用的PoW共识机制。


PoW共识机制的优点:
1、 去中心化,保证各个节点公平记账;
2、 安全性高,破坏系统需要投入极大的成本。
PoW共识机制的缺点:
1、 资源浪费,越来越多的矿机形成竞争,设备和电力被大量消耗;
2、 网络性能低,区块达成共识的时间太长,难以达到正常的商用程度;
3、 容易产生分叉,一步步远离去中心化的特性。
[b]PoS(Proof of Stake),权益证明[/b]
PoS最早由化名为Sunny King的人在2012年创立的Peercoin所采用。这种机制的原理类似于我们现实生活中的股东机制,拥有股份越多,那么获取记账的权力就越大。我们所知道的恒星币就是采用的这种共识机制。


PoS共识机制的优点:
1、 节省挖矿的能源;
2、 缩短了各个节点达成共识的时间。
PoS共识机制的缺点:
1、 缺少专业化,拥有权益的人不一定有足够的专业知识,甚至未必希望参与记账;
2、 去中心化特性变弱,容易形成头部的资源垄断,被拥有51%股权的人控制。
[b]DPoS(Delegated Proof of Stake),代理权益证明[/b]
DPoS被视为是PoS的进化方案。
DPoS的原理可以类比于人民代表大会制度,即每位持币人都有权投票选出代理节点,持币量少的人也能参与投票,根据投票结果,得票最多的节点就会承担起生成新区块的责任。如果哪些节点没有完成记账的任务,就会被网络选出新节点来替代它们。这样就大幅度的减少了区块创建和确认所需要消耗的时间和算力成本。
跟PoW共识机制比起来,DPoS在很大程度上提高了区块链处理数据的能力,让交易速度实现了质的飞跃,同时还降低了维护区块链网络安全的费用,所以DPoS现在是公链主流的共识算法。
区块链共识机制有哪些?-3.jpg 就波场而言,波场TRON以推动互联网去中心化为己任,致力于为去中心化互联网搭建基础设施,为了真正实现能用于日常场景的区块链平台,达到足够快的数据处理速度,兼顾民主化和去中心化,波场选择了以DPoS为基础定制适用于TRON网络需求的共识机制。


[b]波场TRON共识机制的基本原则如下:[/b]
1、 用户会根据自己手里的具有可投票权的币持有量做出带有权重的投票,根据投票结果,按照一定的规则选择出当前的区块生成节点。参照的规则会尽可能的保证区块的生成速度与打包节点数量之间的平衡性;
2、 同时,落选的打包节点、投票给中选者的用户、投票给落选者的用户均可能获得一定量的补偿,以激励他们持续参与之后的竞选流程;
3、 中选节点会按照一定的分配规则依次进行区块的打包并获得最大份额的奖励;
4、 中选节点中的多数会根据投票结果进行选择,剩下的会按照一定的算法保证在余下的其他节点中,所有节点都有可能被选中。
共识机制的发展看似是一种有规则的计算机编码,但实际上它也代表了一种新的数字世界的经济秩序,随着区块链技术正在接入各行各业,相信共识机制在未来还会有更多更有创造性的迭代。
回复

使用道具 举报

发表于 2020-3-18 14:12:01
区块链基础知识点:共识机制(POW,POS,DPOS) - 币问 - 区块链第一知识站欢迎大家来币问一起交流。币问是一个面向区块链与数字货币的问答平台,目标是做币圈的知乎。目前还没有开放注册,只能通过邀请的方式参与。感兴趣的可以留下邮箱,最后通过邮箱里的链接进行注册登陆即可。
回复

使用道具 举报

发表于 2020-3-18 14:12:47
1、Pow工作量证明,就是大家熟悉的挖矿,通过与或运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储;
优点:完全去中心化,节点自由进出;
缺点:目前bitcoin已经吸引全球大部分的算力,其它再用Pow共识机制的区块链应用很难获得相同的算力来保障自身的安全;挖矿造成大量的资源浪费;共识达成的周期较长,不适合商业应用

最典型的应用就是比特币

2.DPos股份授权证明机制,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。
优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证
缺点:整个共识机制还是依赖于代币,很多商业应用是不需要代币存在的

比较典型的应用是ASCH
回复

使用道具 举报

发表于 2020-3-18 14:13:29
共识机制,顾名思义,就是整个区块链网络里共同参与的个人(节点),采用何种方式达成一致的机制。截至目前,针对主流数字货币使用的共识机制的争论,主要集中在工作量证明(POW,Proof of Work),权益证明(POS,Proof of Stake)和股份授权证明(DPOS,Delegated Proof of Stake)三种,我们会用比较客观态度比较三种机制的优劣,帮助大家自行做出判断。
区块链共识机制有哪些?-1.jpg

[b]工作量证明[/b]
使用POW机制的加密货币,最具代表性的就是比特币,我们之前也说过,作为世界上最成功,共识度最广的数字加密货币,比特币的全网参与者通过利用自身的计算能力计算一道数学难题(SHA-256),竞争比特币一段时间内交易的记账权利,算力高,计算速度快的人,有更大概率先计算出来,先记账并获得记账奖励,赢得一笔新发行的比特币,然后剩下的人,会检验它计算出的时间和结果,直至全网的参与者都验证后,才算达成一致。


区块链共识机制有哪些?-2.jpg

[b]优点:[/b]
1)安全,由于矿工们都是花钱购置矿机参与挖矿,矿机的花费是实打实的沉没成本,所以集中作恶(比如集体记假账欺骗全网等)的可能性较低,比特币经历近10年时间从未出现任何错漏或是被攻击,已经足以证明POW算法最为优越的安全性,其他诸如POS,DPOS等机制都是近几年才兴起的新共识机制,并未经过时间检验,即便短期内并未出现大的问题或是漏洞,仍无法断言在以后一定不会出现重大安全问题。
2)优质项目易吸引早期矿工,由于早期参与者更容易获取较大奖励,且不需要专门的矿机,矿工们往往更倾向于参与这种早期的优质POW项目,如果项目发展良好,能够获得较高额的收益。这一优点是仅针对今天而言的,因为比特币POW的成功,显卡矿工们四处寻找优质项目挖矿,无形中为早期项目贡献了一份力量,但比特币问世时,上述两个优点其实都不存在,因此这一共识机制其实是个经历的时间越久越安全,也越有魅力的机制。
[b]缺点:[/b]
1)资源浪费,由于计算能力的竞争导致参与者们不断升级硬件(显卡)以获得更大的计算能力,甚至生产专门用来计算SHA-256或是其他数学难题的机器(矿机),这些机器的生产和运行造成巨大的人力、电力资源浪费,只为了计算一道毫无意义的加密数学题,这也是比特币最为人所诟病的一点。
2)升级困难,由于整个计算和竞争的过程全部写在各式各样的矿机当中,任何针对原有共识机制的升级都很难在短时间内通知并实现所有参与人的变更,且由于参与者个人意愿的不同,很难实现整个机制和系统的平滑升级,造成分叉和安全性下降几乎很难避免的。


区块链共识机制有哪些?-3.jpg

[b]权益证明[/b]
为了改进POW资源浪费和升级困难的缺陷,POS机制应运而生,这一机制简单来说就是将挖矿的全过程搬到线上,模拟一种虚拟挖矿的过程,怎么理解呢?
挖矿需要购买矿机获得算力,矿机越多算力越大,收益也越多,由于矿机沉没成本的存在,这些人就成为了比特币的利益相关者。而我们如果想虚拟化这一构成,应该怎么做呢?我们可以把购买矿机,替换成购买一部分的数字货币,这样持币人也同样可以变成利益相关者,同时持币量越多的人,获得的后续收益也越大,以此来模拟挖矿的过程就可以了。这里涉及到一个币天的概念,即是说,每持有一个币过了一天,就为这个币增加一个币天,等够了365个币天,可以获得一定比例的增发奖励,比如5%,8%等。


区块链共识机制有哪些?-4.jpg

也就是说,最简单的可以理解为,当我们开着电脑,使用某种POS币种的钱包时,能够获得年化8%左右的新币增长,直至发行达到上限。
[b]优点:[/b]
1)无资源浪费,没有矿机,获得大收益的方式是成为更大的利益相关者。
2)升级相对容易,都通过电脑在软件和线上进行,不涉及硬件的运算重写。
[b]缺点:[/b]
1)安全性无法完全确定,部分持币人可能是使用其他数字货币与POS币种交换而来,不存在实质上的沉没成本,作恶成本相对较低,且机制未经时间检验,无法短期内确定安全性。
2)通货膨胀和财富集中现象更为明显,由于有增发机制,在货币全部发行完毕之前每年均存在通货膨胀的情况,财富也会趋于集中化。


区块链共识机制有哪些?-5.jpg

[b]权益委托证明[/b]
一种改进易用性的共识思路,持币人投票选出固定数量且较为分散的特殊节点参与记账,相互验证,特殊节点通常是持币量较大的强利益相关人,作恶可能性较小,同时记账奖励发放至这些特殊节点用于节点的运营,让持币数等同于投票权,一旦特殊节点作恶,持币人有权票选新的节点继续记账。
[b]优点:[/b]
1)易用性最优,特殊节点数量不多,验证效率高,使用人体验好。
2)特殊节点往往是持币量巨大的利益强相关团体或个人,具备更高的社会影响力,随着币价的上涨,记账奖励将为特殊节点带来巨大的收益,因此特殊节点的宣传意愿较上述机制最为强烈。
[b]缺点:[/b]
1)安全性较弱,验证节点过少,通过牺牲安全性交换更良好的易用性,本质上已经不能算是去中心化的记账方式了,特殊节点的实质可能只是分布在世界各地的寥寥几台服务器而已,安全隐患较大。
2)特殊节点权利过大,也很难做到完全匿名,集体作恶或者集体受胁迫作恶的可能性无法排除。
3)个人投票意愿弱,且由于特殊节点本身也是持币量巨大的权益人,通过票选的方式想变更节点必然是利益集团的博弈,社区分裂的可能性较高。


区块链共识机制有哪些?-6.jpg

综上所述,针对主流共识机制的争论,尽管圈内对这些机制的孰优孰劣尚无定论,共识机制也并不只有上述三种,但本着安全易用的原则与资源节约的思路,我们更倾向于优化和改进POS机制中存在的种种问题,而且我们已经看到很多优秀的解决方案应运而生,它们有些已经实践,有些则仍在研究,但不论如何,这些不起眼的想法终有改变世界的一天,希望这一天能早些到来才好。
回复

使用道具 举报

发表于 2020-3-18 14:13:35
在区块链中,共识指的是不同节点间对于区块链的某一种状态达成一致,比如区块有多大、谁取得了记账权、谁获得奖励,都需要达成共识。区块链目前存在的共识机制有如下几个:
[b]POW [/b]
[b]POW即“Proof of  Work”,指的是工作量证明机制。[/b]
它是一种按劳取酬的机制,简单理解就是一份证明,用来确认节点做过一定量的工作。它的优点是相对比较公平,缺点则是会消耗大量的电力和能源。区块链中使用此机制的代表有:比特币、莱特币。
[b]PoS  [/b]
[b]PoS即Proof of Stake,指的是权益证明机制。[/b]
它是类似于把资产存在银行里,银行会通过你持有数字资产的数量和时间给你分配相应的收益。采用Pos机制的加密货币资产,系统会根据节点的持有数量和时间的乘积给节点分配相应的权益。它的优点是不需要挖矿,间接节省了电力和能源同时能够避免紧缩。缺点是只能通过IPO方式发行,信用基础不牢固。使用PoS的数字货币代表:以太币。
[b]PoW+PoS双重机制 [/b]
通过PoW‘挖矿’发行,使用PoS机制维护网络稳定。解决了PoS信用基础不牢固的问题。
[b]DPoS [/b]
[b]DPoS即Delegated Proof of Stake,指的是权益授权证明(股份授权证明机制)。[/b]
它是基于POW及POS的基础上,出现的一种新型的保障数字货币网络安全的共识算法。DPoS是一种类似董事会的授权共识机制,该机制让每一个持币人对整个系统的节点进行投票,决定哪些节点可以被信任并代理他们进行验证和记账,同时生成少量的对应奖励。DPoS的优点是大幅提高了区块链的处理能力,降低了区块链的维护成本。使用DPoS的数字货币代表:EOS(柚子币)。
[b]dBFT  [/b]
[b]dBFT即Delegated Byzantine Fault Tolerane,指的是授权拜占庭容错机制。[/b]
它是基于持有权益比例来挑出专门的记账人,然后记账人之间通过拜占庭容错算法达成共识。简单来说就是少数服从多数的投票机制!它的优点是可以容忍任何类型的错误;专门的记账人使得每个区块都有最终性,不会分叉。使用dBFT共识的代表是:NEO(小蚁区块链)。
[b]PBFT [/b]
[b]PBFT即Practical Byzantine Fault Tolerance,指的是改进型实用拜占庭容错。[/b]
是Fabric使用的经典算法。该共识机制是少数服从多数,根据信息在分布式网络中节点间互相交换后各节点列出所有得到的信息,一个节点代表一票,选择大多数的结果作为解决办法。PBFT以计算为基础,也没有代币奖励。
[b]FBA[/b]
[b]FBA即Federated Byzantine Agreement,指的是联邦拜占庭协议。[/b]
它是通过分布式的方法,达到法定人数或者节点足够的群体能达成共识,每一个节点不需要依赖相同的参与者就能决定信任的对象来完成共识。
[b]PoB[/b]
[b]PoB即Proof of Burn,指的是燃烧证明。[/b]
燃烧证明是一种投资于全新的加密货币的方式:为了获得一种新的货币,你必须“烧掉”(摧毁)另一种货币,比如比特币。
[b]PoD[/b]
[b]PoD即Proof of Developer,指的是开发者证明。[/b]
开发者证明是一个真实的,活的软件开发人员创建了一种加密货币的证据。它用于启动新的加密货币,以防止匿名开发人员在不提供可行的加密货币的情况下收集和窃取资金。
[b]PoI[/b]
[b]PoI即Proof of Important,指的是重要性证明。[/b]
重要性证明是根据交易量、活跃度等维度而不仅仅根据工作量和币的数量来决定区块链的记账权利的。
[b]TaPOS[/b]
[b]TaPOS即Transaction as Proof of Stake,指的是基于交易的权益证明机制。[/b]
TaPOS为股东们提供了一个长效机制来直接批准他们的代表的行为,平均而言,51%的股东在6个月内会直接确认每个区块,取决于活跃流通的股份所占的比例,差不多10%的股东可以在几天内确认区块链。这种方式直接确认保障了网络的长期安全,并使所有的攻击尝试变得极度清晰易见。
[b]瑞波共识机制[/b]
瑞波共识算法使一组节点能够基于特殊节点列表达成共识,初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循核心成员51%权力规则,外部人员则没有影响力。
[b]分布式共识[/b]
所有的节点必须定期更新彼此之间的不断复制的状况,通过专门的槽位来识别每一个更新。当所有节点更新了他们的分类账并放映的值相同时,就可达成共识,会将协商一致的声明具体化并发布至它们的分类账副本去。
[b]Paxos[/b]
Paxos是第一个被证明的共识算法,被用于分布式系统中典型的例子就是Zookeeper。
[b]Paft[/b]
Raft算法是对Paxos算法的一种简单实现。
[b]POOL验证池[/b]
验证池机制是基于传统的分布式一致性技术和数据验证机制的结合,它使得在成熟的分布式一致性算法(Pasox、Raft)基础上,不需要代币也能实现秒级共识验证。


[b]更多区块链知识请关注“BTFM”公众号![/b]
回复

使用道具 举报

123下一页
  • 发布信息免费
  • 发贴彩色标题
  • 签到额外经验值

如何快速提升等级,查看[积分规则]

活动中心

查看更多>>
最新热版
会员排行
©2001-2018 巨推链 https://jutuilian.com/中国互联网举报中心陇ICP备20002644号-1 非经营性网站Powered byDiscuz!X3.3公安网备 
我们手机版广告合作客服QQ:1831288186Comsenz Inc.