閃電網路-雜湊鎖定
1.雜湊鎖定
雜湊鎖定模式是一種較易實現的跨鏈方案,該方案鏈不會因跨鏈而受到51%攻擊 ,雜湊鎖定想法最早來源於BitCoinTalk論壇中TierNolan的帖子[1]。在該方案中,提出了雜湊鎖定模式的實現思路。
但是在單純雜湊鎖定的交易中,某一方將擁有絕對的主動權,控制何時將hash(x)中的x提供給對方,例如在幣價波動較大時候,發起交易的該方可以選擇最合適的比例時,提供x給對方,進行交易,這樣會對交易的另外一方的利益造成損害。
有鑑於此,可以配合狀態通道,如通過鏈下交易策略(off-chain),進行加快交易速度,從而避免以上問題。
1.1閃電網路
閃電網路(The Bitcoin Lightning Network:Scalable Off-Chain Instant Payments)是以上技術綜合的典型應用。閃電網路的目的是安全的實現鏈下可擴充套件的小型即時交易,提升了比特幣網路鏈外的交易處理能力。交易雙方在區塊鏈下的支付通道進行多次、高效、雙向的交易, 雙方若無直接點對點的通道,只要網路中存在連通這兩方的通道即可。其中涉及到的小交易均無需上鍊,只需在開啟和關閉通道時,同步相關資料於區塊鏈即可。閃電網路本質上是使用了雜湊時間鎖合約來安全地進行0確認交易的一種機制,雜湊時間鎖合約在此之後被越來越多的用到跨鏈技術當中。
閃電網路無需信任交易的對方並且無需依賴第三方進行即時交易網路的構建。閃電網路起源於比特幣的擴容問題,基於微支付通道演進而來,創造性的設計出了兩種型別的交易合約:RSMC(Revocable Sequence Maturity Contract)到期序列可撤銷合約以及HTLC (Hashed Timelock Contract )雜湊時間鎖合約。其中,雜湊時間鎖合約使用了雜湊鎖定(hashlock和時間鎖定 (timelock)。
1.1.1多重簽名地址
多重簽名就是多個使用者對同一個訊息進行數字簽名,可以簡單理解為一個數字資產多個簽名。“用N把鑰匙生成一個多重簽名的地址,需要其中M把鑰匙才能花費這個地址上的比特幣,N>=M,這就是M/N的多重簽名”。簽名標定的是數字資產所屬及許可權,多重簽名預示著資產可由多人支配與管理。拿比特幣來說,如果要動用一個地址的幣,那麼需要多個私鑰才能進行。
閃電網路中採用了2-of-2 multisignature address,這意味著交易雙方各持有一份私鑰對應該筆交易的地址,這個地址只有交易雙方共同簽名驗證才可以取出這些比特幣。
1.1.2 RSMC(Revocable Sequence Maturity Contract)
RSMC(Revocable Sequence Maturity Contract)到期序列可撤銷合約。RSMC首先,構造了雙向支付通道;其次,使得其中一方中止交易後,另外一方無需等待鎖定時間可以即時拿到錢;最後,保證了雙方交易的可信性,雙方無法違約。
-
-
- HTLC (Hashed Timelock Contract )
-
HTLC (Hashed Timelock Contract )雜湊時間鎖合約。其中,雜湊時間鎖合約使用了雜湊鎖定(hashlock)和時間鎖定 (timelock)。HTLC中的雜湊鎖定(hashlock)保證了只有提供原始密碼才能從合約中拿到鎖定的資產,可以允許存在多個無需信任的中間人;時間鎖定(timelock)則保證了在有一方存在違約的情況下資產能安全退還給原所有者。
HTLC的作用主要有兩個,一個是確保在鏈下完成RSMC中小額金額的再分配,另一個是通過HTLC確保了交易雙方可以無需單獨開通交易通道,可以通過多箇中間人組成交易通道中,進而完成安全可靠的交易。
-
-
- 跨鏈交易實現
-
基於之前提到的HTLC,構建跨鏈交易通道。
準備階段:
(1)Alice生成一個隨機值s,提供hash(s)給Bob;
(2)Alice和Bob建立一個比特幣支付通道(該通道可以僅包含交易雙方,或者包含其他中間人),約定構建一個HTLC:Bob只要提供s來匹配對應的雜湊值就可以領走Alice的1BTC,如果發生超時,1BTC還給Alice;
(3)Bob和Alice建立一個萊特幣支付通道,約定另外一個HTLC:Alice只要匹配成功對應的hash值,就可以領走Bob的100LTC,超時則會返還給Bob。
結算階段:
(1)Alice提供自己生成的密碼s,得到Bob的100LTC;
(2)被廣播出來的密碼s同樣被用來保證Bob得到Alice的1BTC。
適用於跨鏈貨幣交換。
傳送方與接收方,分別在兩條鏈上持有賬戶。
雙方分別在不同鏈上構造特殊的交易。
如果傳送方使用接收方提供的資金,接收方就有能力使用傳送方的資金。
如果雙方不希望繼續交易,雙方的資金會在超時後退回。
參考文獻
[1] https://bitcointalk.org/index.php?topic=193281.msg2224949#msg2224949