En tidslås stopper mynter fra å flytte til et tidspunkt eller en blokkhøyde. Bitcoin har fire verktøy, på to nivåer.
Transaksjonsnivå, absolutt: nLockTime
Hver transaksjon har en 4-byte nLockTime. Verdier under 500 000 000 er blokkhøyder. Høyere verdier er Unix-tidsstempler. Transaksjonen kan ikke mines før da. Den teller bare hvis minst én inndata har en nSequence annen enn 0xffffffff. Siden BIP113 (2016) sammenlignes tidslåser mot median time past av de siste 11 blokkene, ikke blokkens eget tidsstempel, så utvinnere ikke kan game det.
Begrensning: den som holder den private nøkkelen kan bare lage en annen transaksjon uten låsen.
Script-nivå, absolutt: OP_CHECKLOCKTIMEVERIFY (BIP65)
CLTV, aktivert i desember 2015, omdefinerte OP_NOP2. I et script gjør <expiry> OP_CHECKLOCKTIMEVERIFY OP_DROP at scriptet feiler med mindre den brukende transaksjonens nLockTime er minst utløpet, og av samme type. Selve mynten er låst.
Transaksjonsnivå, relativ: nSequence (BIP68)
nSequence på hver inndata kan bety «ikke før N blokker eller N×512 sekunder etter at utdataen som brukes ble bekreftet». Bit 31 deaktiverer den, bit 22 velger tid i stedet for blokker, og de lave 16 bitene holder verdien. Dette gjelder bare for transaksjoner med versjon 2 eller høyere.
Script-nivå, relativ: OP_CHECKSEQUENCEVERIFY (BIP112)
CSV omdefinerte OP_NOP3, og ble aktivert sammen med BIP68 og BIP113 i juli 2016. 144 OP_CHECKSEQUENCEVERIFY betyr at utdataen bare kan brukes minst 144 blokker (omkring én dag) etter at den ble bekreftet.
Hvor de brukes
- Lightning: CSV forsinker kringkasterens egne utdata, og gir den andre siden tid til å straffe en gammel tilstand. CLTV setter HTLC-frister.
- Arv og gjenoppretting: «min nøkkel nå, eller arvingens nøkkel etter ett år».
- Hvelv: forsinkelser før uttak, med en nødnøkkel.
- Anti fee-sniping: lommebøker som Bitcoin Core setter nLockTime til nåværende høyde for å motvirke at utvinnere omskriver nylige blokker.
Pass på: relative tidslåser er begrenset til 65 535 blokker eller enheter, som er omkring 15 måneder i blokker.