一种改进PBFT的以太坊共识机制应用于联盟链的方法技术

技术编号:21159221 阅读:15 留言:0更新日期:2019-05-22 08:00
本发明专利技术首先分析了现阶段以太坊应用在联盟链中所遇到的问题,问题的核心是基于工作量证明的共识机制不适用于联盟链中,因此针对该问题提出了一种改进PBFT的以太坊共识机制应用于联盟链的方法,将PBFT机制与以太坊区块结构结合,并详细的阐述了该机制的执行过程;首先针对改进PBFT机制进行了描述,并说明该机制用于联盟链以太坊的正确性;接着针对以太坊的环境中如何实现改进PBFT共识机制进行详细的阐述,将一个区块从产生、传输和校验流程进行原理和实现上的说明。最后针对于以太坊区块结构,提出了对证书回收机制和视图切换机制的改进,采用超时机制实现检查点协议和视图切换协议,在一定程度上减少了网络的数据传输开销。

A Method of Improving PBFT's ETF Consensus Mechanism and Applying it to Alliance Chain

The invention first analyses the problems encountered in the application of Ethernet workshop in the alliance chain at the present stage. The core of the problem is that the consensus mechanism based on workload proof is not applicable in the alliance chain. Therefore, a method of improving the PBFT Ethernet workshop consensus mechanism to apply in the alliance chain is proposed, which combines the PBFT mechanism with the structure of the Ethernet workshop block, and expounds in detail the persistence of the mechanism. Firstly, it describes the improved PBFT mechanism, and explains the correctness of the mechanism used in the Ethernet workshop of the alliance chain. Secondly, it elaborates in detail how to realize the improved PBFT consensus mechanism in the Ethernet workshop environment, and explains the principle and implementation of a block from the generation, transmission and verification process. Finally, aiming at the block structure of Yitaifang, the improvement of certificate recovery mechanism and view switching mechanism is proposed. Checkpoint protocol and view switching protocol are implemented by timeout mechanism, which reduces the data transmission overhead of the network to a certain extent.

【技术实现步骤摘要】
一种改进PBFT的以太坊共识机制应用于联盟链的方法
本专利技术涉及区块链
,具体涉及一种改进PBFT(PracticalByzantineFaultTolerancePracticalByzantineFaultTolerance,实用拜占庭容错算法)的以太坊共识机制应用于联盟链的方法。
技术介绍
在区块链系统中,共识算法作为保证分布式节点间数据一致性的算法,可以被分为两大类,即概率一致性算法和绝对一致性算法。概率一致性算法指在不同分布式节点之间,有较大概率保证节点间数据达到一致,但仍存在一定概率使得某些节点间数据不一致。对于某一个数据节点而言,数据在节点间不一致的概率会随时间的推移逐渐降低至趋近于零,从而最终达到一致性。例如工作量证明算法(ProofofWork,PoW)、股份证明算法(ProofofStake,PoS)和委托股权证明算法(DelegatedProofofStake,DPoS)都属于概率一致性算法。绝对一致性算法则指在任意时间点,不同分布式节点之间的数据都会保持绝对一致,不存在不同节点间数据不一致的情况。例如分布式系统中常用的PAXOS算法及其衍生出的RAFT算法等,以及拜占庭容错类算法(类BFT算法)。根据CAP原理可知,概率一致性算法保证了系统的可用性而牺牲了系统的一致性,绝对一致性算法则与之相反,保证了系统的一致性而牺牲了系统的可用性。目前根据区块链应用对象不同,可将区块链分成三类,即是公有链、私有链和联盟链。公有链是完全去中心化的,任何人既可以进行交易也可以读取信息。任何人都可以参与链上的交易确认和共识机制,各个节点可以随时加入,也可以随时退出;私有链是对单独的个人或实体进行开放的区块链系统,系统内的每个节点的权限都需要组织来分配,对每个节点开放的数据量要视情况由组织来决定;然而联盟链是由多个中心控制,系统由几个权威的机构共同分布式记账,这些节点再根据共识机制协调工作。这是部分去中心化的区块链,民众可以进行查阅和交易,不过验证交易的话就需要联盟内部决定。根据前面描述,将区块链应用在食品供应链中时,食品供应链可归为联盟链。因为食品供应链的记账权力控制在供应链各节点中,包括供应商、制造商、零售商和监管机构等,而消费者可以查看食品处于供应链各环节中的信息,同时保证信息的安全可追溯。目前以太坊采用的共识机制是工作量证明机制,虽然PoW可以实现去中心化,将记账权分派到其他节点,且很好的实现了供应链节点间的相互信任,但是该共识机制应用于联盟链有很多缺点,主要缺点有以下几点:(1)PoW中的挖矿机制对计算资源要求很高,易造成大量电力资源浪费和硬件设备浪费。(2)采用PoW共识机制,会造成区块同步时间长,可扩展性很弱,最致命的是TPS低且响应速度慢,这是现在商业联盟链所不能接受的。(3)由于联盟链的计算能力比公有链低,容易被其他节点通过算力堆积(包括恶意联盟等)破坏整条链的可信度,造成不可估量的损失。
技术实现思路
本专利技术首先进行PBFT共识机制的改进,解决网络拥挤问题,然后提出了基于DPoA+PBFT的共识机制作为以太坊共识机制的基础,不仅能提升系统处理交易数量,而且还能实现快速可靠的秒级确认。为了实现上述任务,本专利技术采用以下技术方案:一种改进PBFT的以太坊共识机制应用于联盟链的方法,包括以下步骤:在区块链系统中,对于联盟链中的节点,使用DPoA共识机制筛选出参与共识节点,将这些节点构成联盟链的计费网络;将PBFT算法应用于联盟链中,以保证联盟链中节点的交易信息达成共识的一致性;若联盟链中某节点的区块链数据信息与其他节点的信息不同时,则该节点向联盟链中的其他2f+1个节点请求联盟链缺失的区块的hash,其中f为联盟链中拜占庭节点数量;若该节点收到大于f个节点返回的区块的hash一致,则认为需要同步的区块是可信任的;若该节点在本地有此区块的hash,则不向其他节点同步此区块,直接将本地区块添加到联盟链;否则,就选择任意一个收到此区块hash的节点,并同步此区块;当该节点完成联盟链的同步之后,自动更新该节点内存所存储的交易列表;根据联盟链中最新区块产生的时间,清除已被打包成区块并上链的交易信息。进一步地,所述的方法还包括:通过以下方法判断联盟链中的主节点是否出现错误,在出现错误时进行主节点的重新选择:当主节点交易列表为空时,若联盟链最新添加的区块数据不为空,且当前时间与最新上链区块的时间之差大于t,则判定主节点出现错误,需要切换视图重新选择主节点;其中,t为从最新上链的区块产生并达成共识的最长时间;若联盟链最新区块为空,且当前需要共识的区块也为空,则需要等待时间t后查看当前需要共识的区块能否达成共识,如不能达成共识就切换视图;若主节点交易列表不为空且当前时间与最新上链区块的时间之差大于t,则判定主节点出现错误,需重新选择主节点来提交区块信息。进一步地,所述的使用DPoA共识机制筛选出参与共识节点,包括:从联盟链的各个节点中筛选出具有稳定在线、平滑传输和良好性能的高质量节点并集中在一个候选池中,然后使用DPoA共识机制从候选池中选择一定数量的节点作为参与共识节点。进一步地,所述的计费网络,是进行共识计算的节点在参与共识的时候所需要的激励费用。本专利技术具有以下技术特点:1构建基于以太坊的联盟链,但是以太坊共识机制PoW会造成系统算力浪费,还会因为网络延迟致使区块链产生支链。采用基于PBFT共识机制的以太坊能够降低算力损耗,而且能够实现交易秒级确认。2对PBFT共识机制中的检查点协议进行改进,当区块达成共识后,内存将该区块之前的交易全部删除,减少内存空间损耗,删除区块交易数据不需要达成共识,减少了网络资源的消耗。3对PBFT共识机制中的视图切换机制进行改进,本方案采用超时触发机制来重新选择系统主节点,减少节点间通信,使得系统网络资源损耗减少。附图说明图1为区块产生流程图;图2为判断联盟链中有多少个拜占庭节点的算法图;图3为请求消息达成共识一致性协议过程图;图4为本方案中提出的视图切换机制的示意图;图5的(a)、(b)分别为本方案实验平台的核心、线程查看界面以及配置查看界面;图6为拜占庭节点测试的结果示意图;图7为CPU损耗率对比图;图8为清除区块传输消耗对比图;图9为系统视图切换网络消耗对比图。具体实施方式一、区块产生机制联盟链(例如食品供应链)的成员进行交易时,进行交易的节点先对交易进行校验以保证交易的有效性,然后交易按序(包括从网络其他节点传过来的交易)写入区块中。当区块按照标准(区块大小和区块生成时间标准)生成后,则广播至网络其他节点,其他节点则解析区块,对区块中的交易进行校验,校验通过后各节点将区块异步添加到区块链中。区块链在系统中数据一致性的保持是通过区块头中的父哈希来保持的,区块头通过父哈希将所有区块连成一条链。当联盟链某节点的某个时间段内没有发生交易时,即该节点交易列表为空(可能出现网络延迟或该节点网络出现中断等情况),该节点会计算系统时间与区块链最近添加上区块时间之差,我们计为t。节点从产生区块到全网达成共识所需时间计为δt。当t>δt时,则表明此时产生了一个空的区块,并在共识网络中达成一致,然后将空区块添加到区块链中,最后该节点停止生产区块,全网会重新选择主节点负本文档来自技高网
...

【技术保护点】
1.一种改进PBFT的以太坊共识机制应用于联盟链的方法,其特征在于,包括以下步骤:在区块链系统中,对于联盟链中的节点,使用DPoA共识机制筛选出参与共识节点,将这些节点构成联盟链的计费网络;将PBFT算法应用于联盟链中,以保证联盟链中节点的交易信息达成共识的一致性;若联盟链中某节点的区块链数据信息与其他节点的信息不同时,则该节点向联盟链中的其他2f+1个节点请求联盟链缺失的区块的hash,其中f为联盟链中拜占庭节点数量;若该节点收到大于f个节点返回的区块的hash一致,则认为需要同步的区块是可信任的;若该节点在本地有此区块的hash,则不向其他节点同步此区块,直接将本地区块添加到联盟链;否则,就选择任意一个收到此区块hash的节点,并同步此区块;当该节点完成联盟链的同步之后,自动更新该节点内存所存储的交易列表;根据联盟链中最新区块产生的时间,清除已被打包成区块并上链的交易信息。

【技术特征摘要】
1.一种改进PBFT的以太坊共识机制应用于联盟链的方法,其特征在于,包括以下步骤:在区块链系统中,对于联盟链中的节点,使用DPoA共识机制筛选出参与共识节点,将这些节点构成联盟链的计费网络;将PBFT算法应用于联盟链中,以保证联盟链中节点的交易信息达成共识的一致性;若联盟链中某节点的区块链数据信息与其他节点的信息不同时,则该节点向联盟链中的其他2f+1个节点请求联盟链缺失的区块的hash,其中f为联盟链中拜占庭节点数量;若该节点收到大于f个节点返回的区块的hash一致,则认为需要同步的区块是可信任的;若该节点在本地有此区块的hash,则不向其他节点同步此区块,直接将本地区块添加到联盟链;否则,就选择任意一个收到此区块hash的节点,并同步此区块;当该节点完成联盟链的同步之后,自动更新该节点内存所存储的交易列表;根据联盟链中最新区块产生的时间,清除已被打包成区块并上链的交易信息。2.如权利要求1所述的改进PBFT的以太坊共识机制应用于联盟链的方法,其特征在于,所述的方法还包括:通过以下方法判断联盟链中的主节点是否出现错误...

【专利技术属性】
技术研发人员:李志敬毅
申请(专利权)人:广东工业大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1