目录:https://blog.youkuaiyun.com/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 的对应秘密