观点

Loopring:兼容 Layer-2 与链上可组合性

Ajian   |     |   798 次阅读

如何兼容 Layer-2 方案和链上可组合性,给我们提出了一些挑战。

链下操作确实对于可扩展性很有用,但是我们如何将链上交互与链下逻辑联系起来呢?我们希望我们的 ZK Rollup 交易所能成为以太坊生态系统中可组合的一部分。我们期待其他 dApp/协议 集成我们所提供的功能,而我们的用户也能够使用其他 dApp/协议 的相关功能。下文是我们解决问题的方案。

在面临下面两种情况时,用户会发现他们需要兼容的 Layer-2 方案和链上可组合性:

  1. 用户将资产保存在以太坊钱包或链上其他地方,并希望与路印协议构建的交易所进行交互。
  2. 用户将资产保存在路印协议构建的交易所中,并希望在其他地方使用链上功能。

我们的目标之一是以最小的摩擦来弥合链上世界与链下世界的间隙,以实现最佳的用户体验。

我们最近开始着手讨论并致力于集成几种链上协议和 dapp。如何使现有的 DeFi 元件(或者说货币积木)能够与使用零知识证明(ZKP)来扩展的交易协议相结合,还是一个比较新的问题,反过来说(ZKP 交易所如何与 DeFi 结合)也是如此。

虽说我们将开发出针对上述两种情形的简单方案,但是,在这些方案的有趣应用场景中,用户都不会意识到,也无需了解背后的原理。促进层与层之间的可组合性的责任将落到协议和产品上,最终目标是吸引更多的用户,并让这些用户可以获取更多的功能和流动性。有关示例,请参见下文第四部分。

如果您不了解路印协议 3.0 或 ZK Rollup,请阅读文章:https://blogs.loopring.org/loopring-3-0-zkps/。在基于路印协议的交易所上进行交易需要将资产充值到该交易所的智能合约,该交易所将在其链下默克尔树(Merkle tree)中为该用户创建一个账户。

1. 链上 ⟷ 链下

这里最明显的解决方案是遵循在路印协议所构建的交易所中进行交易的标准步骤:

  • 从链上钱包充值资产到交易所
  • 创建一个订单,然后等待运营商将其与另一个订单进行匹配,并添加到区块中
  • 从交易所提取资产到链上钱包

如果用户并不排斥这种传统的交易体验,那么这样的方案就足够了。但是,如果做这么复杂的操作只是为了做一次简单的代币互换,那么交换速度就很慢了,用户体验也很差。

幸运的是,我们可以通过中间人(mediator)来解决这个问题。中间人将通过在链上和链下扮演相反的角色来促进交互。例如,如果链上用户小红希望出售 1 eth 来换取链下用户小明的 100 LRC,那么:

  • 中间人收到小红链上钱包的 1 eth,并立即从其链上钱包发送 100 LRC 给小红。
  • 中间人创建一个 1 eth = 100 LRC 的订单,因此它可以匹配小明的订单。然后,中间人用其链下钱包支付 1 eth,并在其链下钱包中获得100个LRC。

对于中间人而言,这是一个零和游戏(不考虑交易费的话),他的资产在链上钱包和链下钱包之间进行转移:

  • 中间人链上收到1 eth,并在链下花费 1 eth。
  • 中间人链下收到100 LRC,并在链上花费 100 LRC。

理论上,交易所上的所有用户都可以通过这种方式来交互。但是,由运营商(relayer)来执行这个操作会有很多好处

  • 运营商可以确保交易按预期进行,因为他自己就是所创建交易的区块打包者。别的类型的用户可能会承担无法及时匹配,甚至根本无法匹配订单的风险。
  • 运营商可以直接从增加的交易中受益,因为他可以从交易中收取交易费用。
  • 运营商可以提供类似的功能,带来极好的用户体验。

2. 链下 ⟷ 链上

如上所述,显而易见的解决方案是再次遵循标准步骤,但现在的顺序有所变化:

  • 从交易所提现到链上钱包
  • 与链上 dApp 进行交互
  • 充值回交易所(如果适用的话)

同样,运营商最适合扮演中间人的角色。如果用户想通过从其链下钱包发送 1 eth 与 dApp 进行交互,则运营商将提前使用运营商链上钱包的 1 eth,并在链上存储此证明(以确保该过程可以无需信任地发生)。然后,运营商可以使用此证明,将1 eth 从用户的链下钱包转移到运营商的链下钱包(这称为有条件转账,我们将在协议的更高版本中实现)。对运营商而言,这也是一个零和游戏。

3. 结论

依靠运营商,我们不需要用户信任特定主体就可以缩小链上世界和链下世界之间的距离,可以实现任何类型的交互。该解决方案的唯一缺点是,运营商必须在其链上钱包中存储足够资产,以便可以在链上进行管理。这种办法在资本利用上是没有效率的,除非因这些服务所增加的交易量收益高过这些资金的机会成本。此外,资产可以相当快速地(5 至 10 分钟)在运营商的链上和链下钱包之间转移,所以运营商可以用相对较低的资本存量来支持高流量的交易活动。

请注意,此类解决方案早已由 GnosisStarkware 提出过,这里只是举几个例子说明。

但此类兼容方案的设计可能性会受到其所适配的 Layer-2 方案的严格限制。考虑到这一点,ZK rollup实际上是最好的第2层解决方案,因为敲定交易所需的时间很短(一旦在链上提交了证明,我们就可以保证链下的工作已经正确完成了)。例如,在 Optimistic Rollup 方案中,敲定交易所需的时间要长得多,这就大幅提高了运营此类服务所需准备的资本。

因为 ZKP 证明状态转换有效的时间更短,所以在效率上会有提升,但出于实际原因,与间接状态更新相关的主要问题仍然存在。这个问题的另一种解决方案是所有应用都建立在单个 Layer-2 解决方案上。随着递归式 SNARK 的发展进步,这应该是可能的。如果dApp,协议和货币积木都进入了 Layer-2 世界,但却相互隔离在孤岛上,交互就不能变得更容易,反而会变得更难。

4. 示例

除了普通用户以外,还可以在路印协议生态中找到其他例子,例如 DEX 聚合器和 保证金/借贷协议。这些例子的处理都可以划分为两种情况:试图从 Loopring 交易所中吸收流动性,或为 Loopring 交易所提供流动性。

DEX聚合器在过去的 6 个月里很受欢迎,比如 1inch、DEX.AG、Paraswap 和 Totle 这样的去中心化应用程序,他们通过聚合流动性给交易者提供最优惠的价格。目前,他们聚合了链上应用的流动性(Uniswap,Kyber),也希望能够从 Layer-2(如路印协议构建的 DEX)获得流动性。[尤其是因为,Layer-2 的性能可以帮助减小价差,以获得最优的价格]。路印协议构建的 DEX 也希望聚集链上应用的流动性,以增强其订单簿的流动性。

保证金/借贷协议是开放式金融的重要组成部分,放贷者可获取利息,而借贷者可获得现金(尤其是保证金交易)。与使用 DEX 聚合器的情况类似,协议(例如 bZx)希望用户在开仓时,从路印协议流动性中找到相匹配的订单。同样地,路印协议也希望其用户可以无需信任地访问其中一些协议。对于后者,一个很好的解决方案是,协议的输出是 token 本身,例如 “position token”(仓位 token),由于它只是 ERC20 token,因此可以在路印协议构建的交易所中流通。

另外,我们还可以特定为路印协议构建的交易所的用户批量实现可组合性。例如,用户锁仓在交易协议中的资产可以寻找 DeFi 获利机会;可以设置 DAO 来管理存储的资产,并投票决定将这些资产部署在借贷协议中,或者用于其他网络的质押等。确实,我们会实现路印协议 DAO,除了 DeFi 决策外,还将管理某些协议参数。

非常感谢我们的首席架构师 Brecht 撰写了本文的大部分内容。

(完)


原文链接: https://medium.com/loopring-protocol/composability-between-ethereum-layer-1-and-2-10650b7411e5
作者: Matthew Finestone

本译本来自公众号 路印 Loorping,EthFans 经授权转载。再出版过程中为便于阅读,修改了部分文句。


你可能还会喜欢:

再议有效性证明 vs. 错误性证明

何谓“零知识”,何谓“证明”?

Argent:为密码学资产安全性开创新时代

 
0 人喜欢