一种区块链的共识系统及方法技术方案

技术编号:28297310 阅读:77 留言:0更新日期:2021-04-30 16:22
本申请公开了一种区块链的共识系统及方法,通过随机数和时间戳的大小来选择记账节点,取消了POET共识算法中生成随机等待时间后进行等待的过程,减少了系统的等待时间,提高了共识达成的效率,并且保证了各节点参与记账的公平性;同时使用了一次性的密钥对共识信息进行加密,保证了共识信息的完整性和安全性;进一步地,共识设备和共识引擎通过接口以可插拔的形式接入区块链网络,即插即用,不额外增加节点的算力负担,解决了共识算法在不同区块链网络中部署迁移困难的问题。从而解决了现有的POET共识机制由于交易必须等待最短等待时间的节点完成等待后才能进行交易的验证和处理,导致降低了交易的效率的技术问题。

【技术实现步骤摘要】
一种区块链的共识系统及方法
本申请涉及区块链
,尤其涉及一种区块链的共识系统及方法。
技术介绍
共识算法一直是区块链技术的核心技术,随着区块链技术的不断发展,产生了很多具有各自特色的共识算法。其中主要的共识算法如:基于消逝时间量的共识机制(POET),POET共识是一种有效的工作证明形式,它消除了对采矿密集型流程的需求,并将其替换为随机计时器系统,区块链网络中的每个节点被给予一个随机的等待时间,最早等待完成的节点成为记账节点,该节点获得打包和广播区块的权利。然而,基于消逝时间量的共识机制(POET),当区块链网络中的所有节点都在等待时间时,会存在一段响应空白期,由于交易必须等待最短等待时间的节点完成等待后才能进行交易的验证和处理,导致降低了交易的效率。
技术实现思路
本申请实施例提供了一种区块链的共识系统及方法,用于解决现有的POET共识机制由于交易必须等待最短等待时间的节点完成等待后才能进行交易的验证和处理,导致降低了交易的效率的技术问题。有鉴于此,本申请第一方面提供了一种区块链的共识系统,所述系统包括:共识引擎和共识设备;所述共识引擎与所述共识设备通信链接;所述共识引擎通过接口与区块链的节点连接,且每个节点均包括一一对应的所述共识引擎和所述共识设备;交易节点的共识引擎:用于向同一区块链的各待共识节点发送共识请求;各所述待共识节点的共识引擎均包括:发送模块,用于接收所述共识请求,并向对应的所述共识设备发送第一指令和所述共识请求的编号;接收模块,用于接收所述共识密文和所述公钥;广播模块,用于向其他各节点广播所述共识密文和所述公钥;选举模块,用于接收各节点的所述共识密文和所述公钥,通过所述公钥对所述共识密文进行解密,得到各节点对应的随机数和时间戳;并基于预置的共识策略,根据各节点对应的随机数和时间戳的大小,选择记账节点;所述共识设备:用于接收所述编号,并响应于所述第一指令后,生成随机数和时间戳,以及一次性密钥对,根据所述一次性密钥对的私钥分别对所述随机数、所述时间戳和所述编号进行加密,得到共识密文,并将所述共识密文和所述一次性密钥对的公钥发送到对应的共识引擎。可选地,所述记账节点用于:请求获取交易信息,并对所述交易信息进行验证后打包成区块,将所述区块广播到所述同一区块链的各节点;非所述记账节点用于:接收所述区块,并根据所述区块的交易信息进行交易后,更新节点的数据状态,将所述区块接入到所述同一区块链。可选地,所述预置的共识策略为:将最小随机数对应的节点设置为所述记账节点;若所述最小随机数对应的节点的个数不小于一个,将所述最小随机数中的最早时间戳对应的节点设置为所述记账节点;若所述最小随机数和所述最早时间戳的个数均不小于一个,将最大随机数对应的节点设置为所述记账节点。可选地,所述各所述待共识节点的共识引擎,还包括:第一判断模块,用于判断各节点接收所述共识密文和所述公钥的时间是否均在预置的待共识阶段,若是,则通过所述公钥对所述共识密文进行解密,否则,将所述节点设置为问题节点。可选地,所述各所述待共识节点的共识引擎,还包括:第二判断模块,用于当所述预置的待共识阶段结束时,判断接收的所述共识密文的数量是否小于所述同一区块链的节点数量的一半,若是,则停止计算,否则,通过所述公钥对所述共识密文进行解密。本申请第二方面提供一种区块链的共识方法,应用于第一方面的所述区块链的共识系统,所述方法包括:交易节点的共识引擎向同一区块链的各待共识节点发送共识请求;各所述待共识节点的共识引擎接收所述共识请求,并向对应的共识设备发送第一指令和所述共识请求的编号;所述共识设备接收所述编号,并响应于所述第一指令后,生成随机数和时间戳,以及一次性密钥对,根据所述一次性密钥对的私钥分别对所述随机数、所述时间戳和所述编号进行加密,得到共识密文,并将所述共识密文和所述一次性密钥对的公钥发送到对应的共识引擎;各所述待共识节点的共识引擎接收接所述共识密文和所述公钥,并向其他各节点广播所述共识密文和所述公钥;所述共识引擎接收各节点的所述共识密文和所述公钥,通过所述公钥对所述共识密文进行解密,得到各节点对应的随机数和时间戳;并基于预置的共识策略,根据各节点对应的随机数和时间戳的大小,选择记账节点。可选地,所述记账节点用于:请求获取交易信息,并对所述交易信息进行验证后打包成区块,将所述区块广播到所述同一区块链的各节点;非所述记账节点用于:接收所述区块,并根据所述区块的交易信息进行交易后,更新节点的数据状态,将所述区块接入到所述同一区块链。可选地,所述预置的共识策略为:将最小随机数对应的节点设置为所述记账节点;若所述最小随机数对应的节点的个数不小于一个,将所述最小随机数中的最早时间戳对应的节点设置为所述记账节点;若所述最小随机数和所述最早时间戳的个数均不小于一个,将最大随机数对应的节点设置为所述记账节点。可选地,所述接收各节点的所述共识密文和所述公钥,之后还包括:判断各节点接收所述共识密文和所述公钥的时间是否均在预置的待共识阶段,若是,则通过所述公钥对所述共识密文进行解密,否则,将所述节点设置为问题节点。可选地,所述接收各节点的所述共识密文和所述公钥,之后还包括:当所述预置的待共识阶段结束时,判断接收的所述共识密文的数量是否小于所述同一区块链的节点数量的一半,若是,则停止计算,否则,通过所述公钥对所述共识密文进行解密。从以上技术方案可以看出,本申请实施例具有以下优点:本申请实施例中,提供了一种区块链的共识系统,通过随机数和时间戳的数值来选择记账节点,取消了POET共识算法中生成随机等待时间后进行等待的过程,减少了系统的等待时间,提高了共识达成的效率,并且保证了各节点参与记账的公平性;同时使用了一次性的密钥对共识信息进行加密,保证了共识信息的完整性和安全性;进一步地,共识设备和共识引擎通过接口以可插拔的形式接入区块链网络,即插即用,不额外增加节点的算力负担,解决了共识算法在不同区块链网络中部署迁移困难的问题。从而解决了现有的POET共识机制由于交易必须等待最短等待时间的节点完成等待后才能进行交易的验证和处理,导致降低了交易的效率的技术问题。附图说明图1为本申请实施例中提供的一种区块链的共识系统的结构示意图;图2为本申请实施例中提供的一种区块链的共识方法的流程示意图。标号:100、区块链的共识系统的结构;102、共识设备;104、共识引擎;112、区块链网络;114、节点;116、区块链。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有本文档来自技高网
...

【技术保护点】
1.一种区块链的共识系统,其特征在于,包括:共识引擎和共识设备;所述共识引擎与所述共识设备通信链接;所述共识引擎通过接口与区块链的节点连接,且每个节点均包括一一对应的所述共识引擎和所述共识设备;/n交易节点的共识引擎:用于向同一区块链的各待共识节点发送共识请求;/n各所述待共识节点的共识引擎均包括:/n发送模块,用于接收所述共识请求,并向对应的所述共识设备发送第一指令和所述共识请求的编号;/n接收模块,用于接收所述共识密文和所述公钥;/n广播模块,用于向其他各节点广播所述共识密文和所述公钥;/n选举模块,用于接收各节点的所述共识密文和所述公钥,通过所述公钥对所述共识密文进行解密,得到各节点对应的随机数和时间戳;并基于预置的共识策略,根据各节点对应的随机数和时间戳的大小,选择记账节点;/n所述共识设备:用于接收所述编号,并响应于所述第一指令后,生成随机数和时间戳,以及一次性密钥对,根据所述一次性密钥对的私钥分别对所述随机数、所述时间戳和所述编号进行加密,得到共识密文,并将所述共识密文和所述一次性密钥对的公钥发送到对应的共识引擎。/n

【技术特征摘要】
1.一种区块链的共识系统,其特征在于,包括:共识引擎和共识设备;所述共识引擎与所述共识设备通信链接;所述共识引擎通过接口与区块链的节点连接,且每个节点均包括一一对应的所述共识引擎和所述共识设备;
交易节点的共识引擎:用于向同一区块链的各待共识节点发送共识请求;
各所述待共识节点的共识引擎均包括:
发送模块,用于接收所述共识请求,并向对应的所述共识设备发送第一指令和所述共识请求的编号;
接收模块,用于接收所述共识密文和所述公钥;
广播模块,用于向其他各节点广播所述共识密文和所述公钥;
选举模块,用于接收各节点的所述共识密文和所述公钥,通过所述公钥对所述共识密文进行解密,得到各节点对应的随机数和时间戳;并基于预置的共识策略,根据各节点对应的随机数和时间戳的大小,选择记账节点;
所述共识设备:用于接收所述编号,并响应于所述第一指令后,生成随机数和时间戳,以及一次性密钥对,根据所述一次性密钥对的私钥分别对所述随机数、所述时间戳和所述编号进行加密,得到共识密文,并将所述共识密文和所述一次性密钥对的公钥发送到对应的共识引擎。


2.根据权利要求1所述的区块链的共识系统,其特征在于,所述记账节点用于:请求获取交易信息,并对所述交易信息进行验证后打包成区块,将所述区块广播到所述同一区块链的各节点;
非所述记账节点用于:接收所述区块,并根据所述区块的交易信息进行交易后,更新节点的数据状态,将所述区块接入到所述同一区块链。


3.根据权利要求1所述的区块链的共识系统,其特征在于,所述预置的共识策略为:
将最小随机数对应的节点设置为所述记账节点;若所述最小随机数对应的节点的个数不小于一个,将所述最小随机数中的最早时间戳对应的节点设置为所述记账节点;若所述最小随机数和所述最早时间戳的个数均不小于一个,将最大随机数对应的节点设置为所述记账节点。


4.根据权利要求1所述的区块链的共识系统,其特征在于,所述各所述待共识节点的共识引擎,还包括:
第一判断模块,用于判断各节点接收所述共识密文和所述公钥的时间是否均在预置的待共识阶段,若是,则通过所述公钥对所述共识密文进行解密,否则,将所述节点设置为问题节点。


5.根据权利要求4所述的区块链的共识系统,其特征在于,所述各所述待共识节点的共识引擎,还包括:
第二判断模块,用于当所述预置的待共识阶段结束时,判断接收的所述共识密文的数量是否小于所述同一区块链的节点数...

【专利技术属性】
技术研发人员:曹祖晟丁磊
申请(专利权)人:广东工业大学
类型:发明
国别省市:广东;44

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

1