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

ARK:Vitalik:多项式承诺如何让 zk-SNARK 的实现更加高效?

作者:

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

原文标题:Anapproximateintroductiontohowzk-SNARKsarepossible

原文作者:VitalikButerin

原文来源:vitalik.ca

编者注:说到过去十年来诞生的最强密码学技术,肯定免不了提及零知识证明(zeroknowledgeproof)。在区块链领域中,它们有两大应用场景:可扩展性和隐私。zk-SNARK作为其中一种zkp技术,在近几年来也得到了较大的突破,以太坊上出现了诸如zkSync、Scroll、Hermez等此类使用zk-SNARK证明的通用扩容解决方案。

然而,实现zk-SNARK并不简单,因为对某个声明生成了zk-SNARK证明之后,验证者需要以某种方式检查计算中的数百万个步骤。多项式承诺就是在这里发挥其作用,即可以将计算编码为多项式,然后使用一种特殊类型的多项式“哈希”(多项式承诺),以允许验证者在极短的时间内验证多项式等式,即便这些计算背后的多项式规模无比大。

在本文中,Vitalik介绍了zk-SNARK技术的工作原理和难点,然后解释了多项式以及多项式承诺如何让zk-SNARK的实现更加高效。

特别感谢DankradFeist、KarlFloersch以及Hsiao-weiWan的反馈和校对。

过去十年来诞生的最强密码学技术大概要数通用简洁零知识证明,通常称为zk-SNARK。zk-SNARK允许你生成一个证明(这个证明是针对一些运算得出的特定输出,可用于对该运算的验证),通过这种方式,即使底层计算十分耗时,该证明也可以被快速验证。“ZK”为证明新增了一个额外特性:证明可以隐藏计算的某些输入。

例如,您可以对以下声明生成一个证明:“我知道一个秘密值,如果你将数字添加到挑选的单词cow的末尾,然后对其进行1亿次SHA256哈希运算,那么输出的哈希值以0x57d00485aa开头”。验证者验证该证明的耗时可远小于自行进行1亿次哈希运算的耗时,而且证明也不会泄漏秘密值。

在区块链领域中,该技术有两大应用场景:

可扩展性:如果一个区块的验证十分耗时,某个人可以验证区块并生成一个证明,而其他人只需快速地验证证明即可

隐私:你可以证明你有权转移某些资产,而不透露该资产的来源。这不会对外泄漏交易双方的信息,确保了交易的安全性。

然而,zk-SNARK是相当复杂的;实际上,就在2014-17年,它们还常被称为“月亮数学”。好消息是,从那时起,协议愈发简化,我们对它们的理解也愈发深入。本篇博客将试图以一种数学水平普通的人能理解的方式来解释ZK-SNARKs的工作原理。

注意,我们将聚焦于可扩展性;一旦有了可扩展性,这些协议的隐私性就相对容易实现,因此我们将在最后回归这个主题。

Blockworks创始人:Coinbase Q2收入的51%来自订阅和服务:8月13日消息,Blockworks创始人Mike Ippolito表示,由于收入策略的改变,订阅和服务贡献了Coinbase Q2收入的51%。

据悉,Coinbase首席执行官Brian Armstrong去年谈到收入模式转变时表示,“最终,订阅和服务将占我们收入的很大一部分。”[2023/8/13 16:23:36]

为什么ZK-SNARK“会”很难

以开头例子为例:我们有一个数字,我们计算该数字的SHA256哈希,然后重复做9999999次,最后我们检查输出的开头。这里面的计算量特别大。

一个“简洁”证明指的是证明大小和验证耗时的增长远慢于需验证计算量的增长。如果我们想要一个“简洁”证明,我们就不能要求验证者在每轮哈希中做一些运算。相反,验证者必须以某种方式检查整个运算过程,而不必窥视运算过程中的每个部分。

有一种自然的技术就是随机抽样:让验证者只在500个不同的地方检查运算的正确性,如果所有的500个检查都通过了,那么认为运算过程的其余部分也大概率没问题?

该流程甚至可以通过使用Fiat-Shamir启发式转化为非交互式证明:证明者计算运算过程的默克尔根,基于默克尔根伪随机地选取500个索引,并提供对应的500个默克尔分支。核心思想是证明者并不知道将要揭示哪些分支,直到他们已经对数据生成了“承诺”。如果恶意证明者在了解到需要检查哪些索引后试图篡改数据,那么这会改变默克尔根的值,而这将导致一组新随机索引被选出,这将需要再次去篡改数据…让恶意证明者陷入无休止的循环中,无法达成目的。

但不幸的是,简单地随机抽查运算过程存在一个致命的缺陷:运算过程本身并不健壮。如果恶意证明者在计算过程中的某个位置翻转一个比特,可以导致一个完全不同的结果,而随机抽样验证者几乎永远不会发现。

只需一次故意的插入错误,就会导致计算得出完全错误的结果,而这几乎不会被随机检查所捕获。

如果要提出一个zk-SNARK协议,那么很多人会走到上面这步,然后陷入困境,最终放弃。不单独查看每个计算片段的情况下,验证者究竟如何才能够校验每个计算片段?事实证明,有一个绝妙的解决方案。

多项式

多项式是一类特殊的代数表达式,具有以下形式:

x+5

x4

x3

+3x2

两巨鲸在过去12小时内买入超200万美元的COMP:金色财经报道,据Lookonchain监测,巨鲸“0x3fb7”过去2小时共花费124万美元以均价66.13美元买入18,686个COMP 。巨鲸“0x5de6”在8小时前花费95.3万枚USDC以均价64.01美元买入14,885枚COMP。[2023/8/2 16:13:10]

+3x+1

628x271

+318x270

+530x269

+…+69x+381

也就是说,它们是有限个形式为cxk的项之和。

多项式有许多有趣的特性。但这里,我们将聚焦于多项式的一个特性:多项式是一个可以包含无限信息量的单一数学对象上。面的第四个示例包含tau的816位的信息,而且我们能够很容易地想象出一个包含更多信息量的多项式。

此外,多项式间的单个等式就能够表示无限个数间的方程。例如,考虑等式A(x)+B(x)=C(x)。如果该等式是正确的,那么下面也是正确的:

A(0)+B(0)=C(0)

A(1)+B(1)=C(1)

A(2)+B(2)=C(2)

A(3)+B(3)=C(3)

可以类推到每个可能的下标。甚至,你可以构造特地表示一组数字的多项式,这样你就可以一次性地检查众多等式。例如,假设您想检查:

12+1=13

10+8=18

15+8=23

15+13=28

您可以使用一个名为拉格朗日插值的方法来构造多项式:A(x)在某些特定下标集合,B(x)在相同下标上的输出为(1,8,8,13),如此类推。准确地说,以下是相应的多项式:

用这些多项式校验等式A(x)+B(x)=C(x)相当于同时校验上述四个等式。

将多项式与自身进行比较

甚至,你可以用一个简单的多项式等式来校验相同多项式的大量相邻取值的关系。这稍微更进一步。假设您想校验,对于给定的多项式F,在整数范围{0,1…98}内满足F(x+2)=F(x)+F(x+1)。

作为多项式,F(x+2)?F(x+1)?F(x)不会正好为零,因为它在x={0,1…98}范围外的取值是不受限的。但我们可以做一些巧妙的处理。一般而言,有这样一条定则:如果多项式P在某些集合S={x1,x2…xn}上的取值为零,那么可以表示为P(x)=Z(x)?H(x)的形式,其中Z(x)=(x?x1)?多项式的倍数。

Robinhood宣布成立子公司Sherwood Media:金色财经报道,美股经纪商Robinhood宣布成立子公司Sherwood Media。[2023/1/17 11:17:16]

为什么会这样?这其实是多项式长除法的一个巧妙的推论:因式定理。我们知道,当用Z(x)除P(x)时,我们将得到商Q(x)和余数R(x),满足P(x)=Z(x)?Q(x)+R(x),其中余数R(x)的阶严格小于Z(x)。因为我们知道多项式P在集合S上的取值为零,这意味着多项式R在集合S上的取值也必须为零。因此,我们可以通过多项式插值简单地计算R(x),因为它是一个阶至多为n?1的多项式,而我们知道其中的n个取值。使用上述所有零值进行插值得到零多项式,因此,R(x)=0,H(x)=Q(x)。

回到我们的例子上,如果我们有一个编码了斐波那契数的多项式F(因此,在x={0,1…98}上满足F(x+2)=F(x)+F(x+1),那么我可以通过证明多项式P(x)=F(x+2)?F(x+1)?F(x)在该范围的取值为零来向你证明F确实满足该条件:H(x)=(F(x+2)?F(x+1)?F(x))/Z(x),其中Z(x)=(x?0)?(x?1)?…?(x?98).

你可以自行计算Z(x),检查该等式,如果检查通过,那么F(x)的确满足条件!

现在,退一步,留意一下我们做了什么。我们将一个步长100的计算转换为单个多项式等式。当然,证明第N个斐波那契数的取值意义不大,尤其是因为斐波那契数具有闭合形式。但你可以使用完全相同的底层技术,只需一些额外的多项式和更复杂的等式,就可以对任意步长的任意计算进行编码。

现在,如果存在一种使用多项式校验等式的方法,而且这种方法比检查每个系数快得多…

多项式承诺

再一次,事实证明,这样的方法是存在的:多项式承诺。最好把多项式承诺看作一种对多项式进行“哈希”的特殊方法,该哈希拥有额外特性,即你可以通过校验多项式哈希间的等式来校验多项式间的等式。不同多项式承诺方案在适用等式类型上有着不同的特点。

下面是一些常见的例子,您可以使用各种多项式承诺方案:

相加:给定com(P)、com(Q)和com(R),检查是否满足P+Q=R

相乘:给定com(P)、com(Q)和com(R),检查是否满足P?Q=R

在某个点上求值:给定com(P)、w、z和一个补充证明Q,验证P(w)=z

值得注意的是,这些原语可以相互组合。如果支持加法和乘法,那么你可以这样计算:为了证明P(w)=z,你可以构造出Q(x)=

/,然后验证者可以验证:

SBF:FTX正就新一轮融资与投资者进行谈判:金色财经报道,FTX Trading Ltd. 创始人 Sam Bankman-Fried周二在《华尔街日报》的 Tech Live 会议上表示,他正在就筹集新一轮融资与投资者进行谈判,旨在加密货币暴跌市场中进行“有效收购”,他认为收购是一个增加他创立的加密货币交易所零售用户数量的机会,而FTX迄今为止在消费者领域的普及速度很慢。SBF 还开玩笑说要创建一种受猫启发的加密货币,因此在上一轮牛市中加密市场推出了各种受狗启发的数字货币,比如 DOGE。SBF 还称,FTX 交易量已经远远超过加密货币交易所 Coinbase Global Inc.,但用户量只有 Coinbase 的一小部分。(华尔街日报)[2022/10/26 16:39:09]

这行得通是因为如果存在这样一个多项式Q(x),那么P(x)?z=Q(x)?(x?w),这意味着P(x)?z在w处等于零,因此P(x)在w处等于z。

如果你能计算出某点的取值,那么你可以进行各种校验。这是因为有一个数字定理表明:大体上,如果一些包含了一些多项式的等式在一个随机选择的下标下成立,那么对多项式整体而言等式基本为真。因此,如果我们只有一个证明某点取值的机制,那么我们就可以通过一个交互式游戏进行验证,如我们的方程P(x+2)?P(x+1)?P(x)=Z(x)?H(x):

正如前面提到的,我们可以使用Fiat-Shamir启发式使其转化为非交互式:证明者可以令r=hash(com(P),com(H))并计算r。证明者不能通过挑选只“符合”特定r的P和H来进行“欺诈行为”,因为他们在选取P和H时不知道r!

快速回顾

ZK-SNARK很难,因为验证者需要以某种方式检查计算中的数百万个步骤,而无需直接地检查每个单独的步骤。

我们通过将计算编码为多项式来解决这个问题。

单个多项式可以包含无限大的信息量,而且单个多项式表达式可以代表无限个数间的方程。

如果你可以验证多项式等式,那么你同时在隐式地验证所有的数值等式。

我们使用一种特殊类型的多项式“哈希”,称为多项式承诺,以允许我们在极短时间内验证多项式等式,即使背后的多项式规模非常大。

那么,这些神奇的多项式哈希是如何工作的?

目前有三种被广泛使用的主流方案:bulletproofs,KateandFRI。

这里是DankradFeist对Kate承诺的描述:https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html

Mt. Gox 的还款日期再次推迟到 9 月中旬:8月31日消息,最新公开文件显示,Mt. Gox 的还款日期“转让等限制参考期”已被法院受理,从9月15日开始,到一个未定义的期限结束。值得注意的是,这并不意味着支付将从 2022 年 9 月 15 日(日本时间)开始。据据称是 Mt. Gox 债权人渠道运营商Django Bits的说法,这一还款过程可能“持续数月甚至数年”。[2022/9/1 13:01:04]

这里是curve25519-dalek团队对bulletproofs的描述:https://doc-internal.dalek.rs/bulletproofs/notes/inner_product_proof/index.html,而这里是我的图解:https://twitter.com/VitalikButerin/status/1371844878968176647

这里是对FRI的描述,我写的…:https://vitalik.ca/general/2017/11/22/starks_part_2.html

哇,哇,别紧张。试着简单地讲解其中一个,不要把我带到更可怕的链接上

老实说,它们没有那么简单。这就是为什么所有的这些数学理论直到2015年左右才真正崛起的缘故。

请?

在我看来,FRI是最容易理解透的。

以下是FRI工作原理的简化版。假设你有一个阶小于n的多项式P。对P的承诺是某组预选下标取值的默克尔根。现在我们需要额外添加一些东西来证明这组取值来自一个阶小于n的多项式。

我们要求证明者提供Q(x)和R(x)的Merkle根。然后,我们生成一个随机数r,并要求证明者提供一个“随机线性组合”S(x)=Q(x)+r?R(x)。

我们伪随机抽样了一大组下标,并要求证明者在这些下标处提供P、Q、R和S的Merkle分支。在每个提供的下标处,我们校验:

如果我们做了足够校验,那么我们可以确信S(x)的“预期”值与“提供”值最多是不同的。

从这里开始,我们简单地用S重复上面的游戏,逐步“降低”我们关心的多项式的阶,直到多项式的阶低到我们可以直接校验的程度。

和前面的示例一样,这里的“Bob”是一个抽象概念,对密码学家在思维上论证协议非常有用。事实上,Alice自己生成了完整证明,为了防止她作弊,我们使用Fiat-Shamir:我们根据此前证明中生成的数据的哈希随机选取每个样本的下标或r值。

一个对P完整的“FRI承诺”包括:

流程中的每步都可能会引入一些“误差”,但如果您进行了足够多的检查,那么总误差将低到你可以证明P(x)在至少80%的下标处等于一个阶小于n的多项式。这足以满足我们用例的需求:如果你想在zk-SNARK中作弊,你需要对少数值进行多项式承诺,其多项式的取值会在多处不同于真正阶小于n的多项式,因此任何对其进行FRI承诺的尝试都会失败。

此外,您仔细检查一下,FRI承诺中对象的总数和大小是O(log阶),因此,对于大型多项式,承诺实际上比多项式本身小得多。

为了检查这类不同多项式承诺间的等式,只需简单地随机选择很多下标,要求验证者提供在每个多项式的这些下标处的Merkle分支,并验证等式在每个下标处成立即可。

上面描述的是一种效率极低的协议;有很多代数技巧可以将协议效率提高约100倍,如果你想要一个切实可行的协议,比如在区块链交易中使用,你需要使用这些技巧。特别是,例如,Q和R实际上不是必要的,因为如果你非常聪明地选择取值点,你可以直接从P的取值重构出所需Q和R的取值。但是上面的描述应该足以让你确信多项式承诺从原理上是可行的。

有限域

因为数字的“回环”方式,模运算有时被称为“时钟数学”

通过模运算,我们创造了一个全新的算术系统,它和传统算术一样是自洽的。因此,我们可以讨论该域中的所有同类结构,包括我们在“常规数学”中讨论的多项式。密码学家喜欢使用模数学,因为任何模运算结果的大小都会有界-无论你做什么,值都不会“超出”集合{0,1,2…p?1}。即使计算有限域中一个一百万次多项式,也不会得出一个集合以外的值。

将计算转化为一组多项式等式更具意义的例子?

隐私

但这里有一个问题:我们怎么知道对P(x)和R(x)的承诺不会“泄漏”信息?

这里有些好消息:这些证明是对大量的数据和计算生成的小证明。因此,一般来说,证明往往不够大,只能暴露一点点信息。但我们能从“只有一点点”推进到“零”吗?幸运的是,我们可以。

在这里,一个相当通用的技巧是往多项式添加一些“模糊因子”。当我们选定P时,将Z(x)的小倍数加到多项式中。这并不会影响命题的正确性,但它可以在承诺中添加足够多的额外“噪声”,使得任何余下信息不可恢复。此外,对于FRI,重要的是不要对计算发生范围的随机点进行采样。

我们能再回顾一下吗??

最优秀的三类多项式承诺是FRI、Kate和bulletProof。

Kate在概念上是最简单的,但它依赖于非常复杂的椭圆曲线配对“黑盒”。

FRI很酷,因为它只依赖哈希;它的工作原理是将多项式逐渐归约为阶越来越低的多项式,并在每步进行随机抽样检查,使用Merkle分支来证明等价性。

为了防止单个值大小的膨胀,我们不在整数上做算术运算和多项式运算,而是在有限域上做所有事情

多项式承诺天然支持隐私保护,因为生成的证明已经比多项式小得多了,因此多项式承诺只能暴露多项式中一点点信息。但我们可以往多项式添加一些随机性,将暴露的信息从“一点点”减少到“零”。

哪些问题仍在研究当中?

优化FRI:已经有很多涉及精心挑选的取值域的优化,“DEEP-FRI”,以及一系列其他让FRI更高效的技巧。Starkware及其他人正在研究这块。

将计算编码为多项式的更佳方法:找出将涉及哈希函数、内存访问和其他特征的复杂计算编码为多项式等式的最高效方法仍是一个挑战。在这方面已经取得了很大的进展(例如,见PLOOKUP),但我们仍需更多的进展,特别是如果我们想将通用虚拟机执行编码为多项式的话。

增量可验证计算:如果随着计算继续能够高效地“扩展”证明,那就太好了。这在“单证明者”情况下很有价值,而且在“多证明者”的情况下也很有价值,特别对于不同参与者创建区块的区块链而言。最近一些在这方面的工作,请参见Halo。

来源:金色财经

标签:ARKNARCOMPROArk Of The Universelunar币深圳Comma ChainOpes Protocol

TRX热门资讯
元宇宙:注意|Mars数字藏品平台×宏宝斋《张宏?元宇宙》第一季9月5日正式发售

Mars数字藏品平台联合厦门宏宝斋文化创意有限公司,携手旗下头部IP张宏发行秋日限定《张宏·元宇宙》漆画作品第一季,将于9月5日在Mars数字藏品平台正式发售.

1900/1/1 0:00:00
加密货币:首次“反加密”会议将于下周在伦敦拉开帷幕

据《华尔街日报》报道,首次“反加密”会议CryptoPolicySymposium将于下周一在英国伦敦召开,为期两天。不过,这不是迈阿密式的盛会.

1900/1/1 0:00:00
FRC:市场交易火爆 MirrorX再传利好:质押FRC将空投MRX

多重利好的持续加持让FRC交易市场连日火爆。FRC交易量24小时增长60%以上。与此同时,特级分形卡购买仍然供不应求,每日抢购活动结束后依旧有大量用户一卡难求,转而将目光投向高级分形卡,因此高级.

1900/1/1 0:00:00
加密货币:Tornado Cash 制裁只是冰山一角?调查 Coinbase、FTX、币安

美国众议院委员会指责加密公司在保护散户投资者方面“缺乏行动”,认为与加密相关的欺诈是一个大问题.

1900/1/1 0:00:00
比特币:比特币(BTC)必须超过这个门槛才能反弹

美国刚刚发布了就业形势摘要,描述了美国劳动力市场的现状。比特币是市场上占主导地位的加密货币,它正在依靠新披露的数据来应对可能的熊市背离.

1900/1/1 0:00:00
NFT:9.3非农数据难改震荡格局 耐心等待方向出现

9.3BTC行情分析比特币昨日文中给出20000多单完美到了第一止盈附近恭喜跟上的币友获利近500美刀,晚间受非农业影响向上拉升,因数据符合预期所以波动不是太大,没有走出突破而迅速回落.

1900/1/1 0:00:00