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?
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)
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.
- 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
The "Bitcoin Address" for P2PKH transaction is Base58(0pHC).
The "Bitcoin Address" for P2SH transaction is Base58(5sHC).
So, again, what may be the Bitcoin Address for standard multisig transaction?
Thanks, --- Kosta Z.