文章閱讀頁通欄

區塊鏈——原子互換(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(保底交易) 給 B
5. 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.crhupc.live/news
關鍵詞: 原子互換  Atomic Swap  
0/300
? 好运彩3单双