超越表面 - 递归证明:应用与优点

  • L2IV
  • 发布于 2024-01-27 14:30
  • 阅读 63

本文深入探讨了递归零知识证明(Recursive SNARKs)及其在隐私保护计算中的应用与优势,包括压缩多个证明的能力和跨信任边界的可组合性。文章详细分析了零知识证明的基本概念、类型以及递归证明的实施方法,探讨了不同的递归策略和它们的实际应用,如交易汇总、轻客户端证明以及去中心化治理等,展现了递归证明在区块链和其他领域的巨大潜力。

本文扩展了在 Devcon 2022 上 Ying Tong 和 Nalin Bharadwaj 提出的演示 “递归证明:应用与优点” 中涵盖的关键概念。


介绍

近年来,隐私保护系统因其在不暴露原始数据集的情况下促进多方计算和验证复杂流程的完整性而受到极大关注。像安全多方计算(MPC)和零知识证明(ZKP)这样的解决方案已成为处理机密信息的行业的核心。

现有的零知识证明在验证计算时面临效率、可扩展性和灵活性的瓶颈。递归证明是一种重要的范式转变,承诺解决这些限制并开启可验证系统的新潜力。该创新允许证明连锁在一起——每个证明按顺序验证先前的证明。

这种递归原则使得即便是十亿级别的计算有效性也能空前缩减为微小的加密证明。整个流程不再是孤立的静态证明,而是压缩为单个人工制品。递归架构在证明生成和验证成本上带来了数量级的效率提升。

此外,组合性也允许证明跨越信任边界而不暴露中间过渡。具有部分视图的证明者可以在中继中链接他们的标记承诺,扩展了在相互不信任方之间隐私保护协议的可能性。

随着研究者对递归证明的可扩展性和互操作性挑战进行探索,该主题值得及时讨论,因为它的潜力巨大。像批处理算法、可更新设置和累积方案这样的创新仍处于早期阶段。

通过深入研究递归技术,包括现有的架构如完全递归和原子/分割累积,我们希望综合当前方法,同时激发在隐私关键领域的新应用,因为开发者认识到递归所带来的压缩和模块化可定制性。

这一通用技术因其有潜力在金融、供应链、证明、游戏等生态系统中彻底重塑而具有重要意义。我们希望推动对这一具有关键意义的加密突破的探索,该突破承诺克服传统零知识证明的限制。

零知识证明简介

零知识证明(ZKPs)是用来验证计算和陈述的准确性的基础原语,同时保持用于这些计算的基础数据的隐私。正确性和隐私的这种独特双重属性赋予了零知识证明其功效和多用途性。

从高层次来看,ZKPs 允许一个方(证明者)说服另一方(验证者)相信他们知道某些信息或某个计算是正确的,而不传达任何除了声明本身真实这一事实以外的信息。这是通过包括加密证明、承诺方案和交互挑战等先进数学技术来实现的。

关键创新在于证明过程不透露任何附加信息;因此,验证者获得“零知识”,但获得了对声明有效性的保证。该概念类似于解决者通过一系列步骤证明他们找到了解决方案,但实际上并未公开解决方案是什么。

零知识的特性打开了一个巨大的隐私保护应用的范围,包括私人付款、匿名凭证、去中心化金融中的机密交易、秘密投票系统等。

不同类型的零知识证明

交互式 ZKPs: 最初,ZKPs 是交互式的,意味着证明者和验证者进行回合式通信。证明者提供证据,验证者则对证明者提出更多信息的挑战。

  • 这种交互性使得验证者可以递归质疑证明者,直到获得对证明有效性的统计信心。但是,交互的回合可能在计算上代价较高。

  • 交互式 ZKPs 的例子包括各种“零知识论证”和基于概率可检查证明(PCPs)的方案。这些奠定了更高级构造的早期基础。

非交互式 ZKPs: 后来的发展导致无交互性(NIZK)ZK证明,在这种情况下,证明可以在证明者和验证者之间没有直接交互的情况下生成和验证。这一进展对去中心化系统(如区块链)的可扩展性至关重要。

这些消除了交互挑战的需要。证明者计算复杂的数学证明,包含加密的承诺,并将整个证明一次性发送给验证者。这种方法在规模上更高效,但证明生成使用了更大的计算。

NIZKs 是以下的先驱……

  • 零知识简洁非交互性知识论证 (zk-SNARKs): 一种特定类型的非交互式 ZKP,以其简洁性和效率而闻名。

  • 零知识可扩展透明知识论证 (zk-STARKs): 类似于 zk-SNARKs,但不需要受信设置,具有更好的可扩展性。

zkSNARKs 概述

简洁非交互知识证明 (zkSNARKs) 代表了零知识证明在实际应用中的最先进技术。它们是经过优化以达到高效率的 NIZK 的特定形式。

zkSNARKs 工作原理:

图示(省略)
  1. 程序构建:第一步是构建一个程序,该程序编码要证明的所需陈述或计算。例如,如果要证明“我支付了安德鲁 10 个代币”,你将编写一个带有转账逻辑的程序,该程序模拟支付 10 个代币给安德鲁。

  2. 证明者计算:证明者运行程序,输入设置反射真实世界条件——在此情况下,实际的发送者、接收者和金额。程序执行将确定声明是否真实。

  3. 证明生成:证明者生成一个 zkSNARK 证明,证明他们正确且忠实地运行了程序。该证明是一个加密签名,由于零知识特性,不会透露任何输入或中间步骤。

  4. 验证者接收证明:验证者接收该证明。他们所看到的只是一个简洁的加密字符串,通过加密随机性和承诺隐藏了所有中间计算。

  5. 验证:验证者使用特殊的加密校验检查证明相对于原始程序的有效性。这些包括椭圆曲线计算,指示证明是否与程序匹配,而不会公开关于秘密输入的任何信息。

  6. 验证成功:如果所有检查通过,验证者现在可以确定证明者忠实地执行了程序,同时保持输入数据完全保密。验证者所知道的不仅是声明本身的核心有效性。

这种隐私与完整性的独特双重保证是 zkSNARKs 的魔力所在!

递归 SNARKs 介绍

递归 SNARKs(简洁非交互知识证明)是密码证明领域的一项重大进展,尤其是在零知识证明(ZKPs)领域。它们是复杂但强大的工具,允许在各种应用中更高效和可扩展的验证过程,尤其是在区块链技术中。

在深入了解递归 SNARKs 之前,我们需要了解 ZK-SNARKs 的基础知识:

  • 零知识证明: 这些是由一方(证明者)向另一方(验证者)证明某个声明为真的方法,而不传达任何除了声明本身为真的信息。

  • 简洁性: SNARKs 的特点是其小的证明大小和快速的验证时间,无论所证明声明的复杂性如何。

图示(省略)

递归 SNARKs 是一种特殊的零知识证明,允许验证计算的有效性而不揭示任何基础信息。它们通过在其他证明中递归嵌套证明的能力,基于普通 SNARKs 进行扩展。

在常规 SNARK 中,证明者可以生成一个证明,表明他们正确地执行了某些计算,而不透露任何中间步骤。递归 SNARKs 更进一步——它们允许证明先前的 SNARK 证明有效,而不揭示该先前证明的内容。

递归性特性解锁了两个主要的好处:

  1. 压缩: 多个 SNARKs 可以通过递归证明每一个SNARK而被压缩为一个单一的证明。这节省了存储并允许更高效的验证。

  2. 组合性: SNARKs 可以分层组合,每一层依赖于下层的证明。这允许用更简单的构造块构建复杂的证明。

接下来我们将看到这两个好处如何在现实世界的应用中帮助应用递归 SNARKs。

如何操作

从高层次上看,递归 SNARKs 使得创建证明成为可能,这些证明可以验证之前的证明。这允许“嵌套”证明,达到任意深度。

  • 想象一个场景,你有一系列计算或陈述,每个都有自己的证明。

  • 在非递归情况下,每个证明都需要独立验证,这可能耗时并对计算要求高。

  • 递归 SNARKs 允许这些单独的证明“嵌套”在一起。这意味着验证一个证明同时也包括验证另一个证明。

  • 这种嵌套可以继续多个级别,其中一个级别的证明包含另一个级别的证明,依此类推。

具体而言,递归 SNARK 协议包含以下步骤:

  1. 基础计算 - 证明者执行一些初始计算 C0(例如,执行程序)。

  2. 生成证明 - 证明者生成一个 zk-SNARK 证明 π0,以证明 C0 已正确执行。

  3. 验证证明 - π0 的验证过程本身被转化为一个程序 C1。证明者生成一个新的证明 π1,证明 C1 返回接受。

  4. 递归验证 - 证明的过程可以继续递归。π2 证明检查 C2 的 π1 通过,依此类推。

假设一个场景,每个区块包含交易,每个交易都有有效性证明。逐个验证每个交易的有效性在每个区块内是一项庞大的任务。利用递归 SNARKs,你可以为每一个区块生成一个证明,该证明包括所有交易的有效性证明。然后,这些区块证明可以递归嵌套成一个单一的证明,经过验证,确认所有区块中的所有交易的有效性。

最终结果是一个证明链,它从最初的基础计算到每一层的验证依次构建。这条分层证明链构成了完整的递归协议。

与 zkSNARKs 的比较

递归 SNARKs 引入了重大扩展——在递归的方式中嵌套证明的能力。一个 SNARK 证明可以验证一系列链中先前 SNARK 证明的正确性。

图示(省略)

举例来说,SNARK A 可以证明某个陈述,而 SNARK B 可以证明“SNARK A 是有效的证明”。这可以递归延伸,SNARK C 验证 SNARK B 的有效性,依此类推。

  • 具体来说,考虑一个证明 π1,证明某个核心声明是正确的。例如,“证明者知道银行账号 #xxx 的密码”。

  • 第二个证明 π2 可以证明“π1 是一个有效的 SNARK 证明”。请注意,π2 并不需要查看 π1 的实际内容。它简单地通过加密确认 π1 自身构成一个结构合理的 SNARK 证明。

这可以扩展到证明 π3 验证“π2 是一个有效的证明”等等,形成层级链。每个证明核查前一个证明的有效性,而无需了解其内部细节。

递归 SNARK 的实现类别:

现在,有不同的方法/策略来构建和优化递归 SNARKs。这些类别代表了处理 SNARKs 的递归方面的不同方法,每种方法有其特定的技术、优势和权衡。目标是使递归证明更高效、可扩展,并为现实应用提供更好的实践。主要类别有:

#1. 完全递归

在完全递归中,证明过程的每一步或层次涉及递归验证。这意味着每个生成的证明都包括对先前证明的验证。

本质上,它是直接应用递归 SNARKs 概念,其中每个新证明证明前一个证明的有效性,而没有任何捷径或中间步骤。

工作原理:

  • 想象一系列计算,每个都生成一个证明。

  • 在完全递归中,对于每个计算,你生成一个 SNARK 证明,其中包含前一个计算的证明。

  • 这个过程重复进行,每个新证明都包含对上一个证明的验证,形成一个证明链,其中每个环节都完全验证上一个证明。

如果存在基础计算 C0,第一个证明是 π0。验证者接收 π0 并执行验证电路,验证结果变成计算 C1。生成的证明 π1,再次被验证者检查,形成 C2,以此类推。

它提供了非常强的正确性保证,因为每个证明都在下一个证明中得到充分验证。同时,此方法可能计算上昂贵和效率较低,因为每个证明都承载了验证前一个证明的全部负担。

在系统的完整性至关重要的地方,例如共识机制,此方法尤其适用。高计算成本的权衡因对强大信任的锚定需求而得以证明。

在结构上 增量可验证计算(IVCs) 使用 SNARKs 进行子线性验证,基本上延续了创建一串证明的概念,其中每个证明不仅声明其特定计算的正确性,还结合了对上一个证明的验证链。

图示(省略)

在上述图表中,完全递归可以被视为一系列过程,其中每个 IVC 证明者在生成证明(π_i+1)后将其传递给下一个证明者。此证明者不仅为下一个计算生成证明,还验证它收到的证明(π_i+1)。验证结果成为下一个证明(π_i+2)的输入,从而确保序列中的每个证明都是其计算和所有先前计算的验证结果。此过程确保错误或不当行为不会在序列中传播,因为每一个步骤都是在递归框架内独立验证的。

#2. 原子累积

原子累积引入了一个累加器的概念,以更高效地管理验证过程。此方法不会完整验证每个证明,而是累积“摘要”或“摘要”,并将完整验证推迟到后期。

工作原理:

  • 序列中的每个证明都有助于生成一个增长的累加器。

  • 这一累加器代表当前所有证明的简洁摘要。

  • 在某些检查点上,累积的证明将一起进行完全验证。

这一将多个证明(π0, π1, π2)汇聚到一个累积状态,然后在最后执行单次验证的概念,成为这种方法的关键特征。它通过分摊多个证明之间的计算负担,平衡了计算负荷。权衡在最终的批量验证之前会暂时降低保证。

该方法非常适合于事务聚合等情形,专注于隐私的区块链应用,在这些情况下,批量处理证明可以显著提高性能,而不会严重损害安全性。

图示(省略)

在 IVC 环境中原子累积的工作机制:

  • 如图所示,证明者为每个计算(Z_i+1)生成一个证明( π_i+1),演示函数 F 的正确执行。

  • 每个证明被分为两个部分:

    • 可以立即验证的部分(P),和

    • 被延迟的部分(a_i)。

  • 延迟部分被汇总到一个累加器( a_i+1)中,作为所有在序列中生成的证明的逐步摘要。

  • IVC 验证者定期检查证明的公共部分( SNARK.Verify),同时将累积部分存储起来,稍后进行批量验证。

  • 该过程是迭代的,每个新证明都在累加器中增加。延迟部分类似于证明验证的“IOU”,承诺这些方面最终会被检查。

  • 当进行批量验证时,积累的延迟部分( D)一次性处理。在这一步,系统确保所有中间证明,而不仅是最新的,都有效。

随着 IVC 证明者逐步完成计算序列,它利用 SNARK.Prove 函数不断增加累加器的规模。这种累积策略类似于将每个证明的汇总或摘要添加到一个代表整条计算链的集体档案中。定期或在预先确定的检查点,IVC 验证者对档案执行全面审核——这个批量验证步骤。此步骤通过处理积累的摘要确认整个计算序列的完整性。

通过将原子累积方法与 IVC 结合,我们在保持可立即验证性和计算效率之间达成平衡。每个证明( π_i)在创建时都是部分验证,而所有证明的完整保证则延迟到批量验证( D)之时。

这种策略值得注意的是,在隐私中心的区块链系统中,原子累积尤为适合于事务聚合等应用。通过将多个事务证明归类到一块,可以在不显著损害系统安全性的情况下改善性能。

#3. 分割累积

分割累积进一步精炼了累加器的概念,将其分为公共部分和私人部分。此分割允许基于涉及数据的性质不同地处理证明的各个部分,优化过程。

工作原理:

  • 累加器的公共部分被更频繁更新和验证,因为它涉及对即时验证至关重要的证据方面。

  • 私人部分累积更广泛或复杂的数据,并更不频繁的在特定点进行验证。

在每个级别迅速验证证明的公共部分,同时将更密集的个人部分的验证推迟到末尾,是一种战略性的方法,以管理计算资源。这种方法在确保不断安全与管理验证成本之间找到了平衡。

图示(省略)

在 IVC 的分割累积中,利用分割验证过程为公共和私人组分,确保每个证明的公共部分得以立即验证,同时私人部分则累积并在特定时点验证。

  • 在 IVC 系统中,如所示示意图,证明者利用 SNARK.Prove 为每个计算 ( F ) 生成证明( π_i+1 ),形成新的状态 ( Z_i+1 )。

  • 本证明分为两个部分(P),即验证者(SNARK.Verify)立即检查的公共部分,以确保通过确认计算的关键方面来持续安全。

  • 与此同时,私人部分( a_i )被添加到一个累加器( a_i+1 )中。 这一私人部分表示更复杂或数据密集的证明方面,并不要求立即验证。

  • 随着 IVC 证明者继续生成新证明,私人部分不断累积。只有在必要时才会完全验证它们,从而优化计算资源的使用。

  • 这种分割累积的方法保证关键验证不会被推迟,同时将更高计算成本的验证在未来战略性推迟。

将 IVC 中的分割累积方法应用于需要在安全性与效率之间寻找平衡的系统非常有利,例如在隐私中心的区块链系统中,可提供立即保证与长时间分发验证工作量。

递归压缩的应用

在本文早前的部分,我们提到将探讨递归 SNARKs 的两个主要好处:

  1. 压缩,和

  2. 组合性。

这里就是。

#1. 压缩:多个证明的浓缩

递归 SNARKs 的主要特性是能够浓缩或汇聚多个证明。这是通过每个生成的新证明包含对先前证明的验证的过程实现的。本质上,一个递归 SNARK 证明可以证明另一个 SNARK 证明的有效性。这样的嵌套可以持续,允许一系列计算或验证浓缩成一个证明。

  • 实际上,考虑一种情况,每个交易或区块操作需要有效性证明。

  • 在非递归情况下,这些证明中的每一个都需要单独验证,这可能是费时和计算密集的。而递归 SNARKs 允许这些单个证明“嵌套”在一起。

该方法涉及证明者将声明组织成不同的“层”次证明,然后递归地展示对下层的知识识别:

  1. 分解声明:将整体声明分解为需要单独证明的组成部分。例如,验证更复杂计算的单个步骤。

  2. 构建基本证明:为每个组成声明建立单独的零知识证明,可以使用 SNARKs 或 STARKs。 这些建立了下层声明的基本真理。

  3. 递归证明知识:在新的更高层证明中,展示对下层证明的知识,而不揭示实际证明内容。加密承诺使验证者能够确认有效的子证明结构,而不需可视化。

  4. 汇聚到一个证明中:反复进行递归步骤,将任意数量的子证明编译为一个凝聚的高层证明。这个顶级证明通过递归示范对所有底层证明的知识,综合验证所有下级证明。

专门的知识承诺在数学上约束了高层证明与下层证明适当结构的构建,确保通过加密得到实施。这种连接防止了在递归中插入虚构证明。该构造依赖于高级承诺和零知识证明,但通过递归压缩证明的次证明压缩为一个单一的经过验证的证明,涵盖任意数量的子声明。

验证一个证明同时包含对该证明内另一个证明的验证。这个过程显著减少了验证所需的计算负担和时间。验证者不再需要独立验证每个证明,而是验证一个确保递归地验证所有底层证明的笼统证明。

递归压缩的关键思想在于,证明者可以通过在压缩的方式中递归证明小子声明,展示“我知道 N 份知识”。渐进的以下示例说明递归压缩,较大的声明(N 个签名、完整的区块链有效性、N 个交易)被递归分解为较小的子证明,以得出高度压缩的整体证明:

  • 签名:“我有 N 份签名签署该消息”

  • 轻客户端:“轻客户端 L 已验证区块链的所有必要有效性”

  • Rollup:“我已验证 N 个一起批处理的交易的有效性”

让我们逐一深入探索

签名聚合

签名聚合涉及将多个数字签名组合成一个签名,该签名验证每个参与者签署了同一消息。这样可以节省大量空间,而不是逐个传输每个签名。

递归 SNARKs 允许通过使用压缩进行极其高效的签名聚合。证明者可以构造一个 SNARK 证明,证明“我拥有多个不同方签署的 N 份签名,支持该消息。”该证明递归表明:

  • 这里是一个签名

  • 我有一个 SNARK 证明,证明还存在 N-1 份签名

而 N-1 的证明递归地使用相同的逻辑分解。最终,验证者只需检查一个证明,确保所有签名的有效性。

具体而言,让我们看一个应用案例 Isokratia。Isokratia 是一个去中心化治理协议,使用来自递归 SNARKs 的签名聚合构建。它实际上创建了一个“rollup”,将许多来自不同方的签名批量化为一个简洁的加密证明。

图示(省略)

来源:https://nibnalin.me/dust-nib/isokratia.html

当前的治理平台有局限性。像 Snapshot 这样的链下系统对投票者是免费的,但需要信任中央实体。像 Compound 使用的那样的上链系统消除了这一信任,但由于交易费用(gas 费用)而成本高昂,这会降低参与度。

Isokratia 的主要目标是启用安全、透明且几乎没有成本的投票机制,适用于 DAO 和其他治理系统。这可以构建可扩展的投票方案、协调机制和决策记录。签名表示来自成员的认证,而不显式地揭示每个单独的签名。证明简单地表明: “100 人签署了消息 X”。

具体工作原理:

在 Isokratia 中,选民在链下投票,这是免费的。然后,这些选票被汇聚为一个简洁的递归 ZK-SNARK 证明,然后在链上提交并验证。此方法确保了安全性与完整性,同时保持低成本。

  • 用户对提案在链下进行投票。提出提案可能需要一个链上的交易,以确保其记录以便汇聚。

  • 这些节点收集选票并不断生成更大的汇聚证明。一旦准备好,它们将在链上提交这些证明以完成投票。

通过以这种方式聚合签名,Isokratia 能够构建一个进入公共区块链的高效去中心化治理协议。事件、行动和记录可以发布,证明来自多个参与者赞同的真实性,同时保持隐私保护且紧凑的方式。

Isokratia 使用的递归证明架构在带有大量签名的情况下,实现了巨大的带宽、存储空间和验证者计算节约。这通过利用递归 SNARK 构造所启用的压缩,实现了可扩展的实用去中心化治理。

轻客户端证明

在区块链中,轻客户端允许用户验证交易并检查账户余额,而无需运行完整节点软件或存储整个区块链。轻客户端仅下载区块头,并利用加密确保有效性——证明轻节点拥有所有必要数据。

递归 SNARKs 极大地优化了轻客户端使用的证明。同样的,压缩允许结构化证明,表明“轻客户端 L 已验证区块链 B 中的所有关键信息”。这可以通过子 SNARKs 以高度压缩和聚合的方式递归地检查单个头部、账户状态、交易有效性等。

一个例子是 Plumo。Plumo 使用 zkSNARKs 创建高效的“轻客户端证明”,允许超轻区块链客户端以最小的带宽和计算量与状态同步:

Plumo 中的轻客户端只需验证 Celo 中的“纪元转换消息”编码验证者集变更,而不是整个区块。Plumo 构建了一个 zkSNARK 电路,验证连续的纪元消息中。电路检查:

  • 对纪元消息的签名是否有效

  • 消息是否正确编码验证者集变化

  • 消息链接纪元熵值以确保不可预测性

该 SNARK 证明者通过 BBSGLRY 多重签名将验证者的签名聚合为一个单一的证明。这样极大减小了证明大小。客户端只需验证 SNARK 证明,即可验证多个纪元转换。SNARK 证明谨慎地隐藏所有中间状态,同时使轻客户端状态同步成为可能。由于这个纪元消息是由 Celo 共识协议生成的,因此 zkSNARK 充当高效的轻客户端证明系统,无需重新验证每个网络区块。像复合散列、批量验证和高效 SNARK 算术等优化使得证明生成的成本仅约为每天 $25,验证在移动设备上小于 1 秒。这使得 Plumo 构建高效的 zkSNARK 证明,以将复杂的区块链状态转换抽象为简单的纪元消息。这能构建高效的轻客户端证明,以在资源有限的客户端中与状态同步,并具有强大的完整性保证。

将整个区块链有效性分成块,递归验证每个块,并进行汇聚,大大提高了轻客户端的效率和性能,原因于非递归证明。这使得轻客户端更易于普通用户在个人设备上验证区块链活动,同时不超过受限的带宽和存储。

用于交易的 Rollups

交易 rollup 涉及在链下批量/聚合交易,并将聚合有效性证明发布到主链。这可以实现与直接主链交易相比数量级更好的交易吞吐量。

递归 SNARKs 非常适合 rollup,因为核心操作涉及聚合和浓缩知识——正是递归证明所提供的。证明者可以显示“我已经验证 N 笔交易的有效性,并且开具了正确的签名”。逐步分解这个声明,可以实现优化的 rollup 设计。

例如,

  • Matter Labs 的 zkSync 使用该方法证明“k 笔交易是有效的,并且我对此剩余的 N-k 交易有证明。”以此递归展开,允许任意数量的交易,采用微小的证明大小。

  • Hermez 使用 STARKs 来高效生成证明,构建在 FRI SNARK 内部,以实现优化的验证。它以递归的方式利用这两种 SNARK 类型的互补优势。

通过将多个交易的有效性批量化为一个单一的证明,基于递归 SNARK 的 rollups 实现了戏剧性的可扩展性,降低了费用,且其TPS 超过数万。

Mina 协议和 Polygon Hermez 展示了受益于递归证明逻辑的前沿交易 rollup 架构。让我们逐一详尽探索:

Mina 协议和交易 Rollups

Mina 协议采用名为递归 rollups 的新方法,该方法使用递归 zkSNARK 证明在链下验证交易并生成账本状态的简洁的加密表示。

  1. 每个 Mina 区块包含一个 zk-SNARK 证明,递归验证链中所有先前区块的有效性。这样创建的 SNARK 链能够有效验证整个区块链历史的完整性。

  2. 通过在每个区块中串联 SNARK 有效性证明,Mina 能够将账本状态压缩到大约 22 KB,这仅仅是自创世以来交易的一个单一 SNARK 证明的大小。这方便了状态的快速同步。

  3. 简洁账本使得随着区块和交易的增长,参与时资源消耗不予增长,从而提供了巨大的可扩展性收益。更多的经济活动对运行节点的硬件需求产生的影响几乎微乎其微。

  4. 每个 SNARK 证明序列认证了包含交易的有效性——它们是否正确遵循协议规则和账本状态。然而,对交易完整性的完全确保证并不在列。

  5. zk-SNARK 证明保证了隐私,因为交易在没有揭示输入数据或中间状态的情况下得到验证。只有有效性元数据被公开暴露。

因此,Mina 协议以创新的递归 SNARK 架构开创了将账本历史压缩为简洁表示,同时保持有效性、可扩展性和隐私的潜力——为大规模去中心化和隐私交易打开了潜在的可能性。递归特性是实现相对于单个交易证明效率提升的关键。

Polygon Hermez 和交易 Rollups

Polygon(前身为 Matic Network)是一个旨在扩展以太坊并改善其用户体验而不牺牲安全的平台。Hermez 是其扩展解决方案之一。Polygon Hermez 如何利用交易 rollups?

  1. Polygon Hermez 作为以太坊的第二层扩展解决方案。它将多个交易汇聚为一个称为 rollup 的单一证明,随后提交到以太坊主链。这一过程减少了整体 gas 费用,并提高交易吞吐量。

  2. Hermez 使用 zk-rollups 将大量链下交易捆绑为一个证明。该证明认证捆绑中所有交易的有效性,并提交给以太坊进行最终结算。

  3. 通过将计算和数据存储需求置于链下,仅提交证明给以太坊,Hermez显著降低了以太坊网络的负载。这一措施至关重要,因为以太坊当前面临着高 gas 费用和网络拥堵的困境。

  4. Hermez 能够快速从第二层提取资金到以太坊主链,相较于其他 L2 解决方案 where 提取时间可能较长,具有显著优势。

在这两个案例中,核心方法是利用 zk-SNARKs 压缩验证交易所需的数据。这种压缩促进了交易 rollups,即多笔单独交易同时被证明为有效,而不需要让每一笔都被主链逐个处理。结果是一个可以处理远超过传统区块链的每秒交易数量的系统,同时提供隐私保护并降低与交易费用相关的成本。

对于 Mina 和 Polygon Hermez 来说,交易 rollups 的实现是他们构建可扩展区块链系统战略中的关键组件。这些 rollups 提供了一条途径,能够有效处理大量交易,这是区块链技术大规模采用的重要一步。

我们认为,这也暗示了未来的一种广泛趋势——递归不仅作为压缩知识的原语,而且还压缩计算开销。通过 rollups 来验证 10,000 笔交易,相对于单独在链上进行验证而言快得多。从 proof 的组合中获得的指数型效率提升,开启了新的可扩展性视野。

此外,我们的研究解释了这些加密创新如何与激励机制和去中心化交汇。Mina 的小型区块链占用提升了去中心化的前景,让普通节点能够参与。与此同时,Hermez 继承了以太坊基础层的安全性。

这表明,基础激励结构和生态系统架构随新的密码学构造共同进化的现象。密码学开启了系统设计与性能的新可能性。然而,充分实现这一潜力需要在各层次进行全面的思考。Rollups 作为 Polygon 和 Mina 更广泛扩展与效率推动的一部分,形成了关键元素。

最后,我们认为在跨互植的中间潜力巨大。如前所述,Hermez 连接 StarkWare 的 STARK 生态系统。探讨 SNARK 和 STARK 构造之间的协同效应可能带来进一步的突破。Mina 和 Polygon 或许提供了递归证明技术渗透现实世界区块链基础设施的首个窥见。但这可能只是开始,这些技术可能会在协议和各个行业中传播。

#2. 递归 SNARKs 释放的组合性

通常来说,零知识证明允许证明者向验证者展示对某个秘密信息的知识,而无需暴露实际基础秘密。递归 SNARKs 更进一步。

利用递归,证明者能证明某个知识,即使他们自身并未完全拥有基础事实。证明者或许只有部分信息,但可以利用其他可靠的证明来递归构建知识证明。

这种强有力的范式释放了全新类型的涌现去中心化应用,它们通过多个方之间的信息流实现,类似于隐私保护的电话游戏。参与者可以共同计算函数,而无需全面披露输入。

递归证明允许证实“我知道 X 是真实的”,即使证明者并不具备 X 的完整基础。证明者仅持有支持 X 的部分事实,但依赖其它可信的证明填补空缺。

例如,考虑一个多人之间的社交图关系,介于 A 个人和 Z 个人之间,通过 B、C、D 等人建立中介联系 A 可以证明“我与 Z 之间存在连接”,显示以下资料:

  • A 知道 B

  • B 提供了与 Z 之间连接的证明

因此,A 依赖 B 的单独证明进行构建,而无需接触中间环节的细节。前提是每一个单个证明在单独情况下皆可信。而现在,事实能无须全面披露共同验证。这为隐私保护应用扩展了可能性。

除此之外,递归 SNARKs 当实现需要隐藏信息的游戏或计算任务时表现相当出色。参与者拥有部分知识,基于此作出决策,接收输出,并更新状态。但该机制确保隐私约束,以防止什么数据被透露。例如,多方游戏如多人扑克,其中每个玩家持有私密牌,通过公共行为与隐蔽的游戏状态结合。递归证明允许在不暴露所有中间步骤的情况下确保行动的正确性,理想适用于通过网络的心理扑克。

图示(省略)

其他一些启用递归的此类信息不完整游戏和协议示例如下:

  1. 电话应用:递归零知识证明类似于电话游戏,参与者根据部分知识改变状态,然后向后传播。这给以往的混合网络提供了可验证的重排味道。

  2. 杀手:流行的派对游戏如狼人或杀手在于秘密指定的角色影响公共投票结果的过程。递归证明能够在无需信任第三方的情况下切实实现社会推理。3. 私有状态通道:允许需要隐私的两个方之间进行高效的多步骤协议。只有最终结果会被发布以供验证,而不是整个流程。这在游戏、金融交易和拍卖中非常有用。

在所有情况下,递归证明使得在更大的真实构造中嵌入欺骗或秘密成为可能,而观察者无法看到中间构建模块。这种灵活性为具有创造性信息约束的去中心化应用程序开辟了设计空间。

递归 SNARKs 从根本上增强了零知识特性,将单个证明的特性扩展到随时间推移的嵌套证明链。证明者不再需要完全的可见性,只需要与其他可信证明协同作用的足够片段。

这种神秘为新对抗性和合作游戏创造了机会,强制在中间状态周围保持隐秘。建立在递归证明基础上的应用程序开始更像可验证的中继网络或扑克锦标赛,而非静态的数学构造。

可组合性在不损害整体系统完整性的情况下,转移知识揭示跨越各个封闭边界。这带来了多方计算、隐私意识协议和以前无法实现的游戏的新一代。

尽管仍处于初期阶段,递归证明为想象力拓展提供了基础,从微支付和去中心化金融到具有丰富、动态信息流的去中心化应用程序。证明不完全知识的能力扩展了开发者在设计新参与者体验时的创造力。

尽管具有优势,递归 SNARKs 也面临挑战。两个主要问题是数据提供和计算开销。

数据提供:

  • 确保所有验证证明所需的数据可用且格式正确是实施递归 SNARKs 的关键方面。随着应用程序的扩展,生成证明所涉及的数据的大小和复杂性可能成为一个重大挑战。

  • 数据提供还涉及确保数据的可用性和完整性,这在像区块链这样的去中心化系统中尤其具有挑战性。

计算开销:

  • 尽管递归 SNARKs 减少了验证时间,但在递归上下文中,证明的生成可能会计算密集。这是由于生成每个证明所需的复杂数学操作以及递归结构所带来的额外复杂性。

  • 计算开销可能成为瓶颈,尤其是在资源有限的系统或需要实时处理的应用中。

模块化和可定制的 SNARK 架构的发展趋势

递归 SNARK 构造允许在证明内验证证明。这使得压缩和零知识可组合性等新的能力成为可能。然而,目前的递归方案在其配置上仍然相当僵化。例如,证明者和验证者算法通常紧密耦合,以优化特定的证明参数。

随着在汇总、轻客户端和机密交易等用例中的采用扩展,所需的约束和效率变得更加多样化。治理证明所需的可能不适用于供应链。单一的递归架构无法最好地满足所有需求。

这种多样性与推动企业软件从单体系统转向可配置微服务的压力相平行。具有定义接口的模块化组件增加了可定制性。加密技术现在也承认类似的力量,需求多功能性——从垄断性证明转向专业化构建模块的运动。

新兴的递归证明生态系统展示了更模块化的设计,使开发者能够通过混合和匹配元素更好地自定义实现。约束引擎、透明设定和算术库组合成灵活的递归配置。

团队还可以将创新重点放在个别组件上,例如专门用于聚合的高效内积论证。模块化使得根据应用需求将这些优化重新组合成为递归证明流程。数学原语不再是固定不变的。

模块化递归方案反映了零知识证明的成熟——对专业化的生存需要与真实问题空间相关联,而不仅仅是数学优雅。随着证明渗透到日常流程中,由模块化实现的多功能性成为必要,而非期望。

整体愿景是“证明乐高积木”——开发者通过定义的接口组合安全连接的专门构建模块。这被视为去中心化的零知识证明被部署以应对急剧增长的现实需求时所需的定制和多功能性的重要组成部分。重新启动模块化旨在推动效率和规模的下一个阶段。


l2iterative.com 和 Twitter @ l2iterative 找到 L2IV。

  • 原文链接: l2ivresearch.substack.co...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
L2IV
L2IV
江湖只有他的大名,没有他的介绍。