mirror of
https://github.com/bitcoinbook/bitcoinbook
synced 2025-01-22 21:51:10 +00:00
Made changes to ch05.asciidoc
This commit is contained in:
parent
4d0570980b
commit
a6434d75b8
@ -530,6 +530,7 @@ This entire script can instead be represented by a 20-byte cryptographic hash, b
|
||||
----
|
||||
|
||||
A P2SH transaction locks the output to this hash instead of the longer script, using the locking script:
|
||||
|
||||
----
|
||||
OP_HASH160 54c557e07dde5bb6cb791c7a540e0a4796f5e97e OP_EQUAL
|
||||
----
|
||||
@ -540,17 +541,19 @@ which, as you can see, is much shorter. Instead of "pay to this 5-key multi-sign
|
||||
----
|
||||
|
||||
The two scripts are combined in two stages. First, the redeem script is checked against the locking script to make sure the hash matches:
|
||||
|
||||
----
|
||||
<2 PK1 PK2 PK3 PK4 PK5 5 OP_CHECKMULTISIG> OP_HASH160 <redeem scriptHash> OP_EQUAL
|
||||
----
|
||||
If the redeem script hash matches, the unlocking script is executed on its own, to unlock the redeem script:
|
||||
|
||||
----
|
||||
<Sig1> <Sig2> 2 PK1 PK2 PK3 PK4 PK5 5 OP_CHECKMULTISIG
|
||||
----
|
||||
|
||||
===== Pay-to-Script-Hash addresses
|
||||
===== Pay-to-script-hash addresses
|
||||
|
||||
((("addresses, bitcoin","encrypting with P2SH")))((("Pay-to-Script-Hash (P2SH)","addresses")))Another important part of the P2SH feature is the ability to encode a script hash as an address, as defined in BIP0013. P2SH addresses are Base58Check encodings of the 20-byte hash of a script, just like bitcoin addresses are Base58Check encodings of the 20-byte hash of a public key. P2SH addresses use the version prefix "5", which results in Base58Check encoded addresses that start with a "3". For example, Mohammed's complex script, hashed and Base58Check-encoded as P2SH address becomes +39RF6JqABiHdYHkfChV6USGMe6Nsr66Gzw+. Now, Mohammed can give this "address" to his customers and they can use almost any bitcoin wallet to make a simple payment, as if it were a bitcoin address. The 3 prefix gives them a hint that this is a special type of address, one corresponding to a script instead of a public key, but otherwise it works in exactly the same way as a payment to a bitcoin address.
|
||||
((("addresses, bitcoin","encrypting with P2SH")))((("Pay-to-script-hash (P2SH)","addresses")))Another important part of the P2SH feature is the ability to encode a script hash as an address, as defined in BIP0013. P2SH addresses are Base58Check encodings of the 20-byte hash of a script, just like bitcoin addresses are Base58Check encodings of the 20-byte hash of a public key. P2SH addresses use the version prefix "5", which results in Base58Check encoded addresses that start with a "3". For example, Mohammed's complex script, hashed and Base58Check-encoded as P2SH address becomes +39RF6JqABiHdYHkfChV6USGMe6Nsr66Gzw+. Now, Mohammed can give this "address" to his customers and they can use almost any bitcoin wallet to make a simple payment, as if it were a bitcoin address. The 3 prefix gives them a hint that this is a special type of address, one corresponding to a script instead of a public key, but otherwise it works in exactly the same way as a payment to a bitcoin address.
|
||||
|
||||
P2SH addresses hide all of the complexity, so that the person making a payment does not see the script.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user