區塊鏈——原子互換(Atomic Swap)

買賣虛擬貨幣
原子互換是區塊鏈上的一種不用到第三方的去中心化的加密貨幣交換演算法。它可以讓遠在異地的兩個賬戶交換不同的貨幣,而不用擔心對方捐款逃跑或者賴賬。雖然不是完美解決方案, 但是底線是起碼不會讓交易的任何一方損失錢。各原種資料看了遍,終於自己能說通了。 下面就說說我對這個演算法的理解。 總分總的思路 :)交易雙方為 A 和 B. 除了利用普通交易中的簽名認證,還有加了一些維度的限制。(1) Hashlock. 一個用 x 作為 原像的雜湊函式 hash(x) . 只有揭露 x 的時候, 這個交易才能被鏈確認。 這裡的揭露我們可以認為是鏈上的任何人都可以知道x 的值了。也就是在鏈上廣播了。(2) Timelock. 對於交易最終能夠確認(能夠上鍊得到公認), 設定了一個可以看成自動回滾的定時器。只有到 Timelock 以後才能 觸發, 去確認(上鍊)。HashLock 和 TimeLock 也是構成Hash Time Locked Contracts 的部分,在閃電網路中也用得到。原子互換聰明在雙方都各自發出兩個交易(transaction- TX). 一個是應有的轉錢交易,一個是自己的撤資交易, 用來’保底’。 一共四個交易。而不是我們普通想的兩個交易。
這時候讀者可以想想怎麼利用這四個交易, HashLock, TimeLock 來完成這個原子互換?下面是過程 A 用 1 個 BTC 換 B 的 3 個 ETH :)1 . A 隨機出一個數字 x, 並且 hash(x). 這個其實有點作為數字信物一樣的東西,回頭就會知道, 而且是由首先創造交易的人做雜湊並且儲存x 先。2. A 建立 交易 TX1 :把 1 個 BTC 送到 B 的 public key 賬戶(地址)中。 但是這個交易實現是要有條件的, A 又不傻。下面兩個條件之一符合就可以:要麼: B揭露 x 並且有 B 的簽名要麼: 有 A 和 B 兩方的簽名
3. A 建立交易 TX2 — 保底交易: 把 1 BTC 從 TX1 發回到 A 自己 public key 賬戶(地址)並且 lock 48 hours. 回頭會說為什麼 48 hours. 這個交易A 自己先Sign掉。4. A 發 TX2(保底交易) 給 B5. B 簽了 TX2 然後還給 A. 這時候注意 TX2 已經有了雙方的簽名,但是48小時的Locktime 在那裡,撤資時機未到。6. 時間點1 — A 提交 TX1 到網路上。但這時還沒有發到 B 的 public key. 因為B還沒有揭露x.B 這邊也是大約類似的動作
7. B 建立 交易 TX3 :把 3 個 ETH 送到 A 的 public key 賬戶(地址)中。 但是這個交易實現是要有條件的, B 也不傻。下面兩個條件之一符合就可以:要麼: A 揭露 x 並且有 A 的簽名要麼: 有 A 和 B 兩方的簽名8. B 建立交易 TX4 — 保底交易: 把 3 ETH 從 TX3 發回到 B 自己 public key 賬戶(地址)並且 lock 24 hours. 這個交易 B 自己先Sign掉。9. B 發 TX4(保底交易) 給 A
10. A 簽了 TX4 然後還給 B. 這時候注意 TX4也已經有了雙方的簽名,但是24小時的Locktime 在那裡,撤資時機未到。11. 時間點2- B 提交 TX3 到網路上這裡我第一次看的時候總覺得很危險,因為A 知道 x, 並且可以隨時簽名,TX 提交的時候 A 不就直接卷錢跑了嗎? 但是原子互換的聰明之處也在這裡,當A想 “捲款”, 也就是使用了 TX3, 獲得 3 ETH, 但是這個操作有side effect: 也會使得 x 上鍊並且被廣播。所以 B 也就知道了原像 x, 也能使用TX4.12. 時間點3- A 使用了 TX3,獲得了3 ETH。 因為A 有原像, 並且自己of course 可以私鑰簽名。 但是如上面所說 原像x 會被廣播公開。13. 時間點4- B 從鏈上拿到 原像 x, 並且of course 自己私鑰簽名,就能使用 TX4 咯。總結下:
這樣其實 我們可以看到 交易的兩個條件: 拿到原像和對方簽名是對應交易成功時的條件。 雙方的簽名條件是用來執行保底交易,達成撤資條件的。 而且在 雙方開始把真正交易提交網路之前, 先要把雙發的保底交易給sign 咯。 比如上面的步驟 4,5,8,9。 這樣也對,和實際生活中一樣,先把醜話說前頭, 而且有個時間鎖,誰也不能賴。還有就是上鎖時間,誰先傳送保底交易,誰的鎖的時間就要比對方長。這樣才能給對方足夠的時間來確認。 因為對方操作類似對稱,所以時間在兩倍。當然,原子互換並不完美, 有一些侷限性,比如要相同的雜湊演算法, 上鎖時間可能過長,匯率影響等等。 讀者有興趣就自己搜搜吧。更多區塊鏈資訊:www.qukuaiwang.com.cn/news

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;