Rollup Bridge 介紹(一):Maker DAI Bridge

Maker 的 Optimism DAI Bridge 是一個 Optimistic Rollup 上的快速資產提領協議

NIC Lin
imToken
10 min readAug 9, 2021

--

Photo by Wilbur Wong on Unsplash

在介紹 Maker Bridge 之前,你要先對 Rollup 有一些了解,本文不會對 Rollup 做太多介紹。

在 Optimistic Rollup(Rollup 的其中一種)設計中,都先假設交易是正確的,如果發現有錯再透過 fraud proof 來挑戰錯誤的交易,但也因為要讓 fraud proof 有時間可以送達,所以會有一段稱為挑戰期的延遲時間。一筆交易要等到挑戰期過後都沒有被挑戰,鏈上合約才會接受它是正確的。
但這個挑戰期也因此成為 Optimistic Rollup 一個影響使用者體驗的缺點,所以有人提出了快速資產提領協議來解決這個使用體驗的痛點。

在進入正題之前,先對標題做一些解釋。首先,要能達到『快速』資產提領,並不是因為這些 Rollup 真的支援快速提領資產,而是需要一個中介商、一個流動性提供者來先墊付資產。
其次,標題是 Rollup Bridge 的介紹,但 Rollup Bridge 可以用來指該 Rollup 本身提供的 L1 <-> L2 Bridge,也可以用來指其他建構在 L1 <-> L2 Bridge 之上的 Bridge。本文介紹的是後者:搭建在 Optimism L1 <-> L2 Bridge 之上的 Maker DAI Bridge,用來讓使用者快速提領資產回 L1。

  • 快速資產提領是我從 fast withdrawal 翻過來的,可能有其他更好的翻譯
  • 以下所稱的 L2 皆指 Rollup 而非 Plasma 或 Sidechain
  • 以下所指 Rollup 為 Optimistic Rollup,因為 Optimistic Rollup 才有挑戰期的問題
  • 以下所稱『資產』和『代幣』兩個詞指的是一樣的東西
  • 以下所稱『七天』和『Rollup 挑戰期』兩個詞指的是一樣的東西
  • 以下 『Rollup Bridge』 指的是 Rollup 本身提供的 L1 <-> L2 Bridge,『Maker DAI Bridge』 指的是搭建在 Rollup Bridge 之上的 Bridge

Rollup Bridge

Rollup 的安全性是錨定在它所在的 L1 上的(例如 Optimism 錨定在 Ethereum 上):你要針對 L2 的交易進行審查攻擊,等同於對 L1 交易進行審查攻擊;你要 re-org L2 ,進行雙花攻擊,等同於你要 re-org L1。

Rollup Bridge 是 L1 和 L2 互動的管道,你要從 L1 送訊息到 L2 合約或是你要 deposit ETH 到 L2,都是透過 Rollup Bridge 來幫忙把訊息 relay 過去;反之亦然,你要從 L2 送訊息到 L1 合約或是你要 withdraw ETH 回 L1,也是透過 Rollup Bridge。Rollup Bridge 的安全性和 L2 交易的安全性是一樣的,不會因為它多跨到了 L1 所以更不安全。

所以 Rollup Bridge 代表的是什麼意思?Rollup Bridge 提供了一個安全、去中心化的方式讓 L1 和 L2 能夠進行互動、讓 L1、L2 的資產能夠互相轉移。
註:Rollup Bridge 不是自然而然就會出現的東西,它不會因為你今天做了一個 Rollup,就自動生出 Rollup Bridge 的功能,而是要搭配你的 Rollup 協議來打造你的 Rollup Bridge。

如果你透過跨鏈橋用 MPC 的方式來執行跨鏈交易,你會需要相信參與 MPC 的節點。但在 Rollup Bridge 裡沒有這樣的角色,透過 Rollup Bridge 送訊息就跟送 Rollup 交易一樣,其安全性和抗審查性是受 Rollup 本身所保障,所以才會說 Rollup Bridge 是去中心化的方式。

Fast withdrawal(快速提領資產回到 L1)

一開始有說到,『快速』並非真的是 Rollup 支援快速轉移資產,而是有一個流動性提供者來先墊付這筆資產。

Rollup 的挑戰期是為了確保交易的安全性,所以任何人要從 L2 withdraw 資產回 L1 都不可避免地要等待挑戰期。不過如果今天你相信一筆 withdraw 交易是正確可信的,並且你也相信 re-org 很難會發生,所以你願意冒這個險的話,你就可以提議在 L1 先代墊這筆 withdraw 交易,並從中間抽點手續費。反之,如果對方希望一個小時後(而非七天後)就能在 L1 拿到錢,且願意被抽點手續費的話,那就成交,兩邊都開心。

運作流程

對方先在 L2 透過一個 fast withdrawal 合約來申請 fast withdrawal,fast withdrawal 合約背後走的一樣是正常的 withdraw,要等七天。這時候你看到了這筆 fast withdrawal 交易,且確認這筆交易是可信、很難會 re-org 後,你就到 L1 的 fast withdrawal 合約申請墊付,墊付的對象會是該筆 L2 fast withdrawal 交易的 ID。
註:這時候 L1 的 fast withdrawal 合約還不知道有這筆 L2 fast withdrawal 交易的存在。

等到七天挑戰期過了,這個 L2 fast withdrawal 交易會被 relay 到 L1 fast withdrawal 合約。如果你之前有先墊付這筆交易,合約裡會有紀錄,那合約就會直接把這筆交易所提領的資產轉給你。如果沒有人來墊付,那合約就會照正常流程,把提領的資產轉給當初的提領者。
註:你墊付的金額會是對方提領的金額扣掉給你的手續費。
註:如果沒有 Rollup Bridge,就沒辦法安全可信地把 fast withdrawal 訊息 relay 到 L1 上,就不會有人敢先做墊付的動作,因此 Rollup Bridge 是 fast withdrawal 的必要條件之一。(當然 Rollup 團隊是一定會做出 Rollup Bridge 的功能的,否則沒有人會想要用這個 Rollup)

Maker DAI Bridge

Maker DAI Bridge 大致是就是上面描述的 fast withdrawal,只是裡面的流動性提供者不是別人,而是 Maker 的財庫。

如同你放入抵押品(例如 ETH),DAI 財庫就會鑄造出 DAI 給你。Maker DAI Bridge 也是相似的概念,你放入提領 DAI 的憑證(這個憑證要等到挑戰期過後才能提領 DAI),DAI 財庫鑄造出 DAI 給你。等到挑戰期過了,你就可以償還借款、拿出抵押的憑證並用憑證去領出 DAI。

這個鑄幣的功能將會讓 Maker DAI Bridge 在 fast withdrawal 服務的競爭裡佔盡極大優勢,因為它不像其他流動性提供者一樣要承擔資本利用率、資產曝險的風險,而且理論上它的流動性可以到無限大。再來,因為抵押和借出的資產都是 DAI,也不需要考慮被清算的可能。最後,除非 Rollup 被攻擊破壞,否則這些借款都會保證如期還款。

缺點

但 Maker DAI Bridge 也不是沒有缺點,這個缺點是:它的安全性要多仰賴一個對象 — 它的 Oracle 服務。
註:Maker 協議本身有一群中心化的 Oracle 負責將代幣在現實世界中的價格送到鏈上。Maker 協議仰賴這些 Oracle 的報價來決定哪些貸款已經進入可清算的狀態。

因為 DAI 財庫自己沒辦法判斷 L2 上的提領是否是有效的,所以需要一個第三方在鏈下模擬交易執行,確認提領的有效性。就像 Optimisitic Rollup 節點不需要等 Operator 上傳最新的 state,自己模擬交易執行都能得到正確的 state。

所以 Maker Bridge 會直接沿用原本已經建立好、經過實戰測試的 Oracle 服務來擔任這個第三方。

運作流程

首先是使用者 deposit DAI 到 L1 Maker Bridge, L2 Maker Bridge 會鑄出 oDAI 給使用者去用。
當使用者要提領回到 L1 時,向 L2 Maker Bridge 申請提領、銷毀 oDAI。等待一段時間,這筆 L2 提領交易被放進 L1 的 Rollup 合約的交易日誌後,Oracle 就可以執行並判斷這筆 L2 提領交易的有效性。如果有效,Oracle 會到 L1 Maker Bridge 上批准,L1 Maker Bridge 會鑄造出 fDAI 給使用者,這個 fDAI 是一個領取憑證,等到 L2 提領交易的挑戰期結束後,可以拿這個領取憑證去取出 DAI。使用者接著拿 fDAI 到 DAI 財庫去抵押換出 DAI 來使用。
最後,當 L2 提領交易的挑戰期結束後,使用者(或其他人)就可以償還借款、取出 fDAI 並用 fDAI 去提領 DAI。
註:fDAI 會是以 NFT 的形式存在,因為每一筆提領的解鎖時間都不同,所以會是 Non Fungible。

為什麼還需要多一層 fDAI?
假設沒有 fDAI,Oracle 批准後 L1 Maker Bridge 就直接解鎖 DAI 給使用者。則當 Oracle 作惡時,會導致 L1 Maker Bridge 的 DAI 被解鎖拿走,這時候 Maker Bridge 上的 L1 DAI 會比 L2 oDAI 還少,這會導致 L2 有部分的人的 oDAI 會提領不出來。所以 Maker Bridge 改成用 fDAI 抵押借款的方式,把風險轉嫁到 DAI 財庫,也就是 Maker 代幣的持有者:當 Oracle 作惡時,結果會是 DAI 財庫新增一筆呆帳,但 Maker Bridge 上的 L1 DAI 和 L2 oDAI 還是維持 1:1 的映射。
註:這邊會需要設計讓使用者有去做償還貸款,取回 fDAI 並拿 fDAI 去領回當初提領的 DAI 的動機,否則抵押 fDAI 能借出 100% 提領的 DAI 的金額,那使用者就沒有動機去完成提領的動作,Maker protocol 就只能自己負擔這個成本。fDAI 抵押只能借出 X%(X < 100) 或是使用者提領時能退回部分手續費都是可能的機制,細節要等到 Maker Bridge 實作完才能知道。

附註

  • 目前 Maker 只支援 Optimistic Rollup(更準確地來說是只有 Optimism), 因為當前的 ZK Rollup 大多數都還未支援 L1 <-> L2 的互動(如前述,這是必要功能)。而且 ZK Rollup 的挑戰期比 Optimisitc Rollup 的挑戰期要短得多,快速資產提領不會是 ZK Rollup 使用者急需的功能。
  • 目前 Maker Optimism DAI Bridge 仍在實作中
  • 一樣的設計可以用於其他 Optimistic Rollup,例如 Arbitrum。只需要針對 Arbitrum 的 Rollup Bridge 來做相對應的修改。

--

--