零知识协议参数初始化方法、装置及存储介质制造方法及图纸

技术编号:25995506 阅读:35 留言:0更新日期:2020-10-20 19:05
本发明专利技术涉及一种区块链技术,揭露了一种零知识协议参数初始化方法,该方法包括:获取待选择的第三方平台信息,设置参与进行参数初始化的第三方数量n并选择相应数量的参与第三方;每个所述参与第三方分别生成一个随机数a

【技术实现步骤摘要】
零知识协议参数初始化方法、装置及存储介质
本专利技术涉及区块链
,尤其涉及一种零知识协议参数初始化方法、装置及计算机可读存储介质。
技术介绍
零知识证明(Zero—KnowledgeProof),是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。目前零知识算法中有一个明显弱点,那就是需要一个可信第三方来完成参数初始化。初始化过程中第三方需要创建一些保密数据。由于这些保密数据可以用来对零知识算法进行攻击,所以可信第三方需要在完成初始化后将这些保密数据丢弃。然而,该方式最大的问题是无法证明可信第三方是不是真的丢弃了这些保密数据,还是偷偷留下这些保密数据,以便未来对该零知识协议进行攻击。这个问题在很多著名的零知识算法中都普遍存在,例如3D零知识(3DZKP)和zkSNARKs算法。因此,如何在确保第三方创建的保密数据的安全性的前提下,完成零知识协议的参数初始化,已经成为一个亟待解决的技术问题。
技术实现思路
鉴于以上内容,本专利技术提供一种零知识协议参数初始化方法、装置及计算机可读存储介质,其主要目的在于在确保第三方创建的保密数据的安全性的前提下,完成零知识协议的参数初始化。为实现上述目的,本专利技术提供一种零知识协议参数初始化方法,应用于支持多方跨平台交易的交易处理系统,所述交易处理系统包括公共数据存储系统和多个第三方平台,该方法包括:获取待选择的第三方平台信息,设置参与进行参数初始化的第三方数量n并选择相应数量的参与第三方;每个所述参与第三方分别生成一个随机数at,并根据预先设置的基点g和每个所述随机数协同设置所述零知识协议的初始化参数预先设置的基点g和;及在通过多方协同设置得到所述初始化参数后,将所述初始化参数上传至所述公共数据存储系统。可选地,所述每个所述参与第三方分别生成一个随机数,并根据预先设置的基点g和每个所述随机数协同设置所述零知识协议的初始化参数的步骤包括:第一参与第三方t1生成第一随机数a1,并根据预先设置的基点g和所述第一随机数a1,得到基点h和基点i的初始化参数的第一阶段值h_0和i_0;第二参与第三方t2生成第二随机数a2,并根据所述第一阶段值h_0和i_0及所述第二随机数a2,得到基点h和基点i的初始化参数的第二阶段值h_1和i_1;按照上述步骤对所选择的n个参与第三方中剩下的参与第三方进行轮询,每个参与第三方轮流生成一个随机数,并根据所述随机数对上一个参与第三方设置的初始化参数的阶段值进行调整,直至所述n个参与第三方全部参与完毕,得到最终生成的基点h和基点i的初始化参数。可选地,所述基点g为公共参数。可选地,该方法在得到所述初始化参数后还包括:每个所述参与第三方丢弃自己生成的所述随机数。可选地,所述第一阶段值h_0=g^a1,i_0=g^a1a1。可选地,所述第二阶段值h_1=h_0^a2=g^a1a2,i_1=i_0^a2a2=g^a1a1a2a2。可选地,每个所述参与第三方生成的随机数at为所述参与第三方的保密数据,所述n个参与第三方一起提供基点h和基点i的完整保密数据,其中,基点h的完整保密数据基点i的完整保密数据可选地,最终生成的基点h的初始化参数h_f=g^μ,基点i的初始化参数i_f=g^v。此外,为实现上述目的,本专利技术还提供一种零知识协议参数初始化装置,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的零知识协议参数初始化系统,所述零知识协议参数初始化系统被所述处理器执行时实现如上述的零知识协议参数初始化方法的步骤。进一步地,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有零知识协议参数初始化系统,所述零知识协议参数初始化系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述的零知识协议参数初始化方法的步骤。本专利技术提出的零知识协议参数初始化方法、装置及计算机可读存储介质,可以通过多方参与轮询的方式由多个可信第三方协同完成零知识协议的参数初始化过程。在这个过程中,没有任何一个参与第三方拥有参数初始化所需的完整保密数据,完整保密数据由多个参与第三方轮流拼凑而成。每个参与第三方都会生成保密数据的一部分并用该保密数据来调整初始化参数,然后公开调整后的初始化参数,所有参与第三方都不需要公开自己的保密数据。本专利技术保障了所述完整保密数据的安全性,有效防止了第三方利用保密数据来攻击所述零知识协议。附图说明图1为本专利技术零知识协议参数初始化方法较佳实施例的流程图;图2为图1中步骤S2的细化流程图;图3为本专利技术零知识协议参数初始化装置较佳实施例的示意图;图4为本专利技术零知识协议参数初始化系统较佳实施例的程序模块图;本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在本专利技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本专利技术要求的保护范围之内。在对本专利技术方案进行说明之前,对用到的名词、符号等进行说明。名词定义:独立数据存储系统:指的是区块链网络、分布式数据库、云端服务器、分布式系统等第三方平台。公共数据存储系统:可以是云端存储也可以是区块链网络。所述公共数据存储系统主要用于存储公共参数(例如基点),也可以存储与零知识证明协议有关的参数等。在可以使用零知识证明协议之前,需要先由一个或多个可信第三方创建基点g、h、i并上传至公共数据存储系统。其中,基点g是公共参数,基点h和基点i是由一个可信第三方设置或多个可信第三方自己的平台通过网络(如互联网、区块链网络)协同设置并上传至所述公共数据存储系统中的。符号定义:h_f,i_f:基点h和基点i的初始化参数;n:参与第三方数量;t:参与第三方标号;at:参与第三方t生成本文档来自技高网...

【技术保护点】
1.一种零知识协议参数初始化方法,应用于支持多方跨平台交易的交易处理系统,所述交易处理系统包括公共数据存储系统和多个第三方平台,其特征在于,该方法包括:/n获取待选择的第三方平台信息,设置参与进行参数初始化的第三方数量n并选择相应数量的参与第三方;/n每个所述参与第三方分别生成一个随机数a

【技术特征摘要】
1.一种零知识协议参数初始化方法,应用于支持多方跨平台交易的交易处理系统,所述交易处理系统包括公共数据存储系统和多个第三方平台,其特征在于,该方法包括:
获取待选择的第三方平台信息,设置参与进行参数初始化的第三方数量n并选择相应数量的参与第三方;
每个所述参与第三方分别生成一个随机数at,并根据预先设置的基点g和每个所述随机数协同设置所述零知识协议的初始化参数,所述初始化参数包括基点h和基点i的初始化参数;及
在通过多方协同设置得到所述初始化参数后,将所述初始化参数上传至所述公共数据存储系统。


2.根据权利要求1所述的零知识协议参数初始化方法,其特征在于,所述每个所述参与第三方分别生成一个随机数,并根据预先设置的基点g和每个所述随机数协同设置所述零知识协议的初始化参数的步骤包括:
第一参与第三方t1生成第一随机数a1,并根据预先设置的基点g和所述第一随机数a1,得到基点h和基点i的初始化参数的第一阶段值h_0和i_0;
第二参与第三方t2生成第二随机数a2,并根据所述第一阶段值h_0和i_0及所述第二随机数a2,得到基点h和基点i的初始化参数的第二阶段值h_1和i_1;
按照上述步骤对所选择的n个参与第三方中剩下的参与第三方进行轮询,每个参与第三方轮流生成一个随机数,并根据所述随机数对上一个参与第三方设置的初始化参数的阶段值进行调整,直至所述n个参与第三方全部参与完毕,得到最终生成的基点h和基点i的初始化参数。


3.根据权利要求1或2所述的零知识协议参数初始化方法,其特征在于,所述基点g为公共参数。


4....

【专利技术属性】
技术研发人员:陆陈一帆贾牧张鹏程谢丹力
申请(专利权)人:深圳壹账通智能科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1