ลองทำครับ ไม่รู้ว่าถูกมั้ย ฝากตรวจการบ้านด้วยครับ #siamstr #righttech
ข้อ 5 สร้าง multisig address แบบ P2SH แบบ 1-of-4 จาก publickey ในอินพุตทั้งสี่ของธุรกรรมนี้
37d966a263350fe747f1c606b159987545844a493dd38d84b070027a895c4517
1. get raw transaction แล้วหา public key เนื่องจาก address เป็น segwit ให้ดูตรง txinwitness index ที่ 1 ตรงนั้นจะเป็น public key
```
$ bitcoin-cli getrawtransaction 37d966a263350fe747f1c606b159987545844a493dd38d84b070027a895c4517 true
{
"txid": "37d966a263350fe747f1c606b159987545844a493dd38d84b070027a895c4517",
"hash": "e28a0885b6f413e24a89e9c2bac74d4c6f335e17545f0b860da9146caf7ffe39",
"version": 2,
"size": 666,
"vsize": 344,
"weight": 1374,
"locktime": 818817,
"vin": [
{
"txid": "c9da5e51de40985b8e29d9ddd11b5d8818250773e3f3129bf065900ee841f6b5",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"txinwitness": [
"304402200dd758801b40393f68dad8ab57558803efcd2b681ee31eb44fb3cfa9666d2bf90220254d34fa4990e23652bf669053c5e16fd2fbb816bed2eeb44c1f1e6e54143e3e01",
"02bbb4ba3f39b5f3258f0014d5e4eab5a6990009e3e1dba6e8eaff10b3832394f7"
],
"sequence": 4294967294
},
{
"txid": "44fbdaec8b794fa0b6e9ff70d76d4464ada38fe5aeac7285f16fbbaf86894fd5",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"txinwitness": [
"304402201694761a5749b6a84f71459c04a44cf9d34a36ae8c9044c3af7a3a5514ef2e64022058f61feb92d6d54b71fdea47e7dfcd20f6a5c12e2fbcb15bc44fe95c73f2e80801",
"03aaf17b1a7b4108f7e5bc4f7d59c20f7fb1a72dbc74a9a3d6d1f8488df159c760"
],
"sequence": 4294967294
},
{
"txid": "c5263cf8798dd44f4aeae6421a1b5ab6a26d8623d7294c5487eec3b162305e47",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"txinwitness": [
"3044022014b65c60f65e62d9dac893e404c8de2a007c7c6b74dbac18e454d8374e159759022012453f69112adadf9495fd3fe288aa5ed9e3d836340da06fa1e82c8e09adef5701",
"03a6d919c76d9117c23570a767450013edf31cf6be7d3b5a881c06a9aa1f2c24ce"
],
"sequence": 4294967294
},
{
"txid": "09f87c09c96058b8b72ed0caefff37fbefd9d4ebe64876d3df93cc2e358763a5",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"txinwitness": [
"304402203d3b02390803c1d673fa49bd64d4a26fbeb29e3fc152af8f844d776c9409e41302206903a011a04e00a7f4ec606da4320226d2d393f565702cc58cfcef6dca67f84c01",
"0383d12258e3e294a6d7754336f6b4baef992ec4b91694d3460bcb022b11da8cd2"
],
"sequence": 4294967294
}
],
"vout": [
{
"value": 0.01000698,
"n": 0,
"scriptPubKey": {
"asm": "0 8070ec3954ecdcbfc210d0117e8d28a19eb84672",
"desc": "addr(bc1qspcwcw25anwtlsss6qgharfg5x0ts3njad8uve)#pzjnvw8p",
"hex": "00148070ec3954ecdcbfc210d0117e8d28a19eb84672",
"address": "bc1qspcwcw25anwtlsss6qgharfg5x0ts3njad8uve",
"type": "witness_v0_keyhash"
}
},
{
"value": 0.08230000,
"n": 1,
"scriptPubKey": {
"asm": "0 b5fe46c647353ec9c06374655502094095f0289c",
"desc": "addr(bc1qkhlyd3j8x5lvnsrrw3j42qsfgz2lq2yu3cs5lr)#hzcalwww",
"hex": "0014b5fe46c647353ec9c06374655502094095f0289c",
"address": "bc1qkhlyd3j8x5lvnsrrw3j42qsfgz2lq2yu3cs5lr",
"type": "witness_v0_keyhash"
}
}
],
"hex": "02000000000104b5f641e80e9065f09b12f3e373072518885d1bd1ddd9298e5b9840de515edac90000000000feffffffd54f8986afbb6ff18572acaee58fa3ad64446dd770ffe9b6a04f798becdafb440000000000feffffff475e3062b1c3ee87544c29d723866da2b65a1b1a42e6ea4a4fd48d79f83c26c50000000000feffffffa56387352ecc93dfd37648e6ebd4d9effb37ffefcad02eb7b85860c9097cf8090000000000feffffff02fa440f00000000001600148070ec3954ecdcbfc210d0117e8d28a19eb8467270947d0000000000160014b5fe46c647353ec9c06374655502094095f0289c0247304402200dd758801b40393f68dad8ab57558803efcd2b681ee31eb44fb3cfa9666d2bf90220254d34fa4990e23652bf669053c5e16fd2fbb816bed2eeb44c1f1e6e54143e3e012102bbb4ba3f39b5f3258f0014d5e4eab5a6990009e3e1dba6e8eaff10b3832394f70247304402201694761a5749b6a84f71459c04a44cf9d34a36ae8c9044c3af7a3a5514ef2e64022058f61feb92d6d54b71fdea47e7dfcd20f6a5c12e2fbcb15bc44fe95c73f2e808012103aaf17b1a7b4108f7e5bc4f7d59c20f7fb1a72dbc74a9a3d6d1f8488df159c76002473044022014b65c60f65e62d9dac893e404c8de2a007c7c6b74dbac18e454d8374e159759022012453f69112adadf9495fd3fe288aa5ed9e3d836340da06fa1e82c8e09adef57012103a6d919c76d9117c23570a767450013edf31cf6be7d3b5a881c06a9aa1f2c24ce0247304402203d3b02390803c1d673fa49bd64d4a26fbeb29e3fc152af8f844d776c9409e41302206903a011a04e00a7f4ec606da4320226d2d393f565702cc58cfcef6dca67f84c01210383d12258e3e294a6d7754336f6b4baef992ec4b91694d3460bcb022b11da8cd2817e0c00",
"blockhash": "000000000000000000024a848a9451143278f60e4c3e73003da60c7b0ef74b62",
"confirmations": 70717,
"time": 1701158269,
"blocktime": 1701158269
}
```
2. นำ public key ทั้ง 4 อันมาสร้าง multisig address
```
$ bitcoin-cli createmultisig 1 '["'"02bbb4ba3f39b5f3258f0014d5e4eab5a6990009e3e1dba6e8eaff10b3832394f7"'","'"03aaf17b1a7b4108f7e5bc4f7d59c20f7fb1a72dbc74a9a3d6d1f8488df159c760"'","'"03a6d919c76d9117c23570a767450013edf31cf6be7d3b5a881c06a9aa1f2c24ce"'","'"0383d12258e3e294a6d7754336f6b4baef992ec4b91694d3460bcb022b11da8cd2"'"]'
{
"address": "3GyWg1CCD3RDpbwCbuk9TTRQptkRfczDz8",
"redeemScript": "512102bbb4ba3f39b5f3258f0014d5e4eab5a6990009e3e1dba6e8eaff10b3832394f72103aaf17b1a7b4108f7e5bc4f7d59c20f7fb1a72dbc74a9a3d6d1f8488df159c7602103a6d919c76d9117c23570a767450013edf31cf6be7d3b5a881c06a9aa1f2c24ce210383d12258e3e294a6d7754336f6b4baef992ec4b91694d3460bcb022b11da8cd254ae",
"descriptor": "sh(multi(1,02bbb4ba3f39b5f3258f0014d5e4eab5a6990009e3e1dba6e8eaff10b3832394f7,03aaf17b1a7b4108f7e5bc4f7d59c20f7fb1a72dbc74a9a3d6d1f8488df159c760,03a6d919c76d9117c23570a767450013edf31cf6be7d3b5a881c06a9aa1f2c24ce,0383d12258e3e294a6d7754336f6b4baef992ec4b91694d3460bcb022b11da8cd2))#0a7gjjjl"
}
```
View Article →
Thread
Login to reply
Replies (3)
#siamstr #righttech
ข้อ 6 tx ใดในบล็อก 257,343 ที่ใช้เอาท์พุตของ coinbase ของบล็อก 256,128 ?
1. get block 256128 และดู transaction index ที่ 0 นั่นคือ coinbase transaction
```
$ bitcoin-cli getblockhash 256128
0000000000000007440fc4df4d953acbf67ad26adb2d7dff7bee90318b41e6c6
$ bitcoin-cli getblock 0000000000000007440fc4df4d953acbf67ad26adb2d7dff7bee90318b41e6c6 1
{
"hash": "0000000000000007440fc4df4d953acbf67ad26adb2d7dff7bee90318b41e6c6",
"confirmations": 633469,
"height": 256128,
"version": 2,
"versionHex": "00000002",
"merkleroot": "55e9a859c8e7b713ac03f0ef73fcb9597d0e44c8c692524f02ce28a200913935",
"time": 1378326261,
"mediantime": 1378321226,
"nonce": 2476184463,
"bits": "1931679c",
"difficulty": 86933017.77119441,
"chainwork": "0000000000000000000000000000000000000000000000cb286a51c63ce7b63e",
"nTx": 679,
"previousblockhash": "000000000000002736f5ecace29819ec8701abcb49fe1324c0b5196ac68d1894",
"nextblockhash": "000000000000000b64dbec8cdfed200cc23c9c04b4e8389ead2ae00b8327f12c",
"strippedsize": 249071,
"size": 249071,
"weight": 996284,
"tx": [
"611c5a0972d28e421a2308cb2a2adb8f369bb003b96eb04a3ec781bf295b74bc",
"617de7772d4f5b7022822d2c075e2753732c4fae26e1969837f0f4d4e3c792a8",
...
"ee7b2d847b3b90c12b04938b5f81106284a38659e7424e9f5a23e32672c37de0"
]
}
```
2. get raw transaction เพื่อ confirm ว่าเป็น coinbase transaction (optional)
```
$ bitcoin-cli getrawtransaction 611c5a0972d28e421a2308cb2a2adb8f369bb003b96eb04a3ec781bf295b74bc true
{
"txid": "611c5a0972d28e421a2308cb2a2adb8f369bb003b96eb04a3ec781bf295b74bc",
"hash": "611c5a0972d28e421a2308cb2a2adb8f369bb003b96eb04a3ec781bf295b74bc",
"version": 1,
"size": 111,
"vsize": 111,
"weight": 444,
"locktime": 0,
"vin": [
{
"coinbase": "0380e8034d696e656420427920415349434d696e657219230000",
"sequence": 4294967295
}
],
"vout": [
{
"value": 25.41786912,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 b93dfd929a473f652c7c3e73ed093d60ae6385c3 OP_EQUALVERIFY OP_CHECKSIG",
"desc": "addr(1HtUGfbDcMzTeHWx2Dbgnhc6kYnj1Hp24i)#qfrrzecw",
"hex": "76a914b93dfd929a473f652c7c3e73ed093d60ae6385c388ac",
"address": "1HtUGfbDcMzTeHWx2Dbgnhc6kYnj1Hp24i",
"type": "pubkeyhash"
}
}
],
"hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff1a0380e8034d696e656420427920415349434d696e657219230000ffffffff0120978097000000001976a914b93dfd929a473f652c7c3e73ed093d60ae6385c388ac00000000",
"blockhash": "0000000000000007440fc4df4d953acbf67ad26adb2d7dff7bee90318b41e6c6",
"confirmations": 633469,
"time": 1378326261,
"blocktime": 1378326261
}
```
3. get block 257343 และดู transaction ที่มี input เป็น transaction 611c5a0972d28e421a2308cb2a2adb8f369bb003b96eb04a3ec781bf295b74bc จะได้ transaction ที่ใช้ output ของ coinbase transaction ของ block 256128
ซึ่งคำตอบก็คือ transaction ที่ index ที่ 2 id c54714cb1373c2e3725261fe201f267280e21350bdf2df505da8483a6a4805fc
```
$ bitcoin-cli getblockhash 257343
0000000000000004f3fb306baa0638ffc181bc6b9752f9325612559c04d57bf9
$ bitcoin-cli getblock 0000000000000004f3fb306baa0638ffc181bc6b9752f9325612559c04d57bf9 2
{
"hash": "0000000000000004f3fb306baa0638ffc181bc6b9752f9325612559c04d57bf9",
"confirmations": 632254,
"height": 257343,
"version": 2,
"versionHex": "00000002",
"merkleroot": "5f1355dafb15850743ebf52839098a5042feeb9f7c0aef31d7ce5c634c85769a",
"time": 1378914692,
"mediantime": 1378912387,
"nonce": 777435000,
"bits": "1931679c",
"difficulty": 86933017.77119441,
"chainwork": "0000000000000000000000000000000000000000000000e3c02b65d75147cce0",
"nTx": 41,
"previousblockhash": "00000000000000070edd098ba2ce8869e8fcef3774d995b5f7c323d5061efb18",
"nextblockhash": "000000000000002ca2b996cb366bcb26ff077f7324a9dd45fc7d10115c07a15e",
"strippedsize": 38653,
"size": 38653,
"weight": 154612,
"tx": [
{
"txid": "90d10b04417f2698fa8fed92ca5c951d26613a1737da69a7450f8c7706ba8783",
"hash": "90d10b04417f2698fa8fed92ca5c951d26613a1737da69a7450f8c7706ba8783",
"version": 1,
"size": 165,
"vsize": 165,
"weight": 660,
"locktime": 0,
"vin": [
{
"coinbase": "033fed03062f503253482f048191305208705c004c0000285c36522cfabe6d6d415c0163a1bcecbf15ac152630ca5e59eb170f199e2a7ce418ab6eac162162c9040000000000000067686173682e696f",
"sequence": 0
}
],
"vout": [
{
"value": 25.02500000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 80ad90d403581fa3bf46086a91b2d9d4125db6c1 OP_EQUALVERIFY OP_CHECKSIG",
"desc": "addr(1CjPR7Z5ZSyWk6WtXvSFgkptmpoi4UM9BC)#wdx7xdkq",
"hex": "76a91480ad90d403581fa3bf46086a91b2d9d4125db6c188ac",
"address": "1CjPR7Z5ZSyWk6WtXvSFgkptmpoi4UM9BC",
"type": "pubkeyhash"
}
}
],
"hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff50033fed03062f503253482f048191305208705c004c0000285c36522cfabe6d6d415c0163a1bcecbf15ac152630ca5e59eb170f199e2a7ce418ab6eac162162c9040000000000000067686173682e696f0000000001a01e2995000000001976a91480ad90d403581fa3bf46086a91b2d9d4125db6c188ac00000000"
},
{
"txid": "67aa86bfac08ef9e520b9c07f9062c332552d9654022932bd9b45daceff7c3d2",
"hash": "67aa86bfac08ef9e520b9c07f9062c332552d9654022932bd9b45daceff7c3d2",
"version": 1,
"size": 223,
"vsize": 223,
"weight": 892,
"locktime": 0,
"vin": [
{
"txid": "55428c88d6182251e5ffabc1d7c22d0c5a64b3853919a9f52fd1b52e06562d57",
"vout": 0,
"scriptSig": {
"asm": "304402204fbacbc9ee61cdb50dfd4aa8b96977bf760c9daa2630ba20fda006191f4aab54022051c8717492286e838979f5bf10c7ac8ed451f6c155751e40875bba915ed9ff01[ALL] 04cf711bd32dda48703dbbbad48453253d064339cc9e923daa14e49aa6cab8fec34a7fa164809c4d4a9c8c50ce6aa0d9dd10d837fcdfa354b99176cf2d6a65ae9c",
"hex": "47304402204fbacbc9ee61cdb50dfd4aa8b96977bf760c9daa2630ba20fda006191f4aab54022051c8717492286e838979f5bf10c7ac8ed451f6c155751e40875bba915ed9ff01014104cf711bd32dda48703dbbbad48453253d064339cc9e923daa14e49aa6cab8fec34a7fa164809c4d4a9c8c50ce6aa0d9dd10d837fcdfa354b99176cf2d6a65ae9c"
},
"sequence": 4294967295
}
],
"vout": [
{
"value": 97.00000000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 458b0ed751f942fe68f231f80f31db92bc0c5869 OP_EQUALVERIFY OP_CHECKSIG",
"desc": "addr(17LiD9ussiHnCZBWTnWKyqHeHDnRwyAXom)#aud4lyn6",
"hex": "76a914458b0ed751f942fe68f231f80f31db92bc0c586988ac",
"address": "17LiD9ussiHnCZBWTnWKyqHeHDnRwyAXom",
"type": "pubkeyhash"
}
}
],
"fee": 0.00000000,
"hex": "0100000001572d56062eb5d12ff5a9193985b3645a0c2dc2d7c1abffe5512218d6888c4255000000008a47304402204fbacbc9ee61cdb50dfd4aa8b96977bf760c9daa2630ba20fda006191f4aab54022051c8717492286e838979f5bf10c7ac8ed451f6c155751e40875bba915ed9ff01014104cf711bd32dda48703dbbbad48453253d064339cc9e923daa14e49aa6cab8fec34a7fa164809c4d4a9c8c50ce6aa0d9dd10d837fcdfa354b99176cf2d6a65ae9cffffffff0100412a42020000001976a914458b0ed751f942fe68f231f80f31db92bc0c586988ac00000000"
},
{
"txid": "c54714cb1373c2e3725261fe201f267280e21350bdf2df505da8483a6a4805fc",
"hash": "c54714cb1373c2e3725261fe201f267280e21350bdf2df505da8483a6a4805fc",
"version": 1,
"size": 14627,
"vsize": 14627,
"weight": 58508,
"locktime": 0,
"vin": [
{
"txid": "7b22594218f5e3987b9e3a0ebbe877f0ef2cfb9a9d4df2276b471d520537e49b",
"vout": 0,
"scriptSig": {
"asm": "30450220215254b33d906f94696046c37e31f69e9c3f3303ab1c832d2383b60aff1a2dd5022100aed31a49db5772841876de2f888f5c64889d38647bb2c195ae3224812f969707[ALL] 04589f337f459cdc0c04378090927a085ebc704e1fd6994c89448bb3d56d792dc6d3d58c5525322fd2d11a135f50ad963943f928d4aa98deafc6243d829bb6d664",
"hex": "4830450220215254b33d906f94696046c37e31f69e9c3f3303ab1c832d2383b60aff1a2dd5022100aed31a49db5772841876de2f888f5c64889d38647bb2c195ae3224812f969707014104589f337f459cdc0c04378090927a085ebc704e1fd6994c89448bb3d56d792dc6d3d58c5525322fd2d11a135f50ad963943f928d4aa98deafc6243d829bb6d664"
},
"sequence": 4294967295
},
{
"txid": "0fcd1df5c482bf64ee976e8c0b68f1ea111cb86fade2f0c2a292554d842d8405",
"vout": 0,
"scriptSig": {
"asm": "3046022100e123f1fe4bcf3301bf27e5b3c30f9c0d1882f96df43a14d5d8b507aa430fadbd022100f7993cba29ad6c6dc6ef66daf387d923156a2db08067098525ab3f67a5844ee7[ALL] 04589f337f459cdc0c04378090927a085ebc704e1fd6994c89448bb3d56d792dc6d3d58c5525322fd2d11a135f50ad963943f928d4aa98deafc6243d829bb6d664",
"hex": "493046022100e123f1fe4bcf3301bf27e5b3c30f9c0d1882f96df43a14d5d8b507aa430fadbd022100f7993cba29ad6c6dc6ef66daf387d923156a2db08067098525ab3f67a5844ee7014104589f337f459cdc0c04378090927a085ebc704e1fd6994c89448bb3d56d792dc6d3d58c5525322fd2d11a135f50ad963943f928d4aa98deafc6243d829bb6d664"
},
"sequence": 4294967295
},
{
"txid": "773e54333e2959f01a2c4e3e9e6b8df7527498447398fd7d15dd405f82022628",
"vout": 0,
"scriptSig": {
"asm": "3045022100eca3384eef1c5807d01381c45ecb3c47a3d1b305b2be7865162dccff5e80b69502206f10f8c13b9f395091eaca5af46f755fa8b66d32a49e3b620c435f18739f70d7[ALL] 04589f337f459cdc0c04378090927a085ebc704e1fd6994c89448bb3d56d792dc6d3d58c5525322fd2d11a135f50ad963943f928d4aa98deafc6243d829bb6d664",
"hex": "483045022100eca3384eef1c5807d01381c45ecb3c47a3d1b305b2be7865162dccff5e80b69502206f10f8c13b9f395091eaca5af46f755fa8b66d32a49e3b620c435f18739f70d7014104589f337f459cdc0c04378090927a085ebc704e1fd6994c89448bb3d56d792dc6d3d58c5525322fd2d11a135f50ad963943f928d4aa98deafc6243d829bb6d664"
},
"sequence": 4294967295
},
{
"txid": "a298cec9fa766ea6cb53c8fc679fbeb5fe357592675f9ecc28c5fce3de629d6c",
"vout": 0,
"scriptSig": {
"asm": "30450221008a29b3ad853b7169e9ec981949029d032bf3b0ef4cd0b06679e404b1dbc2f01602201e13650678bb950b18553ea575602d119221b705cdc2fe7739a3697ace3d0f48[ALL] 04589f337f459cdc0c04378090927a085ebc704e1fd6994c89448bb3d56d792dc6d3d58c5525322fd2d11a135f50ad963943f928d4aa98deafc6243d829bb6d664",
"hex": "4830450221008a29b3ad853b7169e9ec981949029d032bf3b0ef4cd0b06679e404b1dbc2f01602201e13650678bb950b18553ea575602d119221b705cdc2fe7739a3697ace3d0f48014104589f337f459cdc0c04378090927a085ebc704e1fd6994c89448bb3d56d792dc6d3d58c5525322fd2d11a135f50ad963943f928d4aa98deafc6243d829bb6d664"
},
"sequence": 4294967295
},
{
"txid": "611c5a0972d28e421a2308cb2a2adb8f369bb003b96eb04a3ec781bf295b74bc",
"vout": 0,
"scriptSig": {
"asm": "304402201011dcd1916a9bc1aa84ee8b999f720d7a6d31d5b740e4d833caa222b208b7be022017e4af7e54e2af41f819239db7e4518f861d593fbc1924705887fd6217469d24[ALL] 04589f337f459cdc0c04378090927a085ebc704e1fd6994c89448bb3d56d792dc6d3d58c5525322fd2d11a135f50ad963943f928d4aa98deafc6243d829bb6d664",
"hex": "47304402201011dcd1916a9bc1aa84ee8b999f720d7a6d31d5b740e4d833caa222b208b7be022017e4af7e54e2af41f819239db7e4518f861d593fbc1924705887fd6217469d24014104589f337f459cdc0c04378090927a085ebc704e1fd6994c89448bb3d56d792dc6d3d58c5525322fd2d11a135f50ad963943f928d4aa98deafc6243d829bb6d664"
},
"sequence": 4294967295
},
...
],
"vout": [
{
"value": 2259.43528629,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 00ec9f810aab990131b7c8527ff7f50c316e5ca7 OP_EQUALVERIFY OP_CHECKSIG",
"desc": "addr(115tTroRo3B9ZDQ6ATJGDCHcNEVbjJoZnF)#u8jgdvx2",
"hex": "76a91400ec9f810aab990131b7c8527ff7f50c316e5ca788ac",
"address": "115tTroRo3B9ZDQ6ATJGDCHcNEVbjJoZnF",
"type": "pubkeyhash"
}
}
],
"fee": 0.00750000,
"hex": "..."
},
...
]
}
```
#siamstr #righttech
ข้อ 7 มีเอาต์พุตเดียวที่ยังไม่ได้ใช้งานจากบล็อก 123,321 เอาต์พุตดังกล่าวถูกส่งไปที่ address ไหน
1. get block 123321
$ bitcoin-cli getblockhash 123321
0000000000005e5c28343b9ffd104931077012d0ce93e57a4a4082771f2de3da
$ bitcoin-cli getblock 0000000000005e5c28343b9ffd104931077012d0ce93e57a4a4082771f2de3da 1
{
"hash": "0000000000005e5c28343b9ffd104931077012d0ce93e57a4a4082771f2de3da",
"confirmations": 766368,
"height": 123321,
"version": 1,
"versionHex": "00000001",
"merkleroot": "e5dbb7b33277b280059ea86866ca66be80072e22ba3215dd29d1aeaf05529dc1",
"time": 1305132066,
"mediantime": 1305130878,
"nonce": 1622957241,
"bits": "1a6a93b3",
"difficulty": 157416.4018436489,
"chainwork": "00000000000000000000000000000000000000000000000052d3424e95383558",
"nTx": 8,
"previousblockhash": "00000000000016c0f1e1dd4c2db7cdb772d22a024c9195cf3bf625eb394b6df0",
"nextblockhash": "00000000000038a25c178707b64535c2fb8d36a70e3093b36f866849e9539d55",
"strippedsize": 3068,
"size": 3068,
"weight": 12272,
"tx": [
"255fb8ff561fc1668c79fbf902f394ffd1fbf29797d6d9266821ca4baef56906",
"551d33c93e4a7d7753b621bd275314ae4fe9741a9b4e54894d36138614d182e9",
"481bbbaafa310605a5cd049432c7636e1ec8008bdbb420ffacb9c4a1477f0d95",
"4437c011da6875608c20848f18d83beb8354314116bbf9e99caf8a20a2784aba",
"136a01c0ab4943a501cf4f44484202ccfe41b93a8a2d7d1fc2874295a86d59c3",
"67784993545a27ace47e5dd293f4fbf0bfea8ac706634497acf6ded523c93807",
"097e521fee933133729cfc34424c4277b36240b13ae4b01fda17756da1848c1e",
"8ff78938648b2fb5d2dfe4094f98b8e2a34d53064abbca4b17db271001ae4078"
]
}
2. วน loop getrawtransaction ของทุก transaction เพื่อตรวจสอบ vouts
$ bitcoin-cli getrawtransaction 255fb8ff561fc1668c79fbf902f394ffd1fbf29797d6d9266821ca4baef56906 1
$ bitcoin-cli getrawtransaction 551d33c93e4a7d7753b621bd275314ae4fe9741a9b4e54894d36138614d182e9 1
$ bitcoin-cli getrawtransaction 481bbbaafa310605a5cd049432c7636e1ec8008bdbb420ffacb9c4a1477f0d95 1
$ bitcoin-cli getrawtransaction 4437c011da6875608c20848f18d83beb8354314116bbf9e99caf8a20a2784aba 1
$ bitcoin-cli getrawtransaction 136a01c0ab4943a501cf4f44484202ccfe41b93a8a2d7d1fc2874295a86d59c3 1
$ bitcoin-cli getrawtransaction 67784993545a27ace47e5dd293f4fbf0bfea8ac706634497acf6ded523c93807 1
$ bitcoin-cli getrawtransaction 097e521fee933133729cfc34424c4277b36240b13ae4b01fda17756da1848c1e 1
$ bitcoin-cli getrawtransaction 8ff78938648b2fb5d2dfe4094f98b8e2a34d53064abbca4b17db271001ae4078 1
3. ใช้ gettxout ของทุก vouts ในแต่ละ trnasction แล้วถ้าอันไหนมี output แปลว่าอันนั้นยังไม่ได้ถูกใช้งาน
ซึ่งจะได้คำตอบคือ output ที่ส่งไปที่ address 1FPDNNmgwEnKuF7GQzSqUcVQdzSRhz4pgX
$ bitcoin-cli gettxout 097e521fee933133729cfc34424c4277b36240b13ae4b01fda17756da1848c1e 0
{
"bestblock": "000000000000000000007f8b78d080e1f17988c6185d8f580924d3dca0e714f4",
"confirmations": 766370,
"value": 0.15001501,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 9dc53ca382aea9d38d6f010d14df2ccca4ce3106 OP_EQUALVERIFY OP_CHECKSIG",
"desc": "addr(1FPDNNmgwEnKuF7GQzSqUcVQdzSRhz4pgX)#vey4q7p4",
"hex": "76a9149dc53ca382aea9d38d6f010d14df2ccca4ce310688ac",
"address": "1FPDNNmgwEnKuF7GQzSqUcVQdzSRhz4pgX",
"type": "pubkeyhash"
},
"coinbase": false
}
#siamstr #righttech
ข้อ 8 public key ใดที่ลงนามอินพุต 0 ใน tx นี้:e5969add849689854ac7f28e45628b89f7454b83e9699e551ce14b6f90c86163
1. get raw transaction จะเห็นว่า prevout มี type เป็น witness_v0_keyhash หมายความว่าต้องใช้ txinwitness มา process ในการโอนออก
โดย bitcoin จะนำ txinwitness มา push ลง stack แล้ว pop มา process ทีละตัว (stack ใน programing เวลา get ค่าออกจาก stack ค่าที่เอาใส่ไปล่าสุดจะออกมาก่อน) ซึ่ง bitcoin จะ push txinwitness จาก index ที่ 0 ทีละตัวจนถึง index สุดท้ายตอนทำงานก็จะ pop ค่าออกมาจากตัวสุดท้าย ซึ่งตัวสุดท้ายในที่นี้ก็คือ script ส่วนตัวถัด ๆ ไป ก็จะเป็น input ของ script
```
$ bitcoin-cli getrawtransaction e5969add849689854ac7f28e45628b89f7454b83e9699e551ce14b6f90c86163 2
{
"txid": "e5969add849689854ac7f28e45628b89f7454b83e9699e551ce14b6f90c86163",
"hash": "881d7ab9ad60d6658283dbbad345f6f28491a264cd11d060b4fb4f121851a7f3",
"version": 2,
"size": 237,
"vsize": 121,
"weight": 483,
"locktime": 0,
"vin": [
{
"txid": "71fdaf44c9820250e1ae0331a2b2f20343bf0eddf93bc6165859e61739ab1a8b",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"txinwitness": [
"3044022050b45d29a3f2cf098ad0514dff940c78046c377a7e925ded074ad927363dc2dd02207c8a8ca7d099483cf3b50b00366ad2e2771805d6be900097c2c57bc58b4f34a501",
"01",
"6321025d524ac7ec6501d018d322334f142c7c11aa24b9cffec03161eca35a1e32a71f67029000b2752102ad92d02b7061f520ebb60e932f9743a43fee1db87d2feb1398bf037b3f119fc268ac"
],
"prevout": {
"generated": false,
"height": 665363,
"value": 0.00022642,
"scriptPubKey": {
"asm": "0 6b6c3a0f972fbbe7e4913001060a6a9796388afddb10975d7fe516474362d9cc",
"desc": "addr(bc1qddkr5ruh97a70ey3xqqsvzn2j7tr3zhamvgfwhtlu5tywsmzm8xqz7d4tx)#ynaq0rwf",
"hex": "00206b6c3a0f972fbbe7e4913001060a6a9796388afddb10975d7fe516474362d9cc",
"address": "bc1qddkr5ruh97a70ey3xqqsvzn2j7tr3zhamvgfwhtlu5tywsmzm8xqz7d4tx",
"type": "witness_v0_scripthash"
}
},
"sequence": 0
}
],
"vout": [
{
"value": 0.00009742,
"n": 0,
"scriptPubKey": {
"asm": "0 c47082b5a49065d85ab65730e8c28bb0b4810b96",
"desc": "addr(bc1qc3cg9ddyjpjask4k2ucw3s5tkz6gzzukzmg49s)#c68e8rrv",
"hex": "0014c47082b5a49065d85ab65730e8c28bb0b4810b96",
"address": "bc1qc3cg9ddyjpjask4k2ucw3s5tkz6gzzukzmg49s",
"type": "witness_v0_keyhash"
}
}
],
"fee": 0.00012900,
"hex": "020000000001018b1aab3917e6595816c63bf9dd0ebf4303f2b2a23103aee1500282c944affd71000000000000000000010e26000000000000160014c47082b5a49065d85ab65730e8c28bb0b4810b9603473044022050b45d29a3f2cf098ad0514dff940c78046c377a7e925ded074ad927363dc2dd02207c8a8ca7d099483cf3b50b00366ad2e2771805d6be900097c2c57bc58b4f34a50101014d6321025d524ac7ec6501d018d322334f142c7c11aa24b9cffec03161eca35a1e32a71f67029000b2752102ad92d02b7061f520ebb60e932f9743a43fee1db87d2feb1398bf037b3f119fc268ac00000000",
"blockhash": "0000000000000000000b0e5eec04d784347ef564b3ddb939eca019a66c9cedbe",
"confirmations": 224382,
"time": 1610254919,
"blocktime": 1610254919
}
```
2. ถ้าเอา script มา decode จะเห็นการทำงานของ script คือ
OP_IF
025d524ac7ec6501d018d322334f142c7c11aa24b9cffec03161eca35a1e32a71f
OP_ELSE
144
OP_CHECKSEQUENCEVERIFY
OP_DROP
02ad92d02b7061f520ebb60e932f9743a43fee1db87d2feb1398bf037b3f119fc2
OP_ENDIF
OP_CHECKSIG
จากข้อ 1 ของใน txinwitness stack ตัวถัดไปคือ input ต่อไปของ script ซึ่งมีค่าเป็น 01 แปลงเป็น boolean จะมีค่าเป็น true แปลว่าการทำงานของ script จะทำงานในส่วนของ OP_IF
ซึ่งหมายความว่า script จะใช้ public key 025d524ac7ec6501d018d322334f142c7c11aa24b9cffec03161eca35a1e32a71f ใน operation OP_CHECKSIG
หลังจากได้ public key แล้ว script จะทำ OP_CHECKSIG โดยใช้ input เป็นของใน txinwitness stack ตัวถัดไปซึ่งก็คือ signature ที่จะใช้ในการ verify ด้วย public key 025d524ac7ec6501d018d322334f142c7c11aa24b9cffec03161eca35a1e32a71f
```
$ bitcoin-cli decodescript 6321025d524ac7ec6501d018d322334f142c7c11aa24b9cffec03161eca35a1e32a71f67029000b2752102ad92d02b7061f520ebb60e932f9743a43fee1db87d2feb1398bf037b3f119fc268ac
{
"asm": "OP_IF 025d524ac7ec6501d018d322334f142c7c11aa24b9cffec03161eca35a1e32a71f OP_ELSE 144 OP_CHECKSEQUENCEVERIFY OP_DROP 02ad92d02b7061f520ebb60e932f9743a43fee1db87d2feb1398bf037b3f119fc2 OP_ENDIF OP_CHECKSIG",
"desc": "raw(6321025d524ac7ec6501d018d322334f142c7c11aa24b9cffec03161eca35a1e32a71f67029000b2752102ad92d02b7061f520ebb60e932f9743a43fee1db87d2feb1398bf037b3f119fc268ac)#8n7kw4g9",
"type": "nonstandard",
"p2sh": "3FM8BvtRqG5uNTgTLXGBxe2cKj3rtBFVHa",
"segwit": {
"asm": "0 6b6c3a0f972fbbe7e4913001060a6a9796388afddb10975d7fe516474362d9cc",
"desc": "addr(bc1qddkr5ruh97a70ey3xqqsvzn2j7tr3zhamvgfwhtlu5tywsmzm8xqz7d4tx)#ynaq0rwf",
"hex": "00206b6c3a0f972fbbe7e4913001060a6a9796388afddb10975d7fe516474362d9cc",
"address": "bc1qddkr5ruh97a70ey3xqqsvzn2j7tr3zhamvgfwhtlu5tywsmzm8xqz7d4tx",
"type": "witness_v0_scripthash",
"p2sh-segwit": "32KvHwVHXtoCgvNZZ3jXNZJDgC77yTA1yr"
}
}
```