Opcode to bajt instrukcji, nie klucz prywatny ani osobna transakcja. Poprawne wydanie wymaga pełnego prawidłowego kontekstu skryptu i transakcji, nie samej nazwy operacji.
Script dekoduje się na instrukcje i dane. OP_PUSHDATA określa wstawienie bajtów; bajtów wewnątrz wstawionych danych nie interpretuje się ponownie jako opcodes. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Core v29.0 — Opcode definitions]
OP_DUP powiela szczyt stosu, OP_DROP go usuwa. Brak argumentu może spowodować błąd; kolejność i kodowanie elementów są częścią warunku. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Developer Guide — Transactions]
OP_EQUAL porównuje dwa elementy i wstawia wynik. OP_EQUALVERIFY zawodzi przy nierówności, a przy równości usuwa wynik; żadna operacja sama nie sprawdza kontroli klucza. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Core v29.0 — Opcode definitions]
OP_CHECKSIG sprawdza podpis względem klucza publicznego i komunikatu z transakcji. Legacy i SegWit v0 używają ECDSA, zwykłe 32-bajtowe klucze Tapscript używają Schnorr. sighash także określa zakres zobowiązania. [Bitcoin Core v29.0 — Script interpreter] [BIP 342 — Validation of Taproot Scripts]
OP_IF i OP_ELSE wybierają gałąź według stosu. Script nie ma ogólnych pętli; reguły niewykonanych gałęzi nadal zależą od opcode i wersji skryptu. [Bitcoin Core v29.0 — Script interpreter] [BIP 342 — Validation of Taproot Scripts]
OP_CHECKLOCKTIMEVERIFY sprawdza blokadę bezwzględną, OP_CHECKSEQUENCEVERIFY warunek względny danego wejścia. Nie czekają, nie wysyłają płatności i nie zastępują warunku podpisu. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Developer Guide — Transactions]
Tapscript zmienia reguły podpisu, dodaje OP_CHECKSIGADD i odrzuca OP_CHECKMULTISIG przy wykonaniu. Lista bez wersji nie jest pełnym przewodnikiem walidacji. [BIP 342 — Validation of Taproot Scripts]
BIP 342 rezerwuje OP_SUCCESSx na rozszerzenia: ich napotkanie przy dekodowaniu Tapscript pozwala na sukces według tych reguł. Nie oznacza aktywacji propozycji operacji ani bezpiecznego wymuszania zamierzonego warunku. [BIP 342 — Validation of Taproot Scripts] [Bitcoin Core — Segregated Witness benefits]
Polityka sieci może odmówić przekazania transakcji dopuszczalnej w bloku według konsensusu. Bitcoin Core v29.0 domyślnie zniechęca do OP_SUCCESSx; polityka węzła nie jest nową regułą konsensusu. [BIP 342 — Validation of Taproot Scripts] [Bitcoin Core v29.0 — Standard script flags]
Czytając skrypt, ustal wersję, stos początkowy, podpisywany komunikat i wszystkie ścieżki błędu. Poprawna składnia czy atrakcyjna nazwa opcode nie gwarantuje właściwego przechowywania; liczy się całe użycie. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Developer Guide — Transactions]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Bitcoin Script, CHECKLOCKTIMEVERIFY, CHECKSEQUENCEVERIFY, Taproot.