哈希时间锁合约 - Hash Time Locked Contract, HTLC
哈希时间锁合约 是一种在闪电网络(LN)支付通道、跨链原子交换、同链硬币交换、零知识条件支付以及其他合约协议中使用的条件付款方式。
HTLC 有两个基本条款:一个使用哈希锁保护的付款条款和一个使用时间锁保护的退款条款。为了打开哈希锁并领取付款,接收方需要公开合约中编码的哈希摘要的原像(preimage)。为了打开时间锁并接收退款,支出方需要等到合约中编码的特定时间之后。
因为公开的原像和过去的时间并不唯一地标识应该接收付款的人,所以只有当 HTLC 还要求一个与支出方(退款接收方)或预期接收方的公钥相匹配的唯一签名时,HTLC 才是安全的。这使得最小的 HTLC 在 Minsc 脚本语言中看起来像这样:
(pk(Receiver) **&&** sha256(H)) **||** (pk(Refundee) **&&** older(10))
历史
哈希锁和时间锁作为独立功能明确设计在比特币的原始版本中。据我们所知,最早结合这两者来创建条件付款——我们现在称之为 HTLC——是 2012 年 7 月的一系列帖子(1, 2)。然而,一个 2010 年 12 月的帖子 可能在提及“加密上 […] 无风险交易”时暗指了相同的基本概念。
未来
时间点锁定合约(Point Time Lock Contracts, PTLCs)执行与 HTLCs 相同的功能,但可以提供更好的隐私保护,使用更少的区块空间,并防止路由拦截。作为缺点,它们依赖于适配器签名(signature adaptors),这些只能使用比特币现有的 ECDSA 签名实现,要么使用特别慢的算法,要么进行额外的安全假设,或者使用一个不节省多少区块空间的 OP_CHECKMULTISIG
构造。如果比特币增加了斯诺签名(schnorr signatures),安全性和空间节省之间的这种冲突将得到解决。如果这种情况发生,预计只需要比特币支持的协议可能会从使用 HTLCs 转向使用 PTLCs。其他将比特币与其他加密货币连接的协议可能会继续使用 HTLCs,因为 SHA256 等标准化哈希函数得到了广泛支持。
Optech 新闻简报和网站提及
2023
2021
2020
2019
参见
Last updated