来源 | StarkWare
虽然以太坊仍然是 DeFi 的“资本”区块链,具有高牵引力和安全性并连接至多个链,但以太坊越来越拥挤,交易成本高昂且不稳定。这促使用户使用其他平台如侧链 (Polygon、BSC、Solana) 和 L2s (Optimistic Rollups 或者 ZK-Rollups)。这些平台在成本、安全性、性能和 Apps 方面各不相同 —— 加剧了流动性的碎片化。
因此,越来越多的用户需要在多个平台之间转移资金。
侧链之间的去信任桥接解决方案上线了 (例如 Hop 或者 MovR)。然而,L2s 和侧链之间的去信任互操作性仍不能得到解决方案。
从设计上讲,与 Optimistic Rollups 的互操作性是有问题的,因为最终确定时间长意味着运营桥接需要很高的资本要求,这导致了资金转移的成本很高。
ZK-Rollups 呢?跨 L1 和 ZK-Rollup 的去信任存款和提款已经可用 (如 dYdX、DeversiFi、Loopring)。并且,zk-rollup 通过条件式转移 (Conditional Transfers) 使最终确定时间较短。
但是,zk-Rollups 目前与侧链互操作性不兼容。原因出自技术方面:目前部署在 L1 上的 zk-Rollups 证明了特定计算语句的有效性 (即使其背后的工具如 Cairo 语言是图灵完备的)。这使得它们与 Rollup 中需要“互操作性智能合约”的方案不兼容。
而我们去中心化的、无需许可的 zk-Rollup 解决方案 StarkNet 将解决这一问题。但是现在可以借助我们去信任的可扩展引擎 StarkEx 做些什么呢?下面我们将演示 StarkEx 如何支持侧链的互操作性。
StarkEx 于 2020 年 6 月上线主网,促成了数百万笔总计价值为数十亿美元的交易。我们将展示 StarkEx 系统和方案,以阐述其如何支持低成本且快速地将资产转入且转出侧链 —— 这将为在 zk-Rollups 和侧链上运行的 dApps 之间更好的互操作性铺平道路。但我们先考虑一下,一个良好的互操作性系统由什么定义。
侧链和 L2 之间的一个好的互操作性解决方案应需要最小化的信任,并提供简化的用户体验。
更精确地说:
到目前为止,用户如果想要在侧链和 L2 之间转移资金,就必须要在两个幼稚的选项中做出选择:去信任但成本高且速度慢的方案 (图一);成本低、速度快,但需要信任的方案 (图二)。
图一:经由 L2 实现侧链和 L2 之间的资产转移
图二:经由 App 实现侧链和 L2 之间的资产转移
图三展示了我们提议的解决方案,即 StarkEx 为 L2 和侧链之间提供互操作性,同时满足上述提到的三个品质。请注意,这个方案 (使用 StarkEx 作为管道) 同样适用于侧链之间的互操作性。
图三:由 StarkEx 支持、以太坊提供安全保障的侧链桥接
以免一些用户不熟悉 StarkEx,下文简单介绍了其基本概念。读者可以在此处找到 StarkEx 的完整文档。但是要想读懂本文提议的桥接方案,了解下文的背景已经足够了:
由于 StarkEx 依赖于 STARK 证明,因此如果没有证明能够证实某状态确实有效,那么 L1 上就不会发生状态更新。这意味着只能根据以 Cairo 语言实现的逻辑在 StarEx 内部进行资产转移,该逻辑强制执行以下操作:
这样做的结果是,运营者 (比如交易所) 无法盗取用户的资产。强制交易、应急舱口和专用升级机制完善了去信任这一版图,使 StarkEx 变得完全非托管。
一旦某笔交易进入 StarkEx 的交易队列,运营者可以认为该笔交易已成功结算。这意味着用户可以立即提交后续交易;无需等待交易在链上完成结算。
在 StarkEx 的 zk-Rollup 模式下,即使是复杂的永续交易的交易成本也低至 1100 gas,这比 L1 上便宜 200 倍。Validium 模式下的交易成本更加低。此外,StarkEx 资本效率高,一旦包含其执行的证明在链上发布,就会立即敲定交易 —— 这通常发生在交易后的几个小时。
图四:StarkEx-侧链的互操作性 —— 提款
第一步:用户向 App 发送链下请求,指定他们想要提出的资产数量和类型。该 App 验证用户在其 StarkEx Vault 中是否有足够的资金。
第二步:App 在侧链中的互操作性合约中锁定指定的资产数量和类型。然后 App 将这些资金与 StarkEx (未签名的) 资金转移请求相匹配。该请求命令 StarkEx 将相关资产从用户的 Vault 中转移到 App 的 Vault 中。
第三步:用户对步骤二中的转移请求进行签名,以激活侧链上的互操作性合约。然后该交易就会立即解锁用户的资金,以在侧链上使用。
回退流程:如果用户未能在有限的时间范围内签名,则 App 将从互操作性合约中收回资金。
第四步:该 App 现在可以在 StarkEx 上执行转账请求并在那里接收用户的资金。
图五:StarkEx-侧链的互操作性 —— 存款
第一步:用户将其资金锁定在互操作性合约的侧链账户中。这些资金与 StarkEx 上的特定转账请求参数相耦合,这些参数会将资金转移到用户的 Vault 中。
第二步:运营者在 StarkEx 中执行步骤一的转账请求,将资金发送至用户的 StarkEx Vault 中。用户便可以立即开始交易这些资金。
第三步:1) 步骤二中的转账与其他交易一起被批量处理;2) StarkEx 向 L1 证明这些交易已发生;3) 并相应地更新链上状态。
第四步:以太坊上的专用合约将新的 L1 状态发送到侧链的互操作性合约中。该状态 (即 StarkEx 上所有交易的默克尔根) 确认用户已按要求收到 StarkEx 上的资金。
第五步:该 App 打开默克尔树承诺,以向侧链证明用户确实在步骤二中的 StarkEx 上收到了资金,解锁了 App 的互操作性合约中的资金。
回退流程:如果 App 未能在有限的时间内完成步骤五,用户可以从互操作性合约中取回侧链上的资金。
此外,该 App 在几个小时之后就可以在侧链上获取资金。
StarkEx 的用户很快就能使用上面介绍的去信任的互操作方案。
至于无需许可的去中心化 zk-Rollup 方案 StarkNet 的进展:StarkNet Planets Alpha 1 已经上线 Ropsten 测试网 —— 我们计划支持与其他生态系统 (如侧链) 的互操作性。由于 StarkNet 证明了任何任意逻辑,它可以支持与此处描述类似的机制,或者部署现有的互操作性解决方案。
无论如何,StarkNet 促进了高程度的互操作性,并将成为众多寻求扩展到以太坊之外的 DeFi Apps 的互操作性的中心。
本文首发于:https://news.ethereum.cn/Layer2/a-trustless-sidechain-to-starkex-bridge
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!