# 去中心化的速度：零知识证明的进步

By [BitcoinCorleone Everyday](https://paragraph.com/@yinjun) · 2022-05-07

---

![Sakura Vista - Inaka](https://storage.googleapis.com/papyrus_images/841f49f99f63595666c902a9c81be82959d6810a841210d9074d70007ab1c974.png)

Sakura Vista - Inaka

看待技术进步的一种方法是从硬件的角度来看：随着新需求和用例的出现，芯片制造商会设计专用的 GPU、FPGA 和 ASIC，以针对特定功能和软件进行优化。从云计算到计算机图形学、人工智能和机器学习，所有主要的科技行业都已经发展到需要能够加快计算运行速度和效率的硬件。通常，用于初始功能（无论是存储内存、渲染图形还是运行大规模模拟）的芯片会在确定通用模式和开发专用硬件之前非常简单地开始。理想情况下，随着时间的推移，这种硬件会变得更便宜，更容易被消费者使用。

这种现象的一个很好的历史例子是数码相机的发展。在 1960 年代，半导体被集成到胶片相机中，以自动化简单的功能，例如测光快门速度或根据人们试图捕捉的光的质量调整光圈的大小——但在内存中捕捉图像的行为并不是还是有可能的。1970 年代数码相机的第一次实验是从以下认识演变而来的以硅上的电子形式存在。数码相机技术的最初轮廓甚至没有提到百万像素的概念，但是由于当时半导体的限制，相机的分辨率（更不用说速度和存储）很差：第一台相机的分辨率约为 0.0001 百万像素，图像从缓冲区传递到内存大约需要 23 秒。百万像素数量和相机内存之间的权衡一直很紧张，直到 1990 年代更新的传感器互补金属氧化物半导体 (CMOS) 变得更便宜且更主流（相比之下，现代 iPhone 使用 CMOS 并提供大约 12 百万像素的相机质量）。

在几十年的时间里，数码相机从研究人员设计的可以使用昂贵半导体的黑客装置发展到价值数万美元的设备，再到嵌入每部手机中，任何人都可以使用几百美元或千美元。

其他领域也遵循类似的轨迹，从通用硬件到特定应用硬件。加密空间中硬件优化的最新示例是加密货币挖掘：当比特币挖掘于 2009 年推出时，任何人都可以在标准多核 CPU 上运行 SHA256 哈希算法。随着时间的推移，随着采矿业变得更具竞争力，区块奖励下降，人们普遍理解为什么人们可能想要一种全球性的、抗审查的货币变得更加主流，围绕开发更高效的采矿硬件的整个行业发展起来。首先，我们过渡到 GPU 挖掘，它允许从个位数挖掘并行性扩展到五位数挖掘并行性，从而加快了进程。而今天，用于挖掘比特币的 ASIC 钻机可以计算大约 90-100 terahashes/秒——大约是 CPU 芯片的 50 亿倍。

换句话说，您可能将采矿视为一个开始——这是一种概念证明，即去中心化货币不仅是可能的，而且是可取的。即使我们处于挖掘 ASIC 的高级阶段，我们仍处于 web3 硬件将成为的初始阶段。随着区块链吸引了数百万用户，并且它们托管的应用程序的复杂性不断提高，围绕隐私和可扩展性的两个关键需求出现了。

一个需要确定的关键趋势是，虽然正在为许多此类应用程序开发专用硬件，但也存在优化消费级硬件算法的运动，以努力保护分散化和隐私。零知识证明尤其能很好地体现这一趋势的一个领域。

1/ A brief overview of zero-knowledge proofs today

零知识证明提供了一种以密码方式证明特定信息或数据集的知识的方法，而无需实际揭示该信息是什么。无需过多关注，零知识证明结构涉及“证明者”和“验证者”；证明者根据系统输入的知识创建证明，而验证者有能力确认证明者在不知道输入或重新计算自己的情况下真实地评估了计算。零知识证明在当今的区块链中有多种用例——最常见的是在隐私领域（例如 IronFish、TornadoCash、Worldcoin、Zcash）或通过计算验证链下状态转换来扩展以太坊（示例包括 Polygon 的零知识汇总套件、Starknet 和 zkSync）。有些人，如 Aleo 和 Aztec，建议同时解决隐私和可扩展性问题。

值得深入了解一下密码学的进步——就在过去的十年里——这使得所有这些应用程序变得可行、更快，也许最重要的是，抗审查和去中心化。通过结合算法和硬件的进步，生成和验证证明变得更便宜，计算量也更少。在许多方面，这些进步反映了数码相机等技术的民主化：你从一个昂贵且低效的过程开始，然后才弄清楚如何让事情变得更便宜和更快。也许最关键的是，零知识算法的进步开始为在服务器和其他集中式环境中生成证明计算提供替代方案。

证明设置涉及对一组多项式（代表程序）的计算进行门控的算术电路；当您尝试缩放由这些多项式表示的信息量时，这些门会变得更加复杂。理想情况下，您希望证明者的可能输出范围非常大，以降低证明者能够通过计算蛮力达到验证者预期的相同数字的可能性。（这是一个称为抗碰撞的概念。）通过增加这些数字，您可以提高证明的概率安全性，就像在工作量证明挖掘中一样。然而，大量的输出可能非常昂贵并且生成起来计算速度很慢。这就是在证明算法和硬件方面取得进步的地方。

zkSNARKs 于 2011 年首次推出，是这些进步的关键因素。zkSNARKs 本质上使得有效地扩展可门控多项式的数量、解锁速度和零知识证明的更复杂的潜在应用成为可能。

zkSNARK 的“SNARK”部分代表“Succinct Non-Interactive Arguments of Knowledge”，在 web3 的上下文中最重要的词是“简洁”和“非交互式”。zkSNARK 中的证明只有几百个字节，这使得验证者可以轻松快速地检查证明是否正确（不过，正如您将看到的，证明本身可能需要很长时间才能生成，原因如下：下面会解释）。非交互式组件也很关键：非交互式证明使验证者无需质疑证明者提交的陈述；在区块链环境中，这将需要客户来回使用验证器，这将是耗时且难以构建的。需要注意的是，在首次引入 zkSNARK 时，并未提及将其用于保护隐私的区块链或扩展交易的想法；原始论文提出了诸如第三方有效地在大量数据上运行计算，而无需下载或编译数据集。虽然这个例子在理论上类似于隐私和扩展的用例类型，但该领域的人们花了几年时间才将 zkSNARKs 应用于加密货币。

2/ Zero-knowledge proofs hit the blockchain

第一个实现 zkSNARKs 的加密协议是 Zcash，它是 2014 年开发的一种私人支付加密货币。Zcash 是一个基于比特币 UTXO 模型的工作量证明挖矿网络，是一个特别值得关注的例子，因为它的改进说明了方式其中密码学的改进导致了更具可扩展性的隐私形式。Zcash 实现的原始协议 Sprout 协议使用 SHA256 压缩函数创建椭圆曲线；虽然这在密码学上是安全的，但它也是时间和内存密集型的；生成证明可能需要几分钟时间，并且需要大约 3KB 的内存。几年后，Zcash 核心团队开发了一种新的哈希，Bowe-Hopwood-Pedersen，以取代 SHA256，并在 2018 年将 Zcash 从 Sprout 转换为 Sapling 协议。除了更新的哈希，团队还使用了不同的电路Groth16 证明系统，并重新设计了他们处理网络中帐户的方式。这导致了大约 2.6 秒的证明时间和 40MB 的内存，使得从手机生成证明成为可能（可以在此处找到有关升级的更多信息）。

Zcash 的升级说明了两个有趣的概念，这些概念在零知识证明系统的改进中仍然存在。首先是你可以结合不同的配对和证明系统来解锁效率。人们可能会将证明电路、曲线、约束系统和承诺方案的库视为可以互换的成分，以创建具有不同速度、效率和安全假设的“零知识配方”。第二个是隐私是这些改进的动力——如果证明不是在设备（例如计算机或手机）上生成的，则需要将其发送给第三方才能生成。这可能会泄露有问题的私人信息，因为您的“私人输入”需要以明文形式发送。我们可以将 Zcash 视为一个早期迹象，表明通过算法改进可以非常快速地优化用户友好性和去中心化。像保护隐私的加密货币 IronFish 等较新的项目进一步推动了这种去中心化的价值，因为任何人都可以直接从他们的网络浏览器挖掘和运行节点。

3/ PLONK enters the field (no pun intended)

2019 年，Ariel Gabizon、Zac Williamson 和 Oana Ciobotaru 发表了一篇论文，提出了 PLONK，这是一种具有多项关键进步的新证明系统。第一个重大突破是 PLONK 只需要一个单一的、通用的可信设置——在初始仪式中，证明者和验证者对给定的零知识证明系统使用公共参考字符串。

正如 Vitalik Buterin 在他的“了解 PLONK”一文中解释的那样，一个单一的受信任设置是可取的，因为“不是为您想要证明的每个程序都有一个单独的受信任设置，而是整个方案只有一个受信任的设置，然后您可以将该方案与任何程序一起使用。”虽然 Zcash 必须为其证明系统（Sprout 和 Sapling）的每个实例化执行可信设置，但 PLONK 设置可以执行一次，并由任意数量的项目永久使用。2019 年，Aztec Network 举行了一场有 176 人参加的可信成立仪式；这个方案不仅被 Aztec 使用，而且被其他寻求基于零知识证明的解决方案的团队使用，包括 Matter Labs/zkSync、Mina 和即将到来的 Zcash 更新。

PLONK 之所以有用还有另一个原因：它们提供了相对较快的证明时间；证明作者进行的测试发现，消费级计算机（在本例中为具有 16GB RAM 的 SurfacePro 6）可以在 23 秒内生成证明。一个重要的警告：重要的是要注意这些只是基准，而今天实施的 PLONK 证明可能需要更长的时间才能生成。这是因为许多实现 PLONK 证明的团队正在将它们应用于零知识汇总，这需要将数千个链下交易聚合到一个单一的证明中。这些交易通常由计算量大的证明者处理，然后将这些交易的记录发送到定序器，以便在以太坊的主网上发布。

在查看汇总时，会出现一些有趣的问题，这些问题围绕着您如何以及在何处定位去中心化。Matter Labs 采用的一种方法是使用 zkPorter，这是一种用于汇总的第二种账户类型，其数据可用性保持在链外。当 zkPorter 上线时，人们可以选择在 zkSync 上进行交易，它提供了 L1 以太坊的完全安全性（吞吐量高达每秒 2,000 笔交易），或者在 zkPorter 上交易，每秒可以达到 20,000+ 笔交易.至关重要的是，zkPorter 被构建为一个权益证明网络，它将使用持有代币的“监护人”来跟踪链下状态，这将节省几个数量级的交易成本，同时仍然提供强有力的安全保证。虽然 Matter Labs 还没有针对证明人的去中心化，但网络级别的去中心化是汇总可以优先考虑中立性（同时也解锁速度）的另一种关键方式。隐私保护汇总公司 Aztec 谈到了一种联合他们的证明者网络的方法，允许从手机或计算机生成证明。值得注意的是，所有这些提议都还处于早期阶段，团队仍在迭代他们的方法。

其他以硬件为中心的基于区块链的隐私方法包括 Worldcoin，它正在使用零知识证明系统 Semaphore 创建一种分散的、抗女巫的货币。为此，Worldcoin 接收者通过一个球体扫描他们的虹膜，以验证个人只注册了一次 Worldcoin。至关重要的是，Worldcoin 不会存储或泄露用户的私人信息。要注册 Worldcoin，一个人在他们的手机上生成一个 Semaphore 公钥，将密钥以 QR 码的形式呈现给球体，并让 Worldcoin 的球体扫描他们的虹膜并使用散列输出。Worldoin 然后验证哈希与已经生成的哈希不匹配，确保一个人只经历一次注册过程。通过使用哈希而不是存储生物特征数据，Worldcoin 能够使用零知识证明来保护用户隐私。

4/ So what can and will be built?

站在技术革命的尾声并宣布其带来的巨大经济和社会变革是不可避免的，这很容易；今天，一个人手里拿着一部 iPhone，它拥有所有令人惊叹的功能——摄影、存储、互联网接入、通信——可能并没有考虑使这项技术成为可能所需的所有进步。同样难以站在一个尚未解决的大规模社会和经济转变的开端，也不清楚需要多长时间才能完全实现变革。

我们目前正处于零知识证明方案的一系列进展的早期阶段——但就在过去十年中，速度、效率、用户友好性和去中心化方面的改进令人震惊。我们已经从零知识领域的极少数面向消费者的应用程序发展为在很短的时间内为隐私和可扩展性提供应用程序和区块链的整个生态系统。像这样的新技术最令人兴奋的事情之一是，很难预测对方到底是什么样子。当每个人都可以通过手机证明完全私密的交易，并选择托管大量去中心化应用程序的去信任区块链时，会发生什么？还是一个每个人都有权赎回相同的无国界、去中心化货币的世界？在我们度过这一转变的过程中，重要的是要牢记从一开始就指导这个空间的核心价值观：可访问性、无需信任，最重要的是去中心化。

Thanks to Sam Ragsdale, Eddy Lazzarin, Guy Wuollet, Ali Yahya, and Dan Boneh for their feedback and/or discussions that informed this piece.

---

*Originally published on [BitcoinCorleone Everyday](https://paragraph.com/@yinjun/9UhYldEL2BqeGFHkcID6)*
