区块链系统的共识方法、系统、存储介质以及程序产品与流程

    技术2026-07-07  13


    本发明涉及区块链领域,尤其涉及一种区块链系统的共识方法、系统、存储介质以及程序产品。


    背景技术:

    1、分层区块链指将区块链系统划分成业务层、路由代理层以及核心共识网络层,业务层、路由代理层以及核心共识网络层组成了整个完整区块链业务体系。其中,业务层处于见证网络中,包括至少一个业务节点,业务节点可以处理具体的业务,例如票据、支付、进出口交易等业务;核心共识网络层处于共识网络中,核心共识网络层可以包括多个共识节点集群,每个共识节点集群维护本集群内的区块链子链,每个区块链子链可对应一个具体业务;业务层和核心共识网络层之间通过路由代理层进行信息交互,即业务层通过路由代理层向核心共识网络层提交业务操作交互,这样路由代理层对于业务层和核心共识网络层起到了隔离的作用。

    2、相关技术中,业务层的业务节点会把本地产生的交易转发给核心共识网络层对应的共识节点集群,由共识节点集群中的共识节点执行交易共识,并在共识通过后,将交易上链至本集群内的区块链子链。为避免某个共识节点集群中的共识节点集体遭到恶意攻击,保证数据的真实性、安全性,还需将每个共识节点集群中的数据区块上链至主链中,以实现对核心共识网络层的全局数据的监督管理。随着业务交易日益增长,上述流程给核心共识网络层的计算资源、存储资源等带来极大挑战,容易导致区块链系统崩溃。


    技术实现思路

    1、以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。

    2、本发明实施例提供了一种区块链系统的共识方法、系统、存储介质以及程序产品,能够减轻共识网络层的计算、存储资源压力,提高区块链系统的稳定性。

    3、一方面,本发明实施例提供了一种区块链系统的共识方法,所述区块链系统包括用于构成区块链子链的多个业务节点和用于构成区块链主链的多个共识节点,所述共识方法包括以下步骤:

    4、所述业务节点将所述共识节点所保存的区块链主链信息同步至本地的主链数据库,并获取交易列表,其中,所述交易列表包括至少一个待提交至所述区块链主链的交易;

    5、所述业务节点执行所述交易列表中的所述交易得到交易执行结果,根据所述主链数据库中的所述区块链主链信息确定交易前后状态根,生成用于证明所述交易前后状态根的状态转移有效的零知识证明;

    6、所述业务节点将所述交易列表、所述交易执行结果、所述交易前后状态根和所述零知识证明打包形成待上链的目标区块,并将所述目标区块提交至所述共识节点;

    7、所述共识节点通过二层服务验证合约基于所述交易前后状态根对所述目标区块中的所述零知识证明进行验证,并在验证通过后将所述目标区块添加至所述区块链主链。

    8、另一方面,本发明实施例还提供了一种区块链系统,所述区块链系统包括用于构成区块链子链的多个业务节点和用于构成区块链主链的多个共识节点,其中,

    9、所述业务节点包括:

    10、同步模块,用于将所述共识节点所保存的区块链主链信息同步至本地的主链数据库;

    11、交易执行模块,用于获取交易列表,并执行所述交易列表中的所述交易得到交易执行结果,其中,所述交易列表包括至少一个待提交至所述区块链主链的交易;

    12、零知识证明模块,用于根据所述主链数据库中的所述区块链主链信息确定交易前后状态根,生成用于证明所述交易前后状态根的状态转移有效的零知识证明;

    13、区块生成模块,用于将所述交易列表、所述交易执行结果、所述交易前后状态根和所述零知识证明打包形成待上链的目标区块,并将所述目标区块提交至所述共识节点;

    14、所述共识节点包括:

    15、合约模块,用于通过二层服务验证合约基于所述交易前后状态根对所述目标区块中的所述零知识证明进行验证;

    16、上链模块,用于在验证通过后将所述目标区块添加至所述区块链主链。

    17、可选地,所述合约模块具体包括第一合约模块和第二合约模块,其中,第一合约模块用于:获取业务节点的节点标识,通过预设的二层服务管理合约对节点标识进行第一验证,以验证业务节点是否具有二层服务权限,在确定业务节点具有二层服务权限的情况下,根据节点标识查找业务节点对应的二层服务验证合约;第二合约模块用于:通过业务节点对应的二层服务验证合约基于交易前后状态根对目标区块中的零知识证明进行第二验证,并在第二验证通过后将目标区块添加至区块链主链。

    18、可选地,所述第一合约模块还用于:为所述业务节点创建二层服务权限;获取所述业务节点对应的零知识证明电路验证逻辑,并根据所述零知识证明电路验证逻辑构建所述业务节点对应的所述二层服务验证合约,其中,所述零知识证明电路验证逻辑用于基于所述交易前后状态根对所述目标区块中的所述零知识证明进行所述第二验证;在所述二层服务管理合约登记所述业务节点对应的所述节点标识、所述节点标识对应的所述二层服务权限、所述节点标识对应的所述二层服务验证合约。

    19、可选地,所述第一合约模块还用于:将所述二层服务权限发送至所述业务节点;所述同步模块还用于:接收所述二层服务权限;所述交易执行模块还用于:确定所述二层服务权限是否有效,并在确定所述二层服务权限有效的情况下执行所述交易列表中的所述交易。

    20、可选地,所述第一合约模块还用于:接收所述业务节点的所述二层服务权限的生命周期管理信息,根据所述生命周期管理信息在所述二层服务管理合约修改所述业务节点对应的所述二层服务权限,其中,所述生命周期管理信息包括暂停二层服务权限的管理信息、恢复二层服务权限的管理信息或者终止二层服务权限的管理信息中的至少一个。

    21、可选地,所述第一合约模块还用于:将所述二层服务权限的所述生命周期管理信息同步至所述业务节点;所述同步模块还用于:接收所述生命周期管理信息,并根据所述生命周期管理信息修改本地的所述二层服务权限。

    22、可选地,所述业务节点还包括区块缓存模块和区块状态记录模块,其中,所述区块缓存模块用于:将所述目标区块缓存至本地的自组织区块库中;所述区块状态记录模块用于:在将所述目标区块提交至所述共识节点之后,将所述目标区块的状态记录为第一状态,所述第一状态表示已将所述目标区块提交至所述共识节点。

    23、可选地,所述同步模块还用于:根据所述共识节点所保存的区块链主链信息对所述主链数据库中的区块链主链信息进行同步更新;

    24、所述业务节点还包括区块状态确认模块,所述区块状态确认模块用于:确定所述主链数据库中的区块链主链信息在同步更新后是否包括所述目标区块,若所述主链数据库中的区块链主链信息在同步更新后包括所述目标区块,所述业务节点确认所述目标区块已上链;

    25、所述区块状态记录模块,还用于:将所述目标区块的状态记录为第二状态,所述第二状态表示所述目标区块已上链。

    26、可选地,所述零知识证明模块根据所述主链数据库中的所述区块链主链信息确定交易前后状态根,具体包括:根据所述主链数据库中的区块链主链信息获取所述区块链主链的结尾区块所对应的第一默克尔树,从第一默克尔树获取第一默克尔根,并将所述第一默克尔根作为交易前状态根,根据所述交易执行结果更新所述第一默克尔树,得到第二默克尔树,从所述第二默克尔树获取第二默克尔根,并将所述第二默克尔根作为交易后状态根。

    27、可选地,所述区块状态确认模块确定所述主链数据库中的区块链主链信息在同步更新后是否包括所述目标区块,具体包括:将同步更新后的区块链主链信息中各个区块对应的默克尔根与所述第二默克尔根进行比较,当所述区块链主链信息中任一区块对应的默克尔根与所述第二默克尔根相匹配,确定所述主链数据库中的区块链主链信息在同步更新后包括所述目标区块。

    28、可选地,所述区块状态确认模块还用于:若所述主链数据库中的区块链主链信息在同步更新后不包括所述目标区块,确认所述目标区块上链失败;所述交易执行模块还用于,在确认所述目标区块上链失败的情况下,重新获取所述交易列表以及执行所述交易列表中的所述交易。

    29、另一方面,本发明实施例还提供了一种区块链系统,包括:

    30、多个处理器;

    31、多个存储器,用于存储计算机可执行程序;

    32、当所述计算机可执行程序被多个所述处理器执行时实现如前面所述的区块链系统的共识方法。

    33、另一方面,本发明实施例还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序被处理器执行时用于实现如前面所述的区块链系统的共识方法。

    34、另一方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序或计算机指令,所述计算机程序或所述计算机指令存储在计算机可读存储介质中,区块链系统的处理器从所述计算机可读存储介质读取所述计算机程序或所述计算机指令,所述处理器执行所述计算机程序或所述计算机指令,使得所述区块链系统执行如前面所述的区块链系统的共识方法。

    35、本发明实施例至少包括以下有益效果:将原来部署在核心共识层的区块链子链转移到业务层,利用业务层的多个业务节点对区块链子链进行维护,处理本地的相关业务而形成本地的区块链子链,实现业务的真正多级分层,节省核心共识网络层的存储资源,并能实现不同区块链子链之间的业务互相隔离,保证交易隐私安全。业务节点获取交易列表后,执行交易列表中的交易,然后基于本地同步的区块链主链信息确定交易前后状态根,生成用于证明交易前后状态根的状态转移有效的零知识证明,再将交易列表、交易执行结果、交易前后状态根和零知识证明打包形成目标区块,将目标区块提交至共识节点,由共识节点通过二层服务验证合约基于交易前后状态根对目标区块中的零知识证明进行验证,并在验证通过后将目标区块添加至区块链主链。这样,将执行交易、生成目标区块等操作放置到业务节点执行,通过业务节点实现局部共识,减轻核心共识网络层的负载压力,另外通过引入零知识证明提高了交易共识的安全性。


    技术特征:

    1.一种区块链系统的共识方法,其特征在于,所述区块链系统包括用于构成区块链子链的多个业务节点和用于构成区块链主链的多个共识节点,所述共识方法包括以下步骤:

    2.根据权利要求1所述的共识方法,其特征在于,所述共识节点通过二层服务验证合约基于所述交易前后状态根对所述目标区块中的所述零知识证明进行验证,并在验证通过后将所述目标区块添加至所述区块链主链,包括:

    3.根据权利要求2所述的共识方法,其特征在于,所述共识节点通过预设的二层服务管理合约对所述节点标识进行第一验证之前,所述共识方法还包括:

    4.根据权利要求3所述的共识方法,其特征在于,所述共识节点为所述业务节点创建二层服务权限之后,所述共识方法还包括:

    5.根据权利要求3所述的共识方法,其特征在于,所述共识节点为所述业务节点创建二层服务权限之后,所述共识方法还包括:

    6.根据权利要求5所述的共识方法,其特征在于,所述共识节点根据所述生命周期管理信息在所述二层服务管理合约修改所述业务节点对应的所述二层服务权限之后,所述共识方法还包括:

    7.根据权利要求1所述的共识方法,其特征在于,所述业务节点形成待上链的所述目标区块之后,所述共识方法还包括:

    8.根据权利要求1所述的共识方法,其特征在于,所述业务节点将所述目标区块提交至所述共识节点之后,所述共识方法还包括:

    9.根据权利要求8所述的共识方法,其特征在于,所述业务节点根据所述主链数据库中的区块链主链信息确定交易前后状态根,包括:

    10.根据权利要求9所述的共识方法,其特征在于,所述业务节点确定所述主链数据库中的区块链主链信息在同步更新后是否包括所述目标区块,包括:

    11.根据权利要求8所述的共识方法,其特征在于,所述业务节点确定所述主链数据库中的区块链主链信息在同步更新后是否包括所述目标区块之后,所述共识方法还包括:

    12.一种区块链系统,其特征在于,所述区块链系统包括用于构成区块链子链的多个业务节点和用于构成区块链主链的多个共识节点,其中,

    13.一种区块链系统,其特征在于,包括:

    14.一种计算机可读存储介质,其特征在于,其中存储有处理器可执行的程序,所述处理器可执行的程序被处理器执行时用于实现如权利要求1至11任意一项所述的区块链系统的共识方法。

    15.一种计算机程序产品,包括计算机程序或计算机指令,其特征在于,所述计算机程序或所述计算机指令存储在计算机可读存储介质中,区块链系统的处理器从所述计算机可读存储介质读取所述计算机程序或所述计算机指令,所述处理器执行所述计算机程序或所述计算机指令,使得所述区块链系统执行如权利要求1至11任意一项所述的区块链系统的共识方法。


    技术总结
    本发明公开了一种区块链系统的共识方法、系统、存储介质以及程序产品,区块链系统包括用于构成区块链子链的多个业务节点和用于构成区块链主链的多个共识节点,共识方法包括:业务节点执行交易列表中的交易得到交易执行结果,根据区块链主链信息确定交易前后状态根,生成零知识证明;业务节点将交易列表、交易执行结果、交易前后状态根和零知识证明打包形成待上链的目标区块,并将目标区块提交至共识节点;共识节点通过二层服务验证合约对目标区块中的零知识证明进行验证,并在验证通过后将目标区块添加至区块链主链。根据本发明实施例,能够减轻共识网络层的资源压力,提高区块链系统的稳定性。本发明可以广泛应用于区块链、云计算等技术领域。

    技术研发人员:朱耿良
    受保护的技术使用者:腾讯科技(深圳)有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-44829.html

    最新回复(0)