零知识证明介绍
在过去的十年中,称为“零知识证明”的密码学领域一直在迅速发展。它提供了构建应用程序的新范式,并使协议能够提高效率、安全性和隐私性。
让我们看看是什么让零知识证明领域如此令人兴奋,以及它帮助工程师解决了哪些问题。
无需信任的区块链和可验证性
区块链通常用于处理用户提交的交易。这些交易通常会触发区块链所需执行的一些计算。
为了使区块链是无需信任的(即不依赖于信任单独的一方),网络中的参与者必须可以验证交易是否有效,以及它们所含的计算是否正确执行。
验证交易是否有效通常需要数字签名验证 - 这需要验证交易的发送方确实是交易的发起人。验证交易的计算是否正确执行通常需要在本地重新执行交易。
可验证性的局限性
这种验证每个交易的方法在验证者无法重新运行计算的情况下会面临崩溃。 参与者出于某些原因可能无法重新执行计算,例如: (1)(出于隐私原因)某些数据可能不应当公开,或者(2)对于参与验证的计算机来说,重新执行所有交易可能太昂贵了 - 在考虑每秒有大量交易的高吞吐量区块链时,第二个原因尤其重要。
零知识证明的力量
零知识证明 (以下简称 ZKP) 有克服这些限制的神奇魔力。
ZKP 允许验证者验证计算结果,同时 (1) 保护计算中所使用的任何敏感数据的隐私,以及 (2) 验证比重新执行计算便宜得多。ZKP 的这两个性质分别称为 零知识 和 简洁性 。
ZKP 的上述特性在无需信任的区块链的可验证性方面非常有用。 如果没有 ZKP,验证者需要重新执行每笔交易的计算结果。这要求所有验证者都能看到每次计算中使用的所有(潜在敏感)数据,这也限制了整个系统的吞吐量。 使用 ZKP,一方可以执行计算,然后生成计算正确执行的证明。其他参与方可以通过验证证明是否有效来验证计算是否正确执行,而无需自己重新执行计算。 验证证明 (1) 不会泄露有关原始计算中使用的敏感数据的信息,并且 (2) 在计算上比重新执行原始计算便宜得多。这两个属性将为无需信任的区块链实现隐私和可扩展性。
电路、证明和验证器
在实践中,ZKP 在系统中的实现可能非常复杂,但在概览的层面,您需要了解零知识证明有几个组件:电路、证明和验证器。
电路是一个程序,它接收输入数据,并根据输入数据必须满足的一些“约束”来确保输入数据是有效的。输入数据可以是公开的(每个人都知道)、隐私的(只有证明者知道)或混合的(有些输入是公开的,有些是隐私的)。
证明生成可以用来确保满足电路。证明不会泄漏有关隐私输入的信息,并且非常之小。
验证器可以验真 (1) 证明是否有效,(2) 证明是否符合电路规定的约束(而不仅仅是虚假证明),以及 (3) 用于生成证明的公开输入是否与验证器使用的输入像匹配。请注意,验证器执行的此类检查通常是一种开销较低的计算
电路、证明和验证器 — 一个例子
让我们以数独为例。假设有一个数独题,爱丽丝想向鲍勃证明她知道谜题的答案,但不想透露答案是什么。
在这种情况下,特定的谜题将是一个公开输入(Alice 和 Bob 都知道它),而解决方案是一个隐私输入(Alice 知道它,但会对 Bob 保密)。电路 将接受这两个输入,并通过以标准方法、逐行逐列地检查答案来断言答案是正确的。 电路在这个例子中,约束了隐私输入的答案确实是公开输入的谜题的解,并且电路只有在答案检查通过时才“满足”。
然后即可以生成一个 证明 ,说明爱丽丝知道满足特定谜题电路(公开输入)的隐私输入。
证明可以和谜题一起传递给鲍勃,然后鲍勃可以使用与数独检查电路相对应的 验证器 来判断证明是否有效,从而证明爱丽丝确实知道谜题的解。最重要的是,鲍勃没有获得任何关于爱丽丝所知道的解的信息,但他仍然可以验证她是否知道有效的解!
零知识证明和区块链
ZKPs 最近取得进展的主要原因是它在区块链中的应用。 去中心化区块链面临的两个关键挑战是隐私和可扩展性 —— 所有数据都是公开的,网络中的每个节点都必须在网络上重新执行每个计算。 ZKP 可以帮助解决这两个挑战。
虽然有一些项目利用 ZKP 的零知识特性来构建隐私保护的应用程序,但我们 Scroll 仅使用了 ZKP 的简洁性来扩容以太坊。
Scroll 和零知识证明
驱动 Scroll 的想法非常简单。如果我们可以使用以太坊智能合约来验证另一个版本的以太坊的所有计算呢?我们可以运行另一个网络,提供对以太坊虚拟机(“EVM”)的更快、更便宜的访问,而以太坊本身将提供验证所有计算所需的安全性,并确保另一个网络不会违反 EVM 规范。
“学习”和“技术”部分的其余部分更详细地讲解了其工作原理, 但简单理解,只需记住,零知识依赖于电路、证明和验证器。
在我们的架构中,电路(实际上是一组电路)对 EVM 的规则进行了编码,来“约束”对链状态更改的输入交易的可接受行为。 使用这个“zkEVM”,GPU 网络获取一组区块的交易并生成证明。 然后回到以太坊,智能合约将验证该批次交易的证明,证明需要与智能合约中所规定的电路相匹配。 如果确实满足,这些交易可以被认为是“最终确认的”,网络将向前推进,而我们已经为以太坊的发展创造了快速、安全和可负担得起的区块空间。