Bitcoin is programmable money, and like any program, you can add commands to it to execute certain actions. As long as you’re familiar with the language and the various commands, you can access a richer bitcoin experience.
For the average bitcoin user, you need not concern yourself with bitcoin opcodes because your use for the chain is primarily to move funds from one wallet to another. Still, for others who want to take advantage of bitcoins’ programmable nature, you can dive deeper into these functions.
Despite what altcoin proponents might say about bitcoin being old or dated tech, it’s simply not true; bitcoin’s feature sets are carefully considered with security and robust performance in mind. Since other chains are not built to withstand state-level attacks or intend to last for decades in their current form, these constraints allow them to develop features without these concerns in mind.
Bitcoin script is intentionally simplified
Unlike its competitors who use Turing-complete language, bitcoin is intentionally not Turing-complete, with no loops. Turing complete features can always be added to second-layer networks and add necessary complexity and unknown attack vectors to bitcoin, so instead, bitcoin uses a more conservative approach.
Bitcoin uses a scripting system for transactions. Forth-like, Script is simple, stack-based, and processed from left to right.
In bitcoin script, the operation code, or opcode, is a basic command of some computer languages. Bitcoin’s scripting language, called Script, has its own set of opcodes. Each opcode is numbered and performs a limited, predefined function. Combining these opcodes and additional data such as addresses, public keys, and signatures can produce Bitcoin scripts for different use cases.
For example, the most common bitcoin script is P2PKH, composed of 4 opcodes and a public key hash. This script is a type of ScriptPubKey, which is used to lock bitcoin such that only someone capable of producing the public key and a valid signature can spend it.
Another frequently used opcode is CSV: (OP_CheckSequenceVerify, OP_CSV) which allows an output to conditionally specify how long it must be part of the timechain before an input spending it may be added to the blockchain, which is used when managing channels on the Lightning Network.
So, in fact, you are already using opcodes without actually realising it.
How does a bitcoin OP_CODE work?
For machines, equipment and computers to be able to receive and execute a specific order, it is necessary to issue instructions in a language that they can understand. Therefore, these instructions are written in a programming language containing operation codes or are ultimately translated into a series of opcodes.
These codes are written in a language that we generally know, such as English, and are then translated by a compiler or translator program for machines to understand it in their binary language.
That is the mnemonic instructions written in our language for the interpretation of us humans have their equivalent in binary language so that machines can easily interpret them. And thus be able to act on the instruction received and execute it correctly.
Types of opcodes in the Bitcoin script
The OP_CODES for bitcoin Script perform different actions and are classified according to the function and indications that they are going to execute in the system. For example, these codes can be used to remove, add, move or rotate elements on the stack, analyse and perform arithmetic operations, and validate or invalidate transactions, among many other functions.
Categories of bitcoin opcodes include:
- Embed codes
- Control codes
- Application codes and stack operations
- Splice operation codes
- Codes for numerical operations
- Time lock codes
The bitcoin learning journey never ends
Your bitcoin experience can be as simple or as complex as you like, and as you become more comfortable with the technology, you can dive deeper and take more control over how you use the network. If this all seems way over your head and a little alienating, don’t worry too much about it for now and focus on the primary bitcoin skills such as privacy and self-custody practices.
If these advanced features sound like something you’d like to learn more about, or you want to make use of bitcoin opcodes, we recommend giving the following resources a go as part of your research.
Are you taking full advantage of the bitcoin network?
Do you hold bitcoin on-chain, and are you making use of opcodes? What opcodes have you used in the past, and for what reason? Let us know in the comments down below.