Een HTLC combineert twee voorwaarden in één spending script: een hashlock, die alleen geld vrijgeeft aan wie een geheime waarde (een preimage) kan tonen die hasht naar een vooraf afgesproken getal, en een timelock, waarmee de oorspronkelijke afzender het geld terugkrijgt als dat geheim niet op tijd wordt onthuld. Samen maken ze van een betaling een alles-of-niets gebeurtenis met een ingebouwde vervaldatum, zodat geen van beide partijen de ander hoeft te vertrouwen.
Het mechanisme werd in 2013 voor het eerst beschreven door Bitcoin-ontwikkelaar Tier Nolan en vormt nu de basis voor twee belangrijke toepassingen. Op het Lightning Network laten HTLC's een betaling over meerdere gekoppelde channels springen: de ontvanger genereert een hash en deelt die met de afzender, elke tussenliggende node stuurt geld door onder een kopie van diezelfde hashlock met een steeds kortere timelock, en zodra de ontvanger het geheim onthult om de laatste hop te claimen, kan elke eerdere node dat geheim gebruiken om op zijn beurt zijn eigen betaling te claimen. Loopt de betaling ergens in de route vast, dan verlopen de timelocks gewoon en keert het geld terug naar de afzenders.
De tweede toepassing is de atomic swap: twee partijen op afzonderlijke blockchains, bijvoorbeeld Bitcoin en een altcoin, zetten elk geld vast in een HTLC met dezelfde hash. Wie het geheim onthult om zijn kant te claimen, legt dat automatisch on-chain bloot, waardoor de tegenpartij de andere kant kan claimen. Zo verloopt de trade volledig of helemaal niet.
- Er is geen bewaarder of escrow nodig, omdat het geld in code wordt vastgezet in plaats van bij een derde partij te worden bewaard.
- Chains moeten compatibele hashing en timelock-scripting ondersteunen om mee te kunnen doen.
- Een nieuwer ontwerp, point timelock contracts (PTLC's), moet HTLC's op Lightning vervangen voor meer privacy, al blijven HTLC's de gangbare standaard in productie.