LibraBridge: 連接 Libra 與 Ethereum

  1. Bringing Bitcoin to Ethereum
  2. peaceBridge: Connecting Ethereum Classic and Ethereum

問題描述

在上篇介紹 LibraSwap 的文章中,我們實現了 Libra 與 ETH 間的代幣互換,但在僅有一條鏈支持智能合約的情況下,我們無法直接執行原子代幣交換 (Atomic Swap),而必須透過可信任的第三方來確保交易執行,這離去中心化還有點距離。但實際上,透過協定的設計,我們是能夠實現無需信任的託管服務。

如果問題變成,同樣要做幣幣交換,是否可在不完全信任 MAX 交易所的情況下來實現呢?


方法

情況 1

正常的情況下,首先 MAX 會在 LibraContract 中放入保證金,作為履約保證,而合約內的保證金僅能在一定時間後才能由 MAX 取回,其他時間保證金則由非受第三方控制的合約鎖定與保管。而當用戶想與 MAX 進行幣幣交換時,會先查詢合約上是否有足夠的保證金,如果有的話,則將手上的 Libra 資產傳送到 MAX 的 Libra 地址,而當 MAX 確認後,則會在以太鏈上傳送等值的 ETH 給用戶,以完成本次交易。

情況 2

同樣的,MAX 會抵押保證金,以取得用戶的信任,相信可與之幣幣交換。但若 MAX 收到 Libra 後卻沒轉送 ETH 給用戶,即違約,由於合約內含一個違約挑戰的功能,若用戶可以出示在 Libra 上的轉帳證明,則可遞交證明作為憑據。而鏈外轉帳的證明可由 Libra SPV 來進行交易驗證,當能夠證明某筆交易已經被核定,而這正是 SPV 的既有功能。另一方面,MAX 作為違約的一方,將由公正第三方的合約,削減合約上的押金作為給用戶的歸還,甚至再由保證金多付出該筆交易 x% 的罰金來補償用戶。

其他討論

這是個橋接 Libra 與 Ethereum 的 PoC,一些細節上我們並沒有優化,加上 Libra 在我們過去一個多月的開發中就改版了幾次。但我們相信,若 Move 合約語言成熟,而 Libra 上也可以部署合約交易,我們預期會看到更多的合約應用。以下列出一些未來可以優化的細項:

討論

SPV 驗證與協定設計讓我們能夠實現無需信任的託管服務,並無需仰賴區塊鏈都支持智能合約。此外,一個可受信任的託管服務,相較於點對點的直接交易,資金池在流通性上來的更有優勢,但相對也有一些挑戰需要克服。這個專案只是個 prototype,畢竟未來若 Libra 真的成為全球貨幣,讓 Libra 在不同鏈之間進行流通將有助於市場流動,加上 Ethereum 目前在 DeFi 應用的發展,這將會是相當大的優勢。

感謝 AMISChang-Wu Chen提供本文。

原文連結