今天给各位分享区块链引入共识机制的原因的知识,其中也会对区块链技术引入共识机制的原因是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
区块链,通俗地说,是一个去中心化的账本。只是这个账本与传统账本不同,不是由会计或少数几个人来记账,而是人人都可以参与记账。而且,这个记账需要一个大家都认可的规则,即“怎样记账才是有效”,而这个大家认可的规则就是区块链的共识机制。
一大家人计划去国外旅游,通过商议后,选了泰国,那么到泰国去旅游就是你们家形成的共识。而商议的方式,是少数服从多数,而少数服从多数就是你们家确定旅游目的地的共识机制。
同样,PoW、PoS、DPoS,分别代表区块链网络的三种主要记账规则,它们的作用非常大,直接关系到记账权和相关收益的分配。不夸张地说,共识机制是区块链的灵魂。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。再通俗一点来讲,如果中国一名微博大V、美国一名虚拟币玩家、一名非洲留学生和一名欧洲旅行者互不相识,但他们都一致认为你是个好人,那么基本上就可以断定你这人还不坏。
要想整个区块链网络节点维持一份相同的数据,同时保证每个参与者的公平性,整个体系的所有参与者必须要有统一的协议,也就是我们这里要将的共识算法。比特币所有的节点都遵循统一的协议规范。协议规范(共识算法)由相关的共识规则组成,这些规则可以分为两个大的核心:工作量证明与最长链机制。所有规则(共识)的最终体现就是比特币的最长链。共识算法的目的就是保证比特币不停地在最长链条上运转,从而保证整个记账系统的一致性和可靠性。
区块链中的用户进行交易时不需要考虑对方的信用、不需要信任对方,也无需一个可信的中介机构或中央机构,只需要依据区块链协议即可实现交易。这种不需要可信第三方中介就可以顺利交易的前提是区块链的共识机制,即在互不了解、信任的市场环境中,参与交易的各节点出于对自身利益考虑,没有任何违规作弊的动机、行为,因此各节点会主动自觉遵守预先设定的规则,来判断每一笔交易的真实性和可靠性,并将检验通过的记录写入到区块链中。各节点的利益各不相同,逻辑上将它们没有合谋欺骗作弊的动机产生,而当网络中有的节点拥有公共信誉时,这一点尤为明显。区块链技术运用基于数学原理的共识算法,在节点之间建立“信任”网络,利用技术手段从而实现一种创新式的信用网络。
目前区款连行业内主流的共识算法机制包含:工作量证明机制、权益证明机制、股份授权证明机制和Pool验证池这四大类。
工作量证明机制即对于工作量的证明,是生成要加入到区块链中的一笔新的交易信息(即新区块)时必须满足的要求。在基于工作量证明机制构建的区块链网络中,节点通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以生成区块的能力是节点算力的具体表现。工作量证明机制具有完全去中心化的优点,在以工作量证明机制为共识的区块链中,节点可以自由进出。大家所熟知的比特币网络就应用工作量证明机制来生产新的货币。然而,由于工作量证明机制在比特币网络中的应用已经吸引了全球计算机大部分的算力,其他想尝试使用该机制的区块链应用很难获得同样规模的算力来维持自身的安全。同时,基于工作量证明机制的挖矿行为还造成了大量的资源浪费,达成共识所需要的周期也较长,因此该机制并不适合商业应用。
2012年,化名Sunny King的网友推出了Peercoin,该加密电子货币采用工作量证明机制发行新币,采用权益证明机制维护网络安全,这是权益证明机制在加密电子货币中的首次应用。与要求证明人执行一定量的计算工作不同,权益证明要求证明人提供一定数量加密货币的所有权即可。权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比例和时间,依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。这种共识机制可以缩短达成共识所需的时间,但本质上仍然需要网络中的节点进行挖矿运算。因此,PoS机制并没有从根本上解决PoW机制难以应用于商业领域的问题。
股份授权证明机制是一种新的保障网络安全的共识机制。它在尝试解决传统的PoW机制和PoS机制问题的同时,还能通过实施科技式的民主抵消中心化所带来的负面效应。
股份授权证明机制与董事会投票类似,该机制拥有一个内置的实时股权人投票系统,就像系统随时都在召开一个永不散场的股东大会,所有股东都在这里投票决定公司决策。基于DPoS机制建立的区块链的去中心化依赖于一定数量的代表,而非全体用户。在这样的区块链中,全体节点投票选举出一定数量的节点代表,由他们来代理全体节点确认区块、维持系统有序运行。同时,区块链中的全体节点具有随时罢免和任命代表的权力。如果必要,全体节点可以通过投票让现任节点代表失去代表资格,重新选举新的代表,实现实时的民主。
股份授权证明机制可以大大缩小参与验证和记账节点的数量,从而达到秒级的共识验证。然而,该共识机制仍然不能完美解决区块链在商业中的应用问题,因为该共识机制无法摆脱对于代币的依赖,而在很多商业应用中并不需要代币的存在。
Pool验证池基于传统的分布式一致性技术建立,并辅之以数据验证机制,是目前区块链中广泛使用的一种共识机制。
Pool验证池不需要依赖代币就可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础之上,可以实现秒级共识验证,更适合有多方参与的多中心商业模式。不过,Pool验证池也存在一些不足,例如该共识机制能够实现的分布式程度不如PoW机制等
这里主要讲解区块链工作量证明机制的一些算法原理以及比特币网络是如何证明自己的工作量的,希望大家能够对共识算法有一个基本的认识。
工作量证明系统的主要特征是客户端要做一定难度的工作来得到一个结果,验证方则很容易通过结果来检查客户端是不是做了相应的工作。这种方案的一个核心特征是不对称性:工作对于请求方是适中中的,对于验证方是易于验证的。它与验证码不同,验证码是易于被人类解决而不是易于被计算机解决。
下图所示的为工作量证明流程。
举个例子,给个一个基本的字符创“hello,world!”,我们给出的工作量要求是,可以在这个字符创后面添加一个叫做nonce(随机数)的整数值,对变更后(添加nonce)的字符创进行SHA-256运算,如果得到的结果(一十六进制的形式表示)以“0000”开头的,则验证通过。为了达到这个工作量证明的目标,需要不停地递增nonce值,对得到的字符创进行SHA-256哈希运算。按照这个规则,需要经过4251次运算,才能找到前导为4个0的哈希散列。
通过这个示例我们对工作量证明机制有了一个初步的理解。有人或许认为如果工作量证明只是这样一个过程,那是不是只要记住nonce为4521使计算能通过验证就行了,当然不是了,这只是一个例子。
下面我们将输入简单的变更为”Hello,World!+整数值”,整数值取1~1000,也就是说将输入变成一个1~1000的数组:Hello,World!1;Hello,World!2;...;Hello,World!1000。然后对数组中的每一个输入依次进行上面的工作量证明—找到前导为4个0的哈希散列。
由于哈希值伪随机的特性,根据概率论的相关知识容易计算出,预计要进行2的16次方次数的尝试,才能得到前导为4个0的哈希散列。而统计一下刚刚进行的1000次计算的实际结果会发现,进行计算的平均次数为66958次,十分接近2的16次方(65536)。在这个例子中,数学期望的计算次数实际就是要求的“工作量”,重复进行多次的工作量证明会是一个符合统计学规律的概率事件。
统计输入的字符创与得到对应目标结果实际使用的计算次数如下:
对于比特币网络中的任何节点,如果想生成一个新的区块加入到区块链中,则必须解决出比特币网络出的这道谜题。这道题的关键要素是工作量证明函数、区块及难度值。工作量证明函数是这道题的计算方法,区块是这道题的输入数据,难度值决定了解这道题的所需要的计算量。
比特币网络中使用的工作量证明函数正是上文提及的SHA-256。区块其实就是在工作量证明环节产生的。旷工通过不停地构造区块数据,检验每次计算出的结果是否满足要求的工作量,从而判断该区块是不是符合网络难度。区块头即比特币工作量证明函数的输入数据。
难度值是矿工们挖掘的重要参考指标,它决定了旷工需要经过多少次哈希运算才能产生一个合法的区块。比特币网络大约每10分钟生成一个区块,如果在不同的全网算力条件下,新区块的产生基本都保持这个速度,难度值必须根据全网算力的变化进行调整。总的原则即为无论挖矿能力如何,使得网络始终保持10分钟产生一个新区块。
难度值的调整是在每个完整节点中独立自动发生的。每隔2016个区块,所有节点都会按照统一的格式自动调整难度值,这个公式是由最新产生的2016个区块的花费时长与期望时长(按每10分钟产生一个取款,则期望时长为20160分钟)比较得出来的,根据实际时长一期望时长的比值进行调整。也就是说,如果区块产生的速度比10分钟快,则增加难度值;反正,则降低难度值。用公式来表达如下:
新难度值=旧难度值*(20160分钟/过去2016个区块花费时长)。
工作量证明需要有一个目标值。比特币工作量证明的目标值(Target)的计算公式如下:
目标值=最大目标值/难度值,其中最大目标值为一个恒定值0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
目标值的大小与难度值成反比,比特币工作量证明的达成就是矿中计算出来的区块哈希值必须小于目标值。
我们也可以将比特币工作量的过程简单的理解成,通过不停变更区块头(即尝试不同nonce值)并将其作为输入,进行SHA-256哈希运算,找出一个有特定格式哈希值的过程(即要求有一定数量的前导0),而要求的前导0个数越多,难度越大。
可以把比特币将这道工作量证明谜题的步骤大致归纳如下:
该过程可以用下图表示:
比特币的工作量证明,就是我们俗称“挖矿”所做的主要工作。理解工作量证明机制,将为我们进一步理解比特币区块链的共识机制奠定基础。
自比特币诞生以来,目前全球已陆续出现了 1600多种虚拟货币,围绕着虚拟货币的生成、存储、交易等形成了庞大的产业链生态。但整体而言,行业尚处于初创期,离真正的价值应用区域还有很大距离。
区块链经济的核心在于商业逻辑和组织形态的重构,因此需要在多个行业获得应用落地的实例来表明其价值。本文将从区块链与行业需求相结合的角度,探讨区块链在各行业应用的商业模式。
首先,区块链的核心是解决了信用的问题:
信用是一切商业活动与金融的基础。美国自2011年起实行可信身份识别,而中国则通过实 名制实现可监管的信息传播。区块链的意义在于第一次从技术层面建立了去中心化的信任, 实现了完全分布式的信用体系。
其次,区块链解决了价值交换的问题:
传统网络可以实现信息的点到点传递,但无法实现价值的点到点传递。因为信息是允许复制的,而价值必须确权且具有唯—性,因此必须依赖一个中心化机构才能做到价值传递。区块链完美地解决了此问题,提供了一个实现价值点到点传递的方法,在价值传递过程中,由网络来实现记帐而不依赖某个中心化的机构。所以区块链有望成为构建新型金融的基础设施,成为未来价值互联网的基石。
区块链的应用
目前区块链的应用,主要有两种模式:
1)原生型的区块链应用:直接基于去中心化的区块链技术,实现价值传递和交易等应用,例如数字货币;
2)“区块链+”模式:将传统的场景和区块链底层协议相结合,以便提高效率,降低成本。 预计区块链在各行业的应用,将以第二种模式为主。
区块链具有五大核心属性,即:交易属性(价值属性)、存证属性、信任属性、智能属性、 溯源属性。如上核心属性与行业的需求相结合,解决行业痛点问题,成为了区块链在各行业 应用的商业模式。
区块链+银行
1、跨境支付
跨境支付是长期以来困扰银行业的痛点问题。传统跨境支付手段包括两大类:一是网上支付,包括电子账户支付和国际信用卡支付,适用于零售小金额;二是银行汇款模式,适用于大金额的交易;二者均存在到账周期长、费用高、交易透明度低等问题。尤其是近年来随着跨境电商的兴起,方便、快捷、安全、低成本的跨境支付更成为行业的迫切需求。
区块链的作用:
区块链去中介化、交易公开透明的特点,没有第三方支付机构加入,缩短了支付周期、降低 费用、增加了交易透明度。例如,2017年12月,招商银行联手永隆银行、永隆深圳分行,成功实现了三方之间使用区块链技术的跨境人民币汇款。其清算流程安全、高效、快速,大幅提升客户体验。
2、供应链金融
该领域的痛点在于融资周期长、费用高。以供应链核心企业系统为中心,第三方增信机构很难鉴定供应链上各种相关凭证的真伪,造成人工审核的时间长、融资费用高。
区块链的作用:
区块链将共识机制、存在性证明、不可篡改、可追溯等特性引入供应链金融,不需要第三方增信机构鉴定供应链上各种相关凭证的真实性,从而降低融资成本、缩短融资周期。例如,2017年4月,上市公司易见股份与IBM中国研究院联合发布了区块链供应链金融服务系统“易见区块”,该系统主推医药场景,目前己有30余家医药流通企业在“易见区块”注册成功,截至7月底交易数量己接近8000笔,投放总金额超过一亿元。
3、数字票据
数字票据行业的痛点在于长期存在“虚假票据”、“一票多卖”等问题,为银行业的票据融资业务带来了风险。
区块链的作用:
区块链的存在性证明、不可篡改的特性,有效解决了虚假数字票据的问题;同时,区块链解决了双花问题,可避免"一票多卖"。例如,深圳区块链金融服务有限公司发行票链产品,基于区块链提供票据的融资服务,解决中小微企业的票据融资需求。合作银行包括赣州银行、贵阳银行、苏州银行、石嘴山银行、廊坊银 行、乌海银行、吉林九台农商银行、尧都农商银行、深圳农村行业银行、潍坊银行、中原银行等。此外,浙商银行、京东金融、恒生电子、海航等也在验证区块链数字票据服务。
区块链+证券
1、资产证券化
资产证券化是以未来的收入作为保证,以获得现在的融资。该领域的痛点在于:参与主体多, 操作环节多,交易透明度低,信息不对称,底层资产真伪无法保证。
区块链的作用:
区块链为资产证券化引入了存在性证明、不可篡改、共识机制等属性,能够实时监控资产的真实情况,解决了交易链条各方机构对底层资产的信任问题。各类资产如股权、债券、票据、 收益凭证、仓单等均可被整合进区块链中,成为链上数字资产,提升资产流转效率,降低成本。例如,2017年5月,百度金融与佰仟租赁、华能信托等在内的合作方联合发行区块链技术支持的 资产证券化ABS项目,发行规模达4.24亿元。
区块链+保险
1、保险业务
保险行业存在着信息不对称,客户与保险机构之间缺乏信任等问题:用户难以选择适合自己的保险产品,而保险机构则面临骗保的风险。
区块链的作用:
区块链的去中心化、开放透明、可追溯的特点,为保险机构和用户间建立良好的沟通渠道;保险标的信息在区块链上统一管理,不可篡改,帮助保险机构规避骗保风险;同时,通过智能合约可提升工作效率,降低成本。例如,法国保险巨头安盛保险(AXA)正在使用以太坊公有区块链为航空旅客提供自动航班延迟赔偿。如果航班延迟超过2小时,“智能合约”保险产品将会向乘客进行自动理赔。
2、征信管理
该领域的痛点在于征信机构的数据采集渠道有限,数据缺乏共享,导致难以准确表征个人或机构的信用情况;此外,数据收集过程中也存在如何保障用户隐私的问题。
区块链的作用:
区块链具有去信任、共识、不可篡改的特征,在技术层面保证了可以在有效保护用户隐私的基础上实现有限度、可管控的信用数据共享和验证。例如,目前中国平安的区块链征信业务已上线运行,此外国内的创业公司如上海矩真、LinkEye、布比区块链等也在进行联合征信、安全存证等方面的 探索 。
作为一种基础性技术,区块链在众多具有分布式处理、点对点交易、快速建立信任关系等需求的行业领域具有极大的应用价值,其核心是解决了信用的问题,实现了价值的点到点传递。因此被认为是未来价值互联网的基石。
区块链商业模式的核心在于,利用区块链引入的创新属性,与传统行业应用相结合,实现商业逻辑的重构,以便创造新的应用场景,或提升效率,降低成本。
区块链也将延伸到 社会 生活的各个领域:区块链解决了数字化资产的管理、交易、转移等问题,因此将在资产数字化的浪潮中发挥重要作用,如供应链管理、数据服务、资产管理、公共服务、物联网等应用正在各个领域逐步落地,“区块链+”正在成为现实。
拜占庭将军问题(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亿枚)的方式发币,从而大量的避免了挖矿的天量能耗。
所谓“共识机制”,是通过特殊节点区块链引入共识机制的原因的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。北京木奇移动技术有限公司,专业的区块链外包开发公司,欢迎洽谈合作。下面我们将一下区块链的几种共识机制,希望对大家区块链引入共识机制的原因了解区块链基础技术有帮助。
因为区块链技术的发展, 大家对共识机制这个词也不再陌生,随着技术发展,各种创新的共识机制也在发展。
POW工作量证明
比特币就是使用PoW工作量证明机制,到后来的以太坊都是PoW的共识机制。Pow相当于算出很难的数学难题,就是计算出新区块的hash值,而且计算的难度会每一段时间就会调整。PoW虽然是大家比较认可的共识机制,计算会消耗大量的能源,还有可能会污染环境。
POS权益证明
通过持有Token的数量和时长来决定获得记账权的机率。相比POW,POS避免了挖矿造成大量的资源浪费,缩短了各个节点之间达成共识的时间,网络环境好的话可实现毫秒级,对节点性能要求低。
但POS的缺点同样明显,持有Token多的节点更有机会获得记账权,这将导致“马太效应”,富者越富,破坏了区块链的去中心化。
DPOS权益证明
DPOS委托权益证明与POS原理相同,其主要区别在于,DPOS的Token持有者可以投票选举代理人作为超级节点,负责在网络上生产区块并维护共识规则。如果这些节点未能履行职责,将投票选出新的节点。同样的弊端也是倾向于中心化。
POA权威证明
POA节点之间无需进行通信即可达成共识,因此效率极高。并且它也能很好地对抗算力攻击,安全性较高。但是POA需要一个集中的权威节点来验证身份,这就意味着它会损害区块链的去中心化,这也是在去中心化和提高效率之间的妥协。
金窝窝网络科技分析认为:分布式系统中,多个主机通过异步通信方式组成网络集群。在这样的一个异步系统中,需要主机之间进行状态复制,以保证每个主机达成一致的状态共识。
分布式系统中,多个主机通过异步系统中,可能出现无法通信的故障主机,而主机的性能可能下降,网络可能拥塞,这些可能导致错误信息在系统内传播。因此需要在默认不可靠的异步网络中定义容错协议,以确保各主机达成安全可靠的状态共识。
利用区块链构造基于互联网的去中心化账本,需要解决的首要问题是如何实现不同账本节点上的账本数据的一致性和正确性。
这就需要借鉴已有的在分布式系统中实现状态共识的算法,确定网络中选择记账节点的机制,以及如何保障账本数据在全网中形成正确、一致的共识。
关于区块链引入共识机制的原因和区块链技术引入共识机制的原因是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
评论