Rollup割裂以太坊生态,V神、Matic、Celer等想怎么解决?

Layer2 方案争夺用户的举措,会成为三月份以及上半年的一大母题。

三月将会是 Rollup 扩容方案的高光时刻。从进度看各个 Rollup 方案已经蓄势待发,有些方案已经明确将会在 3 月上线,而 Rollup 扩容方案的上线,将会为行业带重大影响。

但由于 Rollup 之间难以互通,这就造成了以太坊生态的割裂,不同协议之间难以实现协同性,对 DeFi 非常重要的可组合性也将支离破碎。那有没有办法解决这个问题呢?

今天聊一聊几种想要解决跨 Rollup 交互问题的方案,看看如何将不同 Rollup Layer2 扩容方案连接起来,保持协议间的可组合性和协同性。

一、 Rollup 蓄势待发

之前我们已经介绍了 Optimism、ZkSync、Arbitrum 以及 StarkEx 这四种主要的Rollup 扩容方案,这里再进行简要叙述,以作为背景。

四种 Rollup 方案的详细内容,可以点击查看:《四种主流 Rollup 方案及热门 DeFi Layer 2 进展盘点》。

不同的 Rollup 方案和 DeFi 协议的选择

MATIC

目前四种主要 Rollup 扩容方案各自都吸引到了一批生态用户,其中:

Optimism 吸引了来自 Uniswap、Compound 的目光,更是在主网预启动之后,得到了合成资产交易平台 Synthetix 的深度参与。

Curve、StablePay、GitCoin 采用或计划采用 Matter Labs 的 zkSync 方案作为扩容选择。

Offchain Labs 所创建的 Arbitrum,有多个 DeFi 项目已开始测试或有计划使用,包括 Bancor、Bounce、DODO、麦子钱包、Burgerswap、Hop、MCDEX 和 Swapr 等。

StarkEx 一边,也不乏战友。去中心化合约交易平台 dYdX 会使用 StarkEx 所支持的 Layer2 网络,还有 Paraswap,DeversiFi 等应用,也会使用 StarkEx 的方案。

各 Rollup 扩容方案进展如何? 

Optimism 二月份宣布完成 A 轮融资, 领投方为 Andreessen Horowitz (a16z),将于三月份上线主网。

Arbitrum 由学术性研究计划而肇始,在计划进入商业化阶段时,曾申请专利。团队近日表示,在征得普林斯顿大学同意后,考虑到项目进入社区成熟阶段,将放弃专利。Arbitrum 也公告主网处于即将上线阶段。

zkSync 项目的创始团队 Matter Labs 也公开了 A 轮融资的信息,“联合广场风投(USV)领投该轮,此前的投资者 Placeholder、1kx 和 Dragonfly 继续参与本轮,除此之外还有 zkSync 的生态合作方参与了投资,其中包括 Aave、Balancer、1inch、Curve、Binance、Coinbase Ventures、火币、路印、Argent、MYKEY、imToken、Flexa、MoonPay、ripio、ZKValidator、CoinGecko”。Matter Labs 表示,zkSync 将于今年支持图灵完备的智能合约(Solidity)。

二、 Rollup 导致生态割裂

大多数 DeFi 协议都是基于智能合约而创建的,这些智能合约部署在 Layer1 的以太坊上,并通过各自的方式,连接到自己的 Layer2 网络。

对用户来说,将资金存入智能合约,开始使用这些 Layer2 网络,智能合约会记录所有的交易变化,用户在 Layer2 网络上使用,能提升效率,降低成本。

但是如果 Synthetix 和 Uniswap 分别存在于不同的 Layer2 网络上,那么彼此之间可能就处于各自的孤岛,如何交互会成为问题。

如何让不同的扩容方案连接起来,保持 DeFi 协议最为人所知的可组合性和协作性? 

在币乎社区的一次线上 AMA 中,Vitalik 提到了目前 Rollup 等 Layer2 方案需要解决的两个问题:

  1. 以太坊的社区很多应用喜欢调用智能合约,比如 DeFi 的项目。但目前的 ZK Rollup 不支持智能合约,只支持发币、交易币等简单的应用。这是第一个问题。当我们有支持完整 EVM 的 Rollup 的时候, 我觉得会有更多的用户搬到 Rollup。
  2. 现在 Rollup 相关的基础设施生态还不多。比如我们还没有解决不同的 Rollup 之间交易的问题。如果我有一些币在 ZKsync 怎么把币搬到路印?首先需要把币从 ZKsync 的二层提取到以太坊底层,然后再转移到 Loopring 的二层账户。如果这样做了,交易费会不会特别高?

现在以太坊上会有很多用户体验方面的挑战(问题)。但我觉得6个月之后很多这些问题都会解决。 

那么如何解决?

三、 Vitalik 提案:如何实现跨 Rollup 转账

几天前以太坊联合创始人 Vitalik Buterin 提了个想法,将不同的第二层扩展解决方案连接起来,这样它们就可以相互“交谈”,以保持 DeFi 协议的可组合性和协同性。

MATIC

假设存在两个 Rollup:A 和 B。用户 Alice 想要将 Rollup A 上的一些代币,换成 Rollup B 上的另外一些代币。假设存在两种情况:

  • Rollup A 和 Rollup B 都能够支持合约
  • 只有一个 Rollup 支持智能合约,另一个 Rollup 只支持简单的转账。

第一种情况,社区也有一份提案,名为 “Hop: Send Tokens Across Rollups(Hop: 跨 Rollup 发送代币)”,地址见:https://ethresear.ch/t/hop-send-tokens-across-rollups/8581。

Vitalik 的提案,针对第二种情形,即:如果 RollupA 只支持简单的转账交易,而 Rollup B 支持智能合约。

V 神提议,有一种简单的方法,可以将这些各自孤立的合约网络连接起来。

MATIC

跨 Rollup 转账的基本场景

“假设有一个交易中介,名为 Ivan(当然有很多中介可以选择,这里只是举例)。Ivan 在 Rollup A 上有一个帐户 IVAN_A (他完全控制该帐户)。Ivan 也有一些资金存入到 Rollup B 上的智能合约 IVAN_B 中。”

设想有如下的操作:

  • Alice 向 Rollup A 上的  IVAN_A 账户发起一笔交易,转账到 Rollup B 上的账户:ALICE_B。(Alice 在 Rollup A 上转给 IVAN)

  • Ivan 能怎么办呢?他会通过 IVAN_B 账户,发送一笔交易,将扣除了手续费之后的代币数量,发送到 ALICE_B 这个账号中。

在第一步之后,第二步可以立即进行。如果 Ivan 证明第二笔交易跟第一笔交易之间的差异非常小,那么甚至可以在合约里设置规则,允许收取更高的费用。

“最坏的情况”是 Ivan 没有像预期的那样向 ALICE_B 发送代币。在这种情况下,Alice 可以等待Rollup A上的交易确认,然后通过其他途径获得Rollup B 上的代币用来支付跨 Rollup 传输的手续费,然后她自己就可以 claim,获得资金。

按照 V 神的解释,用户 Alice 可以直接在 Rollup B 上完成。只需要让 Rollup B 可以获得在前一 批 Rollup 记录之前的 L1 上的相应 hash 记录,然后 RollupB 就能够记录下来 Merkle 分支,能够在 Rollup 里验证。

通俗来说,通过技术方式能够确保用户 Alice 在 Rollup A 上交易确认之后,可以有方式安全的在 Rollup B 上领取到对应的资金(支付了手续费之后),避免因为其中某一个或者几个交易中介出现问题,导致资金受损。

无论这个交易中介 Ivan 是谁,为什么别人会选择转给他代币,这些可以暂时不管;这里的含义是,存在连接层,让存入到各类孤立的 Layer2 智能合约上的资金保持同步,实现跨 Rollup 转账的功能。

具体的实现细节,可能要了解在 Rollup B 上的合约 IVAN_B 的规则了。遵从下面的设定(为便于理解有所删减):

  • 如果任何人发起一个交易,发送若干数量的比特币到 IVAN_A 这个账户(存在 Rollup A上),在 memo 中,包含了目标地址的信息。那么,在若干时间之后,他们可以向合约 IVAN_B 发送一笔交易,该交易包含了转账的证明,该证明能够将对应数量的比特币提到在 Rollup B 上的目标地址之中。

  • 提款要经过一些延迟(例如,1天的时间),是为了确保对应的转账批次和索引可以记录到 Rollup A 的 Layer2 网络之中。

  • 当 Ivan 在 IVAN_A 收到资金时,他可以自己将代币发送到目标地址。他可以通过 IVAN_B 合约发送交易。

在这种情况下, Ivan 充当了结算商的角色,可以收取一定的转账手续费,让 Rollup A 这个只支持简单转账交易的Layer2 网络,和可以支持智能合约交易的 Rollup B,能够连接起来。而通过转账证明、Merkle 索引等方式,也确保用户资产能够在转移过程中不会遇到损失。

结算商充当了跨 Rollup 转账的协作角色

Ivan 自己也需要进行内部结算,毕竟有可能在某个 Rollup 上会耗尽资金。比如,用户一直在通过 Rollup A 向 Rollup B 转账,需要通过 Ivan 在 Rollup B 上的储备资金转给用户所指定的地址。这时候 Ivan 这类交易中介,就需要进行内部结算了,也因此这提案的限制,会要求 Ivan 这类中介商持有大量的资金在账户之中,以便服务用户需求。

我们用法币举例,或许能更好理解。如果你从工商银行向建设银行的卡转账,尽管 ATM 机上显示立即变更了,但是实际的结算过程是每天进行一次,只有在工行结算后,才将实际的资金转给建行,更具体来说,是通过在央行的结算账号之间进行的。

同样的,从支持智能合约的 Rollup B 向只支持普通转账的 Rollup A 发起转账交易,也是类似的操作。

  • Alice 发送代币至合约账号 IVAN_B, 并附上了目标地址;

  • 若干时间之后,Alice 可以将资金取回;

  • 不过如果中间 IVAN 这个中间商能够提供证明至智能合约 IVAN_B, 附上链上的转账记录等信息,证明自己已经将资金在 Rollup A 上转给了 Alice,那么,Alice 就不能再取回资金了。这时候,跨 Rollup 转账完成。

至此,我们大致理解了 Vitalik 提案之中所提到的跨 Rollup 转账原理,并且只需要其中一个 Rollup 支持智能合约即可实现,主要引入了 IVAN 这一中间商来支持跨 Rollup 转账。

至于如何设置限定,避免中间结算层的资金不足和浪费、以及转账的 Memo 应该如何设定等技术细节,可以查看 Vitalik 的提案所述: https://ethresear.ch/t/cross-rollup-dex-with-smart-contracts-only-on-the-destination-side/8778。

四、Hop 的跨 Rollup 转账方案

上文中,我们还提到过另外一个场景:两个 Rollup,比如 ZKSync 和 Optimism,都支持智能合约,那么如何实现跨 Rollup 交互?

Hop 团队成员 chris whinfrey 1 月 24 日在 ETH Research 论坛发了一篇帖子,介绍 Hop 如何跨 Rollup 进行去中心化的代币转账。

内容如下:

Hop protocol 提供了去信任、可扩展的跨 Rollup 通讯桥。致力于: 

  • 快速轻松实现跨 Rollup 代币转移
  • 可以快速从 Rollup 中退出
  • 最终实现跨 Rollup 合约调用的功能

在 Hop 团队看来,对于解决跨 Rollup 可组合性问题,他们提供了广泛的解决方案,通过双管齐下的方式实现:

  • 创建一个跨网络桥接代币,可以快速而经济地从一个 Rollup 移动到另一个 Rollup ,或者在 Layer1 上创建,支持领取对应的底层资产。

  • 使用自动做市商(AMM) 在每个 Rollup 上的每个桥接代币和其对应的代币之间进行交易,以便动态定价,并让整个网络的流动性再平衡。

换句话说,借助于一个锚定代币(比如 Bridge),在多个 Rollup 上都有部署,也可以在 Layer1 的以太坊网络上部署并支持 Layer1 跟 Layer2 的 Rollup 上的 Bridge 代币的1:1锚定兑换。

MATIC

如果用户想要从 Rollup A 转账 100 个 BTC 到 Rollup B 上自己或者他人的账号中,那么,就有如下的过程:

  • 首先,在 Rollup A 上,通过 AMM 将这 100 个 ETH 兑换为 Bridge_A 代币,即桥接代币;

  • 交易确认之后,Rollup B 上通过 AMM 将 Bridge_B 代币兑换为 100 个 ETH 代币,然后转给用户所指定的在 Rollup B 上的对应地址;

  • 由于 Bridge_A 和 Bridge_B 都是同样的代币,只是起到了跨 Rollup 桥接的作用,他们的比值是 1:1 锚定的。如果有价值波动,套利者会进行无风险套利,搬砖搬平差价。

Hop 目前已有测试网上线 https://hop.exchange/send。

五、还有没有其他方案?

除了上述方案之外,Celer 跟 Matic Network 的方向我们也一并聊聊。

Celer 的 Layer2 方案:原地扩容

MATIC

国产 DeFi 项目 Celer 提出了个新的思路,称为“原地扩容”,原地的意思就是,让 DeFi 项目继续在 Layer1 即可,不需要专门去 Layer2 另外部署专门的版本,即可通过 Celer 的方案–Layer2.finance, 实现扩容。

MATIC

  

根据 Celer 团队的介绍,在该场景下,用户的资产存放在 Layer2 链上(Celer 从基于 Optimistic Rollup 的方案开始,后续扩展升级,支持 ZK Rollup),然后用户发送指令,告诉 Layer2.finance 协议自己的操作要求,指明将自己的多少资金、存放到哪些 DeFi 协议中,比如 Curve、AAVE、Compond 等位于以太坊 Layer1 网络上的 DeFi 协议。

通过这种方式,Layer2 充当了命令代理,用户存储资产 + 发送指令即可,而具体的业务逻辑,则仍然是交给了 Layer1 上的 DeFi 协议执行。而不同用户的命令,可以通过合并交易的方式,更经济的与 Layer1 合约交互。

该方案预计在3月份上线。

Matic Network 品牌重塑:Polygon 

MATIC

Polygon 原名为 Matic Network,则走了另外一条路,定调为 Layer2 聚合器,通过两种方式实现扩容:

  • 依赖以太坊网络,借助对应网络上的验证者,并支持 Matic Plasma、zkRollups、Optimistic Rollups、Validium 等方案。

  • 建立自己的子链体系和独立的验证节点,自行负责自己的安全性。这一方向,目前已经上线的是 Matic PoS 链。

Matic Network 升级之后的方案走得更远,除了依托现有生态之外要独立建立自己的生态体系,所付出的努力也要更多。据统计,目前有 80 多个 DApp 部署在 Polygon 上,涵盖 DeFi、NFT、游戏等领域。

按照当前的进展,Matic Pos 链和 Matic Plasma 方案已上线,而目前还未支持 zk Rollup 和 Optimistic Rollup,这些方案会在未来上线。限于篇幅,对 Polygon 不再展开。Polygon 链接见:https://polygon.technology/

MATIC

六、  小结

三月份会很热闹,Arbitrum、Optimism 的主网上线,标记着我们目前处在 Rollup 等 Layer2 方案的爆发前夜。Layer2 方案争夺用户的举措,会成为三月份以及上半年的一大母题。

而不同 Layer2 (具体来说 Rollup)之间如何兼容,避免破坏 DeFi 的协作性?目前见到的这几个方案,其实也都在摸着石头过河。Vitalik 的提案,Hop 的实现,以及 Celer 的创意,或许能够解决各自设想中的问题,但是跨 Rollup 实现 DeFi 的调用组合,仍然是个摆在前方的大难题。

另一方面,最近 Sushi 等协议在多条链上部署的动作,或许预示了另外一种可能性,跟 Hop 方案之中所提到的类似,借助于 AMM + 协议自身代币的方式,或许许多 DeFi 协议会先尝试在内部打通不同 Layer2 网络及 Layer1 之间的隔阂,形成闭环。

也许未来随着更多 DeFi 加入 Layer2 的行列,更广泛意义的 DeFi 聚合器巨无霸将会出现,现在还只是刚刚开始,读者朋友们不妨多想想多看看。

参考资料:

https://mp.weixin.qq.com/s/2HYIsxnUaovKYs19xQ_KbQ

https://www.trustnodes.com/2021/03/02/vitalik-buterin-proposes-cross-rollup-scaling-solution

https://www.chainnews.com/articles/872971457746.htm

https://hop.exchange/whitepaper.pdf

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2021年3月7日 上午12:53
下一篇 2021年3月7日 上午10:53

相关推荐

Rollup割裂以太坊生态,V神、Matic、Celer等想怎么解决?

星期日 2021-03-07 0:53:13

三月将会是 Rollup 扩容方案的高光时刻。从进度看各个 Rollup 方案已经蓄势待发,有些方案已经明确将会在 3 月上线,而 Rollup 扩容方案的上线,将会为行业带重大影响。

但由于 Rollup 之间难以互通,这就造成了以太坊生态的割裂,不同协议之间难以实现协同性,对 DeFi 非常重要的可组合性也将支离破碎。那有没有办法解决这个问题呢?

今天聊一聊几种想要解决跨 Rollup 交互问题的方案,看看如何将不同 Rollup Layer2 扩容方案连接起来,保持协议间的可组合性和协同性。

一、 Rollup 蓄势待发

之前我们已经介绍了 Optimism、ZkSync、Arbitrum 以及 StarkEx 这四种主要的Rollup 扩容方案,这里再进行简要叙述,以作为背景。

四种 Rollup 方案的详细内容,可以点击查看:《四种主流 Rollup 方案及热门 DeFi Layer 2 进展盘点》。

不同的 Rollup 方案和 DeFi 协议的选择

MATIC

目前四种主要 Rollup 扩容方案各自都吸引到了一批生态用户,其中:

Optimism 吸引了来自 Uniswap、Compound 的目光,更是在主网预启动之后,得到了合成资产交易平台 Synthetix 的深度参与。

Curve、StablePay、GitCoin 采用或计划采用 Matter Labs 的 zkSync 方案作为扩容选择。

Offchain Labs 所创建的 Arbitrum,有多个 DeFi 项目已开始测试或有计划使用,包括 Bancor、Bounce、DODO、麦子钱包、Burgerswap、Hop、MCDEX 和 Swapr 等。

StarkEx 一边,也不乏战友。去中心化合约交易平台 dYdX 会使用 StarkEx 所支持的 Layer2 网络,还有 Paraswap,DeversiFi 等应用,也会使用 StarkEx 的方案。

各 Rollup 扩容方案进展如何? 

Optimism 二月份宣布完成 A 轮融资, 领投方为 Andreessen Horowitz (a16z),将于三月份上线主网。

Arbitrum 由学术性研究计划而肇始,在计划进入商业化阶段时,曾申请专利。团队近日表示,在征得普林斯顿大学同意后,考虑到项目进入社区成熟阶段,将放弃专利。Arbitrum 也公告主网处于即将上线阶段。

zkSync 项目的创始团队 Matter Labs 也公开了 A 轮融资的信息,“联合广场风投(USV)领投该轮,此前的投资者 Placeholder、1kx 和 Dragonfly 继续参与本轮,除此之外还有 zkSync 的生态合作方参与了投资,其中包括 Aave、Balancer、1inch、Curve、Binance、Coinbase Ventures、火币、路印、Argent、MYKEY、imToken、Flexa、MoonPay、ripio、ZKValidator、CoinGecko”。Matter Labs 表示,zkSync 将于今年支持图灵完备的智能合约(Solidity)。

二、 Rollup 导致生态割裂

大多数 DeFi 协议都是基于智能合约而创建的,这些智能合约部署在 Layer1 的以太坊上,并通过各自的方式,连接到自己的 Layer2 网络。

对用户来说,将资金存入智能合约,开始使用这些 Layer2 网络,智能合约会记录所有的交易变化,用户在 Layer2 网络上使用,能提升效率,降低成本。

但是如果 Synthetix 和 Uniswap 分别存在于不同的 Layer2 网络上,那么彼此之间可能就处于各自的孤岛,如何交互会成为问题。

如何让不同的扩容方案连接起来,保持 DeFi 协议最为人所知的可组合性和协作性? 

在币乎社区的一次线上 AMA 中,Vitalik 提到了目前 Rollup 等 Layer2 方案需要解决的两个问题:

  1. 以太坊的社区很多应用喜欢调用智能合约,比如 DeFi 的项目。但目前的 ZK Rollup 不支持智能合约,只支持发币、交易币等简单的应用。这是第一个问题。当我们有支持完整 EVM 的 Rollup 的时候, 我觉得会有更多的用户搬到 Rollup。
  2. 现在 Rollup 相关的基础设施生态还不多。比如我们还没有解决不同的 Rollup 之间交易的问题。如果我有一些币在 ZKsync 怎么把币搬到路印?首先需要把币从 ZKsync 的二层提取到以太坊底层,然后再转移到 Loopring 的二层账户。如果这样做了,交易费会不会特别高?

现在以太坊上会有很多用户体验方面的挑战(问题)。但我觉得6个月之后很多这些问题都会解决。 

那么如何解决?

三、 Vitalik 提案:如何实现跨 Rollup 转账

几天前以太坊联合创始人 Vitalik Buterin 提了个想法,将不同的第二层扩展解决方案连接起来,这样它们就可以相互“交谈”,以保持 DeFi 协议的可组合性和协同性。

MATIC

假设存在两个 Rollup:A 和 B。用户 Alice 想要将 Rollup A 上的一些代币,换成 Rollup B 上的另外一些代币。假设存在两种情况:

  • Rollup A 和 Rollup B 都能够支持合约
  • 只有一个 Rollup 支持智能合约,另一个 Rollup 只支持简单的转账。

第一种情况,社区也有一份提案,名为 “Hop: Send Tokens Across Rollups(Hop: 跨 Rollup 发送代币)”,地址见:https://ethresear.ch/t/hop-send-tokens-across-rollups/8581。

Vitalik 的提案,针对第二种情形,即:如果 RollupA 只支持简单的转账交易,而 Rollup B 支持智能合约。

V 神提议,有一种简单的方法,可以将这些各自孤立的合约网络连接起来。

MATIC

跨 Rollup 转账的基本场景

“假设有一个交易中介,名为 Ivan(当然有很多中介可以选择,这里只是举例)。Ivan 在 Rollup A 上有一个帐户 IVAN_A (他完全控制该帐户)。Ivan 也有一些资金存入到 Rollup B 上的智能合约 IVAN_B 中。”

设想有如下的操作:

  • Alice 向 Rollup A 上的  IVAN_A 账户发起一笔交易,转账到 Rollup B 上的账户:ALICE_B。(Alice 在 Rollup A 上转给 IVAN)

  • Ivan 能怎么办呢?他会通过 IVAN_B 账户,发送一笔交易,将扣除了手续费之后的代币数量,发送到 ALICE_B 这个账号中。

在第一步之后,第二步可以立即进行。如果 Ivan 证明第二笔交易跟第一笔交易之间的差异非常小,那么甚至可以在合约里设置规则,允许收取更高的费用。

“最坏的情况”是 Ivan 没有像预期的那样向 ALICE_B 发送代币。在这种情况下,Alice 可以等待Rollup A上的交易确认,然后通过其他途径获得Rollup B 上的代币用来支付跨 Rollup 传输的手续费,然后她自己就可以 claim,获得资金。

按照 V 神的解释,用户 Alice 可以直接在 Rollup B 上完成。只需要让 Rollup B 可以获得在前一 批 Rollup 记录之前的 L1 上的相应 hash 记录,然后 RollupB 就能够记录下来 Merkle 分支,能够在 Rollup 里验证。

通俗来说,通过技术方式能够确保用户 Alice 在 Rollup A 上交易确认之后,可以有方式安全的在 Rollup B 上领取到对应的资金(支付了手续费之后),避免因为其中某一个或者几个交易中介出现问题,导致资金受损。

无论这个交易中介 Ivan 是谁,为什么别人会选择转给他代币,这些可以暂时不管;这里的含义是,存在连接层,让存入到各类孤立的 Layer2 智能合约上的资金保持同步,实现跨 Rollup 转账的功能。

具体的实现细节,可能要了解在 Rollup B 上的合约 IVAN_B 的规则了。遵从下面的设定(为便于理解有所删减):

  • 如果任何人发起一个交易,发送若干数量的比特币到 IVAN_A 这个账户(存在 Rollup A上),在 memo 中,包含了目标地址的信息。那么,在若干时间之后,他们可以向合约 IVAN_B 发送一笔交易,该交易包含了转账的证明,该证明能够将对应数量的比特币提到在 Rollup B 上的目标地址之中。

  • 提款要经过一些延迟(例如,1天的时间),是为了确保对应的转账批次和索引可以记录到 Rollup A 的 Layer2 网络之中。

  • 当 Ivan 在 IVAN_A 收到资金时,他可以自己将代币发送到目标地址。他可以通过 IVAN_B 合约发送交易。

在这种情况下, Ivan 充当了结算商的角色,可以收取一定的转账手续费,让 Rollup A 这个只支持简单转账交易的Layer2 网络,和可以支持智能合约交易的 Rollup B,能够连接起来。而通过转账证明、Merkle 索引等方式,也确保用户资产能够在转移过程中不会遇到损失。

结算商充当了跨 Rollup 转账的协作角色

Ivan 自己也需要进行内部结算,毕竟有可能在某个 Rollup 上会耗尽资金。比如,用户一直在通过 Rollup A 向 Rollup B 转账,需要通过 Ivan 在 Rollup B 上的储备资金转给用户所指定的地址。这时候 Ivan 这类交易中介,就需要进行内部结算了,也因此这提案的限制,会要求 Ivan 这类中介商持有大量的资金在账户之中,以便服务用户需求。

我们用法币举例,或许能更好理解。如果你从工商银行向建设银行的卡转账,尽管 ATM 机上显示立即变更了,但是实际的结算过程是每天进行一次,只有在工行结算后,才将实际的资金转给建行,更具体来说,是通过在央行的结算账号之间进行的。

同样的,从支持智能合约的 Rollup B 向只支持普通转账的 Rollup A 发起转账交易,也是类似的操作。

  • Alice 发送代币至合约账号 IVAN_B, 并附上了目标地址;

  • 若干时间之后,Alice 可以将资金取回;

  • 不过如果中间 IVAN 这个中间商能够提供证明至智能合约 IVAN_B, 附上链上的转账记录等信息,证明自己已经将资金在 Rollup A 上转给了 Alice,那么,Alice 就不能再取回资金了。这时候,跨 Rollup 转账完成。

至此,我们大致理解了 Vitalik 提案之中所提到的跨 Rollup 转账原理,并且只需要其中一个 Rollup 支持智能合约即可实现,主要引入了 IVAN 这一中间商来支持跨 Rollup 转账。

至于如何设置限定,避免中间结算层的资金不足和浪费、以及转账的 Memo 应该如何设定等技术细节,可以查看 Vitalik 的提案所述: https://ethresear.ch/t/cross-rollup-dex-with-smart-contracts-only-on-the-destination-side/8778。

四、Hop 的跨 Rollup 转账方案

上文中,我们还提到过另外一个场景:两个 Rollup,比如 ZKSync 和 Optimism,都支持智能合约,那么如何实现跨 Rollup 交互?

Hop 团队成员 chris whinfrey 1 月 24 日在 ETH Research 论坛发了一篇帖子,介绍 Hop 如何跨 Rollup 进行去中心化的代币转账。

内容如下:

Hop protocol 提供了去信任、可扩展的跨 Rollup 通讯桥。致力于: 

  • 快速轻松实现跨 Rollup 代币转移
  • 可以快速从 Rollup 中退出
  • 最终实现跨 Rollup 合约调用的功能

在 Hop 团队看来,对于解决跨 Rollup 可组合性问题,他们提供了广泛的解决方案,通过双管齐下的方式实现:

  • 创建一个跨网络桥接代币,可以快速而经济地从一个 Rollup 移动到另一个 Rollup ,或者在 Layer1 上创建,支持领取对应的底层资产。

  • 使用自动做市商(AMM) 在每个 Rollup 上的每个桥接代币和其对应的代币之间进行交易,以便动态定价,并让整个网络的流动性再平衡。

换句话说,借助于一个锚定代币(比如 Bridge),在多个 Rollup 上都有部署,也可以在 Layer1 的以太坊网络上部署并支持 Layer1 跟 Layer2 的 Rollup 上的 Bridge 代币的1:1锚定兑换。

MATIC

如果用户想要从 Rollup A 转账 100 个 BTC 到 Rollup B 上自己或者他人的账号中,那么,就有如下的过程:

  • 首先,在 Rollup A 上,通过 AMM 将这 100 个 ETH 兑换为 Bridge_A 代币,即桥接代币;

  • 交易确认之后,Rollup B 上通过 AMM 将 Bridge_B 代币兑换为 100 个 ETH 代币,然后转给用户所指定的在 Rollup B 上的对应地址;

  • 由于 Bridge_A 和 Bridge_B 都是同样的代币,只是起到了跨 Rollup 桥接的作用,他们的比值是 1:1 锚定的。如果有价值波动,套利者会进行无风险套利,搬砖搬平差价。

Hop 目前已有测试网上线 https://hop.exchange/send。

五、还有没有其他方案?

除了上述方案之外,Celer 跟 Matic Network 的方向我们也一并聊聊。

Celer 的 Layer2 方案:原地扩容

MATIC

国产 DeFi 项目 Celer 提出了个新的思路,称为“原地扩容”,原地的意思就是,让 DeFi 项目继续在 Layer1 即可,不需要专门去 Layer2 另外部署专门的版本,即可通过 Celer 的方案–Layer2.finance, 实现扩容。

MATIC

  

根据 Celer 团队的介绍,在该场景下,用户的资产存放在 Layer2 链上(Celer 从基于 Optimistic Rollup 的方案开始,后续扩展升级,支持 ZK Rollup),然后用户发送指令,告诉 Layer2.finance 协议自己的操作要求,指明将自己的多少资金、存放到哪些 DeFi 协议中,比如 Curve、AAVE、Compond 等位于以太坊 Layer1 网络上的 DeFi 协议。

通过这种方式,Layer2 充当了命令代理,用户存储资产 + 发送指令即可,而具体的业务逻辑,则仍然是交给了 Layer1 上的 DeFi 协议执行。而不同用户的命令,可以通过合并交易的方式,更经济的与 Layer1 合约交互。

该方案预计在3月份上线。

Matic Network 品牌重塑:Polygon 

MATIC

Polygon 原名为 Matic Network,则走了另外一条路,定调为 Layer2 聚合器,通过两种方式实现扩容:

  • 依赖以太坊网络,借助对应网络上的验证者,并支持 Matic Plasma、zkRollups、Optimistic Rollups、Validium 等方案。

  • 建立自己的子链体系和独立的验证节点,自行负责自己的安全性。这一方向,目前已经上线的是 Matic PoS 链。

Matic Network 升级之后的方案走得更远,除了依托现有生态之外要独立建立自己的生态体系,所付出的努力也要更多。据统计,目前有 80 多个 DApp 部署在 Polygon 上,涵盖 DeFi、NFT、游戏等领域。

按照当前的进展,Matic Pos 链和 Matic Plasma 方案已上线,而目前还未支持 zk Rollup 和 Optimistic Rollup,这些方案会在未来上线。限于篇幅,对 Polygon 不再展开。Polygon 链接见:https://polygon.technology/

MATIC

六、  小结

三月份会很热闹,Arbitrum、Optimism 的主网上线,标记着我们目前处在 Rollup 等 Layer2 方案的爆发前夜。Layer2 方案争夺用户的举措,会成为三月份以及上半年的一大母题。

而不同 Layer2 (具体来说 Rollup)之间如何兼容,避免破坏 DeFi 的协作性?目前见到的这几个方案,其实也都在摸着石头过河。Vitalik 的提案,Hop 的实现,以及 Celer 的创意,或许能够解决各自设想中的问题,但是跨 Rollup 实现 DeFi 的调用组合,仍然是个摆在前方的大难题。

另一方面,最近 Sushi 等协议在多条链上部署的动作,或许预示了另外一种可能性,跟 Hop 方案之中所提到的类似,借助于 AMM + 协议自身代币的方式,或许许多 DeFi 协议会先尝试在内部打通不同 Layer2 网络及 Layer1 之间的隔阂,形成闭环。

也许未来随着更多 DeFi 加入 Layer2 的行列,更广泛意义的 DeFi 聚合器巨无霸将会出现,现在还只是刚刚开始,读者朋友们不妨多想想多看看。

参考资料:

https://mp.weixin.qq.com/s/2HYIsxnUaovKYs19xQ_KbQ

https://www.trustnodes.com/2021/03/02/vitalik-buterin-proposes-cross-rollup-scaling-solution

https://www.chainnews.com/articles/872971457746.htm

https://hop.exchange/whitepaper.pdf