1

Question

A standard multisig transaction is:

  • scriptPubkey = m <p1> ... <pn> n OP_CHECKMULTISIG
  • scriptSig = OP_0 <s1> ... <sm>

Where: 1 <= m <= n <= 3.

Note, that it is not P2SH transaction!

So, what is the Bitcoin Address for this transaction? In case of escrow, what Bitcoin Address should be provided to the trading parties?

Short glossary

p = public key

pH = public key hash, RIPEMD(SHA(public key))

sH = hash of serialized script, RIPEMD(SHA(ser. script))

C = first 4-bytes of SHA256(SHA256(data), where data is

X = bitcoin address prefix (0x00 for P2PKH transaction, 0x05 for P2SH transaction)

0pHC = concatenation of bytes (0: 1-byte, pH: 32-bytes, C: 4-bytes)

Bitcoin Addresses

P2PK transaction

The "Bitcoin Address" for P2PK is Base58(XpC), where "X" (bitcoin address prefix) is not currently defined for P2PK transaction type. See https://en.bitcoin.it/wiki/List_of_address_prefixes.

Where:

  • X is the bitcoin address prefix (for example, 0x02)
  • p is the public key
  • C is the checksum (SHA^2(public key))
  • XpC is the concatenation of X byte, p string and C 4-bytes

P2PKH transaction

The "Bitcoin Address" for P2PKH transaction is Base58(0pHC).

P2SH transaction

The "Bitcoin Address" for P2SH transaction is Base58(5sHC).

So, again, what may be the Bitcoin Address for standard multisig transaction?

Thanks, --- Kosta Z.

2

A standard multisig transaction does not have a bitcoin address. This is precisely why it is wrapped as the redeem script of a P2SH bitcoin address.

Raw multisig transactions are not used anymore.

  • Can you please point to the BIP or the source code that disables the use of the raw multisig? Thanks! – KostaZ Oct 14 '17 at 14:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.