首页> 中国专利> 区块链上背书签名压缩方法、电子设备及存储介质

区块链上背书签名压缩方法、电子设备及存储介质

摘要

本发明涉及区块链领域,公开了区块链上背书签名压缩方法、电子设备及存储介质,包括提取交易和背书策略,利用智能合约获得与所有背书节点相对应的n个输出消息及背书节点的数量阈值t;将n个输出消息发送给背书节点;同意发起交易的背书节点进行背书交易,获得同意发起交易的背书节点的背书结果;判断在预设时长收集到的若干个背书结果的数量是否达到数量阈值t;利用秘密共享模块、并根据t个背书结果得到恢复数据k′;对恢复数据k′进行验证;生成最终能够上链的交易。本发明不仅把背书签名集合压缩成了一个常数,还能通过该常数直接验证背书签名集合的正确性,验证背书签名高效,且背书签名集合压缩后的大小和验证背书签名的效率不受节点数量影响。

著录项

  • 公开/公告号CN112686672A

    专利类型发明专利

  • 公开/公告日2021-04-20

    原文格式PDF

  • 申请/专利权人 新晨科技股份有限公司;

    申请/专利号CN202110024751.7

  • 发明设计人 胡建鑫;付正;陈冬;曾凡华;

    申请日2021-01-08

  • 分类号G06Q20/38(20120101);

  • 代理机构11337 北京市盛峰律师事务所;

  • 代理人于国强

  • 地址 100097 北京市海淀区蓝靛厂东路2号院金源时代商务中心2号楼B座8层

  • 入库时间 2023-06-19 10:41:48

说明书

技术领域

本发明涉及区块链领域,具体地涉及区块链上背书签名压缩方法、电子设备及存储介质。

背景技术

在现有区块链系统中,链上交易的数据结构即含有背书策略的交易的主要字段包括交易内容、背书策略及收集到的背书签名,交易内容包括交易内容的编码payload及交易发起者对payload的签名,背书策略包括背书规则和背书节点集合。其中,每个背书签名的大小(忽略签名者身份信息)为512比特,即签名算法输出的两个256比特的常数。在进行交易验证流程为:(1)根据交易签名,验证交易发起者身份的合法性;(2)根据实际的业务流程,验证背书策略的正确性;(3)根据背书策略,验证背书签名集合的完整性以及数字签名的正确性;(4)验证交易内容数据的正确性。在实际系统中,背书节点会先验证(1)和(4)再背书,如果背书签名验证无误,意味着(1)和(4)都是正确的。验证交易时,可以不再验证相关内容。现有技术中背书签名集合数据量大,这些数据作为交易的一部分必不可少,增加了区块数据的大小,不利于区块高效传播、存储。另一方面,已有技术中背书节点越多,签名量越大,验证复杂度也越大。

发明内容

本发明提供区块链上背书签名压缩方法、电子设备及存储介质,从而解决现有技术的上述问题。

第一方面,本发明提供了一种区块链上背书签名压缩方法,包括以下步骤:

S1)提取交易Tx和背书策略Pol,背书策略Pol包括背书节点集合以及背书规则;

S2)将交易Tx和背书策略Pol作为智能合约的输入,利用智能合约获取所有背书节点的数量n以及能够将持有的子秘密恢复出共享数据的背书节点的数量阈值t,获得与所有背书节点相对应的n个输出消息,t≤n;

S3)将步骤S2)中得到的n个输出消息分别发送给对应的背书节点;

S4)同意发起交易的背书节点根据获得的相应的输出消息进行背书交易,获得同意发起交易的背书节点的背书结果;

S5)设置预设时长,收集与若干个同意发起交易的背书节点分别相对应的若干个背书结果,判断在预设时长收集到的所述若干个背书结果的数量是否达到能够将持有的子秘密共享的背书节点的数量阈值t,若是,则进入步骤S6);若否,则表明交易背书失败;

S6)获得与t个同意发起交易的背书节点相对应的t个背书结果,调用秘密共享模块,利用秘密共享模块、并根据t个背书结果得到恢复数据k′;

S7)对恢复数据k′进行验证,判断验证是否成功,若是,则进入步骤S8);若否,则返回步骤S1);

S8)生成最终能够上链的交易。

进一步的,在步骤S2)中,将交易Tx和背书策略Pol作为智能合约的输入,利用智能合约获取所有背书节点的数量n以及能够将持有的子秘密恢复出共享数据的背书节点的数量阈值t,获得与所有背书节点相对应的n个输出消息,包括以下步骤:

S21)生成第一随机数k,将所述第一随机数k作为交易的主秘密;

S22)计算与所有需要参与背书的背书节点对应的临时共享密钥,第i个背书节点的临时共享密钥为K

S23)调用秘密共享模块、并根据所有背书节点的数量n以及能够将持有的子秘密恢复出共享数据的背书节点的数量阈值t,获得n个背书节点的子秘密,第i个背书节点的子秘密为s

S24)利用临时共享密钥分别对n个背书节点的子秘密进行加密,得到需要发送给相应背书节点的加密消息,将第i个背书节点的临时共享密钥K

S25)计算智能合约第一参数K,智能合约第一参数K=k*G,G为椭圆曲线的生成元;

S26)删除第一随机数k;

S27)根据交易Tx以及背书策略Pol计算消息摘要m=hash(Tx,Pol),hash表示hash函数;

S28)利用智能合约第一参数K及消息摘要m计算智能合约第二参数C,智能合约第二参数C=K+m*H,H为第二随机参数;第二随机参数H表示椭圆曲线上随机的一个点;

S29)获得与所有背书节点相对应的n个输出消息,与第i个背书节点相对应的输出消息包括智能合约第一参数K、智能合约第二参数C、交易Tx、背书策略Pol和需要发送给第i个背书节点的加密消息s

进一步的,在步骤S4)中,同意发起交易的背书节点根据获得的相应的输出消息进行背书交易,获得同意发起交易的背书节点的背书结果,包括以下步骤:

S41)同意发起交易的背书节点验证交易的合法性,包括根据交易签名验证交易发起者身份的合法性、验证背书策略的正确性以及验证交易内容数据的正确性;如果通过所有验证,则进入步骤S42);如果有至少一个验证未通过,则背书节点不进行背书交易;

S42)将同意发起交易的背书节点记为j,计算同意发起交易的背书节点j解密用的共享密钥,将同意发起交易的背书节点j解密用的共享密钥记为K

S43)用步骤S42)中计算得到的同意发起交易的背书节点j解密用的共享密钥解密同意发起交易的背书节点j的加密消息,同意发起交易的背书节点j解密用的共享密钥K

S44)将同意发起交易的背书节点j的子秘密s

步骤S44)中的原交易发起节点即同意发起交易的背书节点j。

进一步的,在步骤S7)中,对恢复数据k′进行验证,包括根据恢复数据k′计算第三参数C′,第三参数C′=k′*G+m*H,判断第三参数C′是否与智能合约第二参数C一致,若是,则表明验证成功,进入步骤S8);若否,则返回步骤S1)。

进一步的,在步骤S7)中,对恢复数据k′进行验证,包括根据恢复数据k′计算第四参数K′,第四参数K′=k′*G,判断第四参数K′是否与智能合约第一参数K一致,若是,则表明验证成功,进入步骤S8);若否,则返回步骤S1)。

进一步的,在步骤S1)中,交易Tx为交易内容,交易内容包括交易数据和交易发起者签名。

进一步的,在步骤S8)中,最终能够上链的交易的交易内容包括智能合约第二参数C、交易Tx、背书策略Pol和第一随机数k。

另一方面,本发明提供了一种电子设备,电子设备包括:

处理器;

存储介质,其上存储有计算机程序,计算机程序被处理器运行时执行区块链上背书签名压缩方法。

又一方面,本发明提供了一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行区块链上背书签名压缩方法。

本发明的有益效果是:

本发明通过压缩使得交易数据大小变小,同时验证交易背书签名效率约为验证一个数字签名的复杂度,并且该复杂度不受背书节点数量影响。

本发明不仅把背书签名集合压缩成了一个常数,还能够通过该常数直接验证背书签名集合的正确性,验证背书签名高效。

本发明对背书签名部分进行设计,将背书签名的逻辑与秘密共享的逻辑相互对应,一方面,通过密钥共享技术将恢复秘密与背书行为从逻辑上对等起来;另一方面,通过门限秘密共享技术将背书节点的阈值(即能够将持有的子秘密恢复出共享数据的背书节点的数量阈值t)与恢复秘密的参数统一起来,使得本发明背书签名集合压缩后的大小和验证背书签名的效率不受节点数量影响且验证背书签名高效。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本实施例一提供的一种区块链上背书签名压缩方法流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。

实施例一,第一方面,本发明提供了一种区块链上背书签名压缩方法,如图1所示,包括以下步骤:

S1)提取交易Tx和背书策略Pol,背书策略Pol包括背书节点集合以及背书规则;交易Tx为交易内容,交易内容包括交易数据和交易发起者签名;

S2)将所述交易Tx和背书策略Pol作为智能合约的输入,利用智能合约获取所有背书节点的数量n以及能够将持有的子秘密恢复出共享数据的背书节点的数量阈值t,获得与所有背书节点相对应的n个输出消息,t≤n,n是背书策略中参与背书的背书节点的总数,t是背书要求的门限值,本实施例一中,t为n、n/2+1或1,包括以下步骤:

S21)生成第一随机数k,将所述第一随机数k作为交易的主秘密;

S22)计算与所有需要参与背书的背书节点对应的临时共享密钥,第i个背书节点的临时共享密钥为K

S23)调用秘密共享模块、并根据所有背书节点的数量n以及能够将持有的子秘密恢复出共享数据的背书节点的数量阈值t获得n个背书节点的子秘密,第i个背书节点的子秘密为s

S24)利用临时共享密钥分别对n个背书节点的子秘密进行加密,得到需要发送给相应背书节点的加密消息,将第i个背书节点的临时共享密钥K

S25)计算智能合约第一参数K,智能合约第一参数K=k*G,G为椭圆曲线的生成元;

S26)删除第一随机数k;

S27)根据交易Tx以及背书策略Pol计算消息摘要m=hash(Tx,Pol),hash表示hash函数;

S28)利用智能合约第一参数K及消息摘要m计算智能合约第二参数C,智能合约第二参数C=K+m*H,H为第二随机参数;H是系统随机生成的,椭圆曲线的生成元G和第二随机数H均为固定的参数。第二随机参数H是所有网络节点都知道的系统公共参数。

S29)获得与所有背书节点相对应的n个输出消息,与第i个背书节点相对应的输出消息包括智能合约第一参数K、智能合约第二参数C、交易Tx、背书策略Pol和需要发送给第i个背书节点的加密消息s

S3)将步骤S2)中得到的n个输出消息分别发送给对应的背书节点;比如,消息1:{C,K,Tx,Pol,s

S4)同意发起交易的背书节点根据获得的相应的输出消息进行背书交易,获得同意发起交易的背书节点的背书结果,包括以下步骤:

S41)同意发起交易的背书节点验证交易的合法性,包括根据交易签名验证交易发起者身份的合法性、验证背书策略的正确性以及验证交易内容数据的正确性;如果通过所有验证,则进入步骤S42);如果有至少一个验证未通过,则背书节点不进行背书交易;

S42)将同意发起交易的背书节点记为j,计算同意发起交易的背书节点j解密用的共享密钥,将同意发起交易的背书节点j解密用的共享密钥记为K

S43)用步骤S42)中计算得到的同意发起交易的背书节点j解密用的共享密钥解密同意发起交易的背书节点j的加密消息,同意发起交易的背书节点j解密用的共享密钥K

S44)将同意发起交易的背书节点j的子秘密s

S5)设置预设时长,收集与若干个同意发起交易的背书节点分别相对应的若干个背书结果,判断在预设时长收集到的若干个背书结果的数量是否达到能够将持有的子秘密共享的背书节点的数量阈值t,若是,则进入步骤S6);若否,则表明背书节点背书失败;

S6)获得与t个同意发起交易的背书节点相对应的t个背书结果,调用秘密共享模块,利用秘密共享模块、并根据t个背书结果得到恢复数据k′;在流程中,如果数据无误,k′=k,将得到步骤S2)中的第一随机数k。本发明实施例中的秘密恢复算法依旧采用Shamir的(t,n)秘密共享方法中的秘密恢复算法。

S7)对恢复数据k′进行验证,判断验证是否成功,若是,则进入步骤S8);若否,则返回步骤S1);

本实施例中,在步骤S7)对恢复数据k′进行验证时,包括根据恢复数据k′计算第三参数C′,第三参数C′=k′*G+m*H,判断第三参数C′是否与智能合约第二参数C一致,若是,则表明验证成功,进入步骤S8);若否,则返回步骤S1)。

另外,本实施例在步骤S7)中还可以通过根据恢复数据k′计算第四参数K′从而对恢复数据k′进行验证,第四参数K′=k′*G,判断第四参数K′是否与智能合约第一参数K一致,若是,则表明验证成功,进入步骤S8);若否,则返回步骤S1)。

S8)生成最终能够上链的交易。最终能够上链的交易的交易内容包括智能合约第二参数C、交易Tx、背书策略Pol和第一随机数k。

在本实施例中,如表一所示,分别设置背书节点总量100、1000以及10000的情况下本发明对背书签名的压缩效果。同时将本发明与Fabric现用的背书签名方式进行对比。此时,假设背书策略要求所有节点签名。其中,本文方案中的C暂不考虑压缩,为512比特,k为256比特。

表一 不同背书节点总量下本发明对背书签名的压缩效果

表一

本发明实施例在验证流程中,用到了hash算法和椭圆曲线算法,椭圆曲线上的乘法只有两次,约等于验证一个数字签名的复杂度,相比验证100个签名甚至更多签名,具有明显优势,本发明验证背书签名高效。本发明背书签名集合压缩后的大小和验证背书签名的效率不受节点数量影响。压缩结果是固定的,同时验证流程也是固定的。所以本发明背书签名集合压缩后的大小和验证背书签名都不受背书节点数量影响。

另一方面,本发明提供了一种电子设备,电子设备包括:

处理器;

存储介质,其上存储有计算机程序,计算机程序被处理器运行时执行区块链上背书签名压缩方法。

又一方面,本发明提供了一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行区块链上背书签名压缩方法。

本发明实施例中交易字段只包含了本发明流程涉及的字段。如果在实际应用中,增加交易字段但采用本发明相同的流程,也在本发明保护范围内。

通过采用本发明公开的上述技术方案,得到了如下有益的效果:

本发明通过压缩使得交易数据大小变小,同时验证交易背书签名效率约为验证一个数字签名的复杂度,并且该复杂度不受背书节点数量影响。

本发明不仅把背书签名集合压缩成了一个常数,还能够通过该常数直接验证背书签名集合的正确性,验证背书签名高效。

本发明对背书签名部分进行设计,将背书签名的逻辑与秘密共享的逻辑相互对应,一方面,通过密钥共享技术将恢复秘密与背书行为从逻辑上对等起来;另一方面,通过门限秘密共享技术将背书节点的阈值(即能够将持有的子秘密恢复出共享数据的背书节点的数量阈值t)与恢复秘密的参数统一起来,使得本发明背书签名集合压缩后的大小和验证背书签名的效率不受节点数量影响且验证背书签名高效。

以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号