木星链 木星链
Ctrl+D收藏木星链
首页 > Pol币 > 正文

GRO:一文了解最热门的 zkSNARK 方案:Groth16 方案

作者:

时间:1900/1/1 0:00:00

原文标题:一文了解最热门zkSNARK方案:零知识证明引论

在之前的文章中,我们介绍了零知识证明的基础概念以及构造zkSNARK的基本思想和方法。从本文开始,我们将逐一介绍目前最热门的zkSNARK方案。文章旨在让读者理解这些方案的基本原理。为了方便叙述并容易理解,在叙述方案时,我们会做一些简化处理,重在传达方案的核心思想。

本文介绍的是Groth16方案。Groth16方案,顾名思义,就是Groth在2016年发表的一篇论文中提出的方案。目前为止,Groth16是在实践中使用最广泛的zkSNARK(没有之一)。特别一提的,Zcash目前使用的zkSNARK方案就是Groth16。从性能上,Groth16的Verifier性能是所有zkSNARK中最快的,其证明字符串也是最短的。

而Groth16的最大缺点就是它需要对每个电路都执行一次可信初始化。

在介绍Groth16之前,简单回顾一下zkSNARK所要解决的问题。我们称这个问题为「计算验证问题」。

计算验证问题

任何计算都可以描述为一个算术电路。一个算术电路可以对数字进行算术运算。电路由加法门、乘法门以及一些常数门组成,如下图所示:

微软计划完成对动视暴雪的收购:金色财经报道,微软正计划以690亿美元完成对动视暴雪的收购,尽管美国联邦贸易委员会(FTC)去年12月以反垄断为由阻止了这笔交易。据接近这家科技巨头的消息人士透露,微软本周对获得英国批准其收购感到乐观。消息人士称,这是因为最近几周,英国和欧盟的反垄断监管机构在批准两家公司合并方面取得了令人惊讶的进展。这两家反垄断监管机构对微软态度转好的原因是微软承诺让索尼和任天堂等竞争对手获得其游戏大作“使命召唤”视频游戏特许经营权。[2023/4/26 14:26:37]

这个例子中的电路包含了15个门。这个电路所描述的计算过程需要输入五个数字x1到x5,输出四个数字。

给定一组输入的数字,需要把这个电路中的每个门都计算一遍,才能计算出这个电路的输出。在这个例子中,如果输入是(1,2,3,4,5),则电路的输出为(-27,14,80,171),如下图所示:

计算验证问题是指,如果一个验证者——不妨叫做Verifier——只拿到了电路的一组输入和输出,如这个例子中的(1,2,3,4,5)和(-27,14,80,171),它该如何验证这是一对合法的输入和输出呢?最简单粗暴的方法就是把这个输入重新扔进电路算一遍。如果电路很大的话,这个验证方法最大的缺点就是效率问题。

香港Web3Hub生态基金正式启动,规模为1000万美元:4月14日消息,在“2023香港Web3嘉年华”分会场四《MetaEra x BitMart 专场:Metaverse的机遇在哪里》分论坛中,香港律政司副司长张国钧发表致辞,宣布启动香港Web3Hub生态基金,规模为1000万美元,将激励更多企业落户香港。结合区块链技能和人工智能提供便捷且具成本效益的安全平台,展望未来,香港要更好地发展一国两制的独特优势,以科技创新驱动香港高质量的发展,同时吸引海内外人才引入。

此前消息,香港财政司司长陈茂波将担任Web3Hub基金主席。[2023/4/14 14:04:03]

有些场景下,效率还不是唯一的问题。例如,输入可能包含Verifier不能知道的秘密信息。假设上例中的(3,4,5)是秘密输入,Verifier只能看到(1,2),如下图所示。此时Verifier要验证的问题就变成了「是否存在(?,?,?)使得电路在输入(1,2,?,?,?)的时候的输出是(-27,14,80,171)」。这个场景下,即使是简单粗暴的重新计算也不再可行。

一句话概括计算验证问题:Verifier能否在不知道秘密输入的情况下,高效地验证计算结果?

Messari创始人:DCG市值或已减半:金色财经报道,区块链分析公司Messari创始人Ryan Selkis再次针对数字货币集团DCG和Genesis的问题发文。Ryan表示,此前分析认为灰度比特币信托基金GBTC有可能被其母公司DCG持有。然而似乎同样合理的是,大部分抵押品其实也有可能被Genesis持有,且影响会更糟。根据其分析,DCG大约有6~8亿美元的加密货币抵押品,其中大部分是2021年和2022年初购买的GBTC和ETHE股票;如果这些资产确属Genesis抵押品,那么意味着DCG的市值已减少50%。这还表明,Genesis在未来2年半内将被迫每月抛售数百万GBTC股票,以偿还其债权人。而DCG也将不会继续寻求推出ETF。

Ryan补充道,事件仍在继续发展,真实数据披露可能仍需一段时间。[2022/12/4 21:22:06]

从电路到R1CS问题

一个zkSNARK就是对上述问题的一个解决方案。使用zkSNARK,一个证明者,叫做Prover,可以为计算过程生成一个简短的证明字符串。Verifier读取这个字符串,就可以判断给定的公开输入和输出是否合法。

元宇宙公司Translucia投入“千万美元”收购电竞社区Infofed主要股份:10月21日消息,元宇宙公司Translucia已收购泰国电竞社区Infofed主要股份,尽管按美元计价的具体收购金额暂未披露,但估计达到“8位数”。

据悉,Infofed成立于2015年,为游戏厂商、游戏爱好者和电竞玩家提供一站式社区服务,拥有线上电竞比赛社区eArena和线下电竞场馆Thailand E-Sport Arena。

Translucia是泰国娱乐巨头T&B Media Global旗下元宇宙开发商,他们将和Infoded建立一个电子竞技训练营,并在旗下元宇宙内开发电子竞技内容。(Techinasia)[2022/10/21 16:34:27]

Groth16是众多zkSNARK构造方案中的一种。接下来,我们介绍Groth16是怎么解决计算验证问题的。

首先,我们重新审视一下Verifier的任务:我们只知道电路的前两个输入是(1,2),我们的目标是要判断是否存在一组合法的秘密输入,使得电路的输出是(-27,14,80,171)。如果我们换个角度看这个问题,它其实可以描述为:给一个电路,上面有些空格可以填数字,有些空格已经填上了数字,请问是否存在一种填法,能够同时满足每个门的逻辑?

贵金属代币化平台Aurus在迪拜建立总部,并获得加密货币交易许可证:7月6日消息,贵金属代币化平台Aurus在迪拜DMCC加密中心成立了新总部,引入了新的董事会,并获得了加密货币交易许可证,进一步在全球扩张。

据悉,Aurus开放式区块链生态系统以一种去中心化和可持续的方式实现金、银和白金的代币化。(PR Newswire)[2022/7/6 1:55:13]

从这个新的角度,计算验证问题被转换成了一个类似于数独那样的填数字游戏:有一些空格,一部分已经填上,请你填上另外一些空格,满足一些限制条件。

然后,我们为每一个要满足的条件列一个方程。这里,每个要满足的条件其实就是一个门的逻辑:加法门的输出等于两个输入之和,乘法门的输出等于两个输入之积。于是,原来的填空游戏就变成了一个多元方程组。上述例子转化得到的方程组如下:

最后,我们对这个方程做一些整理,使得它能够写成矩阵和向量的形式,更加整齐和简洁。我们把每个方程都写成*=*x*的模式。尽管并不是所有方程中都有乘法,但我们可以给没有乘法的式子乘上一个。于是方程组变成了下面这个样子:

把所有方程合到一起,就得到了原方程组的矩阵表示

我们把最终得到的这个矩阵向量方程叫做一个Rank-1ConstraintSystem(R1CS)。

总结一下,这一节中我们把计算验证问题转化成了数学问题R1CS。

在计算验证问题中,Verifier知道一个电路,拿到公开部分的输入,以及电路的输出,判断它们是否合法。

从R1CS问题到QAP问题

在零知识证明领域,R1CS基本上就是电路的代名词。许多zkSNARK把R1CS问题作为目标问题。不过,大部分zkSNARK不会直接对R1CS下手,而是把R1CS问题继续转化,得到一个等价的多项式问题,再对这个多项式问题设计证明方案。Groth16也不例外。不同的zkSNARK选择的多项式问题各不相同,Groth16选择的是一个叫做QuadraticArithmeticProgramming(QAP)的问题。

这一节中介绍一下怎样把R1CS问题转化为等价的QAP问题。

然后,我们把这些列向量换成多项式,使得多项式方程和原先的向量方程等价。

把向量转化成多项式的一种方式是使用多项式插值。

多项式插值

QAP问题

现在,我们直接把R1CS矩阵中的列向量换成它们的多项式插值,得到的结果如下图所示。

我们用一个表格总结一下上文中提到的所有问题。

为什么要越搞越复杂,把电路问题转化为QAP问题呢?一个简单的回答:就是为了引入多项式!多项式是一个强大的工具。多项式的作用,可以理解为一个「杠杆」,或者叫「误差放大器」。如果我们要检查两个长度为10000的向量是否相等,一定需要检查10000次,哪怕检查过了9999个点都是一样的,也不能保证最后一点是相同的。而两个10000次的多项式,哪怕非常接近,比如说它们的系数有9999个都相同,或者它们在这些点上的取值都相等,但只要有一个点不同,这两个多项式就截然不同。这意味着,如果在一个很大的范围内,例如到当中均匀随机选一个点,两个不同的多项式在这个点上相等的机会只有。检查两个多项式是否相等,比检查同样规模的向量要快得多,这几乎是所有zkSNARK提高Verifier效率的根本原理。

为QAP问题构造zkSNARK

QAP问题就是Groth16要用来构造zkSNARK的最终问题了。不过,在解释Groth16的构造细节之前,我们先准备一些工具。

准备工具

我们假设读者对椭圆曲线群的基本特性和应用有所了解,并采用加法群的记号来描述椭圆曲线群中的点和运算。椭圆曲线群中的元素可以用来表示多项式,并限制Prover必须使用给定的多项式来进行线性组合。这正是QAP所需要用到的特性。

我们看一下椭圆曲线是怎么用来表示多项式的。

KoE假设

然而,上述直觉并不能从离散对数假设严格地证明而来。所以,只能把它作为一个新的安全性假设来用。这个假设就叫做Knowledge-of-Exponent(KoE)假设。

KoE假设怎样应用到QAP问题上呢?那就是,KoE允许我们使用椭圆曲线点来表示多项式,并且迫使Prover只能从已知的多项式线性组合产生新的多项式。

不过,到目前为止,我们忽略了两个关键问题:

关于第二个问题,一个解决方法就是双线性配对。

双线性配对

现在,我们已经准备好了工具:KoE假设和双线性配对。接下来,我们就介绍Groth16是如何为QAP问题构造zkSNARK的。

Groth16方案

Setup

Prove

Verify

解析

我们简单解释一下上述构造为什么能够工作。至于它为什么是安全的,请感兴趣的读者参阅原文。

当然,Verifier的验证式中还包含了许多其他项,但在Groth的精心设计下,它们都消掉了。感兴趣的可以自行验证。

小结

本文中,我们解释了Groth16这个zkSNARK方案的构造原理。我们从算术电路开始,介绍了怎样将计算验证问题转化为R1CS问题以及QAP问题。然后我们解释了怎样使用Groth16方案来证明知道一个QAP问题的解。Groth16方案使用了KoE假设以及双线性配对。它的缺点是需要可信第三方进行初始化,而且初始化过程需要对每个电路进行一次。与此同时,Groth16享有最高效的Verifier算法以及最短的证明字符串,使得Groth16成为至今仍然应用最广的zkSNARK方案。

参考资料

JenGroth.OntheSizeofPairing-basedNon-interactiveArgument.2016.

撰文:Cyte

标签:GROROTARKZKSYFI CREDITS GROUPDelphi Privacy ProtocolGARK币zks币这几天怎么这么火

Pol币热门资讯
比特币:首:探讨比特币矿工的期权策略组合

本文作者为NewBloc策略分析师Barry,5年外汇黄金市场交易经历。授权金色财经首发。随着比特币愈加吸引全球投资者的关注,处在该领域的最上游组织挖矿行业也受到了机构们的青睐,我们知道挖矿的成.

1900/1/1 0:00:00
比特币:比特币还是 CDBC?从货币发展史探讨未来货币形式

现金的消亡不可避免,央行数字货币和以比特币代表着未来货币的两种截然不同的形式。随着央行数字货币与加密货币走向主流社会,现金的使用价值受到较大程度削弱.

1900/1/1 0:00:00
NFT:币姥爷:大饼跌破 3 万,盘面信号较差

今天的封面是《圣劳伦斯殉难》,胡塞佩·里拉贝今天早上Bill给出抄底信号,大饼从28800反弹至最高32000,打出超3000刀反弹空间.

1900/1/1 0:00:00
区块链:信用上链 你的数据如何价值最大化?

近日,北京市人民政府印发《关于加快推进北京市社会信用体系建设构建以信用为基础的新型监管机制三年行动计划》的通知.

1900/1/1 0:00:00
区块链:国家卫健委:充分发挥基层医疗卫生机构“哨点”作用

中新网1月22日电据国家卫健委网站消息,国家卫生健康委基层司22日发布《关于进一步做好冬春季新冠肺炎疫情防控有关工作的通知》(下称《通知》)。《通知》明确,充分发挥基层医疗卫生机构“哨点”作用.

1900/1/1 0:00:00
比特币:比特傻观点:跑车点火

问:怎么定义什么是好的流动性挖矿项目呢?比特傻答:1、资金模式上有创新或者微创新,能够带来一种市场未见过的二层资金博弈。2、里子上做的事情也要有价值,在资金博弈的过程中,能有价值的事情落地.

1900/1/1 0:00:00