CN115801288B - 一种基于区块链和零知识证明的验证方法、系统及设备 - Google Patents
一种基于区块链和零知识证明的验证方法、系统及设备 Download PDFInfo
- Publication number
- CN115801288B CN115801288B CN202310033045.8A CN202310033045A CN115801288B CN 115801288 B CN115801288 B CN 115801288B CN 202310033045 A CN202310033045 A CN 202310033045A CN 115801288 B CN115801288 B CN 115801288B
- Authority
- CN
- China
- Prior art keywords
- computing
- client
- zero
- circuit
- knowledge proof
- 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.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004364 calculation method Methods 0.000 claims abstract description 91
- 238000005457 optimization Methods 0.000 claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 16
- 230000009977 dual effect Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 4
- 238000010200 validation analysis Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 12
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012946 outsourcing Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于区块链和零知识证明的验证方法、系统及设备,客户端将基于联盟链的优化模型的验收条件转换成多项式条件并进一步转换成零知识证明电路,从而结合零知识证明电路发布计算任务;计算端根据客户端发布的计算任务建立客户端与计算端之间的第一私密通道,计算端即可通过该通道获取客户端的计算数据,并在计算得到计算结果及其证明之后上链;计算端对应节点对上链的计算结果进行验证并建立第二私密通道将该计算结果发送到客户端。以此方式能够实现优化模型的可验证计算,基于区块链技术保证优化模型计算结果的可溯源性和不可篡改性,基于零知识证明技术保证验证过程中数据的隐私性,并提高计算结果的验证效率。
Description
技术领域
本发明涉及可验证计算领域,特别涉及一种基于区块链和零知识证明的验证方法、系统及设备。
背景技术
在工业生产制造的过程中,企业常常需要求解大规模复杂优化模型以获得更好的生产经营方案,但是这些复杂模型的求解通常会耗费大量的算力和时间。由于高性能计算的硬件成本较高,企业自己搭建高性能计算平台的成本较大,因而将计算任务外包给一些大型算力服务提供平台是一个很好的选择。但这种计算外包的方式存在计算结果难以验证的问题:为了保障自身利益,企业需要对计算平台返还的结果进行验证,但对复杂模型的验证是非常耗时的。而另一方面,出于自身利益的考虑,计算平台通常不会公开自己的计算过程,并且在收到报酬之前可能不会将完整结果提供给用户,这进一步加大了结果验证的难度。此外,由于生产制造环节涉及产业链上下游,大规模复杂优化模型求解得到的结果往往是多家企业的生产制造过程的共同决策来源,因此模型的结果的验证难度的存在,也会阻碍制造业企业之间安全的数据共享。
目前区块链以及零知识证明的验证主要用于隐私数据共享,即将自己的隐私数据共享给他人使用,且目前的零知识证明通常是用于对输入的数据生成证明,将优化模型外包给计算平台时,计算结果难以验证。
发明内容
本发明所要解决的技术问题是:提供一种基于区块链和零知识证明的验证方法、系统及设备,能够进行优化模型的可验证计算。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于区块链和零知识证明的验证方法,包括步骤:
客户端将基于联盟链的优化模型的验收条件转换成多项式条件,并将所述多项式条件转换成零知识证明电路,结合所述零知识证明电路使用客户端对应的第一联盟链节点发布计算任务;
计算端通过对应的第二联盟链节点接收客户端发布的计算任务,并建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端的计算数据,生成计算结果及其证明;
计算端将生成的计算结果及其证明发送至对应的第二联盟链节点,所述第二联盟链节点对所述计算结果进行验证并建立第二私密通道将所述计算结果发送至客户端。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种基于区块链和零知识证明的验证系统,包括客户端和计算端,所述客户端包括第一存储器、第一处理器及存储在所述第一存储器上并可在所述第一处理器上运行的第一计算机程序,所述计算端包括第二存储器、第二处理器及存储在所述第二存储器上并可在所述第二处理器上运行的第二计算机程序;
所述第一处理器执行所述第一计算机程序时实现以下步骤:
将基于联盟链的优化模型的验收条件转换成多项式条件,并将所述多项式条件转换成零知识证明电路,结合所述零知识证明电路使用客户端对应的第一联盟链节点发布计算任务;
所述第二处理器执行所述第二计算机程序时实现以下步骤:
通过对应的第二联盟链节点接收客户端发布的计算任务,并建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端的计算数据,生成计算结果及其证明;
将生成的计算结果及其证明发送至对应的第二联盟链节点,所述第二联盟链节点对所述计算结果进行验证并建立第二私密通道将所述计算结果发送至客户端。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的一种基于区块链和零知识证明的验证方法。
本发明的有益效果在于:客户端将基于联盟链的优化模型的验收条件转换成多项式条件并进一步转换成零知识证明电路,从而结合零知识证明电路发布计算任务;计算端根据客户端发布的计算任务建立客户端与计算端之间的第一私密通道,计算端即可通过该通道获取客户端的计算数据,并在计算得到计算结果及其证明之后上链;计算端对应节点对上链的计算结果进行验证并建立第二私密通道将该计算结果发送到客户端。以此方式能够实现优化模型的可验证计算,基于区块链技术保证优化模型计算结果的可溯源性和不可篡改性,基于零知识证明技术保证验证过程中数据的隐私性,并提高计算结果的验证效率。
附图说明
图1为本发明实施例的一种基于区块链和零知识证明的验证方法的流程图;
图2为本发明实施例的一种基于区块链和零知识证明的验证系统的示意图;
图3为本发明零知识证明电路生成流程图;
标号说明:
1、一种基于区块链和零知识证明的验证系统;2、客户端;3、计算端。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种基于区块链和零知识证明的验证方法,包括步骤:
客户端将基于联盟链的优化模型的验收条件转换成多项式条件,并将所述多项式条件转换成零知识证明电路,结合所述零知识证明电路使用客户端对应的第一联盟链节点发布计算任务;
计算端通过对应的第二联盟链节点接收客户端发布的计算任务,并建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端的计算数据,生成计算结果及其证明;
计算端将生成的计算结果及其证明发送至对应的第二联盟链节点,所述第二联盟链节点对所述计算结果进行验证并建立第二私密通道将所述计算结果发送至客户端。
从上述描述可知,本发明的有益效果在于:客户端将基于联盟链的优化模型的验收条件转换成多项式条件并进一步转换成零知识证明电路,从而结合零知识证明电路发布计算任务;计算端根据客户端发布的计算任务建立客户端与计算端之间的第一私密通道,计算端即可通过该通道获取客户端的计算数据,并在计算得到计算结果及其证明之后上链;计算端对应节点对上链的计算结果进行验证并建立第二私密通道将该计算结果发送到客户端。以此方式能够实现优化模型的可验证计算,基于区块链技术保证优化模型计算结果的可溯源性和不可篡改性,基于零知识证明技术保证验证过程中数据的隐私性,并提高计算结果的验证效率。
进一步地,客户端将基于联盟链的优化模型的验收条件转换成多项式条件,并将所述多项式条件转换成零知识证明电路包括:
客户端将所述优化模型的验收条件转换成多项式条件,根据所述多项式条件得到线性规划或者整数规划或者混合整数线性规划的零知识证明电路。
由上述描述可知,可根据不同的验收条件生成不同类型的零知识证明电路,提供零知识证明电路建立的灵活性。
进一步地,结合所述零知识证明电路使用客户端对应的第一联盟链节点发布计算任务包括:
客户端为所述零知识证明电路初始化生成证明密钥和验证密钥,使用第一智能合约将客户端唯一标识、客户端所需发布的计算任务与报酬、所述零知识证明电路及其证明密钥和验证密钥上传至对应的第一联盟链节点中,所述第一智能合约为任务发布合约。
由上述描述可知,客户端为零知识证明电路初始化生成证明密钥和验证密钥,便于后续的验证使用,且将客户端自身信息、计算任务信息以及零知识证明电路均上传至区块链中,便于后续透明可靠地进行计算。
进一步地,计算端通过对应的第二联盟链节点接收客户端发布的计算任务,并建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端的计算数据,生成计算结果及其证明包括:
计算端通过对应的第二联盟链节点使用第二智能合约接收所述计算任务,所述第二智能合约为接收任务合约;
计算端建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端发送的所述优化模型以及所需的计算数据,并计算生成计算结果;
计算端根据所述计算任务中的零知识证明电路、证明密钥以及所述计算结果及其哈希值,生成所述计算结果的证明。
由上述描述可知,计算端得到计算任务之后根据第一私密通道获取对应的计算数据,并计算生成计算结果,之后生成计算结果的证明,保证计算过程透明可靠。
进一步地,所述第二联盟链节点对所述计算结果进行验证并建立第二私密通道将所述计算结果发送至客户端包括:
所述第二联盟链节点通过第三智能合约使用所述验证密钥验证计算结果的证明,所述第三智能合约为结果验证合约;
所述第二联盟链节点中若验证通过,则与客户端建立第二私密通道,并通过所述第二私密通道将所述计算结果及其哈希值发送至客户端,以使得客户端对所述计算结果的哈希值进行验证。
由上述描述可知,区块链节点中将验证通过的计算结果发送至对应的客户端,从而在客户端中进行计算结果的验证,以便于客户端验证无误后并关闭计算任务。
进一步地,所述客户端对所述计算结果的哈希值进行验证之后包括:
若所述客户端需要将所述计算结果共享至其他客户端,则通过第四智能合约建立所述客户端与其他客户端之间的第三私密通道,客户端根据所述第三私密通道将所述计算结果发送至其他客户端。
由上述描述可知,将客户端计算任务的计算结果与其他客户端共享,提高了计算结果的透明可靠性。
进一步地,根据所述多项式条件得到线性规划或者整数规划的零知识证明电路包括:
若所述优化模型的解为离散变量解,则得到整数规划的零知识证明电路;
若所述优化模型的解为连续变量解,则计算所述优化模型对应原始问题的对偶问题,所述原始问题与所述对偶问题的解满足所述多项式条件,得到线性规划的零知识证明电路。
进一步地,根据所述多项式条件得到混合整数线性规划的零知识证明电路包括:
若所述优化模型的解中包含离散变量解和连续变量解,则将根据所述离散变量解得到整数规划的第一零知识证明电路,根据所述连续变量解得到线性规划的第二零知识证明电路,结合第一零知识证明电路和第二零知识证明电路得到混合整数线性规划的零知识证明电路。
由上述描述可知,如当待解的问题为线性规划或整数规划问题时,只需要生成线性规划或整数规划的电路即可。而对于线性规划与整数规划混合的问题,电路生成的过程中问题被拆解成两部分,分别使用线性规划与整数规划的模块生成约束,以此方式提高零知识证明电路生成的灵活性。
请参照图2,本发明另一实施例提供了一种基于区块链和零知识证明的验证系统,包括客户端和计算端,所述客户端包括第一存储器、第一处理器及存储在所述第一存储器上并可在所述第一处理器上运行的第一计算机程序,所述计算端包括第二存储器、第二处理器及存储在所述第二存储器上并可在所述第二处理器上运行的第二计算机程序;
所述第一处理器执行所述第一计算机程序时实现以下步骤:
将基于联盟链的优化模型的验收条件转换成多项式条件,并将所述多项式条件转换成零知识证明电路,结合所述零知识证明电路使用客户端对应的第一联盟链节点发布计算任务;
所述第二处理器执行所述第二计算机程序时实现以下步骤:
通过对应的第二联盟链节点接收客户端发布的计算任务,并建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端的计算数据,生成计算结果及其证明;
将生成的计算结果及其证明发送至对应的第二联盟链节点,所述第二联盟链节点对所述计算结果进行验证并建立第二私密通道将所述计算结果发送至客户端。
从上述描述可知,客户端将基于联盟链的优化模型的验收条件转换成多项式条件并进一步转换成零知识证明电路,从而结合零知识证明电路发布计算任务;计算端根据客户端发布的计算任务建立客户端与计算端之间的第一私密通道,计算端即可通过该通道获取客户端的计算数据,并在计算得到计算结果及其证明之后上链;计算端对应节点对上链的计算结果进行验证并建立第二私密通道将该计算结果发送到客户端。以此方式能够实现优化模型的可验证计算,基于区块链技术保证优化模型计算结果的可溯源性和不可篡改性,基于零知识证明技术保证验证过程中数据的隐私性,并提高计算结果的验证效率。
本发明又一实施例提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的一种基于区块链和零知识证明的验证方法。
本发明上述的一种基于区块链和零知识证明的验证方法、系统及设备,适用于将优化模型外包给计算平台时,对计算结果进行验证,以下通过具体的实施方式进行说明:
实施例一
请参照图1,一种基于区块链和零知识证明的验证方法,包括步骤:
S1、客户端将基于联盟链的优化模型的验收条件转换成多项式条件,并将所述多项式条件转换成零知识证明电路,结合所述零知识证明电路使用客户端对应的第一联盟链节点发布计算任务。
其中,先建立多个客户端和计算端共同管理的链,以联盟使得每个客户端和计算端对应运行所述区块链中的一个或多区块链节点。本实施例中,客户端即为有计算需求的企业,计算端即为计算服务提供商。
具体的,联盟链是由多个企业,包括计算需求企业和计算服务提供商,共同参与管理的区块链;每个企业都运行着一个或多个区块链节点,网络中的所有节点都经过实名认证,并且区块链账本数据只允许参与网络的节点读写。使用联盟链能在保证去中心化的同时保证可控性和隐私安全,同时还能支持智能合约,其中,智能合约是一段运行在区块链上的代码,可以通过区块链节点调用执行,执行结果将会记录在区块链账本数据中,也可以通过某个事件触发自动执行;智能合约的使用能减少人为干预。
建立了优化模型之后,客户端将所述优化模型的验收条件转换成多项式条件,根据所述多项式条件得到线性规划或者整数规划或者混合整数线性规划的零知识证明电路;
客户端为所述零知识证明电路初始化生成证明密钥和验证密钥,使用任务发布合约将客户端唯一标识、客户端所需发布的计算任务与报酬、所述零知识证明电路及其证明密钥和验证密钥上传至区块链中。
具体的,PK,VK=SetUp(零知识证明电路),式中,SetUp表示零知识证明算法初始化的方法,该方法能够为某一零知识证明电路初始化生成一对密钥,包括证明密钥(PK)和验证密钥(VK)。其中,证明密钥(PK):用于生成零知识证明的证明,验证密钥(VK):用于验证零知识证明的证明。
企业使用区块链节点调用任务发布合约发布一个计算任务,将任务相关信息上传到区块链,具体包括:客户端ID即企业ID、计算任务摘要(计算任务具体描述信息)、计算报酬(完成计算可获得的报酬)、零知识证明电路(用于验收计算结果),零知识证明的证明密钥(PK)和验证密钥(VK)。
其中,零知识证明电路是由多种门组成的用于描述多项式条件的逻辑电路;任务发布合约为用于发布计算任务并将任务相关信息存储在区块链账本的智能合约。
S2、计算端通过对应的第二联盟链节点接收客户端发布的计算任务,并建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端的计算数据,生成计算结果及其证明。
其中,区块链接收到客户端发布的计算任务之后,计算端执行以下步骤:
S21、计算端通过对应的第二联盟链节点使用第二智能合约接收所述计算任务,所述第二智能合约为接收任务合约。
具体的,计算服务提供商通过接收任务合约接收任务。计算服务提供商使用区块链节点调用接收任务合约接收一个计算任务,下载任务相关信息(零知识证明电路、证明密钥),并将计算服务商ID记录在区块链中该任务的计算名单中。其中,接收任务合约是用于接收和下载计算任务的智能合约。
S22、计算端建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端发送的所述优化模型以及所需的计算数据,并计算生成计算结果。
具体的,当有计算服务提供商接收任务时,自动触发数据传输合约在计算服务提供商和企业之间建立一条第一私密通道,即私密数据传输通道。企业通过私密数据通道将待求解的优化模型及所需的计算数据发送给计算服务提供商。
其中,数据传输合约是用于数据传输的智能合约,当发生接受任务或者零知识证明验证通过时自动触发,在计算服务提供商和企业之间建立一条私密数据传输通道,该通道对外不可见,能极大的保证数据安全传输。
S23、计算端根据所述计算任务中的零知识证明电路、证明密钥以及所述计算结果及其哈希值,生成所述计算结果的证明。
具体的,计算端得到数据和模型后,在本地服务器完成计算任务得到一个计算结果。使用零知识证明电路、证明密钥(PK)、计算结果和计算结果哈希H生成一个证明π,该证明表示其计算结果符合任务验收预设的条件。计算节点将证明π和计算结果的哈希H提交到共享平台供其他节点验证。
其中,计算结果哈希H=Hash(计算结果),Hash为一哈希算法接口;
证明π=ProofGen(零知识证明电路,PK,计算结果,H)。ProofGen为一零知识证明算法生成证明的接口,与零知识证明电路所用算法相对应。将计算结果传入是为了验证计算结果符合预设条件,同时哈希H是由计算结果生成,生成的证明π不包含任何计算结果的信息。
S3、计算端将生成的计算结果及其证明发送至对应的第二联盟链节点,所述第二联盟链节点对所述计算结果进行验证并建立第二私密通道将所述计算结果发送至客户端。
S31、通过第三智能合约使用所述验证密钥验证计算结果的证明,所述第三智能合约为结果验证合约。
具体的,计算服务提供商通过结果提交合约将相关结果提交到区块链并由结果验证合约自动完成结果验证,如果验证通过,企业用户将支付相应的费用并从计算节点获得完成计算结果。当计算节点提交计算结果哈希H和证明π后,结果验证合约将使用验证密钥VK验证证明π。
其中,结果提交合约是用于提交结果的合约,将提交的结果保存在区块链账本中,具体包括:提交者ID、计算结果哈希H、证明π;
零知识证明验证具体为:
Verify(零知识证明电路,π,VK),式中,Verify表示零知识证明算法验证证明的函数,与零知识证明电路所用算法相对应,函数返回证明是否正确。
S32、若验证通过,则与客户端建立第二私密通道,并通过所述第二私密通道将所述计算结果及其哈希值发送至客户端,以使得客户端对所述计算结果的哈希值进行验证。
具体的,如果验证通过,则在计算节点和企业用户之间建立一条第二私密通道,即私密通信通道,由计算节点将完整结果发送给企业用户,企业用户通过结果哈希H验证计算结果完整无误后并关闭计算任务。
本实施例中,若所述客户端需要将所述计算结果共享至其他客户端,则通过第四智能合约建立所述客户端与其他客户端之间的第三私密通道,客户端根据所述第三私密通道将所述计算结果发送至其他客户端。
具体的,当企业需要将其计算结果共享给其他合作企业时,可以通过结果共享合约生成一个第三私密通道,即私密数据传输通道,将完整的计算结果传输给其合作企业。其合作企业可以通过区块链中记录的证明π和结果哈希H验证结果的完整性。
其中,结果共享合约是用于结果共享的合约,在共享双方之间建立一条私密数据传输通道。
因此,本实施例提供了一个透明可靠的计算平台,将闲置的算力和需求连接起来。基于区块链技术能够保证模型计算结果的可溯源性和不可篡改性;基于零知识证明技术能够保证了验证过程中数据的隐私性,同时还能提高验证效率。
实施例二
本实施例与实施例一的不同之处在于,进一步限定了零知识证明电路的生成方法,具体的:
若所述优化模型的解为离散变量解,则得到整数规划的零知识证明电路;
若所述优化模型的解为连续变量解,则计算所述优化模型对应原始问题的对偶问题,所述原始问题与所述对偶问题的解满足所述多项式条件,得到线性规划的零知识证明电路。
若所述优化模型的解中包含离散变量解和连续变量解,则将根据所述离散变量解得到整数规划的第一零知识证明电路,根据所述连续变量解得到线性规划的第二零知识证明电路,结合第一零知识证明电路和第二零知识证明电路得到混合整数线性规划的零知识证明电路。
请参照图3,在本实施例中,线性规划(LP)问题零知识证明电路生成方法包括步骤:
11、原始问题的解应当满足原始问题中变量的条件约束描述成多项式约束;
12、求原始问题的对偶问题;
13、原始问题与对偶问题的解应当满足一定的多项式关系约束;
14、将所有多项式约束通过零知识证明算法转化成零知识证明电路。
具体的,现需要对原始问题P生成一个用于验证解的最优性的零知识证明电路:
有线性规划问题,原始问题P如下:
Maximize Ax
s.t. Ax<=b
x>=0;
Maximize x1+3x2
s.t. -x1+x2<=2
x1+2x2<=4
x1,x2>=0;
则根据对偶定理可以得到原始问题的对偶问题D:
Minimize bTy
s.t. ATy>=cT
y>=0;
Minimize 2y1+4y2
s.t. -y1+y2>=1
y1+y2>=3
y1,y2>=0;
生成零知识证明的步骤如下(对于一个解xsol):
问题的解满足原始问题的条件约束,即Axsol<=b和xsol>=0;
根据对偶定理求得对偶问题D;
求解对偶问题得到解ysol,则解应当满足约束ysol>=0和ATy=cT;
原始问题与对偶问题应当满足约束cxsol=bysol;
将以上等式和不等式约束通过调用零知识证明算法生成零知识证明电路。
整数规划(IP)问题零知识证明电路生成方法包括步骤:
21、将解的约束表示为多项式条件,如解的范围是多少,应该满足某个等式条件等;
22、将所有多项式条件通过零知识证明算法转化成零知识证明电路。
具体的,对整数规划(IP)问题生成零知识证明电路:
有整数规划问题如下:
Maximize Ax
s.t. Ax<=b
x∈Z;
则解xsol应当满足约束Axsol<=b;
将以上所有等式和不等式约束通过调用零知识证明算法生成零知识证明电路。
混合整数线性规划(MILP)问题零知识证明电路生成方法包括步骤:
31、将MILP问题中的离散变量的解所需满足的约束表示为多项式条件,方法同2中IP问题生成零知识证明电路;
32、将离散变量的解带入MILP问题得到一个LP问题,则MILP问题中连续变量的解即为该LP问题的解;
33、将连续变量的解即LP问题的解所需满足的约束表示为多项式约束,方法同1中LP问题生成零知识证明电路;
34、将所有多项式约束通过零知识证明算法转化成零知识证明电路。
具体的,有混合整数线性规划(MILP)问题如下:
Maximize Ax
s.t. Ax<=b
x>=0
Some x are integers;
Maximize x1+x2+x3
s.t. A11x1+A12x2+A13<=b1
A21x1+A22x2+A23x3<=b2
A31x1+A32x2+A33x3<=b3
A41x1+A43x3<=b4
x2 is an integer;
生成零知识证明的步骤如下:假设原问题的解为xsol=[m1,m2,m3];
判断离散解满足约束,即原始问题中包含离散变量的约束,即原始问题中的前三条约束。
将离散解代入原MILP问题可以得到一个LP问题,如下:
Minimize x1+x3
s.t. A11x1+A13<=b1-A12m2
A21x1+A23x3<=b2-A22m2
A31x1+A33x3<=b3-A32m2
A41x1+A43x3<=b4;
对于生成的LP问题和连续变量的解[m1,m3]可以通过LP问题生成零知识证明电路过程生成多项式约束;
将所有多项式约束通过调用零知识证明算法生成零知识证明电路。
实施例三
请参照图2,一种基于区块链和零知识证明的验证系统1,包括客户端2和计算端3,所述客户端2包括第一存储器、第一处理器及存储在所述第一存储器上并可在所述第一处理器上运行的第一计算机程序,所述计算端3包括第二存储器、第二处理器及存储在所述第二存储器上并可在所述第二处理器上运行的第二计算机程序;
所述第一处理器执行所述第一计算机程序时实现以下步骤:
将基于联盟链的优化模型的验收条件转换成多项式条件,并将所述多项式条件转换成零知识证明电路,结合所述零知识证明电路使用客户端对应的第一联盟链节点发布计算任务;以及实施例一或二中客户端实现的各个步骤;
所述第二处理器执行所述第二计算机程序时实现以下步骤:
通过对应的第二联盟链节点接收客户端发布的计算任务,并建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端的计算数据,生成计算结果及其证明;
将生成的计算结果及其证明发送至对应的第二联盟链节点,所述第二联盟链节点对所述计算结果进行验证并建立第二私密通道将所述计算结果发送至客户端;以及实施例一或二中计算端实现的各个步骤。
实施例四
一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现实施例一或二中的一种基于区块链和零知识证明的验证方法的步骤。
综上所述,本发明提供的一种基于区块链和零知识证明的验证方法、系统及设备,客户端将基于联盟链的优化模型的验收条件转换成多项式条件并进一步转换成零知识证明电路,从而结合零知识证明电路发布计算任务;计算端根据客户端发布的计算任务建立客户端与计算端之间的第一私密通道,计算端即可通过该通道获取客户端的计算数据,并在计算得到计算结果及其证明之后上链;计算端对应节点对上链的计算结果进行验证并建立第二私密通道将该计算结果发送到客户端。以此方式能够实现优化模型的可验证计算,基于区块链技术保证优化模型计算结果的可溯源性和不可篡改性,基于零知识证明技术保证验证过程中数据的隐私性,并提高计算结果的验证效率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种基于区块链和零知识证明的验证方法,其特征在于,包括步骤:
客户端将基于联盟链的优化模型的验收条件转换成多项式条件,并将所述多项式条件转换成零知识证明电路,结合所述零知识证明电路使用客户端对应的第一联盟链节点发布计算任务;
计算端通过对应的第二联盟链节点接收客户端发布的计算任务,并建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端的计算数据,生成计算结果及其证明;
计算端将生成的计算结果及其证明发送至对应的第二联盟链节点,所述第二联盟链节点对所述计算结果进行验证并建立第二私密通道将所述计算结果发送至客户端;
客户端将基于联盟链的优化模型的验收条件转换成多项式条件,并将所述多项式条件转换成零知识证明电路包括:
客户端将所述优化模型的验收条件转换成多项式条件,根据所述多项式条件得到线性规划或者整数规划或者混合整数线性规划的零知识证明电路;
根据所述多项式条件得到线性规划或者整数规划的零知识证明电路包括:
若所述优化模型的解为离散变量解,则得到整数规划的零知识证明电路;
若所述优化模型的解为连续变量解,则计算所述优化模型对应原始问题的对偶问题,所述原始问题与所述对偶问题的解满足所述多项式条件,得到线性规划的零知识证明电路。
2.根据权利要求1所述的一种基于区块链和零知识证明的验证方法,其特征在于,结合所述零知识证明电路使用客户端对应的第一联盟链节点发布计算任务包括:
客户端为所述零知识证明电路初始化生成证明密钥和验证密钥,使用第一智能合约将客户端唯一标识、客户端所需发布的计算任务与报酬、所述零知识证明电路及其证明密钥和验证密钥上传至对应的第一联盟链节点中,所述第一智能合约为任务发布合约。
3.根据权利要求2所述的一种基于区块链和零知识证明的验证方法,其特征在于,计算端通过对应的第二联盟链节点接收客户端发布的计算任务,并建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端的计算数据,生成计算结果及其证明包括:
计算端通过对应的第二联盟链节点使用第二智能合约接收所述计算任务,所述第二智能合约为接收任务合约;
计算端建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端发送的所述优化模型以及所需的计算数据,并计算生成计算结果;
计算端根据所述计算任务中的零知识证明电路、证明密钥以及所述计算结果及其哈希值,生成所述计算结果的证明。
4.根据权利要求2所述的一种基于区块链和零知识证明的验证方法,其特征在于,所述第二联盟链节点对所述计算结果进行验证并建立第二私密通道将所述计算结果发送至客户端包括:
所述第二联盟链节点通过第三智能合约使用所述验证密钥验证计算结果的证明,所述第三智能合约为结果验证合约;
所述第二联盟链节点中若验证通过,则与客户端建立第二私密通道,并通过所述第二私密通道将所述计算结果及其哈希值发送至客户端,以使得客户端对所述计算结果的哈希值进行验证。
5.根据权利要求4所述的一种基于区块链和零知识证明的验证方法,其特征在于,所述客户端对所述计算结果的哈希值进行验证之后包括:
若所述客户端需要将所述计算结果共享至其他客户端,则通过第四智能合约建立所述客户端与其他客户端之间的第三私密通道,客户端根据所述第三私密通道将所述计算结果发送至其他客户端。
6.根据权利要求1所述的一种基于区块链和零知识证明的验证方法,其特征在于,根据所述多项式条件得到混合整数线性规划的零知识证明电路包括:
若所述优化模型的解中包含离散变量解和连续变量解,则将根据所述离散变量解得到整数规划的第一零知识证明电路,根据所述连续变量解得到线性规划的第二零知识证明电路,结合第一零知识证明电路和第二零知识证明电路得到混合整数线性规划的零知识证明电路。
7.一种基于区块链和零知识证明的验证系统,其特征在于,包括客户端和计算端,所述客户端包括第一存储器、第一处理器及存储在所述第一存储器上并可在所述第一处理器上运行的第一计算机程序,所述计算端包括第二存储器、第二处理器及存储在所述第二存储器上并可在所述第二处理器上运行的第二计算机程序;
所述第一处理器执行所述第一计算机程序时实现以下步骤:
将基于联盟链的优化模型的验收条件转换成多项式条件,并将所述多项式条件转换成零知识证明电路,结合所述零知识证明电路使用客户端对应的第一联盟链节点发布计算任务;
所述将基于联盟链的优化模型的验收条件转换成多项式条件,并将所述多项式条件转换成零知识证明电路包括:
将所述优化模型的验收条件转换成多项式条件,根据所述多项式条件得到线性规划或者整数规划或者混合整数线性规划的零知识证明电路;
根据所述多项式条件得到线性规划或者整数规划的零知识证明电路包括:
若所述优化模型的解为离散变量解,则得到整数规划的零知识证明电路;
若所述优化模型的解为连续变量解,则计算所述优化模型对应原始问题的对偶问题,所述原始问题与所述对偶问题的解满足所述多项式条件,得到线性规划的零知识证明电路;
所述第二处理器执行所述第二计算机程序时实现以下步骤:
通过对应的第二联盟链节点接收客户端发布的计算任务,并建立客户端与计算端之间的第一私密通道,通过所述第一私密通道获取所述客户端的计算数据,生成计算结果及其证明;
将生成的计算结果及其证明发送至对应的第二联盟链节点,所述第二联盟链节点对所述计算结果进行验证并建立第二私密通道将所述计算结果发送至客户端。
8.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的一种基于区块链和零知识证明的验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310033045.8A CN115801288B (zh) | 2023-01-10 | 2023-01-10 | 一种基于区块链和零知识证明的验证方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310033045.8A CN115801288B (zh) | 2023-01-10 | 2023-01-10 | 一种基于区块链和零知识证明的验证方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115801288A CN115801288A (zh) | 2023-03-14 |
CN115801288B true CN115801288B (zh) | 2023-04-18 |
Family
ID=85428940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310033045.8A Active CN115801288B (zh) | 2023-01-10 | 2023-01-10 | 一种基于区块链和零知识证明的验证方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115801288B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118520516B (zh) * | 2024-07-19 | 2024-09-24 | 湖南天河国云科技有限公司 | 计算过程可验证和原始数据可追溯的隐私计算方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143080A (zh) * | 2021-11-30 | 2022-03-04 | 兰州理工大学 | 基于零知识证明的区块链数据隐私保护和共享方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021502636A (ja) * | 2017-11-09 | 2021-01-28 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | 検証可能な計算のためのcライクなスマートコントラクトの算術的強化 |
CN109614820A (zh) * | 2018-12-06 | 2019-04-12 | 山东大学 | 基于零知识证明的智能合约认证数据隐私保护方法 |
US20210398157A1 (en) * | 2020-06-18 | 2021-12-23 | Colorado School Of Mines | Systems and methods for maximizing mine production scheduling |
CN114358782A (zh) * | 2021-12-06 | 2022-04-15 | 北京众享比特科技有限公司 | 区块链交易审计方法、装置、设备及存储介质 |
-
2023
- 2023-01-10 CN CN202310033045.8A patent/CN115801288B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143080A (zh) * | 2021-11-30 | 2022-03-04 | 兰州理工大学 | 基于零知识证明的区块链数据隐私保护和共享方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115801288A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Leng et al. | Blockchain security: A survey of techniques and research directions | |
CN109218079B (zh) | 一种区块链网络、部署方法及存储介质 | |
CN111066047A (zh) | 实现基于区块链的工作流 | |
CN112231741B (zh) | 基于区块链系统的数据处理方法、装置、介质及电子设备 | |
CN114827135B (zh) | 一种跨链协同治理系统、方法、设备及存储介质 | |
Härer et al. | Decentralized attestation of conceptual models using the ethereum blockchain | |
CN111049806B (zh) | 一种联合权限控制方法、装置、电子设备和存储介质 | |
CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN115801288B (zh) | 一种基于区块链和零知识证明的验证方法、系统及设备 | |
CN114760071B (zh) | 基于零知识证明的跨域数字证书管理方法、系统和介质 | |
CN113239399A (zh) | 基于区块链的供应链数据监管方法、电子设备及存储介质 | |
CN113469371A (zh) | 联邦学习方法和装置 | |
CN116975901A (zh) | 基于区块链的身份验证方法、装置、设备、介质及产品 | |
Baniata et al. | Prifob: a privacy-aware fog-enhanced blockchain-based system for global accreditation and credential verification | |
WALES | Using blockchain to enable untrusted business process monitoring and execution | |
CN113328854B (zh) | 基于区块链的业务处理方法及系统 | |
CN115834593A (zh) | 基于区块链的安全协同系统及安全协同方法 | |
Cachin et al. | Stateful multi-client verifiable computation | |
CN113014540B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN116897345A (zh) | 合同任务的处理方法及装置 | |
CN112232807A (zh) | 一种基于联盟链的链上治理系统及方法 | |
CN113259131B (zh) | 区块链节点、系统和区块链构建方法 | |
Geng et al. | Blockchain-inspired Framework for Runtime Verification of IoT Ecosystem Task Fulfillment | |
Härer | Scalable model-based decentralized applications in the cloud using certificates and blockchains | |
CN115378943B (zh) | 基于多层共享机制的智信水务场景链数据共享方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |