共识机制(区块链的共识机制)
今天给各位分享共识机制的知识,其中也会对区块链的共识机制进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,如果有不同的见解与看法,请积极在评论区留言,现在开始进入正题!
本文目录:
- 1、
- 2、
- 3、
- 4、
共识机制可以判定上层业务逻辑吗?
要理解共识机制,首先需要明白什么是共识。我们生活在一个多元化的世界,不存在一模一样的两片树叶,也没有完全相同的两个人。所谓共识,就是一群具有各方面差异性的人在某方面达成了一致意见,并将其上升成为共同遵守的规则。
人类文明的发展与繁荣离不开社会群体内个体间的分工协作,而如何分工,如何决策,如何分配成果并奖惩,则全都仰赖一个公认的的规则,或者叫共识。所谓共识机制指的是一个群体用以达成并维护共识的方式,共识机制往往决定着群体的组织形式。人类文明的早期阶段,武力是各群体建立和维护共识规则的主要方式,人类依托武力建立了部落、国家等中心化管理权威,制定了中心化的管理规则并惩罚不接受规则的个体。
当然,随着文明的发展与演进,我们开始制定法律、设计选举、引入协商与仲裁机制,这成了公司、协会、政府、学校等社会团体达成与维系共识的方式,但这一切文明做法的背后依旧仰赖庞大的国家暴力机器支撑。人类文明选择通过武力建立中心化权威以构建与维护群体共识,不仅因为在文明早期这一方式最为快捷,更由于依靠中心化权威的管理方式更加高效和稳固。然而,中心化并非唯一可行的方案,只要我们能够提出一种同样安全稳固便捷而并无需依托中心化权威的共识机制,同样可以建立一套与之相对应的全新组织形式。
区块链技术的出现恰恰提供了这样的选择,只不过这套去中心化逻辑所依托的并非现实世界而是相对轻量化的网络环境。共识机制作用的对象也不是个人而是一台台所属权各异的计算机,通过区块链共识机制的应用,可将分散在世界各处的计算机集合至一个统一的网络实现大规模的机器协作,下面我们将从技术的角度对区块链的共识机制进行详细拆解。
区块链作为一种点对点的协作网络,其原理是各节点均掌握一个独立的账本,通过保持账本同步来实现共同记账,而在没有一个中心进行指挥和协调同时网络状态复杂多变的情况下,如何保证空间上完全分散的各节点账本能够完全相同,这就要用到区块链的共识机制了。
以比特币为例,我们尝试来讨论一个典型的区块链系统的账本记账过程,其公共账本上记录着比特币网络中每时每刻都在发生的转账交易,但这些转账信息并非即刻被写入账本,而是每隔一段时间进行一次统一记账。每次记账会在账本上新生成一个区块,区块中不仅记录了若干条转账记录,还包含了诞生时间、上一个区块摘要等内容,通过这种方式,账本上各个区块间可依照时间顺序形成链状结构。
之所以选择这种区块式的记账方式而非所有节点即时记录所有信息,是由于在整个去中心化的系统中,考虑到不同节点间网络状态以及空间位置的差异,无法做到数据完全同步,通过结构化数据包的方式可以保证各节点记录结果的正确性。
而对于每一个新生的区块,基于几乎同样的原因,各节点分别记录的方法并不足以保障账本的唯一性。针对这一问题,区块链网络中所选择的应对方法是采取某种可自动执行的竞争手段选中一个唯一节点首先打包数据生成区块并记录到自身账本,然后由这个被选中的节点将新生产的区块数据通过互联网通知其他节点,其他节点在收到信息并验证区块无误后,同步记录在自己的账本上,以上就是一次完整的去中心化的分布式记账过程。
共识机制在这个过程中重点解决两个问题:一是完全对等的节点之间如何竞争记账权,区块链技术发展至今,已经有多种竞争记账权的办法,我们稍后详细介绍。第二个可能情况是在实际操作中,由于网络延时等原因,偶尔会出现两个节点均认为自己获得了记账权而去打包区块并通知其他节点,其他节点会将首先收到的通知记录下来而忽略另一个,考虑到两次通知时间间隔较小,必然会造成所有节点账本的写入不一致。对于这种情况,区块链网络的解决办法是暂时性接受这种链条分叉的状态,根据后续若干区块打包节点的记录为准。这种保留最长链的方式能够保证在复杂网络环境下多节点依然能够记录一个权威的账本。
现存独立的区块链网络有上百条,所用的共识机制大同小异,主要区别体现在上文的所述竞争记账方法,因而我们常常也用竞争记账的方式来命名不同的区块链共识机制。最为常见的有POW、POS、DPOS等。
POW(工作量证明)被比特币、以太坊等很多币种采用,其竞争记帐逻辑是各个节点竞争计算一个随机数,要得到这个随机数,必须经过一定的工作量。这一方法简单粗暴却极为有效,但常常因为耗费能源、易节点集中而被诟病。
POS(权益证明)则是通过节点持有代币的数量乘以持有时间分配记账权益,记账权益越高获得记账权概率越大,这种竞争方法的实现对于技术要求较高,且容易成为富翁节点的游戏。
DPOS(股份授权证明)共识机制的竞争记账逻辑类似于人民代表大会制度,代币持有者拥有相应额度的投票权,投票选出的节点拥有轮流记账权。采用DPOS的区块链项目最为著名的是EOS,这一共识机制最显著优势在于效率极高同时更加符合目前人们的接受习惯,但劣势同样明显,主要体现在中心化程度最高,很多人认为其违背了区块链的初衷。
区块链网络的实质目标在于让去中心化网络系统中各节点协同合作维护共同账本,共识机制的存在从技术层面解决了可行性问题,但在实际应用中,如何让节点主动参与记账同样关键。下一篇文章重点介绍区块链中的激励机制,共识机制与激励层搭配可以共同维持区块链网络的稳定有序运行
什么是共识机制?
共识机制,简单说就是在一个时间段内对事物的前后顺序达成共识的一种算法。
在区块链上,共识机制就像一个国家的法律,维系着区块链世界的正常运转。在区块链上,每个人都会有一份记录链上所有交易的账本,链上产生一笔新的交易时,每个人接收到这个信息的时间是不一样的,有些想要干坏事的人就有可能在这时发布一些错误的信息,这时就需要一个人把所有人接收到的信息进行验证,最后公布最正确的信息。
目前,常用的共识机制有三种:
1、工作量证明机制(Proof of Work - PoW)是我们最熟知的一种共识机制。就如字面的解释,PoW就是工作越多,收益越大。这里的工作就是猜数字,谁能最快的猜出这个唯一的数字,谁就能做信息公示人。
2、权益证明机制(Proof of Stake-PoS)也属于一种共识证明,它类似股权凭证和投票系统,因此也叫“股权证明算法”。由持有最多(token)的人来公示最终信息。
3、拜占庭共识算法(Practical Byzantine Fault Tolerance- PBFT)也是一种常见的共识证明。它与之前两种都不相同,PBFT以计算为基础,也没有代币奖励。由链上所有人参与投票,少于(N-1)/3个节点反对时就获得公示信息的权利。
为什么需要共识机制?
本文由币乎社区(bihu.com)内容支持计划奖励。
在一个中心化的结构体系中,系统的共识是由中心决定的,各参与方只需要服从中心下达的命令就可以了。因此,中心化体系共识建立是极为高效的。这也就是为什么中心化的机构要比去中心化的机构相对来说效率更高的缘故。
而在一个去中心化的结构体系中,由于各个参与方的地位是平等的,当出现分歧的时候,如何达成共识就成了问题。所以,一个设计精妙、实际操作起来简单的共识机制是一个分布式的体系能够顺利自运转下去的关键所在。简而言之,共识机制就是解决达成共识的依据,也是区块链接的核 心之一,它吏使得去中心化的体系能够公共维护同一个账本。现有的共识机制,比较好的有两种,工作 量证(Pow)和权益证明(Pos)。
工作量证明
工作证明(Proof Of Work,简称POW),即工作量的证明。通常来说只能从结果证明,因为监测工作过程通常是繁琐与低效的。谁的算力大,先算出那个随机数,谁就有优先记帐权。
比如:比特币在Block的生成过程中使用了POW机制,一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理hash是一个概率事件。当节点拥有占全网n%的算力时,该节点即有n/100的概率找到Block Hash. 虽然工作 量证明很公平,然而大家对它也有一些批评,因为需要消耗大量的电力与算力,对于能量消耗很大。
权益证明
权益证明是根据你在这个网络里拥有币的多少来竞争记帐的权力,简单的说,如果你持有的币越多,你的记帐的权力获取概率就越大,这种证明机制在一定程度上缩短了共识的达成时间,也不再需要大量消耗能源挖矿。
区块链常见的三大共识机制
区块链是建立在P2P网络,由节点参与的分布式账本系统,最大的特点是“去中心化”。也就是说在区块链系统中,用户与用户之间、用户与机构之间、机构与机构之间,无需建立彼此之间的信任,只需依靠区块链协议系统就能实现交易。
可是,要如何保证账本的准确性,权威性,以及可靠性?区块链网络上的节点为什么要参与记账?节点如果造假怎么办?如何防止账本被篡改?如何保证节点间的数据一致性?……这些都是区块链在建立“去中心化”交易时需要解决的问题,由此产生了共识机制。
所谓“共识机制”,就是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;当出现意见不一致时,在没有中心控制的情况下,若干个节点参与决策达成共识,即在互相没有信任基础的个体之间如何建立信任关系。
区块链技术正是运用一套基于共识的数学算法,在机器之间建立“信任”网络,从而通过技术背书而非中心化信用机构来进行全新的信用创造。
不同的区块链种类需要不同的共识算法来确保区块链上最后的区块能够在任何时候都反应出全网的状态。
目前为止,区块链共识机制主要有以下几种:POW工作量证明、POS股权证明、DPOS授权股权证明、Paxos、PBFT(实用拜占庭容错算法)、dBFT、DAG(有向无环图)
接下来我们主要说说常见的POW、POS、DPOS共识机制的原理及应用场景
概念:
工作量证明机制(Proof of work ),最早是一个经济学名词,指系统为达到某一目标而设置的度量方法。简单理解就是一份证明,用来确认你做过一定量的工作,通过对工作的结果进行认证来证明完成了相应的工作量。
工作量证明机制具有完全去中心化的优点,在以工作量证明机制为共识的区块链中,节点可以自由进出,并通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以生成区块的能力是节点算力的具体表现。
应用:
POW最著名的应用当属比特币。在比特币网络中,在Block的生成过程中,矿工需要解决复杂的密码数学难题,寻找到一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。这期间需要经过大量尝试计算(工作量),计算时间取决于机器的哈希运算速度。
而寻找合理hash是一个概率事件,当节点拥有占全网n%的算力时,该节点即有n/100的概率找到Block Hash。在节点成功找到满足的Hash值之后,会马上对全网进行广播打包区块,网络的节点收到广播打包区块,会立刻对其进行验证。
如果验证通过,则表明已经有节点成功解迷,自己就不再竞争当前区块,而是选择接受这个区块,记录到自己的账本中,然后进行下一个区块的竞争猜谜。网络中只有最快解谜的区块,才会添加的账本中,其他的节点进行复制,以此保证了整个账本的唯一性。
假如节点有任何的作弊行为,都会导致网络的节点验证不通过,直接丢弃其打包的区块,这个区块就无法记录到总账本中,作弊的节点耗费的成本就白费了,因此在巨大的挖矿成本下,也使得矿工自觉自愿的遵守比特币系统的共识协议,也就确保了整个系统的安全。
优缺点
优点:结果能被快速验证,系统承担的节点量大,作恶成本高进而保证矿工的自觉遵守性。
缺点:需要消耗大量的算法,达成共识的周期较长
概念:
权益证明机制(Proof of Stake),要求证明人提供一定数量加密货币的所有权。
权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比例和时间,依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。
应用:
2012年,化名Sunny King的网友推出了Peercoin(点点币),是权益证明机制在加密电子货币中的首次应用。PPC最大创新是其采矿方式混合了POW及POS两种方式,采用工作量证明机制发行新币,采用权益证明机制维护网络安全。
为了实现POS,Sunny King借鉴于中本聪的Coinbase,专门设计了一种特殊类型交易,叫Coinstake。
上图为Coinstake工作原理,其中币龄指的是货币的持有时间段,假如你拥有10个币,并且持有10天,那你就收集到了100天的币龄。如果你使用了这10个币,币龄被消耗(销毁)了。
优缺点:
优点:缩短达成共识所需的时间,比工作量证明更加节约能源。
缺点:本质上仍然需要网络中的节点进行挖矿运算,转账真实性较难保证
概念:
授权股权证明机制(Delegated Proof of Stake),与董事会投票类似,该机制拥有一个内置的实时股权人投票系统,就像系统随时都在召开一个永不散场的股东大会,所有股东都在这里投票决定公司决策。
授权股权证明在尝试解决传统的PoW机制和PoS机制问题的同时,还能通过实施科技式的民主抵消中心化所带来的负面效应。基于DPoS机制建立的区块链的去中心化依赖于一定数量的代表,而非全体用户。在这样的区块链中,全体节点投票选举出一定数量的节点代表,由他们来代理全体节点确认区块、维持系统有序运行。
同时,区块链中的全体节点具有随时罢免和任命代表的权力。如果必要,全体节点可以通过投票让现任节点代表失去代表资格,重新选举新的代表,实现实时的民主。
应用:
比特股(Bitshare)是一类采用DPOS机制的密码货币。通过引入了见证人这个概念,见证人可以生成区块,每一个持有比特股的人都可以投票选举见证人。得到总同意票数中的前N个(N通常定义为101)候选者可以当选为见证人,当选见证人的个数(N)需满足:至少一半的参与投票者相信N已经充分地去中心化。
见证人的候选名单每个维护周期(1天)更新一次。见证人然后随机排列,每个见证人按序有2秒的权限时间生成区块,若见证人在给定的时间片不能生成区块,区块生成权限交给下一个时间片对应的见证人。DPoS的这种设计使得区块的生成更为快速,也更加节能。
DPOS充分利用了持股人的投票,以公平民主的方式达成共识,他们投票选出的N个见证人,可以视为N个矿池,而这N个矿池彼此的权利是完全相等的。持股人可以随时通过投票更换这些见证人(矿池),只要他们提供的算力不稳定,计算机宕机,或者试图利用手中的权力作恶。
优缺点:
优点:缩小参与验证和记账节点的数量,从而达到秒级的共识验证
缺点:中心程度较弱,安全性相比POW较弱,同时节点代理是人为选出的,公平性相比POS较低,同时整个共识机制还是依赖于代币的增发来维持代理节点的稳定性。
共识机制是很多人头疼的问题,尤其是在理解和现实的冲突方面,区块链的共识机制也同样面临着相似的问题,关注我们,为您服务,是我们的荣幸!