a16z:通向奇点 —— Lasso 和 Jolt 简介
编者注:在本系列中,我们将分享两项新的创新,它们可以显着加快 web3 中的扩展和构建应用程序:Lasso 和 Jolt。它们共同代表了一种全新的 SNARK 设计方法,可将广泛部署的工具链的性能提高一个数量级或更多;提供更好、更方便的开发者体验;并使审计变得更加容易。
有关 SNARK 为何如此重要、其当前设计状态、需要理解的关键概念以及开发人员和工程师的实现细节的更多信息,请阅读《Building on Lasso and Jolt》(其中还包括一个开源实现)。研究论文可以在这里找到(Lasso,Jolt)。您还可以在此YouTube 播放列表中观看解释 Lasso 和 Jolt、查找奇点以及思考 SNARK 设计的新方法的完整或简短视频。
SNARK(简洁的非交互式AR知识)是一种加密协议,任何人都可以向不信任的验证者证明它知道满足某些属性的“证人”。web3 中的一个突出应用是第 2 层 (L2) 汇总,向第 1 层 (L1) 区块链证明它们知道授权一系列交易的数字签名,因此签名本身不必由网络存储和验证。 L1,从而有助于可扩展性。
区块链之外的应用程序包括快速但不受信任的硬件设备,证明它们产生的所有输出的有效性,确保用户可以信任它们。个人可以以零知识的方式证明,受信任的当局已向他们颁发了凭证,证明他们的年龄足以访问有年龄限制的内容,而无需透露其出生日期。任何通过网络发送加密数据的人都可以向管理员证明该数据符合网络策略,而无需透露更多细节。
虽然许多 SNARK 对验证者来说具有有吸引力的成本,但 SNARK 通常仍会在证明者计算中引入约六个数量级的开销。证明者所承受的额外工作是高度并行化的,但数百万倍的因子开销严重限制了 SNARK 的应用范围。(有关更多详细信息,请参阅我之前关于 SNARK证明器性能、安全性和开发历史的帖子,以及对这种强大但复杂的技术的常见误解。)
更具性能的 SNARK 将加速 L2,还可以允许构建者解锁尚未设想的应用程序。这就是为什么我们要引入两项新的相关技术:Lasso,一种新的查找参数,可以显着提高证明者成本;Jolt ,它使用 Lasso 提供了一个新的框架,用于为所谓的 zkVM 和更广泛的前端设计设计 SNARK。它们共同提高了 SNARK 设计的性能、开发人员体验和可审核性,进而提高了 web3 中的构建。
我们对 Lasso 的初步实现已经证明,与流行的 SNARK 工具链 halo2 中的查找参数相比,速度提高了 10 倍以上。当 Lasso 代码库完全优化后,我们预计速度会提高约 40 倍。Jolt 包含 Lasso 之上的其他创新,我们预计它能够实现与现有 zkVM 类似或更好的加速。
查找参数、Lasso 和 Jolt
SNARK前端是将计算机程序转换为 SNARK 后端可以摄取的电路的编译器。电路是一种极其有限的计算模型,其中可用的“原始运算”只是加法和乘法。
现代 SNARK 设计中的一个关键工具是一种称为查找参数的协议,它允许不受信任的证明者以加密方式提交一个大向量,然后证明该向量的每个条目都包含在某个预定的表中。查找参数可以通过有效地处理并非由少量加法和乘法自然计算的运算来帮助保持电路较小(请参阅我们的配套文章中讨论的按位运算示例)。
然而,正如以太坊基金会的 Barry Whitehat 去年在他称之为“查找奇点”的愿景中所概述的那样,“如果我们能够仅使用查找参数来有效地定义电路,那么它将导致更简单的工具和电路”。我们设计的电路只执行查找。正如巴里所写,随着时间的推移,查找参数“对于几乎所有事情都将变得比多项式约束更有效”。
这一愿景与当今的工作方式形成鲜明对比,当今开发人员通过使用特殊的领域特定语言(将程序编译为多项式约束)或直接手动编码约束来编写程序来部署 SNARK。该工具链需要大量工作,并且为安全关键型错误的蔓延提供了很大的表面积。即使使用复杂的工具和电路,SNARK 的性能仍然很慢,这限制了它们的适用性。
Lasso 和 Jolt 解决了所有三个关键问题:性能、开发人员体验和可审核性。我相信他们共同实现了查找奇点的愿景。Lasso 和 Jolt 还迫使人们重新思考 SNARK 设计中许多公认的智慧。在介绍了一些必要的背景知识后,本文重新审视了有关 SNARK 性能的一些常见观点,并解释了如何根据 Lasso 和 Jolt 等创新来更新它们。
SNARK 设计背景:为什么这么慢?
大多数 SNARK 后端都让证明者使用多项式承诺方案以加密方式承诺电路中每个门的值。然后证明者证明所提交的值确实对应于见证检查程序的正确执行。
我将来自多项式承诺方案的证明者工作称为承诺成本。SNARK 具有来自多项式承诺方案之外的额外证明成本。但承诺成本往往是瓶颈。Lasso 和 Jolt 也是如此。如果设计一个 SNARK,其中承诺成本不是主要的证明者成本,这并不意味着多项式承诺方案很便宜。相反,这意味着其他成本高于应有的成本。
直观上,承诺的目的是通过密码学方法安全地增加证明系统的简洁性。当证明者提交一个大的值向量时,大致就像证明者将整个向量发送给验证者,就像普通证明系统将整个见证人发送给验证者一样。承诺方案可以在不强迫验证者实际接收整个见证的情况下实现这一目标——这意味着 SNARK 设计中承诺方案的目的是控制验证者成本。
但这些加密方法对于证明者来说非常昂贵,特别是与SNARK 在多项式承诺方案之外使用的信息论方法相比。信息论方法仅依赖于有限域运算。并且一个字段操作比提交任意字段元素所需的时间快几个数量级。
根据使用的多项式承诺方案,计算承诺涉及多重幂运算(也称为多标量乘法,或 MSM)或FFT和 Merkle 哈希。Lasso 和 Jolt 可以使用任何多项式承诺方案,但在使用基于 MSM 的方案实例化时具有特别有吸引力的成本,例如IPA/Bulletproofs、KZG/PST、Hyrax、Dory或Zeromorph。
为什么 Lasso 和 Jolt 很重要
Lasso 是一种新的查找参数,其中证明者承诺比以前的工作更少且更小的值。根据上下文,这可能会导致 20 倍或更多的加速,其中 2 到 4 倍的加速来自于较少的提交值,另一个 10 倍的加速来自于 Lasso 中所有提交的值都很小的事实。与许多先前的查找参数不同,Lasso(和 Jolt)还避免了FFT,FFT 占用大量空间,并且可能成为大型实例的瓶颈。
此外,Lasso 甚至适用于巨大的表(比如大小为 2128),只要这些表是“结构化的”(在精确的技术意义上)。这些表太大,任何人都无法显式实现,但 Lasso 只为其实际访问的表元素付费。特别是——与之前的查找参数相比——如果表是结构化的,那么任何一方都不需要以加密方式提交表中的所有值。
Lasso 利用两种不同的结构概念:可分解性和LDE 结构。(LDE 是称为低次扩展多项式的技术概念的缩写。)可分解性大致意味着可以通过对更小的表执行少量查找来回答对表的单次查找。这是比 LDE 结构更严格的要求,但 Lasso 在应用于可分解表时特别有效。
Jolt
Jolt(JustOneLookupTable )是一种新的前端,由 Lasso 使用巨大的查找表的能力解锁。Jolt 的目标是虚拟机/CPU 抽象,也称为指令集架构(ISA)。支持这种抽象的 SNARK 称为 zkVM。例如,考虑RISC-Zero 项目也针对的RISC-V 指令集(包括乘法扩展)。这是由计算机体系结构社区开发的一种流行的开源 ISA,没有考虑到 SNARK。
对于每个 RISC-V 指令fi ,Jolt 的主要思想是创建一个包含fi的整个评估表的查找表。因此,如果fi采用两个 32 位输入,则该表将有 264 个条目,其中 (x,y )的第一个条目是fi(x,y)。如果我们考虑 64 位而不是 32 位数据类型的指令,则每条指令的表的大小将是 2128而不是 264。
对于基本上每个 RISC-V 指令,生成的查找表都是可分解的,并且套索适用。(少数指令是通过应用一小段其他指令来处理的。例如,除法是通过让证明者提交商和余数来处理的,并通过一次乘法和一次加法检查这些是否正确提供。)
然后可以生成运行 RISC-V CPUT个步骤的“电路”,如下所示。对于T个步骤中的每一个,电路都包含一些简单的逻辑,用于确定该步骤要执行的原始 RISC-V 指令fi是什么,以及该指令的输入 (x,y )是什么。然后,电路简单地通过执行查找来执行fi,该查找显示关联表的第(x,y ) 个条目。更准确地说,Jolt 考虑由每条指令的表串联组成的单个表 - 因此称为“仅一个查找表”。
重新审视 SNARK 设计中公认的智慧
Lasso 和 Jolt 还颠覆了 SNARK 设计中的一些公认的智慧。每条公认的智慧都以粗体字显示,后面是 Lasso 和 Jolt 如何改变事物。
#1.大面积的 SNARK是一种浪费。每个人都应该使用FRI、Ligero、Brakedown或变体,因为它们避免了通常适用于大范围的椭圆曲线技术。
这里的字段大小大致对应于 SNARK 证明中出现的数字的大小。由于非常大的数字的加法和乘法成本很高,因此大字段上的 SNARK 是浪费的想法意味着我们应该努力设计永远不会出现大数字的协议。基于 MSM 的承诺(定义如下)使用椭圆曲线,椭圆曲线通常是在大字段(大小约为 2256)上定义的,因此这些承诺因性能较差而闻名。
我之前的文章解释说,使用小字段是否有意义(即使它们是一个选项)在很大程度上取决于应用程序。Lasso 和 Jolt 走得更远。他们表明,即使使用基于 MSM 的承诺方案,证明者的工作也几乎可以独立于字段大小。这是因为,对于基于 MSM 的承诺,承诺值的大小比这些值所在字段的大小更重要。
有关 MSM 的详细信息。大小为n的多次幂运算(也称为 MSM)计算以下形式的表达式
,其中每个gi是乘法群的元素。朴素多重求幂算法执行n组求幂和n组乘法。每次求幂可能比乘法慢约 400 倍。
Pippenger 的多重求幂算法比朴素算法节省了大约 log(n)的因子。实际上,这可能远远超过 10 倍。此外,如果所有指数都很“小”(例如,在 0 和 2^20之间),则可以在多次取幂时间中节省 10 倍的因子。这类似于计算
比计算
速度快 10 倍。前者涉及16次平方,后者涉及160次。
如果所有提交的值都很小,Pippenger 的算法只需要(大约)一组乘法来提交一个值(请参阅本文第 4 节以获得很好的说明)。
Lasso 和 Jolt 的新属性。现有的 SNARK 使证明者承诺许多随机字段元素。例如,名为Plonk的流行 SNARK 后端中的证明者承诺每个电路门大约 7 个随机场元素(以及其他非随机场元素)。即使被证明的计算中出现的所有值都很小,这些随机场元素也会很大。
相比之下,Lasso 和 Jolt 仅要求证明者提交较小的值(Lasso 的证明者提交的值也比先前的查找参数少)。这极大地提高了基于 MSM 的方案的性能。至少,Lasso 和 Jolt 应该废除这样的观念:在证明者性能很重要的情况下,社区应该放弃基于 MSM 的承诺。
#2:更简单的指令集带来更快的 zkVM。
只要每条指令的评估表是可分解的,Jolt 的(每条指令)复杂度仅取决于指令的输入大小。Jolt 证实,令人惊讶的复杂指令是可分解的,特别是所有 RISC-V。
这与人们普遍认为的观点相反,即更简单的虚拟机 (zkVM) 必然会导致更小的电路和相关的更快的证明器(VM 的每一步)。这是特别简单的 zkVM(例如Cairo VM)背后的指导动机,它们是专门为 SNARK 友好而设计的。
事实上,对于更简单的虚拟机,Jolt 为证明者实现了比之前的 SNARK 更低的承诺成本。例如,对于 Cairo VM 执行,SNARK 证明者在 VM 的每个步骤中提交 51 个字段元素。Cairo 部署的 SNARK 当前在251 位字段上工作(63 位是 SNARK 可以使用的字段大小的硬下限)。Jolt 的证明器致力于 RISC-V CPU 的每步约 60 个字段元素(定义超过 64 位数据类型)。考虑到提交的字段元素很小的事实后,Jolt 证明者的成本大致相当于提交 6 个随机 256 位字段元素的成本。
#3:将大型计算分解为小块不会造成性能损失。
基于这种观点,当今的项目将任何大电路分解成小块,分别证明每个块,并通过 SNARK 递归聚合结果。这些部署使用这种方法来缓解流行 SNARK 中的性能瓶颈。例如,基于 FRI 的 SNARK 需要接近 100 GB 的证明空间,即使对于小型电路也是如此。它们还需要 FFT,这是一种超线性运算,如果 SNARK“同时”应用于大型电路,则可能成为瓶颈。
现实情况是,一些 SNARK(例如 Lasso 和 Jolt)表现出规模经济(而不是当前部署的 SNARK 中的规模不经济)。这意味着被证明的语句越大,相对于直接证人检查(即在不保证正确性的情况下评估证人电路所需的工作),证明者开销越小。在技术层面,规模经济来自两个地方。
- n大小的 MSM的 Pippenger 加速:相对于朴素算法的log(n ) 因子改进。n越大,改善越大。
- 在 Lasso 等查找参数中,证明者支付“一次性”成本,该成本取决于查找表的大小,但与查找的值的数量无关。一次性证明者成本在对表的所有查找中进行摊销。更大的块意味着更多的查找,这意味着更好的摊销。
当今处理大型电路的流行方法是将事物分解成尽可能小的部分。每个部分的大小的主要限制是它们不能太小,以至于递归聚合证明成为证明者的瓶颈。
Lasso 和 Jolt 提出了一种本质上相反的方法。人们应该使用具有规模经济性的 SNARK。然后将大型计算分解为尽可能大的部分,并对结果进行递归。每个片段大小的主要限制是证明空间,它随着片段变大而增长。
#4:高度约束对于高效的 SNARK 是必要的。
Jolt 使用 R1CS 作为其中间表示。在 Jolt 中使用“高度”或“自定义”约束没有任何好处。Jolt 中的证明者成本大部分在于查找参数 Lasso,而不是证明将查找视为理所当然的结果约束系统的可满足性。
Jolt 是通用的,因此它不会失去通用性。因此,它反驳了开发人员对设计高度约束(通常是手动指定)的强烈关注,以努力从当今流行的 SNARK 中挤出改进的性能。
当然,某些上下文仍然可能受益于高度或自定义约束。一个重要的例子是Minroot VDF,其 5 度约束可以将承诺成本降低约 3 倍。
#5:稀疏多项式承诺方案成本高昂,应尽可能避免。
这是针对最近引入的名为CCS 的约束系统和支持它的 SNARK 的主要批评——(超级)斯巴达和(超级)马林鱼。正如我在上一篇文章中所讨论的,CCS 是当今实践中流行的所有约束系统的清晰概括。
这种批评是没有根据的。事实上,Lasso 和 Jolt 的技术核心是Spartan中的稀疏多项式承诺方案(参见第 7 节),称为 Spark。Spark 本身是将任何(非稀疏)多项式承诺方案通用转换为支持稀疏多项式的方案。
Lasso 优化并扩展了 Spark,以确保证明者只承诺“小”值,但即使没有这些优化,批评也是不合理的。事实上,Spartan 的证明者比SNARK(例如避免稀疏多项式承诺的Plonk)承诺更少的(随机)字段元素。
正如我在上一篇文章中所讨论的,Spartan 的方法具有额外的性能优势,特别是对于具有重复结构的电路。对于这些电路,加法门不会增加 Spartan 证明者的加密工作。这项工作仅随着给定约束系统中变量的数量而增长,而不是随着约束的数量而增长。与 Plonk 不同的是,Spartan 证明者无需提交同一变量的多个不同“副本”。
***
我们乐观地认为 Lasso 和 Jolt 将极大地改变 SNARK 的设计方式,从而提高性能和可审计性。本系列的后续文章将更深入地探讨 Lasso 和 Jolt 的工作原理。特别是,我将解释他们对和检查协议的使用,这是一种具有神奇能力的关键工具,可以最大限度地减少证明者的承诺成本。随着我们继续优化 Lasso 和构建 Jolt,我们欢迎来自社区的反馈。您可以在这里联系我,我也会在那里宣布未来的工作。
***
致谢:Justin Thaler 与同事Srinath Setty(微软研究院)、Riad Wahby(卡内基梅隆大学)和Arasu Arun(纽约大学)一起开发了 Lasso 和 Jolt;Lasso 的实现是由 a16z 加密工程师Sam Ragsdale和Michael Zhu完成的。
***
Justin Thaler是 a16z 的研究合伙人,也是乔治城大学计算机科学系的副教授。他的研究兴趣包括可验证计算、复杂性理论和海量数据集算法。
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
您可能感兴趣
-
解读CKB版 “闪电网络” Fiber Network:比特币可编程性扩展的另一种思路
作者:NingNing行业周期与宏观金融周期共振,加密行业正处在与 2019 年相似的整体性迷茫之中,现阶段不仅流动性枯竭,叙事貌似也在枯竭。市场不但对 VC 叙事兴趣阙如,对反 VC 的 Meme 叙事也已经疲倦。就像每次哲学危机,人们都会回归柏拉图寻找出路,当加密行业危机时,我们也需要回归比特币、回归中本聪。正如 CKB 生态 RGB++ 协议创始人 Cipher 在最新 Blog 里所阐述的,加密行业需要对以太坊 “链上计算” 的路径依赖进行反思,回归P2P经济学,让计算归于链下,让验证归于链上。因
-
面对NFL球员工会起诉,“退圈”的DraftKings竟主动承认NFT是证券?
作者:Zen,PANews近日,美国国家橄榄球联盟球员协会 (NFLPA) 指控数字体育娱乐和游戏公司DraftKings 逃避了其 NFT 球员许可协议的付款义务。在放弃NFT业务后,涉嫌出售未注册证券而遭到集体诉讼的DraftKings又背上了一起官司。而有趣的是,在与NFLPA的纠纷中,DraftKings的立场似乎已从反驳转变为积极承认“NFT就是证券”。放弃NFT业务:驳回集体诉讼的动议遭到否决今年7月底,Draftkings在给用户的电子邮件中表示:“经过慎重考虑,DraftKings 决定终
-
简析两种最新比特币智能合约实现方案:OP_NET与Arch有何区别?
作者:Cookie过去半个月,OP_NET 与 Arch 这两个比特币主网上的智能合约实现方案引发了较多的讨论。有意思的事情是,OP_NET 这个名字与大家熟悉的 OP_CAT 很像,都以「OP_」开头,具有很强的、让大家认为这哥俩差不多的迷惑性。所以,在开篇要和大家先提一嘴 OP_CAT。首先,OP_CAT 是比特币操作码,从去年开始有以「量子猫」Quantum Cats,也就是「大巫师」Taproot Wizards 的创始人 Udi Wertheimer 为首的社区力量一直在呼喊要「复活」OP_CA
-
争议不断,以太坊正在失去“万链之王”的权威
作者:Climber,金色财经近期围绕以太坊的话题和争议越来越多,不仅 Vitalik 本人需要下场解释观点,就连以太坊基金会也要发布公告来平息社区的质疑声。在本轮牛市周期中,以太坊的表现可谓平平。而美国以太坊现货 ETF 的通过也并未让 ETH 走势如投资者期待般爆发,相反却在币价方面越走越低。这就不免让有着「万链之王」美誉的以太坊逐渐失去投资者和社区的尊重,进而质疑起有关以太坊的方方面面。争议不断,以太坊亟需重塑权威最近一段时间以来社区成员对 Vitalik 言论观点、以太坊基金会乃至以太坊生态系统的
-
从《黑神话:悟空》谈起,GameFi何时能取得真经?
作者:YBB Capital Researcher Zeke前言本文是市场垃圾时间中的一些闲聊,需要对传统游戏市场有一定程度了解。大家可以把这篇文章当作日记或者随想观看,这些只是我在游玩《黑神话:悟空》之后对GameFi的一些粗浅思考,以及对这个赛道未来的看法。一、游戏科学的九九八十一难三天全网销量破千万、Steam玩家同时在线峰值破235万、多家品牌联名周边销售爆火、国家级媒体多次采访、多个游戏取景地可凭游戏通关记录终身免费进入、86版《西游记》YouTube观看量超400万。以上,是《黑神话:悟空》上
-
Gavin Wood:如何防止女巫攻击进行有效空投?
演讲:Gavin WoodGavin 近期一直在关注的女巫攻击(civil resistance)的问题,PolkaWorld 回顾了 Gavin Wood 博士在 Polkadot Decoded 2024 上的主题演讲,想要探究 Gavin 在如何防止女巫攻击上的一些见解。什么是女巫攻击?你们可能知道,我一直在研究一些项目,我在编写灰皮书,专注于 JAM 项目,也在这个方向上做了一些代码的工作。实际上,在过去的两年时间里,我一直在思考一个非常关键的问题,这个问题在这个领域中非常重要,那就是如何防止女巫
-
市场热议,链抽象将成加密新叙事?
2024年,加密货币领域的技术创新持续加速,链抽象(Chain Abstraction)逐渐成为行业内的焦点。链抽象技术的核心在于通过隐藏底层技术的复杂性,让用户能够更加便捷地在多个区块链之间进行操作。传统的区块链技术通常要求用户掌握不同链的操作流程,并需要应对跨链操作中的技术难题,这极大地吸引了新用户的进入。而链抽象的出现,则为这些问题提供了有效的解决方案,成为Web3建设不可忽视的重要一环。01、什么是链抽象及其作用链抽象能够将不同的区块链之间的差异整合在一个统一的操作界面中,使得用户只需一个账户即可
-
今日日报|马斯克和特斯拉赢得“被指控操纵狗狗币”的诉讼;稳定币支付平台Bridge完成5800万美元融资
今日要闻提示:马斯克和特斯拉赢得驳回指控他们操纵狗狗币的诉讼OpenAI和Anthropic已同意将其主要新AI模型在发布前共享给美国政府OKX将上线Hamster Kombat(HMSTR)现货交易X平台纽约总部将于9月13日关闭,预计将迁往得州萨尔瓦多总统布克尔成为《时代》杂志最新一期封面人物稳定币支付公司Bridge完成5800万美元融资数据:MATIC、SHIB、UNI代币头部地址持仓均超50%网龙今年上半年通过出售2.9亿元的加密货币,获利5100万元人民币监管消息美国众议院计划在9月举行多场加
- 成交量排行
- 币种热搜榜