<p>Sorry, my English is poor, I'll try to explain. Feel free to comment and ask.</p>

<p>First, terminology. There are no "pay to pub key hash msig txs". There are</p>

<ul>
<li>bare multisig outputs</li>
<li>p2sh outputs</li>
</ul>

<p>In <strong>bare multisig</strong> output i create a list on [N] pubkeys and choose [M]. The output script will look like [push M] [push key1] [push key2]... [push keyN] [push N] [checkmultisig]</p>

<p>Every person can check this set. If he has [M] keys he will be able to redeem this output. If he has less than [M] keys he will be able to partially sign the redeem transaction and pass it to another person (this passing step can not be done within bitcoin network, because nodes do not relay partially signed transactions). When the transaction gains at least [M] signatures it can be mined. Have a look to <a href="https://gist.github.com/gavinandresen/3966071" rel="nofollow noreferrer">https://gist.github.com/gavinandresen/3966071</a></p>

<p><strong>p2sh</strong> gives more functionality. I can write my own redeem script and calculate its checksum. To redeem p2sh output you should know the script itself (blockchain contains only the hash of it) and you should create scriptSig for it. Usually p2sh outputs used for multisig transactions, but there are exceptions. <a href="https://bitcointalk.org/index.php?topic=293382.0" rel="nofollow noreferrer">https://bitcointalk.org/index.php?topic=293382.0</a></p>

<p>Update:
One more useful link: <a href="https://bitcoin.stackexchange.com/questions/3718/what-are-multi-signature-transactions">What are multi-signature transactions?</a></p>

CC BY-SA 3.0
2014-08-01T04:39:59.713Z
2014-08-01T08:10:14.983Z
2017-04-13T12:47:33.610Z
amaclin
<p>If I understand correctly, there are two methods to perform a multi-signature transactions in Bitcoin. One is "pay to pub key hash", which is a method commonly used to send standard single signature transactions. The other is "pay to script hash", as specified in <a href="https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki" rel="noreferrer">BIP 16</a>. </p>

<p>If you use "Pay to pub key hash" , any senders to the multisig address need to specify all the public keys involved in the multisig address, which can be cumbersome. If you use "pay to script hash" , the sender only needs to know the hash of the script , which is equivalent to the length of a single bitcoin address.  Obviously, "pay to script hash" fits better with the various infrastructure already setup around the standard transaction.  </p>

<p>Are there any other advantages or disadvantages between the two methods? </p>

<multi-signature>
Multi-signature and "pay to script hash" vs "pay to pub key hash"
k kurokawa
# Multi-signature and "pay to script hash" vs "pay to pub key hash"

(Asked by: username_0 on 2014-07-26)

If I understand correctly, there are two methods to perform a multi-signature transactions in Bitcoin. One is "pay to pub key hash", which is a method commonly used to send standard single signature transactions. The other is "pay to script hash", as specified in [BIP 16](https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki).

If you use "Pay to pub key hash" , any senders to the multisig address need to specify all the public keys involved in the multisig address, which can be cumbersome. If you use "pay to script hash" , the sender only needs to know the hash of the script , which is equivalent to the length of a single bitcoin address. Obviously, "pay to script hash" fits better with the various infrastructure already setup around the standard transaction.

Are there any other advantages or disadvantages between the two methods?

**Tags:** multi-signature


---

## 1 answers

### Answer by username_1 on 2014-08-01. Score: 4 | Accepted answer

Sorry, my English is poor, I'll try to explain. Feel free to comment and ask.

First, terminology. There are no "pay to pub key hash msig txs". There are

* bare multisig outputs
* p2sh outputs

In **bare multisig** output i create a list on [N] pubkeys and choose [M]. The output script will look like [push M] [push key1] [push key2]... [push keyN] [push N] [checkmultisig]

Every person can check this set. If he has [M] keys he will be able to redeem this output. If he has less than [M] keys he will be able to partially sign the redeem transaction and pass it to another person (this passing step can not be done within bitcoin network, because nodes do not relay partially signed transactions). When the transaction gains at least [M] signatures it can be mined. Have a look to <https://gist.github.com/gavinandresen/3966071>

**p2sh** gives more functionality. I can write my own redeem script and calculate its checksum. To redeem p2sh output you should know the script itself (blockchain contains only the hash of it) and you should create scriptSig for it. Usually p2sh outputs used for multisig transactions, but there are exceptions. <https://bitcointalk.org/index.php?topic=293382.0>

Update:
One more useful link: [What are multi-signature transactions?](https://bitcoin.stackexchange.com/questions/3718/what-are-multi-signature-transactions)


---

