摘要
随着加密货币的市值超过1万亿美元,多个机构投资者对其感兴趣,以及对政府、企业和个人的全球影响,区块链的发展势头日益强劲。各种区块链共存的生态系统的异质性也在显著增长。跨链桥是这个多链生态系统的必要组成部分。此外,各种区块链共存的生态系统的异质性也日益显著。跨链桥是这个多链生态系统的必要组成部分。然而,现有的解决方案要么存在性能问题,要么依赖于委员会(committees)的信任假设,从而大大降低了安全性。对跨链桥的反复攻击已经造成用户超过15亿美元的损失。在本文中,我们引入了zkBridge,它是一种高效的跨链桥,在没有外部信任假设的情况下保证了强安全性。zkBridge具有succinct 证明,既保证了正确性,又显著降低了链上验证成本。我们提出了新的简洁证明协议,它比zkBridge中现有的工作负载解决方案快了几个数量级。通过模块化设计,zkBridge支持广泛的用例和功能,包括消息传递、令牌传递和其他对不同链的状态变化进行操作的计算逻辑。为了展示zkBridge的实用性,我们实现了一个从Cosmos到Ethereum的原型桥,这是一个特别具有挑战性的方向,涉及到现有系统无法有效处理的大型证明电路。我们实验结果表明,zkBridge实现了实际性能:证明生成耗时不到20秒,链上验证成本低于230K gas。为了进一步完整,我们还实现并计算了从以太坊到其他evm兼容链(如BSC)的方向,这些链涉及更小的电路,带来更少的开销。
1.引言
自从比特币问世以来,区块链已经演变成一个包含各种应用程序和社区的广阔生态系统。像比特币和以太坊这样的加密货币正在获得迅速的发展,其市值已超过1万亿美元,机构投资者[55,70]也开始对其感兴趣。去中心化金融(DeFi)表明,区块链可以实现在其他情况下不可能实现的金融工具(如快速贷款[62])。最近,数字艺术家[32]和内容创造者[30]通过区块链来透明和负责任地传播他们的作品。
生态系统的异质性也日益显著。人们提出并部署了各种各样的区块链,从计算能力证明(如工作量证明[61])到经济激励(如权益证明[38,39,47,52,56]),以及各种其他资源,如存储[1,35,48,63],甚至时间[2]。虽然目前还不清楚一个区块链在各个方面是否优于其他区块链,但这些协议采用了不同的技术,实现了不同的安全保障和性能。因此,可以预见(例如,在[20,21,29]),生态系统将成长为一个多链(multi-chain)的未来,在那里各种协议共存,开发者和用户可以根据他们的偏好、成本和提供的便利设施选择最好的区块链。
多链领域的一个核心挑战是如何实现安全的跨链桥(cross-chain bridges),使不同区块链上的应用程序可以通过桥进行通信。一个拥有高效廉价桥梁的生态系统,可以让一个链上的资产毫不费力地参与到其他链上的市场中。实际上,一个高效的跨链桥系统将对区块链起作用,就像互联网为孤立的通信网络的所作用的那样。区块链𝒞1和𝒞2之间的桥梁的核心功能是向𝒞2上的应用程序证明某个事件发生在𝒞1上,反之亦然。我们使用桥接器的通用概念,即可以执行多个功能的桥接器:消息传递、资产传输等。在我们的模块化设计中,桥本身既不涉及也不局限于任何特定于应用程序的逻辑。
问题:
虽然在实践中已经建立了跨链桥梁[3,4,9,18],但现有的解决方案要么表现不佳,要么依赖于中心节点。桥接器的运行依赖于两个链的共识协议。如果𝒞1运行轻客户端协议SPV[61]的工作量证明共识协议(Proof-of-Work)。𝒞2上的一个智能合约(记为𝒮𝒞2)跟踪𝒞1的最新区块,在此基础上可以用Merkle证明验证交易包含(以及其他事件)。然而,这种方法会导致大量的计算和存储开销,因为𝒮𝒞2需要验证所有的块头,并保留一个较长且不断增长的块头列表。对于非PoW链,验证可能更昂贵。例如,对于一个权益证明链(如Cosmos)和以太坊之间的桥梁,验证以太坊上的单个区块将花费大约6400万gas[15](在撰写本文时约6300美元),验证费用巨大。
目前,作为一种有效的替代方案,许多桥接协议(PolyNetwork、Wormhole、Ronin等)都采用基于committee的方法: 委托一个验证器委员会来签署状态传输。在这些系统中,安全性可归结为,例如,诚实的多数假设。这里面有两个问题。首先,委员会中额外的信任假设意味着桥接资产不像本地资产那样安全,使下游应用程序的安全分析复杂化。其次,依赖一个小委员会可能导致单点故障。事实上,在最近一次对Ronin桥[27]的攻击中,攻击者获得了9个验证密钥中的5个,通过这些密钥他们窃取了6.24亿美元,这是DeFi在20221年4月历史上最大的一次攻击。甚至第二大和第三大的攻击也是针对跨链接桥(从PolyNetwork[6]窃取了6.11亿美元,从Wormhole[10]窃取了3.26亿美元),并且在PolyNetwork攻击中怀疑有关键的漏洞。
我们的方法
我们提出了zkBridge实现一个高效的跨链桥,而无需信任一个中心化的委员会。其主要思想是利用zk-SNARK,它是简洁的非交互知识证明(论证)[19,34,36,37,44,44,45,51,64,69,73,74,77]。zk-SNARK使验证者能够有效地说服𝒮𝒞2,某个状态转移发生在𝒞1上。为此,𝒮𝒞2将跟踪𝒞1的最新提示摘要𝐷。要将𝒮𝒞2与𝒞1中的新块同步,任何人都可以生成并提交一个zk-SNARK,向𝒮𝒞2证明𝒞1的技巧已从𝐷提升至𝐷'。 这种设计有三个好处。
- 首先,zk-SNARK的可靠性保证了桥的安全性。因此,除了底层区块链的安全性外,我们不需要额外的安全性要求。特别是zkBridge不依赖一个委员会来保证安全性。
- 其次,使用一个专门构建的zk-SNARK,𝒞2可以验证𝒞1的状态转换,比𝒮𝒞2中编码𝒞1的共识逻辑要高效得多。以zkBridge从Cosmos到Ethereum为例,我们将证明验证成本从𝒞2上的∼80𝑀gas降低到230𝐾gas以下。此外,桥的存储开销减少到恒定。
- 第三,通过将桥接器与特定于应用程序的逻辑分离,zkBridge可以轻松地在桥接器的顶部启用其他应用程序。
技术挑战
为了使用zk-SNARK来证明计算结果的正确性,首先需要将计算表示为一个算术电路。虽然zk-SNARK验证速度很快(在电路大小上是对数的,甚至是常数),但证明生成时间至少是线性的,在实践中可能非常昂贵。此外,真实世界的区块链使用的组件不容易表示为一个算术电路。例如,广泛使用的EdDSA数字签名方案在CPU上验证非常有效,但将其表示为一个运算电路就非常昂贵,需要超过200万个门[13]。在跨链桥中,每个状态转换可能需要根据链验证数百个签名,这使得生成所需的zk-SNARK证明的成本高得离谱。为了使zkBridge具有实用性,必须减少证明生成时间。
为此,我们提出了两个新颖的观点。首先,我们观察到跨链桥(cross-chain bridges)使用的电路是数据并行的(data-parallel),因为它们包含多个相同较小的子电路的副本。具体来说,用于验证𝑁个数字签名的电路包含签名验证子电路的𝑁个副本。为了充分利用数据并行性,我们提出了一个基于Virgo的分布式零知识证明协议Virgo[76]。deVirgo具有完美的线性扩展,也就是说,如果生成过程分布在𝑀个机器上,那么生成证明的时间可以减少𝑀的一个因素。该协议是独立的,可能在其他场景中有用。其他证明系统也可以类似地并行化[72]。
虽然deVirgo极大地缩短了证明生成时间,但在链上验证deVirgo证明,特别是在zkBridge中的10亿门电路中,对于计算资源极其有限的智能合约来说,代价可能非常昂贵。为了压缩验证大小和验证成本,我们使用经典的zk-SNARK递归地证明(可能很大的)deVirgo验证的正确性,原因是Groth[54](以下简称Groth16)。Groth16证明器输出恒定大小的证明,可以通过EVM区块链上的智能合约快速验证。我们强调不能使用Groth16来生成整个zkBridge验证,因为对于Groth16验证器来说,zkBridge所需的电路太大了。相反,我们使用Groth16来压缩deVirgo证明的方法提供了两方面的好处: 对于大量的证明,一个快速的deVirgo并行证明,得到的证明被压缩成一个简洁的Groth16证明,可以快速验证。我们将在第5节详细介绍这种技术。这种压缩长证明的方法也被商业zk-SNARK系统采用,如[23,24,26]。
实现与评估
为了证明zkBridge的实用性,我们实现了zkBridge从Cosmos到Ethereum端到端的原型,因为它涉及到大量的正确性证明电路,是最具挑战性的方向之一。我们的实现包括deVirgo协议和Groth16的递归证明,以及交易中继应用程序。实验结果表明,该系统具有良好的实用性能。deVirgo可以在20秒内生成块头中继验证,比原始的Virgo系统单台机器快100倍以上。此外,由于递归证明,链上验证成本从80M gas费用(直接签名验证)降低到230K gas费用以下。此外,作为一个原型例子,我们还实现了从以太坊到其他evm兼容链(如BSC)的zkBridge,它涉及更小的证明生成电路,带来更少的开销。
1.1 我们的贡献
在本文中,我们做出了以下贡献:
在本文中,我们提出了一种无信任、高效、安全的跨链桥zkBridge,它的安全性依赖于简洁的证明(密码假设)而不是委员会(外部信任假设)。与现有的跨链桥项目相比,zkBridge是第一个同时实现以下特性的解决方案。
1.无需信任(Trustless)和安全:远程区块链上的区块头的正确性由zk-SNARKs证明,因此没有引入外部信任假设。事实上,只要连接的区块链和底层的轻客户端协议是安全的,并且在区块中继网络中至少存在一个诚实的节点,zkBridge就是安全的。
2.无需许可(Permissionless)和去中心化: 任何节点都可以自由地加入网络,从而替换区块头生成证明并要求奖励。由于消除了区块头有效性的中央或者Proof-of-Stake风格的委员会,zkBridge也具有更好的去中心化。
3.可扩展性:使用zkBridge的智能合约具有最大的灵活性,因为zkBridge可以调用更新合约来检索验证过的区块头,随后执行特定于应用程序的验证和功能(例如,通过辅助的Merkle证明来验证包含的交易)。通过将Bridge与特定应用程序的逻辑分离,zkBridge使得在Bridge在上开发应用程序变得很容易。
4.通用性:只要区块链支持定义2.1中的轻客户端协议,则zkBridge中的区块头中继网络和底层证明方案是通用的。
5.高效性:通过我们高度优化的递归证明方案,区块头可以在短时间内(证明生成通常需要几十秒)完成中继。在证明验证完成后,可以快速完成中继信息,支持快速灵活的信息桥接。总之,zkBridge是为区块链互操作性构建一个安全、不可信的基础的巨大飞跃。
6.我们提出了一种新颖的两层递归证明系统,作为底层的zk-SNARK协议,以实现合理的证明生成时间和链上验证成本。通过deVirgo和Groth16的协调,我们在效率和成本之间达到了理想的平衡。
- 第一层,我们引入了一个分布式版本的Virgo证明系统:deVirgo。deVirgo结合了分布式求和验证sumcheck协议和分布式多项式承诺,通过在分布式机器上运行,大大加速证明生成阶段,最终达到优化并行处理的目的。对于zkBridge中的工作负载(workload),deVirgo比Virgo快100多倍。
- 第二层,针对可接受的链上验证成本,我们使用Groth16递归证明deVirgo之前生成的证明, 从而证明了对应的远程区块头的有效性。通过第2层,gas费用从预计的80𝑀下降到230𝐾以下,实现了链上验证。
7.我们实现了zkBridge的端到端原型,并在两个场景下评估了它的性能:从Cosmos到以太坊(这是主要的焦点,因为它涉及到现有系统无法有效处理的大型证明电路),以及从以太坊到其他evm兼容链(相比之下涉及的电路要小得多)。实验结果表明,zkBridge实现了实际性能,是第一个实现了密码正确性保证的实际跨链桥。
2 背景
在本节中,我们将介绍区块链的基础知识、基本背景以及零知识证明。
2.1 概念
设F为有限域,𝜆为安全参数。我们使用𝑓(),ℎ()多项式,𝑥,𝑦的单变量,粗体字母x,y的变量向量。x[𝑖]和𝑥𝑖均表示x中的𝑖-th元素。对于x,用x[𝑖:𝑘]表示向量x的切片,即
。我们用i来表示某个整数𝑖的二进制表示的向量。
Merkle Tree. 由于Merkle树[59]是简单、高效的数据结构,因此常常用于构建向量承诺。证明时间与向量的大小成线性关系,而验证者的时间与证明的大小与向量的大小成对数关系。
给定一个向量
,包含以下三个算法:
- 承诺:

- 打开:

- 验证ÿ

最低0.47元/天 解锁文章
2373

被折叠的 条评论
为什么被折叠?



