http://www.7klian.com

零常识证明于区块链中的落地应用

Zcash中利用的零常识证明为zk_ Snarks (zero knowledge Succinct Non-interactiveArgument of Knowledge),中文为“零常识简捷非交互式证明”。Zk_ Snarks可以在证明者与验证者无交互的环境下高效的完成某些验证。
至此多项式转化的步调就算完成了。N的问题通过电门C乐成转化为了NP问题。为了利便下文的暗示我们将多项式设为:

图中我们可以看到A通过a_ sk (A 的Spending Key)生成了a_ ask (A的AuthorizationSpending Key),a_ ask (A 的Authorization Spending Key)与随机数a结 合生成密钥rsk,rsk生成rk并将其置入SpendDescriptions中,随后rsk通过与生意业务信息中数据的Hash值举办团结生成SpendAuthSig如此-来变加强 了SpendDescriptions 的安详性。

上文中简朴的描写了Zcash中的生意业务进程,个中有几个问题需要留意。

首先,B会通过b_ sk (B 的Spending Key)生成两个加密私钥b_ ask (B 的AuthorizationSpendingKey)和b_ nsk (B的Nullifier SpendingKey),接下来b. _ask (B的AuthorizationSpendingKey)和b_ nsk (B的Nulifier SpendingKey)会别离生成b_ ak (B的AuthorizationKey)与b_ nk (B的NulifierKey)并团结会生成b_ ivk (B的IncomingViewingKey), b_ ivk(B的Incoming Viewing Key)通过与随机数d的团结生成pkd (Diversified Paying Key)作为B的吸收地点。此刻A将pkd (Diversified Paying Key)置入到隐私信息傍边,并通过Hash加密将Hash值放入Note Commitment傍边以待B的验证。A继承生成随机要钥对“esk/epk” , pkd (Divrsified Paying Key)与esk的团结会生成sharedsecrets,通过sharedsecrets可以生成对称密钥Kenc随即对Note Plaintext举办加密形成Cenc,接下来A将epk与Cenc同时放入OutputsDescription中即完成了他的事情。B吸收到OutputsDescription中信息后可以利用b_ ivk(B的IncomingViewingKey)与epk举办团结获得shared secrets,并与A沟通获得对称密钥Kenc, Kenc 通过对Cenc的解密获得Note Plaintext的内容。有了随机数d, B可以通过b_ ivk (B的IncomingViewing Key)求得pkd (Diversified Paying Key),并将其置入Note Plaintext中便可与Note Commitment中的Hash值比拟验证A的生意业务信息是否真实。
· 均衡隐私安详掩护与操作掩护隐私 “作弊”将是将来零常识证明重要成长偏向之一。
· 完备性: 证明者假如可以或许可以通过重重验证,验证者则可以判定证明者的真实性。
· 无需可信配置协议: 无需可信配置协议在Sonic的基本长进一步改进。公用参考字符串被果真同时不会发生“有毒废物”,提高安详性的同时,低落了利用的巨大度。然而打消可信初始化配置会导致证明的数据量增大,Starks 的验证体积更是可以高出100kb。 固然SuperSonic与Bulletproof 比Starks好许多,可是在验证时间和验证体积上仍要超出SnarkSo
通过上述例子可以相识到零常识证明特征属性主要为三点:
· 随机数rho:当Note被生意业务之后作废时,充当该Note在作废列表中的独一编号(nf)。 .
为了防备用户生意业务数据被“进攻者”操作,同时担保生意业务的真实可信性, Zcash在原本的UTXO模子长举办了改造,利用Note作为其生意业务布局。如下表所示:

个中Z(n)表示形式为:
与IncomingViewingKey差异,FullViewing Key B不只可以查察Note Plaintext中的信息,也可以利用b_ _fvk (B的FullViewingKey)验证OutputsDescription中的全部信息。如下图所示:

· 零常识证明是. 上世纪80年月提出的一项加密学理论,而其应用在区块链技能呈现后才真正实现,该理论叙述了证明者如安在不提供有效信息的环境下通过验证者的验证。

· Incoming Viewing Key
d)此时Note3不会被销毁。A需要将Note3的rho3 (Hash(r3)、 颠末签名加密Note4与Note5广播到全网,由矿工举办验证。
b) Generator(Ccircuit, λ is ? ): (pk,vk)= G(, C)则是将C circuit中的a()、(E(n))、())通过入转换为a(E())、入a(n)), b(E())、入b(E(n)), c(E(n))、 入c(E())。 pk、vk则为对应民众参数。
今朝Zcash的生意业务方法分为三种:透明生意业务、Sprout 模式生意业务、Sapling 模式生意业务。
本来的a(E(n))转换成了a(E(n))与入a(E())的向量对, 而且λ无法通过入a(E(n))/ a(E(n))的除法计较出值。这样便限制了证明者伪造a’ (E())的大概,因为本身伪造的ai (E())无法确定λa (E(n)的值。
零常识证明(Zero-Knowledge Protocols)是上个世纪80年月由麻省理工研究人员S.Goldwasser. S.Micali 及C.Rackoff提出的一-种理论。该理论的焦点是叙述证明者如安在不
Verifier:
· 通用配置协议: Sonic 是最早的通用配置协议,在传统Snarks协议之上加以改造,只需初始时举办一次可信配置即可。这也就意味着参考字符串可以进级无需从头陈设整个电路,新的应用也可以反复利用这个可信配置。然而,在验证本钱同样不低的环境下,验证时间与验证体积都要高出Groth16。

Sapling不回收Sprout 中的JoinSplit 布局举办生意业务,转而利用SpendDescription 与OutputDescription别离暗示消费与入账。个中SpendingDescription 中包括了作废列表(Nulifier) , OutputsDescription 中包括Note Commitment以及B验证时需要的Cenco同样,为了保障生意业务的完整性与不行改动性。A同样需要对生意业务举办签名。图中valuecommitment是value同态埋没得出的值,rcv则是生成value commitment的随机数,通过对SpendDescription中所有rCV的和与OutputDescription中所有rcv的和举办求差值的方法获得签名私钥bsk;通过SpendDescription中所有rcv的和与OutputDescription 中所有rcv的和求差再与ValueBalance做差的方法获得签名公钥bvk。此时将生意业务中的信息举办加密再与bsk团结生成BindingSig以担保生意业务信息中数据的真实性与不行改动性。

V(Vk,x, π)=(3 ws.t. C(x, w)

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。