主页 > 新闻快讯 >

跨链桥:用零学问证明桥接多链宇宙

2022-10-20 18:12

 

桥是一种通讯协议,用于促进区块链之间的信息传输(音讯、资金或其他数据)。建造桥固然有用,但却是一件有风险的事情。区块链历史上最代价沉重的一些黑客攻击都仅针对桥。

据估量,截至2022年,过去一年损失的资金中,69%是由于桥攻击形成的,损失达数十亿美圆。

在本文中,我们关注运用零学问证明(ZKP)的桥构造的详细完成。固然有些黑客攻击不能仅仅因运用ZKP而做到预防,但ZKP的牢靠性将区块链共识协议的平安性扩展到了桥。

桥与零学问证明

近年来,我们看到零学问证明(ZKP)在应用方面获得了宏大的停顿,其稳定性为提供平安和去中心化的应用程序发明了条件。因而,ZKP也被用于制定桥建立是有意义的。下面,我们回忆和比拟这一范畴的三个有趣的开展:

  • 运用 zk-SNARK( Succinct Labs)对共识停止简约考证:运用单个zk-SNARK完成以太坊PoS(权益证明)轻客户端。

  • 经过zk-SNARKS (Electron Labs)将IBC (区块链间通讯)引入以太坊:Cosmos SDK(Tendermint)上的工作原型到带有单个 zk-SNARK 的以太坊轻客户端。

  • zkbridge:无需信任的跨链桥变得适用( ( Berkley RDI ):运用2步递归zk-SNARK完成Cosmos SDK到以太坊轻客户端,以太坊轻客户端到兼容EVM的区块链(本文未触及)。

     

这些项目应用zk-SNARK的特性来重新定义桥应该如何设计。以上一切假定都存在一个轻客户端协议,该协议确保节点能够同步最终区块链状态的区块头。将ZKP rollup背后的思想应用于桥的两个主要应战是:首先,与rollup相比,桥中触及的电路大小要大几个数量级;其次,如何减少链上的存储和计算开支。

共识证明的简明考证(Succinct Labs)

Succinct Labs为以太坊2.0权益共识证明构建了一个轻客户端,在Gnosis和以太坊之间构建了信任最小化的桥,它运用zk-SNARK(非零学问)的简约属性来高效地考证链上共识有效性证明。

该设置由以太坊中每 27 小时随机选择的 512 名考证者组成的同步委员会组成。这些考证者被请求在其运转周期内对每个区块头停止签名,假如超越2/3的考证者对每个区块头停止签名,则以太坊的状态被以为是有效状态。考证过程主要包括:

  • Merkle证明的区块头

  • Merkle证明的同步委员会中的考证者

  • 用于正确轮换同步委员会的 BLS 签名

     

上述考证需求每27小时在链上存储512个BLS公钥,并且要对每个区块头考证签名都停止考证,这将招致512个椭圆曲线添加(在曲线BLS12-381中)和链上的配对检查,该操作的本钱是昂扬的。这里的中心思想是运用zk-SNARK (Groth16)来生成有效性证明(大小恒定),并且能够在Gnosis上停止有效的链上考证。

跨链桥:用零学问证明桥接多链宇宙

运用 zk-SNARKS的简约性来摆脱昂贵的链下考证

以太坊轻客户端在Gnosis链上运用Solidity智能合约,而链下计算包括构建 circom 电路以考证考证者及其 BLS 签名,然后计算 zk-SNARK 证明。在此之后,区块头和证明被提交给智能合约,然后智能合约在Gnosis链上执行考证。SNARK计算局部的电路大小和考证时间总结如下:

跨链桥:用零学问证明桥接多链宇宙

SNARK 局部的电路大小

优化包括运用考证者的512个公钥(PK)输入作为运用ZK友好的Poseidon hash的承诺。Poseidon hash处理了存储开支问题并减小了电路大小。减小电路尺寸的过程如下;受信任的委员会在27小时后更新,之前的委员会运用SSZ (Simple Serialization),运用SHA256序列对新的委员会停止数字签名。而不是直接在创立大型电路的SNARK中运用它(每个位操作需求一个门,在SHA中有大量的位操作),对当前公钥运用Poseidon hash的承诺。

总结:它所运用的这种桥接办法十分特定于应用程序(依赖于共识协议),它的平安性来自于zk-SNARK的稳定性。此外,经过优化,它不只完成了较低的存储开支,降低了电路复杂度,完成了简约考证,同时也具有通用性。

将IBC引入以太坊(Electron Labs)

Electron Labs旨在从Cosmos SDK生态系统(应用特定区块链的框架)中构建一座桥,运用IBC(区块链间通讯)来完成框架中所定义的一切主权区块链间的通讯。

此设置与前面讨论的状况相似,但方向相反,其中轻客户端(来自Cosmos SDK)需求在以太坊上的智能合约中停止考证。从实践意义上讲,在以太坊上运转来自其他区块链的轻客户端似乎具有应战性。在Cosmos SDK中,Tendermint轻客户端运转在扭曲的Edwards曲线(Ed25519)上,以太坊链自身不支持该曲线。因而,以太坊(BN254)上Ed25519签名的链上考证变得低效且本钱昂扬。

跨链桥:用零学问证明桥接多链宇宙

在 Cosmos 到以太坊的桥中运用 zk-SNARK

与我们前面的讨论相似,Cosmos SDK上的每个区块头(每个区块头由曲线Ed25519上的约128个EdDSA签名组成)由一组考证者签名组成(考证一个区块需求32个高风险签名)。考证签名会生成大型电路,这是一个重要的计算组件。因而,根本问题是如何在以太坊链上高效、廉价地考证来自Cosmos SDK中任何区块链的Ed25519签名。处理计划是构建一个zk-SNARK,它在链下生成签名有效性的证明,并且只在以太坊链上考证证明自身。

circom库支持BN128、BLS12-381和Ed448-Goldilocks曲线,因而,为了在素数p=2^(255)-19的Ed25519曲线上执行模运算,能够将字段元素的表示合成为更小的85位整数(85*3=255),以完成高效的模运算。circom生成的电路是Ed25519签名考证电路的R1CS表示,它由椭圆曲线点加法/加倍和上面定义的模运算组成。用于签名考证的电路运用circom库结构,每次签名考证会产生约 2M 的约束。

跨链桥:用零学问证明桥接多链宇宙

在见证计算之后,Rapidsnark库为Ed25519签名考证生成Groth16证明。与BLS签名不同,Ed25519曲线签名不可聚合,因而不能为聚合签名生成单个zk-SNARK证明。相反,签名是批量考证的,并且能够察看到,考证时间与批次中的签名数量成线性关系。

跨链桥:用零学问证明桥接多链宇宙

因而,减少一批次中的签名数量,的确能够降低证明时间(减少延迟),但随之也会增加本钱(gas费),由于每批生成的证明数量会增加。

总结:这种桥接办法也特定于它们的应用程序,并具备源于zk-SNARK证明的牢靠性的平安性。特别是,在不引入任何新的信任假定的状况下,它考证了以太坊上Tendermint轻客户端的Ed25519签名。域外模块化算法是一种有价值的链上考证计算优化办法。与Succinct Labs办法相似的一个详细技术问题是延迟。Cosmos SDK中的区块生成速率约为7秒,为了跟上这个速率,证明时间就不得不降低。Electronlabs提出用多台机器并行计算,以与区块生成速率相同的速度生成证明,并停止递归生成单个zk-Snark证明。

zkbridge(Berkley RDI)

与其他两个行业主导的ZKP桥构造不同,zkbridge是一个框架,能够在其之上构建多个应用程序。这个想法相似于前面讨论的两种办法,并且需求两个链上的轻客户端和智能合约来跟踪摘要,对应于两端的最新状态。桥的中心组件是区块头中继网络、更新合约和应用程序特定合约(发送方:SC1,接纳方:SC2)。

跨链桥:用零学问证明桥接多链宇宙

桥组件是灰色阴影区域。

区块头中继网络由中继节点网络组成,这些中继节点侦听桥接链上的状态变化,并从区块中的完好节点检索区块头。桥上中继节点的主要功用是生成一个ZKP,该ZKP考证来自一个链的区块头的正确性,并将其转发给另一个链上的更新合约。更新合约会停止考证并承受或回绝来自中继网络中的节点的证明。行业主导的办法和zkbridge之间的主要区别是,信任假定根本上简化为中继网络中存在一个老实节点,并且 zk-SNARK 是牢靠的。

这种构造的一个关键创新是并行运用了zk-SNARK: Virgo prover(deVirgo),它具有简约的考证/证明大小,不需求可信的设置。其用于考证N个签名的电路实质上由相同的子电路的N个副本组成,称为数据并行电路,每个子电路与其他子电路互相排挤。例如,前面一节中讨论的Ed25519签名考证就是这种状况。

Virgo prover的中心组件是基于GKR协议的零学问扩展,该协议为分层电路中的每个子电路和多项式承诺计划运转总和校验参数。deVirgo泛化实质上是在一组中继节点上运转一个Virgo prover,并经过将证明和多项式承诺聚合到一个主节点来防止证明大小的线性增长。

跨链桥:用零学问证明桥接多链宇宙

在 deVirgo 中证明 ed25519 签名的电路尺寸

关于运用大约 10M 门考证 100 个签名的电路,证明大小为210KB(与Virgo prover大小相同)。Zkbridge运用两步递归。在第一步中,生成一个deVirgo证明,然后运用Groth16 prover对其停止紧缩。Groth16 verifier生成deVirgo电路执行的完好证明。递归的主要目的是完成简约(证明尺寸)和降低考证gas本钱。

然后,中继网络将Groth16证明提交给能够在链上考证它的更新合约。deVirgo证明系统具有后量子抗性,由于它只依赖于抗碰撞哈希函数,主要的计算瓶颈是大型电路中的数论变换(NTT)。有一件事似乎没有被提及,即中继网络的计算将遭受与MPC相同的通讯复杂性,这也将影响证明时间。关于中继网络中的N台机器,GKR多层和校验协议的通讯复杂度为O(N log_2(gates per layer))。即便关于32个签名的状况,在中继网络中有32台机器,这也将招致网络中的通讯轮数比拟多,这可能会完整扼杀散布式计算带来的性能。

运用上述办法处理了前面讨论的来自 Cosmos SDK-Ethereum 轻客户端的 Ed25519 签名考证问题。桥由一个中继网络组成,它获取Cosmos区块头并生成一个deVirgo证明用于散布式证明生成。接下来,由Electron-labs设计的优化签名考证电路的Gnark适配在递归的第二步生成Groth16证明。

跨链桥:用零学问证明桥接多链宇宙

Ed25519 签名的证明时间:RV:递归考证者

更新合约在以太坊的Solidity中完成,并跟踪Cosmos区块头和中继网络的Groth16证明。考证本钱是恒定的<230K gas,这是由于Groth16证明的恒定大小。此外,有可能批量考证B个连续区块头,并为B个头生成单个证明。但是,增加批次的大小也增加了考证时间,但由于链上的考证担负较小,因而会降低 gas 本钱。和以前一样,硬件加速也可能进一步改良Gnark prover。

总结:zkbridge是在桥上构建应用程序的框架。桥的设计运用中继网络来生成ZKP,并且具有最低的信任假定。只需可以克制中继网络中相似MPC的通讯复杂性,就能够运用任何可并行化的ZK prover。更详细地说,先不思索deVirgo中继网络的MPC复杂性,NTT是中继节点的单个Virgo prover组件的瓶颈。

快速比拟:

下面我们对本文讨论的三种桥梁构造的各种特征停止快速比拟。

跨链桥:用零学问证明桥接多链宇宙

综上所述,运用ZKP设计桥,处理了去中心化和平安性问题,但由于电路范围大而产生了计算瓶颈。

计算开支的问题能够经过硬件加速来改善,特别是运用SNARK,以及提交公共数据的技巧,它们能够有效的减少存储开支。由于大局部的桥接工作都是证明数据并行电路,因而将 ZKP 推行到像 deVirgo 这样的并行性是有价值的研讨方向。

此外,由于多链宇宙中的区块链是依据应用程序在各种各样的范畴(字段,曲线)上定义的,字段内外算法的优化在最低级别上是至关重要的构建模块。经过MPC生成证明的并行性在通讯复杂度方面有其本身的瓶颈,这是目前尚未处理的问题。

为什么多链宇宙是碎片化的?

区块链生态系统的当前状态相似于泡沫宇宙(碎片化多链宇宙)的异构散布,每个都有本人的共识机制、设计、应用程序和用例规则。截至撰写本文时,有超越100个第1层(L1)区块链协议,用户数量不时增长,随着区块链用例的增加,这个数字可能还会增长。

区块链三难窘境指出,很难同时完成理想区块链的三个基石:

  • 去中心化

  • 可扩展性

  • 平安

     

跨链桥:用零学问证明桥接多链宇宙

依据用例的不同,除了吞吐量和本钱之外,三个基石的重要性次第也可能不同。三难窘境中的不同权衡能够想象成在坚持面积不变的状况下三角形的变形。当两个角相互靠近时,第三个角会挪动得更远。这些权衡招致了区块链的不同概念,从而使开发人员可以自在地为适宜的应用程序选择不同的平台。这同时也招致了碎片化的多链宇宙,每个区块链根本上都是独立运转的,完整“不晓得”其他区块链的存在。

多链宇宙中的链间通讯,通常被称为互操作层,是充任不同区块链之间桥梁的根底设备。桥运用户可以在链之间传送音讯,包括数字资产(加密货币)、链状态、合约恳求、证明等。简而言之,跨链桥“整理”了碎片化的多链世界。因而,很多研讨和开发都集中在构建多链宇宙中的这个关键组件上。

建立桥

桥是一种双向通讯协议,它向另一个链C2中的应用程序证明一个链C1中的事情的发作,反之亦然。为了简单起见,我们运用术语,源链(C1)和目的链(C2),它们是能够互换的。C1上的状态更改必需在C2上“链上”停止考证。这通常是由轻客户端完成的:C2上的合约跟踪C1上的一组区块头,并运用与从源链提交的根对应的Merkle证明对它们停止考证。普通来说,C1和C2能够在不同的域中工作。除了不时增加的区块头列表之外,客户端还需求存储和考证新呈现的区块头。这将招致显著的计算和存储开支,而且通常效率低下。为了绕过这个问题,许多桥的建造都采取了更中心化的办法。

跨链桥:用零学问证明桥接多链宇宙

致命弱点:轻客户端协议,有一小组可信任的考证者来签署状态更改。

这通常发作在资金转移的状况下,其中将大量信任假定放在中心化的桥实体上,该实体通常由少量受信任方组成。这违犯了区块链的根本准绳,也带来了与检查和平安相关的问题。

跨链桥:用零学问证明桥接多链宇宙

区块链历史上一些最大的黑客攻击发作在桥上

大多数现有的桥(为了活动性)经过锁定-铸造-销毁-释放机制运转。用户经过将资金发送到链C1上的桥协议与桥停止交互,桥协议将这些资金“锁定”到合约中,即这些资金在C1中不可用。桥允许用户在另一个区块链C2中铸造等值的资金。一旦用户破费了一些资金,并希望将剩余的资金返回到C1,他就“销毁”C2中的资金,桥对其停止考证,并“释放”C1中的剩余资金。在这样的链间桥中,大量资金可能寄存在其平安性依赖于少数受信任方的桥中,使其成为攻击的活泼目的。

总的来说,建造桥的主要技术应战是:

  • 低计算开支(有效处置跨域数据)。

  • 低存储开支。(简约)

  • 平安/去信任。(牢靠性)

相关推荐