基于阈值签名与双哈希链模式的跨链交易回滚方法及装置转让专利

申请号 : CN202210183321.4

文献号 : CN114240439B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马兆丰段鹏飞张宇青刘霄

申请人 : 北京邮电大学

摘要 :

本发明提供一种基于阈值签名与双哈希链模式的跨链交易回滚方法及装置,该方法包括:生成中继链区块;将交易回滚提案提交至中继链的各监管节点;各监管节点进行验证签名,将第一签名结果发送至交易回滚提案提交者;判断是否满足签名数量条件,若满足,得到第一聚合签名,将交易回滚提案及第一聚合签名提交至中继链的排序节点;若第一聚合签名满足交易回滚条件,则对相关区块中的交易进行回滚重构,将回滚重构后的第二Merkle树根哈希值发送至各监管节点;各监管节点基于第二Merkle树根哈希值进行验证签名,将第二签名结果发送至排序节点;若第二签名结果满足签名数量条件,得到第二聚合签名,并生成新区块,向中继链广播新区块;对相关应用链进行交易回滚。

权利要求 :

1.一种基于阈值签名与双哈希链模式的跨链交易回滚方法,其特征在于,所述方法包括:

从双哈希链模式的区块链网络中获取当前区块的交易数据、当前区块的第一Merkle树根哈希值以及上一区块的哈希值,并基于获取到的所述当前区块的第一Merkle树根哈希值生成Merkle树根哈希值副本数据,基于获取到的当前区块的交易数据、当前区块的第一Merkle树根哈希值、上一区块的哈希值以及生成的Merkle树根哈希值副本数据生成中继链区块;

获取来自交易回滚提案提交者的交易回滚提案,并提交至中继链的各监管节点;

所述中继链的各监管节点基于接收到的所述交易回滚提案进行验证签名得到第一签名结果,并将第一签名结果发送至所述交易回滚提案提交者;

所述交易回滚提案提交者基于接收到的第一签名结果判断是否满足签名数量条件,在满足所述签名数量条件的情况下,所述交易回滚提案提交者将接收到的各第一签名结果进行聚合得到第一聚合签名,并将所述交易回滚提案以及所述第一聚合签名提交至所述中继链的排序节点;

所述排序节点基于接收到的所述第一聚合签名验证是否满足交易回滚条件,在满足所述交易回滚条件的情况下,所述排序节点基于接收到的交易回滚提案对包含回滚交易的区块中的交易进行回滚重构,并将回滚重构后的第二Merkle树根哈希值发送至所述中继链的各监管节点;

所述中继链的各监管节点基于接收到的所述第二Merkle树根哈希值进行验证签名得到第二签名结果,并将所述第二签名结果发送至所述排序节点;

所述排序节点基于接收到的第二签名结果判断是否满足签名数量条件,在满足签名数量条件的情况下,所述排序节点将接收到的各第二签名结果进行聚合得到第二聚合签名,并基于上一区块的哈希值、交易回滚重构后的交易数据、Merkle树根哈希值副本数据、第二Merkle树根哈希值以及所述第二聚合签名生成新区块,并向所述中继链广播所述新区块,以完成中继链的交易回滚;

所述排序节点基于所述交易回滚提案对相关应用链进行交易回滚。

2.根据权利要求1所述的基于阈值签名与双哈希链模式的跨链交易回滚方法,其特征在于,所述交易回滚提案提交者为所述中继链上的节点和/或所述应用链上的节点;所述交易回滚提案包括来源链ID信息、目的链ID信息、跨链交易索引、跨链事件发生时间戳以及交易回滚说明。

3.根据权利要求1所述的基于阈值签名与双哈希链模式的跨链交易回滚方法,其特征在于,在所述排序节点基于所述交易回滚提案对相关应用链进行交易回滚之前,所述方法还包括:

所述排序节点将所述交易回滚提案及所述第一聚合签名发送至相关应用链。

4.根据权利要求1所述的基于阈值签名与双哈希链模式的跨链交易回滚方法,其特征在于,所述排序节点基于接收到的所述第一聚合签名验证是否满足交易回滚条件,包括:所述排序节点基于接收到的所述第一聚合签名验证所述第一聚合签名中的第一签名结果的数量是否满足签名数量条件。

5.根据权利要求1所述的基于阈值签名与双哈希链模式的跨链交易回滚方法,其特征在于,中继链的各所述监管节点进行验证签名时所采用的签名算法为BLS签名算法。

6.根据权利要求1所述的基于阈值签名与双哈希链模式的跨链交易回滚方法,其特征在于,所述交易回滚提案提交者基于接收到的第一签名结果判断是否满足签名数量条件,在满足所述签名数量条件的情况下,所述交易回滚提案提交者将接收到的各第一签名结果进行聚合得到第一聚合签名,包括:所述交易回滚提案提交者获取所述第一签名结果的数量以及所述中继链的监管节点的总数量,并计算所述第一签名结果的数量与所述中继链的监管节点的总数量的比值,并判断所述比值是否小于预设值;

在所述比值不小于所述预设值的情况下,所述交易回滚提案提交者将接收到的各第一签名结果进行聚合得到第一聚合签名。

7.根据权利要求1所述的基于阈值签名与双哈希链模式的跨链交易回滚方法,其特征在于,所述排序节点基于接收到的第二签名结果判断是否满足签名数量条件,在满足签名数量条件的情况下,所述排序节点将接收到的各第二签名结果进行聚合得到第二聚合签名,包括:

所述排序节点获取所述第二签名结果的数量以及所述中继链的监管节点的总数量,并计算所述第二签名结果的数量与所述中继链的监管节点的总数量的比值,并判断所述比值是否小于预设值;

在所述比值不小于所述预设值的情况下,所述排序节点将接收到的各第二签名结果进行聚合得到第二聚合签名。

8.根据权利要求1所述的基于阈值签名与双哈希链模式的跨链交易回滚方法,其特征在于,所述排序节点基于接收到的交易回滚提案对包含回滚交易的区块中的交易进行回滚重构,包括:

所述排序节点基于接收到的交易回滚提案对包含回滚交易的区块中的交易进行修改或删除,并根据修改或删除后的交易重新构造Merkle树,基于重新构造的所述Merkle树确定第二Merkle树根哈希值。

9.一种基于阈值签名与双哈希链模式的跨链交易回滚系统,该系统包括处理器和存储器,其特征在于,所述存储器中存储有计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现如权利要求1至8中任意一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至8中任意一项所述方法的步骤。

说明书 :

基于阈值签名与双哈希链模式的跨链交易回滚方法及装置

技术领域

[0001] 本发明涉及区块链技术领域,尤其涉及一种基于阈值签名与双哈希链模式的跨链交易回滚方法及装置。

背景技术

[0002] 随着区块链网络的迅猛发展,各种区块链项目之间的融合需求日益增长,区块链技术对跨链交互的诉求越来越突出。为了实现不同行业区块链项目的有机融合,达到区块
链间的互联互通,进而实现业务与价值的链间流转的目的,区块链对跨链交互技术有了实
际的迫切需求,因此,跨链技术随之产生。总而言之,跨链技术是链接区块链的桥梁和枢纽,
是实现价值互联的关键,是区块链向外拓展并打破区块链形成价值孤岛的有利手段。
[0003] 目前主流的跨链机制有公证人机制、侧链/中继、哈希锁定、分布式私钥控制、公证人+侧链混合机制等,以上核心技术均在不同程度上解决了区块链跨链交互问题,实现了不
同链之间资产的自由流通。跨链技术研究的成果,已经在跨链体系结构、跨链数据协同、跨
链资产流通等方面开展了相关的实践应用,并在分布式交易、数字金融创新等领域取得了
一定的进展。众享比特使用Ripple 提出的跨链价值传输的技术协议InterLedger 
Protocol,实现了跨链资产转移;Cosmos建立Tendermint开发框架,推出了Cosmos Hub;
Polkadot使用中继链建立了一个可伸缩的异构多链系统。国内对跨链技术的研究与应用也
投入了大量的人力、物力,提出了广泛先进的科研平台。上海软件中心提出一种跨链公证人
评价模型,对收集到的公证人节点信息进行信用计算,保证跨链系统的安全稳定,同时联合
复旦大学、同济大学、万向区块链等研发了区块链跨链操作系统ChainOSX;趣链科技构建了
支持同构与异构区块链间交易的跨链技术示范平台BitXHub。
[0004] 中继是一种能够自行检验交易数据且具有可扩展性的跨链技术,作为跨链操作层,中继链通过收集应用链之间的数据状态进行自我验证,负责跨链消息的验证与转发,可
减少链路之间通信的安全隐患,适用于链接多个异构或同构区块链。中继链中各节点组成
联盟链,可对跨链交易进行监管与审计。目前,Cosmos、Polkadot与BitXHub都属于侧链中继
模式。
[0005] 区块链是一种不可篡改的分布式账本,是以密码学算法为基础,基于特定的共识机制,通过构建以块为单位的时序化的链式数据结构,采用P2P网络进行数据同步的一种多
结点、自组织、不可篡改、安全可信的分布式账本系统。当中继链上发生跨链交易异常或跨
链交易存在不良数据时,需对链上跨链交易进行回滚。在传统的区块链系统中,交易的执行
会产生大量的状态数据(如状态数据、账户余额、合约状态等),这些数据在产生后会直接写
入区块链底层数据库,效率较低。而当发生了回滚事件时,必须通过重做日志的方式进行世
界状态的回滚,在回滚的区块数目较大时,需要重做的日志数目也会非常庞大,这种回滚交
易的效率非常低。蔡亮等人提出一种区块链状态数据的存储、回滚方法,通过设置检查点与
检查区间的方式,将第一区块的第一状态数据写入第一预写日志中,当第一区块的第一区
块高度为设置的第一稳定检查点时,将临时数据库中的内容持久化到底层数据库中,大大
提高状态数据的正确性,并在回滚的时候可以不用通过删除磁盘重新计算日志的方式生成
新的状态数据,大大提高回滚的效率。对于诸如加密货币等采用工作量证明作为共识算法
的区块链系统,李伟等人通过人为地设置低于当前哈希碰撞难度的回滚难度值,使得回滚
操作能够快速执行,这样节点就能够在不消耗太多算力的情况下使得分叉链条超过原主
链,可以灵活地对回滚过程进行控制。
[0006] 然而,上述区块链交易回滚方式是以区块粒度进行的交易回滚。在采用中继模式的跨链场景中,应用链间的所有跨链交易均由中继链进行验证、转发及存储;当某区块高度
的区块中某笔交易需要回滚时,若对其后的所有中继链区块进行删除,这无疑会对其余正
常交易的影响较大,从而无法高效地实现对异常交易的精准回滚。目前鲜有适用于中继跨
链模式下的跨链交易回滚方法,而随着当前区块链应用场景需求日益激增和政府的大力支
持,我国已将区块链作为国家新基建信息基础设施的重要组成部分,跨链技术也必将伴随
着区块链技术的深入探索得到不断创新与发展。因此亟需一种能够精准高效实现跨链交易
回滚的方法。

发明内容

[0007] 有鉴于此,本发明提供了一种基于阈值签名与双哈希链模式的跨链交易回滚方法及装置,以解决现有技术中存在的一个或多个问题。
[0008] 根据本发明的一个方面,本发明公开了一种基于阈值签名与双哈希链模式的跨链交易回滚方法,所述方法包括:
[0009] 从双哈希链模式的区块链网络中获取当前区块的交易数据、当前区块的第一Merkle树根哈希值以及上一区块的哈希值,并基于获取到的所述当前区块的第一Merkle树
根哈希值生成Merkle树根哈希值副本数据,基于获取到的当前区块的交易数据、当前区块
的第一Merkle树根哈希值、上一区块的哈希值以及生成的Merkle树根哈希值副本数据生成
中继链区块;
[0010] 获取来自交易回滚提案提交者的交易回滚提案,并提交至中继链的各监管节点;
[0011] 所述中继链的各监管节点基于接收到的所述交易回滚提案进行验证签名得到第一签名结果,并将第一签名结果发送至所述交易回滚提案提交者;
[0012] 所述交易回滚提案提交者基于接收到的第一签名结果判断是否满足签名数量条件,在满足所述签名数量条件的情况下,所述交易回滚提案提交者将接收到的各第一签名
结果进行聚合得到第一聚合签名,并将所述交易回滚提案以及所述第一聚合签名提交至所
述中继链的排序节点;
[0013] 所述排序节点基于接收到的所述第一聚合签名验证是否满足交易回滚条件,在满足所述交易回滚条件的情况下,所述排序节点基于接收到的交易回滚提案对包含回滚交易
的区块中的交易进行回滚重构,并将回滚重构后的第二Merkle树根哈希值发送至所述中继
链的各监管节点;
[0014] 所述中继链的各监管节点基于接收到的所述第二Merkle树根哈希值进行验证签名得到第二签名结果,并将所述第二签名结果发送至所述排序节点;
[0015] 所述排序节点基于接收到的第二签名结果判断是否满足签名数量条件,在满足签名数量条件的情况下,所述排序节点将接收到的各第二签名结果进行聚合得到第二聚合签
名,并基于上一区块的哈希值、交易回滚重构后的交易数据、Merkle树根哈希值副本数据、
第二Merkle树根哈希值以及所述第二聚合签名生成新区块,并向所述中继链广播所述新区
块,以完成中继链的交易回滚;
[0016] 所述排序节点基于所述交易回滚提案对相关应用链进行交易回滚。
[0017] 在本发明的一些实施例中,所述交易回滚提案提交者为所述中继链上的节点和/或所述应用链上的节点;所述交易回滚提案包括来源链ID信息、目的链ID信息、跨链交易索
引、跨链事件发生时间戳以及交易回滚说明,交易回滚说明为对该交易回滚操作的原因描
述。
[0018] 在本发明的一些实施例中,在所述排序节点基于所述交易回滚提案对相关应用链进行交易回滚之前,所述方法还包括:
[0019] 所述排序节点将所述交易回滚提案及所述第一聚合签名发送至相关应用链。
[0020] 在本发明的一些实施例中,所述排序节点基于接收到的所述第一聚合签名验证是否满足交易回滚条件,包括:
[0021] 所述排序节点基于接收到的所述第一聚合签名验证所述第一聚合签名中的第一签名结果的数量是否满足签名数量条件。
[0022] 在本发明的一些实施例中,中继链的各所述监管节点进行验证签名时所采用的签名算法为BLS签名算法。
[0023] 在本发明的一些实施例中,所述交易回滚提案提交者基于接收到的第一签名结果判断是否满足签名数量条件,在满足所述签名数量条件的情况下,所述交易回滚提案提交
者将接收到的各第一签名结果进行聚合得到第一聚合签名,包括:
[0024] 所述交易回滚提案提交者获取所述第一签名结果的数量以及所述中继链的监管节点的总数量,并计算所述第一签名结果的数量与所述中继链的监管节点的总数量的比
值,并判断所述比值是否小于预设值;
[0025] 在所述比值不小于所述预设值的情况下,所述交易回滚提案提交者将接收到的各第一签名结果进行聚合得到第一聚合签名。
[0026] 在本发明的一些实施例中,所述排序节点基于接收到的第二签名结果判断是否满足签名数量条件,在满足签名数量条件的情况下,所述排序节点将接收到的各第二签名结
果进行聚合得到第二聚合签名,包括:
[0027] 所述排序节点获取所述第二签名结果的数量以及所述中继链的监管节点的总数量,并计算所述第二签名结果的数量与所述中继链的监管节点的总数量的比值,并判断所
述比值是否小于预设值;
[0028] 在所述比值不小于所述预设值的情况下,所述排序节点将接收到的各第二签名结果进行聚合得到第二聚合签名。
[0029] 在本发明的一些实施例中,所述排序节点基于接收到的交易回滚提案对包含回滚交易的区块中的交易进行回滚重构,包括:
[0030] 所述排序节点基于接收到的交易回滚提案对包含回滚交易的区块中的交易进行修改或删除,并根据修改或删除后的交易重新构造Merkle树,基于重新构造的所述Merkle
树确定第二Merkle树根哈希值。
[0031] 根据本发明的另一方面,还公开了一种基于阈值签名与双哈希链模式的跨链交易回滚系统,该系统包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器用于
执行所述存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现如上
任一实施例所述方法的步骤。
[0032] 根据本发明的又一方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一实施例所述方法的步骤。
[0033] 该基于阈值签名与双哈希链模式的跨链交易回滚方法,采用双哈希链模式的中继链区块结构,能够实现交易粒度的交易回滚,并能够对中继链上的跨链交易实现精准回滚,
减小对块中其余跨链交易的影响程度,同时采用阈值签名作为链上各监管方对交易回滚事
件的可信授权证明,实现跨链交易的合法回滚,不影响回滚块中其余跨链交易。另外,该方
法中对回滚操作的聚合签名能够体现回滚操作的合法性,也即跨链交易的回滚操作是代表
系统意志,符合系统利益的,恶意非法的回滚操作将无法完成。
[0034] 另外,通过实现对跨链交易的精准有效回滚操作,监管方或权威机构能够对跨链场景中的跨链交易进行有效审计与治理,进而能够推动跨链技术在区块链技术的深入探索
中得到不断创新与发展。
[0035] 本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获
知。本发明的目的和其它优点可以通过在书面说明及其权利要求书以及附图中具体指出的
结构实现到并获得。
[0036] 本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。

附图说明

[0037] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。附图中的部件不是成比例绘制的,而只是为了示出本发明的原理。为
了便于示出和描述本发明的一些部分,附图中对应部分可能被放大,即,相对于依据本发明
实际制造的示例性装置中的其它部件可能变得更大。在附图中:
[0038] 图1为本发明一实施例的基于阈值签名与双哈希链模式的跨链交易回滚方法的流程示意图。
[0039] 图2为本发明一实施例的实施跨链交易回滚的操作示意图。
[0040] 图3为本发明一实施例的基于双哈希链模式的可修改区块链的模型参考图。
[0041] 图4为本发明一实施例的基于阈值签名与双哈希链模式的跨链交易回滚方法的时序示意图。

具体实施方式

[0042] 为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并
不作为对本发明的限定。
[0043] 在此,需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的
其他细节。
[0044] 应该强调,术语“包括/包含/具有”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
[0045] 为了解决现有中继模式跨链场景中,中继链上跨链交易回滚困难且回滚代价大,以及交易回滚事件中缺少监管方可信回滚授权证明的问题,本发明提供了一种基于阈值签
名与双哈希链模式的跨链交易回滚方法。该方法首先由中继链节点或应用链节点提交交易
回滚提案并收集各监管节点的回滚交易签名,将签名聚合后发送给排序节点,排序节点构
造双哈希链模式的新区块,并发往各监管节点对原来的区块进行签名验证,随后调用回滚
交易中各参与应用链中的交易回滚合约,最终实现中继链以及应用链上的跨链交易回滚。
[0046] 在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
[0047] 该方法所涉及的角色主要包括以下四类:交易回滚提案提交者、监管节点、排序节点及应用链。
[0048] 交易回滚提案提交者对跨链交易进行审计并能够对异常交易提出交易回滚请求,向中继链上的监管节点及排序节点提出跨链交易回滚提案,能够对各监管节点返回的交易
签名进行聚合并提交给排序节点,用于后续对跨链交易回滚提案进行验证。
[0049] 监管节点是中继跨链场景中部署于中继链上的节点,承担监管者的角色,对跨链交易进行治理授权;对交易回滚提案提交者发送的提案合法性及有效性进行检验,若检验
通过则对其进行私钥签名,并将签名返回给提交者;对排序节点发送的重构块交易Merkle
树哈希值进行私钥签名,并将签名返回给排序节点。
[0050] 排序节点是中继跨链场景中部署于中继链上提供跨链交易共识服务的节点,中继跨链系统中的所有跨链交易都会在排序节点中进行排序,然后根据一定的规则生成区块,
并向中继链网络中的各记账节点发送区块以进行同步;对交易回滚提案提交者发送的聚合
签名与回滚提案进行验证,若验证通过则重构交易Merkle树并将Merkle树的根哈希值发往
监管节点请求签名;将监管节点返回的关于Merkle树的根哈希值的签名进行聚合并将聚合
签名写入区块中,重新发布该区块;根据交易回滚提案,构造并发送面向相关应用链的回滚
交易,来对其中相关资产进行回滚操作,从而实现应用链上的交易回滚。
[0051] 应用链是中继跨链场景中连接到中继链的区块链网络实体,负责承载不同应用场景下的具体应用的业务合约逻辑;对涉及本应用链的跨链交易向监管节点提出交易回滚提
案;聚合监管节点返回的签名并连同交易回滚提案发送给排序节点请求区块重构。
[0052] 图1为本发明一实施例的基于阈值签名与双哈希链模式的跨链交易回滚方法的流程示意图,如图1所示,该交易回滚方法包括步骤S10 S80。
~
[0053] 步骤S10:从双哈希链模式的区块链网络中获取当前区块的交易数据、当前区块的第一Merkle树根哈希值以及上一区块的哈希值,并基于获取到的所述当前区块的第一
Merkle树根哈希值生成Merkle树根哈希值副本数据,基于获取到的当前区块的交易数据、
当前区块的第一Merkle树根哈希值、上一区块的哈希值以及生成的Merkle树根哈希值副本
数据生成中继链区块。
[0054] 在该步骤中,中继链采用双哈希链模式,即中继链区块Bi可被记为:,其中,prehashi
为前一区块哈希值,curdatai为当前区块交易数据,merklerooti为当前区块交易的第一
Merkle树根哈希值,merklerootbki是当前区块交易的第一Merkle树根哈希值的副本,且该
副本在区块生成后就不再变化。
[0055] 其中,双哈希链模式仍然保留单条区块链,但通过扩展区块结构、使得相邻两个区块之间保留两条哈希链接,从而形成两条哈希链路(参考图3),故名双哈希链模式。技术上,
双哈希链模式在区块Bi中增加了一个字段merklerootbki,用以作为存储当前区块交易
Merkle树根哈希值merklerooti的一个副本,且区块生成后merklerootbki就不再变化。
[0056] 进一步的,若当中继链区块Bi中的交易数据curdatai被修改后,则生成的新区块记为Bi’, Bi’的Merkle树根哈希值将会发生变化,从而破坏了区块之间哈希链路的链接性;然
而由于Bi中的Merkle根哈希值的副本merklerootbki保持不变,因此由merklerootbki形成
的第二条哈希链将仍然成立。
[0057] 步骤S20:获取来自交易回滚提案提交者的交易回滚提案,并提交至中继链的各监管节点。
[0058] 所述交易回滚提案提交者为所述中继链上的节点和/或所述应用链上的节点,且交易回滚提案包括来源链ID信息、目的链ID信息、跨链交易索引index、跨链事件发生时间
戳timestamp以及交易回滚说明rollback proof。此处的交易回滚说明rollback proof是
指对交易回滚操作的原因描述;交易回滚提案中的上述字段被监管节点用来索引具体中继
链区块及跨链交易,从而检验交易回滚提案的有效性与合理性。
[0059] 步骤S30:所述中继链的各监管节点基于接收到的所述交易回滚提案进行验证签名得到第一签名结果,并将第一签名结果发送至所述交易回滚提案提交者。
[0060] 在该步骤中,如图2所示,由中继链的监管节点对交易回滚提案进行验证并签名,并随后将签名发送给交易回滚提案提交者。其中所述监管节点进行验证签名时所采用的签
名算法为BLS签名算法,不难理解的,此处具体的列举BLS签名算法仅是一种示例,在该步骤
中除采用BLS签名算法之外,也可以采用其他签名算法。
[0061] 具体的,BLS签名算法是一种可以实现签名聚合与密钥聚合的算法(即可以将多个密钥聚合成一把密钥,将多个签名聚合成一个签名),其基于的数学原理主要包括曲线哈希
和双线性映射函数。
[0062] 例如,在ECDSA签名算法和Schnorr签名算法中,对消息进行哈希计算后,哈希值结果是数字;而BLS签名算法则是将哈希值结果对应到椭圆曲线上的一个点。例如,加密货币
256
所使用的椭圆曲线有2 个点,而SHA‑256哈希算法的值也恰好是256位,因此可将得到的哈
希值作为点的x值来寻找椭圆曲线上的对应点。对消息求哈希时,为确保能在曲线上找到对
应的点,可在消息体后附加一个数,若对应点寻找失败则累加该数并重新计算。即如果对消
息m的哈希值hash(m||0)没有找到对应点,则持续尝试hash(m||1),hash(m||2)等。
[0063] 而双线性映射函数是指一种特殊的函数,能够把一条(或两条不同的)曲线上的两个点P和Q映射为一个数,即e (P ,Q)→n。此外,该函数还满足如下性质:

[0064] 假设pk代表私钥,P(P=pk*G)代表公钥,G为椭圆曲线的生成点,m代表要签名的信息,则BLS签名方案如下:
[0065] 签名阶段:先对消息m求曲线哈希hash(m),再将获得的结果(曲线坐标点)乘以私钥pk即可,得签名S=pk*hash(m)。
[0066] 验证阶段:使用公钥P来验证签名,即e(P,hash(m))=e(G,S),正确性证明如下:。
[0067] 步骤S40:所述交易回滚提案提交者基于接收到的第一签名结果判断是否满足签名数量条件,在满足所述签名数量条件的情况下,所述交易回滚提案提交者将接收到的各
第一签名结果进行聚合得到第一聚合签名,并将所述交易回滚提案以及所述第一聚合签名
提交至所述中继链的排序节点。
[0068] 在该步骤中,交易回滚提案提交者收集各监管节点返回的回滚交易签名,待满足签名数量条件时,将签名进行聚合得到聚合签名aggresig1,并向中继链中的排序节点提交
交易回滚提案与聚合签名aggresig1。
[0069] 示例性的,交易回滚提案提交者基于接收到的第一签名结果判断是否满足签名数量条件,在满足所述签名数量条件的情况下,所述交易回滚提案提交者将接收到的各第一
签名结果进行聚合得到第一聚合签名,包括:所述交易回滚提案提交者获取所述第一签名
结果的数量以及所述中继链的监管节点的总数量,并计算所述第一签名结果的数量与所述
中继链的监管节点的总数量的比值,并判断所述比值是否小于预设值;在所述比值不小于
所述预设值的情况下,所述交易回滚提案提交者将接收到的各第一签名结果进行聚合得到
第一聚合签名。其中,预设值可为预先设置的小于1的数值,例如五分之三,而若第一签名结
果的数量与所述中继链的监管节点的总数量的比值大于或等于五分之三的情况下,则视为
满足签名数量条件。
[0070] 具体的,签名数量条件指签名数量应满足m‑n阈值签名方案,即假设中继链中共存在n个监管节点,交易回滚提交者收集的签名数量应至少为m个。阈值签名协议是多方信息
安全协议的基础工具之一,在身份认证,防伪防抵赖等方面有着广泛的用途;其本质是m‑
of‑n的签名方式,在知道m个签名的条件下,可以合成唯一一个合法的签名,即任意m个签名
片段的组合都是同一个可验证的签名。探究其数学原理,就是利用m个变量的多项式方程在
m个条件下可解;如果系统中有n>m个条件,任意m个条件都可以得出一个唯一确定的解,若
小于m个条件就不可解。阈值签名的主要流程如下:
[0071] (1)每个监管节点生成一组私钥,即m阶多项式的参数:
[0072] ;
[0073] 其中,  指x不同幂次项的系数, 指监管节点r生成的m阶多项式。
[0074] (2)每个监管节点对其他监管节点x=1,2,…,n生成多个多项式的值(比如使用监管节点的编号),生成后使用非对称公钥加密后传递给相对应的监管节点,使得每个监管节
点拥有n个共享私钥。以监管节点a为例:
[0075] 。
[0076] (3)每个监管节点公开公钥信息为: ;其中,g为椭圆曲线的生成元,ri为 中x不同幂次项的系数,即私钥。
[0077] (4)每个监管节点可验证收到的fr(x)是否正确,以节点a为例,验证方法为:
[0078] 。
[0079] (5)若所有监管节点的验证无误,则每个监管节点达成一致,在本地获得的密钥信息如表1所示。其中,共享私钥也称为成员密钥,以证明监管节点是阈值签名系统中的合法
参与者。
[0080] 表1节点本地密钥信息表
[0081]
[0082] (6)最终,阈值签名系统中的全局私钥pk为: ;全局公钥P为: 。
[0083] 基于上述流程,某节点收集私钥片段只需大于m个,即可创建一个聚合私钥(m‑of‑n)来对系统中需要多方控制的事务进行签名授权。但私钥片段的共享会极大威胁系统安
全,因此使用BLS签名,可使得节点无需收集私钥片段,只需收集各节点公布的签名信息即
可。
[0084] 采用BLS签名算法的阈值签名协议具体的做法如下:
[0085] (1)首先每个监管节点对于交易s计算其曲线哈希hash(s)。
[0086] (2)每 个 监管 节 点 使 用成 员 密 钥对 于 交 易s 的 公 开签 名为 :;其中 指各监管节点在本地存储的共享私钥;则最终
各监管节点对交易s的公开签名如表2所示。
[0087] 表2各节点公开签名信息表
[0088]
[0089] 在表2中的 分别指各监管节点的私钥;g指椭圆曲线生成元; fa(1)、fa(2)、fa(3)分别指监管节点a对各监管节点生成的共享私钥;fb(1)、fb(2)、fb(3)分别指监
管节点b对各监管节点生成的共享私钥;fc(1)、fc(2)、fc(3)分别指监管节点c对各监管节点
生成的共享私钥。
[0090] (3)任意m个Hr(s)可通过签名聚合计算出交易s的全局签名sig,即:。
[0091] 以下以一具体示例说明本发明所采用的BLS签名算法的阈值签名协议。在该示例中,假设m=2,n=3,已知两个监管节点的签名片段A、B,则节点1的签名片段
,节点2的签名片段

[0092] 由于:
[0093]
[0094] 可得到:
[0095] ;
[0096] 。
[0097] 进而通过对两节点签名片段进行签名聚合,可得出交易s的全局签名sig,即:
[0098] 。
[0099] 通过上述方法,则可采用BLS签名算法的阈值签名协议得出全局签名sig作为聚合签名aggresig1。
[0100] 步骤S50:所述排序节点基于接收到的所述第一聚合签名验证是否满足交易回滚条件,在满足所述交易回滚条件的情况下,所述排序节点基于接收到的交易回滚提案对包
含回滚交易的区块中的交易进行回滚重构,并将回滚重构后的第二Merkle树根哈希值发送
至所述中继链的各监管节点。
[0101] 在该步骤中,中继链中的排序节点对步骤S40中的聚合签名aggresig1进行验证,若满足交易回滚条件,则对包含回滚交易的区块中的交易进行回滚重构,随后将新Merkle
树的根哈希值merklerooti’发送给各监管节点请求签名。其中交易回滚条件指监管节点对
交易回滚提案中的回滚交易签名满足m‑n多重签名方案;即在本发明的一些实施例中,所述
排序节点基于接收到的所述第一聚合签名验证所述第一聚合签名中的第一签名结果的数
量是否满足签名数量条件。排序节点对包含回滚交易的区块中的交易进行回滚重构指排序
节点根据交易回滚提案对回滚交易进行修改或删除,随后对区块中的交易重新构造Merkle
树并获得新的根哈希值merklerooti’作为第二Merkle树根哈希值。
[0102] 经过该步骤后,则中继链区块Bi被修改并替换为Bi’,Bi’可表示为 。参考图3,
此前请求更新的请求者将发起链上验证者的共识投票过程,若超过一定比例的验证者同意
修改,则区块Bi将被替换为Bi’,原区块Bi将被移除。完成更新后,由于区块Bi’中的数据
curdatai变化为curdatai’,因此虚线所示的哈希链路被破坏,而由merklerootbki形成的实
线哈希链路仍然成立,从而保证了单条区块链的哈希链路完整性。由此可知,在后续共识过
程中,区块数据将按照正常流程进行验证,若出现相邻区块的虚线链接失效,则检查第二条
使用merklerootbki字段的实线链接是否有效,如果有效则表示该区块曾被修改过,否则表
示该区块发生了未经授权的篡改。
[0103] 步骤S60:所述中继链的各监管节点基于接收到的所述第二Merkle树根哈希值进行验证签名得到第二签名结果,并将所述第二签名结果发送至所述排序节点。
[0104] 在该步骤中,由监管节点对步骤S50中的新Merkle树根哈希值merklerooti’进行签名,随后发送给排序节点。各监管节点所采用的签名算法仍然可为BLS签名算法。
[0105] 步骤S70:所述排序节点基于接收到的第二签名结果判断是否满足签名数量条件,在满足签名数量条件的情况下,所述排序节点将接收到的各第二签名结果进行聚合得到第
二聚合签名,并基于上一区块的哈希值、交易回滚重构后的交易数据、Merkle树根哈希值副
本数据、第二Merkle树根哈希值以及所述第二聚合签名生成新区块,并向所述中继链广播
所述新区块,以完成中继链的交易回滚。
[0106] 在本发明一实施例中,排序节点基于接收到的第二签名结果判断是否满足签名数量条件,在满足签名数量条件的情况下,所述排序节点将接收到的各第二签名结果进行聚
合得到第二聚合签名,包括:所述排序节点获取所述第二签名结果的数量以及所述中继链
的监管节点的总数量,并计算所述第二签名结果的数量与所述中继链的监管节点的总数量
的比值,并判断所述比值是否小于预设值;在所述比值不小于所述预设值的情况下,所述排
序节点将接收到的各第二签名结果进行聚合得到第二聚合签名。此处的预设值也可为预先
设定的小于1的数值。
[0107] 在该步骤中,排序节点收集各监管节点返回的交易签名,待满足签名数量条件时,将签名聚合得到aggresig2,并将aggresig2加入到新区块Bi’中,即此时新区块 
。随后向
中继链广播新区块,从而完成中继链上交易回滚。其中,签名数量条件指签名数量应满足m‑
n多重签名方案,即假设中继链中存在n个监管节点,排序节点收集的签名数量应至少为m
个;在本步骤中,聚合签名aggresig2的作用是向各记账节点表明该区块中交易回滚的合法
性,即提供可信交易回滚授权证明。
[0108] 步骤S80:所述排序节点基于所述交易回滚提案对相关应用链进行交易回滚。
[0109] 排序节点根据交易回滚提案,构造面向相关应用链的回滚交易,来对其中相关资产进行回滚操作,从而实现应用链上的交易回滚(参考图4)。在本步骤中,除构造的回滚交
易外,排序节点还将交易回滚提案与聚合签名aggresig1一并发送给相关应用链,以此来表
明交易回滚操作的权威性与可信性。即在排序节点基于所述交易回滚提案对相关应用链进
行交易回滚之前,排序节点还将所述交易回滚提案及所述第一聚合签名发送至相关应用
链。
[0110] 对应的,本发明还公开了一种基于阈值签名与双哈希链模式的跨链交易回滚系统,该系统包括处理器和存储器,所述存储器存储有计算机指令,所述处理器用于执行所述
存储器中存储的计算机指令,当所述计算机指令被处理器执行时该系统实现如上任一实施
例所述方法的步骤。
[0111] 另外,该发明还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上任一实施例所述方法的步骤。
[0112] 通过上述实施例可以发现,本发明的基于阈值签名与双哈希链模式的跨链交易回滚方法及系统采用双哈希链模式的中继链区块结构,实现交易粒度回滚,从而减小对块中
其余跨链交易的影响程度,并解决了现有中继模式跨链场景中,中继链上跨链交易回滚困
难且回滚代价大的问题。解决了跨链交易回滚事件中缺少监管方可信回滚授权证明的问
题,将各监管方形成的阈值签名记录在回滚区块中,便于跨链交易回滚事务的事后审计,使
得跨链交易回滚结果真实可信。
[0113] 并且,本发明采用双哈希链模式的中继链区块结构,能够实现交易粒度的交易回滚,减小对块中其余跨链交易的影响程度,同时采用阈值签名作为链上各监管方对交易回
滚事件的可信授权证明,实现跨链交易的合法回滚,不影响回滚块中其余跨链交易。其安全
性体现在回滚操作的合法性,也即跨链交易的回滚操作是代表系统意志,符合系统利益的,
恶意非法的回滚操作无法完成。
[0114] 本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还
是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每
个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的
范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插
件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代
码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传
输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。
机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软
盘、CD‑ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联
网等的计算机网络被下载。
[0115] 还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中
提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
[0116] 本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他
实施方式的特征。
[0117] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的
任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。