目录:
面向物联网的区块链共识机制综述
区块链共识机制的本质
区块链上的共识机制
区块链共识机制算法
区块链共识机制算法
联盟链的共识机制
面向物联网的区块链共识机制综述
1、区块链的自信任主要体现于分布于区块链中的用户无须信任交易的另一方,也无须信任一个中心化的机构,只需要信任区块链协议下的软件系统即可实现交易。这种自信任的前提是区块链的共识机制(consensus),即在一个互不信任的市场中,要想使各节点达成一致的充分必要条件是每个节点出于对自身利益最大化的考虑,都会自发、诚实地遵守协议中预先设定的规则,判断每一笔记录的真实性,最终将判断为真的记录记入区块链之中。换句话说,如果各节点具有各自独立的利益并互相竞争,则这些节点几乎不可能合谋欺骗你,而当节点们在网络中拥有公共信誉时,这一点体现得尤为明显。区块链技术正是运用一套基于共识的数学算法,在机器之间建立“信任”网络,从而通过技术背书而非中心化信用机构来进行全新的信用创造。
2、工作量证明机制即对于工作量的证明,是生成要加入到区块链中的一笔新的交易信息(即新区块)时必须满足的要求。在基于工作量证明机制构建的区块链网络中,节点通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以生成区块的能力是节点算力的具体表现。工作量证明机制具有完全去中心化的优点,在以工作量证明机制为共识的区块链中,节点可以自由进出。大家所熟知的比特币网络就应用工作量证明机制来生产新的货币。然而,由于工作量证明机制在比特币网络中的应用已经吸引了全球计算机大部分的算力,其他想尝试使用该机制的区块链应用很难获得同样规模的算力来维持自身的安全。同时,基于工作量证明机制的挖矿行为还造成了大量的资源浪费,达成共识所需要的周期也较长,因此该机制并不适合商业应用。详细工作量证明机制请查看
3、2012年,化名Sunny King的网友推出了Peercoin,该加密电子货币采用工作量证明机制发行新币,采用权益证明机制维护网络安全,这是权益证明机制在加密电子货币中的首次应用。
4、与要求证明人执行一定量的计算工作不同,权益证明要求证明人提供一定数量加密货币的所有权即可。权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比例和时间,依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。这种共识机制可以缩短达成共识所需的时间,但本质上仍然需要网络中的节点进行挖矿运算。因此,PoS机制并没有从根本上解决PoW机制难以应用于商业领域的问题。
区块链共识机制的本质
1、所谓“共识机制”,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。因为区块链技术的发展, 大家对共识机制这个词也不再陌生,随着技术发展,各种创新的共识机制也在发展。
2、POW工作量证明比特币就是使用PoW工作量证明机制,到后来的以太坊都是PoW的共识机制。Pow相当于算出很难的数学难题,就是计算出新区块的hash值,而且计算的难度会每一段时间就会调整。PoW虽然是大家比较认可的共识机制,计算会消耗大量的能源,还有可能会污染环境。
3、POS权益证明通过持有Token的数量和时长来决定获得记账权的机率。相比POW,POS避免了挖矿造成大量的资源浪费,缩短了各个节点之间达成共识的时间,网络环境好的话可实现毫秒级,对节点性能要求低。但POS的缺点同样明显,持有Token多的节点更有机会获得记账权,这将导致“马太效应”,富者越富,破坏了区块链的去中心化。
4、DPOS权益证明DPOS委托权益证明与POS原理相同,其主要区别在于,DPOS的Token持有者可以投票选举代理人作为超级节点,负责在网络上生产区块并维护共识规则。如果这些节点未能履行职责,将投票选出新的节点。同样的弊端也是倾向于中心化。
区块链上的共识机制
1、使用 PoW 这种传统的实现方法可以保证容错,只要网络中的大部分计算力都是诚实的。然而,因为这种方案对于计算的依赖,使得其效率非常低(计算力耗费能源并且对硬件有一定要求)。这使得 PoW 网络受到很多限制,最主要的就是扩展成本。
2、DBFT 在 NEO 中的实现利用了一些类似 PoS 的特点(NEO 持有者投票产生共识节点),这能保护网络不受拜占庭错误干扰并将消耗的资源最小化,同时也能去其糟粕(指 PoS 实现中的问题,译者注)。这个方案在没有对容错机制造成显著影响的情况下,妥善处理了当下区块链实现中性能与扩展之间的问题。
3、拜占庭将军问题是分布式计算中的一个经典问题。这个问题中定义多个议员必须在发言人的命令下达成共识,在整个系统中,发言人或某些议员可能会是叛徒,因此我们要小心行事。最糟糕的情况下,非诚实节点可能会向每个接收者发送不同的信息。该问题的解决办法要求议员们组团鉴定发言人是否诚实并且鉴别出真实的命令。
4、为了说明 DBFT 的工作机制,我们将在本部分着重论述为何要在第五部分用 66% 的共识率。要记住,非诚实节点并不总是会做出恶意行为,它也可能只是简单地失效了而已。
区块链共识机制算法
1、当前我国已具备较好的区块链发展趋势,拥有广泛的区块链技术应用落地场景。工业和信息化部信息中心发布的《2018年中国区块链产业白皮书》显示,我国区块链产业生态初步形成。截至2018年3月底,我国以区块链业务为主营业务的区块链公司数量达到456家,产业初步形成规模。
2、区块链的信任机制无须中心化机构来背书,而由区块链中的用户信任区块链协议下的软件系统即可实现交易,也无须依赖任何中间环节。这样一种信任的前提即是区块链的共识机制(consensus),即在一个互不信任的公开市场中,要想使各节点达成一致的充分必要条件是每个节点出于对自身利益的最大化考量,都会自觉严格遵守预先约定的规则,校验每一笔交易记录的有效性,并将校验结果为真的交易记录记入区块链之中。
3、现有的技术方案一般以工作量证明共识(以下简称pow)和拜占庭容错的授权股权证明共识(以下简称bft-dpos)为主,所述工作量证明共识实现方式是通过分布式节点的算力竞争来保证数据的一致性和共识的安全性,任何人都可以投入算力并通过竞争来获得奖励,拥有高度的去中心化优势;而所述拜占庭容错的授权股权证明共识实现方式为:持有股份的用户通过投票方式来选取区块生产者,由选出的bp来产生区块并记录到区块链,且bp数量一般为奇数。bp按照一定顺序轮流产生新的区块,由于每个bp产生新区块才能完成确认,根据固定每0.5秒生产一个区块,在广播后平均0.25秒,交易可认定为99%确定。这样就极大的提高了出块速度和效率。
4、所述拜占庭容错的授权股权证明共识(bft-dpos)共识方式虽然将效率大大提高,但是采用权益证明投票的方式会使bp更换频次减少。一旦权益集中在少数人手里,则增加了普通参与者获取利益的门槛;同时由于bp轮换减少导致缺乏竞争,也影响了去中心化程度。
区块链共识机制算法
1、共识算法的使用是去中心化加密货币最重要的一个特征。共识算法对于加密货币而言至关重要的,因为它可以防止双花问题。从历史上看,双花问题是限制数字货币发展的一个重要挑战,直到最近,采用了分布式账本之后才得以改观。
2、正如TechTarget所解释,“在计算机科学中,共识算法是一种用在分布式过程或系统中,实现单一数据值的协议“。共识算法被设计用于涉及多个不可靠节点的网络中,实现可靠性。解决这个问题-即共识问题-在分布式计算和涉及多个代理的系统中非常重要。
3、为了适应这种现实,共识算法有必要假设一些进程和系统将不可使用,并且某些系统间的通信会丢失。因此,共识算法必须具备容错的能力。例如,通常假设只需要一部分节点作出反应,但最少需要百分五十一的节点反应。
4、在当前的多个项目中,有四个主要的实现方式,每个都有其独特的优点和权衡:工作量证明(pow),权益证明(pos),委托权益证明(dpos)和拜占庭容错机制(bft)。值得注意的是,这是一个不断发展的领域,存在其他方法,并且可能会出现新的方法。
联盟链的共识机制
1、区块链技术近几年发展迅速,早期的区块链应用都是公有链,承载了大量可自由出入的节点,系统一般采用工作量证明等共识算法。采用证明类共识算法的系统一般每秒可处理交易数很低以及交易确认延迟很高,难以适应于需要高并发、低延迟的金融类区块链应用。另一方面,在以比特币为代表的公有链系统中,为了提高共识节点挖矿的动力,系统会给予挖到新区块的共识节点经济奖励,这样有利于区块链的不断延伸。经济奖励直接影响共识节点挖矿的动力以及区块链能否继续延伸。经济奖励中待选取交易的交易费取决于共识节点的交易选择方法。比特币等系统采用的基于优先级的交易选取算法较为简单,但一般得不到最大交易费。本文把区块生成过程中共识节点选择交易进行打包的过程建模为0/1背包问题,并分别通过分支限界法和遗传算法求解。仿真结果显示基于分支限界法的交易选择算法比基于优先级的算法有更高的交易费总和,从而可以提高共识节点的经济收益。遗传算法作为启发式算法适合交易量十分庞大的选择过程,同时遗传算法的相关参数选择会影响交易费总和的结果。本文通过仿真得到了遗传算法的交叉率、变异率和种群规模等参数对交易费总和等指标影响的结果。本文其次介绍了常见的区块链共识算法的操作流程及其不足之处,以及与联盟链相适配的PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)共识算法的详细操作流程。PBFT算法的主节点选择过程较为随意,容易触发视图更换协议造成共识时间上升。本文将主节点的选取过程建模为模糊综合评价过程保证了主节点选取的客观性,并通过变异系数法和CRITIC(Criteria Importance Through Intercriteria Correlation)法使得模糊综合评价的权重分配同时反映了指标的波动性和冲突性,避免了以往权重分配过于依靠人为经验的主观性。仿真结果显示改进后的算法在共识效率上有明显提升,可以有效降低交易确认延迟。最后的仿真测试表明,改进后的系统与比特币等系统相比,在拜占庭节点数量达到理论上限时依然具有更高的出块效率和更高的系统吞吐量,可以满足大多数对吞吐量要求较高的联盟链应用的要求。