ZKP:实现安全高效的多链互通跨链桥技术
ViaBTC Capital
2023-03-28 18:19
订阅此专栏
收藏此文章
本文介绍了几个使用零知识证明技术实现跨链桥的项目。


撰文:ViaBTC Capital


背景:跨链技术的发展


自 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
https://medium.com/coinmonks/what-i-talk-about-when-i-talk-about-bridges-429c16015774
Proof of Consensus Bridging between Ethereum and Gnosis Chain
https://blog.succinct.xyz/post/2022/10/29/gnosis-bridge/
Bringing IBC to Ethereum using ZK-Snarks
https://ethresear.ch/t/bringing-ibc-to-ethereum-using-zk-snarks/13634
zkBridge: Trustless Cross-chain Bridges Made Practical
https://rdi.berkeley.edu/zkp/zkBridge/zkBridge.html
=nil; zkLLVM Circuit Compiler
https://blog.nil.foundation/2023/02/02/circuit-compiler.html

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

相关Wiki
ViaBTC Capital
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开