区块链共识机制什么 区块链中的共识机制是什么

皕利分享 143 0

本篇文章给大家谈谈区块链共识机制什么,以及区块链中的共识机制是什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

什么是区块链共识?

所谓“共识机制”区块链共识机制什么,是通过特殊节点的投票区块链共识机制什么,在很短的时间内完成对交易的验证和确认区块链共识机制什么;对一笔交易,如果利益不相干的若干个节点能够达成共识,区块链共识机制什么我们就可以认为全网对此也能够达成共识。再通俗一点来讲,如果中国一名微博大V、美国一名虚拟币玩家、一名非洲留学生和一名欧洲旅行者互不相识,但区块链共识机制什么他们都一致认为你是个好人,那么基本上就可以断定你这人还不坏。

区块链作为一种按时间顺序存储数据的数据结构,可支持不同的共识机制。共识机制是区块链技术的重要组件。区块链共识机制的目标是使所有的诚实节点保存一致的区块链视图,同时满足两个性质:

1)一致性。所有诚实节点保存的区块链的前缀部分完全相同。

2)有效性。由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块链中。

区块链pow是什么意思

区块链PoW就是区块链上的一种共识机制,目前区块链上的共识机制的种类是有很多的,PoW只是其中的一种,它的意思是工作量证明机制,其它的共识机制还有POS(权益证明机制)、DPOS(股份授权证明机制)、DAG(有向无环图)、PBFT(实用拜占庭容错)等很多种。

POW的全称为ProofofWork,翻译过来就是“工作证明”或者“工作量证明”。

比特币、狗狗币和莱特币等都是基于POW模式的数字货币。就是说挖矿获得多少货币奖励,取决于挖矿贡献的有效工作,也就是说,矿机的性能越好、挖矿时间越长,所获得的货币奖励就越多。

工作量证明的重要意义在于:它迫使货币的产生,需要付出一定的工作量和成本,这就赋予了货币一定的商品属性,使得自由市场这只无形的手能够通过“价格机制”自发地调节货币供应,保证了货币具有稳定的价值,从而使得货币能够获得人们的信任。

区块链技术中的共识机制是什么?

重庆金窝窝分析道:所谓共识,是指多方参与的节点在预设规则下,通过多个节点交互对某些数据,行为或流程达成一致的过程。

共识机制是指定义共识过程的算法,协议和规则

三. 区块链系统的核心之一-分布式共识机制

        拜占庭将军问题(Byzantine Generals Problem),是由莱斯利·兰波特在其同名论文中提出的分布式对等网络通信容错问题。

        在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动。但有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论,从而破坏系统一致性。这个难题被称为“拜占庭容错”,或者“两军问题”。

        拜占庭假设是对现实世界的模型化。拜占庭将军问题被认为是容错性问题中最难的问题类型之一。拜占庭容错协议要求能够解决由于硬件错误、网络拥塞或断开以及遭到恶意攻击,其他计算机和网络可能出现不可预料的行为而带来的各种问题。并且拜占庭容错协议还要满足所要解决的问题要求的规范。

        在拜占庭时代有一个墙高壁厚的城邦——拜占庭,高墙之内存放在世人无法想象多的财富。拜占庭被其他10个城邦所环绕,这10个城邦也很富饶,但和拜占庭相比就有天壤之别了。

        拜占庭的十个邻居都觊觎它的财富,并希望侵略并占领它。但是,拜占庭的防御非常强大,任何单个城邦的入侵行动都会失败,而入侵者的军队也会被歼灭,使得该城邦自身遭到其他互相觊觎对方的九个城邦的入侵和劫掠。

        拜占庭的防御很强,十个城邦中要有一半以上同时进攻才能攻破它。也就是说,如果有六个或者以上的相邻城邦一起进攻,他们就会成功并获得拜占庭的财富。然而,如果其中有一个或者更多城邦背叛了其他城邦,答应一起入侵但在其他城邦进攻的时候又不干了,也就导致只有五支或者更少的城邦的军队在同时进攻,那么所有的进攻城邦的军队都会被歼灭,并随后被其他的(包括背叛他们的那(几)个)城邦所入侵和劫掠。

        这是一个由许多不互相信任的城邦构成的一个网络。城邦们必须一起努力以完成共同的使命。而且,各个城邦之间通讯和协调的唯一途径是通过信使骑马在城邦之间传递信息。城邦的决策者们无法聚集在一个地方开个会(所有的城邦的决策者都不互相信任自己的安全会在自己的城堡或者军队范围之外能够得到保障)。

        城邦的决策者可以在任意时间以任意频率派出任意数量的信使到任意的对方。每条信息都包含如下的内容:“我城邦将在某一天的某个时间发动进攻,你城邦愿意加入吗?”。如果收信城邦同意了,该城邦就会在原信上附上一份签名了的或盖了图章的(以就是验证了的)回应然送回发信城邦。然后,再把新合并了的信息的拷贝一一发送给其他八个城邦,要求他们也如此这样做。最后的目标是,通过在原始信息链上盖上他们所有十个城邦的决策者的图章,让他们在时间上达成共识。最后的结果是,会有一个盖有十个同意同一时间发动进攻的图章信息包,和一些被抛弃了的包含部分但不是全部图章的信息包。

        在这个过程中首先出现了第一个问题,就是如果每个城邦向其他九个城邦派出一名信使,那么就是十个城邦每个派出了九名信使,也就是在任何一个时间又总计90次的传输,并且每个城市分别收到九个信息,可能每一封都写着不同的进攻时间。

        在这个过程中还有第二个问题,就是部分城邦会答应超过一个的攻击时间,故意背叛进攻发起人,所以他们将重新广播超过一条(甚至许许多多条)的信息包,由此产生许多甚至无数的足以淹没一切的杂音。

        有了以上两个问题,整个网络系统可能迅速变质,并演变成不可信的信息和攻击时间相互矛盾的纠结体。

         拜占庭假设是对现实网络世界的一种模型化。在现实网络世界中由于硬件错误、网络拥塞或断开以及遭到恶意攻击,网络可能出现许许多多不可预料的行为。拜占庭容错协议必须处理这些失效,并且还要使这些协议满足所要解决的问题所要求的规范。

        对于拜占庭将军问题中本聪的区块链给出了比较圆满的解决方案。也就是比较圆满的解决了上述的两个问题。

        拜占庭将军问题的第一个问题从本质上来讲就是时间和空间的障碍导致信息的不准确和不及时。

        区块链对于第一个问题的解决方案是利用分布式存储技术和比特流技术(BT技术,一种新型的点对点传输技术,具有节点同时作为客户端和服务器端和没有中心服务器等特点),将整个网络系统内的所有交易信息汇总为一个统一的,分布式存储的,近乎实时同步更新的电子总账。统一的分布式共同账本就解决了空间障碍问题;而近乎同步进行的,实时的,持续的对所有账本备份的更新、对账则解决了时间障碍问题。

        这个过程较具体一点的描述大概是将区块链系统内所有的交易活动的记录数据统一于一种标准化的总帐上;区块链系统的每一个节点都会保存一份总帐的备份;所有总帐的备份都是在实时的,持续的更新、对账、以及同步着。区块链系统的每一个节点能在这本总帐里记上添加记录;每一笔新添加的记录都会实时的广播到区块链系统内;所以在每一个节点上的每一份总帐的备份都是几乎同时更新的,并且所有的总帐的备份保持着同步。

        拜占庭将军问题的第二个问题从本质上来讲就是关于信息过量问题和信息干扰问题。信息过量和信息干扰问题导致决策延迟,甚至决策系统崩溃而无法决策。

        区块链对于第二个问题的解决方案是区块链系统的任何一个节点在发送每一笔新添加的记录时需要附带一条额外的信息。对区块链系统的任何一个节点来说这条额外的信息的获得都是有成本的,并且只能有一个节点可以获得。这样就解决了区块链系统的任何一个节点新添加额外信息时的信息多且乱而无法达成一致的问题。在这里,区块链系统的任何一个节点获得那条附带的额外的信息的过程就是著名的工作量证明机制。

        共识机制主要解决区块链系统的数据如何记录和如何保存的问题。工作量证明机制就是要求区块链系统的节点通过做一定难度的工作得出一个结果的过程。

        区块链系统中某节点生成了一笔新的交易记录,并且该节点将这笔新的交易记录向全网广播。全网各个节点收到这个交易记录并与其他所有准备打包进区块的交易记录共同组成交易记录列表。在列表内先对所有交易进行两两的哈希计算;再对以获得的哈希值进行哈希计算获得Merkle树和Merkle树的根值;把Merkle树的根值及其他相关字段组装成区块头。

        各个节点将区块头的80字节数据加上一个不停的变更的区块头随机数一起进行不停的哈希运算(实际上这是一个双重哈希运算);不停的将哈希运算结果值与当前网络的目标值做对比,直到哈希运算结果值小于目标值,就获得了符合要求的哈希值,工作量证明也就完成了。

         分布式的区块链系统是一个动态变化的系统(硬件的运算速度的增长,节点参与网络的程度的变化)。系统的不断变化必然带来系统的算力的不断变化。而算力的变化又会导致通过消耗算力(工作)来获得符合要求的哈希值的速度的不同。最终的结果会是区块链的增长速度会有巨大的不同。这是一个很大的问题。为了解决这个问题,区块链系统自动根据算力的变化对工作难度进行调整。也就是采用移动平均目标的方法来确定,难度控制为每小时生成区块的速度为某一个预定的平均数。

        在区块链系统中一个符合要求的哈希值是由N个前导零构成,零的个数取决于网络的难度值。为了使区块的形成时间控制在大约十分钟左右,区块链系统采用了固定工作难度的难度算法。难度值每2016个区块调整一次零的个数。

        新的难度值是根据前2015个区块(理论上应该是2016个区块,由于当初程序编写时的失误造成了用2015而不是2016)的出块时间来计算。

        难度 = 目标值 * 前2015个区块生成所用的时间 / 1209600 (两周的秒钟数)

        这样通过规定的算法,区块链系统就保证所有节点计算出的难度值都一致,区块的形成时间大约一致在十分钟左右。

      (1)结果不可控制。其依赖机器进行哈希函数的运算来获得结果;计算结果是一个随机数;没有人能直接控制计算的结果。

      (2)计算具有对称性。就是结果的获得和结果的验收需要的工作量是不同的。计算出结果所需要的工作量远远大于验收结果所需要的工作量。

      (3)计算的难度自动控制。为了使区块的形成时间控制在大约十分钟左右,区块链系统自动控制了每一个符合要求的哈希获得为大约在十分钟左右。

         第一,方法简单易行。

        第二,系统达成共识容易,节点间不需要太多的信息交换。

        第三,系统比较牢固可靠,任何破坏系统的企图都需要投入大到得不偿失的成本。

        第一,消耗大量的算力,也就是浪费能源和其他资源。

        第二,区块的确认时间比较长,并且难以缩短。

        第三,新创立的区块链非常容易受到算力攻击。

        第四,容易产生区块链分叉,稳定的区块链需要多个确认,并且这种状况可能不断持续下去。

        第五,算力的逐渐集中导致与去中心化的系统设计基础的冲突日益明显。

        权益证明机制是一种工作量证明机制的替代方法,试图解决工作量计算浪费的问题.目前其成功的应用是点点币区块链系统。

        权益证明不要求区块链系统的节点完成一定数量的计算工作,而是要求区块链系统的节点对某些数量的钱展示所有权。

        权益证明机制首先应用于点点币区块链系统中。

        点点币区块链系统的区块生成时,节点需要构造一个“钱币权益”交易,即把自己的一些钱币和预先设定的奖励发给自己。进行哈希计算时,哈希值的计算只同交易输入、一些附加的固定数据以及当前时间(是一个表示自1970年1月1日距离当前时刻的秒数的正数)有关。然后,根据类似工作量证明的要求来检查这个哈希值是否正确。

        点点币区块链系统的权益证明机制除了设定了哈希计算难度与交易输入的“币龄”成反比外,其与工作量证明机制非常类似。其中,币龄的定义为交易输入大小和它存在时间的乘积。权益证明机制中哈希值只和时间和固定的数据有关,因而没有办法通过多完成工作来快速获取它。

       每个点点币区块链系统的交易的输出都有一定的几率来产生有效的正比于币龄和交易货币数量的工作。

        第一,缩短了共识达成的时间。

        第二,不再需要大量消耗能源。

        第一,还是需要哈希计算。

        第二,所有的确认都只是一个概率上的表达,而不是一个确定性的事情,有可能受到其他攻击影响。

        授权股份证明机制类似于权益证明机制,是比特股BitShares采用的区块链公识算法。授权股份证明机制是民主选举和轮流执政相结合方式来确定区块的产生。

        授权股份证明机制是先由节点选举若干代理人,由代理人验证和记账。其他方面和权益证明机制相似。

        每个节点按其持股比例拥有相应的影响力,51%节点投票的结果将是不可逆且有约束力的。为达到及时而高效的方法达到51%批准的目标。每个节点可以将其投票权授予一名节点。获票数最多的前100位节点按既定时间表轮流产生区块。每名节点分配到一个时间段来生产区块。

        所有的节点将收到等同于一个平均水平的区块所含交易费的10%作为报酬。

         第一,大幅缩小参与验证和记账节点的数量,

         第二,可以快速实现共识验证。

         主要缺点就是仍然无法摆脱对代币的依赖。

        在分布式计算上,不同的计算机透过讯息交换,尝试达成共识;但有时候,系统上协调计算或成员计算机可能因系统错误并交换错的讯息,导致影响最终的系统一致性。

        拜占庭将军问题就根据错误计算机的数量,寻找可能的解决办法,这无法找到一个绝对的答案,但只可以用来验证一个机制的有效程度。

        而拜占庭问题的可能解决方法为:

        在 N ≥ 3F + 1 的情况下一致性是可能解决。其中,N为计算机总数,F为有问题计算机总数。信息在计算机间互相交换后,各计算机列出所有得到的信息,以大多数的结果作为解决办法。

         第一,系统运转可以摆脱对代币的依赖,共识各节点由业务的参与方或者监管方组成,安全性与稳定性由业务相关方保证。

         第二,共识的时延大约在2到5秒钟。

         第三,共识效率高,可满足高频交易量的需求。

         第一,当有1/3或以上记账人停止工作后,系统将无法提供服务;

         第二,当有1/3或以上记账人联合作恶,可能系统会出现会留下密码学证据的分叉。

        小蚁改良了实用拜占庭容错机制。该机制是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。

        此算法在PBFT基础上进行了以下改进:

        第一,将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式;

        第二,将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;

        第三,为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);

        第四,在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题。

        第一,专业化的记账人;

        第二,可以容忍任何类型的错误;

        第三,记账由多人协同完成,每一个区块都有最终性,不会分产生区块链分叉;

        第四,算法的可靠性有严格的数学证明来保证;

        第一,当有1/3或以上记账人停止工作后,区块链系统将无法提供服务;

        第二,当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使区块链系统出现分叉,但是会留下密码学证据;

         瑞波共识机制是全体节点选取出特殊节点组成特殊节点列表,由特殊节点列表内的节点达成共识。

         初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循这核心成员的51%权力,外部人员则没有影响力。波共识机制将股东们与其投票权隔开,并因此比其他系统更中心化。

        瑞波共识机制参与共识形成的只有特殊节点,大大的减少了共识形成的时间。在实践中,瑞波区块链系统达成共识需要3-6秒钟,远远快于比特币区块链系统的10分钟。同时瑞波区块链系统对并发交易的处理达到每秒数万笔,而比特币区块链系统只有每秒7笔。

瑞波共识机制处理节点意见分歧的方式也是不同的。瑞波的信任节点对于新区块的创造进行协商的时间是区块链更新前。先协商,达成共识后再对区块链进行更新。

由于瑞波共识机制的共识是由特殊节点达成的,普通节点并不需要维护一个完整的历史账本。各个节点可以根据自己的业务需要选择同步同步完整的历史账本或者任意最近几步的账本。这也意味着对存储空间和网络流量需求的减少。

瑞波共识机制取消了挖坑的发行货币机制,采用了原生货币(1000亿枚)的方式发币,从而大量的避免了挖矿的天量能耗。

什么是共识机制?

区块链的伟大之处就在于其解决了在不可信的“道路”上如何进行可信信息和价值的传递的问题。如果让你存一大笔钱,你会选择工行、建行这样的大银行,还是某不知名的地方小银行呢?我想你一定会选择前者,为什么?因为大银行 可信 。

既然信任问题这么重要,那么信任是如何在中心化系统中得到验证的呢?举个小例子:假如说我在上海的工行某支行A给身在深圳的我媳妇转了10万块钱。但是我媳妇在我转账后去当地深圳的工行某支行B来提款时,却发现这笔账在这边根本没有记录。然后打电话问我到底怎么回事。我又立刻去上海的支行A柜台查了一下,工作人员告诉我这笔账确实已经成功转过去了。这样,我这笔钱就“转丢”了!

以上问题的出现,其实就是工行支行A和B的账目系统没有达到一致性同步。既然账目都不一致,那何谈信任?

共识机制就是保证区块链网络中账本 一致性 的方法。因为各个记账节点之间并不是相互信任,甚至是不知道对方是谁。那么通过节点之间相互同步账本从而保证全世界的节点本地记录的账本全是一模一样的,则是一个去中心化账本系统的信任基石。

去中心化系统的共识机制同中心化系统的共识机制之间还存有很大的不同之处。宏观上看,中心化系统的共识机制就是复制最中心的账本。但是去中心化系统做不到这样,因为该系统中就没有一个核心的“中心”。而且,全账本是由全世界的节点在不同时间分别记的账组合而成,这就需要各节点之间指定一套规则,并且一折不扣地执行。

假设各个节点规定每个区块的名字都是要以该高度开头。那么在区块高度为1024的时候,节点A收到了三个区块,名字分别为“1023Alice”、“1024Bob”和“1025Chris”;节点B收到了三个区块,名字分别为“1024Bob”、“1025Dandy”和“1026Ella”;节点C只收到了一个区块,名字为“1027Frank”。那么根据之前定下的规则,节点A和B都会将区块“1024Bob”写入账本,而节点C将不做写账本操作直到收到符合规定的区块。

以上就是个极其简单的共识机制,当然真实的区块链共识机制要比这个复杂得多。

区块链共识机制什么的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于区块链中的共识机制是什么、区块链共识机制什么的信息别忘了在本站进行查找喔。

标签: #区块链共识机制什么

  • 评论列表

留言评论