ZKP:实现安全高效的多链互通跨链桥技术

背景:跨链技术的发展

自2009年比特币诞生以来,区块链技术得到了长足的发展。尽管比特币和以太坊稳稳占据市场统治地位,但许多不同的区块链网络依然以其独特的功能和应用出现。由于不同区块链的架构不同,它们无法相互沟通和互动。随着各链的生态发展,尤其是DeFi的流行,如何弥合不同区块链之间的鸿沟也成为大家争相解决的课题。

 

由此,跨链桥应运而生!它可以使不同区块链之间的不同资产跨链转移甚至实现信息互操作。类似现实中的桥跨接河的两边,跨链桥能够将资产从一个区块链无缝转移到另一个区块链,从而使用户能够利用不同区块链网络的独特功能。除此之外,跨链桥还允许应用在不同的区块链之间传输数据和信息。虽然跨链桥提供了许多好处,但它也面临一些挑战,特别是安全问题。例如,2021年,跨链桥Poly Network被黑,损失超过6亿美元价值的加密货币。2022年,Axie Infinity的跨链桥Ronin Network也同样被盗超过6亿美元的加密货币。因此,跨链桥需要更加完善的安全措施来保护用户的资产和数据。

近年来,零知识证明(ZKP)在应用方面取得了巨大进展。ZKP是一种强大的密码学工具,可用于保护用户的数据隐私,也可作为Rollup扩容的有效性证明。同样地,ZKP也在跨链桥的设计中扮演着特殊而重要的角色。通过ZKP的简洁有效性证明,目标链可以高效验证源链的状态转换,尽可能地避免除目标链和源链之外的第三方风险,从而提高跨链的安全性。本文将介绍几种常见的跨链桥、零知识证明(ZKP)技术如何应用于跨链桥以及几个基于ZKP的跨链桥项目。

 

跨链桥分类:去中心化跨链通信、智能合约跨链通信、多链互通

加密研究员0xjim曾按照跨链桥设计机制把跨链桥分为Team Human、Team Economics、Team Security 和 Team Game Theory。其中,Team Human中心化程度较高,代表是 Ronin Network,它们由 9个公开可知的实体运行全节点,通过多重签名验证交易并证明交易的有效性。签名通过阈值后,交易被视为已验证。正常情况下他们不会主动作恶,但是在这种中心化的方式里,这些人可能会被攻击,成为最大的漏洞,一旦私钥管理不当则容易酿成大祸。

 

第二类是Team Economics,如 Celer、Axelar、Thorchain。这些类似于多重签名,但加上了代币经济学,节点(验证者)需要质押代币作为保证金以防止作恶。如果作恶,验证者的质押将被大幅削减,因此从经济动机出发,验证者应诚实地验证交易的有效性。

 

第三类是Team Security,它们会结合可信执行环境TEE或者多方计算MPC来提高跨链桥的安全性,例如所有节点通过在如Intel SGX的TEE执行链下轻客户端验证,以确保私钥管理的隐私性和完整性。

 

第四类是Team Game Theory,如LayerZero、Nomad、Synapse,这些协议将桥分解为两个独立的工作,并抑制了两个工作执行者之间的作恶。对于LayerZero,预言机传递区块头,中继者传递交易证明,两者结合在一起执行链上轻客户端的职责。

 

这四类都是采用链下验证、多点认证的方式。前三种本质上是通过自身PoS公链/网络作为见证人进行任意两条公链的信息传递,速度较快,费用较便宜,而且扩展性高,可以更容易连接到更多链。但代价是需要用户、流动性提供者完全信任外部验证器的资金或数据,即依赖于桥的安全性,而不是源链或目标链。

ZKP:实现安全高效跨链桥的零知识证明技术

近年来,跨链桥事故频发,带来了巨大的损失。这反映了当前跨链桥引入额外的信任假设带来了更多的漏洞。最安全的跨链桥设计应该是最小化信任,即跨链桥仅继承它连接的两个链的安全属性,而无需信任其他第三方。链上验证可以实现跨链桥的最小化信任,即由目标链来验证源链的共识,并确认指定的交易已包含在源链的区块链中。例如,目标链的验证者运行源链的轻客户端,检查提交的源链Merkle根,并确认指定的交易确实已获得源链的验证者们的有效签名。然而,链上验证成本昂贵且难以扩展,目标链的验证者很难为不同的源链都运行轻客户端,有的目标链也不一定支持源链的共识签名方案。例如,Ethereum PoS共识中的验证者使用BLS签名,但EVM没有对这些签名中使用的BLS12-381曲线进行预编译,这使得Solidity实现这样一个轻客户端的成本过高。

 

最新的零知识证明系统的改进,使得可验证计算更加简洁,ZKP在跨链桥的设计中也发挥着特殊而重要的作用,就像zk-SNARKs为zkEVM项目提供扩展执行的动力一样。可验证计算也可以用来生成链状态的有效性证明,这个有效性证明可以为高效低成本的轻客户端验证共识,有利于最小化信任的互操作性。实际上,跨链桥并没有使用ZKP的零知识属性,而是利用其简洁性属性进行扩展,类似Rollup扩容的有效性证明。

 

领先的ZKP协议区块链公司提供跨链技术解决方案和开源技术

Succinct Labs

Succinct Labs和Gnosis合作推出了一种基于SNARK的桥,使以太坊和Gnosis Chain 等任意两条以太坊PoS链之间实现了最小化信任的互操作性。轻客户端以Solidity智能合约的形式部署在链上,通过零知识简洁证明生成源链状态的有效性证明,可以用来支持高效的轻客户端,允许Ethereum和Gnosis Chain之间的任意跨链通信,从而促进了最小化信任的互操作性。链上轻客户端在Gnosis上跟踪Ethereum区块头,反之亦然,无需额外的信任假设。同步委员会负责确认以太坊的状态,由随机选择的512个验证者组成,每27小时轮换一次。当2/3以上的验证者对区块头进行签名,则以太坊的状态被认为有效,所以该方案本质是个PoS桥。

 

Succinct Labs使用Circom编程语言和Groth16证明系统来实现轻客户端生成 zk-SNARK 证明,减少链上验证成本。轻客户端通过验证单个Groth16 zkSNARK来代替验证BLS聚合签名。另外,除了跟踪区块头,轻客户端还需要跟踪同步委员会的验证者。同步委员会每次轮换时,当前一组验证者签署一个区块头,其中包含下一个同步委员会公钥的SSZ哈希值。由于SSZ哈希使用SHA-256,对SNARK不友好,所需计算的约束数量很大。于是,Succinct Labs创建了一个电路,把下一组验证者的SSZ 哈希值映射到对SNARK友好的Poseidon承诺。然后,这个SNARK友好的承诺存储在链上,并作为BLS签名验证SNARK的输入,以确保正在验证的签名确实是来自同步委员会的验证者。

 

目前该技术仍在开发中,测试网的代币桥已推出用以演示,但还没有被用来保护真实资产,而且局限在Gnosis和以太坊两条链。另外,需要留意的是,安全性并没有达到以太坊共识的安全性。

Electron Labs

Electron Labs是一个通过ZK轻客户端保护跨区块链通信的跨链协议,它的目标是利用 IBC协议和zk-SNARK技术,将以太坊和Cosmos生态系统(以及其他EVM链)连接起来,类似的项目还有Polymer和Gerege。

 

通常,Cosmos IBC在源链和目标链以智能合约形式部署轻客户端,以验证跨链交易。同理,如果开发者要将IBC连接到以太坊,需要在以太坊上面以Solidity智能合约运行 Tendermint轻客户端。但是,由于需要在Solidity验证数百个Ed25519签名,而 Ed25519预编译在以太坊上是不可用的,这将导致Gas成本十分高昂。因此,Electron Labs通过一个替代方案,没有直接在以太坊上验证Ed25519的签名,而是在链下构建了一个签名有效性的ZK证明,并在链上验证证明。

 

而以太坊方面的链上轻客户端模块将包括一个ZK Proof验证器而不是Ed25519签名验证器。中继器(Relayer)不用提交完整的轻型客户端,只提交有效性证明。为此,Electron Labs建立了一个基于Circom的库,可以为一批Ed25519签名生成一个zk-SNARK证明,在以太坊上可以低成本地验证这些签名。

 

Positron是Electron推出的第一个桥,该桥在Goerli(以太坊测试网)和Near测试网之间上线,用以展示零知识证明和链上轻客户端的实现。在公开测试阶段,RPC节点的速度限制曾一度导致Positron滞后处理每笔交易,数以百计的交易变成了几个小时的积压,后经处理已恢复正常。

zkBridge

zkBridge是一个无需信任、可扩展、通用和高效的跨链桥。任何节点都可以自由加入网络,转发区块头,生成证明,并要求获得奖励。具体来说,zkBridge包括一个区块头中继网络和一个更新者合约。在区块头中继网络中,中继者从源链中检索区块头,生成区块头的有效性证明,并将区块头与证明一起发送给更新者合约。该合约部署在目标链上,对于更新者合约,一旦相关证明通过验证,源链的相应区块头就会被存储起来。此外,更新者合约还保持着一个轻客户状态。一旦有新的区块头被添加,该合约就会像源链上的其他轻客户一样更新轻客户状态。更新器合同还向应用程序暴露了一个函数,通过这个函数,目标链上的应用程序可以获得源链上给定高度的块头,在获得区块头信息后,应用程序可以做更多的验证和功能。

 

为了快速地生成证明以及实现廉价的链上证明验证成本,zkBridge使用2层递归证明系统(2-layer recursive proof system)来满足以上两个条件。在第一层中,Virgo证明系统的分布式版本deVirgo结合了分布式sumcheck和分布式多项式承诺,实现最优并行,能够在分布式机器上运行时将证明生成加速几倍。在第二层中,zkBridge使用Groth16 来证明由deVirgo以前生成的证明确实证明了相应的区块头。

=nil; Foundation

ZK技术开发公司=nil; Foundation是一家于2018年4月成立的基金会,旨在支持和促进数据库管理系统和应用密码学的研究和开发,为区块链和协议提供按需求生成零知识证明的完整技术解决方案。他们的投资者除了有头部机构Polychain,还包括ZK赛道明星协议StarkWare和Mina Protocol。

 

=nil; Foundation最近推出了一个名为zkLLVM的主流语言电路编译器,不涉及zkVM,可以通过简单编译已有的C++或Rust的EVM实现代码,帮助开发者快速而低成本地建立zkRollup、zkBridge和zkOracle等应用。同时,由于生成SNARK / STARKS证明需要大量计算能力,=nil; Foundation创建了一个ZK Proof Market,帮助团队更轻松地进行工作,并将某些类型的计算外包给第三方,允许证明请求者(Proof Requester)发布对任何预定义电路的证明请求,并提供开放报价的竞争市场。最后,Proof Market 的证明生成者(Proof Generator)执行订单并返回新生成的证明。

 

之前,他们已经在Mina-Ethereum和Solana-Ethereum之间创建了zkBridge。通过 zkLLVM,开发者可以直接用将C++、Rust等主流编程语言的代码编译成电路,生成必要的状态或共识证明来设置zkBridge。例如Mina Protocol和Ethereum使用zkLLVM 生成Mina的辅助状态证明电路和in-EVM验证器,实现了在EVM上低成本验证Mina的状态。

总结:跨链桥的未来发展和区块链技术的革新

本文介绍了几个使用零知识证明技术实现跨链桥的项目。这些项目都是在探索如何利用零知识证明技术来生成有效性证明,以支持高效低成本的轻客户端验证共识,从而促进了最小化信任的互操作性。虽然这些项目目前还在开发中,并且通常局限在某些特定的链之间,但是,这些项目是对区块链互操作性问题的一种创新解决方案。我们相信,随着ZKP技术的持续发展,将会有更多安全的跨链解决方案出现。

 

 

资料

What I Talk About When I Talk About Bridges

 

Proof of Consensus Bridging between Ethereum and Gnosis Chain

Bringing IBC to Ethereum using ZK-Snarks

zkBridge: Trustless Cross-chain Bridges Made Practical

=nil; zkLLVM Circuit Compiler

Subscribe to ViaBTC Capital
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.