专用的 ZK 基础设施正变得越来越通用,而通用 ZKVM 也正变得越来越专业化。

撰文:mo

编译:Luffy,Foresight News

专业化和通用化,哪一个才是 ZK 的未来?让我尝试用​一张图来回答这个问题:

如图所示,未来我们有可能收敛到权衡坐标系上一个神奇的最佳点吗?

不,链下可验证计算的未来是一条连续的曲线,它模糊了专用和通用 ZK 之间的界限。请允许我解释一下这些术语的历史演变,以及它们在未来将如何融合。

两年前,「专用」 ZK 基础设施意味着诸如 circom、Halo2 和 arkworks 之类的低级电路框架。使用这些框架构建的 ZK 应用本质上是手写的 ZK 电路。它们对于特定的任务来说速度快且成本低,但通常难以开发和维护。它们类似于当今 IC(集成电路)行业中的各种专用集成电路芯片(物理硅片),例如 NAND 芯片和控制器芯片。

然而,在过去的两年里,专用 ZK 基础设施逐渐变得更加「通用化」。

我们现在拥有 ZKML、ZK 协处理器和 ZKSQL 框架,它们提供易于使用且高度可编程的 SDK,用于构建不同类别的 ZK 应用,而无需编写一行 ZK 电路代码。例如,ZK 协处理器允许智能合约以无需信任的方式访问区块链历史状态、事件和交易,并对这些数据运行任意计算。ZKML 使智能合约能够以无需信任的方式利用 AI 推理结果来处理广泛的机器学习模型。

这些演变的框架显著提高了其目标领域内的可编程性,同时由于抽象层(SDK/API)单薄且接近于裸机电路,因此仍保持高性能和低成本。

它们类似于 IC 市场中的 GPU、TPU 和 FPGA:它们是可编程的领域专家。

ZKVM 在过去两年中也取得了长足的发展。值得注意的是,所有通用的 ZKVM 都是建立在低级、专用的 ZK 框架之上的。其理念是,你可以用高级语言(甚至比 SDK/API 更方便用户使用)编写 ZK 应用,这些应用可以编译为专用电路和指令集的组合(RISC-V 或类似 WASM)。它们就像 IC 行业中的 CPU 芯片。

ZKVM 是低级 ZK 框架之上的一层抽象层,就像 ZK 协处理器等一样。

正如一位智者曾经说过的,一层抽象可以解决所有计算机科学问题,但同时也会产生另一个问题。权衡,这是关键所在。从根本上讲,对于 ZKVM,我们在性能和通用性之间进行权衡。

两年前,ZKVM 的「裸机」性能确实很糟糕。然而,短短两年间,ZKVM 的性能得到了显著提升。

为什么?

因为这些「通用」的 ZKVM 已经变得更加「专业化」了。性能提升的一个关键原因是「预编译」。这些预编译是专门的 ZK 电路,可以计算常用的高级程序,例如 SHA2 和各种签名验证,速度比将它们分解为指令电路片段的正常流程要快得多。

因此,现在的趋势已经非常明显了。

专用的 ZK 基础设施正变得越来越通用,而通用 ZKVM 也正变得越来越专业化。

过去几年,这两种解决方案的优化都实现了比以前更好的权衡点:在不牺牲另一点的情况下,在某一点上取得进步。这就是为什么双方都觉得「我们绝对是未来」。

然而,计算机科学的智慧告诉我们,在某一时刻,我们会遇到「帕累托最优墙」(绿色虚线),即我们无法在不牺牲另一个性能的情况下改善一个性能。

因此,一个价值百万美元的问题出现了:一个技术是否会在适当的时候完全取代另一个技术?

在借助 IC 行业来理解:CPU 的市场规模为 1260 亿美元,而整个 IC 行业(加上所有「专用」IC)的规模为 5150 亿美元。我确信,从微观角度看,历史会在这里重演,它们不会相互取代。

话虽如此,今天没有人会说,「嘿,我正在使用一台完全由通用 CPU 驱动的计算机」,或者「嘿,这个是由专用 IC 驱动的花哨机器人」。

是的,我们确实应该从宏观的角度来看待这个问题,未来会有一个权衡曲线,让开发者根据自己的需求灵活选择。

未来,专用 ZK 基础设施和通用 ZKVM 可以协同工作。这可以以多种形式实现。最简单的方法现在已经可以实现。例如,你可以使用 ZK 协处理器在区块链交易历史中生成一些计算结果,但这些数据之上的计算业务逻辑非常复杂,你无法简单地在 SDK/API 中表达。

你可以做的是获取数据和中间计算结果的高性能和低成本的 ZK 证明,然后通过证明递归将它们汇聚到通用 VM。

虽然我认为这类辩论很有趣,但我知道我们都在为区块链构建这种由链下可验证计算驱动的异步计算未来。随着未来几年大规模用户采用的用例出现,我相信这场辩论终会出现结果。