3/ Balance Bx变革导致Balance的树根的变革
前几天在魔笛社区分享了三个zk-SNARK技能应用的场景,可以让各人zk-SNARK(Groth16)技能和场景的团结有劈头的认识。
假设Account X链下转账给Account Y。ZKP证明电路,包罗:
2/ 用同样的Note信息,能生成一个nullfier,并且这个nullfier之前没有生成过。
以上只是最简朴的归纳综合Zcash零常识证明的概略思路,ZCash的设计很是巨大和严谨,有许多细节。顺便说一句,领略ZCash,只需要看ZCash的白皮书protocol.pdf。领略了白皮书的设计,看源代码很是直接。
以用户Deposit“充值”的操纵为例:
其他尚有一些有意思的项目:其他尚有 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的树根的变革
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。