Hashed Time-Locked Contract spojuje hashovou a časovou podmínku. V Lightningu každý hop přeposílá HTLC s částkou, payment_hash a cltv_expiry; odhalení odpovídajícího preimage dokončí platbu zpětně přes trasu, zatímco timeout chrání účastníky, pokud fulfillment nepřijde včas.
Odesílatel pracuje s SHA-256 payment hashem. Příjemce dokončí platbu odhalením preimage, jehož SHA-256 přesně odpovídá tomuto hashi. Stejný secret tak váže atomické vypořádání více hopů.
Každý HTLC nese absolutní CLTV expiry. Pokud preimage nepřijde včas, musí mít uzly dost prostoru transakci selhat nebo prosadit on-chain dřív, než vyprší jejich upstream závazky.
V běžném Lightning provozu je HTLC změna stavu kanálu přes update_add_htlc a následný fulfill nebo fail. Bitcoinová transakce je potřeba až při on-chain vynucení kanálu.
update_add_htlc obsahuje channel_id, id, amount_msat, payment_hash, cltv_expiry a onion_routing_packet. Peer kontroluje policy a vytváří navazující HTLC; vstupní objekt pouze slepě nekopíruje.
Onion paket ukáže hopu jen informace potřebné pro další krok. Uzel porovná částku a outgoing CLTV s šifrovaným payloadem, takže může ověřit podmínky bez znalosti celé cesty.
Forwardující uzel vyžaduje pozdější incoming expiry než outgoing expiry. Rozdíl dává čas reagovat on-chain, pokud downstream odhalí preimage nebo selže těsně před deadlinem.
BOLT #3 zapisuje offered/received HTLC outputs do commitment transakcí se success a timeout větvemi. Skripty kombinují hash, podpisy a timelock tak, aby šlo výsledek vynutit i bez spolupráce protistrany.
Pokud by HTLC output po započtení fee spadl pod dust threshold commitment transakce, může být z on-chain výstupů oříznut. Proto BOLT #2 řeší dust exposure jako reálné riziko kanálu.
Platba uspěje jen když každý hop přijme podmínky a příjemce odhalí preimage. Liquidity, fee limity, expiry limity a routing policy mohou platbu zastavit dávno před konsenzuální vrstvou Bitcoinu.
Kontrolujte update_add_htlc, incoming/outgoing částky a CLTV delty a sledujte fulfill/fail zprávy. Při on-chain vynucení dekódujte commitment transakci a BOLT #3 success/timeout cestu HTLC outputu.
Pro nejúplnější obraz čtěte toto heslo společně s Lightning Network, Payment Channel, Timelock, Kryptografický hash, CHECKLOCKTIMEVERIFY, CHECKSEQUENCEVERIFY. Opačným směrem na něj odkazují také Timelock, Payment Channel, Lightningová likvidita, Lightning Routing.