CN111886831B 用于实现零知识证明的计算机实现的系统及方法 (区块链控股有限公司)_第1页
CN111886831B 用于实现零知识证明的计算机实现的系统及方法 (区块链控股有限公司)_第2页
CN111886831B 用于实现零知识证明的计算机实现的系统及方法 (区块链控股有限公司)_第3页
CN111886831B 用于实现零知识证明的计算机实现的系统及方法 (区块链控股有限公司)_第4页
CN111886831B 用于实现零知识证明的计算机实现的系统及方法 (区块链控股有限公司)_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020.09.21PCT/IB2019/0521842019WO2019/180588EN2019.09.26用于实现零知识证明的计算机实现的系统该复合语句同时涉及算术电路可满足性和有关更具体地,本发明涉及一种用于实现语句(S)的零知识证明或验证的计算机实现的方法,在其中,证明者在将对语句的见证(w)保密的同时向句的电路的各个线承诺和/或成批的承诺、输入提前共享语句中使用的该椭圆曲线或每个椭圆确定电路得到满足并计算椭圆曲线点且验证语2由具有m个门和n个线的算术电路表示的语句(S),所述算术电路被配置为实施功能电其中所述数据使得验证者能够确定电路得到满足并计算椭圆曲线点(P)且验证语句,所述证明者与验证者联系以确认要提供的数据和要接收的数据,所述证明者从验证者接收椭圆曲线公钥pkV,所述验证者已经从安全的随机秘密密钥证明者将语句(S)证明发送给验证者,所述语句(S)证明向验证者证明入是与pkP相对应的私钥,从而使得验证者能够验证证明,并确认与pk=pkV+pkP相对应的地址匹配商定的模式,从而确定知道锁定值i能够导出数据的完整私钥(skV+i),并且确定锁定值i是至功能电路过来自证明者的签名和功能电路输入i来访证明者在交易被挖掘成区块的区块链上签署和广播交易,使得二交易Tx2来访问来自交易Tx1的输出的数据,所述第二交易Tx2提供其签名和值i以解锁交3.根据权利要求1或2所述的计算机实现的方4.根据权利要求1或2所述的计算机实现的方法,其中,35.根据权利要求4所述的计算机实现的方法,6.根据权利要求4所述的计算机实现的方法,其中,所8.根据权利要求7所述的计算机实现的方法,其中ko=rlxF,且能够通过椭圆曲线点减法来计算线l的公钥:n将要被密钥公开,420.根据权利要求1所述的计算机实现的方其中,所述证明者已访问第一区块链上的第一数据,并且所所述证明者接收针对第一区块链的验证者公钥(PB),所述验证者已经为第一区块链生所述证明者创建第一区块链交易TxA,所述第一区块链交易TxA将第一数据发送到公共所述证明者验证第二区块链交易TxB,所述交易是在确认第一区块链交易TxA被包括在述交易将第二数据发送到证明者的公钥地址(PA),所述公钥地址(PA)是证明者使用以下各5作为用来确定功能电路输出(h)的功能电路作为功能电路输出(h)的功能电路输入的值来从而使得验证者能够观察作为用来确定功能电路输出(h)的功能电路输入的值,并通过使用PC的私钥提供签名来访问第一数据,所述PC的私钥是来自椭圆曲线点乘法的同态性21.一种包括计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被执行时将处理器配置为执行权利要求1至20中在被执行时将一个或多个处理器配置为执行权利要求1至2023.一种区块链网络的节点,所述节点被配置6能够实现对语句(statement)的有效零知识验证。该方法适用于并入到现有的针对不需要明特别适合于但不限于由证明者执行的用于准备证明的方法和由验证者执行的用于验证或诸如数字商品之类的信息的交换中的数据或信息的公平交换被体现在称为零知识或有这种协议的细节是已知的[Campanelli201[0006]ZKCP协议的中心组成部分是针对有关数据/信息有效性或正确性、密钥有效性及向另一方证明该程序接受了输入为有效的并且该程序被正确地执行—无需透露有关秘密Pinocchio协议[Parno2016]和C++libsnark库[Libsnark2016]中实现的简洁的非交互式知识论证7[0011]-对于任何给定的程序(电路),它们都需要由必须被信任的第三方计算的公共参诺(a),然后验证者以随机挑战(x)进行响应,并且最后证明者以最终响应或“公开(w)的语句。如果除去与见证有关的语句为真的事实之外未向验证者透漏承诺的值的承诺。佩德森承诺(Pedersencomm[0019]承诺者可以在后期阶段通过提供值s和r来完全公开该承诺(即,该承诺可以被验81a示出了具有左侧线输入(wL)和右侧线输入(wR)以及一个线输出(wO)的乘法门的示意图,w23者证明他们知道该电路的合法赋值:首先承诺合法赋值中的每个线值(使用Pedersen承[0031]3.然后证明者计算公开值(openingvalue):z=x(rL+rR-[0036]1.证明者生成5个随机盲值:t1,tz,ta,ts,ts—zp9F=x×WO+C3。[0050]Σzero协议和Σprod协议可以并行运行以验证电路中的每个门,并且相同的验证者[0052]然后,验证者以随机挑战进行响应x-zp并且证明者为每个门计算公开值(每2=w45透露原像(pre-image)的情况下演示他们知道对特定(输出)值进行哈希化的SHA-256函数的原像(输入)。SHA-256算法的电路的最有效实现方法之一由27,904个算术门组成[Zcash2016]。然后为了证明知道SHA-256原像,将需要发送上述协议的初始承诺和公开回合[0059]已经开发出几种方法来显著地改善用来证明算术电路可满足性的并行∑协议方了通信复杂度从o(n)降低到o(vn或o(log(n))的证明系统。[0062]1.证明者和验证者就组元素达成一致F-G些语句是复合语句,其同时涉及算术电路可满足性和有关公钥的有效性的从属语句(密钥证明者附加地包括证明密钥。[0075]可以提供一种用于实现语句(S)的零知识证明或验证的计算机实现的方法,在其[0077]由具有m个门和n个线的算术电路表示的语句(S),所述算术电路被配置为实施功[0081]这使得验证者能够确定电路得到满足并计算椭圆曲线点(P)且验证语句,从而确路输出(h)和椭圆曲线点(P),至功能电路或功能电路中的线的功能电路输入(s)是否等于[0083]数据还包括单独的线承诺和/或成批的承诺。该承诺或每个承诺可以是针对电路[0087]发送的数据集和/或发送给验证者的挑战的公开可以像独立于验证者创建的密钥形成证明密钥。[0132]附加地,证明者可以向至少一个线发送完全公开的承诺。该方法可以使用[0133]该方法可以由证明者使用以实现针对数据(例如,加密密钥)的零知识或有交易[0137]证明者可以在通过更改i得出的Base58编码地址中执行对所需模式的搜索。证明[0139]证明者可以从验证者接收交易Tx1,该交易Tx1包含输出,过提供第二交易Tx2来访问来自交易Tx1的输出的数据,该第二交易Tx2提供其签名和值i以[0141]sk=skB+i,[0147]证明者可以验证第二区块链交易TxB,所述交易是在确认第一区在第一区块链中之后由验证者创建在第二区块链网络上并在第二区块链网络上进行广播,[0148]证明者确认第二区块链交易TxB被包括在第二区块链上,并通过提供其签名和作确定功能电路输出的功能电路输入的值,并通过使用私钥提供签名来访问第一数据(对于的线输入和输出;针对算术电路中的线(优选的是除第一线之外的线)的输入或密钥公开;[0151]这可以通过使用Sigma协议(如果证明是交互式的)或使用证明密钥(如果使用了公开值并且就承诺进行检查。验证者可以通过经由椭圆曲线点减法计算针对线l的公钥来[0154]上面已经在技术背景部分中使用图1a和图1b描述了用于交互式零知识证明的基[0156]图2是用于语句的复合电路的示意图,该复合电路包含针对哈希函数和椭圆曲线语句具有电路描述并且第一线具有对应的公钥;椭圆曲线规范来证明电路可满足性。这使得能够以有效的方式来证明与用作电路输入和/[0164]为涉及电路可满足性和椭圆曲线密钥对两者的语句生成证明的证明大小和计算[0168]使用zkSNARK来证明涉及任意加密椭圆曲线密钥操作的语句被认为是不切实际由于某些区块链上使用的椭圆曲线与双线性配对友好椭圆曲线不兼容,因此排除了使用圆曲线生成器点)”将在以下与数据的去信任交换以及匿名和安全的跨链原子交换者保密)将需要针对哈希函数和椭圆曲线点乘法两者采用密钥语句证明的复合语句1的算术电路和用于哈希函数的仅一个算术电路的示意图。案中采用所需的椭圆曲线来以可忽略的额外计算成本从电路证明中提取。这样的操作称为[0185]已知的零知识简洁的非交互式知识论证(zk-SNARKs)是用于算术电路可满足性的来证明该语句。SNARK方法的主要优点在于,验证者仅需要执行一些椭圆曲线(配对)操作[0186]通过SNARK方法实现的非常小的证明和验证时间以可信任的设置、非标准的加密[0187]通过与上一部分中描述的用于证明SHA电路可满足性的[0189]本发明实现语句的零知识证明,该语句同时涉及椭圆曲线公钥-私钥关系和一般[0191]下面针对基于成批处理的和未成批处理的承诺的零知识证明系统来描述本发明使证明者在将有关语句的见证的信息保密的同时说服验证者给定的语句(s)为真。该语句由具有m个门和n个线的算术电路(c)以及关于(一个或多个)椭圆曲线公钥pkl的从属断言[0193]语句中指定的(一个或多个)椭圆曲线公钥与目标椭圆曲线规范(其由椭圆曲线参[0203]2.对于需要其对应的公钥的证明(密钥[0208]5.一旦验证者确认电路得到满足,一个的密钥语句证明和另一线的完全透漏二者来验证简单的圆曲线和承诺规范。证明者想要向验证者证明其[0215]“我知道满足电路的赋值(即,满足所有门的线值其中,线1具有公钥P[0220]4.对于加法门(g1和g3),证明者生成对零的承诺(利用随机数(randomnonce)rB1[0252]因此,可以通过使用Fiat-Shamir启发式方法将交互式证明系统转换为非交互式[0255]针对涉及矢量承诺[Bootle2016,Groth2009]的批处理的电路可满足性的压缩证明系统具有公开的输出h的SHA-256哈希函数(H)和secp256k1椭圆曲线上的公开点P,则哈希的秘[0272]S:csnazsc通过线ANDw1×G=PANDwn而得以满足G[0279]4.然后,卖方在通过改变i从pk=pkB+i×G导出的Base58编码地址中执行对所需[0281]6.卖方还向买方提供针对H(i)的原像是对应于pks的私钥的证明,如上面的示例此时(凭借证明),买方知道学习值i将会使得他们能够得出针对地址的完整私钥(skB+i),[0285]ii.通过使用例如CHECKLOCKTIMEVERIFY(OP[0289]12.如果买方未能在指定的OP_CLT[0292]本发明适用于对语句(S)的零知识证明或验证,在其中,证明者在使语句的见证许多替代实施例而不脱离由所附权利要求限定的本括几个不同元件的硬件以及借助于适当编程的计[0298][Campanelli2017]Campanelli,Matteo,etal."Zero-knowledgecontingentpaymentsrevisited:Attacksandpaymentsforservices."Commun.ACM(2017).[Maxwell2016]/zcash-hackworks/pay-[0299][Parno2016]Parno,Bryan,etal."Pinocchio:Nearlypracticalverifiablecomputation."SecurityandPrivacy(SP),2013IEEESymposiumon.IEEE,2013.[Libsnark2016]/sc[0300][Bootle2015]Bootle,Jonathan,etal."Efficientzero-knowledgeproofsystems."FoundationsofSecurityAnalysisandDesignVIII.Springer,Cham,2015.1-31.[Groth2009]Groth,Jens."LinearAlgebrawithSub-linearZero-KnowledgeArguments."CRYPTO.Vol.5677.2009.[0301][Bootle2016]Bootle,Jonathan,etal."Efficientzero-knowledgeargumentsforarithmeticcircuitsinthediscretelogsetting."AnnualInternationalConferenceontheTheoryandApplicationsofCryptographicTechni

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论