公开/公告号CN113076376A
专利类型发明专利
公开/公告日2021-07-06
原文格式PDF
申请/专利权人 湖北央中巨石信息技术有限公司;
申请/专利号CN202110333838.2
申请日2021-03-29
分类号G06F16/27(20190101);G06F16/11(20190101);G06F16/901(20190101);G06F21/31(20130101);
代理机构51316 成都云纵知识产权代理事务所(普通合伙);
代理人陈婉鹃;熊曦
地址 430061 湖北省武汉市武昌区中北路109号武汉1818中心6号楼15层R1、R2、R14-R18
入库时间 2023-06-19 11:44:10
技术领域
本发明涉及区块链领域,具体涉及基于区块链的多方异步抽样共识方法及系统及装置及介质。
背景技术
区块链是一种去中心化的分布式账本系统,可以用于登记和发行数字化资产、产权凭证、积分等,并以点对点的方式进行转账、支付和交易。区块链系统与传统中心化系统相比,具有公开透明、不可篡改、防止多重支付等优点,并且不依赖于任何的可信第三方。
由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致。因此,区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行共识。这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。
区块链根据访问权限,通常可以分为公有链、联盟链和私有链。公有链是指任何人都可以根据协议接入并参共识的区块链;联盟链是指共识过程受到预选节点控制的区块链;私有链是指权限在一个组织中,并受该组织完全控制的区块链。
联盟链由于对性能、延时等要求较高,适用于联盟链的共识算法多数是基于同步或弱同步,当前共识区块的传输很大程度上会影响共识的进程。当区块链网络的负载较高时,会导致区块体积较大,往往会由于区块传输过慢而阻塞共识进程,甚至会使共识进程停止。因此,一种用于多方异步的共识方法是迫切需要的。
发明内容
为解决上述问题,本发明提供了基于区块链的多方异步抽样共识方法及系统及装置及介质,以适用于不同时间点,多方快速验证区块链上的数据,确保共识的可信度。
为实现上述发明目的,本发明提供了基于区块链的多方异步抽样共识方法,包括:
基于区块链的多方异步抽样共识方法,其特征在于,包括:
发起节点根据数据信息获取目标数据,并得到目标数据的哈希值A;
发起节点将哈希值A、数据信息快照处理,得到快照数据,并将快照数据发送至区块链证据监管方;
发起节点向所有参与节点发出共识请求,发起节点将所有参与节点的身份信息发送给区块链证据监管方;
参与节点根据共识请求向区块链证据监管方发出获取数据信息请求;
区块链证据监管方判断参与节点的身份信息,对身份信息准确的参与节点发出快照数据;
参与节点根据快照数据随机获取目标数据中的一段抽样数据,获取抽样数据的哈希值B;
通过比较哈希值A和哈希值B,判断是否共识。
本发明在使用时,将数据信息、哈希值A快照至区块链证据监管方,当参与节点需要验证共识可信度时,通过区块链证据监管方获取快照数据,根据快照数据获取数据信息,对目标数据进行异步抽样哈希计算,再将哈希值A和哈希值B进行比较,进而判断共识方法的可信度,判断是否共识。
与现有的共识方法相比,本发明可使用多方异步抽样进行判断,以快照的方式存储数据,对于较多参与节点时,获取处理速度更快,能更便于在多方异步的条件下使用。
优选的,发起节点向所有参与节点发出共识请求,发起节点将所有参与节点的身份信息发送给区块链证据监管方,具体包括:
发起节点将区块链证据监管方验证信息打包成第一区块并添加到发起节点的区块链中;
发起节点向所有参与节点发出共识请求,发起节点将所有参与节点的身份信息发送给区块链证据监管方;
参与节点收到发起节点发出的共识请求时,参与节点接收并验证第一区块,若验证通过,则存储所述第一区块,并向区块链证据监管方发出获取数据信息请求;若验证不通过则丢弃所述第一区块。
当发起节点向参与节点发出共识请求时,参与节点会首先验证发起节点的身份,验证通过后,才会接受并存储发起节点的第一区块,这也初步保证了第一区块以及参与节点的身份准确性,参与节点接收第一区块后,当参与节点向区块链证据监管方发出获取数据信息请求时,区块链证据监管方在向参与节点发出数据信息之前,还会通过第一区块中的区块链证据监管方验证信息来验证参与节点的身份。
具体的,区块链证据监管方判断参与节点的身份信息,对身份信息准确的参与节点发出快照数据,具体包括:
参与节点根据第一区块获取区块链证据监管方验证信息,区块链证据监管方验证信息包括区块链证据监管方的公钥和私钥;
参与节点根据区块链证据监管方验证信息的公钥获取区块链证据监管方的地址,根据私钥获取区块链证据监管方中的参与节点身份信息;在此处,参与节点的身份信息即为发起节点向所有参与节点发出共识请求,发起节点发送给区块链证据监管方的所有参与节点的身份信息;
参与节点的身份信息和获取的区块链证据监管方中的参与节点身份信息进行验证,若验证通过,这参与节点的身份准确,则区块链证据监管方将快照数据发送给参与节点;若验证不通过,则区块链证据监管方不将快照数据发送给参与节点。在上述操作中,参与节点的身份进行了双重验证,因此在使用时,能进一步的保证共识可信度。
优选的,参与节点根据快照数据随机获取目标数据中的一段抽样数据,获取抽样数据的哈希值B,具体包括:
参与节点根据快照数据获取数据信息,所述数据信息包括数据信息接口、发起节点获取哈希值的程序语言、软件环境参数和硬件环境参数;
参与节点根据快照数据的软件环境参数、硬件环境参数和数据接口在发起节点的目标数据内随机读取一段数据,获得抽样数据;
根据发起节点获取哈希值的程序语言获取抽样数据的哈希值B。
其中,通过比较哈希值A和哈希值B,判断是否共识,具体包括:
比较哈希值A和哈希值B,若哈希值A中存在哈希值B,则该哈希值B对应的参与节点共识通过;若哈希值A中不存在哈希值B,则该哈希值B对应的参与节点共识不通过;
获取所有参与节点的共识通过率,若通过率大于或等于阈值Y,则共识通过;若通过率小于阈值Y,则共识不通过。
优选的,获取所有参与节点的共识通过率,若通过率大于或等于阈值Y,则共识通过;
获取共识不通过的参与节点,对共识不通过的参与节点进行预警标记。
与本发明中的方法对应,本发明还提供了基于区块链的多方异步抽样共识系统,包括:
第一数据信息处理模块,用于发起节点根据数据信息获取目标数据,并得到目标数据的哈希值A;
区块链证据监管模块,用于存储哈希值A、所有参与节点的身份信息和数据信息;
判断模块,用于判断向区块链证据监管方发出获取数据信息请求的参与节点的身份信息,并将快照数据发送给身份信息准确的参与节点;
第二数据信息处理模块,用于参与节点根据快照数据随机获取目标数据中的一段抽样数据,获取抽样数据的哈希值B;
比较模块,用于根据哈希值A和哈希值B判断是否共识。
与本发明中的方法对应,本发明还提供了一种电子装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于区块链的多方异步抽样共识方法的步骤。
与本发明中的方法对应,本发明还提供了一种存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于区块链的多方异步抽样共识方法的步骤。
本发明提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明通过将数据信息进行快照至区块链证据监管方,满足多方异步进行计算条件,使得多方能根据自身环境,对数据进行抽样哈希计算,对共识数据进行异步哈希计算再进行哈希核验,确定计算结果一致性,计算结果一致的参与节点后对数据进行数字签名,即共识通过,当共识通过率大于或等于阈值时,则共识,反之不共识,通过本发明的共识方法能有效解决现有区块链网络中数据可信度不高的问题,同时增强区块链网络数据的共识能力,并且在多方异步使用条件下,能够快速进行处理,提高使用效率。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为基于区块链的多方异步抽样共识方法的流程示意图;
图2为基于区块链的多方异步抽样共识系统的组成示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
本领域技术人员应理解的是,在本发明的揭露中,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系是基于附图所示的方位或位置关系,其仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此上述术语不能理解为对本发明的限制。
可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
实施例一
请参考图1,图1为基于区块链的多方异步抽样共识方法的流程示意图,本发明提供了基于区块链的多方异步抽样共识方法,所述方法包括:
步骤1发起节点根据数据信息获取目标数据,并得到目标数据的哈希值A;
步骤2发起节点将哈希值A、数据信息快照处理,得到快照数据,并将快照数据发送至区块链证据监管方;
2.1发起节点将区块链证据监管方验证信息打包成第一区块并添加到发起节点的区块链中;
2.2发起节点向所有参与节点发出共识请求,发起节点将所有参与节点的身份信息发送给区块链证据监管方;
2.3参与节点收到发起节点发出的共识请求时,参与节点接收并验证第一区块,若验证通过,则存储所述第一区块,并向区块链证据监管方发出获取数据信息请求;
2.4若验证不通过则丢弃所述第一区块。
步骤3参与节点根据共识请求向区块链证据监管方发出获取数据信息请求,区块链证据监管方判断参与节点的身份信息,对身份信息准确的参与节点发出快照数据;
3.1参与节点根据第一区块获取区块链证据监管方验证信息,区块链证据监管方验证信息包括区块链证据监管方的公钥和私钥;
3.2参与节点根据区块链证据监管方验证信息的公钥获取区块链证据监管方的地址,根据私钥获取区块链证据监管方中的参与节点身份信息;
3.3参与节点的身份信息和获取的区块链证据监管方中的参与节点身份信息进行验证,若验证通过,则区块链证据监管方将快照数据发送给参与节点;
3.4若验证不通过,则区块链证据监管方不将快照数据发送给参与节点。
步骤4参与节点根据快照数据随机获取目标数据中的一段抽样数据,获取抽样数据的哈希值B;
4.1参与节点根据快照数据获取数据信息,所述数据信息包括数据信息接口、发起节点获取哈希值的程序语言、软件环境参数和硬件环境参数;
4.2参与节点根据快照数据的软件环境参数、硬件环境参数和数据接口在发起节点的目标数据内随机读取一段数据,获得抽样数据;
4.3根据发起节点获取哈希值的程序语言获取抽样数据的哈希值B;
步骤5通过比较哈希值A和哈希值B,判断是否共识。
5.1比较哈希值A和哈希值B,若哈希值A中存在哈希值B,则该哈希值B对应的参与节点共识通过;若哈希值A中不存在哈希值B,则该哈希值B对应的参与节点共识不通过;
5.2获取所有参与节点的共识通过率,若通过率大于或等于阈值Y,则共识通过;若通过率小于阈值Y,则共识不通过。
5.3获取所有参与节点的共识通过率,若通过率大于或等于阈值Y,则共识通过;
5.4获取共识不通过的参与节点,对共识不通过的参与节点进行预警标记。
实施例二
本发明提供了基于区块链的多方异步抽样共识方法,所述方法包括:
步骤1发起节点根据数据信息获取目标数据,并得到目标数据的哈希值A;发起节点上设置有计时器,计时器用于记录发起节点发出共识请求到参与节点从区块链证据监管方获取的快照数据的时间,该时间记为T1;
步骤2发起节点将哈希值A、数据信息快照处理,得到快照数据,并将快照数据发送至区块链证据监管方;
2.1发起节点将区块链证据监管方验证信息打包成第一区块并添加到发起节点的区块链中;
2.2发起节点向所有参与节点发出共识请求,发起节点将所有参与节点的身份信息发送给区块链证据监管方;
2.3参与节点收到发起节点发出的共识请求时,参与节点接收并验证第一区块,若验证通过,则存储所述第一区块,并向区块链证据监管方发出获取数据信息请求;
2.4若验证不通过则丢弃所述第一区块。
步骤3参与节点根据共识请求向区块链证据监管方发出获取数据信息请求,区块链证据监管方判断参与节点的身份信息,对身份信息准确的参与节点发出快照数据;
3.1参与节点根据第一区块获取区块链证据监管方验证信息,区块链证据监管方验证信息包括区块链证据监管方的公钥和私钥;
3.2参与节点根据区块链证据监管方验证信息的公钥获取区块链证据监管方的地址,根据私钥获取区块链证据监管方中的参与节点身份信息;
3.3参与节点的身份信息和获取的区块链证据监管方中的参与节点身份信息进行验证,若验证通过,则区块链证据监管方将快照数据发送给参与节点;
3.4若验证不通过,则区块链证据监管方不将快照数据发送给参与节点。
步骤4参与节点验证收到的快照数据;参与节点收到快照数据后,若T1大于或等于阈值T,则参与节点不验证快照数据,返回步骤1;若T1小于阈值T,则参与节点验证收到的快照数据,其中阈值T为共识请求的有效时间;
发起节点将快照数据的鉴别服务部署到数据服务平台上;
发起节点在数据服务平台上编写读取接口,所述读取接口用于参与节点获取快照数据的鉴别内容;
发起节点获取读取接口、快照数据,并将读取接口、快照数据通过智能合约存储在区块链上;
参与节点通过区块链获取读取接口、快照数据;
参与节点根据获取的读取接口编写数据鉴别内容获取的请求模型,并通过数据服务平台发送给发起节点;
发起节点将运行数据返回给参与节点,参与节点根据运行数据获取快照数据;
比较参与节点根据运行数据获取快照数据和参与节点从区块链证据监管方获取的快照数据,若相同,则验证通过,参与节点根据快照数据随机获取目标数据中的一段抽样数据,获取抽样数据的哈希值B;反之不通过,返回步骤1;
步骤5参与节点根据快照数据随机获取目标数据中的一段抽样数据,获取抽样数据的哈希值B;
5.1参与节点根据快照数据获取数据信息,所述数据信息包括数据信息接口、发起节点获取哈希值的程序语言、软件环境参数和硬件环境参数;
5.2参与节点根据快照数据的软件环境参数、硬件环境参数和数据接口在发起节点的目标数据内随机读取一段数据,获得抽样数据;
5.3根据发起节点获取哈希值的程序语言获取抽样数据的哈希值B;
步骤6通过比较哈希值A和哈希值B,判断是否共识。
6.1比较哈希值A和哈希值B,若哈希值A中存在哈希值B,则该哈希值B对应的参与节点共识通过;若哈希值A中不存在哈希值B,则该哈希值B对应的参与节点共识不通过;
6.2获取所有参与节点的共识通过率,若通过率大于或等于阈值Y,则共识通过;若通过率小于阈值Y,则共识不通过。
6.3获取所有参与节点的共识通过率,若通过率大于或等于阈值Y,则共识通过;
6.4获取共识不通过的参与节点,对共识不通过的参与节点进行预警标记。
实施例三
请参考图2,图2为基于区块链的多方异步抽样共识系统的组成示意图,本发明实施例二提供了基于区块链的多方异步抽样共识系统,所述系统包括:
第一数据信息处理模块,用于发起节点根据数据信息获取目标数据,并得到目标数据的哈希值A;
区块链证据监管模块,用于存储哈希值A、所有参与节点的身份信息和数据信息;
判断模块,用于判断向区块链证据监管方发出获取数据信息请求的参与节点的身份信息,并将快照数据发送给身份信息准确的参与节点;
第二数据信息处理模块,用于参与节点根据快照数据随机获取目标数据中的一段抽样数据,获取抽样数据的哈希值B;
比较模块,用于根据哈希值A和哈希值B判断是否共识。
快照模块,用于将哈希值A和数据信息快照处理,得到快照数据,并将快照数据发送给区块链证据监管模块。
在本发明实施例三中,所述区块链证据监管模块的具体方式为:区块链证据监管模块用于存储哈希值A、所有参与节点的身份信息和数据信息;参与节点根据共识请求向区块链证据监管方发出获取数据信息请求,区块链证据监管方收到数据信息请求后,验证参与节点身份,若通过,则将哈希值A和数据信息发送给参与节点,若不通过,则不发送。
在本发明实施例三中,所述比较模块的具体方式为:比较哈希值A和哈希值B,若哈希值A中存在哈希值B,则哈希值B对应的参与节点对数据共识进行数字签名认证,即共识通过;若哈希值A中不存在哈希值B,则哈希值B对应的参与节点不对数据共识进行数字签名认证,即共识不通过;获取共识通过率,比较共识通过率和阈值Y,若共识通过率大于或等于阈值Y,则共识;若共识通过率小于阈值Y,则不共识,在本实施例中阈值Y为51%。
在本发明实施例三中,所述快照模块的具体方式为:将哈希值A、数据信息快照处理,得到快照数据,并将快照数据发送至区块链证据监管方。
在本发明实施例二中,所述第二数据信息处理模块的具体方式为:参与节点根据数据信息中的软件环境参数、硬件环境参数以及发起节点获取哈希值的程序语言得到参与节点计算环境参数;参与节点根据数据读取接口在发起节点的目标数据中随机读取一段抽样数据,并在参与节点计算环境参数下获取抽样数据的哈希值B。
实施例四
本发明实施例四提供了一种电子装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述基于区块链的多方异步抽样共识方法的步骤。
其中,所述处理器可以是中央处理器,还可以是其他通用处理器、数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的数据,实现发明中基于区块链的多方异步抽样共识装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。此外,存储器可以包括高速随机存取存储器、还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡,安全数字卡,闪存卡、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
实施例五
本发明实施例五提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述基于区块链的多方异步抽样共识方法的步骤。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ReadOnlyMemory,ROM)、可擦式可编程只读存储器((ErasableProgrammableReadOnlyMemory,EPROM)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
机译: 区块链共识任务的协调方法,区块链共识任务的协调设备,处理区块链共识任务的方法,区块链节点设备,区块链系统和存储介质
机译: 基于区块链的私有区块链网络系统及共识方法
机译: 方法,基于区块链的多方计算,设备和介质的装置