什么是 HTLCs?

什么是 HTLCs?

比特币用户指南

// 比特币用户指南
TL;DR:Hashed Timelock Contracts(HTLCs)通过把哈希锁(证明掌握某个秘密)与时间锁(若未揭示则退款)结合起来,实现原子化、无信任的兑换。它们最早于 2013 年被提出,并于 2015 年被 Bitcoin 的 Lightning Network 采用,如今支撑着跨链兑换、submarine swaps 以及无需封装资产的 DEXs。尽管存在隐私与期权性方面的挑战,HTLCs 仍是互操作性的支柱,并正演进为 PTLCs(Point Timelock Contracts),以获得更好的隐私性与效率。

Hashed Timelock Contract(HTLC)是一种支持有条件付款或兑换的智能合约。它结合了两种密码学原语:

  • 哈希锁:只有当接收方提供某个已知哈希 H = Hash(s) 的原像 s 时,才能领取资金。
  • 时间锁:如果接收方未在截止时间前提供原像,发送方可以获得资金退款。

这确保了原子性:合约要么对双方都成功完成,要么安全地取消。

HTLCs 的应用场景:

  • 跨链原子兑换,两条不同区块链上的资产在无信任的前提下完成兑换。
  • Lightning Network 路由,支付中的每一跳都由 HTLC 保障。
  • 桥与 submarine swaps,在无需封装资产的情况下实现链上 ↔ 链下互操作性。

HTLC 原子兑换的总体流程如下:

  1. 用户生成一个秘密 s,并只共享哈希 H
  2. 用户在区块链 A 上把资金锁入一个带有哈希锁 H 和时间锁 t_A 的 HTLC。
  3. Solver 看到 H 后,在区块链 B 上把资金锁入一个 HTLC,使用相同的哈希 H,但时间锁更短 t_B < t_A
  4. 用户通过揭示 s 赎回 Solver 在区块链 B 上的 HTLC。
  5. Solver 从区块链 B 得知 s,并用它赎回用户在区块链 A 上的 HTLC。
  6. 如果任何一方拖延,时间锁可确保资金被安全退款。

关于使用 HTLCs 的原子兑换,更多内容见这里

HTLCs 的演进

起源:2013 年的一个激进想法

HTLCs 的故事始于 2013 年 5 月的 Bitcointalk 论坛。一位化名开发者 TierNolan 提出了一种无需依赖中介的跨链资产兑换方法。其原理十分优雅:哈希锁 + 时间锁 = 一份确保全有或全无结算的合约。

Bitcoin 脚本中的构建模块(2014-2016)

随着 Bitcoin 引入以下能力,HTLCs 成为可能:

这些让合约中可强制执行的退款分支成为可能,使 HTLCs 在链上变得实用。

Lightning Network:首次大规模采用(2015–2017)

Lightning Network 论文(2015)使用 HTLCs 来保障多跳支付。当接收方揭示原像时,上游的每一跳都可以安全地领取资金。

到 2017 年, BOLT 规范在链上定义了精确的 HTLC 输出格式,巩固了它们作为 Lightning 核心机制的地位。

跨链原子兑换(2017)

2017 年 9 月,HTLCs 登上头条:

这在实践中验证了 TierNolan 在 2013 年的最初设想。

扩展与实验(2018–2022)

HTLCs 迅速扩展到各种应用场景:

研究驱动的演进:PTLCs(2020–2025)

HTLCs 暴露出隐私泄露问题(同一个哈希在所有跳中重复出现,参见 Lightning 隐私研究)。

Point Timelock Contracts(PTLCs) 适配器签名一起作为继任者出现,带来隐私性、效率以及对路由拦截的抵抗力。

Point Timelock Contracts(PTLCs)是 HTLCs 的继任者,使用椭圆曲线点而非哈希原像,通过避免同一个哈希在支付路由的每一跳中被重复使用,解决了 HTLCs 的隐私问题。这让支付更难被关联,并保护了路由隐私。

PTLCs 不揭示哈希原像,而是使用适配器签名——一种嵌入了秘密标量的部分签名。当接收方补全签名以领取资金时,该秘密可以被提取出来,但与 HTLCs 不同的是,每一跳使用的曲线点都是唯一的。这不仅保持了原子性,还能与 Schnorr/Taproot 干净地集成,使 PTLCs 更私密、更高效,并且与普通支付难以区分。

我们的视角(2023)

2023 年末,Garden 在探索 Bitcoin 互操作性时,自然而然地关注到了 HTLCs。封装代币或 lock-and-mint 桥这类替代方案带来了托管风险和复杂性。

相比之下,HTLCs 不需要任何新资产,只需直接的加密结算。这种极简主义契合我们对最小化信任的互操作性的理念。

前行之路

今天的 HTLCs 是:

  • Lightning 的心跳。
  • submarine swaps 中的桥。
  • PTLCs 的基础。

从 TierNolan 2013 年的论坛帖子,到如今数十亿美元规模的路由,HTLCs 已从论坛讨论演变为全球金融基础设施。

它们的继任者或许会加以改进,但原则始终不变:跨系统的无信任、有条件、原子化结算。

关于 Garden

Garden 是最快的 Bitcoin 桥,可在最短 30 秒内完成跨链 Bitcoin 兑换。它采用基于意图的架构构建,配合无信任结算,确保用户零托管风险。

加入 Garden 的 townhall,向我们的资深 gardeners 请教土壤酸度和修剪灌木的问题。

常见问题

1)HTLCs 解决了什么问题?

它们让跨跳或跨链的原子化、无信任结算成为可能:要么接收方揭示原像、所有人都拿到钱,要么截止时间到达、所有人都拿到退款,从而免去第三方托管与托管方。

2)HTLCs 安全吗?

是的,HTLCs 在密码学上是安全的,因为它们依赖强哈希函数(抗碰撞、原像安全)以及 Bitcoin 脚本中强制执行的时间锁(CLTV/CSV)。这些保证确保接收方要么揭示秘密以领取资金,要么在截止时间过后由发送方安全地取得资金退款。这使它们在设计上就实现了最小化信任,无需依赖中介或封装资产。

3)HTLC 和 PTLC 有什么区别?

HTLCs 使用哈希原像(H = Hash(s)),这可能在各跳之间泄露关联性;PTLCs 通过适配器签名使用椭圆曲线点(P = s*G),带来每一跳的唯一性、更好的隐私性以及与 Taproot 更干净的集成,同时保持原子性。

4)HTLCs 需要封装资产或托管方吗?

不需要,HTLCs 使用加密条件直接兑换每条链上的原生资产,无需 lock-and-mint 或合成代币,从而降低了托管风险和桥的智能合约风险。

5)如果接收方始终不揭示秘密会怎样?

时间锁分支会启动:下游合约先退款(t_B 更短),随后上游退款(t_A > t_B)。这种错开的超时设计可防止资金卡住,并在失败情形下保持原子性。

Last updated

Related Blogs