Opcode — байт інструкції, а не приватний ключ чи окрема транзакція. Успішне витрачання вимагає чинного повного контексту скрипту й транзакції, а не лише назви операції.
Script декодують в інструкції та дані. OP_PUSHDATA визначає вставлення байтів; байти всередині вставлених даних не трактують повторно як opcodes. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Core v29.0 — Opcode definitions]
OP_DUP дублює вершину стека, OP_DROP її видаляє. Відсутній аргумент може спричинити помилку; порядок і кодування елементів є частиною умови. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Developer Guide — Transactions]
OP_EQUAL порівнює два елементи й додає результат. OP_EQUALVERIFY завершується помилкою за нерівності та прибирає результат за рівності; жодна операція сама не перевіряє контроль ключа. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Core v29.0 — Opcode definitions]
OP_CHECKSIG перевіряє підпис щодо публічного ключа й повідомлення з транзакції. Legacy та SegWit v0 використовують ECDSA, звичайні 32-байтові ключі Tapscript — Schnorr. Обсяг зобов'язання визначає також sighash. [Bitcoin Core v29.0 — Script interpreter] [BIP 342 — Validation of Taproot Scripts]
OP_IF та OP_ELSE обирають гілку за стеком. Script не має загальних циклів; правила невиконаних гілок усе одно залежать від opcode й версії скрипту. [Bitcoin Core v29.0 — Script interpreter] [BIP 342 — Validation of Taproot Scripts]
OP_CHECKLOCKTIMEVERIFY перевіряє абсолютний замок, OP_CHECKSEQUENCEVERIFY — відносну умову відповідного входу. Вони не чекають, не надсилають платіж і не замінюють умову підпису. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Developer Guide — Transactions]
Tapscript змінює правила підпису, додає OP_CHECKSIGADD і відхиляє OP_CHECKMULTISIG при виконанні. Список інструкцій без версії не є повним посібником перевірки. [BIP 342 — Validation of Taproot Scripts]
BIP 342 резервує OP_SUCCESSx для розширень: їх виявлення під час декодування Tapscript дозволяє успіх за цими правилами. Це не означає активації запропонованої операції чи надійного виконання бажаної умови. [BIP 342 — Validation of Taproot Scripts] [Bitcoin Core — Segregated Witness benefits]
Мережева політика може відмовити в передаванні транзакції, дозволеної консенсусом у блоці. Bitcoin Core v29.0 типово не заохочує OP_SUCCESSx; політика вузла не є новим правилом консенсусу. [BIP 342 — Validation of Taproot Scripts] [Bitcoin Core v29.0 — Standard script flags]
Читаючи скрипт, визначте версію, початковий стек, повідомлення підпису та всі шляхи помилки. Чинний синтаксис чи гарна назва opcode не гарантує належного зберігання; важливе все застосування. [Bitcoin Core v29.0 — Script interpreter] [Bitcoin Developer Guide — Transactions]
Для повної картини прочитайте також Bitcoin Script, CHECKLOCKTIMEVERIFY, CHECKSEQUENCEVERIFY, Taproot.