Showing posts with label The ScriptSig and ScriptPubkey. Show all posts
Showing posts with label The ScriptSig and ScriptPubkey. Show all posts

Tuesday, 16 February 2016

What are the Bitcoin Transaction types?


What are the Bitcoin Transaction types?

There are six standard Bitcoin transaction types at the time of writing. The developers behind Bitcoin have been continuously evolving the types of transactions to allow more functionality – the present list may change in the future. There are five standard transactions which are accepted by the standard client – although some miners will accept a non standard transaction for a price. 

The most popular type of transaction is the TX_PUBKEY, or pay to public key transaction – with over 99% of total transaction volume as of 2014.


The % share of this is expected to change as the Bitcoin community introduces wallets and other ancillary services that use the functionality of different transaction types. 

The problem with more complex transaction times is that they occupy more space in the blockchain which leads to issues with the blocksize. A topic that has come to the fore in 2015 as developers and economists try to find a balance between immediacy of transaction confirmation and miners wanting to restrict supply of space. 


For further examples on how a transaction is validated by a node check out our guide on each transaction type and the most common transaction type of Pay-to-Address. 


Bitcoin Transactions – Pay-to-Script-Hash?


Bitcoin Transactions – Pay-to-Script-Hash?


Pay-to-Script-hash, or P2SH, are extension of the multisignature idea but reducing the burden on the Bitcoin infrastructure in terms of storage required. 

A common 2-of-3 multisignature transaction can take up to five times as much space as a simple pay to address or pay to public key transaction.


They also reduce the complexity of the encoding, and shift the burden in terms of fees from the sender to the recipient – after all it’s their request to have the complexity in the conditions for the release of the funds. 


 
This is done by transferring the script used to spend the transactions to the and making the hold a hash of the script. This means that a new address has been created – a script address.



Script addresses are not made through the usual process of elliptic curve cryptography but are instead the hash of the of a multi signature transaction. A script address is appended with a value of five before being hashed, resulting in hashed script addresses starting with the number 3 – remember that standard Bitcoin addresses start with a 1 – with other variances for the testnet. 

Structuring P2SH transactions should be done with care as an error can make the transaction unspendable. Another important point is that the details of the transaction script are not stored in the blockchain, only the hash, and therefore the creator of the transaction must keep a copy of the script or remember the route to generate the specific hash. 



RELATED ARTICLES:

What is the Bitcoin Transactions?
source: http://theriseofthebitcoins.blogspot.com/2016/02/what-is-bitcoin-transaction.html

How does the bitcoin network actually work?
source: http://theriseofthebitcoins.blogspot.com/2016/02/how-does-bitcoin-network-actually-work.html

Bitcoin Transactions – The Scriptsig and Scriptpubkey




Bitcoin Transactions – The Scriptsig and Scriptpubkey


The Scriptsig and Scriptpubkey – locking and unlocking a transaction?


The Scriptpubkey is the puzzle set to a transaction in order for it to be solved and the script sig is the solution to the puzzle that allows it to be spent.

Historically the Scriptpubkey was named so as it contained the public key or address to be spent from – i.e. the address the transaction was locked to. The scriptsig was called so due to its need to contain the signature – i.e. the private key of the address that wants to spend and to which the address in the scriptpubkey was locked to. 

The Bitcoin transaction script language is a stack based execution language – to layman this is a very basic form of language that doesn’t contain loops and is Turing incomplete (i.e. can’t with an unlimited amount of memory, processing power and time solve everything) – it is designed for one purpose. The stack based execution language has a few important benefits such as its simplicity and minimal processing. 


The script language processes from left to right. Numbers are pushed onto the stack and then operated acted on by the next function. There are conditional operators which give the result true or false which in the case of validating a transaction are true if the signature is valid.

 
 The above example is the process of a simple pay to public key hash transaction. 


The above transaction shows the stack based operating procedure for resolving the transaction
– i.e. unlocking it and spending it. To see the process in more detail see our different types of bitcoin transactions and the P2PKH – pay to public key hash transaction type


RELATED ARTICLES:

What is the Bitcoin Transactions?
source: http://theriseofthebitcoins.blogspot.com/2016/02/what-is-bitcoin-transaction.html

How does the bitcoin network actually work?
source: http://theriseofthebitcoins.blogspot.com/2016/02/how-does-bitcoin-network-actually-work.html





Like & Share