a16z:零知识证明保护去中心化和隐私将取得一系列进展
作者:Elena Burger / a16z Crypto
编译:比推 Mary Liu
看待技术进步的一种方法是从硬件的角度:随着新需求和用例的出现,芯片制造商会设计专用的 GPU、FPGA 和 ASIC,以针对特定功能和软件进行优化。从云计算到计算机图形学、人工智能和机器学习,所有主要的科技行业都已经发展到需要能够加快计算运行速度和效率的硬件。通常,用于初始功能(无论是存储内存、渲染图形还是运行大规模模拟)的芯片将在确定可通用模式和开发专用硬件之前简单地开始。理想情况下,随着时间的推移,这种硬件会变得更便宜,更容易被消费者使用。
这种现象的一个很好的历史例子是数码相机的发展。在 1960 年代,半导体被集成到胶片相机中,以自动化简单的功能,例如测光快门速度或根据人们试图捕捉的光的质量调整光圈大小——但在内存中捕捉图像的行为当时还做不到。 1970 年代数码相机的第一次实验源于可以采用magnetic bubbles的概念(一种在内存中存储单个数据的原始形式)并构建电荷耦合器件 (CCD) 来在硅上以电子的形式吸收和储存光。数码相机技术的最初轮廓甚至没有提到百万像素的概念,但由于当时半导体的限制,相机的分辨率(更不用说速度和存储)相当差:第一台相机的分辨率约为 0.0001 百万像素,图像从缓冲区传递到内存大约需要 23 秒。百万像素数量和相机内存之间的权衡一直很难,直到 1990 年代更新的传感器互补金属氧化物半导体 (CMOS) 变得更便宜且更主流(相比之下,现代 iPhone 使用 CMOS 并提供大约 12 兆像素的相机质量)。
在几十年的时间里,数码相机从研究人员设计的昂贵装置发展到价值数万美元的设备,再到嵌入每部手机中,成本降到只需几百或几千美元。
其他领域也遵循类似的轨迹,从通用硬件到特定应用硬件。加密空间中硬件优化的一个较新的例子是加密货币挖掘:当比特币挖掘于 2009 年推出时,任何人都可以在标准多核 CPU 上运行 SHA256 哈希算法。随着时间的推移,随着采矿业变得更具竞争力,区块奖励下降,期待一种全球性的、抗审查货币的想法变得更加主流,围绕开发更高效的采矿硬件的行业发展起来。首先,我们过渡到 GPU 挖掘,它允许从个位数挖掘并行性扩展到五位数挖掘并行性,从而加快了进程。而今天,用于挖掘比特币的 ASIC 设备可以计算大约 90-100 terahashes/秒——比 CPU 芯片强大约 50 亿倍。
换句话说,您可能将采矿视为一个开始——这是一种概念证明,即去中心化货币不仅是可能的,而且是可取的。即使我们处于ASIC 采矿的高级阶段,但仍处于 web3 硬件的初始阶段。随着区块链吸引了数百万用户,并且它们托管的应用程序的复杂性不断提高,围绕隐私和可扩展性的两个关键需求出现了。
一个需要确定的关键趋势是,虽然专用硬件的开发正在变革,优化“消费级”硬件算法的趋势也逐渐兴起,以努力保护去中心化和隐私。零知识证明(zero-knowledge)尤其能很好地体现这一趋势。
零知识证明的简要概述
零知识证明提供了一种加密方式来证明特定信息或数据集的知识,而无需实际暴露该信息是什么。零知识证明结构涉及“证明者”和“验证者”;证明者根据系统输入的知识创建证明,而验证者有能力确认证明者真实地评估了计算。零知识证明在当今的区块链中有多种用例——最常见的是在隐私领域(例如 IronFish、TornadoCash、Worldcoin、zCash)或通过计算验证链下状态转换来扩展以太坊(例如 Polygon 的零知识Rollups套件、Starknet 和 zkSync)。Aleo 和 Aztec建议同时解决隐私和可扩展性问题。
值得深入了解一下密码学的进步——就在过去的十年里——这使得所有这些应用程序变得可行、更快,也许最重要的是,抗审查和去中心化。通过结合算法和硬件的进步,生成和验证证明变得更便宜,计算量也更少。在许多方面,这些进步反映了数码相机等技术的民主化:你从一个昂贵且低效的过程开始,然后才弄清楚如何让事情变得更便宜和更快。也许最关键的是,零知识算法的进步开始为在服务器和其他集中式环境中生成证明计算提供替代方案。
证明设置涉及对一组多项式(代表程序)的计算进行门控的算术电路; 当您尝试缩放由这些多项式表示的信息量时,这些Gate会变得更加复杂。 理想情况下,您希望证明者的可能输出范围非常大,以降低证明者能够通过计算蛮力达到验证者预期的相同数字的可能性(一个称为Collision Resistance的概念)。通过增加这些数字,您可以提高证明的概率安全性,就像在工作量证明挖掘中一样。 然而,大量的输出可能非常昂贵并且生成起来计算速度很慢。 这就是证明算法和硬件方面取得进步的地方。
zkSNARKs 于 2011 年首次推出,是这些进步的关键因素。 zkSNARKs 本质上使得有效地扩展可门控的多项式数量、解锁速度和零知识证明的更复杂的潜在应用成为可能。
zkSNARK 的“SNARK”部分代表“Succinct Non-Interactive Arguments of Knowledge”,在 web3 概念中最重要的词是“简洁”和“非交互式”。 zkSNARK 中的证明只有几百个字节,这使得验证者可以轻松快速地检查证明是否正确(不过,正如您将看到的,证明本身可能需要很长时间才能生成,原因下面会解释)。非交互式组件也很关键:非交互式证明使验证者无需质疑证明者提交的陈述;在区块链环境中,这将需要客户来回使用验证器,这将是耗时且难以构建的。需要注意的是,在首次引入 zkSNARK 时,并未提及将其用于保护隐私的区块链或扩展交易的想法;原始论文提出了诸如第三方有效地在大量数据上运行计算,而无需下载或编译数据集。虽然这个例子在理论上类似于隐私和扩展的用例类型,但该领域的人们花了几年时间将 zkSNARKs 应用于加密货币。
零知识证明冲击区块链
第一个实现 zkSNARKs 的加密协议是 zCash,它是 2014 年开发的一种私人支付加密货币。zCash 是一个基于比特币 UTXO 模型的工作量证明挖矿网络,是一个特别值得关注的例子,因为它的改进说明了密码学的改进带来了更具可扩展性的隐私形式。 zCash实现的原始协议Sprout协议,使用SHA256压缩函数创建椭圆曲线;虽然这在密码学上是安全的,但它也是时间和内存密集型的;生成证明可能需要几分钟时间,并且需要大约 3KB 的内存。几年后,zCash 核心团队开发了一条新曲线 Bowe-Hopewood-Pedersen 来替代 SHA256,并于 2018 年将 zCash 从 Sprout 过渡到 Sapling 协议。除了更新的曲线之外,该团队还使用了不同的电路Groth16 证明系统,并重新设计了他们处理网络中帐户的方式,实现了大约 2.6 秒的证明时间和 40MB 的内存,使得从手机生成证明成为可能。
zCash 的升级说明了两个有趣的概念,这些概念在零知识证明系统的改进中仍然存在。首先是你可以结合不同的配对和证明系统来解锁效率。人们可能会将证明电路、曲线、约束系统和承诺方案的库视为可以互换的成分,以创建具有不同速度、效率和安全假设的“零知识配方”。第二个是隐私是这些改进的动力——如果证明不是在设备(例如计算机或手机)上生成的,则需要将其发送给第三方才能生成。这可能会泄露有问题的私人信息,因为您的“私人输入”需要以明文形式发送。我们可以将 zCash 视为一个早期迹象,表明通过算法改进可以非常快速地优化用户友好性和去中心化。诸如保护隐私的加密货币 IronFish 等较新的项目进一步推动了这种去中心化的价值,让任何人都可以直接从他们的网络浏览器挖掘和运行节点。
PLONK进入该领域
2019 年,Ariel Gazibon、Zac Williamson 和 Oana Ciobotaru 发表了一篇论文,提出了 PLONK,这是一种具有多项关键进步的新证明系统。第一个重大突破是 PLONK 只需要一个单一的、通用的可信设置——在初始仪式中,证明者和验证者对给定的零知识证明系统使用公共参考字符串。
正如 Vitalik Buterin 在他的“了解 PLONK”一文中解释的那样,一个单一的受信任设置是可取的,因为“不是为您想要证明的每个程序都有一个单独的受信任设置,而是整个方案只有一个受信任的设置,然后您可以将该方案与任何程序一起使用。”虽然 zCash 必须为其证明系统(Sprout 和 Sapling)的每个实例化执行可信设置,但 PLONK 设置可以执行一次,并且可以被任意数量的项目永久使用。 2019 年,Aztec Network 举行了一场有 176 名参与者运行的 MPC 设置仪式;该方案不仅被 Aztec 使用,而且被其他寻求基于零知识证明的解决方案的团队使用,包括 Matter Labs/zkSync、Mina 和即将到来的 zCash 更新。
PLONK 之所以有用还有另一个原因:它们提供了相对较快的证明时间;证明参与者进行的测试发现,消费级计算机(在本例中为具有 16GB RAM 的 SurfacePro 6)可以在 23 秒内生成证明。一个重要的警告:这些只是基准,目前实施的 PLONK 证明可能需要更长的时间才能生成。这是因为许多实施 PLONK 证明的团队正在将它们应用于零知识汇总,这需要将数千个链下交易聚合到一个单一的证明中。这些交易通常由计算量大的证明者处理,然后将这些交易的记录发送到定序器,以便在以太坊的主网上发布。
当我们查看Rollups时,会出现一些有趣的问题,这些问题围绕着您如何以及在何处实现去中心化。 Matter Labs 采用的一种方法是使用 zkPorter,这是一种用于汇总的第二种账户类型,其数据可用性保持在链外。当 zkPorter 上线时,人们可以选择在 zkSync 上进行交易,它提供了 L1 以太坊的完全安全性(吞吐量高达每秒 2,000 笔交易),或在 zkPorter 上进行交易,每秒可达到 20,000+ 笔交易。 至关重要的是,zkPorter 被构建为一个权益证明网络,它将使用持有代币的“监护人”来跟踪链下状态,这将节省几个数量级的交易成本,同时仍然提供强有力的安全保证。 虽然 Matter Labs 还没有针对证明者去中心化,但网络级去中心化是Rollups可以优先考虑中立性(同时也解锁速度)的另一种关键方式。 隐私保护Rollups 公司 Aztec 谈到了一种联合他们的证明者网络的方法,允许从手机或计算机生成证明。 值得注意的是,所有这些提议都还处于早期阶段,团队仍在迭代他们的方法。
其他以硬件为中心的基于区块链的隐私方法包括 Worldcoin,它使用零知识证明系统 Semaphore 创建分散的、抗女巫攻击(Sybil Attack)的货币。为此,Worldcoin 接收者通过一个球体扫描他们的虹膜,以验证个人只注册了一次 Worldcoin。至关重要的是,Worldcoin 不会存储或泄露用户的私人信息。要注册 Worldcoin,人们需要在手机上生成一个 Semaphore 公钥,以 QR 码的形式将密钥呈现给球体,然后由 Worldcoin 的球体扫描他们的虹膜并输出哈希序列。 Worldoin 验证哈希与已经生成的哈希不匹配,确保一个人只经历一次注册过程。通过使用哈希而不是存储生物特征数据,Worldcoin 能够使用零知识证明来保护用户隐私。
我们可以和将要建造什么?
站在技术革命的尾声并宣布其带来的巨大经济和社会变革是必然的,这很容易;今天,人人手里拿着一部 iPhone,它拥有所有令人惊叹的功能——摄影、存储、互联网访问、通信——但这些技术在落地之前可能并没有被提前预知。同样,我们站在一个尚未解决的大规模社会和经济转变的开端,也不清楚需要多长时间才能完全实现变革。
我们目前正处于零知识证明方案的一系列进展的早期阶段——但就在过去十年中,速度、效率、用户友好性和去中心化方面的改进令人震惊。我们已经从零知识空间中极少数面向消费者的应用程序发展到在很短的时间内为隐私和可扩展性提供应用程序和区块链的整个生态系统。像这样的新技术最令人兴奋的事情之一是,很难预测另一面到底是什么样子。当每个人都可以通过手机证明完全私密的交易,并选择托管大量去中心化应用程序的去信任区块链时,会发生什么?是一个每个人都有权赎回相同的无国界、去中心化货币的世界吗?
当我们经历这场革命时,重要的是要牢记初心,即指导我们的核心价值观—-可访问性、无需信任,最重要的是去中心化。