原文:
摘要
区块链中的互操作性通常通过可信桥来实现,这是一个独立的集中式或部分去中心化的中介,用于验证和传输跨链消息。在这项工作中,我们通过在zkrollup的标准安全假设下明智地纠缠底层原语来实现互操作性协议,利用我们最先进的递归zkVM。Entangled Rollup协议是不可信的,是解决流动性碎片化以及简化用户和开发人员体验的一步,这是多链世界的主要采用障碍。
1 介绍
1.1 动机:多链互操作性
不同区块链基础设施在安全性、部署和交互成本、应用程序和社区等方面的复杂权衡,导致了layer 1、layer 2和应用链等区块链基础设施的快速扩散。虽然这种多层区块链基础设施的世界不可否认地为区块链行业和用户提供了价值,但它在流动性碎片化以及开发人员和用户的入组成本方面带来了重大挑战。
跨链桥梁,如Wormhole和Axelar,试图通过引入用于验证跨链交易的多重签名委员会来实现资产的跨链转移和一般消息传递,从而解决这一问题。然而,用户的高额费用、网络成本、外部委员会的集中化以及包装资产的引入一直是其采用的主要障碍。
最近,有几个项目正在开发零知识(ZK)桥接解决方案,包括Succinct、zkIBC和zkBridge。这些项目利用zkSNARKs来增强桥接设计。它们成功的核心是用于高效区块链交互和状态同步的轻客户端协议。
一些解决方案提出了稍微不同的设计,将zkRollup概念整合到桥中。这种方法面临着挑战,例如需要比rollup更大的电路尺寸和减少链上存储和计算开销,这是ZK桥有效功能的关键。虽然将零知识证明(zkProofs)集成到桥设计中可以显着增强去中心化和安全性,但它引入了计算挑战,主要是由于需要更大的电路尺寸。
在本文中,我们通过探索zkRollup体系结构的存在性,走了一个不同的方向。我们提出了“纠缠rollup”的概念,它允许多链互操作性,而不依赖于单独的实体。这种架构解决了流动性碎片化等挑战,同时为开发人员和用户部署和交互引入了更少的复杂性。
Entangled Rollups部署在所有区块链基础设施上,它们的状态通过最先进的递归零知识证明进行同步。值得一提的是,Entangled Rollups的愿景并不局限于互操作性和资产转移,因为这种设计支持广泛的多链应用程序和协议,可以利用对底层基础设施和生态系统的访问。
1.2 论文大纲
在第2节中,我们将向一般读者介绍Entangled rollup的必要构建块。在第3节中,我们介绍了我们的新方法,我们将在第4节中对其进行非正式的安全性分析。第5节讨论我们获得的属性,第6节与类似项目进行比较,而第7节包含结论。
2 背景
2.1 智能合约
智能合约是区块链网络上的去中心化应用程序,专为自动和确定性执行逻辑而设计。它们的代码指定了执行逻辑,从而在没有人为干预的情况下产生可预测和一致的结果。
智能合约运行在去中心化的区块链上,而不是中心化的服务器上,提供公正、高效和安全的结果,不受篡改。它们在没有中央授权的情况下运行,消除了单点故障,降低了攻击风险,使其适合于跨多方自动化协议,具有降低风险、节约成本和提高透明度等好处。
由以太坊引入的智能合约已经成为Web3的基础,推动了去中心化金融(DeFi)、不可替代代币(nft)、游戏和更多应用程序的发展,展示了它们在去中心化应用程序发展中的重要作用。
2.2 zkrollup
zkrollup是第2层解决方案,通过批处理链下交易来增强layer 1的可扩展性,并使用零知识证明来证明批处理交易的正确执行,这些证明可以在底层layer 1的智能合约中进一步验证。
生成的zkp的链上可验证性消除了对序列器的绝对盲目信任,并确保批处理事务的正确执行。 zkrollup解决方案的主要组件包括:
•**链上合约:**对操作至关重要,包括用于滚动块的主合约和用于检查零知识证明的验证者合约,以保护链下处理的交易。
•**off- chain虚拟机(VM):**处理事务处理和状态维护 链上为状态转换创建ZK证明,并使用智能合约在链上进行验证。
zkrollup通过利用以太坊实现数据完整性和安全性,提供了一种安全、高效的扩展方法,从而确保链上数据的可用性和状态更改的有效性。因此,zkrollup已成为实现L1-L2互操作性的最安全机制之一。 请注意,这里(以及整篇论文)的zk前缀指的是简洁性,而不是这些技术的隐私性。虽然从技术上讲,这是对术语的滥用,但“零知识”一词的这种用法已经成为该领域的标准做法。
2.2.1 使用zkMIPS实现zkrollup
ZKM的链下虚拟机zkMIPS最重要的应用之一是zkrollup的设计。zkMIPS能够为标准MIPS虚拟机内的任何程序的正确执行产生zkProofs。生成的zkProof可以选择性地转换为任何智能合约友好格式,从而允许在链上验证最终证明。在zkrollup的特定情况下,该特性可用于验证验证块转换的程序的正确执行。
给定一个MIPS程序和适当的输入,zkMIPS将该程序在该输入下的执行编译成Plonky2证明。如果证明必须要在链上验证,那么最后一个过程可以将Plonky2证明转换为Groth16证明。最终的Plonky2证明大小和时间是可调整的,而Groth16证明大小和时间取决于被证明的语句(Plonky2证明验证),这意味着最终的链上证明可以像我们需要的那样小。
为了提高链上证明验证的效率,我们做了以下工作:在链下证明生成过程中,MIPS程序及其输入都以VM开始运行时的初始内存状态的简洁表示形式编写。在实践中,这意味着任何程序都可以在给定其初始状态的适当表示的情况下在链上进行验证,从而允许使用大致相同数量的资源在链上验证任何程序。特别是,简洁的内存表示是一个默克尔根,内存页面作为默克尔节点,在以太坊的情况下,主要的链上验证资源是Gas。
2.3 跨链互操作性
跨链技术实现了不同区块链网络之间的互操作性,允许无缝传输数据和资产。为了实现这一目标,它必须解决不同区块链以独特的规则和协议运行的挑战。
跨链互操作解决方案的关键功能包括:
•数据共享: 能够实现跨链通信,这对于开发集成来自多个区块链的数据的应用程序至关重要。
•资产互换: 允许跨区块链平台转移数字资产,增加资产流动性和灵活性,从而大大改善用户体验。
•**可扩展性和性能:**增强利用了各种区块链的优势 改进的功能和性能,促进更有效的系统吞吐量。
2.4 区块链桥的互操作性三难困境
在试图通过跨链桥实现互操作性的过程中,我们想要调和三个基本属性:信任最小化、可扩展性和通用性。
•信任最小化是指需要跨链桥提供与底层区块链第一层相同的安全保证,而不引入额外的信任假设。这意味着用户不需要对任何中介或第三方给予额外的信任,以确保整个系统的安全性和可靠性。
•可扩展性是指与其他区块链网络连接和交互的能力。这种可扩展性允许资产和数据在不同区块链之间自由流动,从而增强整个区块链生态系统的灵活性和效率。
•通用性是指跨链桥处理更通用应用的能力。这不仅包括常见的交易,还包括智能合约、NFT转账、身份验证等广泛的应用。通过支持更广泛的应用,网桥增强了它们的实用价值。
要实现高效、安全的跨链桥互操作性,需要在这三种属性之间找到适当的平衡。
3 我们的建议: Entangled rollup
3.1 关键洞察:Entangled two rollup
我们的主要贡献是:zkrollup可以被看作是layer 1和layer 2之间的互操作性机制,允许我们实现跨链桥的功能,而无需创建跨链桥。为了理解这是如何实现的,假设我们有两个不同的区块链,分别称为A和B,每个区块链都有两个层,分别称为1A/2A和1B/2B。除此之外,假设存在从2A到1A和从2B到2B的基于zkmips的zkrollup。 由于实现A和B的rollup的协议和实体是相似的,因此有可能Entangled 这些rollup,这意味着我们可以在同一rollup网络中从一条链存入任何其他链。例如,2A可以将资金提取到1B,而不是将资金提取到“父层”1A层。
1A层可以将资金存入2B层,而不是其子层2A。同样,Layer 2A可以通过取款和存款将资金转移到其对应的Layer 2B,而1A层可以通过存款和取款将资金转移到其对应的1B层。
该功能的关键组成部分是存在所有zkrollup共同的通用证明机制,这意味着可以为一个区块链生成证明并在另一个区块链上进行验证。在这种情况下,由于一个layer 2上的每笔交易最终都会被Entangled到相应的layer 1,因此为该链上的任何交易生成的证明都可以相应地Entangled到任何其他链上。
这种Entangled Rollup可用于基于发生在另一个链上的操作来触发一个链上的操作,使用第二个链上某些操作的zk证明来证明在第一个链上触发的操作。我们将触发动作发生的链称为源链(或Src链/L1/L2),将结果动作发生的链称为目的链(或Dest链/L1/L2)。
我们假设参与Dest L2的每一方都信任实现自己的zkRollup机制的实体,因此也信任zk证明,因此不需要验证来自Src L2的跨链交易。注意,实现zkRollup的实体只有在Src L2上存在此事务时才会将此事务带到Dest L2。然而,我们不能假设参与Dest L1的每一方都信任这些L2实体,因此到达Dest L2的跨链交易必须与其Src L2对应物一起在链上进行验证。这两个证明(来自Src和Dest L2)可以在执行跨链交易Dest L2端的zkRollup的同一合约调用中在链上(Dest L1)进行组合和验证。
可以实现的一对可能的操作是基于Src第2层上的某些资产的燃烧(或锁定),在Dest L2上进行某些资产的挖矿(或解锁),允许实现跨链桥接功能,而无需进行任何重大的架构修改。在这个特定的用例中,必须修改Dest L2状态验证算法,以允许铸造受到成功的Src第2层状态验证。为此,在其rollup过程中生成的Src第二层状态验证证明可以在Dest L2状态验证证明生成期间使用,以mint(或解锁)在Dest L2上的资产。
燃烧/铸造或锁定/解锁的选择取决于rollup设计者,但会影响涉及区块链的每一个跨链交易。燃烧/挖矿方法可以通过固定的燃烧地址(例如空地址或任何没有私钥已知的随机生成地址)来实现,将正在转移的资产发送到其他区块链,并在rollup合约上使用特殊功能来制造从其他区块链转移的资产。另一方面,锁定/解锁方法可以通过智能合约来实现,智能合约负责持有转移到其他区块链的资产,并释放从其他区块链转移的资产。
我们将实现跨链交易锁定/解锁功能的智能合约称为Shadow Contract(影子合约),因为它“遵循” Entangled Rollup网络中涉及的其他区块链的行为。总的来说,Entangled Rollup中涉及的所有区块链的影子合约集充当了网络的流动性提供者。出于这个原因,我们认为锁定/解锁方法更具说教性,并选择它作为本文档其余部分的默认设置。 桥Entangled rollup的一个优点是不需要创建新节点,因为所有相关的链外节点都已经存在,并且根据假设参与到相关的zkrollup中。此外,它的功能在设计上是完全通用的,因为交易数据是由操作rollup的相同节点在链下处理和证明的。在本节的其余部分中,我们将提供有关Entangled Rollup的更多细节,首先详细介绍跨链事务。
3.2 一步一步的描述
在zkRollup架构中,链下排序器和证明器节点对事务进行排序,并分别为每个新的L2批生成ZK证明。在Entangled Rollup架构中,这些节点继续存在,但现在也有中继节点将跨链交易和ZK证明传递给交易中涉及的其他区块链。在此设置中,L1-L1交叉链事务按照下面描述的步骤进行处理,如图2所示(由于排序器、证明器和中继器节点一起工作以保持Entangled Rollup工作,因此我们在图中将它们简单地称为ZKM节点)。
Src账户向Src L1上的Rollup智能合约提交存款交易tx1。 我们需要格式化tx1,以指定Dest L2、必须在Dest L2事务上生成的资产和必须在Dest L1事务上携带的数据。
处理存款交易tx1,需要:
(a) ZKM中继从Src L1上的Rollup智能合约读取tx1。
(b) ZKM中继通过Rollup智能合约将tx1传递给Src L2。
Src L2上的Rollup智能合约生成已存入的资产,并通过锁定该值触发跨链交易,即向Src L2上的影子合约提交交易tx3。 我们要求tx3以一种方式格式化,以表示附加到tx1的任何数据。
处理跨链交易,这就要求:
(a) ZKM中继器从Src L2上的影子合约读取tx3。 ZKM证明者为包含tx3的区块生成一个证明zk4。
(b) ZKM测序器通过将zk4传递给Src L1,将tx3 rollup到Rollup 智能合约。 如果zk4通过链上验证,Rollup合约将更新Src L2状态。
(c) ZKM中继器通过影子合约将tx3传递到Dest L2。
Dest L2上的影子合约生成被转移的资产并完成跨链交易通过释放该资产,即向Src L2上的影子合约提交交易tx5。我们要求tx5以一种方式格式化,以表示附加到tx3的任何数据。
处理取款交易tx5,需要:
(a) ZKM继电器从Dest L2上的Rollup 智能合约读取tx5。 ZKM证明者为包含tx5的区块生成一个证明zk6,并将zk4附加到它上面。
(b) ZKM测序器通过向Dest L1发送zk6,将tx5 rollup到Rollup Contract。
Dest L1上的Rollup 智能合约通过释放被撤销的事务来结束被撤销的事务 资产,即如果zk6通过链上验证,则向Dest帐户提交交易tx7。我们要求tx7以某种方式进行格式化,以携带附加到tx5的任何数据。
使这种设计成为可能的是zkMIPS验证架构。通过设计,所有输入数据(包括被证明的程序及其参数)都被编码为初始状态的简洁表示,在此基础上初始化输入程序,如第2.2.1节所述。因此,最终的链上验证者必须检查两件事:正确的交易数据是否被编码到正确的内存位置,以及证明本身。这样,Dest L1上的rollup合约中嵌入的zkMIPS链上验证器就可以验证tx3 (resp)的正确性。Zk4)、tx5 (resp.;Zk6),它们的等价性和其他一些属性通过检索存储在合约中的公开证明参数。每当Src L1、Src L2或Dest L2状态转换函数发生变化时,这些公共参数必须更新。关于这些证明必须展示的属性以及它们如何组成的详细信息,请参见附录A。
4 非正式的安全性分析
如上所述,涉及源链(Src)和目的链(Dest)上的ZK证明、Rollup合同和影子合同的资产转移过程的安全性取决于区块链安全和密码学的几个基本原则。**从本质上讲,它植根于ZK验证证明的原则,通过影子合同对资产进行透明控制,以及严格遵守资产保护法,所有这些共同构成了一个强大的框架,用于跨区块链网络的安全和可验证的资产转移。**在本节中,我们将分解第3节中描述的程序的关键步骤,并评估其安全性。
通过ZK证明Src链Rollup提取的安全性在步骤2b和2c中使用单个证明系统确保在相同的加密假设下,从Src Rollup提取是安全的。这种一致性允许两个L2合约在没有额外要求的情况下独立验证证明。因此,取款的完整性与ZK证明的有效性加密地联系在一起。
通过ZK证明Dest链Rollup存款的安全性同样,通过重用zkMIPS证明系统来保护Dest链Rollup步骤5a和5b中的存款。这种共享证明确保了存款与取款在密码上是一致的,保持了跨链资产的完整性。因此,资产转移是安全且可验证的,存款合法性与证明完整性挂钩,从而防止了转移过程中的双重支出和资产操纵。
通过影子合约的控制原生代币完全由影子合约控制的事实增加了额外的一层安全性。这种去中心化框架内的透明控制确保了在标准加密假设下不可能对令牌进行未经授权的控制。
提现和存款验证提现和存款验证程序是资产转移机制的关键组成部分,确保了资产在不同层和网络中的完整性和保存性。这一机制涉及几个关键步骤和原则:
•验证程序:Dest L1上的Src影子合约在验证将资产从Src L2撤回到Src L1上的影子合约方面起着关键作用。这一步对于在资产跨层移动时保持资产的可追溯性和完整性至关重要。
•资产转移闭环:通过在启动存款之前验证提现,系统创建了一个闭环,确保每个离开Src L2的资产在Dest L2上都有相应的条目。这一验证程序防止了资产的重复,并确保总供应量保持不变,坚持了资产节约的原则。
•资产保护:通过这一缜密的核查程序,维护资产保护原则。通过确保每一笔提取的资产都与存入的同等资产相匹配,该系统防止了资产在转移过程中的创造或破坏。这对于维持不同区块链网络上资产的平衡和价值至关重要。
•安全影响:验证程序确保资产保存并增强资产转移机制的整体安全性。通过在存款前要求取款证明,该系统最大限度地降低了未经授权或欺诈性转账的风险。
5 可取的属性:回到互操作性三难困境
Entangled rollup代表了一种新的layer 2到layer 2互操作性协议,有效地解决了区块链技术中跨链互操作性三难困境中列出的属性。
信任最小化:Entangled rollup具有不可信的特性,这一特性继承自其zkRollup架构。它完全依赖于一个共享的序列器,我们假设它是去中心化的。这一属性对于确保协议在不需要对单个权威机构或中介机构(桥接器)额外信任的情况下运行至关重要,并且对于增强跨链交易的安全性和完整性至关重要。
可扩展性:就可扩展性而言,Entangled Rollup协议从其共享序列器池中受益匪浅。此属性允许在不同的layer 2平台之间进行可扩展和有效的交互。共享的排序器池为管理和验证跨多个链的交易提供了无缝和简化的程序,从而促进了一个更加互联和可互操作的区块链生态系统。
通用性:我们的架构不局限于特定类型的交易或数据。相反,它提供了广泛的应用范围: •Entangled rollup可以桥接任何以太坊原生令牌,包括ERC20和ERC721令牌。
•Entangled rollup允许与各种区块链标准和协议兼容。无论是以太坊还是其他较新的区块链平台,Rollup桥都可以有效地促进这些不同系统之间的数据和资产传输。
•Entangled rollup能够处理和传输各种数据类型,包括执行多链智能合约、交换身份验证信息、传输nft等。
换句话说,ZKM的Entangled rollup只需点击一下就可以在所有生态系统中部署智能合约。这使开发人员能够访问流动性,用户和底层生态系统的独特技术特性,而无需分别经历每个生态系统的学习曲线和部署成本。此外,Entangled rollup可以使不同ZKM节点上相同应用程序的智能合约以快速有效的方式相互同步状态,从而为设计新的DeFi协议提供了可能性。
6 与相关互操作性方法的比较
提出的多链rollup引入了一种zkRollup架构,该架构要求将合约同时部署在多个L1区块链和L2网络上,因此被称为多链zkRollup。简而言之,部署在所有生态系统上的多链rollup,这些rollup的实例应该同步在一起,因为所有实例的ZK验证部分仅在单个主链中完成。
尽管这种设计与ZKM有着相似的愿景,但主要区别在于,每个ZKM实例的zkProof验证是独立完成的,验证主链中的所有zkProofs并在额外的步骤中同步它们。虽然这种设计可能会引入优化,但它引入了一个额外的同步轮,它需要通过轻客户端网络发送两个跨链消息。轻客户端网络本身应该由跨链消息传递解决方案(如LayerZero或Chainlink)提供支持,这些解决方案引入了额外的安全假设和显著的延迟。
提出的Optimistic 跨链订单支持跨链交易,允许用户通过结算预言机和跨链消息协议在各个区块链之间交换资产。该系统的安全性很大程度上取决于所使用的预言机的架构:中心化的预言机引入了单点故障并降低了安全性,而去中心化的、基于委员会的预言机增强了安全性,但可能会减慢交易速度,对用户体验产生负面影响。它还使用链下报价请求系统(RFQ),通过收集来自多个填充物的报价来设置荷兰订单的初始价格。这种方法可能有利于以最低报价执行掉期,这可能会开辟套利机会,引发对报价系统公平性的质疑,可能不公平地偏袒某些参与者。
与我们的解决方案相比,它遇到了更明显的挑战,例如更高的安全风险、更长的操作延迟,以及由性能问题和与套利相关的定价不平衡引起的复杂性。尽管它具有促进跨链交易的开创性方法,但对oracle和RFQ系统的依赖可能会破坏[3]的有效性和安全性,使其可能不如我们的解决方案健壮和高效。
提出的聚合层旨在通过采用递归ZK证明(包括证明聚合、乐观批确认和原子跨链交互),在所有链上建立通用状态。这些批次在几分钟内得到验证,随后以30到60分钟的间隔发布到以太坊区块链上。这种不频繁的发布时间表固有地导致延迟的跨链消息传递,从而导致严重的延迟问题。
Optimistic 被用作缓解这些延迟问题的策略。然而,集成多个系统会引入许多不可预见的复杂性。例如, 10 部分回滚可能导致系统故障;此外,以低gas费为特征的区块链上的恶意交易可能会导致其他区块链上的交易拥塞。因此,考虑到每次证明生成之后区块链重组(reorgs)的可能性,再加上生成这些证明相关的大量费用,这种设计的安全性和实用性值得怀疑。
7 结论
本文提出了一种新型的多链互操作体系结构——Entangled rollup。Entangled Rollup的关键思想是对zkRollup架构的重用,这是设计layer 2到layer 1互操作性的基础。通过将相同的原则应用于不同的L1和L2,可以保证跨层维护事务的完整性和安全性,并确保数据和资产传输既安全又可验证,而无需引入额外的可信实体(桥接器)。 我们要强调的是,第一个1.0版本为Entangled rollup提供了一种可能的体系结构。我们意识到存在其他类似的场景,并打算在本文的未来版本中详细阐述它们。
参考文献。
[1] Plonky2. https://github.com/0xPolygonZero/plonky2.
[2] Polygon aggregation layer. https://docs.polygon.technology/learn/agglayer/.
[3] Uniswapx. https://uniswap.org/whitepaper-uniswapx.pdf.
[4] Wormhole. https://wormhole.com.
[5] zklink - a multi-chain rollup infrastructure based on zero-knowledge technology.https://zk.link/zkLink-whitepaper.pdf.
[6] Bhuptani a. a new paradigm for crosschain communication. https://medium.com/connext/optimistic-bridges-fb800dc7b0e0. 2023.
[7] Thomas Chen, Hui Lu, Teeramet Kunpittaya, and Alan Luo. A review of zk-snarks. arXiv preprint arXiv:2202.06877, 2022.
[8] Rex Fernando and Arnab Roy. Poster: Wip: Account zk-rollups from sumcheck arguments. In Proceedings of the 2023 ACM SIGSAC Conference on Computer and Communications Security, pages 3594–3596, 2023.
[9] Vincent Gramoli, Len Bass, Alan Fekete, and Daniel W Sun. Rollup: Non-disruptive rolling upgrade with fast consensus-based dynamic reconfigurations. IEEE Transactions on Parallel and Distributed Systems, 27(9):2711–2724, 2015. 11
[10] Jens Groth. On the size of pairing-based non-interactive argumentshttps://eprint.iacr.org/2016/260.pdf.
[11] Jens Groth. Short non-interactive zero-knowledge proofs. In Advances in Cryptology-ASIACRYPT 2010: 16th International Conference on the Theory and Application of Cryptology and Information Security, pages 341–358. Springer, 2010.
[12] Logan Kugler. Non-fungible tokens and the future of art. Communications of the ACM, 64(9):19– 20, 2021.
[13] Alexandre Miranda Pinto. An introduction to the use of zk-snarks in blockchains. In Mathemat- ical Research for Blockchain Economy: 1st International Conference MARBLE, pages 233–249. Springer, 2020.
[14] Tiancheng Xie, Jiaheng Zhang, Zerui Cheng, Fan Zhang, Yupeng Zhang, Yongzheng Jia, Dan Boneh, and Dawn Song. zkbridge: Trustless cross-chain bridges made practical. In Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security, pages 3003–3017, 2022.
[15] Dirk A Zetzsche, Douglas W Arner, and Ross P Buckley. Decentralized finance (defi). Journal of Financial Regulation, 6:172–203, 2020.