Bitcoin Transactions Pay-to-Address - Pay-to-Public-Key-Hash?

13 Feb 2015

Bitcoin CompassThe Pay-to-Public-Key-Hash script is the basic form of making a transaction and is the most common form of transaction on the Bitcoin network.

Transactions that pay to a Bitcoin address contain P2PKH scripts that are resolved by sending the public key and a digital signature created by the corresponding private key.

Our other guide such as elliptic curve cryptography and digital signatures can show you why this is all that’s needed from a mathematical standpoint – the purpose of this guide though is to explain how nodes take the information using the Forth stack based programming language.

The ScriptPubKey and ScriptSig for a transaction is shown below:

<ScriptPubKey=OP_DUP OP_HASH160<Public KeyHash> OP_EQUAL OP_CHECKSIG
ScriptSig= <Signature><Public Key>

The ScriptPubKey and ScriptSig are joined together and executed in the following format.


Validation=<Signature><Public Key>OP_DUP OP_HASH160<Public KeyHash> OP_EQUAL OP_CHECKSIG

If the result is 1 then the operation is true and the transaction is valid! But first a run through of exactly how this works:

Stack language unlock

The process operates from left to right and the operators add to the stack in a LIFO process (Last in First Out).

First the signature is moved to the stack, then the public key is moved to the top of the stack. The OP_DUP duplicates the top item on the stack and then the Hash160 function hashes the top item on the stack turning the public key into its hash. The OP_EQUAL checks whether the two values of the hashed public key are the same and then the OP_CHECKSIG verifies whether the signature is true. 




Important information

This website is only provided for your general information and is not intended to be relied upon by you in making any investment decisions. You should always combine multiple sources of information and analysis before making an investment and seek independent expert financial advice.

Where we list or describe different products and services, we try to give you the information you need to help you compare them and choose the right product or service for you. We may also have tips and more information to help you compare providers.

Some providers pay us for advertisements or promotions on our website or in emails we may send you. Any commercial agreement we have in place with a provider does not affect how we describe them or their products and services. Sponsored companies are clearly labelled.

CryptoCompare needs a newer browser in order to work.
Please use one of the browsers below: