簡析跨鏈原子交易

目前的公鏈系統基本上都是自成一體的封閉世界,若要完成兩個公鏈之間的交互行爲,必須要引入第三方系統(鏈橋)進行協調。

鏈橋如果是一箇中性化的系統(比如交易所),則會嚴重降低去中心化應用的質感。而去中心化的鏈橋系統則是區塊鏈領域的一個重要研究領域。

能否在沒有鏈橋的情況下,實現不同數字貨幣的跨鏈原子交易呢?針對這個問題,有人設計出了一個巧妙的「跨鏈原子交易流程」

實現了在沒有鏈橋的情況下,完全利用雙方手中的錢包 APP 和區塊鏈網絡實現安全的跨鏈貨幣兌換功能。不過從邏輯上來看,也可以認爲交易雙方和輔助工具 APP 構成了一個臨時的鏈橋。

原子交易

交易要麼完全成功,要麼失敗。但是失敗後,不會導致交易雙方出現意外財產損失,因爲交易雙方沒有任何信任關係,也不處於同一地理位置,雙方都可能出現操作意外中止或實施欺詐。

這裏給出一個具體的 Bitcoin 與 Altcoin 進行進行跨鏈兌換的示例:Alice 用自己的 1 個 BTC 兌換 Bob 的 5 個 ALTC

爲了確保交易的原子性,雙方按如下流程進行協作:

簡析跨鏈原子交易

(圖片來自 Vitalik Buterin 的 Chain Interoperability)

1

Alice 生成一個隨機數密碼 Secret (只有 Alice 本人知道這個密碼),並計算 H=Hash (Secret),然後將哈希值 H 發送給 Bob,但 Bob 無法推知 H 對應的原像 Secret;

2

Alice 創建 TxA 交易,但是不廣播,其輸入爲自己的 1 個 BTC,其輸出爲 1 個 BTC 對應的 UTXO,並設定兩個花費規則

1)若 Alice 和 Bob 共同簽名,則可花掉 TxA.UTXO;

2)若 Bob 知道哈希值 H 對應的原像 Secret,則可花掉這 TxA.UTXO;

3

Alice 和 Bob 共同簽名帶有時間鎖參數 Ta (比如 72 小時)的贖回交易 TxAR,其輸入爲 TxA.UTXO,輸出地址屬於 Alice 所有,因此 Alice 可以在 TxA 被廣播上鍊 Ta 時間後,贖回自己的 1 個 BTC,以防 Bob 不配合完成整個兌換流程 ;

4

Bob 創建 TxB 交易,但是不廣播,其輸入爲自己的 5 個 ALTC,其輸出是 5 個 ALTC 對應的 UTXO,並設定兩個花費規則

1)若 Alice 和 Bob 共同簽名,則可花掉 TxB.UTXO;

2)若 ALice 知道哈希值 H 對應的原像 Secret,則可花掉 TxB.UTXO;

5

Alice 和 Bob 共同簽名帶有時間鎖參數 Tb (Tb 應該明顯小於 Ta ,比如 48 小時)的贖回交易 TxBR,其輸入爲 TxB.UTXO,輸出地址屬與 Bob 所有,因此 Bob 可以在 TxB 被廣播上鍊 Tb 時間後,贖回自己的 5 個 ALTC,以防 Alice 不配合完成整個兌換流程;

6

Alice 和 Bob 將 TxA、TxAR、TxB、TxBR 廣播出去,TxA 和 TxB 分別被記入 Bitcoin 賬本和 Altcoin 賬本。Alice 知道密碼 Secret,可以簽名一筆交易花掉 TxB.UTXO,得到 5 個 ALTC,同時其交易數據也明示了 Secret,因此 Bob 能夠知道 Secret;

7

Bob 需儘快簽名一筆交易花掉 TxA.UTXO,取走 1BTC,成功結束整個兌換流程,否則 Ta 時間之後,Alice 的贖回交易 TxAR 成功上鍊,Bob 就拿不到 BTC 了。

作者:Karl 嘉楠區塊鏈研究院高級研究員

嘉楠區塊鏈:嘉楠耘智(Canaan Inc.)旗下區塊鏈板塊。

熱文搶讀:

1、對可驗證隨機函數 VRF 的簡明解釋

2、Byteball 技術剖析之一:DAG 賬本與最優樹

3、以太坊 ERC875 示例分析:一手交幣,一手交證

4、EOS“帶貨”Bancor 算法,但大多數人並未真正讀懂它

簡析跨鏈原子交易