摘要
· L2互操作性意味着用户可以以尽可能小的L1摩擦在L2系统之间转移资金。
· 本文所提议的L2互操作性解决方案基于我们此前建议使用的条件式交易密码学基元。
· StarkEx 2.0(于2020年11月推出)将使用链上条件式交易,提供L2-L1之间的互操作性(即快速提款)。
· StarkEx 3.0 (于2021年2月推出),将使用链下条件式交易,提供在StarkEx系统之间的L2-L2互操作性。
背景
Layer-2扩容解决方案发展迅速。以太坊主网上已经有多种有效性证明系统,还有一些欺诈证明系统也推出了测试网。L2解决方案虽然提供扩容性,但会带来一定的代价:我们完全在L1上操作所具有的一些优势可能会遭受损害。
我们并不希望某个L2解决方案一家独大:不同的App对扩容性的需求各不同,因此可以根据自身需求选择适合的L2解决方案。
接下来,让我们给大家解释两个重要的术语:
· 互操作性 (Interoperability):允许用户在app1 (初始环境) 和app2 (目标环境)之间高效地转移资金。
· 可组合性(Composability):能够将app1、app2…appn包含的操作组合成一次交易以发送。注意:可组合性将在之后的一篇文章中详细讨论。
除了上面所提到的定义之外,我们还需要着重解释什么是“条件式交易 (Conditional-Tx)”,这一重要基元让互操作性成为可能。
条件式交易
条件式交易是一个由密码构建成的区块 (我们在某篇文章中首次讨论过这一概念),旨在为无需许可的区块链实现互操作性。条件式交易指某笔交易生效与否,取决于某些事件是否发生 (如支付有无发生,状态有无改变)。从概念上来讲,我们首先在初始环境设定一个条件式交易,一旦特定的条件在另一个环境 (即目标环境) 中得到满足,该交易便生效。
循序渐进
尽管目前没有一个更好的方案,用户总是能够将资金从初始L2上转移至L1上,再从L1上转移至目标L2上。这个简单粗暴的方法既慢又贵,并且随着用户对互操作性的需求增加会越来越慢,越来越贵。
我们需要做得更好,为此,我们特地做了以下计划,循序渐进地实现L2互操作性。
阶段 I
StarkEx (L2) → Ethereum (L1) — 快速提款
“快速提款” (Fast Withdrawals) 可以解决用户需要快速地从L2系统StarkEx中提款至L1的问题。通过快速提款,用户不仅可以将资金转到自己的L1地址上,还可以转到L1的任意目标地址中,比如Compound、Aave等。重要的是,这允许用户在进行提款时以“区块时间”来衡量,而与StarkEx对批量交易进行证明的频率无关。
用例:Alice想要从她在L2上的 dYdX账户转移1个ETH至她的L1地址上。
参与者:
· Alice (在L2上持有ETH的用户)
· LP (在L1上持有资金的流动性提供者)
· 在初始环境中的StarkEx运营者 (在上述的例子中即dYdX)
流程:
(1) Alice给LP发送一笔价值为1 ETH的条件式交易 (还要加上给LP的手续费),条件为LP需向Alice的L1地址上转1 ETH;
(2) LP在L1上转了给Alice之后,条件式交易生效,然后
(3) LP将该条件式交易提交给运营者,随后被打包进下一批等待被证明的交易中;
(4) 等到这些证明被提交至L1并得到验证后,LP在L2的账户便收到了Alice的转款。
定期再平衡:LP需要定期地拿出他们在L2账户中逐渐积累的资金,补充他们在L1账户中逐渐消耗的资金。
阶段 II
StarkEx (L2) → StarkEx (L2)
最初的StarkEx部署将各自托管一个应用程序。在本阶段,我们希望用户能够在这些不同的应用程序之间快速地转移资金。这很像快速提款,我们希望最小化用户的链上成本,以及省去他们等待下一批交易打包证明的时间。
用例:Alice想要从她的dYdX账户 (L2_1) 向她的DeversiFi账户 (L2_2) 转1个ETH。
参与者:
· Alice (在L2_1上持有ETH的用户)
· LP (在L2_2上持有资金的流动性提供者)
· 初始环境上的StarkEx运营者 (在上述的例子中即dYdX)
流程:
(1) Alice在L2_1上给LP发送一笔已签名的价值为1 ETH的条件式交易 (还要加上给LP的手续费),条件为LP需向Alice的L2_2账号转1 ETH;
(2) LP向Alice的L2_2账号上转钱之后;
(3) 该笔支付被打包进一批交易中,随后被L2_2的运营者证明,并在L1上被验证。这批交易发布在L1上并被接受后,Alice发送的条件式交易便生效;
(4) LP将该笔条件式交易提交至L2_1的运营者中,打包进下一批等待被证明的交易中;
(5) 一旦这批在L2_1上交易被证明且提交至L1得到验证之后,该LP在L2_1上的账户便收到了Alice的转款。
定期再平衡:LP需要根据L2_1和L2_2这两个系统之间的资金流向,定期地再平衡两者之间的资金。
在这一阶段,支持互操作性的主要成本将是给LP们支付的资本成本;需要注意的是,他们的资本成本经过非常有限的一段时间便回笼,也就是从向用户提供流动性到运营者打包处理下一批交易这个时间。我们预测这个时间开始时需要几个小时 (大部分时候),然后随着(所有StarkEx应用中的)吞吐量不断增加,这个时间会减少至证明生成时间 (几分钟)。
阶段 III L2 → L2
在阶段2的基础上进行扩展,允许资金在任意的L2解决方案之间转移,无论是有效证明系统还是欺诈证明系统 (如Optimistic Rollup、Plasma)。这里需要提醒的是,Optimistic Rollup在使用LP来支持互操作性时,会面临其本身固有的资本效率低下的劣势。
信任模式
现在归纳一下我们所依赖的信任模式。
对用户来说
完全去信任的。
对LP来说
LP需要信任运营者 (初始环境中的),即相信其会打包他们的有效条件式交易,也就是说在处理过程中不会审查他们。这种信任可以通过几种方式进行消除。
如果运营者没有及时处理LP的条件式交易,LP可以:
· 抗审查:提交被审查的条件式交易到链上的运营者的智能合约中,这会冻结运营者,使其之后提交的证明都无法得到处理。
· 安全抵押:提交被审查的条件式交易到链上的一个安全抵押智能合约中,从该合约中直接接收资金。
发展路线图
· 阶段1将在2020年11月发布于以太坊主网 (即StarkEx 2.0),阶段2将于2021年第一季度发布 (即StarkEx 3.0)。已经有一批LP排着队等待提供服务了。
· 阶段3将紧随其后。我们预测不同的L2解决方案上的应用之间也会有进行互操作的需求,并且渴望与其他L2解决方案讨论互操作性的实现。