CN118396745A - 交易存在性证明方法及相关装置 - Google Patents

交易存在性证明方法及相关装置 Download PDF

Info

Publication number
CN118396745A
CN118396745A CN202410575666.3A CN202410575666A CN118396745A CN 118396745 A CN118396745 A CN 118396745A CN 202410575666 A CN202410575666 A CN 202410575666A CN 118396745 A CN118396745 A CN 118396745A
Authority
CN
China
Prior art keywords
target
node
transaction
server
leaf
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410575666.3A
Other languages
English (en)
Inventor
白兴强
李辉忠
张开翔
姚辉亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202410575666.3A priority Critical patent/CN118396745A/zh
Publication of CN118396745A publication Critical patent/CN118396745A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种交易存在性证明方法及相关装置,该方法包括根据多个交易确定交易多叉树;接收自第二服务器而来的生成指令;向第二服务器发送目标叶子节点和目标父节点;接收自第二服务器而来的目标存在性证明;根据交易多叉树和目标存在性证明确定目标交易的目标存在性结果;向第二服务器发送目标存在性结果。由于第一服务器根据多个交易确定交易多叉树,使得在生成目标交易的存在性证明时,只需要向第二服务器传输目标交易对应的目标叶子节点和目标叶子节点的父节点,减少了生成存在性证明的数据传输量和存在性证明的数据大小,从而减少了验证交易存在性的整体数据传输量,降低了带宽消耗,提升了经济效益。

Description

交易存在性证明方法及相关装置
技术领域
本申请属于计算机技术领域,具体涉及一种交易存在性证明方法及相关装置。
背景技术
当前,用户需要通过区块链对交易的存在性进行验证,从而保障交易安全。现有技术基于默克尔树生成交易的存在性证明,再验证存在性证明的正确性,从而确定交易是否存在。但是,由于需要从默克尔树中获取多个数据生成存在性证明,导致验证交易存在性的过程中的数据传输量大,带宽消耗大。因此,如何减少验证交易存在性的数据传输量,降低带宽消耗,成为进一步需要解决的技术问题。
发明内容
本申请实施例提供了一种交易存在性证明方法及相关装置,以解决验证交易存在性的过程中的数据传输量大,带宽消耗大的问题,从而减少验证交易存在性的数据传输量,降低带宽消耗。
第一方面,本申请实施例提供了一种交易存在性证明方法,应用于交易存在性证明系统中的第一服务器,所述交易存在性证明系统包括所述第一服务器和第二服务器,所述方法包括:
根据多个交易确定交易多叉树,所述交易多叉树包括多个叶子节点和所述多个叶子节点的多个先辈节点,所述多个叶子节点中每个叶子节点用于表征对应的交易,所述多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺;
接收自所述第二服务器而来的生成指令,所述生成指令是所述第二服务器检测到针对需要证明存在性的目标交易的确认指令,响应所述确认指令,根据所述目标交易确定的;
向所述第二服务器发送目标叶子节点和目标父节点,所述目标叶子节点为所述多个叶子节点中与所述目标交易对应的叶子节点,所述目标父节点为所述目标叶子节点的父节点;
接收自所述第二服务器而来的目标存在性证明,所述目标存在性证明是所述第二服务器接收所述目标叶子节点和所述目标父节点,根据所述目标叶子节点和所述目标父节点确定的;
根据所述交易多叉树和所述目标存在性证明确定所述目标交易的目标存在性结果;
向所述第二服务器发送所述目标存在性结果。
第二方面,本申请实施例提供了一种交易存在性证明系统,所述系统包括:
第一服务器,用于根据多个交易确定交易多叉树,所述交易多叉树包括多个叶子节点和所述多个叶子节点的多个先辈节点,所述多个叶子节点中每个叶子节点用于表征对应的交易,所述多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺;
第二服务器,用于检测到针对需要证明存在性的目标交易的确认指令,响应所述确认指令,根据所述目标交易确定生成指令,并向所述第一服务器发送所述生成指令;
所述第一服务器还用于接收所述生成指令,向所述第二服务器发送目标叶子节点和目标父节点,所述目标叶子节点为所述多个叶子节点中与所述目标交易对应的叶子节点,所述目标父节点为所述目标叶子节点的父节点;
所述第二服务器还用于接收所述目标叶子节点和所述目标父节点,根据所述目标叶子节点和所述目标父节点确定所述目标交易的目标存在性证明,并向所述第一服务器发送所述目标存在性证明;
所述第一服务器还用于接收所述目标存在性证明,根据所述交易多叉树和所述目标存在性证明确定所述目标交易的目标存在性结果,向所述第二服务器发送所述目标存在性结果。
第三方面,本申请实施例提供了一种交易存在性证明装置,应用于交易存在性证明系统中的第一服务器,所述交易存在性证明系统包括所述第一服务器和第二服务器,所述装置包括:
第一处理单元,用于根据多个交易确定交易多叉树,所述交易多叉树包括多个叶子节点和所述多个叶子节点的多个先辈节点,所述多个叶子节点中每个叶子节点用于表征对应的交易,所述多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺;
第一接收单元,用于接收自所述第二服务器而来的生成指令,所述生成指令是所述第二服务器检测到针对需要证明存在性的目标交易的确认指令,响应所述确认指令,根据所述目标交易确定的;
第二处理单元,用于向所述第二服务器发送目标叶子节点和目标父节点,所述目标叶子节点为所述多个叶子节点中与所述目标交易对应的叶子节点,所述目标父节点为所述目标叶子节点的父节点;接收自所述第二服务器而来的目标存在性证明,所述目标存在性证明是所述第二服务器接收所述目标叶子节点和所述目标父节点,根据所述目标叶子节点和所述目标父节点确定的;根据所述交易多叉树和所述目标存在性证明确定所述目标交易的目标存在性结果;以及,向所述第二服务器发送所述目标存在性结果。
第四方面,本申请实施例提供了一种服务器,包括处理器、存储器以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行本申请实施例第一方面中的步骤的指令。
第五方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序/指令,所述计算机程序/指令被处理器执行时实现本申请实施例第一方面中的步骤。
第六方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
可以看出,本申请实施例中,第一服务器根据多个交易确定交易多叉树,交易多叉树包括多个叶子节点和多个叶子节点的多个先辈节点,多个叶子节点中每个叶子节点用于表征对应的交易,多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺;接收自第二服务器而来的生成指令,生成指令是第二服务器检测到针对需要证明存在性的目标交易的确认指令,响应确认指令,根据目标交易确定的;向第二服务器发送目标叶子节点和目标父节点,目标叶子节点为多个叶子节点中与目标交易对应的叶子节点,目标父节点为目标叶子节点的父节点;接收自第二服务器而来的目标存在性证明,目标存在性证明是第二服务器接收目标叶子节点和目标父节点,根据目标叶子节点和目标父节点确定的;根据交易多叉树和目标存在性证明确定目标交易的目标存在性结果;向第二服务器发送目标存在性结果。由于第一服务器根据多个交易确定交易多叉树,使得在生成目标交易的存在性证明时,只需要向第二服务器传输目标交易对应的目标叶子节点和目标叶子节点的父节点,减少了生成存在性证明的数据传输量和存在性证明的数据大小,从而减少了验证交易存在性的整体数据传输量,降低了带宽消耗,提升了经济效益。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种交易存在性证明系统的结构示意图;
图2是本申请实施例提供的一种交易存在性证明系统中第一服务器的结构示意图;
图3是本申请实施例提供的一种交易存在性证明方法的流程示意图;
图4是本申请实施例提供的一种交易存在性证明方法的场景示意图;
图5是本申请实施例提供的另一种交易存在性证明方法的场景示意图;
图6是本申请实施例提供的一种交易存在性证明装置的功能单元组成框图;
图7是本申请实施例提供的另一种交易存在性证明装置的功能单元组成框图;
图8是本申请实施例提供的一种第一服务器的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例中的“和/或”,描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示如下三种情况:单独存在A;同时存在A和B;单独存在B。其中,A、B可以是单数或者复数。
本申请实施例中,符号“/”可以表示前后关联对象是一种“或”的关系。另外,符号“/”也可以表示除号,即执行除法运算。例如,A/B,可以表示A除以B。
本申请实施例中的“至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合,是指一个或多个,多个指的是两个或两个以上。例如,a、b或c中的至少一项(个),可以表示如下七种情况:a,b,c,a和b,a和c,b和c,a、b和c。其中,a、b、c中的每一个可以是元素,也可以是包含一个或多个元素的集合。
本申请实施例中的“等于”可以与大于连用,适用于大于时所采用的技术方案,也可以与小于连用,适用于与小于时所采用的技术方案。当等于与大于连用时,不与小于连用;当等于与小于连用时,不与大于连用。
为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的终端设备、相关概念和背景进行介绍。
(1)存在性证明:存在性证明是证明的一种形式,它的目的是证明某个对象的存在,而不需要具体构造出该对象或描述其详细性质。
(2)承诺:指密码学中的承诺,是一种两阶段的交互协议,它允许一方在不透露保密信息具体内容的情况下,向另一方证明其对某一信息的知情。
(3)多项式承诺:一种密码学工具,能够在不泄露承诺本身的具体信息的情况用多项式将承诺表现出来。
(4)椭圆曲线的生成元:在椭圆曲线密码学中,生成元是一个特殊的点,位于椭圆曲线上,可以通过其自身的重复加法操作生成椭圆曲线上所有可能的点。
当前,用户需要通过区块链对交易的存在性进行验证,从而保障交易安全。现有技术基于默克尔树生成交易的存在性证明,再验证存在性证明的正确性,从而确定交易是否存在。但是,由于需要从默克尔树中获取多个数据生成存在性证明,导致验证交易存在性的过程中的数据传输量大,带宽消耗大。
为解决上述问题,本申请实施例提供了一种交易存在性证明方法及相关装置。该方法通过第一服务器根据多个交易确定交易多叉树,使得在生成目标交易的存在性证明时,只需要向第二服务器传输目标交易对应的目标叶子节点和目标叶子节点的父节点,减少了生成存在性证明的数据传输量和存在性证明的数据大小,从而减少了验证交易存在性的整体数据传输量,降低了带宽消耗,提升了经济效益。
请参阅图1,图1是本申请实施例提供的一种交易存在性证明系统的结构示意图。如图1所示,交易存在性证明系统100包括第一服务器110和第二服务器120。其中,第一服务器110与第二服务器120通信连接。其中,所述第一服务器110可以是一台服务器,或者由若干服务器组成的服务器集群,或者是云计算服务中心等,所述第二服务器120可以是一台服务器,或者由若干服务器组成的服务器集群,或者是云计算服务中心等。
其中,所述第一服务器110用于根据多个交易确定交易多叉树,所述交易多叉树包括多个叶子节点和所述多个叶子节点的多个先辈节点,所述多个叶子节点中每个叶子节点用于表征对应的交易,所述多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺。
其中,所述第二服务器120用于检测到针对需要证明存在性的目标交易的确认指令,响应所述确认指令,根据所述目标交易确定生成指令,并向所述第一服务器发送所述生成指令。
其中,所述第一服务器110还用于接收所述生成指令,向所述第二服务器发送目标叶子节点和目标父节点,所述目标叶子节点为所述多个叶子节点中与所述目标交易对应的叶子节点,所述目标父节点为所述目标叶子节点的父节点。
其中,所述第二服务器120还用于接收所述目标叶子节点和所述目标父节点,根据所述目标叶子节点和所述目标父节点确定所述目标交易的目标存在性证明,并向所述第一服务器发送所述目标存在性证明。
其中,所述第一服务器110还用于接收所述目标存在性证明,根据所述交易多叉树和所述目标存在性证明确定所述目标交易的目标存在性结果,向所述第二服务器发送所述目标存在性结果。
在一个可能的实施例中,在所述根据所述目标叶子节点和所述目标父节点确定所述目标交易的目标存在性证明方面,所述第二服务器120具体用于:根据所述目标叶子节点中储存的叶子节点序号、交易哈希值和所述目标父节点中储存的多项式确定所述目标叶子节点对应的目标映射点,所述目标映射点为所述目标父节点映射在对应的椭圆曲线上的点;根据所述目标叶子节点中储存的叶子节点序号、交易哈希值和所述目标映射点确定所述目标存在性证明。
在交易存在性证明系统100的日常使用中,由第一服务器110根据多个交易确定交易多叉树,交易多叉树包括多个叶子节点和多个叶子节点的多个先辈节点,多个叶子节点中每个叶子节点用于表征对应的交易,多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺;接收自第二服务器而来的生成指令,生成指令是第二服务器检测到针对需要证明存在性的目标交易的确认指令,响应确认指令,根据目标交易确定的;向第二服务器发送目标叶子节点和目标父节点,目标叶子节点为多个叶子节点中与目标交易对应的叶子节点,目标父节点为目标叶子节点的父节点;接收自第二服务器而来的目标存在性证明,目标存在性证明是第二服务器接收目标叶子节点和目标父节点,根据目标叶子节点和目标父节点确定的;根据交易多叉树和目标存在性证明确定目标交易的目标存在性结果;向第二服务器发送目标存在性结果。
请参阅图2,图2是本申请实施例提供的一种交易存在性证明系统中第二服务器的结构示意图。如图2所示,第一服务器110包括处理器210和存储器220,所述处理器210与存储器220通信连接。其中,存储器220中存储有一个或多个程序,并且该一个或多个程序被配置由处理器210执行。该一个或多个程序的功能是负责根据多个交易确定交易多叉树,交易多叉树包括多个叶子节点和多个叶子节点的多个先辈节点,多个叶子节点中每个叶子节点用于表征对应的交易,多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺;接收自第二服务器而来的生成指令,生成指令是第二服务器检测到针对需要证明存在性的目标交易的确认指令,响应确认指令,根据目标交易确定的;向第二服务器发送目标叶子节点和目标父节点,目标叶子节点为多个叶子节点中与目标交易对应的叶子节点,目标父节点为目标叶子节点的父节点;接收自第二服务器而来的目标存在性证明,目标存在性证明是第二服务器接收目标叶子节点和目标父节点,根据目标叶子节点和目标父节点确定的;根据交易多叉树和目标存在性证明确定目标交易的目标存在性结果;向第二服务器发送目标存在性结果。
请参阅图3,图3本申请实施例提供的一种交易存在性证明方法的流程示意图,应用于如图1所示的交易存在性证明系统100中的第一服务器110,所述交易存在性证明系统100包括第一服务器110和第二服务器120。其中,第一服务器110与第二服务器120通信连接。其中,所述第一服务器110可以是一台服务器,或者由若干服务器组成的服务器集群,或者是云计算服务中心等,所述第二服务器120可以是一台服务器,或者由若干服务器组成的服务器集群,或者是云计算服务中心等;如图所示,所述方法包括以下步骤:
步骤S301,根据多个交易确定交易多叉树。
其中,所述交易多叉树包括多个叶子节点和所述多个叶子节点的多个先辈节点,所述多个叶子节点中每个叶子节点用于表征对应的交易,所述多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺。
其中,所述多个叶子节点是所述交易多叉树中没有子节点的节点,所述多个叶子节点位于所述交易多叉树的最底层,是数据的最终单元。
其中,所述多个先辈节点是所述交易多叉树中每个叶子节点的先辈节点的集合,即,所述交易多叉树中除所述多个叶子节点之外的其他节点都是先辈节点,所述交易多叉树中除所述多个叶子节点之外的其他所有节点为所述多个先辈节点。
其中,每个叶子节点对应至少一个先辈节点,每个先辈节点对应至少两个叶子节点。
在一个可能的实施例中,所述根据多个交易确定交易多叉树,包括:确定所述多个交易中每个交易对应的交易哈希值,得到多个交易哈希值;根据所述多个交易哈希值确定所述多个叶子节点;根据所述多个叶子节点确定所述多个先辈节点;根据所述多个叶子节点和所述多个先辈节点确定所述交易多叉树。
其中,所述交易哈希值是对应的交易的唯一标识。
其中,所述确定所述多个交易中每个交易对应的交易哈希值,得到多个交易哈希值,包括:获取预设的哈希算法;根据所述哈希算法,生成所述每个交易对应的交易哈希值,得到所述多个交易哈希值。所述哈希算法为任意一种安全的哈希算法,例如可以是sha3-512。
可见,在本示例中,根据多个交易对应的多个交易哈希值,然后根据多个交易哈希值确定多个叶子节点,再根据多个叶子节点确定多个先辈节点,从而得到交易多叉树,使得在生成目标交易的存在性证明时,只需要向第二服务器传输目标交易对应的目标叶子节点和目标叶子节点的父节点,减少了生成存在性证明的数据传输量和存在性证明的数据大小,从而减少了验证交易存在性的整体数据传输量,降低了带宽消耗,提升了经济效益。
在一个可能的实施例中,所述根据所述多个哈希值确定所述多个叶子节点,包括:将所述多个交易哈希值按照大小顺序进行排列,得到第一序列;根据所述多个交易哈希值中每个交易哈希值在所述第一序列中的位置确定所述每个交易哈希值对应的叶子节点序号,得到多个叶子节点序号;根据所述多个交易哈希值和所述多个叶子节点序号确定所述多个叶子节点,所述多个叶子节点中每个叶子节点按照对应的叶子节点序号的大小排列,所述每个叶子节点中储存对应的叶子节点序号和交易哈希值;获取预设的头节点和尾结点;将所述头节点和所述尾结点分别添加到所述多个叶子节点的最前端和最末端,得到更新后的所述多个叶子节点。
其中,所述多个交易哈希值与所述多个叶子节点序号一一对应。
其中,所述根据所述多个交易哈希值和所述多个叶子节点序号确定所述多个叶子节点,包括:将所述多个交易哈希值与所述多个叶子节点序号一一匹配,得到多个第一组合;将所述多个第一组合中每个第一组合中的叶子节点序号和交易哈希值分别确定为键和值,得到多个第一键值对,单个第一键值对为对应的叶子节点的值;根据所述多个第一键值对确定所述多个叶子节点。例如,叶子节点序号001对应的交易哈希值33ab,叶子节点序号010对应的交易哈希为56af,则叶子节点序号001与交易哈希值33ab组成的第一键值对为(001,33ab),叶子节点序号010与交易哈希为56af组成的第一键值对为(010,56af),从而得到值为(001,33ab)的叶子节点和值为(010,56af)的叶子节点。
其中,所述每个叶子节点对应的叶子节点序号和交易哈希值以第一键值对的形式储存在每个叶子节点中。
其中,所述多个叶子节点中每个叶子节点按照对应的叶子节点序号的大小排列,例如可以是:因为010大于001,所以值为(001,33ab)的叶子节点排列在值为(010,56af)的叶子节点之前。
其中,所述头节点的值为第二键值对,所述第二键值对中的键为所述头节点的头节点序号,所述第二键值对中的值为所述头节点的头节点哈希值,所述头节点序号小于更新前的所述多个叶子节点中排列第一的叶子节点对应的叶子节点序号,所述头节点哈希值小于更新前的所述多个叶子节点中排列第一的叶子节点对应的交易哈希值。
其中,所述尾结点的值为第三键值对,所述第三键值对中的键为所述尾结点的尾结点序号,所述第三键值对中的值为所述尾结点的尾结点哈希值,所述尾节点序号大于更新前的所述多个叶子节点中排列最后的叶子节点对应的叶子节点序号,所述尾节点哈希值大于更新前的所述多个叶子节点中排列最后的叶子节点对应的交易哈希值。
其中,请参阅图4,图4是本申请实施例提供的一种交易存在性证明方法的场景示意图。如图4所示,更新前的所述多个叶子节点中值为(001,33ab)的叶子节点、值为(010,56af)的叶子节点、值为(011,611c)的叶子节点、值为(100,837e)的叶子节点、值为(101,958d)的叶子节点和值为(110,a37b)的叶子节点按照对应的叶子节点序号排列,更新后的所述多个叶子节点包括值为(000,Hs)的头节点、值为(001,33ab)的叶子节点、值为(010,56af)的叶子节点、值为(011,611c)的叶子节点、值为(100,837e)的叶子节点、值为(101,958d)的叶子节点、值为(110,a37b)的叶子节点和值为(111,He)的尾结点。
可见,在本示例中,根据多个交易哈希确定多个叶子节点序号,再据此确定按照叶子节点序号的大小排列的多个叶子节点,并给多个叶子节点添加头节点和尾结点,得到更新后的多个叶子节点,再根据多个叶子节点确定多个先辈节点,从而得到交易多叉树,使得在生成目标交易的存在性证明时,只需要向第二服务器传输目标交易对应的目标叶子节点和目标叶子节点的父节点,减少了生成存在性证明的数据传输量和存在性证明的数据大小,从而减少了验证交易存在性的整体数据传输量,降低了带宽消耗,提升了经济效益。
在一个可能的实施例中,所述根据所述多个叶子节点确定所述多个先辈节点,包括:确定所述每个叶子节点对应的至少一个先辈节点编号,得到多个先辈节点编号,所述多个先辈节点编号中每个先辈节点编号对应至少两个叶子节点;根据所述每个先辈节点编号对应的至少两个叶子节点确定所述每个先辈节点编号对应的多项式承诺,得到多个多项式承诺;确定所述多个多项式承诺中每个多项式承诺对应的多项式承诺哈希值,得到多个多项式承诺哈希值;根据所述多个先辈节点编号和所述多个多项式承诺哈希值确定所述多个先辈节点,所述多个先辈节点中每个先辈节点中储存对应的先辈节点编号、多项式、多项式承诺和多项式承诺的哈希值。
其中,所述确定所述每个叶子节点对应的至少一个先辈节点编号,得到多个先辈节点编号,例如可以是:若预设所述交易多叉树为二叉树,则确定值为(000,Hs)的头节点对应的至少一个先辈节点编号包括00、0和Root,值为(001,33ab)的叶子节点对应的至少一个先辈节点编号包括00、0和Root,值为(010,56af)的叶子节点对应的至少一个先辈节点编号包括01、0和Root、值为(011,611c)的叶子节点对应的至少一个先辈节点编号包括01、0和Root,值为(100,837e)的叶子节点对应的至少一个先辈节点编号包括10、1和Root,值为(101,958d)的叶子节点对应的至少一个先辈节点编号包括10、1和Root,值为(110,a37b)的叶子节点对应的至少一个先辈节点编号包括11、1和Root,值为(111,He)的尾结点对应的至少一个先辈节点编号包括11、1和Root,得到的多个先辈节点编号包括00、01、10、11、0、1、Root。先辈节点编号00对应的至少两个叶子节点包括值为(000,Hs)的头节点和值为(001,33ab)的叶子节点,先辈节点编号0对应的至少两个叶子节点包括值为(000,Hs)的头节点、值为(001,33ab)的叶子节点、值为(010,56af)的叶子节点和值为(011,611c)的叶子节点,同理可确定出每个先辈节点对应的至少两个叶子节点。
其中,所述确定所述多个多项式承诺中每个多项式承诺对应的多项式承诺哈希值,得到多个多项式承诺哈希值,包括:根据所述哈希算法,生成所述每个多项式承诺对应的多项式承诺哈希值,得到所述多个多项式承诺哈希值。所述哈希算法为任意一种安全的哈希算法,例如可以是sha3-512。
可见,在本示例中,根据多个交易确定多个叶子节点后,根据多个叶子节点确定多个先辈节点编号,然后根据每个先辈节点编号对应的至少两个叶子节点,确定每个先辈节点编号对应的多项式承诺,得到多个多项式承诺后进一步得到多个多项式承诺哈希值,从而根据多个先辈节点编号和多个多项式承诺哈希值确定储存对应的先辈节点编号、多项式、多项式承诺和多项式承诺的哈希值多个先辈节点,使得在生成目标交易的存在性证明时,只需要向第二服务器传输目标交易对应的目标叶子节点和目标叶子节点的父节点,减少了生成存在性证明的数据传输量和存在性证明的数据大小,从而减少了验证交易存在性的整体数据传输量,降低了带宽消耗,提升了经济效益。
在一个可能的实施例中,所述根据所述每个先辈节点编号对应的至少两个叶子节点确定所述每个先辈节点编号对应的多项式承诺,得到多个多项式承诺,包括:获取预设的椭圆曲线的生成元;根据所述椭圆曲线的生成元确定多个变形随机数,所述多个变形随机数与所述多个先辈节点编号一一对应;根据所述每个先辈节点编号对应的至少两个叶子节点确定所述每个先辈节点编号对应的多项式,得到多个多项式;根据所述多个变形随机数和所述多个多项式,确定所述多个多项式承诺。
其中,预设的椭圆曲线的生成元包括第一生成元g1和第二生成元g2,第一生成元g1和第二生成元g2对应不同的椭圆曲线,第一生成元g1和第二生成元g2对应的椭圆曲线的阶p相同,Fp也相同,所述Fp表示模p的整数域。
其中,所述根据所述椭圆曲线的生成元确定多个变形随机数,包括:针对所述多个先辈节点执行如下处理操作:生成当前处理的先辈节点对应的随机数s,所述随机数s∈Fp;计算{sig1,sig2},i=0,...,n-1;其中,n是预设的多项式的次数,s不公开,{sig1,sig2},i=0,...,n-1公开;重复上述步骤,直至所述多个先辈节点全部处理完毕,得到所述多个变形随机数。
其中,所述根据所述每个先辈节点编号对应的至少两个叶子节点确定所述每个先辈节点编号对应的多项式,得到多个多项式,包括:根据拉格朗日插值法对所述每个先辈节点编号对应的至少两个叶子节点中的任意两个叶子节点进行处理,确定每个先辈节点编号对应的多项式,得到所述多个多项式。例如可以是:先辈节点编号00对应的至少两个叶子节点包括值为(000,Hs)的头节点和值为(001,33ab)的叶子节点,假设预设的Hs=3223,多项式的次数n=1,将该两个叶子节点的值表示为十进制,得到(0,12835)和(1,13227),通过拉格朗日插值法得到先辈节点编号00对应的如下多项式f00(x):
同理可以得到:f01(x)=2669x+16853,f10(x)=4623x+15170,假设He=b37f,则,f11(x)=4100x+17251,则,f0(x)=6687x+12835,f1(x)=5135x+14146,则,fRoot(x)=6446x+12835。
其中,所述根据所述多个变形随机数和所述多个多项式,确定所述多个多项式承诺,例如可以是:多项式f00(x)对应的多项式承诺C00为:C00=f00(s)·g1=(392s+12835)·g1;其中,计算得到的C00是第一生成元g1对应的椭圆曲线上的一个点,可以表示为C00=(x00,y00)。
其中,所述多个多项式承诺哈希值例如可以包括:H(C00)、H(C01)、H(C10)、H(C11)、H(C0)、H(C1)、H(CRoot)。
其中,所述多个先辈节点编号与所述多个多项式承诺哈希值一一对应。
其中,所述根据所述多个先辈节点编号和所述多个多项式承诺哈希值确定所述多个先辈节点,包括:将所述多个多项式承诺哈希值与所述多个先辈节点编号一一匹配,得到多个第二组合;将所述多个第二组合中每个第二组合中的先辈节点编号和多项式承诺哈希值分别确定为键和值,得到多个第二键值对,单个第二键值对为对应的先辈节点的值;根据所述多个第二键值对确定所述多个先辈节点。例如,先辈节点编号00对应的多项式承诺哈希值为H(C00),先辈节点编号01对应的多项式承诺哈希值为H(C01),则先辈节点编号00与多项式承诺哈希值H(C00)组成的第二键值对为(00,H(C00)),先辈节点编号01与多项式承诺哈希值H(C01)组成的第二键值对为(01,H(C01))。
其中,所述每个先辈节点对应的先辈节点编号和多项式承诺哈希值以第二键值对的形式储存在每个先辈节点中,每个先辈节点中还储存了对应的多项式承诺。
其中,请参阅图5,图5是本申请实施例提供的另一种交易存在性证明方法的场景示意图。如图5所示,交易多叉树包括值为(000,Hs)的头节点、值为(001,33ab)的叶子节点、值为(010,56af)的叶子节点、值为(011,611c)的叶子节点、值为(100,837e)的叶子节点、值为(101,958d)的叶子节点、值为(110,a37b)的叶子节点和值为(111,He)的尾结点;值为(00,H(C00))的先辈节点、值为(01,H(C01))的先辈节点、值为(10,H(C10))的先辈节点、值为(11,H(C11))的先辈节点、值为(0,H(C0))的先辈节点、值为(1,H(C1))的先辈节点和值为(Root,H(C))的先辈节点。
可见,在本示例中,根据椭圆曲线的生成元确定多个变形随机数,并根据每个先辈节点编号和对应的至少两个叶子节点确定每个先辈节点编号对应的多项式,得到多个多项式,然后根据多个变形随机数和多个多项式确定多个多项式承诺,从而基于多个多项式承诺确定多个先辈节点,每个先辈节点中储存了对应的先辈节点编号、多项式、多项式承诺和多项式承诺哈希值,使得在生成目标交易的存在性证明时,只需要向第二服斧器传输目标交易对应的目标叶子节点和目标叶子节点的父节点,减少了生成存在性证明的数据传输量和存在性证明的数据大小,从而减少了验证交易存在性的整体数据传输量,降低了带宽消耗,提升了经济效益。
步骤S302,接收自所述第二服务器而来的生成指令。
其中,所述生成指令是所述第二服务器检测到针对需要证明存在性的目标交易的确认指令,响应所述确认指令,根据所述目标交易确定的。
步骤S303,向所述第二服务器发送目标叶子节点和目标父节点。
其中,所述目标叶子节点为所述多个叶子节点中与所述目标交易对应的叶子节点,所述目标父节点为所述目标叶子节点的父节点。
步骤S304,接收自所述第二服务器而来的目标存在性证明。
其中,所述目标存在性证明是所述第二服务器接收所述目标叶子节点和所述目标父节点,根据所述目标叶子节点和所述目标父节点确定的。
其中,所述第二服务器根据所述目标叶子节点中储存的叶子节点序号、交易哈希值和所述目标父节点中储存的多项式确定所述目标叶子节点对应的目标映射点,所述目标映射点为所述目标父节点映射在对应的椭圆曲线上的点;根据所述目标叶子节点中储存的叶子节点序号、交易哈希值和所述目标映射点确定所述目标存在性证明。
其中,假设目标交易为Tx(k,v),生成目标交易存在的存在性证明,即证明f(k)=v,只需要证明f(x)-v=0在x=k时成立即可,例如可以是,当值为(001,33ab)的叶子节点对应的交易为目标交易时,其对应的目标父节点为值为(00,H(C00))的先辈节点,获取该目标父节点中储存的多项式为f00(x)=392x+12835,记π00=h00(s)·g1,由于h(x)=a0+a1x+a2x2+…+an-1xn-1+anxn,所以:
其中,s00 i·g1是公开的,所以在不知道s00的情况下是可以得到h00(s00)·g1;第二服务器接收到值为(001,33ab)的目标叶子节点中储存的叶子节点序号为001,交易哈希值为33ab,将目标叶子节点的值转化为十进制(1,13227),其值为(00,H(C00))的目标父节点中储存的多项式为f00(x)=392x+12835,计算得到该目标叶子节点对应的目标映射点π00为:则,目标存在性证明为(1,13227,392g1)。
步骤S305,根据所述交易多叉树和所述目标存在性证明确定所述目标交易的目标存在性结果。
其中,所述目标存在性结果包括存在和不存在。
在一个可能的实施例中,所述椭圆曲线包括第一椭圆由线和第二椭圆曲线,所述第一椭圆曲线与所述第二椭圆曲线之间存在双线性映射关系,所述第一椭圆曲线的生成元为第一生成元,所述第二椭圆曲线的生成元为第二生成元,所述根据所述交易多叉树和所述目标存在性证明确定所述目标交易的目标存在性结果,包括:根据所述双线性映射关系、所述第一生成元和所述第二生成元确定所述目标存在性证明是否正确;若否,则确定所述目标存在性结果为不存在;若是,则根据所述交易多叉树确定所述目标叶子节点对应的至少一个先辈节点;针对所述至少一个先辈节点执行至少一次向上验证操作,所述向上验证操作包括如下步骤:将当前处理的先辈节点的父节点确定为第一父节点;根据所述当前处理的先辈节点中储存的先辈节点编号、多项式承诺的哈希值和所述第一父节点中储存的多项式确定所述当前处理的先辈节点的当前存在性证明;根据所述双线性映射关系、所述第一生成元和所述第二生成元确定所述当前存在性证明是否正确;若否,则确定所述目标存在性结果为不存在;若是,则执行下一次向上验证操作,直至所述至少一个先辈节点全部验证完成,确定所述目标存在性结果为存在。
其中,所述根据所述双线性映射关系、所述第一生成元和所述第二生成元确定所述目标存在性证明是否正确。具体可以是:根据目标存在性证明生成目标等式,判断目标等式是否成立。例如:根据目标存在性证明(1,13227,392g1)生成目标等式,判断目标等式是否成立,目标等式为:e(392g1,(s00-1)·g2)=e(C-13227·g1,g2);其中,e为所述双线性映射关系,g1为所述第一生成元,g2为所述第二生成元。
其中,所述根据所述当前处理的先辈节点中储存的先辈节点编号、多项式承诺的哈希值和所述第一父节点中储存的多项式确定所述当前处理的先辈节点的当前存在性证明的具体步骤同上述第二服务器确定目标存在性证明的步骤,目标叶子节点(00,33ab)对应的至少一个先辈节点对应的映射点包括:π0=6687g1,πroot=6446g1,则对应的存在性证明包括:(0,12835,6687g1),(Root,12835,6446g1)。
其中,所述根据所述双线性映射关系、所述第一生成元和所述第二生成元确定所述当前存在性证明是否正确的具体步骤同上述根据所述双线性映射关系、所述第一生成元和所述第二生成元确定所述目标存在性证明是否正确的步骤。
可见,在本示例中,根据双线性映射关系、第一生成元和第二生成元验证目标存在性证明的正确性,并在目标存在性证明正确的情况下向上验证目标叶子节点的所有先辈节点对应的存在性证明的正确性,从而保障验证目标交易的存在的准确性,在生成目标交易的存在性证明时,只需要向第二服务器传输目标交易对应的目标叶子节点和目标叶子节点的父节点,减少了生成存在性证明的数据传输量和存在性证明的数据大小,从而减少了验证交易存在性的整体数据传输量,降低了带宽消耗,提升了经济效益。
步骤S306,向所述第二服务器发送所述目标存在性结果。
可以看出,本申请中,第一服务器根据多个交易确定交易多叉树,交易多叉树包括多个叶子节点和多个叶子节点的多个先辈节点,多个叶子节点中每个叶子节点用于表征对应的交易,多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺;接收自第二服务器而来的生成指令,生成指令是第二服务器检测到针对需要证明存在性的目标交易的确认指令,响应确认指令,根据目标交易确定的;向第二服务器发送目标叶子节点和目标父节点,目标叶子节点为多个叶子节点中与目标交易对应的叶子节点,目标父节点为目标叶子节点的父节点;接收自第二服务器而来的目标存在性证明,目标存在性证明是第二服务器接收目标叶子节点和目标父节点,根据目标叶子节点和目标父节点确定的;根据交易多叉树和目标存在性证明确定目标交易的目标存在性结果;向第二服务器发送目标存在性结果。由于第一服务器根据多个交易确定交易多叉树,使得在生成目标交易的存在性证明时,只需要向第二服务器传输目标交易对应的目标叶子节点和目标叶子节点的父节点,减少了生成存在性证明的数据传输量和存在性证明的数据大小,从而减少了验证交易存在性的整体数据传输量,降低了带宽消耗,提升了经济效益。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,控制器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
与上述所示的实施例一致的,请参阅图6,图6是本申请实施例提供的一种交易存在性证明装置的功能单元组成框图,如图6所示,所述交易存在性证明装置600包括:第一处理单元601,用于根据多个交易确定交易多叉树,所述交易多叉树包括多个叶子节点和所述多个叶子节点的多个先辈节点,所述多个叶子节点中每个叶子节点用于表征对应的交易,所述多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺;第一接收单元602,用于接收自所述第二服务器而来的生成指令,所述生成指令是所述第二服务器检测到针对需要证明存在性的目标交易的确认指令,响应所述确认指令,根据所述目标交易确定的;第二处理单元603,用于向所述第二服务器发送目标叶子节点和目标父节点,所述目标叶子节点为所述多个叶子节点中与所述目标交易对应的叶子节点,所述目标父节点为所述目标叶子节点的父节点;接收自所述第二服务器而来的目标存在性证明,所述目标存在性证明是所述第二服务器接收所述目标叶子节点和所述目标父节点,根据所述目标叶子节点和所述目标父节点确定的;根据所述交易多叉树和所述目标存在性证明确定所述目标交易的目标存在性结果;以及,向所述第二服务器发送所述目标存在性结果。
在一个可能的实施例中,在所述根据多个交易确定交易多叉树方面,所述第一处理单元601具体用于:确定所述多个交易中每个交易对应的交易哈希值,得到多个交易哈希值;根据所述多个交易哈希值确定所述多个叶子节点;根据所述多个叶子节点确定所述多个先辈节点;根据所述多个叶子节点和所述多个先辈节点确定所述交易多叉树。
在一个可能的实施例中,在所述根据所述多个哈希值确定所述多个叶子节点方面,所述第一处理单元601具体用于:将所述多个交易哈希值按照大小顺序进行排列,得到第一序列;根据所述多个交易哈希值中每个交易哈希值在所述第一序列中的位置确定所述每个交易哈希值对应的叶子节点序号,得到多个叶子节点序号;根据所述多个交易哈希值和所述多个叶子节点序号确定所述多个叶子节点,所述多个叶子节点中每个叶子节点按照对应的叶子节点序号的大小排列,所述每个叶子节点中储存对应的叶子节点序号和交易哈希值;获取预设的头节点和尾结点;将所述头节点和所述尾结点分别添加到所述多个叶子节点的最前端和最末端,得到更新后的所述多个叶子节点。
在一个可能的实施例中,在所述根据所述多个叶子节点确定所述多个先辈节点方面,所述第一处理单元601具体用于:确定所述每个叶子节点对应的至少一个先辈节点编号,得到多个先辈节点编号,所述多个先辈节点编号中每个先辈节点编号对应至少两个叶子节点;根据所述每个先辈节点编号对应的至少两个叶子节点确定所述每个先辈节点编号对应的多项式承诺,得到多个多项式承诺;确定所述多个多项式承诺中每个多项式承诺对应的多项式承诺哈希值,得到多个多项式承诺哈希值;根据所述多个先辈节点编号和所述多个多项式承诺哈希值确定所述多个先辈节点,所述多个先辈节点中每个先辈节点中储存对应的先辈节点编号、多项式、多项式承诺和多项式承诺的哈希值。
在一个可能的实施例中,在所述根据所述每个先辈节点编号对应的至少两个叶子节点确定所述每个先辈节点编号对应的多项式承诺,得到多个多项式承诺方面呢,所述第一处理单元601具体用于:获取预设的椭圆曲线的生成元;根据所述椭圆曲线的生成元确定多个变形随机数,所述多个变形随机数与所述多个先辈节点编号一一对应;根据所述每个先辈节点编号对应的至少两个叶子节点确定所述每个先辈节点编号对应的多项式,得到多个多项式;根据所述多个变形随机数和所述多个多项式,确定所述多个多项式承诺。
在一个可能的实施例中,所述椭圆曲线包括第一椭圆曲线和第二椭圆曲线,所述第一椭圆曲线与所述第二椭圆曲线之间存在双线性映射关系,所述第一椭圆曲线的生成元为第一生成元,所述第二椭圆曲线的生成元为第二生成元,在所述根据所述交易多叉树和所述目标存在性证明确定所述目标交易的目标存在性结果方面,所述第二处理单元603具体用于:根据所述双线性映射关系、所述第一生成元和所述第二生成元确定所述目标存在性证明是否正确;若否,则确定所述目标存在性结果为不存在;若是,则根据所述交易多叉树确定所述目标叶子节点对应的至少一个先辈节点;针对所述至少一个先辈节点执行至少一次向上验证操作,所述向上验证操作包括如下步骤:将当前处理的先辈节点的父节点确定为第一父节点;根据所述当前处理的先辈节点中储存的先辈节点编号、多项式承诺的哈希值和所述第一父节点中储存的多项式确定所述当前处理的先辈节点的当前存在性证明;根据所述双线性映射关系、所述第一生成元和所述第二生成元确定所述当前存在性证明是否正确;若否,则确定所述目标存在性结果为不存在;若是,则执行下一次向上验证操作,直至所述至少一个先辈节点全部验证完成,确定所述目标存在性结果为存在。
可以理解的是,由于方法实施例与装置实施例为相同技术构思的不同呈现形式,因此,本申请中方法实施例部分的内容应同步适配于装置实施例部分,此处不再赘述。
在采用集成的单元的情况下,如图7所示,图7是本申请实施例提供的另一种交易存在性证明装置的功能单元组成框图。在图7中,交易存在性证明装置600包括:处理模块712和通信模块711。处理模块712用于对种交易存在性证明装置600的动作进行控制管理,例如,执行第一处理单元601,第一接收单元602和第二处理单元603的步骤,和/或用于执行本文所描述的技术的其它过程。通信模块711用于支持种交易存在性证明装置600与其他设备之间的交互。如图7所示,交易存在性证明装置600还可以包括存储模块713,存储模块713用于存储交易存在性证明装置600的程序代码和数据。
其中,处理模块712可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块711可以是收发器、RF电路或通信接口等。存储模块713可以是存储器。
其中,上述方法实施例涉及的各场景的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。上述交易存在性证明装置600均可执行上述图3所示的交易存在性证明方法。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
图8是本申请实施例提供的一种服务器的结构框图。如图8所示,第一服务器110可以包括一个或多个如下部件:处理器210、与处理器210耦合的存储器220,其中存储器220可存储有一个或多个计算机程序221,一个或多个计算机程序221可以被配置为由一个或多个处理器210执行时实现如上述各实施例描述的方法。所述第一服务器110可以是上述实施例中的第一服务器110。
处理器210可以包括一个或者多个处理核。处理器210利用各种接口和线路连接整个第一服务器110内的各个部分,通过运行或执行存储在存储器220内的指令、程序、代码集或指令集,以及调用存储在存储器220内的数据,执行第一服务器110的各种功能和处理数据。可选地,处理器210可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器210可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器210中,单独通过一块通信芯片进行实现。
存储器220可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。存储器220可用于存储指令、程序、代码、代码集或指令集。存储器220可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等。存储数据区还可以存储第一服务器110在使用中所创建的数据等。
可以理解的是,第一服务器110可包括比上述结构框图中更多或更少的结构元件,在此不进行限定。本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序/指令,所述计算机程序/指令被处理器执行时实现任一项可能的实施例所述方法的步骤。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、磁碟、光盘、易失性存储器或非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(doubledata rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)等各种可以存储程序代码的介质。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,可轻易想到变化或替换,均可作各种更动与修改,包含上述不同功能、实施步骤的组合,包含软件和硬件的实施方式,均在本发明的保护范围。

Claims (10)

1.一种交易存在性证明方法,其特征在于,应用于交易存在性证明系统中的第一服务器,所述交易存在性证明系统包括所述第一服务器和第二服务器,所述方法包括:
根据多个交易确定交易多叉树,所述交易多叉树包括多个叶子节点和所述多个叶子节点的多个先辈节点,所述多个叶子节点中每个叶子节点用于表征对应的交易,所述多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺;
接收自所述第二服务器而来的生成指令,所述生成指令是所述第二服务器检测到针对需要证明存在性的目标交易的确认指令,响应所述确认指令,根据所述目标交易确定的;
向所述第二服务器发送目标叶子节点和目标父节点,所述目标叶子节点为所述多个叶子节点中与所述目标交易对应的叶子节点,所述目标父节点为所述目标叶子节点的父节点;
接收自所述第二服务器而来的目标存在性证明,所述目标存在性证明是所述第二服务器接收所述目标叶子节点和所述目标父节点,根据所述目标叶子节点和所述目标父节点确定的;
根据所述交易多叉树和所述目标存在性证明确定所述目标交易的目标存在性结果;
向所述第二服务器发送所述目标存在性结果。
2.根据权利要求1所述的方法,其特征在于,所述根据多个交易确定交易多叉树,包括:
确定所述多个交易中每个交易对应的交易哈希值,得到多个交易哈希值;
根据所述多个交易哈希值确定所述多个叶子节点;
根据所述多个叶子节点确定所述多个先辈节点;
根据所述多个叶子节点和所述多个先辈节点确定所述交易多叉树。
3.根据权利要求2所述的方法,其特征在于,所述根据所述多个哈希值确定所述多个叶子节点,包括:
将所述多个交易哈希值按照大小顺序进行排列,得到第一序列;
根据所述多个交易哈希值中每个交易哈希值在所述第一序列中的位置确定所述每个交易哈希值对应的叶子节点序号,得到多个叶子节点序号;
根据所述多个交易哈希值和所述多个叶子节点序号确定所述多个叶子节点,所述多个叶子节点中每个叶子节点按照对应的叶子节点序号的大小排列,所述每个叶子节点中储存对应的叶子节点序号和交易哈希值;
获取预设的头节点和尾结点;
将所述头节点和所述尾结点分别添加到所述多个叶子节点的最前端和最末端,得到更新后的所述多个叶子节点。
4.根据权利要求3所述的方法,其特征在于,所述根据所述多个叶子节点确定所述多个先辈节点,包括:
确定所述每个叶子节点对应的至少一个先辈节点编号,得到多个先辈节点编号,所述多个先辈节点编号中每个先辈节点编号对应至少两个叶子节点;
根据所述每个先辈节点编号对应的至少两个叶子节点确定所述每个先辈节点编号对应的多项式承诺,得到多个多项式承诺;
确定所述多个多项式承诺中每个多项式承诺对应的多项式承诺哈希值,得到多个多项式承诺哈希值;
根据所述多个先辈节点编号和所述多个多项式承诺哈希值确定所述多个先辈节点,所述多个先辈节点中每个先辈节点中储存对应的先辈节点编号、多项式、多项式承诺和多项式承诺的哈希值。
5.根据权利要求4所述的方法,其特征在于,所述根据所述每个先辈节点编号对应的至少两个叶子节点确定所述每个先辈节点编号对应的多项式承诺,得到多个多项式承诺,包括:
获取预设的椭圆曲线的生成元;
根据所述椭圆曲线的生成元确定多个变形随机数,所述多个变形随机数与所述多个先辈节点编号一一对应;
根据所述每个先辈节点编号对应的至少两个叶子节点确定所述每个先辈节点编号对应的多项式,得到多个多项式;
根据所述多个变形随机数和所述多个多项式,确定所述多个多项式承诺。
6.根据权利要求5所述的方法,其特征在于,所述椭圆曲线包括第一椭圆曲线和第二椭圆曲线,所述第一椭圆曲线与所述第二椭圆曲线之间存在双线性映射关系,所述第一椭圆曲线的生成元为第一生成元,所述第二椭圆曲线的生成元为第二生成元,所述根据所述交易多叉树和所述目标存在性证明确定所述目标交易的目标存在性结果,包括:
根据所述双线性映射关系、所述第一生成元和所述第二生成元确定所述目标存在性证明是否正确;
若否,则确定所述目标存在性结果为不存在;
若是,则根据所述交易多叉树确定所述目标叶子节点对应的至少一个先辈节点;针对所述至少一个先辈节点执行至少一次向上验证操作,所述向上验证操作包括如下步骤:
将当前处理的先辈节点的父节点确定为第一父节点;
根据所述当前处理的先辈节点中储存的先辈节点编号、多项式承诺的哈希值和所述第一父节点中储存的多项式确定所述当前处理的先辈节点的当前存在性证明;
根据所述双线性映射关系、所述第一生成元和所述第二生成元确定所述当前存在性证明是否正确;
若否,则确定所述目标存在性结果为不存在;
若是,则执行下一次向上验证操作,直至所述至少一个先辈节点全部验证完成,确定所述目标存在性结果为存在。
7.一种交易存在性证明系统,其特征在于,所述系统包括:
第一服务器,用于根据多个交易确定交易多叉树,所述交易多叉树包括多个叶子节点和所述多个叶子节点的多个先辈节点,所述多个叶子节点中每个叶子节点用于表征对应的交易,所述多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺;
第二服务器,用于检测到针对需要证明存在性的目标交易的确认指令,响应所述确认指令,根据所述目标交易确定生成指令,并向所述第一服务器发送所述生成指令;
所述第一服务器还用于接收所述生成指令,向所述第二服务器发送目标叶子节点和目标父节点,所述目标叶子节点为所述多个叶子节点中与所述目标交易对应的叶子节点,所述目标父节点为所述目标叶子节点的父节点;
所述第二服务器还用于接收所述目标叶子节点和所述目标父节点,根据所述目标叶子节点和所述目标父节点确定所述目标交易的目标存在性证明,并向所述第一服务器发送所述目标存在性证明;
所述第一服务器还用于接收所述目标存在性证明,根据所述交易多叉树和所述目标存在性证明确定所述目标交易的目标存在性结果,向所述第二服务器发送所述目标存在性结果。
8.根据权利要求7所述的系统,在所述根据所述目标叶子节点和所述目标父节点确定所述目标交易的目标存在性证明方面,所述第二服务器具体用于:根据所述目标叶子节点中储存的叶子节点序号、交易哈希值和所述目标父节点中储存的多项式确定所述目标叶子节点对应的目标映射点,所述目标映射点为所述目标父节点映射在对应的椭圆曲线上的点;根据所述目标叶子节点中储存的叶子节点序号、交易哈希值和所述目标映射点确定所述目标存在性证明。
9.一种交易存在性证明装置,其特征在于,应用于交易存在性证明系统中的第一服务器,所述交易存在性证明系统包括所述第一服务器和第二服务器,所述装置包括:
第一处理单元,用于根据多个交易确定交易多叉树,所述交易多叉树包括多个叶子节点和所述多个叶子节点的多个先辈节点,所述多个叶子节点中每个叶子节点用于表征对应的交易,所述多个先辈节点中每个先辈节点用于表征对应的交易满足的多项式承诺;
第一接收单元,用于接收自所述第二服务器而来的生成指令,所述生成指令是所述第二服务器检测到针对需要证明存在性的目标交易的确认指令,响应所述确认指令,根据所述目标交易确定的;
第二处理单元,用于向所述第二服务器发送目标叶子节点和目标父节点,所述目标叶子节点为所述多个叶子节点中与所述目标交易对应的叶子节点,所述目标父节点为所述目标叶子节点的父节点;接收自所述第二服务器而来的目标存在性证明,所述目标存在性证明是所述第二服务器接收所述目标叶子节点和所述目标父节点,根据所述目标叶子节点和所述目标父节点确定的;根据所述交易多叉树和所述目标存在性证明确定所述目标交易的目标存在性结果;以及,向所述第二服务器发送所述目标存在性结果。
10.一种服务器,其特征在于,包括处理器、存储器以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-6任一项所述方法中的步骤的指令。
CN202410575666.3A 2024-05-10 2024-05-10 交易存在性证明方法及相关装置 Pending CN118396745A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410575666.3A CN118396745A (zh) 2024-05-10 2024-05-10 交易存在性证明方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410575666.3A CN118396745A (zh) 2024-05-10 2024-05-10 交易存在性证明方法及相关装置

Publications (1)

Publication Number Publication Date
CN118396745A true CN118396745A (zh) 2024-07-26

Family

ID=92004813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410575666.3A Pending CN118396745A (zh) 2024-05-10 2024-05-10 交易存在性证明方法及相关装置

Country Status (1)

Country Link
CN (1) CN118396745A (zh)

Similar Documents

Publication Publication Date Title
CN110800252B (zh) 防止安全多方计算中错误表示输入数据的方法和系统
CN108848148B (zh) 基于区块链的交易信息确认方法及装置
US20210377048A1 (en) Digital Signature Method, Signature Information Verification Method, Related Apparatus and Electronic Device
AU2022200282B2 (en) Digital signature method, signature information verification method, related apparatus and electronic device
CN111835526B (zh) 一种生成匿名凭证的方法及系统
EP3732822B1 (en) Whitebox computation of keyed message authentication codes
JP7312293B2 (ja) デジタル署名方法、署名情報の検証方法、関連装置及び電子機器
CN101877639A (zh) 信息处理设备、密钥更新方法和程序
CN110517029A (zh) 区块链跨链交易验证的方法、装置、设备及区块链系统
JP4189828B1 (ja) ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラム
KR20200046481A (ko) 난수 생성기, 이를 포함하는 암호화 장치 및 이의 동작 방법
CN117118637B (zh) 数据处理方法、装置、设备及计算机可读存储介质
US20230198777A1 (en) Authenticating a public key of a first person
CN111262707B (zh) 数字签名方法及验证方法、设备、存储介质
TW201926153A (zh) 驗證問卷的產生方法和裝置
CN113255011A (zh) 区块链状态映射方法、系统、计算机设备及存储介质
CN112600677A (zh) 一种证照验证方法及系统
CN114614992B (zh) 签名值输出及验证方法、装置、计算机设备、存储介质
CN118396745A (zh) 交易存在性证明方法及相关装置
US11616994B2 (en) Embedding information in elliptic curve base point
CN107320959A (zh) 游戏角色标识信息生成方法、装置、介质和电子设备
CN112385181B (zh) 用于证明公钥的可靠性的装置、方法及程序
CN117278213B (zh) 基于多项式承诺的方法、电子设备及可读存储介质
JP5168649B2 (ja) ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラム
CN116975935B (zh) 数据比较方法、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication