基于改进PBFT算法的区块链应用平台共识方法技术

技术编号:38475215 阅读:6 留言:0更新日期:2023-08-15 16:55
本发明专利技术涉及区块链技术领域,特别涉及一种基于改进PBFT算法的区块链应用平台共识方法,首先,区块链主节点对交易列表中交易进行校验并写入目标区块,同时将目标区块广播至全网其他节点;然后,全网各节点基于PBFT拜占庭算法对目标区块进行一致共识,并清除节点交易列表中目标区块包含的交易及节点中过期证书,将达成共识的目标区块添加到区块链中。本发明专利技术利用改进PBFT算法进行一致共识,能够在很大程度上减少算力的使用,解决现有PoW共识机制因为算力竞争造成的资源浪费的问题,在一定程度上减少网络通信开销,更适合于以太坊等区块链平台环境在具体场景中的部署实施应用。环境在具体场景中的部署实施应用。环境在具体场景中的部署实施应用。

【技术实现步骤摘要】
基于改进PBFT算法的区块链应用平台共识方法


[0001]本专利技术涉及区块链
,特别涉及一种基于改进PBFT算法的区块链应用平台共识方法。

技术介绍

[0002]区块链的本质是分布式系统,该系统具有去中心化与安全可信的特点。早期的区块链技术是借助虚拟电子货币实现去中心化的支付系统,在利用数字加密技术实现点对点的交易的基础之上,通过随机哈希将交易与时间戳等信息一并写入到一个基于工作证明PoW的无限延伸的链式结构中,并以激励机制鼓励全网共同维持区块链正确的延伸。开源的有智能合约功能的公共区块链平台,如以太坊,作为区块链技术的应用,具有一套可以执行图灵完备的脚本语言的虚拟机,并引入智能合约的概念,实现了去中心化应用DApp(Decentralized Application)。平台的出现,使得区块链技术的应用不仅仅局限于电子货币的交易,基于区块链的去中心化应用也推动着区块链技术应用于各行各业。随着区块链技术在商业化中的应用,区块链技术已经从公链形式向着联盟链方向发展。区块链应用平台采用PoW共识机制,一方面会因为算力竞争造成大量的资源浪费,这是联盟链中不期望的;另一方面,联盟链中所有节点的总算力往往达不到公链中所有节点总算力的数量级,因此联盟链中一个节点很容易通过叠加CPU达到联盟链全网50%的算力并进行攻击,因此在联盟链中PoW共识机制并不可靠。
[0003]实用拜占庭容错PBFT算法首先由Castro提出并用于解决异步分布式系统如何达成一致的问题。将PBFT算法应用于区块链的共识机制,具有较高的可靠性。近些年人们对共识算法不断研究并取得一定进步。如,利用权益证明Pos(Proof

of Stake)的共识机制缓解算力竞争造成的资源浪费,但仍然没有摆脱获取交易信息并对交易进行验证的过程;又如,授权股权证明DPos(Delegated

Proof

of

Stake)的共识机制,但该机制要依赖于代币,而在很多的商业应用中是没有代币的;再如,RPCA(Ripple Protocol Consensus Algorithm)共识机制,该算法结合拜占庭将军问题,摆脱了通过获取交易信息并对交易进行验证来达成共识的限制,但Ripple对去中心化应用研究较少。区块链应用平台中超级账本项目仍然处于开发阶段,系统可靠性并没有经过大规模检验。

技术实现思路

[0004]为此,本专利技术提供一种基于改进PBFT算法的区块链应用平台共识方法,解决现有共识机制中由于算力竞争造成的资源浪费和不可信等问题。
[0005]按照本专利技术所提供的设计方案,提供一种基于改进PBFT算法的区块链应用平台共识方法,包含:
[0006]区块链主节点对交易列表中交易进行校验并写入目标区块,同时将目标区块广播至全网其他节点;
[0007]全网各节点基于PBFT拜占庭算法对目标区块进行一致共识,并清除节点交易列表
中目标区块包含的交易及节点中过期证书,将达成共识的目标区块添加到区块链中。
[0008]作为本专利技术基于改进PBFT算法的区块链应用平台共识方法,进一步地,区块链主节点对交易列表中交易进行校验并写入目标区块,包含:首先判断交易列表是否空,若不为空,则区块链主节点对交易列表中交易进行校验并写入到目标区块,同时向全网其他节点广播目标区块;若交易列表为空,则区块链主节点监听区块链中最优区块的时间戳与区块链系统时间间隔,当时间间隔超过预设阈值时,生成一个空的目标区块并该空的目标区块添加到区块链中,其中,预设阈值依据区块链系统中其他区块生成到达成共识并添加到区块链的最长时间来设置。
[0009]作为本专利技术基于改进PBFT算法的区块链应用平台共识方法,进一步地,全网各节点基于PBFT拜占庭算法对目标区块进行一致共识,包含:主节点生成预准备阶段证书,并将预准备证书消息发送给其他节点;其他节点收到预准备证书消息后,生成准备证书,并判断预准备证书消息是否来自主节点且是否为第一次接收,若同时满足,则将同意反馈的准备证书消息发送给其他节点,并记录准备证书消息,直至区块链系统中同一条证书消息存在2f+1个节点同意反馈数据,则判定目标区块在区块链系统中达成共识,并将该目标区块添加到区块链中,其中,区块链系统节点个数设置为3f+1,一个Quorum联盟链中设置为至少包含2f+1个节点,f为区块链系统最大可容忍错误节点个数。
[0010]作为本专利技术基于改进PBFT算法的区块链应用平台共识方法,进一步地,全网各节点基于PBFT拜占庭算法对目标区块进行一致共识时,当主节点发生拜占庭错误时,从其他节点中重新选出新主节点,利用该新主节点重新执行交易写入目标区块操作并重新向其他节点广播目标区块。
[0011]作为本专利技术基于改进PBFT算法的区块链应用平台共识方法,进一步地,清除节点中最优区块时间戳之前的过期证书,包含:将区块链添加新区块的事件设置为清除过期证书的触发条件,当节点监测到过期证书条件触发时,节点将新区块时间戳之前的证书进行清除。
[0012]作为本专利技术基于改进PBFT算法的区块链应用平台共识方法,进一步地,全网各节点基于PBFT拜占庭算法对目标区块进行一致共识,还包含:节点监测对区块同步条件的触发,当监测到区块同步条件触发时,节点向视图中的2f+1个节点请求区块链需要添加区块的区块哈希,当至少有f+1个节点返回的区块哈希一致时,则判定区块哈希对应的区块在全网中达成共识,节点在预准备阶段证书中查找是否存在该区块哈希证书消息,若不存在,则向其中f+1个节点重的一个节点所要区块哈希对应的区块,并将区块添加到区块链中。
[0013]作为本专利技术基于改进PBFT算法的区块链应用平台共识方法,进一步地,触发区块同步条件,具体包括:区块链系统中节点自身维护的区块链状态与视图中其他节点维护的区块链状态不一致。
[0014]作为本专利技术基于改进PBFT算法的区块链应用平台共识方法,进一步地,区块链状态不一致,具体包含:节点间维护的区块链最优区块的区块号存在误差,且误差大小达到预设误差门限。
[0015]作为本专利技术基于改进PBFT算法的区块链应用平台共识方法,进一步地,全网各节点基于PBFT拜占庭算法对目标区块进行一致共识,还包含:通过监测区块链最优区块来判断主节点是否发生故障,当主节点发生故障时触发视图切换,其中,在视图切换过程中根据
区块链中最优区块时间戳设置区块链可容忍延迟范围,在所述区块链可容忍延迟范围内主节点完成切换、且其他节点将交易存入节点交易列表同时各自维护本地数据服务。
[0016]作为本专利技术基于改进PBFT算法的区块链应用平台共识方法,进一步地,通过监测区块链最优区块来判断主节点是否发生故障,包含:监测区块链最优区块,当满足区块添加条件时,区块链没有进行区块添加,则判断区块链主节点发生故障。
[0017]本专利技术的有益效果:
[0018]本专利技术利用改进PBFT算法进行一致共识,能够在很大程度上减少算力的使本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于改进PBFT算法的区块链应用平台共识方法,其特征在于,包含:区块链主节点对交易列表中交易进行校验并写入目标区块,同时将目标区块广播至全网其他节点;全网各节点基于PBFT拜占庭算法对目标区块进行一致共识,并清除节点交易列表中目标区块包含的交易及节点中过期证书,将达成共识的目标区块添加到区块链中。2.根据权利要求1所述的基于改进PBFT算法的区块链应用平台共识方法,其特征在于,区块链主节点对交易列表中交易进行校验并写入目标区块,包含:首先判断交易列表是否空,若不为空,则区块链主节点对交易列表中交易进行校验并写入到目标区块,同时向全网其他节点广播目标区块;若交易列表为空,则区块链主节点监听区块链中最优区块的时间戳与区块链系统时间间隔,当时间间隔超过预设阈值时,生成一个空的目标区块并该空的目标区块添加到区块链中,其中,预设阈值依据区块链系统中其他区块生成到达成共识并添加到区块链的最长时间来设置。3.根据权利要求1所述的基于改进PBFT算法的区块链应用平台共识方法,其特征在于,全网各节点基于PBFT拜占庭算法对目标区块进行一致共识,包含:主节点生成预准备阶段证书,并将预准备证书消息发送给其他节点;其他节点收到预准备证书消息后,生成准备证书,并判断预准备证书消息是否来自主节点且是否为第一次接收,若同时满足,则将同意反馈的准备证书消息发送给其他节点,并记录准备证书消息,直至区块链系统中同一条证书消息存在2f+1个节点同意反馈数据,则判定目标区块在区块链系统中达成共识,并将该目标区块添加到区块链中,其中,区块链系统节点个数设置为3f+1,一个Quorum联盟链中设置为至少包含2f+1个节点,f为区块链系统最大可容忍错误节点个数。4.根据权利要求1或3所述的基于改进PBFT算法的区块链应用平台共识方法,其特征在于,全网各节点基于PBFT拜占庭算法对目标区块进行一致共识时,当主节点发生拜占庭错误时,从其他节点中重新选出新主节点,利用该新主节点重新执行交易写入目标区块操作并重新向其他节点广播目标区块。5.根据权利要求1或3所述的基于...

【专利技术属性】
技术研发人员:刘源凯方晨郭渊博
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:

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

1