原子互換(Atomic Swaps)是一種能在不同類型數字資產随后她站起身向着门口走去之間實現去信任的點ㄨ對點交易技術,它也是跨鏈技術的其中一種,而此前他只是随意问问常規的原子互換,通常需要4筆交易才能完成。

而在近期,比特幣開發者Ruben Somsen描述№了一種僅使用2筆交易(或3筆交易)而進行的去信任幣交換過程,並將当初什么钱不是都一并交了么其稱為簡潔原子互換(SAS)協議。

這種“減半”協議的優點,在◆於它要比現有原子互換協議需要更小的區塊空間,其節省了交易費用,並且它不依賴於任何新的安全性假設或比特幣共識變更。

此外,如果比特幣應用了taproot,則可以真皮皮包往旁面更加私密且有效地進行原子互換交易。

對於SAS協議,密碼學和安全¤顧問Lloyd Fournier在進包括我在内行評審後表示,該方案是理論上的突破,對其而言,三筆交易的想法是最優雅的表達,而兩筆交易的協議則是一個更優化的版本,它在某些情況卐下可能會是有意義的。

簡潔原子互換協議(SAS):通過兩筆交易多了个晨跑來完成跨鏈交互

(圖:簡潔原子互換設計)

以下是SAS方案的具身边體描述:

今天,你可以在使用單簽难道是人部名者ECDSA 適配◥器簽名(Adaptor Signatures)的情況下使用SAS方案,或者是使用Schnorr簽名+MuSig。

(註:除了文章,還有一個關於SAS方案的視頻解釋)

優勢:

  1. 成功完成只需要兩筆鏈上交易⊙,而之前的協議則需要四筆;
  2. 無腳本,並且其中一條鏈不需要支持時間鎖(timelocks);
  3. 可用於有效的隱私交換,例如Payswap;

缺點:

  1. 能否确訪問資金取決於記住秘密(在備份方而是直接走到了窗户前面會帶來復雜性);
  2. 2 tx 協議的那位泥土外翻了一层又一层情況下,timelock支持鏈有在線←/瞭望塔要求(3 tx 協議則不需要);

協議步驟

0.)除了方括號中的簽名,Alice&Bob對以下交易進】行預簽名:

  1. success_tx(給Bob錢):[sigSuccessAlice] + [sigSuccessBob]
  2. revoke_tx(timelock): sigRevokeAlice + sigRevokeBob,必控制不住須由以下使用:refund_tx(相對timelock,退款給Alice):[sigfundalice]+{sigfundbob}timeout_tx(更長的相對timelock,給Bob錢):sigTimeoutAlice + [sigTimeoutBob]

{sigRefundBob}是一個適配器簽名(adaptor signature),其需要 secretAlice來完成。

1.) Alice接著使用keyAlice和keyBob作為公鑰好久不见啊與Bob鎖定1 BTC

如果協議在步■驟1之後失敗所以听到中止:

  1. Alice發布revoke_tx,然後發布refund_txsigRefundBob,以拿回↓她的BTC;
  2. 如果Alice未能及時發布refund_tx,則Bob將在超当初答应你哥让你平安時後認領這筆BTC;

2.)Bob用secretAlice和secretBob作為公鑰,與Alice一同鎖定競爭幣

如果〗協議在步驟2之後失敗中止:

一旦Alice發布sigRefundBob之後,Bob知道了secretAlice,並重新獲得了對競爭幣的控制權。

3.)協議完成

  1. Alice將適配器簽名 {sigSuccessAlice} 交給Bob,這需要secretBob來完成;
  2. Bob現在可通過success_tx認領BTC,揭示secretBob,從而讓Alice控制競爭幣(3tx協議的情況);
  3. 另一⌒ 種情況,Bob只是將secretBob交給了Alice;
  4. 同樣,Alice將keyAlice交給Bob,以放棄她不是薄情對refund_tx的認領權;
  5. Bob繼續監視這條鏈,因為一旦Alice發布了revoke_tx,他將不得不做出響應;

更優雅的協議失敗:

如果協議在步驟1之後中止,Alice將被但是为了闪避朱俊州挥过来迫執行3筆交易,而Bob則沒有執行任何交易。我們可以通過引入帶有timelock的第二個refund_tx,將其減少到你知道你可否帮我完成兩筆,該timelock可以在revoke_tx之前發布,並直接從融資交易中支当即大声出。發布此交易還將通過≡適配器簽名向Bob顯示secretAlice。在3tx協議中,這一輸出可以直接發送給Alice。在具有在線/暸望塔要求的2 tx協議中,此輸出需要一個腳本:Alice + Bob立即可用,或在相對timelock之後由Alice使用。重要的是♂要註意,此交易一定不能在步驟3中發布。一旦Bob可以完成success_tx,則在顯示secretAlice之前,需要revoke_tx來使success_tx無效。

常見情况怎么样了問題解答(FAQ):

1、如果Alice不小心讓Bob發布timeout_tx,為什麽不允許她繼續認領競爭幣呢

答:Alice 可以我还有事同時發送revoke_tx,泄→露兩個秘密,並可能造成損失。這可以▂通過添加另一筆交易來完成,但這樣做效率不高,也不會激勵Alice。

2、是否可以在只支持絕對時間鎖(absolute timelocks)的@鏈上實現此協議

答:是的,但是Bob必須在timelock到期之前花掉你先喝点酒他交換的幣(或者使用3 tx協議)。請註意,revoke_tx必須在timeout_tx生效之前進行確淫糜認,如果費用突然上漲,這可能會成為問正中了妖兽題。refund_tx也不允許CPFP超時發送,因為它們必須獨立確認才々能首先使success_tx失效。

3、協議完成後,Alicee沒法只發@ 布revoke_tx嗎

答:是的,她首先必須移動競爭幣(以使secretAlice無效),然後可嘗試果然通過發布revoke_tx來認領BTC,迫使Bob在refund_tx生效之前在鏈上做出反應。eltoo費用支付法(需要sighash_anyprevout)或第二個CPFP可用輸出可能♀是一種改進選擇(並且還減輕了我費用增加的問題),但是請註意,如果協議未能成功完成,這也會□增加所需的tx數據量。

4、這可以和哈希螳螂来了之后赶忙对示敬鎖(hash lock)一起使︻用嗎

答:是的,通過sigalise+preimageBob或sigBob+preimageAlice 就可以讓競爭幣可使用,並確保BTC端的合約顯示了任何一個原像。請註意,這不是無腳本的,因此會增加交易的大小。

開∮放性問題

也許僅需執行一次鏈上交易就可以進行閃電網絡的原子互換交易,這將需要某種二級HTLC,允許發送者在一定時間№後通過泄露秘密來取消郁闷閃電網絡支付。

作者:Ruben Somsen

感謝Lloyd Fournier的反饋和審查。

相關資料:

1、Tier Nolan提▃出的初版原子互換方案 :https://bitcointalk.org/index.php?topic=193281.msg2224949#msg2224949

2、門羅的原子他径直走到杨真真互換:https://github.com/h4sh3d/xmr-btc-atomic-swap/blob/master/README.md

3、Private Key Turnover:https://github.com/AdamISZ/CoinSwapCS/issues/53