How Does Bitcoin Script Work?

From an extremely high degree, Bitcoin Script can be considered a listing of instructions tape-taped with each deal that explains how the recipient of the funds can access to them. Most Bitcoin deals just require simple manuscripts, but more complex manuscripts can be executed. To understand how Script works, let’s break down the actions required for a fundamental Pay To PubKey Hash (P2PKH) deal.

Basic P2PKH Deal Instance

Let’s suppose that Alice desires to send out 1 Bitcoin (BTC) to Bob. This deal is simple with any Bitcoin purse application, but there’s actually a great deal of Bitcoin Script code behind the scenes that makes the move feasible. Each Bitcoin deal involves at the very least one securing manuscript and one opening manuscript to determine that can invest funds sent out to a specific Bitcoin address.

In a P2PKH deal, Alice doesn’t know Bob’s public key. She just knows Bob’s address, which is a Base58Check encoded cryptographic hash of Bob’s public key. Alice can produce the deal by decoding Bob’s address to his “pubkey hash.”

When Alice sends out 1 BTC to Bob, a securing manuscript called scriptPubKey is put on the funds. Then, the just individual that can invest this 1 BTC is the individual that supplies the input (i.e., the general public key) that creates the pubkey hash to which Alice sent out the funds, together with an electronic trademark from the corresponding Bitcoin private key. In various other words, 1 BTC currently comes from Bob, but just if Bob can show that he is the proprietor of the BTC address that he provided to Alice.

Bob inspects his purse balance and discovers that the Bitcoin network has recognized the 1 BTC sent out from Alice. Although Bob currently practically “has” these funds, he can’t invest them yet. He needs to confirm his real possession of this 1 BTC to the network before he can send out them to another person.

Let’s suppose that Bob desires to send out that same 1 BTC to Chris. Before this can occur, Bob first needs to send an input (UTXO) that meets 2 requirements. First, the funds Bob is attempting to invest must recommendation the deal where he received the funds from Alice by its deal identifier (TXID). Second, the funds Bob desires to invest must recommendation the same index number (also called a vector out or vout) as the funds that Alice sent out to him to begin with.

Finally, Bob produces an opening manuscript called scriptSig that enables him to invest the funds. As lengthy as Bob provides the scriptSig which suits the problems set by scriptPubKey, he has the ability to send out 1 BTC to Chris. If Chris desires to send out funds to another person, the cycle of using securing and opening manuscripts proceeds.

Bitcoin Script And The Regulate Line

The over instance is a streamlined description for how Bitcoin Script works to support deals on the Bitcoin network. If you examine a standard securing manuscript for scriptPubKey on a Pay To PubKey Hash (P2PKH) deal, you’ll find something a little bit more complex such as:

OP_DUP OP_HASH160 <371c20fb2e9899338ce5e99908e64fd30b789313> OP_EQUALVERIFY OP_CHECKSIG

The lengthy string in the center is an instance of a hashed public key, however it is sometimes changed with. Several tutorials are available if you want to find out more about operating Bitcoin Script on a command-line user interface.

Summary Of Common Opcodes in Bitcoin Script

Over, we looked at an instance of how a commonly-used manuscript appearances. You might have noticed that “OP_” is used a great deal. This prefix is used to determine procedure codes, more commonly described as Opcodes. Basically, opcodes are commands that inform nodes in the Bitcoin network how to deal with any specific deal request. Let’s appearance at a couple of of one of the most common ones.

OP_ADD: Pops 2 items off the pile, includes them with each other, and presses the outcome back into the pile.

OP_EQUAL: Pops 2 items from the pile and contrasts them to inspect if they are equal. if they are equal, after that it presses the outcome TRUE back into the pile.

OP_RETURN: Can be used to store up to 80 bytes of approximate information on the Bitcoin blockchain as well as to note a deal output as void. OP_RETURN deal outcomes are provably unspendable, production this opcode an effective way to shed BTC. It also makes Komodo’s postponed Evidence of Work (dPoW) security system feasible.

OP_CHECKSIG: Confirms that the trademark for a deal input is legitimate.

OP_CHECKMULTISIG: Commonly used in Pay To Script Hash (P2SH) deals. OP_CHECKMULTISIG takes a look at 3 public keys and 2 signatures in the pile and contrasts them one-by-one. Funds become spendable just when the purchase of the signatures suits the purchase where the general public keys were provided.

A complete list of opcodes can be found on Bitcoin Wiki.

Turing Complete Programming With Komodo

As you can see with the numerous programming languages used over, support for blockchain programming has advanced significantly since the initial introduce of Bitcoin Core in 2009. Also Script has had numerous improvements. One instance appropriate to Komodo is OP_CHECKCRYPTOCONDITION, usually written as OP_CCC for brevity.

Although not initially executed on the Bitcoin network, this opcode includes significant improvements to the technology. First developed by the Komodo Dev Group, OP_CCC is based upon a suggested standard presented by the Interledger group called “CryptoConditions.” This opcode can currently be used to include the rational problems necessary for operating wise agreements.

Komodo Custom Agreements are UXTO-based wise agreements that can be written in any put together programming language that can produce a linkable collection qualified of calls and being called by C/C++ functions.

Because Komodo Custom Agreements run in the daemon, developers can avoid the restrictions and inconveniences of needing to run code in an online machine, as holds true with many gas-based wise contract systems. Because they are UTXO-based, production it virtually difficult to use a component to flooding the main chain’s coin provide with illegitimate coins. This is a safety and security challenge which prevails amongst numerous balance-based wise agreements. Furthermore, Komodo provides an open up API that can be used to write blockchain-based applications and software in any programming language.

If you had such as to find out more about blockchain technology and stay up to date with Komodo’s progress, you can sign up with Komodo’s Online discussion forum and register for the monthly e-newsletter.


0 Comments

Curated for You

Popular

Top Contributors more

Latest blog