區塊鏈-哈希時間鎖合約(Hash Time Lock Contracts,HTLC)

目錄:https://blog.csdn.net/qq_40452317/article/details/89646633

 支付通道可以通過特殊類型的智能合同進一步擴展,以允許參與 者將資金用於可贖回的具有到期時間的祕密(secret)。 此功能稱爲哈希時間鎖 定合約或 HTLC,並用於雙向和路由的支付通道。

首先我們來解釋 HTLC 的“哈希”部分。 要創建一個 HTLC,預期的收款人將首先創 建一個祕密(secret)R。他們然後計算這個 R 的哈希 H:

H = Hash\(R\)

這步產生可以包含在輸出的鎖定腳本中的哈希 H。知道祕密的任何人可以用它來 兌換輸出。 祕密 R 也被稱爲哈希函數的 前 圖像 。 前圖像就是用作哈希函數輸入的數據。

HTLC 的第二部分是“時間鎖”組件。 如果祕密沒有被透露,HTLC 的付款人可以在 一段時間後得到“退款”。 這是通過使用絕對時間鎖 CHECKLOCKTIMEVERIFY來實現的。實現 HTLC 的腳本可能如下所示:

IF
# Payment if you have the secret R 
HASH160 <H> EQUALVERIFY ELSE 
# Refund after timeout. 
<locktime> CHECKLOCKTIMEVERIFY DROP 
<Payee Pubic Key> CHECKSIG 
ENDIF

任何知道可以讓哈希等於 H 的對應祕密 R 的人,可以通過行使 IF語句的第一個子句來兌換該輸出。

如果祕密沒有被透露,HTLC 中寫明瞭,在一定數量的塊之後,收款人可以使用 IF 語句中的第二個子句申請退款。
這是 HTLC 的基本實現。 任何擁有祕密 R 的人都可以兌換這種類型的 HTLC。通 過對腳本進行微調,HTLC 可以採用許多不同的形式。 例如,在第一個子句中添加一個 CHECKSIG 運算符和一個公鑰來限制將哈希值兌換成一個指定的收件人, 這個人必須知道祕密 R.

發佈了266 篇原創文章 · 獲贊 89 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章