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. 



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