区块链科普:一文详解4种共识机制

作为一种以时间顺序存储数据的数据结构,区块链支持多种共识机制。协商一致是区块链技术的核心组成部分。块链共识机制的目标是在满足一致性和有效性这两个特征的前提下,使所有诚实节点保持一致的区块链视图。区块链自信度主要体现在区块链上分布的用户无需信任另一方或任何一个中央机构,仅需信任区块链协议就可以进行交易,而这种自信度的前提是区块链的共识机制(consensus)。协商一致机制可以保证系统中的每个节点都能自发、诚实地遵守协议中预先设定的规则,并能判断每一条记录的真实性,最后将判断为真实的记录记录记录在区块链中。区块链技术的核心是共识机制,从根本上决定着区块链系统的安全性、可扩展性和分布式特性。我们将通过一系列协商一致的机制,解决拜占庭将军的问题。这份工作量证明,比特币的创建者中本聪通过发明工作量证明协议而绕过了这一问题。让我们先来看看这是如何运作的,这位拜占庭将军,假定左边的部队想要给右边的部队发一个叫做“周一进攻”的信息,他们会按照这些信息进行操作。第一,他们会在原来的文字后面加上“随机数”。该随机数可以是任意随机的十六进制值。然后,他们用随机数散列文本并查看结果。假定军方决定只共享经过散列处理后以5个“0”开头的消息,在满足散列条件时,它们会将消息的散列值发送给消息发送程序。否则,他们将继续随意改变随机数的值,直到得到想要的结果。这个操作很麻烦,也很耗时,而且需要很大的运算能力。若信使确实被城市捕获,且消息被篡改,则根据哈希函数的属性,哈希值本身会发生很大的变化。假如右边的将军们看到哈希信息没有以“0”开头,他们就可以直接取消进攻,但也有一些漏洞。任何哈希函数都是100%不会冲突的。所以,如果城堡收到消息,修改它,然后相应地改变随机数,直到它们得到想要的结果(得到想要的“0”),又会怎样呢?这样做很花时间,但还是可能的。要解决这个问题,将军们需要使用大量的数字资源,假定左侧的一个将军向右侧的一个将军发送消息,而左侧的三个将军共同向右侧的所有将军发送消息。要做到这一点,他们可以制作自己的消息,然后对累积的消息进行散列,在散列中附加一个随机数,然后再对它进行散列。这次,他们希望得到一个以6个“0”开头的消息,很明显,这将非常耗时,但这次,如果信使们真的被城堡抓到了,他们要花很长时间去篡改累积的消息并为哈希寻找对应的随机数,甚至可能要花好几年。所以,如果将军派出的是多个使者,而非一人,那么在计算的过程中,他们就会在城堡的中间受到攻击,然后被摧毁,在右边的将军很容易做到。所有他们需要做的就是将正确的随机数添加到消息中,对它们进行散列,然后查看散列值是否匹配。散列字符串非常简单,这在本质上就是工作量证明的过程。对于合适的散列目标,寻找当前状态的过程应该非常困难和耗时。然而,通过检查结果来确定是否被篡改的过程应该非常简单。所以我们要总结一下工作量证明协议是如何应用于区块链的。采矿人员解决了密码难题,“挖掘”了要加入区块链的区块。这一过程需要大量能量和计算。设计密码谜题的方法使密码谜题十分繁琐,并给系统增加了负担。在采矿者解决了密码难题后,他们就把区块提交到网络中进行验证。确认区块是否属于链,这是一个非常简单的过程。对于拜占庭将军的问题,工作量证明机制无疑回答了许多问题,但是,工作量证明仍然存在以下几个问题:-首先,工作量证明是一种效率极低的过程,因为它需要耗费大量的精力和时间;-其次,能够负担得起更快、更强 ASICs的人和组织通常比其他人有更好的挖掘机会;-最后,比特币的分散性不如预期。看看哈希率分布图:我们发现,只有5个矿场的哈希率就分布了65%左右!在理论上,这些大型矿池可以互相合作,并对比特币网络发起51%的攻击。典型的公链使用了工作量证明协议:比特币区块链,权益证明,以太坊即将计划从工作量证明(POW)到权益证明(POS)。股权证明将使整个开采过程变得虚拟,用验证程序取代了采矿者。这个过程的工作原理是:,-确认者必须将数字货币的一部分锁定为权益证明。然后,他们会开始确认模块。也就是说,当他们发现他们认为可以添加到链中的块时,就会通过上下注来确认它,-若加入区块,验证者会得到与其下注成比例的奖励。POS协议被证明比 POW更有利于资源利用。对于 POW,可能有很多资源要浪费才能用于这个协议,从根本上说,这是一种资源浪费。这也是权利证明的最大障碍。Ethery开发者最终计划采用权益证明。但在此之前,它们必须解决权益证明(POS)这一最大缺陷。让我们想想这个例子:,假设我们遇到了像上面这样的情形:有一个主蓝链和一个红链,它们从主链中分开。因此,怎样才能防止恶意采矿者挖出红色矿块和强制实施硬分叉呢?这一风险可以在工作量证明(POW)系统中降低。假定恶意的矿工爱丽丝想要开采红链矿。即便她把所有的哈希算力都投入其中,也不会有其他矿工加入她的新链条。另一些人将继续在蓝链上开采,因为在更长的链上开采更有利可图而且没有任何风险。但是记住, POW在资源上是非常昂贵的。对采矿者来说,把这么多资源浪费在一个将被网络拒绝的区块上是毫无意义的。因为攻击者要浪费很多钱,所以在工作量证明系统中要避免硬分叉,然而,在使用 POS时情况会有些不同。假如你是验证人,那你就把钱放在红蓝两色的链子里,根本不用担心被打。不管你做了什么事,不管你的行为是多么的恶毒,你都不会失去任何东西。这个问题被称为“无利害关系”问题。要想融入 POS共识系统,加密货币就需要解决这个问题,以太坊将会以一种非常有趣的方式调整其 Casper协议,卡斯珀是一个 POS协议,以太坊选择使用。虽然整个团队都在忙着创建这个模型,但是 VladZamfir (Vlad Zamfir)通常被认为是“Casper脸”,因此, Casper协议和其他的权益证明协议有什么不同?Kasper实施了一个程序来惩罚所有的恶意因素。Casper协议下的 POS就是这样工作的:,-首先,验证者用质押的一部分用太币证明其权益。-然后他们将开始对区块进行验证。也就是说,当他们发现他们认为可以添加到链中的块时,就会通过上下注来确认它,-若加入区块,验证者会得到与其下注成比例的奖赏。-但如果验证者的行为是恶意的,并试图做到“无害”,他们将立即受到谴责,其质押的所有以太币将被削减。这是因为 Casper协议是为了在不信任的系统中工作而设计的,它具有更高的拜占庭容错性。任何人,无论他是出于恶意还是出于拜占庭,都将立即受到惩罚,并取消他的部分权利。它不同于大多数其它 POS协议。恶毒的因素会造成损失,所以它不会有任何危险。在计划扩大工厂的时候, Casper协议的实施和权益证明是非常重要的,用权证明协议的典型代表:以太坊区块链、委托权证明,现在,我们将介绍一个有趣的用权证明形式,即 DPOS或委托权证明。这个共识机制被 EOS用来扩展到每秒数以百万计的事务。在 EOS区块链上,拥有令牌的任何人都可以通过连续投票系统选择区块生产者。每个人都可以参加区块生产者的选举,他们将有机会生产出相对于所有其他生产者的投票总数相应的区块。这怎么起作用?,-在每个轮次的开头,选择21个区块生产者。这一系统会自动选出前20名,而选择第21名,投票结果就会与其他生产商相比较。接着,利用从数据块得到的伪随机数对生产者进行混洗。这是为了确保与所有其他生产者的平衡联系。-。为了保证正常的区块生成和3秒钟内不退出,生产者将被处罚,因为他们没有参与,因此将其移除。生产商必须在24小时内生产至少一块。DPOS系统不会有问题,因为生产商必须竞争合作,而非寻找区块。一旦出现分歧,共识自动转换为最长链,DPOS中的交易如何确认?在 DPOS区块链中,区块生产者通常100%参与。正常情况下,在1.5秒内99.9%的节点数量确认了交易。为确保交易的绝对有效性,节点只需要等待15/21生产者达成一致意见(即2/3多数),因此,如果由于疏忽或恶意的企图而造成分叉,会发生什么情况呢?缺省情况下,没有任何节点切换到不包含15/21生产者未最终确定的任何块的分支。不管链的长度如何,都是这样。每一块都必须得到15/21的批准,才能被认为是链的一部分。因为块创建时间短,所以可以在9秒内通知节点,节点位于主链还是次链中,这就是为什么如此简单。注意,每一段路程的平均间隔是3秒。-。若节点错失2个连续块,它们在少数分支上的几率为95%。-当节点错过3块数据块时,他们有99%的机会出现在少数几个数据块中。TAPOS是什么?TAPOS是 EOS软件的一项功能,可以作为权益证明。在系统中,每个事务必须有最近的区块头的散列。此操作可执行:,-防止在不同链上重放交易。-给网络发送一个信号,告诉用户和他们的兴趣在特定的分支,这防止了验证者在其他链上的恶意操作,并且将会有一个快速有效的权益验证协议。但是,它有什么缺陷吗?据以太坊联合创始人 Vitalik Buterin介绍, DPOS系统不能进行协同游戏,协调博弈是什么?我们来看一下下面的矩阵:在这个矩阵中,有两种纳什均衡:(A

A)和(B

B),它们都不能从其中任何一个中获益。博弈理论的核心观点是,怎样说服人从 A

A,转移到 B

B。若涉及的人数较少,则相对简单,只需通过电话或电子邮件协调即可。但当我们面对一个庞大的群体时,事情就变了。囚犯困境与协调问题之间的根本区别在于,在囚犯困境中,双方都必须做出选择(B

B),因为虽然(A

A)在道德上是更好的解决办法,但却是最有利的选择。对于协调的问题,它不在于道德或利益,而在于个人从一种状态向另一种状态转变的动机。为什麽有那么多人要改变自己的做事方式?如果团队中只有少数人改变状态,而多数人没有改变,协调博弈就会失败;反之,如果团队中的多数人改变状态,协调博弈就会成功。下面来看一个例子。假定我们要把语言改成基于符号的。比如,最初的陈述:“给我你的电话号码?”新的陈述:“#?”假如你只用这门语言说话,那将是失败的,因为大多数人不会明白你在说什么,而你会被谈话回避,也就是说你得到的回报很少,而且你没有动力去改变。但如果你的社区中的大多数人改为这种语言并且只使用它,你就必须改变这种语言,否则你就永远不能适应。如今,加入这个组织的动力很强。它的不足可以通过 DPOS系统的协调博弈来弥补。有些情况下,区块的生产者可能倾向于使用一些与剩余节点不一致的情况,假定主节点想要将链从状态 A转换为状态 B,那么要帮助整个链执行与它们相同的转换就很困难,特别是当其他节点相对于状态 B时。只有时间能证明 EOS能否正确整合 DPOS。利用代理权益证明协议的典型代表: EOS区块链,代理拜占庭容错算法,现在我们谈谈共识机制在 NEO中的选择。设想“Blockgeeks”这个国家,它的公民很多。每一位市民都会选出一位代表来代表他们,让他们高兴。这类代表的责任是制定法律,使公民满意,如果他们不擅长自己的工作,那么公民就可以在下次的选举中投票给其他代表。代表们怎样通过法律呢?一个代表被随机挑选为发言人。议会研究公民的一切要求并制定法律。他们接着计算这些法律的“幸福系数”,看看这个数字是否足够满足公民的需要。它们把它交给了代表们。代表们分别对议长进行了计算。发言人的数字如与代表的数字相符,即为同意;否则,即为反对。有66%的代表要求通过这项法律。若大多数人都不赞成,就选一个新的领导,然后再进行讨论,下面来看看这个共识决策模型在区块链中的应用。公民权即拥有 NEO令牌(也称为普通节点)。表示为记帐节点。要成为一个簿记节点,需要满足一些条件:有一个专门的设备,专门的因特网连接,以及一定数量的 GAS (根据 basiccrypto文章)。

提示:如果您觉得本文不错,请点击分享给您的好友!谢谢
相关推荐
新闻聚焦
猜你喜欢
热门推荐
 
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。