0

I need to send money in one transaction to 2 addresses so that any of them can spend it. In other words - I need to create same transaction as here https://www.blocktrail.com/BTC/tx/6e2c5b6b2a926a7da2415ae55c701e83d6e7bc46bad9bc23b5f9c7ef1ae26998 ( hex of raw transaction is

010000000227ed8477b4d0ab4d52bc31e0639f2f58665d9f7aff0a2aab229bba51af28ea5b000000008a4730440220279b45f812ebd1004ee041eb75a3f42657dce19bdba06b30b2d1b70f45e2590602201b06ecbbbf6fae0a3455d98ac2924cd6dc3022425a2f08c60ffb46e96dbdc8e9014104a84d304aa8963fbd36287e674f109827b6d6ea60d57a7d9357df03be1fcedb2c47475ca128b1a50408b7f584041ffd52d6b19aba5256e99dcdbbe2ed7373775dfffffffff302a856316c80cfbb5735c7a1fd5caad5b856206e2855e6f98bad5959778620010000008a47304402203b163fb30bf53c15e1b7d4ab8af17c3e79193f12d29b17d0a68afac8dc07f07b0220364d304ee4d3fcba82729ba5b011f99636e5633f66f5af224fd8ec5cd1850a44014104a84d304aa8963fbd36287e674f109827b6d6ea60d57a7d9357df03be1fcedb2c47475ca128b1a50408b7f584041ffd52d6b19aba5256e99dcdbbe2ed7373775dffffffff028096980000000000c9524104478f498fe3f6872a9559ae0fd5975bc44f500eed955a835027962099c333536f60b4e60383e6e1081efa0a76df1ef0aefb4da87ff0c8f12dab5da2969fc7b24e41044f09a164267c635c6991f7a96bc7901d035c07161a0074d719be723f6a9c50bc72b900092cffec5f3c3484dae35d04a5a2fa2e75f3a99e17577537c1227b44ba4104971e5b8b222fe47f742fa07d3327d36a6cd37088656ce29842ed82e1dc8bffaa81848b3219359fdf9d8b590d3af85cfff2d06d4b19fde5ed560b2c9caa5dd65653ae40196604000000001976a9148c1b30a7b5f8bd87c1cd8b8c4cb4f74345f1978a88ac00000000

) with multisig type of scriptPubKey of output and array of destination addresses with 2 P2PKH (no 1 P2SH!) items.

curl --user USERNAME:PASSWORD --data-binary '{"method":"getrawtransaction","id":"a2e8f6b0-5c03-4315-a067-050a9adb6dfc","params":["6e2c5b6b2a926a7da2415ae55c701e83d6e7bc46bad9bc23b5f9c7ef1ae26998",1]}' "http://127.0.0.1:18833"

{"result":{"hex":"010000000227ed8477b4d0ab4d52bc31e0639f2f58665d9f7aff0a2aab229bba51af28ea5b000000008a4730440220279b45f812ebd1004ee041eb75a3f42657dce19bdba06b30b2d1b70f45e2590602201b06ecbbbf6fae0a3455d98ac2924cd6dc3022425a2f08c60ffb46e96dbdc8e9014104a84d304aa8963fbd36287e674f109827b6d6ea60d57a7d9357df03be1fcedb2c47475ca128b1a50408b7f584041ffd52d6b19aba5256e99dcdbbe2ed7373775dfffffffff302a856316c80cfbb5735c7a1fd5caad5b856206e2855e6f98bad5959778620010000008a47304402203b163fb30bf53c15e1b7d4ab8af17c3e79193f12d29b17d0a68afac8dc07f07b0220364d304ee4d3fcba82729ba5b011f99636e5633f66f5af224fd8ec5cd1850a44014104a84d304aa8963fbd36287e674f109827b6d6ea60d57a7d9357df03be1fcedb2c47475ca128b1a50408b7f584041ffd52d6b19aba5256e99dcdbbe2ed7373775dffffffff028096980000000000c9524104478f498fe3f6872a9559ae0fd5975bc44f500eed955a835027962099c333536f60b4e60383e6e1081efa0a76df1ef0aefb4da87ff0c8f12dab5da2969fc7b24e41044f09a164267c635c6991f7a96bc7901d035c07161a0074d719be723f6a9c50bc72b900092cffec5f3c3484dae35d04a5a2fa2e75f3a99e17577537c1227b44ba4104971e5b8b222fe47f742fa07d3327d36a6cd37088656ce29842ed82e1dc8bffaa81848b3219359fdf9d8b590d3af85cfff2d06d4b19fde5ed560b2c9caa5dd65653ae40196604000000001976a9148c1b30a7b5f8bd87c1cd8b8c4cb4f74345f1978a88ac00000000","txid":"6e2c5b6b2a926a7da2415ae55c701e83d6e7bc46bad9bc23b5f9c7ef1ae26998","hash":"6e2c5b6b2a926a7da2415ae55c701e83d6e7bc46bad9bc23b5f9c7ef1ae26998","size":612,"vsize":612,"version":1,"locktime":0,"vin":[{"txid":"5bea28af51ba9b22ab2a0aff7a9f5d66582f9f63e031bc524dabd0b47784ed27","vout":0,"scriptSig":{"asm":"30440220279b45f812ebd1004ee041eb75a3f42657dce19bdba06b30b2d1b70f45e2590602201b06ecbbbf6fae0a3455d98ac2924cd6dc3022425a2f08c60ffb46e96dbdc8e9[ALL] 04a84d304aa8963fbd36287e674f109827b6d6ea60d57a7d9357df03be1fcedb2c47475ca128b1a50408b7f584041ffd52d6b19aba5256e99dcdbbe2ed7373775d","hex":"4730440220279b45f812ebd1004ee041eb75a3f42657dce19bdba06b30b2d1b70f45e2590602201b06ecbbbf6fae0a3455d98ac2924cd6dc3022425a2f08c60ffb46e96dbdc8e9014104a84d304aa8963fbd36287e674f109827b6d6ea60d57a7d9357df03be1fcedb2c47475ca128b1a50408b7f584041ffd52d6b19aba5256e99dcdbbe2ed7373775d"},"sequence":4294967295},{"txid":"2086775959ad8bf9e655286e2056b8d5aa5cfda1c73557bbcf806c3156a802f3","vout":1,"scriptSig":{"asm":"304402203b163fb30bf53c15e1b7d4ab8af17c3e79193f12d29b17d0a68afac8dc07f07b0220364d304ee4d3fcba82729ba5b011f99636e5633f66f5af224fd8ec5cd1850a44[ALL] 04a84d304aa8963fbd36287e674f109827b6d6ea60d57a7d9357df03be1fcedb2c47475ca128b1a50408b7f584041ffd52d6b19aba5256e99dcdbbe2ed7373775d","hex":"47304402203b163fb30bf53c15e1b7d4ab8af17c3e79193f12d29b17d0a68afac8dc07f07b0220364d304ee4d3fcba82729ba5b011f99636e5633f66f5af224fd8ec5cd1850a44014104a84d304aa8963fbd36287e674f109827b6d6ea60d57a7d9357df03be1fcedb2c47475ca128b1a50408b7f584041ffd52d6b19aba5256e99dcdbbe2ed7373775d"},"sequence":4294967295}],"vout":[{"value":0.10000000,"n":0,"scriptPubKey":{"asm":"2 04478f498fe3f6872a9559ae0fd5975bc44f500eed955a835027962099c333536f60b4e60383e6e1081efa0a76df1ef0aefb4da87ff0c8f12dab5da2969fc7b24e 044f09a164267c635c6991f7a96bc7901d035c07161a0074d719be723f6a9c50bc72b900092cffec5f3c3484dae35d04a5a2fa2e75f3a99e17577537c1227b44ba 04971e5b8b222fe47f742fa07d3327d36a6cd37088656ce29842ed82e1dc8bffaa81848b3219359fdf9d8b590d3af85cfff2d06d4b19fde5ed560b2c9caa5dd656 3 OP_CHECKMULTISIG","hex":"524104478f498fe3f6872a9559ae0fd5975bc44f500eed955a835027962099c333536f60b4e60383e6e1081efa0a76df1ef0aefb4da87ff0c8f12dab5da2969fc7b24e41044f09a164267c635c6991f7a96bc7901d035c07161a0074d719be723f6a9c50bc72b900092cffec5f3c3484dae35d04a5a2fa2e75f3a99e17577537c1227b44ba4104971e5b8b222fe47f742fa07d3327d36a6cd37088656ce29842ed82e1dc8bffaa81848b3219359fdf9d8b590d3af85cfff2d06d4b19fde5ed560b2c9caa5dd65653ae","reqSigs":2,"type":"multisig","addresses":["1NiA6V8Ges2vEkSx11X5oo2aCyTsCv3XH3","18am8jUnBqru2jtQpQbE4LCywBWUPUooP1","1Fr1wwdwoNH3F7zFAvcWJte5vsacto3EXC"]}},{"value":0.73800000,"n":1,"scriptPubKey":{"asm":"OP_DUP OP_HASH160 8c1b30a7b5f8bd87c1cd8b8c4cb4f74345f1978a OP_EQUALVERIFY OP_CHECKSIG","hex":"76a9148c1b30a7b5f8bd87c1cd8b8c4cb4f74345f1978a88ac","reqSigs":1,"type":"pubkeyhash","addresses":["1DmpB4AxC8tee5cMNhEjxg4xcaXw9cmAen"]}}],"blockhash":"0000000000000a96fe9d4d61b19127548bfeb40f2aa972c41b7bf8dc09e2967b","confirmations":326412,"time":1329692179,"blocktime":1329692179},"error":null,"id":"a2e8f6b0-5c03-4315-a067-050a9adb6dfc"}

How we can see:

"type":"multisig","addresses":["1NiA6V8Ges2vEkSx11X5oo2aCyTsCv3XH3","18am8jUnBqru2jtQpQbE4LCywBWUPUooP1","1Fr1wwdwoNH3F7zFAvcWJte5vsacto3EXC"]

I need same result - array of several P2PKH addresses and multisig type.

But https://bitcoin.org/en/developer-reference#createrawtransaction method does not allow directly set array of addresses for 1 output in transaction - only 1 address.


I created transactions with P2SH address, which was created with createmultisig function:

user@workstation:/home/username$ bitcoin-cli createmultisig 1 '''["1BdxBor4JG76RKLAwJZfHC58fWbgidYukz","1MN3cT9Ro927h4kgpSZ5V7SfYjrwTysXv7"]''' { "address": "3Jc4v7eo9rptPj4277c9cCjgJmWSQmBiwj", "redeemScript": "512102f2221ec0e4baa45633a1f10d41cb199d943ec448368b90d9c7982095fd926ffa2102a9132ba9b227c62cf02deaff00e974fd9bfbe96ed1947d9bf8c7af40c5c22dd752ae" }

and after

bitcoin-cli createrawtransaction '''[{"txid" : "4989efcec28faedc86ee309a0cb1ba1319987d5c214fcb39d709538576e79342","vout" : 1,"sequence":1}]''' '{ "3Jc4v7eo9rptPj4277c9cCjgJmWSQmBiwj": 0.00005500,"12S42ZEw2741DHrivgZHLfX8M58mxb7bFy": 0.01102678}' after signed transaction and sent into the network

hash of transaction:

d1789305f1ae4a39c045e0c67a024048cda0990297dc863e4caac546c6c32b86

raw:

02000000014293e776855309d739cb4f215c7d981913bab10c9a30ee86dcae8fc2ceef8949010000006a47304402200c7a7e89dc37a457c9070b928619b0ebed9b9a8fcbe1ec0ae9a06ecd695279eb0220015f1898c527e38319818f9939822b0ade1c1c508cf7d1215bf2b99905b1fcff01210267af6c6bf4ae6e37f019fbfbc7df70acf48663adbf19161bd874f3babd6bf15c01000000027c1500000000000017a914b98a8e7f0375003d5537ff8489fcf9c4ad98f2358756d31000000000001976a9140fb50d2ec6bb62bd690bb55142101ca28a678be188ac00000000

But in the result of json-rpc method getrawtransaction I see "scriptPubKey": { "asm":"OP_HASH160 b98a8e7f0375003d5537ff8489fcf9c4ad98f235 OP_EQUAL", "hex":"a914b98a8e7f0375003d5537ff8489fcf9c4ad98f23587", "reqSigs":1, "type":"scripthash", "addresses":["3Jc4v7eo9rptPj4277c9cCjgJmWSQmBiwj"] }

meanwhile I need type: "multisig" and array of several P2PKH addresses, no 1 P2SH address.


Another attemption: I used addmultisigaddress function user@workstation:/home/username$ bitcoin-cli addmultisigaddress 2 '["1BdxBor4JG76RKLAwJZfHC58fWbgidYukz","1MN3cT9Ro927h4kgpSZ5V7SfYjrwTysXv7"]' 3P6sVMdtiqSwPuruSMguJQmmvFba3groVh

user@workstation:/home/username$ bitcoin-cli validateaddress 3P6sVMdtiqSwPuruSMguJQmmvFba3groVh { "isvalid": true, "address": "3P6sVMdtiqSwPuruSMguJQmmvFba3groVh", "scriptPubKey": "a914eadd957f6e1c6f4e71f9bd0a8632d8e3a61af43f87", "ismine": true, "iswatchonly": false, "isscript": true, "script": "multisig", "hex": "522102f2221ec0e4baa45633a1f10d41cb199d943ec448368b90d9c7982095fd926ffa2102a9132ba9b227c62cf02deaff00e974fd9bfbe96ed1947d9bf8c7af40c5c22dd752ae", "addresses": [ "1BdxBor4JG76RKLAwJZfHC58fWbgidYukz", "1MN3cT9Ro927h4kgpSZ5V7SfYjrwTysXv7" ], "sigsrequired": 2, "account": "" } bitcoin-cli createrawtransaction '''[{"txid" : "d1789305f1ae4a39c045e0c67a024048cda0990297dc863e4caac546c6c32b86","vout" : 1,"sequence":1}]''' '{ "3P6sVMdtiqSwPuruSMguJQmmvFba3groVh": 0.00005500,"12S42ZEw2741DHrivgZHLfX8M58mxb7bFy": 0.01}' after signed transaction and sent into the network

hash of transaction:

cbf1bba98082f23889f79364ae146b6cbbfb1767a20c0e2bc210fee43561ee1d

raw:

0200000001862bc3c646c5aa4c3e86dc970299a0cd4840027ac6e045c0394aaef1059378d1010000006a47304402205ad43bb4c6e07387a62d5c1859f48869b21cd069fe9bda93b05466e0da42228102202d3d894fae7a11b3369c5616eebbc6b3ae00001ed71f0b0d8e3324ef2d8e5c9101210267af6c6bf4ae6e37f019fbfbc7df70acf48663adbf19161bd874f3babd6bf15c01000000027c1500000000000017a914eadd957f6e1c6f4e71f9bd0a8632d8e3a61af43f8740420f00000000001976a9140fb50d2ec6bb62bd690bb55142101ca28a678be188ac00000000

But in the result of json-rpc method getrawtransaction I see again scriptPubKey": { "asm":"OP_HASH160 eadd957f6e1c6f4e71f9bd0a8632d8e3a61af43f OP_EQUAL", "hex":"a914eadd957f6e1c6f4e71f9bd0a8632d8e3a61af43f87", "reqSigs":1, "type":"scripthash", "addresses":["3P6sVMdtiqSwPuruSMguJQmmvFba3groVh"] }

meanwhile I need type: "multisig" and array of several P2PKH addresses, no 1 P2SH address.


What I am doing wrong?

0

I try to provide a (partial) answer: I thin you are not doing anything wrong... there are two ways of creating multisig tx. The "old" way as with your link from blocktrail, and the "new" way as per your following text. The old way had two or three disadvantages: it bloats the blockchain from the beginning, the fees are high at the beginning, and it discloses the possible signer's pubkeys. In this case the 3 non compressed pubkeys have each 65 bytes, so 200 bytes on the blockchain...

The new multisig via a P2SH construct basically hashes the spending logic (also called the redeem script: 2 3 CHECKMULTISIG), and base58check encoded provides a "P2SH address" (beginning with a "3"). This hash is then only 20 Bytes long, non-reversible (you can't see which are the pubkeys), and the fee for bringing this tx to the blockchain remain low. Of course, at the very end, the spending this tx requires to disclose and pay the higher fees.

Unless you don't have a very, very specific use case, do you think it is impossible to use the newer logic? I found further description in Andreas book "Mastering Bitcoin" in Chapter 7, page 149ff - it is also online available.

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.