# 以便宜和快速著称的Orbiter，其跨rollup机制的安全性如何

By [MrJoker](https://paragraph.com/@mrjoker) · 2022-02-24

---

**作为桥协议，除了便宜和快速之外，安全性是最重要的。我们通过本文详解Orbiter的具体机制，如何确保跨rollup对sender和maker都足够安全**

**首先，Orbiter Finance要解决的是跨rollup问题而不是跨链问题。Vitalik已经在这篇文章中详述过**

[**_Why not cross-chain? And why cross-rollup apps within one zone of sovereignty is fine?_**](https://old.reddit.com/r/ethereum/comments/rwojtk/ama_we_are_the_efs_research_team_pt_7_07_january/hrngyk8/)

**跨链项目的主要目标是确保两个独特链之间的交易安全，避免51%攻击。但跨rollup项目使用相同的以太坊数据层，每个rollup都可以防止51%攻击。基于此，Orbiter提出了一个可以继承以太坊L2安全性的cross-rollup机制。**

Orbiter Finance的具体机制
====================

**Orbiter被设计成一个optimistic 跨rollup桥，用以在以太坊原生资产和L2之间来转移资产。**

系统有两个角色。Sender和Maker。在为Sender提供cross-rollup之前，Maker需要在Orbiter的合约中存入多余的保证金。在正确的执行过程中，sender将资产发送至resource网络上的maker，而maker将资产发送回目标网络上的sender。 这里有几个关键问题。

*   Maker如何正确、自动地将资产送回给Sender？
    
*   如何确保当Maker没有在目标网络上发回代币时，Sender可以拿回代币？
    
*   如何确保Orbiter的合约能够安全地保持Maker的保证金？ 让我们通过以下流程图来看看Orbiter的具体机制。 Let’s see Orbiter’s specific mechanism with the following flow chart. 我们通过下图看看Orbiter的具体机制
    

![](https://storage.googleapis.com/papyrus_images/7b45e05f0a6e067f2dcbebd9ed4088e6fa76e300454c34b0c73690a5cc252a10.png)

**正确过程**

Orbiter以一种optimistic方式支持高频的跨rollup交易，足够便宜和快速，以适应长期的跨rollup使用案例。如果你已经测试了Orbiter App，并在区块探索器上查看了交易日志，你会发现你已经把它发送到了一个Maker的EOA地址，而不是合约的地址。这就是Orbiter和其他桥协议的显著区别。

Maker可以开发和运行一个客户端来自动提供服务，或者使用Orbiter团队的开源客户端。

[https://github.com/OrbiterCross/OrbitalModule/tree/main/](https://github.com/OrbiterCross/OrbitalModule/tree/main/).

Sender在源网络上将资发送给maker之后，为了把资产在目标网络上发还给sender，maker需要知道token的类型、发还的数量，以及是在哪个目标网络上。maker如何得到这三个参数？

*   Token种类和发还数量。Maker在Orbiter的MDC合约中存款时，需要设置预扣费（一个固定的费用），交易费（0.04%~0.3%），以及支持的token种类。这些设定的参数将被保存在Orbiter的EBC合约中，并与Maker的客户端同步更新。Maker知道回送代币的类型，并在收到sender的资金后以这种方式计算回送金额。
    
*   目标网络。Orbiter使用 "安全代码 "来记录目标网络。安全代码和目标网络之间的对应关系也保存在MDC合约中。Sender需要在转账金额的小数点末尾添加安全代码。然后，maker将知道目标网络是哪个。
    

![](https://storage.googleapis.com/papyrus_images/f286e40cd9d260dbe106e6fc4794601868ee01329d348bcff464bc09a0faedf9.png)

Maker被激励着即时和正确地发送回给sender。

首先，首先，在Orbiter的机制中，Maker可以从每项服务中获得可观的收入（没有无常损失风险）。其次，如果Maker没有及时向Sender发送正确的信息，Orbiter的MDC合约将会进行发送回去，并以Maker的保证金补偿Sender。

不正确的过程序和Orbiter合约系统

\*\* \*\*

Orbiter的合约系统会处理低频不正确跨rollup交易。Orbiter的系统中有三种智能合约。

*   MDC合约（Maker的存款合约）。MDC合约拥有两种功能—保存Maker的保证金和sender的发回和补偿。
    
*   EBC 合约（时间约束合约）。EBC合约用于证明源Tx和目标Tx的有效性。EBC还保留了Orbiter的规则：① Maker在不同的rollup上存入保证金的规则。源Tx和目标Tx之间的对应规则。
    
*   SPV合约。SPV用于证明源网络上的源Tx的存在
    

我们需要一个MDC和一个EBC。他们可以支持所有Orbiter上的域名。但我们需要为每一个链接到Orbiter的域名构建一个SPV合约。MDC, EBC和 SPV将会被部署到相同的域名。这个域名可以在L1也可以是任何L2。

MDC、EBC和SPV如何合作，为sender解决争议？一旦Maker没有正确地将资产发送回给Sender，以下步骤将依次发生，以帮助Sender获得代币

![](https://storage.googleapis.com/papyrus_images/6701b5cf4050b02a4025ca8833a9ffdf0e255affc83f3fafde2b619a7644a471.png)

1.  sender需要向SPV提供相关的源Tx。
    
2.  sender通过Orbiter的MDC合约发起仲裁
    
3.  MDC 从 SPV 处获得源 Tx 的存在证明，并知道源 Tx 已在源网络上发生。
    
4.  MDC 从 SPV 处获得源 Tx 的存在证明，并知道源 Tx 已经在源网络上发生。MDC 从 EBC 获得源 Tx 的有效性证明。MDC 将知道，根据 Orbiter 的规则，源 Tx 是合法的；源 Tx 是由sender发送至 Orbiter 的一个具有合法安全代码的maker。
    
5.  然后，MDC 将此仲裁设为待决案件，等待 Maker 提供 Target Tx，时间为 0.5~3 小时（此功能可在 Maker 的客户端汇总，所以 Maker 不会错过）。如果Maker能提供正确的Target Tx，MDC将从EBC获得有效性证明，并知道Target Tx与Source Tx匹配。MDC 将关闭该仲裁，并向发送方显示目标 Tx。但是，如果Maker在0.5-3小时后不能提供相关的Target Tx，Sender可以申请提款，然后进入下一步骤。
    
6.  MDC开始赔偿sender
    
7.  MDC在部署了MDC的域名上向sender发回token和赔偿（约15美元）。发回的token和赔偿来自maker的保证金。
    
    **极端案例中的安全解决方案**
    
    Orbiter的机制中是否有任何风险？我们需要解决在任何极端情况下sender和maker的所有潜在风险。
    
    消除sender的双花风险
    
    由于maker的保证金是用来保证回送的，当许多sender同时向一个做市商发送时，就会出现问题。因为maker的保证金少于收到的资金总额，maker可以通过不向这些sender发送回款来赚取更多的钱。这将导致sender的双花问题。
    
    Orbiter使用超额保证金机制来解决双花问题。maker应根据Orbiter的MDC合约规则，在其他域名存入不同数额的超额保证金。保证金的最低数额与源网络是否有EVM有关。
    
    *   有EVM。Orbiter的MDC合约可以将一个区块划分为5~10个槽；Maker需要存入至少5~10\*极限保证金来支持这个网络。这个 "限额 "是指每次交叉滚动转移的最大金额。
        
    *   无EVM。为了支持没有EVM的域，如dYdX，Loopring和Immutable X，Maker需要在MDC合约中存入更多保证金。保证金数额与域名的区块大小有关；可能是100~200 \* 限制。
        
    
    Maker的流动性资金安全 所有Maker的保证金将被保存在Orbiter的MDC合约中。如前所述，Orbiter是一个跨rollup协议，只支持以太坊原生资产；Orbiter将不会面临51%的攻击风险或其他由跨链动机引起的风险。但是Orbiter的合约在开放给第三方做市商之前仍然需要进行审核。
    
    时间线
    

![](https://storage.googleapis.com/papyrus_images/75002a69fe29cfab8e1dc577ea5127cda578b412e267aeb24806586980ee00cc.png)

\*\* \*\*

---

*Originally published on [MrJoker](https://paragraph.com/@mrjoker/orbiter-rollup)*
