作者:LK Venture

如今,以太坊占据着区块链行业基础设施的半壁江山,但是其主网的统治地位正在被许多后来者挑战。行业普遍的共识之一是,未来或将是多链共存的格局,跨链甚至全链则是多链生态中最关键的一环。

在北欧神话中,海姆达尔(Heimdallr)是一个神秘且重要的神祇,负责守卫连接神域(Asgard)与人间世界(Midgard)的彩虹桥——比弗洛斯特(Bifrst)。如果我们把连接不同神域和人间世界的彩虹桥比作跨链桥,那么,零知识证明技术能否肩负起守卫跨链安全的重任,成就彩虹桥上万夫莫开的「海姆达尔」神话?

- 什么是 ZK Bridge?ZK Bridge 是使用零知识证明技术的跨链桥,具有零信任、无许可、可拓展、高效率的特性。

- 如何实现 ZK Bridge?基于 ZK-SNARK 的轻节点方案

跨链桥(Cross-chain Bridge)是一个允许在不同区块链网络之间实现价值和信息传输的技术解决方案。通过利用一系列加密和协议技术,跨链桥实现了资产和数据的安全、可验证和无需信任的转移,进而促进了区块链网络之间的互操作性。

跨链桥作为一个中心化的巨额资金池,天然会吸引黑客——攻击成功的收益是巨大的。此外,由于不同链之间的安全假设可能存在差异,资产跨链的代码更为复杂,代码审计也无法找出所有漏洞,也就为有着巨大激励驱动的黑客以可乘之机。

1. 中心化攻击:部分跨链桥依赖于中心化的中继器或验证器来传输和验证交易。这种设计可能会导致单点故障,攻击者可以通过攻击这些中心化组件来破坏整个跨链系统。

3. 双花攻击:在某些情况下,攻击者可能会尝试在源链和目标链上同时花费同一笔资产,从而导致资产的双花。跨链桥需要设计有效的防范措施来防止双花攻击。

5. 链下协调攻击:跨链桥的一些实现依赖于链下协调,如状态通道或侧链。攻击者可能会通过对链下协调环节进行干扰或攻击,来破坏跨链桥的正常运作。

跨链最核心的问题就是如何验证另一条链的消息是可靠的。针对该问题产生了不同解决方案,包含不同程度的信任假设。

轻节点加中继,其实是最早出现的跨链解决方案,代表项目要数 BTC Relay,目的在于用比特币进行支付去使用以太坊的服务。然而,由于要进行大量的链上计算与存储,运行链上轻客户端的代价昂贵。而且由于不同链间共识算法和签名算法等的异构,导致跨链方案不可扩展,需要为每对特定的两条链专门实现 light client & relay。

当前主流跨链项目为了避免高昂的链上轻节点成本,将验证过程移至链下,同时也带来不同程度的信任假设和潜在欺诈风险,LK Venture 投研团队根据信任程度从高到低,对部分重点方案进行介绍。

典型项目有 Multichain、Wormhole、Ronin Bridge。这些都要求多重签名 MPC 实现,需要实体验证交易,并验证 (即签名) 其有效性。通过阈值后(往往是 2/3),交易就被认为是已验证的。

•Multichain 的消息验证由 SMPC 网络保障,SMPC 网络由 24 个节点组成,超过 2/3 节点签名的消息被认为通过验证,SMPC 节点成员不需要质押,且相对固定,AnyCall 的安全建立在对 SMPC 节点的信任假设基础上。

典型项目有 LayerZero,通过将消息及消息证明传递和验证 Relayer 传递交易两者做分割,确保跨链过程的安全。

•需要注意,尽管 Layerzero 将其技术方案称为超轻节点(Ultra Light Node),但方案与 Light Client 有本质上的不同。LayerZero 通过 Oracle 提供的区块头来验证 Relayer 提供的交易证明,验证过程在目标链的终端发生,属于原生验证,但是对区块头本身的验证却是由作为外部验证人的第三方 Oracle 网络来完成的,验证过程发生在链下。

在 MPC 的基础上增加了一层权益证明,典型项目有 Celer, Axelar, deBridge, Hyperlane, Thorchain。

•PoS 桥要面对的一个问题是验证者的不均衡性,为了缓解该问题,Axelar 采用了二次方投票的方案,签名权重将与验证人质押的 $AXS 数量的平方根成正比;Hyperlane 则采用「可验证欺诈证明」方案,验证人联合作恶将立即被发现并执行 Slash;pNetwork 和 Bool Network 则直接要求所有节点质押相同数额的 Token。

运用了博弈论知识,通过用户间的博弈场景提高用户作恶风险,典型项目有 Nomad, Synapse。

•Nomad 项目设置的挑战窗口期是 30 分钟。对于乐观验证方案,只需要至少有一个挑战者是诚实的,而且有经济激励去进行挑战。这相比外部验证而言,是更小的信任假设,在这样的信任假设下,攻击者无论付出多大的经济代价,都不能保证攻击一定成功。

ZK Bridge 是使用零知识证明技术的跨链桥,不引入信任假设,适配多种同构/异构链,链下生成零知识证明,链上只负责验证,大大降低链上计算和存储成本,具有零信任、无许可、可拓展、高效率的特性。

相比全节点,轻节点是轻量化的节点,它不存储完整区块的序列,而仅存储区块头的序列。

下图中,绿色方块的合集,就是蓝色方块的默克尔路径。

为了维护目标链上部署的源链轻节点,需要由链下代理将源链的区块头不断同步到目标链。轻节点合约对负责同步区块头的链下代理并没有信任假设。因为轻节点合约会对其同步的区块头执行验证,链下代理无法欺骗轻节点。

LK Venture 投研团队认为,对于 PoW 链来说,有效性验证主要是指验证区块的工作量证明,最终性验证则是看该区块头后面有没有更多的有效区块被追加(在 BTC 链中,一般认为 6 个区块的追加可以确认一个区块的最终性,在以太坊中,则一般认为 25 个区块的追加可以确认一个区块的最终性)。

ZK Bridge 的实现,与轻节点加中继的方案流程相同,只是略有变化。ZK Bridge 中,依然需要链下的中继者监听源链,将源链的区块信息转发到目标链。但是转发的不仅是区块头,还有使用 ZK-SNARK 算法生成的有效性证明。而在目标链上,轻节点也不是通过直接根据区块头进行计算去验证交易的有效性,而是根据有效性证明在链上验证,减轻计算负担。

在目前以完成部署投入使用的跨链桥中,有多个项目都曾经遭受过严重的安全攻击,被盗金额非常巨大,在当时造成大规模的恐慌,时至今日大家仍对各大跨链桥的安全性抱有怀疑态度。人们愈发需要一个安全、零信任、去中心化的跨链桥,为未来的全链生态打下坚实基础。

在 LK Venture 投研团队看来,ZK Bridge 为跨链桥的安全和效率难以兼顾的困境带来了新的解决方案,即通过在链下生成对区块头的零知识证明,源链区块头的正确性由 ZK-SNARK 算法生成的证明去验证,因此没有增加任何外部的信任假设,唯一信任的是数学。

Gnosis Chain Omnibridge 是 Ethereum 与 Gnosis 之间的跨链桥,使用的是 MPC 的主流方案。Gnosis 团队成员希望能够探索不依赖中心化实体的跨链设计,Succinct Labs 和 Gnosis 团队就此展开合作,Gnosis DAO 提供 grant 用于 R&D。

Succinct Labs 的跨链方案能够在任意两条 Ethereum 兼容的 PoS 链间传递任意消息。当前实现了 Ethereum 与 Gnosis 之间的跨链 Demo,Ethereum 上部署了 bridge deposit 合约,允许用户储蓄。bridge deposit 会传递消息给 arbitrary message bridge (AMB),AMB 在合约中存储该消息。Operator 负责获取同步委员会的证明,为有效的 BLS 签名验证生成 SNARK 证明,并向 Gnosis 链轻客户端提交更新。

出于技术栈成熟程度和链上验证开销的考虑,团队选择使用当前最成熟的 Circom 语言和链上验证最便宜的 Groth16 证明系统来生成 ZK-SNARKs,而没有使用更新更快的 PLONK + KZG or FRI。

zkBridge 通过 ZK-SNARKs 证明远程区块链的区块头的正确性,因此不会引入任何外部信任假设。事实上,只要连接的区块链和基础轻客户端协议是安全的,并且区块头中继网络中存在至少一个诚实的节点,zkBridge 就是安全的。当然,值得注意的是,虽然至少一个诚实节点就能保证安全性,但是不诚实节点过多会显著降低跨链桥的可用性,light client 会频繁拒绝传来的 proof,而无法获取真实信息。

具体来说,zkBridge 主要由区块头中继网络 Block Header Relay Network 和更新者合约 Updater Contract 组成。在区块头中继网络中,中继从发送者区块链 C1 中检索区块头,生成区块头有效性证明,并将区块头及证明发送到设置在接收者区块链 C2 上的更新器合约中。对于更新器合约,一旦相关证明通过验证,C1 的相应区块头将被存储。

为了使底层 zk-SNARK 系统与链上使用兼容,需要快速证明生成和低链上证明验证成本。zkBridge 的主要创新是:

•递归证明:为了降低链上成本,zkBridge 使用递归证明,通过两次递归,将 ZK-SNARK 证明的体积压缩到 131 字节左右。第一步生成 deVirgo 证明,第二步使用 Groth16 证明生成器进行压缩。Groth16 验证器生成执行 deVirgo 电路的完整性证明。

目前 zkBridge 已经以 Solidity 在以太坊上实现了一个 Cosmos Client 的实例,据测试,可以在 2 分钟内生成一个 Cosmos Zone 区块头的 ZK-SNARK 证明,然后在以太坊端,验证费用是小时 230k gas 的常量,对比来看,如果不用 ZK-SNARK 证明,这个费用将是 64 Million Gas。

具体而言,zkIBC 希望模拟 Cosmos 主权链使用的无信任通信协议——Inter Blockchain Communication Protocol (IBC),并将使用拓展到 Ethereum。zkIBC 使用 ZK-SNARKs 进行轻客户端状态验证,快速证明 Ethereum 上交易,跟上 Tendermint 共识链的出块时间。

项目路线图分为五个阶段:调研-ed25519 签名证明的实现-测试网-递归 Snark 实现减少冗余-主网。2023 年 2 月 2 日,Positron testnet 正式面向公众上线,支持 Near 和 Ethereum 之间的跨链。当前的测试网需要等待约 20-30 分钟才能实现最终性,其中包括 Goerli 网络最终性(15-20 分钟)、ZK-Proof 生成(5-8 分钟)、Near 链上铸造(10-20 秒)。

区块链技术发展到一定阶段,通常会演化成为关于取舍的哲学。在公链中,有着安全-可拓展-去中心化的三难困境;而在跨链中,可能也存在着安全-效率的两难困境:追求效率,则会引入第三方信任假设,导致安全性受损;追求安全,使用完全轻节点与中继的方案,则会招致高昂的链上严重费用。

LK Venture 认为,随着技术不断进步,ZK 方案可用性逐渐增强,ZK Rollup 有望在 2023 年下半年将投入大规模使用,ZK Bridge 也方兴未艾。希望 ZK Bridge 技术的成熟,能够打破跨链当前面临的安全-效率两难困境,让万链互联的愿景得以实现。