闪电网络 HTLC 是什么?跨通道怎么锁支付 图 1
闪电网络 HTLC 是什么?跨通道怎么锁支付 · 图 1

一句话理解

HTLC(Hashed Timelock Contract,带哈希锁的合约锁定支付)是闪电网络实现“跨多个通道”转账的核心机制:把一笔付款拆成“哈希锁 + 超时”的形式,锁在沿途每个通道里;只有最终收款方知道“预像”(secret),才能逐跳解开并领取。中间节点拿得到哈希、拿不到预像,就无法冒领。

为什么需要它

闪电网络里,A 付给 D 往往不是一条直连通道,而是 A→B→C→D 多跳。问题是:B、C 只是“过路”,凭什么保证它们不会把 A 的钱吞掉?HTLC 的答案是:A 只在 A→B 通道里锁一笔“带哈希 H + 超时 t1”的钱;B 再在 B→C 里锁一笔“带同一个 H + 更早超时 t0”的钱,依此类推。D 收到后,用自己的预像 s(H=hash(s))去 C 处解锁;C 拿到 s 后去 B 处解锁;B 再拿 s 去 A 处解锁。全程只有 D 知道 s,中间节点即便看到锁,也解不开。

两个关键约束:哈希 + 超时

哈希锁保证“只有知道 s 的人能领”;超时保证“如果 s 一直没出现,钱会按原路退回”。超时是逐跳递减的(越靠近付款方,超时越短),确保“下游没解,上游先到期回滚”,避免中间节点卡在中间。若 D 迟迟不付 s,A 的锁到期,A→B 的 HTLC 失效,B 把钱退回 A,整条链路安全回滚。这就是“要么全通、要么全退”的原子性。

和链上交易的关系

HTLC 本身是链下通道内的承诺(channel state),只有当通道关闭、上链结算时,才体现为比特币链上的 2-of-2 多签 + 时间锁/哈希锁脚本。也就是说,HTLC 的“锁”最终锚定在比特币 Script 的 OP_HASH160/OP_CHECKLOCKTIMEVERIFY 等能力上——没有比特币 Script 的时间锁与哈希锁,闪电网络的多跳就无法成立。理解 HTLC,是理解“闪电网络为什么能跨陌生人转账、又不会被中间人吞钱”的钥匙。

实操里什么时候会碰到它

你付一笔跨多跳的闪电付款时,APP 通常不显示 HTLC,但后台正在逐跳建立、传递、解锁 HTLC。若某跳通道余额不足或超时,整笔付款会失败并回滚,你的资金不会“卡在中间”。调试闪电路由时,会看到 pending HTLC、in-flight HTLC 等状态;它们的存在时间受超时约束。相关:闪电网络通道手续费见 闪电网络通道 splicing 是什么?不关通道怎么加/减流动性

风险提示

本文仅为信息与教育内容,不构成任何投资建议。HTLC 的安全性依赖比特币 Script 与双方节点在线性;长时间离线可能导致通道被对方用“最优路径”关闭而损失部分流动性。请保持节点在线、及时同步,并理解超时的回滚逻辑再做大额闪电转账。