ZK- Snak

频道:百科知识 日期: 浏览:0

Bitget下载

注册下载Bitget下载,邀请好友,即有机会赢取 3,000 USDT

APP下载   官网注册

ZK-snark可能是相关行业人士应该注意的知识。在这里,Dadaqq.Com对zksnarks进行了详细的介绍,并扩展了一些相关的知识与大家分享,希望对你有所帮助!

ZKrollup是一个Layer2扩展解决方案,主链上所有资金由智能合约持有,链下执行计算和存储,其侧链的有效性由零知识证明保证。

ZK卷最早由BarryWhitehat于2018年提出。其安全保障与底层1(即以太坊)相同。它可以在一分钟内生成块,并将吞吐量提高到2,000tps。。ZK公司实施的项目包括物质实验室和Starkware。

在ZKR中,操作员必须为第2层上的每个状态转换生成一个zk-SNARK有效性证书。并将这些有效性证书提交给第1层上的汇总合同。汇总合同将验证这些从旧的默克尔根到新的默克尔根的状态转移的证明是否有效。尽管使用了新的组件但是这些保证本质上是加密的。Matterlabs团队开发的

zkSync已经在以太坊主网上线。Loopring推出了使用ZKR的集中兑换和支付服务。。StarkWare团队的StarkEx是一种ZKR技术,使用的是zk-STARK(不是zk-SNARK),所以不依赖可信设置,扩展性更强,可以抵抗量子计算攻击。

链乔教育在线旗下学硕创新区块链技术工作站是唯一获批"区块链技术专业""智慧学习工场2020-学硕创新工作站"由中国教育部学校规划建设发展中心实施。专业站立足于为学生提供多元化的成长路径。推进产学研改革';构建应用型、复合型人才培养体系。

2020年的前半年可以说是动荡不安的。疫情的经济后果仍然未知,但可以肯定的是,数字资产将是后疫情经济中的一个亮点,并且可能会继续增长。

Let';让我们来看看2020年最值得关注的潜在硬币。以及为什么它们可以成为您投资组合的有力补充。

1。埃尔隆德(ERD)45.36%

概述:埃尔隆德(ERD)是一个高度可扩展、快速且安全的区块链网络。可以促进DApp的发展和企业应用。

价格:45.36%的涨幅使埃尔隆德成为目前最好的加密货币之一,在我们的榜单中名列前茅。在过去的24小时里,ERD的价格从0.0188美元上涨到0.0276美元。

有意思的是,这个涨幅和埃尔隆德的连续暴涨相比只是杯水车薪,而ERD从6月1日至今的价格涨幅已经超过了1100%。

2。bancor(BNT)20.66%

概述:Bancor(BNT)是一种区块链协议,允许用户在不同令牌之间直接即时转换。

价格:作为我们潜在硬币列表中的第二名。Bancor在过去24小时内从1.21美元飙升至1.46美元,涨幅20.66%。

与埃尔隆德类似,BNT的价格是一个长期的牛市,从5月17日至今已经上涨了近600%。

3。ETC9.54%[XY002][XY001]Overview:ETCisanintelligentcontractplatform.以太坊软件原版本在道硬叉后保留。价格:自从3月份新冠肺炎引发的市场崩溃以来,以太坊经典一直在试图挽回损失。

虽然此后ETC的价格增长相对稳定,但在过去的24小时内为投资者创造了近10%的相对巨大的投资回报。

4。ZEC现金利率6.54%

概述:Zcash(ZEC)是一种隐私币,其特点是通过零知识证明实现伪匿名交易,被称为zk-SNARKs。

价格:从货币24小时表现来看,Zcash上涨了6.54%。

除了过去24小时的暴涨,ZEC在过去三个月一直处于温和上涨状态,币值从4月27日的43.93美元涨到69.27美元。

5。以太坊5.27%

概述:以太坊(ETH)是一个以智能合约和去中心化应用(DApps)为特色的区块链平台,也是市值第二大的加密货币。

价格:在过去的几个月里,以太坊的价格一直在稳步上涨。然而,从7月22日开始,ETH开启了牛市上涨开关,ETH的价格从246美元飙升至今天的324.26美元。

仅在过去24小时内ETH的价格上涨了5.27%。

是。

区块链可以解决交易中的互信问题。

智能合约解决交易中的互信问题

自比特币以来,区块链技术一直在不断发展。2014年,以太坊进一步开发了具有多项新功能的智能合约技术,智能合约被数字化链接。"区块链中记录的信息一旦生成,将被永久记录,不可篡改,"这样可以解决"陌生的信任"。

ulord具有智能合约的属性,引入了gas的设计概念,但与以太网gas不同的是,每个操作都要消耗gas。与以太网中的gas概念相比,Ulord采用了更简单、更抽象的方法。。用户在Ulord上发布的资源和站点消耗Ulord网络上的资源,因此用户在发布资源或站点时需要绑定一定数量的UlordToken。随着块高的增加,UlordToken会逐渐消耗。,用户需要在消费站点对应的地址填写一个新的UlordToken,以保证域名的所有权。同时,通过侧链技术,可以兼容以太网虚拟机,发布智能合约,允许用户发布自己的令牌。Token和UlordToken之间有一定比例的交换关系。Ulord允许用户定制自己的站点服务,通过发放自己的令牌,可以运营自己的站点。

zk-SNARK技术保护交易隐私

ulord将采用最主流的隐私保护zk-SNARK技术保护交易隐私。在乌洛德区块链看来,创建一个有效的交易包括以下三件事:

1。确保该地址中的货币在以前的交易中没有被使用过;

2。发送者证明他是"holder"该货币的授权签字;

3。交易的输入等于其输出。

证明钱以前没花过的工作是由账本自己来做的。这不';不需要发送者做任何工作。寄件人只需要证明自己是这些货币的持有人,想用地址对应的私钥通过电子签名的方式发送这些货币。为了验证这个签名,发件人';的地址必须是公开的。与之相对应的收款人还必须披露收款地址,以完成交易流程。在Ulord的使用中,验证交易的输入和输出是否相等是很简单的,因为传输的次数是完全揭示的。

使用零知识证明(特别是,zk-SNARKs)来验证以上三个要素可以保护用户';隐私不被泄露,即不泄露汇款人、收款人和转账金额信息。每一笔成功的交易都伴随着zk-SNARK,证明投入的资产是存在的,以前没有花过。创建交易的人被授权花费交易,并且投入的数量和类型与产出的数量和类型相等。支出输出(即创建新的zk-SNARK)时所需的信息被附加到交易中,通过使用收款人进行加密';的公钥,并且只由收款人使用。

零知识简明非交互知识演示(zkSNARK)是一种真正别出心裁的方法,可以在不透露任何其他信息的情况下证明某事为真。然而,为什么它首先有用呢?

零知识证明在无数应用中是有益的,包括:

关于私有数据的认证声明:

匿名授权:

匿名支付:

外包计算:

但是,底层方法是一个"奇迹"数学和密码学。因为它被引入了主书"交互式证明系统的知识复杂性"在1985年,它已经被研究了第四个十年,然后引入了非交互证明,这在区块链的背景下尤其重要。

在任何零知识证明系统中,都有一个验证者,他希望在不披露任何其他信息的情况下,说服验证者某些陈述是真实的。比如验证者知道验证者的银行账户里有X多,但是没有其他信息(也就是不透露实际金额)。。协议应该满足三个属性:

Let';让我们从简单开始,尝试证明一些东西,而不用担心零知识、非交互性、其形式和适用性。假设我们有一个长度为10的数组。我们要向验证者(比如一个程序)证明所有这些位都设置为1,也就是我们知道一个数组使得每个元素都等于1。

Verifier一次只能检查(即读取)一个元素。为了证实这一说法你可以以任意的顺序读取元素,并检查它是否真的等于1。如果是,则第一次检查后该语句的置信度为10%,如果该位不等于1,则该语句完全无效。验证者必须进入下一轮,直到他获得足够的信心。有时候你可以信任证明者,只需要50%的信心。在需要95%置信度的其他情况下,必须检查所有单元。显然,这个证明协议的缺点是,如果我们考虑一个数百万个元素的数组,则必须与元素的数量成比例地检查数量。这是不现实的。

Let';让我们考虑一个多项式。有一条曲线对应于多项式。多项式有一个有利的性质,即如果我们有两个次数最多为d的不等多项式,它们的交点不会超过d。例如让';稍微修改一下原来的多项式。如果我们想找到两个多项式的交集,我们需要使它们相等。例如,为了找到多项式与X轴相交的位置(即,我们将相等,并且这样的方程的解将是那些共享点:还有。

同样,我们可以将多项式的原版本和修改版本相等,求它们的交集。得到的多项式为1,有明显的解。所以只有一个路口。

对于任意次d的多项式,任何这样的方程的结果总是另一个最大次数为d的多项式,因为没有乘法能产生更高的次数。示例:简化为。代数基本定理告诉我们,一个d次多项式最多可以有d个解。因此,我们可以得出这样的结论任何多项式在任一点的求值类似于其唯一单位的表示。让';在x=10时评估我们的示例多项式。

其实在所有要计算的X个选项中,在这些多项式中,最多只有三个选项有相同的计算。,所有其他选项都将不同。这就是为什么如果证明者声称知道一些多项式(不管他们知道多少次),他们可以遵循一个简单的协议来验证该陈述:

例如,如果我们考虑X从1到0的整数范围。不同的点被评估为。从那以后,X偶然"点击"任何共享点都等于,被认为是可以忽略的。

注:与无效位检查协议相比,新协议只需要一轮。并且对陈述给出了压倒性的信心(假设D充分小于范围的上限,几乎是100%)。

这就是为什么多项式是zk-SNARK的核心,虽然可能还有其他证明介质。

我们从多项式知识的证明问题入手,然后采用一种通用的方法。在这个过程中,我们会发现多项式的许多其他性质。到目前为止的讨论都集中在一个弱证明概念上,即各方必须相互信任。因为没有执行协议规则的措施。例如,证明者不需要知道多项式,他可以使用任何其他可用的方法来获得正确的结果。此外,如果验证者的范围';s多项式求值不大,比如10,验证者能猜出一个数。并且它被接受的概率不能被忽略。我们必须解决协议的这个弱点,但首先我们要知道多项式是什么意思。多项式可以用以下形式表示(其中n是多项式的次数):

如果有人说他知道一个1次多项式,说明他真正知道的是系数。此外,系数可以是任何值,包括0。让';假设证明者声称知道三次多项式。使得x=1和x=2是所有可能的解中的两个。这种有效的多项式之一是。

代数基本定理指出,任何多项式只要可解,都可以分解为线性多项式(即表示直线的1次多项式)。因此我们可以将任意有效多项式表示为它的因子的乘积:

同样,如果这些因子中的任意一个为零,则整个方程为零,所以它们都是唯一解。我们的例子可以分解成以下多项式:

x的值是:0,1,2,你可以很容易地用任何形式的多项式查出来。

回到证明者';s声称他知道根为1和2的三次多项式,这意味着他的多项式具有如下形式:

换句话说,(x?1)和(x?2)是所讨论的多项式的余因子。因此,如果证明者想证明他的多项式确实有这些根,而不公开多项式本身。然后他需要证明他的多项式p(x)是那些余因子的乘积,叫做目标多项式,和一些任意多项式h(x),也就是

换句话说,p(x)有t(x)的所有根。。求h(x)的自然方法是除法。如果证明者能够';t找不到这样的h(x),就说明p(x)不';没有必要的余因子t(x)。在这种情况下,多项式除法将有余数。在我们的例子中,如果我们除以。我们得到的结果是没有残留物。

使用我们的多项式身份检查协议,我们可以比较多项式与:

要把它付诸实践,让';我们在一个例子中实现这个协议:

相反。如果证明者使用不同的,它没有正确的余因子,例如,那么:

我们将得到余数,即:这意味着证明者必须除以余数来计算。因此因为验证者随机选择X,所以余数被t(x)整除的概率很低。因此,如果验证者将检查P和H补码是整数,这样的证明将被拒绝。然而,这种检查要求多项式系数也必须是整数。

现在我们可以检查多项式的具体性质,而无需学习多项式本身,因此这为我们提供了某种形式的零知识和简明性。尽管如此,这种构造仍然存在许多问题:

我们将在以下几节中解决所有问题。

在上面,如果sum以黑盒而不是纯文本的形式给出,将是一个理想的选择,所以人们可以';t篡改协议,但他们仍然可以计算这些模糊值。类似哈希函数,计算时很难回到原来的输入。

这就是同态加密的目的。也就是说,它允许对值进行加密,并且算术运算可以应用于这种加密。实现加密同态的方法有很多种,我们简单介绍一种简单的方法。总的想法是我们选择一个基数自然数G(比如5),然后加密一个值。我们用G乘以这个值的幂。比如我们要加密数字3:

其中125是3的加密。如果你想把这个加密数字乘以2,然后它被提升到2的指数:

我们可以将未知值乘以2并加密。我们也可以通过乘法将两个加密值相加,比如3^2:

。同样,我们可以用除法减去加密的数字。,比如5?3:

但是,由于基数5是公开的,所以很容易回到秘密数,将加密数除以5,直到结果为1。除法的个数是明文。

这就是模块化算法发挥作用的地方。。模运算的思想是这样的:我们声明只选择前n个自然数,即0,1,…,n-1,而不是有一个无限的数集合。如果任何给定的整数不在这个范围内,我们"环绕"它。例如,让';让我们先选择六个数字。为了说明这一点请考虑一个有六个相等单位尺度的圆;这是我们的产品系列。

现在让';让我们看看数字8会落在哪里。比如我们可以把它想象成一根绳子,它的长度是八个单位。。如果我们把绳子连接到圆圈的开始,并开始绕绳子,一圈后我们会剩下一些绳子。因此,如果我们继续这个过程,绳子将在两个地方结束。

是模运算的结果。不管绳子有多长它总是停在圆圈的一个刻度上。所以模块化操作会让它保持在一定的范围内。15个单位的绳子会停在3个地方,也就是6^6^3(两个完整的圆,剩下3个单位)。负数也是如此。唯一不同的是我们反方向包装。对于-8,结果将是4。

而且,我们可以进行算术运算,结果总是在n个数的范围内。我们现在将使用符号"mod"表示数字的范围。。比如:35=3(mod6);5^2=1(mod6)。

另外,最重要的特点是操作顺序无关。例如,我们可以先执行所有操作,然后应用模块或在每次操作后应用模块。。例如:相当于:24=2(mod6);2?1=1(mod6);13=3(mod6)。

那为什么有帮助呢?事实证明,如果我们使用模运算,,它有一个运算结果,而且回到原来的数是非凡的,因为很多不同的组合会有相同的结果:54=2(mod6);42=2(mod6);21=2(mod6)。

如果没有模运算,结果的大小为其求解提供了线索。否则,这些信息将被隐藏,常见的算术属性将被保留。

如果我们回到同态加密,使用模运算,比如模7,我们会得到:

而且不同的索引会有相同的结果:

这就是很难找到索引的地方。事实上,如果模数足够大,它就变得不可行,并且现代密码学的很大一部分是基于"难度"这个问题。。此方案的所有同态性质都保留在模域内:

加密:

乘法:

加法:

让';s指定加密函数:其中v是我们要加密的值。

这种同态加密方案有局限性。虽然我们可以将加密的值乘以未加密的值,但是我们不能将两个加密的值相乘(相加和相除)。也不能对加密值求幂。虽然从第一印象来说很不幸,但这些属性会成为zk-SNARK的基石。

有了这样的工具,我们现在可以计算一个加密随机值为X的多项式,并相应地修改零知识协议。

让';让我们看看如何计算多项式。正如我们之前所建立的,多项式是要知道它的系数的。在这种情况下,它们是:1,-3,2。因为同态加密不允许对加密值求幂。所以我们要得到从1到3的X次方的加密值:这样我们就可以对加密的多项式求值如下:

作为这些运算的结果,我们在未知的X处加密了我们的多项式。。这是一个非常强大的机制,并且由于同态性,同一多项式的加密计算在加密空间中总是相同的。我们现在可以更新协议的先前版本。对于d次多项式:

Veri?呃:

证明人:

Veri?Er:

因为证明者对S一无所知,所以很难做出非法但仍然匹配的评价。

虽然在这样的协议中,证明者的敏捷性是有限的。然而,他仍然可以使用任何其他方法来伪造证明,而不实际使用所提供的S-power加密。例如,如果证明者声称仅使用二次幂的和就存在令人满意的多项式,这在当前协议中是无法验证的。

多项式的知识就是它的系数。我们的方式"分发"协议中的这些系数是对秘密值S(即)的相应加密功率取幂。当选择S的加密能力时,我们已经对证明者进行了限制,但是这种限制并不是强制性的,例如您可以使用任何可能的方法找到满足等式的任何值和,并将它们提供给验证者,而不是sum。例如,对于某些随机性,以及这就是为什么验证者需要证明只有S的幂的加密被用于计算总和,而不是其他。

Let';让我们考虑一个一次多项式的基本例子。多项式有一个变量和一个系数,相应地,S的加密。我们正在寻找的是确保只有S是加密的,即同态"倍增"乘以任意系数C,而不是其他。所以对任何C来说,结果一定是形式上的。

一种方法是要求另一个移位的加密值对原始值执行相同的操作,作为“加密”的算术模拟校验和"保证结果是原值的幂。。这是通过引入指数知识的指数知识假设(或KEA)来实现的。更准确地说,

Alice的值为A,她想要Bob's的指数是任意次方。唯一的要求就是只有这个A可以是指数型的,没有别的可以保证她:

因为Bob可以';t从元组中提取,推断Bob可以产生有效响应的唯一方法是通过以下过程:

最后,这个协议向Alice提供了一个证据,证明Bob确实将a乘以一个他知道的值,并且他可以';不要做任何其他运算,比如乘法和加法,因为这样会消除移位关系。同态加密上下文中的

取幂是加密值的乘法。我们可以在简单的单系数多项式的情况下应用相同的结构:

这种结构限制证明者只能使用提供的加密S,因此证明者只能将系数C赋给验证者提供的多项式。。我们现在可以将这种单多项式方法扩展到多项式,因为每一项的系数分布都是单独计算的,然后进行同态"添加了"一起。因此,如果证明者被提供了S的加密能力和它们的移位值。他可以评估原始多项式和移位多项式,其中必须进行相同的检查。特别是对于d次多项式:

对于我们之前的例子多项式,这将是:

现在我们可以确定。除了验证者提供的多项式,验证者不使用任何其他方法,因为没有其他方法来保持移位。此外,如果验证者希望确保s的某些幂,如j,被排除在验证者之外';的多项式,他不会提供加密和它的移位。

与我们开始时相比,我们现在有了一个健壮的协议。然而,不管加密与否,零知识属性仍然有一个明显的缺点:虽然理论上多项式系数可以有很宽的取值范围。实际上可能非常有限(上面例子中的6),这意味着验证者可以暴力破解有限范围的系数组合,直到结果等于证明者';回答。例如,如果我们考虑每个系数有100个值。,二次多项式将总共有100万种不同的组合,考虑到蛮力,它将需要不到100万次迭代。此外,即使只有一个系数并且其值为1,安全协议也应该是安全的。

由于验证者只能从验证者发送的数据中提取关于未知多项式p(x)的知识,让';让我们考虑那些提供的值(证据):他们参与以下检查:

gp=gh(多项式p(x)有t(x)的根)。

(gp)=gp';t(s)(使用多项式的正确形式)

问题是如何改变证据,使支票仍然有效,但我们可以';不要提取任何知识。?我们可以从最后一节得到答案:我们可以"shift"这些值带有一些随机数(),如(gp)。现在,为了提取知识,我们首先需要找到被认为不可行的。此外,这种随机化在统计学上与随机性是无法区分的。

为了保持关系,让';检查验证者';让我们检查一下。其中一个谚语';s值位于等式的两边。因此,如果我们"移动"它们中的每一个都有相同的,方程一定是平衡的。具体来说,证明者对随机进行采样,并用gp(s)gh(s)对其进行指数化,并将其提供给验证者进行验证:

(gp)=GHt(s)(gp)=gp

合并后我们可以观察到支票仍然有效:

注:把零知识编织成建筑是多么容易的事情,这就是常说的"免费"零知识。

到目前为止,我们有一个交互式的零知识方案。。为什么会这样?由于证明只对原验证者有效,所以其他任何人(其他验证者)都不能信任同一个证明,因为:

因此,为了证明语句(这里是多项式的知识),需要分别与每个验证者进行交互。

虽然交互式证明系统有其使用案例,例如,当证明者只想说服一个特殊的验证者(称为指定验证者),使得证明不能再用于向他人证明同一陈述时,当一个人需要同时(例如,在区块链这样的分布式系统中)或者永久地说服多方,这是非常有效的。验证者需要一直在线,并为每个验证者执行相同的计算。

因此,我们需要的秘密参数是可重用的、公开的、可信的、不可滥用的。

Let';首先考虑在秘密产生后如何保护秘密(t(s),)。我们可以对它们进行加密,就像验证者在发送给证明者之前对S的指数进行加密一样。但是,我们使用的同态加密不支持两个加密值相乘。这对于将t(s)和h以及p和的加密相乘的验证检查是必要的。这是匹配密码的地方。

密码配对(双线性映射)是一种数学构造,其中来自一组数字的两个加密输入由一个函数给出(例如允许它们被确定性地映射到不同数字输出集中的乘法表示,即

由于源数和输出数设置不同,配对结果不能作为另一次配对操作的输入。。我们可以认为输出集(也称为"目标设置")作为来自"不同的宇宙"。因此,我们可以';t将结果乘以另一个加密值,并建议我们一次只能通过名称本身乘以两个加密值。在某种意义上,它类似于哈希函数。它将所有可能的输入值映射到一组可能的输出值中的一个元素,并且它不是平凡的和可逆的。

注:乍一看,这种限制只能阻碍依赖函数。具有讽刺意味的是,在zk-SNARK的案例中,,这是该方案安全性的最重要的属性。

配对函数的一个基本的(技术上不正确的)数学类比是,有一种方法可以"交换"每个输入的基数和指数,以便在转换过程中将基数修改为指数。比如说。然后将两者相乘交换"输入,因此原始的A和B值以相同的指数相乘,例如:

因此,由于在"交换"。因此,不会生成所需的加密乘法。配对的核心属性可以用一个等式来表示:

e(ga,gb)=e(gb,ga)=e(gab,g1)=e(g1,gab)=e(g1,ga)b=e(g1,G1)ab=e(G1,G1)

从技术上讲配对的结果是目标集合中不同生成元G下原值的加密积,即。因此,它具有同态加密的特点。比如我们可以把多对加密的乘积加在一起:

注:加密配对是用椭圆曲线来实现这些性质的,所以从现在开始,符号将代表曲线上的生成器点,它将被添加到它自己的次数,而不是我们在上一节中使用的乘法群生成器。

通过加密配对,我们现在可以设置安全的公共和可重用参数。。让';假设我们信任诚实的一方来生成秘密S和。一旦加密了和S的所有必要幂以及相应的移位(0,1,…,d中ii的g,GSI,gsi)。,必须删除原始值。

这些参数通常称为公共参考字符串或CRS。生成CRS后,任何证明者和验证者?Er可以用它来实现非交互式零知识证明协议。尽管不重要,CRS的优化版本将包括目标多项式的加密评估。

另外,,CRS分为两组(for):

因为可以乘以加密值,veri?Er可以在协议的最后一步检查多项式。,让veri?阳离子密钥验证?er进程接收加密的多项式求值gp、gh、gp'来自证明者:

虽然可信设置是有效的,但它不是。因为CRS的多个用户将不得不相信一个删除的总和,因为目前没有办法证明。所以要尽量减少或者消除这种信任。否则,不诚实的一方将能够在不被发现的情况下制造虚假证据。

实现这一点的一种方法是由多方使用前一节中介绍的数学工具生成复合CRS,使得这些方不知道秘密。这是一个办法,让';让我们考虑三个参与者:爱丽丝、鲍勃和卡罗尔。,对应的索引是A,B,C,I在1,2,…作为这个协议的结果,我们有一个复合和,没有参与者知道其他参与者的秘密参数,除非他们串通。。事实上,为了学习和平,我们必须与所有其他参与者勾结。因此,即使一个人很诚实,他也可以';不要提供虚假证明。

注意:可以根据需要对任意多的参与者重复此过程。

可能的问题是如何验证参与者是否与CRS的每个值一致,因为对手可以采样多个不同的s1,s2,和1,2,并针对s的不同次方随机使用它们(或者提供随机数作为增强的公共参考字符串),从而使CRS无效且不可用。

幸运的是,因为我们可以使用配对来乘以加密值,所以我们可以执行一致性检查。,从第一个参数开始,并确保每个下一个参数都是从它派生的。参与者发布的每个CRS都可以检查如下:

请注意,虽然我们验证每个参与者都与其秘密参数一致。,但是并没有对每个下一个参与者(在我们的例子中是Bob和Carol)强制要求使用先前发布的CRS。因此,如果对手是链中的最后一个,他可以忽略前面的CRS,从头开始构造有效的参数。好像他是链条上的第一个,所以他是唯一知道秘密S和的人。

我们可以通过要求除第一个参与者之外的每个参与者加密并公布他的秘密参数来解决这个问题。例如,Bob还发布了:

这允许验证Bob'sCRS是Alice's参数,因为ii在1,2,d:

相同。Carol必须证明她的CRS是Alice-Bob';sCRS。

这是一个强大的CRS设置方案,不完全依赖于任何一方。事实上,即使只有一方是诚实的,并删除和从不分享其秘密参数。即使其他各方合谋,也是非常明智的。因此,CRS设置中的无关参与者越多,伪造证据的可能性就越小,如果竞争对手参与,这种可能性可以忽略不计。。该方案允许对设置的可读性有疑问的其他不可信方参与进来,因为验证步骤确保了他们不会破坏最终的公共引用字符串(包括使用弱和S)。

我们现在准备整合演进的zk-SNARKOP协议。。形式上,为了简洁起见,我们将使用大括号来表示一组元素,元素旁边填充有下标。例如,sii[d]表示集合s1,s2,…,sd。

目标多项式t(x)和校准多项式的d次已达成一致:

设置:

只要你认真看了上面的内容,你就已经了解了zksnarks。如果你对屏幕前的zk-snark有什么好的建议和想法,欢迎在下面的评论区评论。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。

本文地址: http://www.lyw520.com/baikezhishi/37120.html
文章来源: 小美
ZK- Snak文档下载: PDF DOC TXT