Schnorr 如何改進原子交換的建構?
Schnorr 簽名的可用性如何提高執行跨鏈原子交換的能力?
要執行原子交換,兩種資產都需要被鎖定,以確保兩種支付的同名原子執行或兩者都不執行。傳統上,這使用具有兩個結果的複雜輸出腳本。在兩條鏈上,資金都被鎖定,以便接收方使用他們的私鑰簽名同時也顯示原像,或者原始所有者可以在超時後通過使用他們的私鑰簽名自己收回資金。這樣一來,只要兩方中的一方透露原像拿走資金,對方就可以立即拿走對方網路上的資金。這種方法的缺點是,由於具有相同的鎖雜湊,兩個事務很容易連結,腳本相當繁重,每個人都可以看到發生了什麼。
原子交換可以通過 Schnorr 簽名來改善其隱私和區塊鏈足跡。與之前描述的輸出腳本不同,資金被鎖定到 2-of-2 多重簽名地址,並具有超時條件以返回資金。為了確保原子性,兩方之一在兩個網路上創建使用“適配器簽名”的交易。這些交易是完全有效的,只是創建方的簽名被線性偏移損壞。創建方向交易對手提供零知識證明,證明它們都受到相同價值的損害,否則它們將是有效的。在交易對手也簽署了兩筆交易後,任何一方都可以修復其中一個簽名的損壞,以使交易有效,
由於 Schnorr 的緊湊型多重簽名,帶有超時回退的 2-of-2 多重簽名地址看起來像標準的 1-of-1 Pay-to-Schnorr-public-key-hash 地址,以及來自它的 2-of-2 交易支出看起來也與任何其他標準交易沒有區別。交易沒有明顯的聯繫,第三方無法判斷涉及哪些公鑰,並且由於在擁有兩個有效簽名後重新造成損害是微不足道的,因此任何一方都很難證明這種交換曾經發生過。
因此,Schnorr 允許通過在每個網路上創建兩個標準交易來執行原子交換,而之前的原子交換結構使用 2-of-2 多重簽名地址和 HTLC 合約,它們更重且易於區分。
為此,兩個網路中的至少一個必須支持 Schnorr 簽名(最好兩者都支持)。
H/T Pieter 提供回饋並將我連結到 Kanzure 的這篇更全面的文章:http: //diyhpl.us/wiki/transcripts/layer2-summit/2018/scriptless-scripts/
稍有不同:如果你有 Schnorr 簽名,那麼你可以建立基於聚合多重簽名的支付渠道。這種支付渠道看起來與區塊鏈上的正常 p2pkh 沒有區別。
使用任何支付渠道,您都可以將雜湊鎖定的原子交換隱藏在. 與傳統的鏈上原子交換相比,這種通道內原子交換無論如何建立起來更快,更安全,並支持各方之間的高頻交易。在合作關閉的情況下,HTLC 秘密永遠不會進入區塊鏈,它看起來像一個正常的支付渠道。正如剛才提到的,使用 schnorr,正常支付渠道看起來就像任何其他交易一樣。所以你得到了一個“完全不可見”的雜湊鎖定原子交換,或者至少看起來不起眼。
由於這使用了完全標準的雜湊鎖定技術,即使兩個區塊鏈不使用相同的橢圓曲線(與適配器相比),它也可以讓您進行交易。