Celer Network 和 Brevis 的联合创办人 Mo Dong 认为,协处理器(Coprocessors)用白话表达,就是「赋予智能合约 Dune Analytics 的能力」。
反过来理解,意即目前一般的智能合约是无法访问历史数据的。举个例子,笔者曾在一个流动性管理协议(Liquidity Manager Protocol)工作过,当时我们想要取得历史价格数据,去计算流动性提供者在 AMM 里超出价格区间的次数和对应成本。我们必须依靠 The Graph 的 GraphQL API 或类似的链下托管的索引服务,因为聚合、搜索、筛选等任务,无法靠合约本身的交互来完成;要想索引一些想像中很平常的区块链交易数据,实际操作起来其实非常困难,除了基本数据以外,很难读取逻辑稍微复杂一点的数据。
对流动性管理协议而言,如果我们想要评估现有的测试池子或现有用户池子的历史表现,一样要使用链下托管索引服务的 API 来抓取这些数据,在 Excel 里试算。有没有一种服务可以简化这个过程,赋予 dapp 智能合约直接聚合、筛选和分析这些数据的能力?协处理器就是为了解决这个需求而被开发的。
在早期的计算机系统中,CPU处理器往往只能执行基本运算,需要搭配专用的「协处理器」来执行特定类型的计算任务,如浮点运算等,以提升效能。
现在,我们可以将以太坊想像为一个巨大的超级计算机;世界各地的智能合约只能访问当前区块的链上数据,无法访问包括交易记录、帐户余额变化等在内的历史数据,这是因为以太坊的设计中没有为智能合约提供访问这些历史数据的途径。
为了确保数据可信任,访问历史数据需要一种加密方法,将历史记录与当前区块建立联系。但直接在智能合约中计算和验证这种证明的旷日费时,且开销非常大;另一种途径,是通过储存节点的查询,但智能合约无法直接与之交互,且存在信任问题。有什么手段可以解决信任问题,让我们能够执行可验证计算(Verifiable Computation),即让计算的结果可以直接被第三方验证其正确性,无需重新执行计算?类似于早期的计算机系统,协处理器能够扩展以太坊上的智能合约的计算能力,赋予其访问历史数据和执行复杂运算的新功能。
一般而言,验证以太坊数据的协处理器,主要运作流程的大方向如下:
1.通过某个服务在链下环境查询历史数据、执行相关计算;
2.该服务会生成某种证明,来证明它的操作是可信任的;
3.开发者的 dapp 会与该服务在以太坊上部署的协处理器合约交互,来验证证明;
4.与协处理器合约交互、验证结果后,dapp 能无信任地直接访问需要的历史数据。
下面主要分析协处理器领域内,各个竞品主要采用的技术堆栈和竞争优势。
Axiom 是协处理器领域最早期的参与者之一,致力于打造链上数据基础设施,让智能合约开发者能够更简单地与链上数据交互。 Axiom 也是最早提出协处理器这个概念的团队,本文后面将以 Axiom 为例子,详细介绍他们推出的协处理器具体如何运作。
Lagrange 主要聚焦于跨链状态证明和并行处理技术。它的证明无需通过 zkBridge 或类似 IBC 那种跨链消息传递协议传输,就可以实现跨链验证。 Lagrange 的并行证明器(Parallel Prover)则非常适合用在业务涉及 Restaking 的产品中,使 Lagrange 在 RaaS 生态占有一席之地。
和顺序式证明不同的是,并行证明的工作负载可以同时分布在数千个线程上,还可以通过重新质押在 EigenLayer 上进行保护。换句话说,并行计算和并行证明的方式能够实现较好的水平扩展性能。
实际用例之一是 Lagrange 在 AltLayer 上的应用。 AltLayer 主要提供的是 Restaked Rollup 的主动验证服务,可以帮助开发者快速实现去中心化排序、验证 Rollup 状态正确性。 2024年3月21日,Lagrange 宣布和 AltLayer 合作,使用并行证明器为其进行 Rollup 协处理,确保 AltLayer 的 RaaS 客户能够获取可验证、无信任的链上数据和计算结果。
Herodotus 与 Starkware/Starknet 生态紧密相关,合作伙伴也包括 Snapshot 等等。 Herodotus 将自己的协处理器系统称为存储证明(Storage Proof),能够与 ZK 证明结合,实现以太坊不同 Layers 之间的跨层数据访问。
来源:Herodotus 官网
存储证明系统由三个部分组成:
(1)包含证明(Inclusion Proofs),确认数据真实存在于以太坊的数据结构中;
(2)计算证明(Proofs of Computation),验证多步骤工作流的有效性,特别是涉及数据转换或其它操作时;
(3)ZK 证明,允许智能合约在不处理所有基础数据的情况下确认证明的有效性。任何处于以太坊归档节点 (archive node)中的链上数据,都可以被存储证明系统证明。
存储证明系统和其它协处理器一样,在链下生成,在链上验证,因此消耗的链上资源较少。使用存储证明系统,可以减少在以太坊层之间传输的数据量,因为发送的只是用于验证的区块哈希或累加器根(accumulator root)。
Brevis 是由 Celer Network 开发,用于构建各种链上数据服务(包括 ZK 协处理器)的基础设施。 Celer Network 是一个互操作性协议,创始人为 Mo Dong 和 Qingkai Liang,该项目在 2019 年 IEO 时募得了 $ 4 M。
目前 Celer Network 已在链上部署了一个 Brevis 合约,会验证协处理器请求的证明,并透过 callback 函数将结果回传至 dapp 的合约中。开发者能够使用 Brevis SDK 轻松让 dapp 访问链上历史数据,该工具把复杂的电路抽象了,因此开发者无需 ZK 证明的先备知识。 Brevis SDK 是由 Consensys Linea 团队的 gnark 框架为基础开发的。 Brevis 也支援以太坊的 ZK 轻用户端,因此支持来自任何以太坊 EVM 的链上数据。
来源:Brevis 文档
目前,Celer Network 正在以 Brevis 为基础,开发聚焦于 RaaS 生态的区块链 coChain,它是一个基于 PoS 共识算法的区块链,可以用来提供以太坊质押与 Slashing 服务。所谓 Slashing,指的是在以太坊PoS生态系统中对违规的验证者进行惩罚的过程,包括罚款和状态更改等等。历史上以太坊质押生态的 Slashing 比例很低,有数据指,遭到Slashing的验证者占比不0.04%左右。
coChain 比较特殊的地方是,它将生成协处理结果的过程与以太坊质押的奖惩绑定在了一起,过程如下:
(1)智能合约提出协处理请求,通过 PoS 共识生成协处理结果;
(2)PoS 生成的结果作为「提案」提交给区块链,它们可能会被零知识 (ZK) 证明「挑战」;
(3)ZK 证明如果挑战成功,证明了验证者在质押过程中有违规行为,将直接在以太坊上触发相应验证者的质押Slashing ;如果PoS生成的结果没有被挑战,dapp 就可以直接使用协处理结果而没有ZK 证明的成本。类似 Optimism,这种「乐观」的证明挑战方式成本较低。
总的来说,coChain 的做法是把协处理器的信任/验证诱因与以太坊质押生态结合在了一起,未来将与 EigenLayer 集成,来减少 ZK 协处理器的证明成本。
Nexus zkVM 可以被用来证明任何链上计算的结果。它的特色是能够验证基于折叠技术的 ZK 证明;同时 Nexus 也属于 zkVM 赛道。创立于 2022 年,Nexus 目前公布的细节并不多;创始人 Daniel Marin 过去曾任职 Google,毕业于 Stanford,Nexus 的早期文章是在 Stanford 区块链俱乐部发表的。
ZK 折叠技术是 zkVM 解决方案中一个被认为很有希望的分支。 Nexus zkVM 支持验证折叠证明(folding proofs)和累积方案(accumulation schemes),是一个可扩展的、模组化、开源的 zkVM。它的技术堆栈包含了基于增量可验证计算 (IVC) 和(多)折叠方案(如 Nova、CycleFold、SuperNova、HyperNova 等)的大规模并行化证明聚合机制。同时,他们还在开发 Nexus Network 一个基于 Nexus zkVM 建造的,可供大规模并行化的证明挖矿网路。
来源:Nexus 文档,Nexus zkVM 架构
从上面可以看到,各个项目基于不同生态(以太坊EVM、RaaS、跨链、以太坊跨层)、不同证明方式(Rollup vs ZK),或者ZK 证明中的不同解决方案(zk-SNARK、折叠证明、累积方案等),选择了不同的技术堆栈,在竞争优势上各有偏重,最终呈现出了不同的产品形式:可交互的链上合约、SDK,以及为各种目的设计的网路,如质押验证网路、大规模验证网路等等。
来源:作者自制
Axiom是一个为以太坊构建的 ZK 证明协处理器。它允许智能合约访问历史链上数据,并以 ZK 证明的技术确保链下计算的过程是无信任的。 Axiom 由 Jonathan Wang 和 Yi Sun 在 2022 年创立。 2024年1月25日,Axiom 在推特宣布募得 $ 20 M 的 A 轮融资,由 Paradigm 和 Standard Crypto 领投。它是首个提出「协处理器」概念的项目,也是目前最被风险投资支持的项目之一。
来源:Axiom 官方推特
2017 年,Yi Sun 从 MIT 获得数学博士学位,也在高频交易公司工作过了一段时间,他开始接触加密货币领域,并意识到 ZK 证明是区块链实现扩展性的关键。不过,当时他认为 ZK 技术还非常早期,所以选择持续观望这个领域。一直到2021 年底,ZK 技术已开始乘上高速发展的火箭,基础设施和开发工具也逐渐成熟,再加上Yi Sun 过去在构建DeFi 协议时,遇到了无法在自己撰写的智能合约中访问历史数据的问题,种种原因促成了Axiom 的诞生。
Axiom 目前采用的零知识证明技术是基于 Halo2 和 KZG 后台的 SNARK 证明系统,并运用了查找表(LUT)等 ZK 证明工具。过去 ZK 证明是复杂且难以审查的,查找表是一组预先计算的值,可以让证明者更有效地向验证者证明该值是存在的。
2024年1月,Axiom V2 在以太坊主网上线,支援从智能合约存取 transactions、receipts、contract storage、 block headers 等数据,意味着已经支持存取以太坊主网上所有的历史数据。
使用 Axiom 开发的 SDK 工具,开发者可以用 Typescript 编写 Axiom 电路,发出数据请求、自订计算。 Axiom 领先的原因,是它使智能合约访问链上数据变得非常简单:
1.开发人员使用Axiom Typescript SDK 编写 Axiom 电路,发出对以太坊历史数据的 ZK 验证计算请求;
2.Axiom 执行所请求的计算并生成 ZK 证明,证明数据和计算结果的正确性;
3.开发者在智能合约中实作 callback 函数,用于验证并执行从 Axiom 发送的带有ZK证明结果的数据;
4.Axiom 通过在链上发送交易来查询,回传结果由ZK证明加密保证其可信度。
不过,有别于 Herodotus,Axiom 目前不支持查询其它以太坊 EVM 网路或者 L2 网路的历史数据,只专注于以太坊主网,未来不排除支持相关功能。
应用层面上,Axiom 可以协助 dapp 实现以下功能:
目前协处理器的领头羊 Axiom,与 Succinct 等轻节点项目实现了互补关系。 Succinct 试图证明的是以太坊共识本身,而 Axiom 则是在接受共识结果的前提下,证明基于共识的任意链上历史数据。
随着ZK 证明领域的快速发展,包括折叠证明、积累方案和大查找表(large lookup tables)等发明不断涌现,这让支持ZK 证明技术最新进展的项目比如Nexus 得到注意;除了ZK 证明作为主流外,也有Lagrange 这样的项目通过并行证明器,为Rollup 提供证明,填补了市场的缺口。
技术的不断发展,进一步提升了各种知识证明的性能,减少证明大小和验证的成本,使它们能够被应用于更广泛的场景。在这样的背景中,模组化带来的灵活性开始获得重视,在协处理器这个赛道中尤为如此。
Bagikan
Celer Network 和 Brevis 的联合创办人 Mo Dong 认为,协处理器(Coprocessors)用白话表达,就是「赋予智能合约 Dune Analytics 的能力」。
反过来理解,意即目前一般的智能合约是无法访问历史数据的。举个例子,笔者曾在一个流动性管理协议(Liquidity Manager Protocol)工作过,当时我们想要取得历史价格数据,去计算流动性提供者在 AMM 里超出价格区间的次数和对应成本。我们必须依靠 The Graph 的 GraphQL API 或类似的链下托管的索引服务,因为聚合、搜索、筛选等任务,无法靠合约本身的交互来完成;要想索引一些想像中很平常的区块链交易数据,实际操作起来其实非常困难,除了基本数据以外,很难读取逻辑稍微复杂一点的数据。
对流动性管理协议而言,如果我们想要评估现有的测试池子或现有用户池子的历史表现,一样要使用链下托管索引服务的 API 来抓取这些数据,在 Excel 里试算。有没有一种服务可以简化这个过程,赋予 dapp 智能合约直接聚合、筛选和分析这些数据的能力?协处理器就是为了解决这个需求而被开发的。
在早期的计算机系统中,CPU处理器往往只能执行基本运算,需要搭配专用的「协处理器」来执行特定类型的计算任务,如浮点运算等,以提升效能。
现在,我们可以将以太坊想像为一个巨大的超级计算机;世界各地的智能合约只能访问当前区块的链上数据,无法访问包括交易记录、帐户余额变化等在内的历史数据,这是因为以太坊的设计中没有为智能合约提供访问这些历史数据的途径。
为了确保数据可信任,访问历史数据需要一种加密方法,将历史记录与当前区块建立联系。但直接在智能合约中计算和验证这种证明的旷日费时,且开销非常大;另一种途径,是通过储存节点的查询,但智能合约无法直接与之交互,且存在信任问题。有什么手段可以解决信任问题,让我们能够执行可验证计算(Verifiable Computation),即让计算的结果可以直接被第三方验证其正确性,无需重新执行计算?类似于早期的计算机系统,协处理器能够扩展以太坊上的智能合约的计算能力,赋予其访问历史数据和执行复杂运算的新功能。
一般而言,验证以太坊数据的协处理器,主要运作流程的大方向如下:
1.通过某个服务在链下环境查询历史数据、执行相关计算;
2.该服务会生成某种证明,来证明它的操作是可信任的;
3.开发者的 dapp 会与该服务在以太坊上部署的协处理器合约交互,来验证证明;
4.与协处理器合约交互、验证结果后,dapp 能无信任地直接访问需要的历史数据。
下面主要分析协处理器领域内,各个竞品主要采用的技术堆栈和竞争优势。
Axiom 是协处理器领域最早期的参与者之一,致力于打造链上数据基础设施,让智能合约开发者能够更简单地与链上数据交互。 Axiom 也是最早提出协处理器这个概念的团队,本文后面将以 Axiom 为例子,详细介绍他们推出的协处理器具体如何运作。
Lagrange 主要聚焦于跨链状态证明和并行处理技术。它的证明无需通过 zkBridge 或类似 IBC 那种跨链消息传递协议传输,就可以实现跨链验证。 Lagrange 的并行证明器(Parallel Prover)则非常适合用在业务涉及 Restaking 的产品中,使 Lagrange 在 RaaS 生态占有一席之地。
和顺序式证明不同的是,并行证明的工作负载可以同时分布在数千个线程上,还可以通过重新质押在 EigenLayer 上进行保护。换句话说,并行计算和并行证明的方式能够实现较好的水平扩展性能。
实际用例之一是 Lagrange 在 AltLayer 上的应用。 AltLayer 主要提供的是 Restaked Rollup 的主动验证服务,可以帮助开发者快速实现去中心化排序、验证 Rollup 状态正确性。 2024年3月21日,Lagrange 宣布和 AltLayer 合作,使用并行证明器为其进行 Rollup 协处理,确保 AltLayer 的 RaaS 客户能够获取可验证、无信任的链上数据和计算结果。
Herodotus 与 Starkware/Starknet 生态紧密相关,合作伙伴也包括 Snapshot 等等。 Herodotus 将自己的协处理器系统称为存储证明(Storage Proof),能够与 ZK 证明结合,实现以太坊不同 Layers 之间的跨层数据访问。
来源:Herodotus 官网
存储证明系统由三个部分组成:
(1)包含证明(Inclusion Proofs),确认数据真实存在于以太坊的数据结构中;
(2)计算证明(Proofs of Computation),验证多步骤工作流的有效性,特别是涉及数据转换或其它操作时;
(3)ZK 证明,允许智能合约在不处理所有基础数据的情况下确认证明的有效性。任何处于以太坊归档节点 (archive node)中的链上数据,都可以被存储证明系统证明。
存储证明系统和其它协处理器一样,在链下生成,在链上验证,因此消耗的链上资源较少。使用存储证明系统,可以减少在以太坊层之间传输的数据量,因为发送的只是用于验证的区块哈希或累加器根(accumulator root)。
Brevis 是由 Celer Network 开发,用于构建各种链上数据服务(包括 ZK 协处理器)的基础设施。 Celer Network 是一个互操作性协议,创始人为 Mo Dong 和 Qingkai Liang,该项目在 2019 年 IEO 时募得了 $ 4 M。
目前 Celer Network 已在链上部署了一个 Brevis 合约,会验证协处理器请求的证明,并透过 callback 函数将结果回传至 dapp 的合约中。开发者能够使用 Brevis SDK 轻松让 dapp 访问链上历史数据,该工具把复杂的电路抽象了,因此开发者无需 ZK 证明的先备知识。 Brevis SDK 是由 Consensys Linea 团队的 gnark 框架为基础开发的。 Brevis 也支援以太坊的 ZK 轻用户端,因此支持来自任何以太坊 EVM 的链上数据。
来源:Brevis 文档
目前,Celer Network 正在以 Brevis 为基础,开发聚焦于 RaaS 生态的区块链 coChain,它是一个基于 PoS 共识算法的区块链,可以用来提供以太坊质押与 Slashing 服务。所谓 Slashing,指的是在以太坊PoS生态系统中对违规的验证者进行惩罚的过程,包括罚款和状态更改等等。历史上以太坊质押生态的 Slashing 比例很低,有数据指,遭到Slashing的验证者占比不0.04%左右。
coChain 比较特殊的地方是,它将生成协处理结果的过程与以太坊质押的奖惩绑定在了一起,过程如下:
(1)智能合约提出协处理请求,通过 PoS 共识生成协处理结果;
(2)PoS 生成的结果作为「提案」提交给区块链,它们可能会被零知识 (ZK) 证明「挑战」;
(3)ZK 证明如果挑战成功,证明了验证者在质押过程中有违规行为,将直接在以太坊上触发相应验证者的质押Slashing ;如果PoS生成的结果没有被挑战,dapp 就可以直接使用协处理结果而没有ZK 证明的成本。类似 Optimism,这种「乐观」的证明挑战方式成本较低。
总的来说,coChain 的做法是把协处理器的信任/验证诱因与以太坊质押生态结合在了一起,未来将与 EigenLayer 集成,来减少 ZK 协处理器的证明成本。
Nexus zkVM 可以被用来证明任何链上计算的结果。它的特色是能够验证基于折叠技术的 ZK 证明;同时 Nexus 也属于 zkVM 赛道。创立于 2022 年,Nexus 目前公布的细节并不多;创始人 Daniel Marin 过去曾任职 Google,毕业于 Stanford,Nexus 的早期文章是在 Stanford 区块链俱乐部发表的。
ZK 折叠技术是 zkVM 解决方案中一个被认为很有希望的分支。 Nexus zkVM 支持验证折叠证明(folding proofs)和累积方案(accumulation schemes),是一个可扩展的、模组化、开源的 zkVM。它的技术堆栈包含了基于增量可验证计算 (IVC) 和(多)折叠方案(如 Nova、CycleFold、SuperNova、HyperNova 等)的大规模并行化证明聚合机制。同时,他们还在开发 Nexus Network 一个基于 Nexus zkVM 建造的,可供大规模并行化的证明挖矿网路。
来源:Nexus 文档,Nexus zkVM 架构
从上面可以看到,各个项目基于不同生态(以太坊EVM、RaaS、跨链、以太坊跨层)、不同证明方式(Rollup vs ZK),或者ZK 证明中的不同解决方案(zk-SNARK、折叠证明、累积方案等),选择了不同的技术堆栈,在竞争优势上各有偏重,最终呈现出了不同的产品形式:可交互的链上合约、SDK,以及为各种目的设计的网路,如质押验证网路、大规模验证网路等等。
来源:作者自制
Axiom是一个为以太坊构建的 ZK 证明协处理器。它允许智能合约访问历史链上数据,并以 ZK 证明的技术确保链下计算的过程是无信任的。 Axiom 由 Jonathan Wang 和 Yi Sun 在 2022 年创立。 2024年1月25日,Axiom 在推特宣布募得 $ 20 M 的 A 轮融资,由 Paradigm 和 Standard Crypto 领投。它是首个提出「协处理器」概念的项目,也是目前最被风险投资支持的项目之一。
来源:Axiom 官方推特
2017 年,Yi Sun 从 MIT 获得数学博士学位,也在高频交易公司工作过了一段时间,他开始接触加密货币领域,并意识到 ZK 证明是区块链实现扩展性的关键。不过,当时他认为 ZK 技术还非常早期,所以选择持续观望这个领域。一直到2021 年底,ZK 技术已开始乘上高速发展的火箭,基础设施和开发工具也逐渐成熟,再加上Yi Sun 过去在构建DeFi 协议时,遇到了无法在自己撰写的智能合约中访问历史数据的问题,种种原因促成了Axiom 的诞生。
Axiom 目前采用的零知识证明技术是基于 Halo2 和 KZG 后台的 SNARK 证明系统,并运用了查找表(LUT)等 ZK 证明工具。过去 ZK 证明是复杂且难以审查的,查找表是一组预先计算的值,可以让证明者更有效地向验证者证明该值是存在的。
2024年1月,Axiom V2 在以太坊主网上线,支援从智能合约存取 transactions、receipts、contract storage、 block headers 等数据,意味着已经支持存取以太坊主网上所有的历史数据。
使用 Axiom 开发的 SDK 工具,开发者可以用 Typescript 编写 Axiom 电路,发出数据请求、自订计算。 Axiom 领先的原因,是它使智能合约访问链上数据变得非常简单:
1.开发人员使用Axiom Typescript SDK 编写 Axiom 电路,发出对以太坊历史数据的 ZK 验证计算请求;
2.Axiom 执行所请求的计算并生成 ZK 证明,证明数据和计算结果的正确性;
3.开发者在智能合约中实作 callback 函数,用于验证并执行从 Axiom 发送的带有ZK证明结果的数据;
4.Axiom 通过在链上发送交易来查询,回传结果由ZK证明加密保证其可信度。
不过,有别于 Herodotus,Axiom 目前不支持查询其它以太坊 EVM 网路或者 L2 网路的历史数据,只专注于以太坊主网,未来不排除支持相关功能。
应用层面上,Axiom 可以协助 dapp 实现以下功能:
目前协处理器的领头羊 Axiom,与 Succinct 等轻节点项目实现了互补关系。 Succinct 试图证明的是以太坊共识本身,而 Axiom 则是在接受共识结果的前提下,证明基于共识的任意链上历史数据。
随着ZK 证明领域的快速发展,包括折叠证明、积累方案和大查找表(large lookup tables)等发明不断涌现,这让支持ZK 证明技术最新进展的项目比如Nexus 得到注意;除了ZK 证明作为主流外,也有Lagrange 这样的项目通过并行证明器,为Rollup 提供证明,填补了市场的缺口。
技术的不断发展,进一步提升了各种知识证明的性能,减少证明大小和验证的成本,使它们能够被应用于更广泛的场景。在这样的背景中,模组化带来的灵活性开始获得重视,在协处理器这个赛道中尤为如此。