Bitcoin Script ist eine von links nach rechts gelesene Anweisungsliste. Jede Anweisung ist ein Opcode: ein einzelnes Byte, das dem Interpreter sagt, was zu tun ist. Daten-Pushes legen Bytes (etwa eine Signatur oder einen öffentlichen Schlüssel) auf einen Stack; andere Opcodes nehmen Elemente vom Stack, arbeiten damit und legen ein Ergebnis zurück.
Beispiele
OP_DUPkopiert das oberste Stack-Element.OP_HASH160ersetzt das oberste Element durch seinen SHA-256- und dann RIPEMD-160-Hash.OP_EQUALVERIFYlässt das Script scheitern, sofern die beiden obersten Elemente nicht gleich sind.OP_CHECKSIGprüft eine digitale Signatur gegen einen öffentlichen Schlüssel.OP_RETURNmarkiert einen Output als nachweislich unspendbar, oft genutzt, um kleine Datenstücke einzubetten.
Deaktivierte und reservierte Opcodes
2010 wurden mehrere Opcodes wie OP_CAT und OP_MUL deaktiviert, um Denial-of-Service-Bugs zu vermeiden. Ungenutzte „NOP“-Opcodes wurden später durch Soft Fork neu definiert: OP_NOP2 wurde OP_CHECKLOCKTIMEVERIFY und OP_NOP3 wurde OP_CHECKSEQUENCEVERIFY. In Tapscript heißen ungenutzte Opcodes OP_SUCCESS und vereinfachen künftige Upgrades.