从零知识证明到SP1 Hypercube

本文深入探讨了零知识证明(ZKP)技术在区块链领域的重要性,特别是在以太坊的扩展性和实时证明方面的应用。文章详细介绍了zkVM的工作原理、关键组件以及Succinct的SP1 Hypercube如何通过Jagged PCS技术实现接近实时的证明速度,并分析了实现以太坊实时证明标准的意义和挑战。

如何让 Succinct 实现实时证明?

2025.10.29. 作者

Seungjunoh

(X: @seungjun_x)

免责声明:本文中的任何内容均不应被解释为投资招揽或投资决策建议。

目录

介绍:极具吸引力的 zk 技术

第一章. zkVM

ZKP

为什么 ZKP 在加密领域如此重要?

zkVM

zkVM 的组成部分

zkVM 流程

第二章. 实时证明

当前 Ethereum 的最终性限制:为什么 12 秒很重要

最终确定时间的显著改进

实时证明的标准

第三章. Jagged PCS — Succinct 的 SP1 Hypercube 的关键实现 Succinct 和 SP1 Hypercube

PCS 在 ZKP 中的作用

现有 PCS 处理的局限性

Jagged PCS

通过 Jagged PCS 提高证明速度

总结:迈向实时证明

介绍:极具吸引力的 zk 技术

ZKP(零知识证明)被认为是加密行业中最引人注目的技术之一。ZKP 成为了区块链早期提出的 区块链不可能三角 之一的可扩展性方面取得突破性改进的起点。特别是,从 zk-rollups 开始,它为 Ethereum 生态系统中 L2 的发展做出了贡献,并且由此衍生的众多项目现在正在蓬勃发展。

区块链不可能三角:指的是区块链网络同时实现三个要素的挑战:“可扩展性”、“安全性”和“去中心化”。

截至 2025 年 10 月,L2Beat 的 ZK 目录中汇总的项目 TVS(总价值保障) 约为 80 亿美元。随着这些各种 zk 产品的出现,它们不断推进技术朝着“实时证明”的单一目标前进。

TVS(总价值保障):总资产价值的概念,不仅包括链锁定的总价值(TVL),还包括从 L1 桥接过来的资产价值。

ZK 目录,来源:https://l2beat.com/zk-catalog

其中,最先进的项目是 Succinct 的 SP1。Succinct 是一家领先的 zk 市场的公司,它基于其原始而强大的技术开发了一个名为“SP1 Hypercube”的 zkVM。

在本报告中,基于对 zk 技术的理解,我们将探讨被称为 zk 目标的“实时证明”是什么,以及领先公司 Succinct 打算如何实现它。

第一章从理解 ZKP 的例子开始,并研究为什么 ZKP 在区块链中很重要。它还探讨了生成这些 ZKP 的 zkVM 是什么以及它如何生成 ZKP。第二章研究了 Ethereum 中“实时证明”的含义。最后,第三章探讨了 Succinct 的 SP1 Hypercube 引入的“Jagged PCS”思想,以实现“实时证明”。

Succinct 质押形象,来源:Seungjun

我个人也在 Succinct 中进行质押。作为一名研究员和投资者,我试图简化困难的计算机科学和代数概念,以便尽可能多的投资者能够理解它们。

虽然可能会觉得有些冗长,但阅读本文将有助于投资者了解他们正在投资的内容。我希望本文能够为许多投资者提供一个了解 zkVM 项目发展历程的机会。

第一章. zkVM

ZKP

首先,让我们探讨一下什么是零知识证明。零知识证明(ZKP)是一种密码学技术的统称,它允许一方证明(Proof)他们知道特定的信息(Knowledge),而无需泄露信息本身(Zero)。

一个有效地解释零知识证明的代表性例子是“阿里巴巴的洞穴”。如图所示,阿里巴巴的洞穴是一个只有一个入口的甜甜圈形洞穴。在这个洞穴中,有一扇配备数字门锁的门。

阿里巴巴的洞穴,来源:PDAO,Seungjun

假设两个人,P(证明者)和 V(验证者)在阿里巴巴的洞穴前。V 想要验证 P 知道锁定机制的密码。但是,V 并没有要求提供密码本身。换句话说,目标是在不泄露信息(密码)的情况下证明知识。

为此,V 站在洞穴入口处,P 进入洞穴并选择路径 1 或路径 2(超出 V 的视线)。之后,V 随机命令,“从路径1出来”或“从路径2出来”。

如果 P 知道密码,无论 P 最初进入哪条路径,P 都可以打开锁定机制并穿过到另一侧,从而始终能够按照 V 的要求出现。如果 P 不知道密码,则会有 P 无法遵循 V 要求的情况。

如果只重复一次或两次,P 可能会侥幸通过。但是,如果重复数十次,并且 P 每次都根据 V 的要求正确出现,则 V 可以概率性地确信 P 知道密码。更具体地说,在不泄露数据或输入的情况下证明数据知识或计算结果有效性的行为称为 ZKP。

为什么 ZKP 在加密领域如此重要?

ZKP 很重要的原因是它允许验证计算的有效性,而无需直接执行(验证)区块链上生成的交易(信息)。

在区块链上实现 ZKP 的过程,简单概括,包括以下三个步骤:

  1. 将所有交易转换为单个数学方程式
  2. 生成一个证明文件,表明转换后的数学方程式是正确的
  3. 验证者验证相应的证明文件在数学上是否正确

简单 ZKP 流程,来源:Seungjun

此时,在步骤 3 中,验证器只需要检查证明文件,而无需直接执行和验证所有现有交易,这使得处理非常快速和高效。

从验证器的角度来看,存储交易数据所需的空间减少了,并且验证所花费的时间也减少了。这就是 ZKP 改变区块链可扩展性范式的原因。

目前,有多种实现 ZKP 的方法,但 zk-STARK 方法主要用于 RISC Zero 和 Lita 等 zkVM 项目中。我们稍后将讨论的 Succinct 的 SP1 也利用了这一点。

zk-STARK(Scalable Transparent Argument of Knowledge):实现 ZKP 的代表性方法之一,其特点是不需要可信设置,并且具有抵抗量子计算机攻击的能力。

zkVM

zkVM 是一种特殊的虚拟机(VM),能够使用零知识证明来验证程序执行。VM 是指创建一个虚拟计算机环境来运行特定程序的程序。在区块链生态系统中,它可以被描述为为处理交易而创建的特殊程序。

其中,zkVM 是一种虚拟机,也可以为 VM 中处理的交易生成 ZKP。通过利用 zkVM,合约开发者可以执行使用编程语言编写的代码并生成 ZKP,而无需学习复杂的数学和密码学。这使得与基于 zk 的环境的交互更加容易。例如,在 Succinct 的 SP1 中,它为使用 Rust 编写的代码生成 ZKP。

zkVM 的组成部分

通过 zkVM 生成 ZKP 的过程涉及虚拟机、编译器和证明系统等几个组件之间的交互。(通常,“zkVM”不仅指虚拟机本身,还指包括所有交互组件的整个系统。)

zkVM 运行所需的组件及其各自的角色如下:

zkVM,来源:Seungjun

  • 编译器: 将用 Rust 等编程语言编写的通用程序转换为 VM 可以理解的机器代码。
  • VM — 执行引擎: 执行用机器代码编写的程序,并跟踪和记录该过程中的所有状态更改(I/O、内存访问等)(这称为“执行跟踪”)。
  • VM — 算术化模块: 将执行跟踪转换为数学约束,将其转换为算术上可行的形式。
  • 证明者: 生成一个零知识证明,证明所有约束都已满足。
  • 验证者: 确认(验证)生成的证明的有效性。虽然验证器不是 zkVM 的核心组件,但它是通过验证生成的证明来最终处理交易的实体。

具有这些各种组件的 zkVM 系统在实现方法、性能和角色方面有所不同,具体取决于每个组件如何配置为运行。例如,它取决于使用 zk-SNARK 还是 zk-STARK 作为证明系统,或者虚拟机采用哪个 ISA

ISA(指令集架构):一种规范,定义了 VM 可以理解和执行的指令(机器代码)的类型和格式。

zkVM 流程

构成 zkVM 系统的四个组件按顺序进行以下流程以生成单个 ZKP:

zkVM 的一般流程,来源:https://www.lita.foundation/blog/zero-knowledge-paradigm-zkvm

  1. 编译器首先将用 C、C++、Rust 或 Solidity 等通用语言编写的程序编译成机器代码。机器代码的格式由选择的 ISA(指令集架构)决定。
  2. VM 接收机器代码,执行引擎执行它,生成执行跟踪。算术化模块接收执行引擎生成的执行跟踪,并根据预定义的方法将其转换为数学约束的形式。(算术化)
  3. 证明者将算术化的执行跟踪转换为多个多项式束的形式。也就是说,它以代数方式表示执行跟踪。然后,将其提交给 PCS(将在第 3 章中详细讨论),并执行证明协议以表明提交的多项式是正确的,从而创建证明文件。
  4. 验证者使用约束或承诺,根据证明系统的验证协议检查证明。验证者根据证明的有效性接受或拒绝结果。

通过这个过程,zkVM 生成一个零知识证明。

第二章. 实时证明

当前 Ethereum 的最终性限制:为什么 12 秒很重要

“实时证明”意味着生成接近实时体验的证明。更具体地说,是指在 Ethereum 环境中的 12 秒区块时间内生成证明。为什么在 12 秒区块时间内生成证明很重要?

当前 Ethereum 的最终性,来源:Succinct Truth Prover Writing Topics

原因与 Ethereum 当前的 最终性 机制有关。目前,对于交易验证,Ethereum 中的大多数节点必须直接执行交易,并且由于 无需信任 原则,区块无法在创建的同时最终确定。

目前,Ethereum 将一个 Epoch 定义为 32 个区块(Slots)的捆绑,并且只有在两个 Epochs 过去后,一个区块才会被最终确定。这意味着大约需要 13 分钟(32 个 slots 12 秒/slot 2 个 epochs ~ 12.8 分钟)才能最终确认单个交易。

最终性:在区块链中,它意味着记录交易的区块已达到无法更改或撤销的状态。

无需信任:这意味着网络参与者可以信任和验证交易的有效性,而无需中央机构或中介(受信任的第三方)。

最终确定时间的显著改进

但是,如果在 12 秒内就可以完成 ZKP 的生成呢?让我们假设可以在创建一个区块所需的时间内实现以下一系列过程。

实时证明,来源:Succinct Truth Prover Writing Topics

  1. 区块生产者从 Mempool 中选择交易并将其添加到下一个区块。
  2. 通过 zkVM 执行交易并生成 ZKP。
  3. 将 ZKP 传播给验证者。
  4. 验证者快速验证 ZKP。

如果这四个过程发生在单个区块时间内,我们可以最终确定每个创建的区块,而无需像现在这样等待 2 个 Epochs。这将使我们能够比现在快 64 倍地最终确定区块(2 个 Epochs * 32 个 Slots/Epoch)。这正是为什么在 12 秒内实现 ZKP 生成至关重要的原因,以及为什么它成为“实时证明”的标准。

Mempool(交易池):区块链节点中已接收但尚未包含在区块中的交易的等待区。

实时证明的标准

在 2025 年 7 月,Ethereum 基金会提出了“实时证明”的明确标准。虽然我们之前只讨论了时间方面,但这种实时证明的最终目标是“家庭证明”。

它使任何人都可以从家中参与 Ethereum 网络的验证。因此,还提出了执行计算资源的标准。计算资源标准实际上旨在达到可以在家运行的水平。目前,运行 zkVM 需要消耗大量计算资源,使用数十个高性能显卡。

实时证明的标准,来源:https://blog.ethereum.org/2025/07/10/realtime-proving

据报道,证明生成延迟设置为 10 秒以内,而不是 12 秒的区块创建时间,是因为网络上数据传播所需的时间通常最多约为 1.5 秒。

这里需要注意的另一点是,即使在最坏的情况下,也必须努力接近实时。今年 5 月,Vitalik 通过他的 X 账户提到,即使在最坏的情况下,“实时证明”对于安全的 L1 使用也是必要的。

Vitalik 关于实时证明的推文。来源:X Vitalik Buterin

第三章. Jagged PCS — Succinct 的 SP1 Hypercube 的关键实现

Succinct 和 SP1 Hypercube

Succinct 是全球 zkVM 开发的领先项目之一,口号是“证明世界的软件”。它提供 SP1,一种适用于各种链的通用 zkVM 库,并进行研究以不断将其提升至高性能。

SP1 Hypercube 和多线性多项式,来源:https://learnblockchain.cn/article/19280/

5 月 20 日,他们发布了新的 zkVM 机器 SP1 Hypercube,提出了一种名为“Jagged PCS”的新型模式,并引入了一种利用这种新模式的“多线性多项式”计算范式。

他们将“实时证明”的基准设置为 90% 或更多的区块在 12 秒内生成,而 SP1 Hypercube 明确满足了这一点。(超过 93% 的区块在 12 秒内生成,平均区块生成时间为 10.3 秒)

关于 SP1 Hypercube 的证明延迟,来源:https://learnblockchain.cn/article/19280/

虽然这没有达到 Ethereum 基金会后来提出的基准,但它可以被认为是当时最接近“实时证明”的实现。

PCS 在 ZKP 中的作用

为了理解 Succinct 如何提高 zkVM 的计算速度,我们将探讨称为 Jagged PCS 的模式是什么。首先,为了理解什么是 PCS,让我们回顾一下我们在第一章中学习的 zkVM 证明生成过程。

  1. 编译器将交易更改为机器代码,VM 执行它,记录执行跟踪。
  2. 算术化模块将执行跟踪转换为算术约束。
  3. 转换后的算术约束传递给证明者,证明者将其转换为代数多项式。然后,“提交”生成的多项式。

来源:https://o1-labs.github.io/proof-systems/plonk/polynomial_commitments.html

这种提交这些多项式的技术称为 PCS(多项式承诺方案)。此处的“提交”是指生成多项式的加密摘要(指纹),可以将其描述为通过预处理多项式创建的简洁版本。此生成的“承诺”稍后将传输到验证者,并用于验证证明文件。

现有 PCS 处理的局限性

在传统的 zkVM 中,证明者将执行跟踪转换为代数多项式,然后将这些多个多项式表示为多个表,以提高计算精度。

这些表对应于不同的 CPU 指令。在这些生成的表中,表的每个单独的列都被视为单独的多项式,对其执行提交,并将证明文件提供给验证者。

在 Jagged PCS 中提交的稀疏多项式。来源:“Jagged polynomial commitments”

在这种方法中,由于多个多项式(灰色方块)的大小不同,因此通过用无意义的零(白色空间)填充任意空白空间来创建稀疏 PCS。这种将各个列作为单独的多项式提交的方法在计算过程中会产生大量的 开销

首先,只要证明者单独编码列,验证者就必须执行大量的工作,这些工作会随着系统中列数的增加而线性增加。

其次,现有的设计受到表的高度和宽度都必须是 2 的幂的要求的限制。如图所示,这会在表中创建不必要的空白空间(零填充),从而导致计算复杂性。

第三,最重要的问题是 PCS 生成的多个表的高度不一致。证明者在生成证明文件的过程中使用一个称为“递归电路”的电路,并且该电路的结构会根据表的高度而变化。换句话说,如果存在多个具有不同高度的表,则所需的递归电路的数量也会相应增加,从而可能导致所需电路的爆炸性增长。这称为“组合爆炸”问题。

因此,当前的 PCS 结构以一种具有显着优化空间的计算效率形式存在。

开销:执行任务所需的额外时间、内存或计算资源,超出直接计算本身。

Jagged PCS

数据的密集形式。来源:“Jagged polynomial commitments”

Succinct 提出了“Jagged PCS”来优化这种低效的 PCS 结构。这是一种有效地将现有的“Jagged”(不均匀)表(即稀疏 PCS 表配置)映射到“密集”形式的方法,如图所示,允许将它们作为逻辑单结构提交。

换句话说,证明者可以收集仅与实际执行跟踪相对应的多项式信息(不同长度的列),而没有间隙,将其“打包”为好像它是单个密集多项式,并使用单个承诺对其进行处理。

实现此目的的过程可以简要解释如下:

  1. 多项式压缩: 证明者按顺序从 2D 数组形式的 Sparse PCS 中仅对实际数据进行排序,并将其压缩为单个多项式(1D 数组)。
  2. 单次承诺和累积高度生成: 证明者仅对这个单项多项式执行承诺。同时,它计算并向验证者显示累积高度(通过依次添加每列的高度而获得的值序列),这些累积高度表示压缩数组中每个原始多项式(列)的起点。
  3. 位置转换: 当验证者请求原始 PCS 格式的信息(2D 数组中的位置)时,证明者会参考这些累积高度来计算压缩数组中的位置。
  4. 单次证明和验证: 证明者为压缩数组中相应位置的值生成证明文件,验证者仅验证这单次证明。

特别是,重要的是,通过步骤 3 和 4,现有的验证者的验证过程可以按原样使用,而无需使用其他特殊类型的架构。

通过 Jagged PCS 提高证明速度

与使用现有 PCS 结构进行的计算相比,此 Jagged PCS 具有以下两个优点。

首先,它可以解决验证者的开销问题。在传统方法中,验证者必须单独检查每个多项式的承诺,从而使工作量与列数成正比。但是,Jagged PCS 将其更改为对单个密集多项式的承诺。这大大降低了验证 时间复杂度,从线性级别降至恒定级别。此外,这也节省了验证成本,Succinct 将其描述为“仅为你使用的内容付费”的架构。

其次,它可以解决组合爆炸问题。在现有方法中,如果 PCS 表高度不同,则必须使用不同的验证电路来验证它们,从而导致“组合爆炸”问题,其中所需的验证电路数量会增加。但是,在 Jagged PCS 中,只需要一个已知大小的密集多项式和累积高度,从而允许验证者使用相同的验证电路,从而解决了组合爆炸问题。

SP1 Hypercube 的性能,来源:https://learnblockchain.cn/article/19280/

应用了具有这些优点的 Jagged PCS 的 SP1 Hypercube,与他们现有的模型 SP1 Turbo 相比,计算速度提高了 2 倍到 5 倍。

时间复杂度(线性与常数):“线性 (O(n))”意味着验证时间与数据量成正比增加,而“常数 (O(1))”意味着验证时间保持不变,而与数据量无关。

总结:迈向实时证明

我们已经探讨了 zkVM 是什么、Ethereum 利用它的“实时证明”路线图以及 SP1 Hypercube,这是第一个接近这个目标的。

虽然自 SP1 Hypercube 发布以来仅过去了大约半年,但在激烈的竞争中,zkVM 市场一直在呈指数级增长。

现在,在 SP1 Hypercube 使用 160 个 RTX 4090 在 12 秒内证明了 94% 的 L1 区块之后五个月,Pico Prism 已成功使用 64 个 RTX 5090 在 12 秒内证明了 99.9% 的 L1 区块。

ETHProofs,来源:https://ethproofs.org/

现有 zkVM 项目的当前状态可以在 https://ethproofs.org/ 上查看。通过此仪表板,很明显,Airbender、Jolt、OpenVM、Pico Prism、SP1 Hypercube 和 Ziren 等各种项目正在相互竞争。

此外,Ethereum 的 Fusaka 升级计划于今年 12 月进行。这是一项旨在通过与 Ethereum gas 相关的调整来对证明成本产生积极影响的升级。预计这将带来突破性的进展,几乎达到 Ethereum 基金会设定的“实时证明”目标。

任何人都可以使用个人 PC 从家中参与 Ethereum 证明的那一天(“家庭证明”)已经不远了。

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

0 条评论

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