MSTR Cat

区块链/等级 V · 分层扩展/5.1 闪电网络(Lightning)/课程 2

使用HTLC进行路由

一个秘密,多个跳点,以及隐藏路由的洋葱

材料闪电网络浏览器(例如 1ML 或 mempool.space)BOLT #2 和 #4 规范

好奇

  1. 一笔支付如何做到要么对所有参与者都成功,要么对所有参与者都失败?
  2. 为什么路由中的每个节点必须只知道其直接前驱和后继?
  3. 如果最终收款人始终不认领,一笔被转发的支付会怎样?

探索

  1. Alice 通过 Bob 向 Carol 付款,她与 Carol 之间没有直接通道。每一跳都是一个锁定到同一支付哈希的 HTLC,且时间锁沿路由逐跳递减,使每个转发节点在向下游付款后都有时间向上游领取款项。当 Carol 公开原像以领取付款时,原像会逐跳向回传递,结算每一个 HTLC。
  2. 发送方根据通过 gossip 传播的通道图选择路由(源路由),并用分层加密包装指令(Sphinx 洋葱路由),因此每个节点只知道其前驱和后继。转发节点收取一笔基础费用,外加一笔按比例计算的费用(以百万分之一为单位)。当某一跳缺乏流动性时,支付会失败并重试;多路径支付则会拆分大额款项。
  3. HTLC 是承诺交易中的输出,而不是独立存在的实体。如果通道在仍有待处理 HTLC 时关闭,链上交易会为每个活跃合约包含额外的输出。当 HTLC 在通道保持开放期间到期或成功时,新的承诺交易会移除这些输出,以反映稳定的状态。
  4. 闪电网络的金额以毫聪计算,但链上输出的价值必须高于粉尘限额。那些小到在链上处理不经济的 HTLC 会被“修剪”(trimmed):它们在承诺交易中没有自己的输出,其价值转而计入交易手续费。
  5. 因此,被修剪的 HTLC 只能依靠对手方的诚实行为来保护:如果通道在它尚未完成时被强制关闭,这笔金额就会归矿工所有。节点会为自己愿意接受的被修剪 HTLC 的总价值设定上限,许多节点还会设定最低 HTLC 金额,以在极小额支付上承担少量风险为代价,换取对这类支付的支持。
  6. 当通道中存在活跃 HTLC 时进行合作关闭,双方会停止接受新的支付,并等待现有合约结算或到期。这样就可以发布一笔不含 HTLC 相关输出的更轻量的关闭交易,从而降低链上交易手续费,并避免争议性关闭所伴随的强制时间锁等待。

关键事实

  • HTLC 是承诺交易中的输出项,可用于实现跨多个通道的无信任路由。
  • Sphinx洋葱路由机制确保每个节点仅知晓其直接的前驱节点和后继节点。
  • 转发节点收取一笔基础费用,外加一笔以百万分之一为单位计算的比例费用。
  • 低于粉尘限额的 HTLC 会被“修剪”:其价值计入手续费,而不是拥有自己的输出。
  • 存在活跃 HTLC 时,合作关闭会等待其结算完成,以避免时间锁等待并降低手续费。
  • 多路径支付将大额款项分摊到多条路径上,以提高成功率。

练习 九、六、三、一

9收集列出9个闪电网络节点或服务。说明它们的路由策略、费用结构以及通道容量。
6归类按处理 HTLC 的方式将这9个分为6组:高费用/高容量、低费用/低容量、支持多路径、可容忍粉尘以下金额、优先合作关闭,或其他。
3提炼将这6组归纳为节点运营者调整路由策略和费用结构的3个原因。
1凝结写一句话,说明 HTLC 保证了什么,以及是什么让这一保证具有原子性。

事实核查

日期、数字及数据均依据下方列出的已发表资料进行核实。

在互动学院中打开 →

EN PT ES JA KO RU DE FR MS