一文读懂跨链发展史,V神提出的Rollups之间的桥要如何修建?
为什么需要跨链?什么是桥?
为什么需要跨链解决方案? 区块链有多种运行环境,不同的区块链支持不同的协议、dApps和加密资产。如果有人想持有比特币,但又想参与以太坊上的DeFi协议,或者只是想用比特币交换ETH,那么跨链基础设施将是必不可少的。因为不能直接通信,不同的区块链就无法直接读取彼此链上的数据,链之间就无法实现直接转账。那么我们就需要设计方案来让割裂的资产可以联通起来。
什么是桥?通俗来讲, 支持加密资产在不同区块链之间转移的系统就是桥。桥的核心功能可以概括为:用户从桥的一端存入资产 → 桥更新账户余额 → 用户可以从桥的另一端取款 。除了研究如何不断提升TPS,寻找解决方案建立桥以支持加密资产从一个区块链到另一个区块链的转移也是区块链技术领域的重要课题。
关于跨链和桥的方案,我们可能经常听到这些词:Polkadot, Cosmos, NEAR Rainbow Bridge, xDAI Bridge, BSC Bridge, Arbitrum Bridge, Optimistic Bridge, Matic Network Bridge and zkSync bridge。那么这些方案有什么区别呢?
各种桥的对比——从中心化向去中心化发展
我们用尽可能用易于理解的方式来介绍不同桥方案的区别,并且按照进入主流视野的前后顺序来说明Orbiter Finance的方案与此前的跨链或桥方案有什么不同:
1. CEX 和 Notary scheme
最早为加密世界广泛应用的桥,是基于成熟的中心化互联网技术的CEX。CEX通过 Notary 解决方案为不同区块链之间的加密资产交换建立了中心化的桥。
同样是中心化解决方案的还有WBTC,BitGo Trust一边在BTC区块链中托管资产,一边在以太坊上通过运行智能合约来发行WBTC并更新余额,使WBTC与其托管的BTC数量保持一致。
中心化的机制虽然效率很高,但是始终面临着监管政策风险、平台管理者风险,在安全性上仍存在问题。
2. Lightning Network 和 Hash-locking
闪电网络起源于BTC的扩容方案,采用了Hash-locking方案。闪电网络设计了两种类型的交易合约:RSMC,HTLC。RSMC解决了通道中币单向流动问题,HTLC解决了币跨节点传递的问题。其中 HTLC承载了桥的功能,HTLC的功能是要求收款方在时间截止前向转款方提交转账证明,否则资金就会退还给转账方。
为了便于理解,举例说明Hash-locking的工作原理:Alice、Bob与Evan想一起玩一个复杂的BTC交易游戏,3人共同约定把每个人的一定数量的BTC用哈希锁锁定在BTC网络上,然后进入到State Channel(类似BTC的Layer 2)中进行成百甚至上千次的链下交易,游戏结束后他们把3人都认可的资产余额数据传回到BTC网络上并解锁,3人就可以重新在BTC网络上转账自己的BTC了。
3. Polkadot Relaychain
专注在跨链解决方案的Polkadot在2020年获得了很大的关注度。在原有的区块链方案中,是先有了不同的区块链,然后开发者再在不同的链之间修建桥。与之相反,Polkadot是先构建桥,再在桥上构建不同的区块链,区块链的上面运行智能合约。
Polkadot目标是在平行链之间可以传递任意消息,也就是平行链A可以调用平行链B中的智能合约, 中继链作为底层的桥,可以支持平行链之间通信和转账 。Polkadot有3层结构:
- 开发了一条具有信息交互验证功能的 中继链作为底层 。
- 生态中的开发者们在中继链上可以 构建平行链,中继链包含了所有平行链的所有数据信息,平行链会共享中继链上的验证者们 来获得更高的安全性。
- 平行链之上可以运行智能合约 ,在中继链和平行链中间有分片状态,确保整个系统可以持续有效。
此外,Polkadot使用了2种机制保证跨链通信安全性:
- 中继链与平行链共享安全性,既使消息通信更容易也使平行链都有着同级别的安全性,平行链之间可以互相信任。
- 引入了渔夫(Fishermen)作为监控平行链恶意活动的“赏金猎人”,渔夫可以向中继链提交证明指出平行链的验证者提交了一个无效的区块,并可以将Polkadot网络和相关的平行链的整个状态回滚。
4. Cosmos 和 IBC
与Polkadot并列讨论最多的是Cosmos。Polkadot目标是可以在两条链之间转移代币一级任何其他类型的通信,相比之下,Cosmos专注于区块链之间的资产转移,是比Polkadot更简单的协议。
在Cosmos的方案中,Hub作为中心枢纽,管理着很多被称为Zone的区块链。Hub追踪记录每个Zone的状态,Zone将新产出的区块汇报给Hub并同步Hub的状态。但是 Hub与Zone之间的状态同步并不是直接进行的,而是通过跨链桥协议IBC (Inter-Blockchain Communication protocol)实现的互操作性。
对比Polkadot的架构模式,Cosmos最大区别在于每个Zone的安全都是 仅由这个Zone的验证者来保障的 ,如果某个Zone想获得很高的安全性,那么它就需要自行引入更多验证者。这种方式对于规模较小的应用具有运营困难,但是也为想要拥有更多掌控权的应用提高了掌控力。
5. 侧链桥
NEAR, xDAI network, BSC和Heco都是关注度比较高的以太坊侧链。侧链桥主要有2种方案:
· NEAR 的 Rainbow Bridge
同样是在2020年,Near的Rainbow Bridge方案也获得了较高关注。Rainbow Bridge是一种跨链互操作性的桥,不仅支持资产在以太坊与Near之间流动,还可以支持更多的区块链。
Rainbow Bridge的实现方式是:在NEAR上构建追踪以太坊数据的轻客户端智能合约,同时也在以太坊上构建NEAR的轻客户端智能合约。简单的来讲,也就是 Rainbow Bridge会把NEAR上的数据传输到以太坊上,也会把以太坊上数据传输到NEAR上,这样以太坊和NEAR就可以相互读取数据实现相互跨链转账了。
这个方案也存在一些小问题,比如所谓的轻客户端其实并不轻。以太坊每隔约13秒产生一个区块,NEAR上的轻客户端就需要每隔13秒验证一次区块头中的数据。这个验证过程会占用其区块gas限制的10%。
· POA Network与用主体信用作为背书的桥
xDAI network, BSC and Heco是POA Network的代表,也都有链接ETH主网的侧链桥。共同点在于这些桥是有验证节点的,都涉及了人的参与治理,都不够去中心化。不同之处,xDAI Bridge是动态多节点验证的,BSC和Heco是以交易所信用作为背书单主体验证的。
6. 为Layer 2扩展而建造的桥
以太坊生态是目前加密世界中最大的生态。尽以太坊主网的当前TPS是15,但是layer-1 and layer-2 扩展方案正在快速发展:
- Layer-1 扩展:具有本机计算的 Eth2 分片链即将出炉。Eth2 大概有约 1000-5000 TPS。
- Layer-2 扩展:状态通道、Plasma 和 rollup 是Layer-2 扩展的三大主要类型,而 rollup 是主流解决方案。如果大家都转向 rollup,我们很快就会有大约 3000 TPS。
在BTC与ETH或者其他区块链之间的去中心化桥很难实现的原因在于--这些区块链之间不能直接通信。但是在以太坊体系中,因为Layer 1可以负责通信,所以Layer 2的rollups可以通过Layer 1实现通信。
为了更详细的说明,我们把Layer 2相关的跨链与桥的方案单独放在一个段落里重点说明。
Layer 2中的跨链与桥方案
这里我们主要探讨Layer 2 扩展技术中rollup技术相关的桥方案。先简单回顾Rollups的3个主要功能:
- 在链上记录交易数据。
- 在链下计算压缩每批的交易数据,并将压缩计算得到的状态根传回rollups上。
- 验证者负责验证传回的状态根是否正确,并将正确的结果记录到ETH主网上:如果状态前根对应的批次完全包含在状态后根对应的批次中,则证明状态前根是正确的可以传回Rollup合约中。
不同Rollup方案的区别主要在于链下计算和验证方法这两步。在Rollup技术方案中,Rollups可以直接与Layer1通信转账,但是Rollups之间并不能直接实时通信转账。如果Alice想从Rollup A转账到Rollup B,Alice需要先从Rollup A转账到主网(产生1小时或至少7天的提款时间),再从主网转账到Rollup B(产生主网上的4~10美金gas费)。
所以,在Rollup的整体技术框架中,不仅需要有Rollup到Layer1之间的桥,也需要有Rollups之间直接的桥,来确保交易的安全性与实时性。
1. Rollups与Layer 1之间的桥接方案
ZK rollups和有效证明
ZK 汇总中的每个批次都包含一个称为 ZK-SNARK 的加密证明,它证明后状态根是执行批次的正确结果。无论计算量有多大,该证明都可以很快在链上得到验证。
ZK rollups 的技术复杂度高于 Arbitrum 或 Optimistic,需要更高的链下计算成本,但每笔交易的链上 gas 成本更低,提款时间短,才约 4h。在今年ZK Rollups能够支持智能合约的EVM后,其很有可能成为最好的Rollups技术方案。Loopring、StarkWare、Matter Labs ZKSync 和 Aztec 2.0 都在应用 ZK 技术。
ZK rollup从L2提款到L1的 桥接方案是 :用户从L2发起提款,在将交易数据编码为字符串后签名并发送交易至L1,交易进入到L1上的zkSync智能合约中,经过提现期限后,证明该区块正确的ZK证明生成并发布到L1上并完成验证,这笔提现就完成了。
Arbitrum, Optimistic和欺诈证明
欺诈证明rollups会跟踪其整个状态根历史和每个批次的哈希值。如果有人发现一个批次的后状态根不正确,他们可以发布一个证明到链,证明该批次的计算不正确。合约验证了该证明,并恢复该批次及其后的所有批次。Optimistic rollups的复杂度低于 ZK rollups,链下计算成本更低,更容易支持智能合约。但是需要1周左右的提款时间给提交欺诈证明的人足够的时间,并且链上每笔交易的gas费用会更高。
Arbitrum和Optimistic采用了同样的可供开发者选用的 桥方案支持用户把资产从L1转移到L2 (需要注意的是,这个方案主要解决资产从L1到L2,而非从L2到L1或从L2到L2):
- 将资产从L1转到L2:先将资产存入L1的Arbitrum桥合约中,之后会在L2上铸造出数量相同的资产并转入指定地址。
- 将资产从L2转到L1:将资产在L2上销毁,随后在L1的桥合约中等量资产变为可用,但是这个过程需要有提款时间用于欺诈证明。
Arbitrum与Optimistic不同在于解决分歧的方式,当验证者向L1提交了被认为不正确的区块时,解决方案:
- Optimistic采用单轮交互解决方式:需要完整写入链上数据,解决争议时长短也不会面临延迟攻击的问题。
- Arbitrum通过多伦互动协议解决争议:向链上写入的数据更少,可以处理突破以太坊gas限制的合约降低了链上成本,但也增加了解决争议的时长,并可能面临延迟攻击。
Arbitrum对EVM的兼容性会比Optimistic更友好,开发者将L1上的用Solidity语言开发的智能合约迁移到Arbitrum上无需重写程序,同时Arbitrum用ETH作为gas也降低了用户的使用门槛。
Polygon的Layer 2聚合SDK
Polygon作为Layer2的聚合SDK,支持开发者快速便捷开发L2的区块链。整体设计方案简单理解大致是将Polkadot,Cosmos的机制通过Plasma技术嫁接到了ETH上,开发者基于Polygon开发合约就可以像在侧链上开发那么简单了。除此之外,Polygon还在聚合更多选项,如ZK rollups,Optimistic和侧链。
Polygon主要为开发者提供安全服务的方案,Polygon支持开发者在以太坊上快速构建两种区块链网络:
- 独立网络(stand-alone network):网络拥有自己的PoS或DPoS共识模型,并且由网络自建验证者节点,适用于企业区块链或者是有强大社区的链。这个机制很像Cosmos的结构,但是不同的是,Cosmos基于自建Hub,Polygon基于ETH。
- 安全链(secured chain):由ETH直接提供安全服务,如通过Plasma使用欺诈证明,或由专业的节点提供。安全验证节点可以被多个项目共享,类似Polkadot的共享安全节点模型。适合于初创项目或更注重安全的项目。
Polygon用4层结构的架构方案支持开发者研发独立网络或安全链:
- ETH层作为基础层:利用了ETH的高安全性,Polygon在ETH上运行着用于最终检查确认、质押、争议解决及消息传递的智能合约。
- 安全层:这一层运行着Polygon的验证器,验证器定期检查Polygon链的有效性并获取一定收益。
- Polygon网络层:这一层运行着基于Polygon架构的区块链们,区块链上维护着交易记录与共识机制。
- 执行层:这一层负责解读和执行Polygon Chain中的交易。
在以上4层结构中,ETH层、安全层为可选层,Polygon网络、执行层为必选层。Polygon为开发者不仅提供了的安全服务方案,还统一解决了与Layer1之间的通信问题。
2. Rollups与Rollups之间的桥
Orbiter Finance和跨Rollup交易协议
在现有的技术框架汇总,rollups之间无法直接的转账,需要构建去中心化的桥方案。在当前的Layer 2扩展框架中,如果用户想从Rollup A转账到Rollup B,需要先将资产从Rollup A转会到主网(会产生1小时或至少7天的提款时间),再从主网转账到RollupB(会在主网上产生ERC20代币的转账gas费)。随着用户和资产大规模向Layer 2迁徙,跨rollup直接转账的桥方案也会成为Layer 2的技术基础设施。
Orbiter Finance就在rollups之间构建了一个去中心桥协议,支持在一个区块时间内 (~13s)进行跨rollup的直接转账,每笔转账用户只需要在目标端rollup上进行一次智能合约验证。
例如,Alice想从Rollup A转账100USDT到Rollup B,Evan是做市商,Orbiter合约位于Rollup B上,Orbiter Finance是这样帮助Alice实现跨rollups转账桥接转账的:
- 做市商Evan需要先在Rollup B中的orbiter contract中存入110USDT的保证金。其中用于提供交易服务的保证金为100USDT, 另外的10USDT为Evan不及时提供服务时的罚款。(只要Evan正常提供服务,就不会受到惩罚,如果Evan不想继续提供做市服务,提交取保证金申请后,经过提款时间计算Evan可去除的金额后就可以成功退款)Optimistic或Arbitrum会将这些交易数据同步到位于Layer 1的rollup B的OVM_CanonicalTransactionChain中。
- 位于Rollup A的Alice通过在链下查询区块浏览器可以得知当前可以交易的最大金额上限为100USDT,Alice将100USDT转账到Evan在Rollup A上的地址。同样的,这些转账会被Layer 1上的定序器记录。
- Alice转账完成经过T时长:
- T < 1min:Evan优先提供转账服务,应在rollup B上给Alice的 Rollup B地址转入99.7USDT(实际运行过程中还需要扣除rollup B的gas费),并赚取0.3USDT作为服务佣金。
- 1min < T < 5mins:Evan没及时提供服务,其他做市商可抢单提供服务以保障Alice的用户体验,并接管Evan的保证金。其他做市商赚取0.2USDT服务费,Evan仍然可以赚取0.1USDT fee。
- 5mins < T:如果Evan以及其他做市商都没有及时提供服务,Orbiter系统中引入了pushman角色,pushman在定序器查询到Alice的确在Rollup A上完成了转账,并确定Evan的确在Rollup B中存有足够的保证金与惩罚金,pushman就会将99.7USDT转账给Alice的Rollup B账户,pushman将赚取Evan存入的110USDT,同时Evan的保证金被清算并且惩罚金被没收。Pushman可以又任何人来充当。
总结起来,Orbiter Contract具有以下3个功能:
- 记账结算:记录做市商的存取款数据,并为做市商们、pushman结算。
- 纠纷解决:处理做市商之间和pushman的保证金托管转移。
- 保管保证金:存储做市商的保证金并保障资金的安全性。