ZK 协处理器的设计目的是从区块链中卸载计算,同时保持可验证性。其核心架构由三个主要组件组成:证明引擎、验证合约和虚拟机(zkVM 或电路运行时)。
证明引擎负责在链下执行计算并生成密码学证明,证明计算被正确完成。该引擎接收输入数据,通过已定义的逻辑或程序运行它,并输出简洁的零知识证明。证明者通常是一个重量级过程,需要计算资源如 CPU 或 GPU,具体取决于所使用的证明系统类型。
验证合约部署在链上,设计上是轻量级的。它唯一的目的是验证提交的证明的正确性。它持有验证密钥,该密钥在数学上源自证明者使用的相同逻辑。当智能合约收到证明时,它会根据密钥检查,并确认结果是否有效。与在链上运行完整计算相比,这个过程快速且成本低。
zkVM 或算术电路定义了程序的逻辑。它作为证明者的运行时环境。在某些系统中,这是用低级 DSL 编写的自定义电路,而其他系统则使用可以解释高级语言代码的完整虚拟机。这些组件共同实现了无需信任的链下执行和简洁的链上验证。
几种工具和框架已经出现,支持 ZK 协处理器的开发。Circom 是最早也是最广泛使用的电路语言之一。它允许开发者使用声明式语法定义算术电路。这些电路随后被编译成 Groth16 或 PLONK 等证明系统。Circom 以其灵活性而闻名,但学习曲线陡峭,需要手动电路设计。
Noir 是一种更新的语言,旨在使 ZK 开发更加易于使用。由 Aztec 开发的 Noir 是一种类似 Rust 的语言,抽象了约束系统的大部分复杂性。它自动编译成零知识电路,使编写具有可读语法的私有程序变得更容易。
除了语言之外,zkVM 因其能够在 ZK 友好环境中运行通用代码而受到关注。Risc Zero 提供了最先进的 zkVM 实现之一。它模拟 RISC-V 指令集,允许开发者将用 Rust 或 C 编写的任何程序作为零知识证明运行。由 Succinct 开发的 SP1 采用类似的方法,但旨在优化性能和在证明系统之间的可移植性。
这些环境至关重要,因为它们决定了 ZK 协处理器的表达能力、效率和可组合性。虽然低级电路对于性能关键的应用仍然有用,但 zkVM 正在实现更广泛的开发者采用和更快的迭代。
为了理解 ZK 协处理器在实践中如何工作,考虑一个像 Axiom 或 Risc Zero 的 Bonsai 这样的系统的执行流程。
在 Axiom 的模型中,开发者定义了一个关于以太坊历史数据的查询 — 例如,检查用户在过去的区块中是否持有特定余额。这个查询被发送到 Axiom 的链下协处理器。协处理器获取相关的链上数据,处理查询,并使用 zkVM 执行逻辑。一旦计算完成,协处理器生成一个证明结果正确性的零知识证明。这个证明被提交到链上的验证合约,该合约验证它并允许智能合约完全信任地使用结果。
Risc Zero 的 Bonsai 遵循类似的结构,但泛化了这个过程。开发者用 Rust 等高级语言编写他们的应用程序逻辑。这段代码被编译成 zkVM 镜像,并使用 Bonsai 的基础设施在链下执行。执行后,生成一个证明,可以通过链上验证器发布回任何区块链。
这种架构允许开发者构建强大、信任最小化的逻辑,而不会使区块链超载。它还实现了可重用、可组合的证明,可以服务于多个合约或应用程序。
ZK 协处理器的强大之处在于它支持的信任模型。与中心化的预言机或链下计算提供者不同,ZK 协处理器不要求用户信任执行计算的实体。相反,信任被转移到数学上。
这种信任的核心来自于零知识证明的结构。这些证明的设计确保任何无效的计算,哪怕是单个不正确的位,都会导致验证失败。假设密码学假设成立,验证合约不可能被欺骗接受错误的结果。
此外,由于验证者只需要公共输入、证明和验证密钥,因此不依赖于证明者的身份或行为。任何第三方都可以生成证明,只要它通过验证,就会被接受。这意味着证明者可以是去中心化的、无需许可的,甚至可以被激励,这是进一步在证明网络中探索的特性。
通过将密码学保证与区块链终局性相结合,ZK 协处理器实现了一个新的无需信任的执行层,不依赖于中心化服务、声誉或多签共识。
ZK 协处理器在需要信任最小化、成本效率或私密性的领域找到了实际的牵引力。在 DeFi 中,它们可以计算时间加权平均价格、一段时间内的资产持有量或自定义风险模型,而无需在链上存储所有数据。这使得更智能的金融合约成为可能,而不会增加 gas 成本或使区块链膨胀。
在跨链应用中,ZK 协处理器可以作为轻客户端。应用程序不必为每个链运行完整节点,而是可以验证另一个链状态的简洁证明。这大大简化了桥接和消息协议,提高了安全性和互操作性。
Layer 2 生态系统也在采用 ZK 协处理器作为优化 rollup 逻辑的方式。rollup 可以将特定任务委托给外部 ZK 协处理器,如欺诈检测、预言机验证或用户定义的逻辑,而不是在 rollup 电路内运行每个交互。这降低了证明成本,使 rollup 更加模块化。
因此,ZK 协处理器正在成为基础设施的重要组成部分。它们扩展了区块链的功能,而不会牺牲去中心化或性能。随着工具和运行时的成熟,它们可能成为任何先进去中心化应用程序开发堆栈的默认选项。