http://www.7klian.com

零常识证明 zk-SNARK应用场景阐明

,作为一个隐私转账平台,将所有的Commitment(cm),构成一个Merkle树:

链下的状态用三层的四叉Merkle树来暗示:

1/ TradeHistory中Order Ox的变革导致TraderHistory的树根的变革
3/ Balance Bx变革导致Balance的树根的变革

前几天在魔笛社区分享了三个zk-SNARK技能应用的场景,可以让各人zk-SNARK(Groth16)技能和场景的团结有劈头的认识。

假设Account X链下转账给Account Y。ZKP证明电路,包罗:

Filecoin是存储行业较量热门的项目。Filecoin想搭建一个去中心化的存储生意业务平台。去中心化的存储,有个焦点问题,怎么
证明存储提供方,真实有效的存储了指定的数据。Filecoin是通过PoREP以及PoST算法实现(个中就包罗零常识证明)。
2/ 用同样的Note信息,能生成一个nullfier,并且这个nullfier之前没有生成过。
以上只是最简朴的归纳综合Zcash零
常识证明的概略思路,ZCash的设计很是巨大和严谨,有许多细节。顺便说一句,领略ZCash,只需要看ZCash的白皮书protocol.pdf。领略了白皮书的设计,看源代码很是直接。
以用户Deposit“充值”的操纵为例:

从2017年,路印从“环路笼络”的最初设计,颠末尾1.0,2.0以及3.0的三个大的版本的协议进级。1.0/2.0,相对来说,受限自己机能的限制,生意业务流程巨大,体验和中心化生意业务所对比,有较大的差距。路印协议3.0,通过zk-SNARK技能,在zk Rollup的基本上,团结DEX的业务场景开拓设计,分身去中心化和生意业务机能。

其他尚有一些有意思的项目:其他尚有 Coda(零常识递归证明),Mixer(混币),zkPOD(通用数据的生意业务)等等有意思的场景和应用。
1/ Committed (操纵已经提交)2/ Verified (该操纵已经提供了相应的Proof)3/ Finalized(之前的所有的操纵都已经提交正确的Proof)

路印3.0,回收的是zk-SNARK的Groth16算法提供零常识证明。针对每种操纵,Relay城市提供对应的ZKP证明电路。以链下笼络为例,相应的电路证明的逻辑如下:

1/ 他知道一个Note,并能生成一个cm,并且这个cm在以rt为树根的Merkle树上

每一层的输入称为d(data),每一层的VDE的功效称为r(replica)。对每一层的输入,,建构默克尔树,树根为comm_d, 整个树的数据布局称为tree_d。对每一层的输出,建构默克尔树,树根为comm_r,整个树的数据布局称为tree_r。

Zcash项目,各人都知道是“隐私生意业务”。Zcash代表了zk-SNARK的一个应用偏向:隐私。隐私有差异的水平,ZCash的隐私生意业务指的是埋没生意业务的发送方,吸收方以及生意业务金额。Zcash已经经验过三个版本:Sprout, Overwinter,Sapling。这三个版本本质上都没有太大的变革,只是支持的成果更多,生成证明更快,体验更好。

这个零常识证明的第二个应用偏向:链上数据压缩。PoREP算法,通过零常识证明证明数据已经正确处理惩罚,并提供了处理惩罚后数据形成的Merkle树的树根。PoST,每隔一段时间,随机抽选一个叶子数据,需要存储提供者在必然的时间内提供从该叶子数据到Merkle树根的路径证明。假如,处理惩罚完的数据没有生存在一个靠得住的存储上,无法在公道的时间内重建整个Merkle树,也就无法提供证明。
2. 链上数据压缩:Filecoin项目

简朴的说,PoREP通过零常识证明,证明每一层的数据都颠末VDE计较生成,并提供最后功效的Merkle树的树根。

一笔转账用Note来暗示,包罗转账的金额v和一个随机数。Note有两个外在的表示形式:一个是Commitment,一个是Nullifier。Commitment和Nullifier都是通过差异的Hash函数生成。Commitment代表一次金额转入,Nullifier代表一次消费。留意,对付一个Note,Commitment和Nullifier都是独一的。因为Commitment和Nullifier是Hash的功效,纵然这两个数据果真,其他人也无法揣度出Commitment和Nullifier之间存在接洽。也就是说,提供一个Commitment,能说明举办了一笔转账(详细信息其他人未知)。能提供对应的Nullifier,就能消费。
6/ Account X和Account Y账户的变革导致的Account树根的变革
路印协议回收和以太一致的“账户”模子,所有的账户的“状态”(余额)都记录在链下。

某个用户需要消费某个cm,必需向区块链提供零常识证明:

总的来说,零常识证明的技能很是有意思,零常识证明就像一座桥梁,实现现实世界到数字世界的映射。接待各人和我一起接头零常识证明的技能和应用。

在数据处理惩罚并存储后,每隔一段时间,需要提交存在性证明,也就是PoST算法。PoST算法的根基思想,随机挑选一个Merkle树的叶子节点位置,需要提供出一条Merkle路径的零常识证明。
相对1.0,2.0来说,路印协议3.0将所有的笼络逻辑都在链下完成。每一笔笼络(Settlement)城市生成证明并提交到链上,证明链下的笼络正确无误。

Sector中未Seal的原始数据首先依次分成一个个小数据,每个小数据32个字节。这些小数据之间凭据DRG(Depth Robust Graph)成立毗连干系。凭据每个小数据的依赖干系,通过VDE(Verifiable Delay Encode)函数,计较出下一层的所有小数据。整个PoRep的计较进程分为若干层(今朝代码配置为4层),仔细调查每一层的DRG干系的箭头偏向,上一层向右,下一层就向左,因此得名ZigZag(Z字型)。

3. 扩展性:Loopring DEX 3.0项目
5/ 两个账户的Balance的变革一致

所有和状态相关的操纵,都是在链下变动,提交Proof到链上记录。因为存在链上链下的状态同步,账户的任何操纵有三个状态:

PoREP是数据存储证明算法(证明用户数据被正确的处理惩罚)。PoRep算法的全称是ZigZag-DRG-PoRep。

这个是零常识证明的第三个偏向:扩展性。在足够多的生意业务的环境下,路印3.0的TPS在今朝的以太坊上到达了350。在君士坦丁堡进级后,TPS能到达1400。每笔生意业务平均下来的用度约莫在1美分。

1. 隐私:ZCash项目

这就是零常识证明的一个重要的运用偏向 – 隐私,现实中尚有许多应用雷同技能的项目:EYBlockchain(EY,安永),Quorum(JPMorgan)。
2/ TradeHistory中Order Oy的变革导致TraderHistory的树根的变革

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