fbpx

33. Bitcoin script – what it is, and what you should know about it.

Bitcoin Script, otherwise known as “Bitcoin Script”, is nothing more than the language that Bitcoin uses to do everything it does. We’re talking about sending wallet funds or even creating a user account, among other things. All these functions are contained in one tool. Which one? That’s our topic for today.

Bitcoin Script – definition

Bitcoin Script is the programming language used by Bitcoin. It is used to process transactions. The code written in this way is read from left to right, and is based on a series of linear structures, called stacks. Stacks, in turn, contain data, which are arranged in LIFO (Last In-First Out) order. Interestingly, each instruction executed in this language is executed one after the other.

Bitcoin Script is basically a language of instructions. They are recorded with every transaction made. The instructions themselves describe how users can access and make appropriate use of the bitcoins available on the network.

Interestingly, the Bitcoin programming language is not a Full Turing language. This means that its full functionality is limited – it cannot solve problems and create loops. This limited is intentional, as it prevents infinite loops and error detection, which can create malware.

However, the programming language is an important part of the entire Bitcoin ecosystem. It allows programs and computers to perform our actions. Bitcoin for this purpose uses opcodes, which mainly serve as functions. They manipulate memory, maths, loops or call other essential functions.

What is opcode and operation code?

OPCODE, or Operation Code. It is a part of a programming language instruction, whose task is to specify the operation to be performed. The specification and format of the opcode is determined by a set of instructions called the ISA, which processes the entered instruction. The processor usually handles this task.

In Bitcoin and not only, but also in the case of many other cryptocurrencies, opcodes are the backbone of the system through which we can program the transaction instructions. We remind you that most cryptocurrencies are basically programmable money. “Programmable” is our key word because Bitcoin Script is a programming language where all instructions are given in opcodes. They, in turn, are predetermined by the BTC network. In practice, we distinguish 256 opcodes, which start with the number 0-255 in the Bitcoin ecosystem. Currently, only 116 are active.

And it is opcodes that allow us to perform various operations on the Bitcoin network. We are talking about performing transactions, controlling data flow, stack management, logic management or even cryptographic operations. A full and updated list of opcodes can be found in the Bitcoin code, which is publicly available.

Bitcoin Script – breakdown

The programming language is divided into two important scripts: scriptSig and scriptPubKey. Let’s discuss both of them:

  1. ScriptSig is an unlocking script. It requires a public key and a digital signature.
  2. scriptPubKey is a locking script. It contains the hash of the public key (bitcoin address).

Why was Bitcoin Script created?

The programming language was created to make transactions quick and easy. Script, in terms of programming, is designed very simply. It basically determines whether an operation can be performed or not. The Bitcoin script allows us to send a transaction when certain conditions are met. This feature makes Bitcoin and other cryptocurrencies something unique. Moreover, the script prevents errors in the system. It makes transactions on the network easy to calculate, while not slowing it down.

How the transaction goes using Bitcoin Script

We mentioned earlier that the script itself contains two components: scriptPubKey and scriptSig. The first contains the actions to be performed, and the second contains the signature and public key to verify the authenticity of the transaction being made. As a result, only authorized people have access to the funds and can perform any actions on them. The operations performed in opcode are as follows:

  1. opdup duplicates the element that is on the top stack.
  2. ophash160 deals with input data, which is encoded twice. First using SHA-256, and then using RIPEMD -160.
  3. opequalverify checks that the data has been entered correctly.
  4. opchecksig deals with input and output data. It checks that the data and script of the entire transaction are summarized in the hash.

If the above steps have been done correctly, we move on to the script. The owner’s public key is duplicated first. It then goes through the process of hashing. The resulting hash is compared with the hash of the public key, which is found in scriptPubKey. All this is done to ensure that it is valid.  

If so, the script continues and we move to opchecksig, where the signature is verified with the public key.

As you can see, everything that occurs in the script is safe and planned.

Advantages and disadvantages

  • Bitcoin Script is simple and does not require complicated actions.
  • With limited functionality, it is more secure.
  • It is a Turning Incomplete language, so it has no loops.
  • Minimizes the occurrence of errors and malicious codes.
  • It can be implemented virtually anywhere.
  • All the information necessary to run the script must be included in it.
  • It contains only 256 instructions.

Summary

Bitcoin Script is the simplest programming language. It offers very many advantages. Especially important is its high level of security.

Sign up for the newsletter!

Receive the latest cryptocurrency news in your email every week.