区块链-哈希时间锁合约(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  EQUALVERIFY ELSE 
# Refund after timeout. 
 CHECKLOCKTIMEVERIFY DROP 
 CHECKSIG 
ENDIF

任何知道可以让哈希等于 H 的对应秘密 R 的人,可以通过行使 IF语句的第一个子句来兑换该输出。

如果秘密没有被透露,HTLC 中写明了,在一定数量的块之后,收款人可以使用 IF 语句中的第二个子句申请退款。
这是 HTLC 的基本实现。 任何拥有秘密 R 的人都可以兑换这种类型的 HTLC。通 过对脚本进行微调,HTLC 可以采用许多不同的形式。 例如,在第一个子句中添加一个 CHECKSIG 运算符和一个公钥来限制将哈希值兑换成一个指定的收件人, 这个人必须知道秘密 R.

你可能感兴趣的:(区块链,bitcoin)