​ZKP是安全跨链的必由之路吗?
星球君的朋友们
2023-04-17 07:22
本文约5020字,阅读全文需要约20分钟
ZKP跨链协议是否能够给用户带来更加安全的跨链体验?

2022 年起,随着MultichainSuccinctCeler等众多跨链项目推出ZKP跨链测试网,基于ZKP的轻客户端跨链成为行业热点。ZKP跨链本质属于原生验证这一大类,可以实现去信任化的源链共识验证帮助DAPP构建最安全的多链(或者说是全链)生态系统之所以说是最安全是因为相对于目前通过信任第三方实现的跨链通信的跨链方案,ZKP跨链不引入任何信任假设,用户只需要信任源链共识和目标链共识从这个维度上看,ZKP跨链是最安全的跨链方式。但ZKP跨链方案技术极其复杂,门槛相对较高。

使用ZKP 构建轻客户端原生验证是实现去信任化跨链最好方式

跨链可操作协议从验证方式上通常可以分为三类外部验证、原生验证和本地验证。这三类互操作协议都有自身的局限性,难以兼顾去信任化可拓展性和通用性。

1. 外部验证

外部验证是指引入一组可信的外部节点负责跨链消息的验证,其前提是用户必须信任这一组外部节点构成的中继网络。基于MPCOracle systemsPoS/PoA、多签和TEE等实现的跨链方案都属于这个范畴。外部验证跨链互操作协议建立在对第三方的中继节点预言机的信任基础上无法实现去信任化的消息中继跨链,但中继和预言机在有些情况下也难以被完全信任。该类型的跨链实现方案是目前市场的主流,包含了MultichainWormholeAxelarLayerZero等知名项目。

2. 本地验证

本地验证也称为P2P验证,指交易对手直接进行验证,其核心是基于哈希时间锁的原子交换在交易过程中,交易双方分别验证对方的行为,只要有一方作恶,双方都会面临损失,因此他们的利益是一致的。在实践当中,为了撮合交易,会有一个流动性提供者充当交易对手。ConnextHop都可以算这个分类中的典型。但是这方案只适合资产跨链,并不适用于通用消息跨链,通用性弱。

3. 原生验证

原生验证是指在目标链部署源链轻节点,由目标链的轻节点对源链消息进行验证,原生验证无信任假设,理论上用户只需要信任源链共识和目标链共识,并且确保源链和目标链不发生回滚(链上轻节点一般会设置一定的区块冗余,防止源链和目标链回滚)。原生验证的典型项目有Rainbow Bridge近两年基于ZK的跨链方案也属于这一范畴,典型的ZKP跨链项目包括zkRouterSuccinct LabsNil;Foundation等。

三类跨链互操作协议验证方式的综合比较见表所示

1 跨链互操作协议验证方式综合比较

多链生态的繁荣催生跨链的需求Multichain(anyCall)LayerzeroWormhole众多优秀的跨链项目先后诞生,这些跨链项目更加重视是通用性和可拓展性,需要可信的中继网络

2021 年到2022 跨链项目Ronin NetworkHorizonBNB ChainWormholeNomad等都受到了黑客攻击有巨量资产被盗。多链生态用户和跨链赛道参与者发现,去信任化跨链尽管可拓展性弱,但其去信任化特性对用户来说是更安全的选择因此原生验证就成为实现去信任化跨链最好途径。

通常意义的原生跨链互操作协议在目标链验证源链共识需要消耗大量Gas,原因是目标链轻客户端需要获取大量源链数据才能生成关于共识的信息。而ZKP用于原生验证,通过生成简洁的ZKP证明,使目标链轻客户端只需要获取ZKP就可以验证目标链交易因此使用ZKP构建轻客户端的原生验证方式就成为一个更好的方案。

通过共识传递实现去信任跨链

PolkadotCosmos公链生态共识天然支持生态内跨链,对于非同一生态的公链,例如EthereumSolana等异构链却无法利用其跨链优势。包括MultichainLayerzeroWormhole在内的主流第三方跨链桥都需要信任中继网络而使用ZKP构造的跨链方案则不需要信任第三方,其直接向目标链传递源链的ZKP共识证明,目标链轻客户端只需要验证源链的共识证明,即可实现共识跨链。

但是不同链共识生成原理和生成方式千差万别,验证共识需要的数据也不同。ZKP跨链难点在于如何生成源链共识ZKP,而源链共识的ZKP是基于源链共识数据产生的,因此源链ZKP生成也需要基于源链共识进行不同源链共识生成的ZKP的电路需要进行定制化设置。

不同公链共识生成的过程千差万别,生成ZKP的过程也不同下面Ethereum POS为例说明这个过程。

Ethereum设计了一套复杂的验证者选择机制来生成共识。EthereumAltair升级中增加了一个关键功能,这个功能是专门为支持轻客户端同步区块状态而设计的同步委员会 (sync committee)Ethereum使用RANDAO算法随机选择512 个验证者成同步委员会,同步委员会的信息保存在信标链Beacon Chain中,每隔256 Epoch(一个Epoch6.4 分钟)更新一次同步委员会的作用是不断签署区块头,在2/3 同步委员会成员签名后,以太坊状态转换会被确认。

信标链Beacon Chain采用 BLS 12-381 算法,作为验证者参与 POS 共识的方式。信标链区块中多个验证者 BLS 签名可以进一步聚合为单个签名,从而有效减轻了原有数个签名的数据通信与链上存储压力。同时验证者只需验证单个签名即可更高效进行区块验证。

因为同步委员会为共识机制组成部分,轻客户端可以在不需要访问整个验证者集的情况下获取被验证过的共识状态。目标链轻客户端为了验证源链共识状态,会下载部分数据并进行验证与计算,包括:

Merkle路径证明。验证对当前区块签名的委员会(sync_cmts)是在已验证区块头中指定的下一届委员会。

聚合委员会公钥根据当前区块同步委员会实际签名情况可以计算聚合委员会公钥。

同步委员会的签名使用聚合委员会公钥,验证新区块中的委员会签名。

上述验证方法是原生验证的通用方案,但是在链上直接验证源链共识涉及到大量的链上数据验证与计算,Gas消耗高。而使用ZKP技术,在链下完成源链数据的计算与验证,并生成简洁的源链共识传递到目标链可以大大降低链上Gas消耗,这也是为什么基于ZKP的链上轻客户端可以廉价验证源链共识。基于ZKP的跨链协议将聚合公钥验证BLS签名的过程放在链下,并生成ZKP证明,目标链客户端只需要验证一个零知识证明就可以验证源链共识。具体代码如图所示

1  共识验证伪代码

资料来源:zkPoS: End-to-End Trustless

从上述ZKP轻客户端同步共识的过程可以发现,其链下证明生成过程与源链共识机制轻客户端的支持情况紧密相关这也是为什么要实现链上轻客户端较为困难,而且每次Ethereum升级的时候轻客户端都需要检查是否需要更新同步代码的原因

ZKP 跨链项目对比

ZKP跨链的流程大同小异,进行个例分析时,笔者更加重视每个跨链项目的独特性。ZKP跨链的基本原理可以看上一篇博客https://www.theblockbeats.info/news/35560 

1. zkRouter(Multichain)

zkRouter是由Multichain开发的ZKP跨链项目,根据其白皮书描述,其愿景是zkRouter发展成其MBI(多链互操作协议)的一部分,作为底层信任机制服务于其多链互操作协议这一部分内容在上一文章已经有很多解释,这里强调几个要点

从目前公开的信息看,Goerli测试网Fantom测试网的zkRouter跨链桥将在近期上线。zkRouter 协议主要包含初始设置共识证明生成验证共识证明和互操作合约调用四个步骤如图所示

2  zkRouter跨链过程

资料来源zkRouter: Trustless, General Cross-Chain Infrastructure

( 1) 初始设置(Setup

目标链轻客户端要完成对源链ZKP证明的验证,就必须有上一个源链区块的共识状态区块链的共识状态具有连续性,即当前的区块共识结果是基于上一个区块共识结果的更新因此目标链轻客户端必须先获取源链当前的共识状态,然后才能验证后续区块共识的正确性。

目标链的轻客户端在一开始需要初始initial_data,这个数据包括初始的区块高度区块头hash等。初始设置只需要设置一次,后续随着跨链行为发生,该数据会自动被更新。

( 2) 共识证明生成(Proof Gen

步骤发生在具体的跨链过程中。当源链产生新的区块后,目标链需要同步新的信息,这些新的信息包括了前一区块的状态出块节点选择签名节点的合法性等内容。对于非即时最终性的共识机制,还需要设置一定的冗余区块数,避免分叉带来的损失。然后中继者通过链下ZKP技术计算生成链下ZKP,同步到目标链。

( 3) 验证共识证明(ProofVerify

当简洁ZKP被中继者提交到目标链后,就需要对该ZKP进行验证了,这部分工作由链上轻客户端完成。验证通过后返回验证结果,并在目标链更新源链的共识状态信息。

( 4) 互操作合约调用(InterOperCall

当目标链轻客户端通过对源链共识(包含源链交易)的验证后,参与者就可以发起跨链合约互操作调用完成跨链交互了。具体的细节可以参考其白皮书。

zkRouter 核心优势是实现了高TPS跨链根据描述,zkRouterTPS上限是公链TPS,测试网显示其数据可以达到100 TXS

Goerli测试网源链地址https://goerli.etherscan.io/txs?a=0x91d1d54572ef662419d9e552a013321b5713e3ad

Fantom测试网目标链地址https://testnet.ftmscan.com/address/0x91d1D54572Ef662419d9E552A013321b5713E3AD#tokentxns

zkRouter的具体方案,可进一步参考其白皮书具体描述。

2. Hyper OracleHyper Oracle

Hyper Oracle把自己定义为去信任的预言机网络其他ZKP跨链项目的区别在于Hyper Oracle强调的是整个共识的传递Hyper Oracle的愿景是实现端到端的无信任,需要实现轻客户端验证以太坊PoS的整个共识。

而在以太坊POS的实现中同步委员会的共识已经是整个共识的一部分,为什么要强调传递整个共识呢?

3. BrevisCeler

Brevis对自己的定义是全链计算和验证平台,本质上也是一种跨链通信方案也是通过生成ZKP共识证明实现去信任的跨链通信。Brevis包括三个组件分别为zkFabriczkQueryNetzkAggregatorRollup。 从目前情况看,其覆盖的范围包括EVMNON-EVM链,

zkFabric的主要功能是收集区块头,并在通过 ZKP 轻客户端电路证明其有效性后,生成共识证明相当于ZK跨链角色当中的中继者和证明者当然在这个系统中,中继的目的地是zkAggregatorRollup

zkAggregator Rollup由轻量级 ZKP 虚拟机提供支持的 ZK rollup 区块链,它汇总了来自 zkQueryNet zkFabric 的不同证明和输入信息。根据Celer的描述,zkAggregatorRollup VM runtime 具有以下功能:

)递归验证由 zkQueryNet zkFabric 生成的证明;

)存储来自 zkFabric  ZKP 验证的区块头;

)存储查询请求和 ZKP验证结果。

zkQueryNet是一个提供 ZKP 查询引擎的开放市场,可直接接受来自链上智能合约的数据查询,并通过 ZKP查询引擎电路生成查询结果和相应的 ZKP 查询证明。这个结果也会保存在Query Result中(Query Result属于zkAggregatorRollup 模块)。

具体如图所示

3  Brevis系统组成

资料来源:Brevis: A ZK Omnichain Data Attestation Platform

Brevis相对于其他zk跨链项目最大的特点是模块化,这种结构化的设计增强了Brevis的可拓展性,通过对不同功能的封装,Brevis可以实现统一的接口,在方便DAPP调用的同时,也利于后续拓展更多的公链。

4. TelepathySuccinct

Telepathy是由Succinct团队开发的协议,目标是使用户可以在无许可去信任的情况下实现互操作性。通过TelepathyDAPP可以安全地将消息从源链发送到任意目标链。定义符合传统的跨链消息定义模型。

Telepathy跨链通信模型主要有五个步骤具体如图所示

( 1) 多链DAPP合约发起一个多链互操作指令。

( 2) Telepathy Broadcaster接受到这个指令后,约在12 分钟后,Ethereum主链形成最终性的共识。

( 3) Telepathy Operator使用Etereum共识生成ZKP共识证明。

( 4) Telepathy Relayer将共识证明传递到目标链合约。

( 5) 目标链轻客户端合约验证ZKP共识证明。

这种通用的消息跨链模型非常适合多链链间消息通信,并且知名跨链项目Across已经宣布使用Telepathy构建Avalanche BNB Chain 之间的跨链桥。

4  跨链消息传递模型

资料来源Telepathy官方简介

5. Nil.foundation

NilBrevis的定位类似,目标是成为多链证明市场,DAPP可以根据自己的需求请求Nil生成证明数据。这里不做过多赘述。

此外上篇文章提到的zkLLVM也是Nil核心产品之一。该产品定位于帮助开发者使用高级语言编译ZKP,极大地降低了开发者的准入门槛。通过这个工具,开发者可以使用自己熟悉的语言专注于电路设计,而不是陷入特定领域语言DSL学习。

总结与展望

目前众多团队都在致力于ZK跨链桥的开发。由于ZKP的生成和源链共识紧密相关,而不同链达成共识的方式、使用的签名算法都不相同,在实践当中,各种方案的效率与特点不尽相同具体如表所示

2  基于 ZKP 的主要跨链协议比较

虽然这些项目都是基于SNARK技术构建的零知识证明系统,但是实现算法算法优化程度使用的硬件难以统一,因此上述ZKP生成速度仅为参考,更多详细的数据需要进行更严谨的基准测试。

目前大部分ZK跨链桥都支持NON-EVM在这一点上各项目区别不大。而在未来ZK跨链互操作协议主要竞争点在于算法优化多链部署与合约安全上。

链下生成ZKP需要大内存高性能服务器,这意味着高昂的设备成本,而优化的算法可以节省算力。

近两个月很多跨链协议都有所动作,基本上都是围绕ZKP跨链开展,普遍上线测试网跨链,上线主网的不多另外很多跨链协议普遍都是链接一两条链,并未实现多链互通,因此未来跨链桥支持的链越多就越有竞争优势。

ZK跨链项目普遍没有经历大规模的市场检验合约的安全性将决定这些项目是否能在这个市场存活目前这个问题被大多数人所忽略,而未来安全成为ZKP项目的最大风险项。

跨链协议是区块链安全事故的重灾区这引发了几乎所有从业人员对跨链协议的担忧更为严峻的是目前主流的跨链协议几乎都属于外部验证这一大类无法实现去信任化存在严重的安全风险一旦中继者联合作恶多链生态参与者将面临无法估量的损失ZKP跨链作为原生验证的一类不仅具有去信任化通用性等原生验证跨链独有的优势Gas消耗也比直接在目标链验证原始源链数据的方式低最近跨链项目方频繁地推出ZKP跨链测试网说明他们也敏锐地发现了这一点ZKP跨链协议发展仍处于早期ZKP跨链协议是否能够给用户带来更加安全的跨链体验还有待我们进一步跟踪和观察

相关参考文献

https://hyperoracle.medium.com/zkpos-end-to-end-trustless-65edccd87c5a

https://blog-cn.celer.network/2023/03/22/brevis-a-zk-omnichain-data-attestation-platform/

https://drive.google.com/file/d/1ibuHChcYcYCN6JelRAQPnM4rkaB9EgAM/view

https://blog.succinct.xyz/blog/telepathy

https://docs.telepathy.xyz/protocol/overview

https://blog.celer.network/2023/03/21/brevis-a-zk-omnichain-data-attestation-platform/

原文链接

星球君的朋友们
作者文库
推荐文章
Test105
2025-09-25 07:32
Test105
Test104
2025-09-25 07:32
Test104
Test103
2025-09-25 07:31
Test103
Test102
2025-09-25 07:30
Test102
Test 101
2025-09-25 07:21
Test 101