130 / 691CSV

CHECKSEQUENCEVERIFY

CSV vynucuje relativní zámek pro konkrétní vstup. Odpočet souvisí s potvrzením utráceného výstupu, nikoli s okamžikem vytvoření peněženky nebo podpisu transakce.

OP_CHECKSEQUENCEVERIFY podle BIP 112 kontroluje argument skriptu proti nSequence vstupu. BIP 68 potom vynucuje odpovídající stáří výstupu; jde o dvě navazující kontroly, ne o automatické odeslání platby.

CSV omezuje nSequence právě utráceného vstupu. Samo neměří stáří UTXO; transakční kontrola BIP 68 použije historii potvrzení, aby výdaj nemohl být zařazen příliš brzy. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [BIP 68 — Relative lock-time]

Pro běžný argument bez vypínacího příznaku CSV vyžaduje verzi transakce nejméně 2 a vypnutý bit 31 v nSequence. Záporný argument nebo neslučitelný sequence způsobí selhání. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core v29.0 — Script interpreter]

Bit 22 rozlišuje bloky od času. Je-li nastaven, jednotka odpovídá 512 sekundám; čas se tedy kóduje po 512 sekundách. Typ argumentu a nSequence musí souhlasit. [BIP 68 — Relative lock-time]

Prodlevu určuje dolních 16 bitů, maska 0x0000ffff. CSV porovnává tento kódovaný rozsah spolu s typem; nekontroluje obyčejné pořadí celých čísel nSequence bez maskování. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Script interpreter]

Je-li výstup potvrzen ve výšce H = 900000 a bloková prodleva je 10, nejdřívější kandidátní výška je H + 10 = 900010. Devět bloků nestačí; počet nezaručuje přesné minuty. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]

Časový začátek je Median Time Past bloku před potvrzením výstupu. Porovnává se s MTP bloku před kandidátním blokem; kód 2 znamená rozdíl nejméně 1024 sekund těchto mediánů, ne dvou místních hodin. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]

Nulová prodleva nepřidává čekání, ale při běžném CSV zůstávají ostatní kontroly. Má-li nezáporný argument samotný nastaven bit 31, CSV se chová jako NOP; takový argument nezamyká výstup relativním časem. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core v29.0 — Script interpreter]

Každý vstup má vlastní potvrzení a sequence; musí být splněny všechny použitelné zámky transakce. Reorganizace může posunout výchozí potvrzení, takže dřívější způsobilost není nevratná. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]

CSV argument ponechá na zásobníku, často následuje OP_DROP. Podpisová podmínka a jiné větve skriptu rozhodují o autorizaci; časový limit sám neobnoví ztracený klíč ani nevyloučí dřívější alternativní cestu. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Developer Reference — Transactions]

BIP 112 zavedl CSV nahrazením OP_NOP3 společně s pravidly BIP 68/113. Po splnění prodlevy je nutné transakci doručit a získat potvrzení; poplatek, dostupnost dat a stav řetězce stále rozhodují. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core 0.12.1 — BIP 68/112/113 release notes]

Pro nejúplnější obraz čtěte toto heslo společně s CHECKLOCKTIMEVERIFY, Opcode Bitcoin Scriptu, Timelock, Bitcoin Script. Opačným směrem na něj odkazují také Potvrzení, Timelock, Opcode Bitcoin Scriptu, CHECKLOCKTIMEVERIFY.

DOC · 001BIP 112 — OP_CHECKSEQUENCEVERIFYSpecifikaceDOC · 002BIP 68 — Relative lock-timeSpecifikaceDOC · 003Bitcoin Core v29.0 — Script interpreterDokumentaceDOC · 004Bitcoin Core v29.0 — Transaction sequence locksDokumentaceDOC · 005Bitcoin Developer Reference — TransactionsDokumentaceDOC · 006Bitcoin Core 0.12.1 — BIP 68/112/113 release notesDokumentace
Primární zdroje · Nejde o investiční doporučení