130 / 691CSV

CHECKSEQUENCEVERIFY

CSV wymusza względną blokadę konkretnego wejścia. Odliczanie wiąże się z potwierdzeniem wydawanego wyjścia, nie utworzeniem portfela czy podpisaniem transakcji.

OP_CHECKSEQUENCEVERIFY według BIP 112 porównuje argument skryptu z nSequence wejścia. BIP 68 następnie wymusza odpowiedni wiek wyjścia; to powiązane kontrole, nie automatyczna płatność.

CSV ogranicza nSequence wydawanego wejścia. Sam nie mierzy wieku UTXO; walidacja BIP 68 używa historii potwierdzenia, aby zapobiec przedwczesnemu włączeniu. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [BIP 68 — Relative lock-time]

Dla zwykłego argumentu bez flagi wyłączenia CSV wymaga wersji transakcji co najmniej 2 i wyzerowanego bitu 31 nSequence. Ujemny argument lub niezgodna sequence powoduje błąd. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core v29.0 — Script interpreter]

Bit 22 rozróżnia bloki i czas. Ustawiony oznacza jednostkę 512 sekund, więc czas koduje się krokami po 512 sekund. Typ argumentu i nSequence musi być zgodny. [BIP 68 — Relative lock-time]

Dolne 16 bitów koduje opóźnienie przy masce 0x0000ffff. CSV porównuje ten zakres wraz z typem, nie kolejność całych niemaskowanych liczb nSequence. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Script interpreter]

Gdy wyjście potwierdzono przy H = 900000 i opóźnienie wynosi 10 bloków, najwcześniejsza wysokość kandydata to H + 10 = 900010. Dziewięć nie wystarczy; liczba nie gwarantuje dokładnych minut. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]

Początek czasu to Median Time Past bloku przed potwierdzeniem wyjścia. Porównuje się go z MTP przed blokiem kandydującym; kod 2 oznacza co najmniej 1024 sekundy między medianami, nie lokalnymi zegarami. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]

Zerowe opóźnienie nie dodaje czekania, ale zwykły CSV zachowuje inne kontrole. Jeśli nieujemny argument sam ustawia bit 31, CSV działa jak NOP; argument nie nakłada względnej blokady czasu. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core v29.0 — Script interpreter]

Każde wejście ma własne potwierdzenie i sequence; wszystkie stosowne blokady transakcji muszą być spełnione. Reorganizacja może przesunąć początkowe potwierdzenie, więc wcześniejsza dopuszczalność nie jest nieodwracalna. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]

CSV pozostawia argument na stosie, często następuje OP_DROP. Podpisy i inne gałęzie określają uprawnienia; czas nie odtwarza utraconego klucza ani nie wyklucza wcześniejszej alternatywnej ścieżki. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Developer Reference — Transactions]

BIP 112 wprowadził CSV zamiast OP_NOP3 wraz z BIP 68/113. Po opóźnieniu trzeba jeszcze dostarczyć i potwierdzić transakcję; opłaty, dostępność danych i stan łańcucha nadal się liczą. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core 0.12.1 — BIP 68/112/113 release notes]

Pełniejszy obraz uzyskasz, czytając to hasło razem z CHECKLOCKTIMEVERIFY, Bitcoin Script opcode, Timelock, Bitcoin Script. Do tego hasła prowadzą również odsyłacze z Potwierdzenie, Timelock, HTLC, Bitcoin Script opcode.

DOC · 001BIP 112 — OP_CHECKSEQUENCEVERIFYSpecyfikacja ↗DOC · 002BIP 68 — Relative lock-timeSpecyfikacja ↗DOC · 003Bitcoin Core v29.0 — Script interpreterDokumentacja ↗DOC · 004Bitcoin Core v29.0 — Transaction sequence locksDokumentacja ↗DOC · 005Bitcoin Developer Reference — TransactionsDokumentacja ↗DOC · 006Bitcoin Core 0.12.1 — BIP 68/112/113 release notesDokumentacja ↗
Najpierw źródła · To nie jest porada inwestycyjna