Tuesday, April 16, 2024
No menu items!
Ad

Top 5 This Week

bama cap

Related Posts

How Do Bitcoin Transactions Actually Work?

For a blockchain developer or an enthusiast, it’s always wise to know how Bitcoin transactions work. You must know what happens when you send Bitcoins to your friend or once you broadcast a transaction to the blockchain network. 

Now, why is it important to have information about Bitcoin transactions – because the entire blockchain network is developed on such transactions. Bitcoin transactions are an amalgamation of inventive cryptography, non-Turing complete scripting, and data structures. Blockchain is extremely flexible as common transactions are simple, and it also allows developers to encode customized transactions.

Role of Bitcoin Transactions in the Bigger Picture

- Ad -

Nodes and blockchain are the two primary parts involved in Bitcoin transactions. The role of a node is to update the blockchain network at regular intervals. Now, we know that blockchain is a series of blocks, and these blocks contain all transactional data. 

Blockchain enthusiasts can use Bitcoin transactions in creative ways to fulfill a myriad of customized goals. So, let’s begin by understanding the most typical and common Bitcoin transactions, i.e., pay-to-script-hash type. These transactions amount to about 99% of all Bitcoin transactions. 

- Ad-

Now, let’s try and develop a mental model. Most people believe that Bitcoin is an account-based structure, which means that you send Bitcoin to your friend, and you have the balance amount. In the real banking world, the intermediary also charges a transaction fee from you. So, Bitcoin transactions, in the simple case, could be thought of as inputs and outputs. For example, if you send Bitcoin to your friend, the output will reflect in your friend’s account, while inputs are proof that you’ve paid to your friend. In such a case, there exists only one input and one output.

Exploring Different Aspects of Bitcoin Transactions

- Ad -

Now, it’s time to understand the mechanics of a Bitcoin transaction. Three crucial parts constitute a Bitcoin transaction- input(s), output(s), and header. These parts, in combination, create a raw transaction that gets broadcasted between peers.

Components of Header

Hash

Blockchain network uses hash values as a pointer, and a means to inspect the validity of a transaction’s data. 

Vin_Sz

It maintains a record of the total number of inputs in the transaction. Vout_sz keeps records of outputs.

Ver or Version

It’s the version of the header that gets used to verify the block. The latest version of the header was launched in a soft fork and was activated in December 2015.  

Lock_time

It depicts the earliest time that a block can be entered into the blockchain. 

Components of Input(s)

N

It’s an index that keeps records of outputs involved in the previous transaction. It’s the real output you’re sending.

Previous Output Hash 

Basically, it describes the money you’re about to spend on the transaction. It’s a hash pointer to any unspent transaction output. 

scriptSig

scriptSig is a spending list that verifies the developer of the transaction has access to spend the money.

Components of Output(s)

scriptPubKey

It’s one of the two scripts provided in any transaction and it’s a pointer to the receiver’s hashed public key. 

Value

As the name suggests, it shows the value of Satoshi spent.

Verification of Transactions

The primary role of a node in a blockchain network is to check the validity of any incoming transaction. It verifies that money isn’t getting created or data isn’t getting tampered with. Few important aspects that a node checks are-

  • Unspent outputs can never be claimed. All claimed outputs get included in the unspent transaction output (UTXO) pool.
  • The signatures on every input must be valid. So, the combined scripts must be true after its continuous execution.
  • No more than once should UTXO be spent on the transaction. 
  • Transactional output values must be non-negative. 
  • The sum of input values in the transaction should be more than the sum of the output values.

A Typical pay-to-PK-Hash Transaction

We know that Bitcoin has its scripting language that is flexible enough to allow developers to develop customized transactions. There are around five types of transactions that generally get accepted by Bitcoin clients. However, clients that will accept other types of transactions for a fee also exist. 

A combination of a pair of scriptSig/scriptPubKey must evaluate a typical pay-to-script-hash transaction to be genuine. So, the spender gives a scriptSig that gets accomplished and is then followed by the scriptPubKey of the previous transaction. Both scripts share the same stack.

Popular Articles