128 / 691OP

Opcode Bitcoin Scriptu

Opcode je instrukce Bitcoin Scriptu. Při ověřování utracení pracuje se zásobníkem nebo kontroluje podmínku; její význam závisí také na verzi skriptu.

Opcode je bajtový kód instrukce, nikoli soukromý klíč ani samostatná transakce. Úspěch utracení vyžaduje celý platný skriptový a transakční kontext, ne pouhou přítomnost názvu operace.

Script se dekóduje na instrukce a datové položky. OP_PUSHDATA určuje vložení bajtů; bajty uvnitř vložených dat se znovu neinterpretují jako další opcodes. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Core v29.0 — Opcode definitions]

OP_DUP duplikuje vrchol zásobníku, OP_DROP jej odstraní. Chybějící argument může způsobit selhání; pořadí i kódování položek je součástí podmínky. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Developer Guide — Transactions]

OP_EQUAL porovná dvě položky a vloží výsledek. OP_EQUALVERIFY při nerovnosti selže a při rovnosti výsledek odstraní; žádná z těchto operací sama neověřuje vlastnictví klíče. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Core v29.0 — Opcode definitions]

OP_CHECKSIG ověřuje podpis vůči veřejnému klíči a zprávě odvozené z transakce. Legacy a SegWit v0 používají ECDSA, běžné 32bajtové klíče v Tapscriptu Schnorr; rozsah závazku určuje i sighash. [Bitcoin Core v29.0 — Script interpreter] [BIP 342 — Validation of Taproot Scripts]

OP_IF a OP_ELSE vybírají větev podle zásobníku. Script nemá obecné smyčky; pravidla neprovedených větví přesto závisejí na druhu opcode a verzi skriptu. [Bitcoin Core v29.0 — Script interpreter] [BIP 342 — Validation of Taproot Scripts]

OP_CHECKLOCKTIMEVERIFY kontroluje absolutní zámek, OP_CHECKSEQUENCEVERIFY relativní podmínku příslušného vstupu. Samy nečekají, neodešlou platbu a nenahrazují podpisovou podmínku. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Developer Guide — Transactions]

Tapscript mění podpisová pravidla, přidává OP_CHECKSIGADD a při provedení odmítá OP_CHECKMULTISIG. Seznam instrukcí bez uvedení verze proto není úplným návodem k validaci. [BIP 342 — Validation of Taproot Scripts]

BIP 342 vyhrazuje OP_SUCCESSx pro budoucí rozšíření: jejich nalezení při dekódování Tapscriptu umožní úspěch podle těchto pravidel. Neznamená to, že návrh nové operace je už aktivován nebo bezpečně vynucuje zamýšlenou podmínku. [BIP 342 — Validation of Taproot Scripts] [Bitcoin Core — Segregated Witness benefits]

Síťová politika může odmítnout přeposlat transakci, kterou konsenzus připouští v bloku. Bitcoin Core v29.0 například standardně odrazuje použití OP_SUCCESSx; politika uzlu není nové konsenzuální pravidlo. [BIP 342 — Validation of Taproot Scripts] [Bitcoin Core v29.0 — Standard script flags]

Při čtení skriptu určete verzi, vstupní zásobník, zprávu podpisu a všechny cesty selhání. Ověřená syntaxe nebo hezký název opcode nezaručují správnou úschovu; záleží na celém použití. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Developer Guide — Transactions]

Pro nejúplnější obraz čtěte toto heslo společně s Bitcoin Script, CHECKLOCKTIMEVERIFY, CHECKSEQUENCEVERIFY, Taproot.

DOC · 001Bitcoin Core v29.0 — Script interpreterDokumentaceDOC · 002Bitcoin Core v29.0 — Opcode definitionsDokumentaceDOC · 003BIP 342 — Validation of Taproot ScriptsSpecifikaceDOC · 004Bitcoin Developer Guide — TransactionsDokumentaceDOC · 005Bitcoin Core v29.0 — Standard script flagsDokumentaceDOC · 006Bitcoin Core — Segregated Witness benefitsDokumentace
Primární zdroje · Nejde o investiční doporučení