微介紹
比較中心化的做法(一些跨鏈橋)
A B 兩條鏈都設定 smart contract
公正 (?) 第三方
確認交易結果、
執行 B 上的 contract
•
•
•
•
•
•
•
•
•
•
•
•
B chain
b transfered
•
•
•
•
•
•
•
•
•
•
•
•
A chain
a locked
不需要公正第三方確認交易
利用 Hash Time Locked Contract (HTLC)
Alice 在時 B 鏈上解鎖 b (公布 secret)
Bob 看到 secret,也在 A 鏈上解鎖 a
Alice 在 A 鏈上的 1 個 HTLC 鎖定 a
設定:
Bob 在 B 鏈上的 1 個 HTLC 鎖定 b
設定:
Alice 解鎖 b 的同時,Bob 也會知道 secret,於是也可以解鎖 a
Alice 沒有及時解鎖 b
Bob 拿回 b
Alice 在 A 鏈上的 1 個 HTLC 鎖定 a
設定:
Bob 在 B 鏈上的 1 個 HTLC 鎖定 b
設定:
Alice 拿回 a
(Bob)
Unlock a
with secret S
(Alice)
Unlock b
with secret S
(Bob)
Lock b
with secret S and time T
(Alice)
Lock a
with secret S and time T
(Alice)
準備 secret S
T
(Bob)
Unlock b
(Bob)
Lock b
with secret S and time T
(Alice)
Lock a
with secret S and time T
(Alice)
準備 secret S
T
(Alice)
Unlock a
(Bob)
Lock b
with secret S and time T
(Alice)
Lock a
with secret S and time T
(Alice)
準備 secret S
T
有
(Bob)
OOXX
(Alice)
Unlock b
with secret S
(Bob)
Lock b
with secret S and time T2
(Alice)
Lock a
with secret S and time T1
(Alice)
準備 secret S
(Bob)
Unlock a
with secret S
(Alice)
Unlock b
with secret S
T1
T2
有
T2
T1
(Alice)
準備 secret S
(Alice)
Lock a
with secret S and time T1
(Bob)
Lock b
with secret S and time T2
(Alice)
Unlock b
with secret S
(Bob)
OOXX
(Bob 網路壞掉)
需要知道另一個鏈發生什麼事,或是沒發生什麼事
要能夠在 A 鏈上確認 B 鏈的交易、
在 B 鏈上確認 A 鏈的交易
很貴、很麻煩
需要設計 Light Clients 並整合到鏈的執行層