LoginSignup
2
0

More than 5 years have passed since last update.

bitcoin-cli を使ってSegwit Address を作る

Last updated at Posted at 2018-05-26

Introduction

今回は早稲田のd-dataのBlockchain講座(#ddata_bc)の課題としてBitcoin-Core上でSegwitを用いたTransactionの生成をしました。

参考記事

Docker Containerを作る

  1. Install Bitcoin Core

-> 別記事

アドレスを作る

2.Create a non SegWit address.
3.Create two SegWit address.
Segwitでないアドレス(P2PKH)1つとSegwitアドレス(P2SH-SegWit)2つを作成する。
あとでそれぞれのアドレスから別々に送金をしたいので、別々のアカウントで管理する。

Non-Segwit
$ bitcoin-cli getnewaddress nonsegwit          
2NBBasuGC8i7cBYdmUtJyPzKen1J46d5RLD
First-Segwit
$ bitcoin-cli getnewaddress segwit2 p2sh-segwit
2N11WNmuHfUNyKsoAAoYvqmBPrpao372ymT
Second-Segwit
$ bitcoin-cli getnewaddress nonsegwit          
2NBBasuGC8i7cBYdmUtJyPzKen1J46d5RLD

送金する

4.Fund non SegWit address.

まず、最初に作ったP2PKHアドレスに10BTC送金する。

$ bitcoin-cli sendtoaddress 2NBBasuGC8i7cBYdmUtJyPzKen1J46d5RLD 10  
c34a44607c1944ca8b52552dd0abfd04d42f2feebae2a6f79377d631ac7502d8

ブロックを生成して、Transactionを確定する。

$ bitcoin-cli generate 1
[
 "2969f7925865898579c80c0297dbb03eee73a3e4838fa0001ec5402822698d3e"
]

ちゃんと送金できているか確認する。

$ bitcoin-cli getreceivedbyaddress 2NBBasuGC8i7cBYdmUtJyPzKen1J46d5RLD
10.00000000

5.Send from non SegWit address to first SegWit address. (display JSON)

P2PKHアドレスから一つ目のp2sh-segwitアドレスに3BTC送金する。

$ bitcoin-cli sendfrom nonsegwit 2NCjfVtqtwjaycSmppvZpqcURQXhjfbTaS8 3  
91ddd98b5dc841f0d407c0e7ec384793b4c6fd125541eec402540c73f8108a6b

$ bitcoin-cli generate 1
[
  "0cc4c0daaafdd70d601fe462c1fe55180b633e78da46ebc30a12f25e988d433d"
]

$ bitcoin-cli getreceivedbyaddress 2NCjfVtqtwjaycSmppvZpqcURQXhjfbTaS8
3.00000000

Transactionの中身を確認する。

$ bitcoin-cli getrawtransaction 91ddd98b5dc841f0d407c0e7ec384793b4c6fd125541eec402540c73f8108a6b 1
{
  "txid": "91ddd98b5dc841f0d407c0e7ec384793b4c6fd125541eec402540c73f8108a6b",
  "hash": "855ce4d338c116f4bad79aa894d16b34cbfae967f7fc65033754f01ef1590ea8",
  "version": 2,
  "size": 248,
  "vsize": 166,
  "locktime": 103,
  "vin": [
    {
      "txid": "c9c79c6179d0dc8d1a06e69b5e548dac74df60e985bf6ef843f4f7413d76b194",
      "vout": 1,
      "scriptSig": {
        "asm": "00149c106fc4e122f5f7f032d743ecd916b3c9ee3c01",
        "hex": "1600149c106fc4e122f5f7f032d743ecd916b3c9ee3c01"
      },
      "txinwitness": [
        "30450221009a235c9ffcc4e60884b8322658c7998646e889276f9c4ee2df087adc90c8e62302202dff1c8064073a0d7dabe2fb432a7c5644d0a41dfcd38ccec8e1771352611d4001",
        "03b1eb1c2e8a2ff72b96395c84a59def03e754edb1887efd5855aef316c60dec0d"
      ],
      "sequence": 4294967294
    }
  ],
  "vout": [
    {
      "value": 1.99993360,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_HASH160 54d54dae6701dc6f1dc045bf70822ece9f7b00fd OP_EQUAL",
        "hex": "a91454d54dae6701dc6f1dc045bf70822ece9f7b00fd87",
        "reqSigs": 1,
        "type": "scripthash",
        "addresses": [
          "2MzynGyqMmr8cz81WtySgd5En4tuS4tSeVg"
        ]
      }
    },
    {
      "value": 3.00000000,
      "n": 1,
      "scriptPubKey": {
        "asm": "OP_HASH160 d5cb54f9fc22cf6e1d1883c6eeea54cf48e145ff OP_EQUAL",
        "hex": "a914d5cb54f9fc22cf6e1d1883c6eeea54cf48e145ff87",
        "reqSigs": 1,
        "type": "scripthash",
        "addresses": [
          "2NCjfVtqtwjaycSmppvZpqcURQXhjfbTaS8"
        ]
      }
    }
  ],
  "hex": "0200000000010194b1763d41f7f443f86ebf85e960df74ac8d545e9be6061a8ddcd079619cc7c901000000171600149c106fc4e122f5f7f032d743ecd916b3c9ee3c01feffffff0210a8eb0b0000000017a91454d54dae6701dc6f1dc045bf70822ece9f7b00fd8700a3e1110000000017a914d5cb54f9fc22cf6e1d1883c6eeea54cf48e145ff87024830450221009a235c9ffcc4e60884b8322658c7998646e889276f9c4ee2df087adc90c8e62302202dff1c8064073a0d7dabe2fb432a7c5644d0a41dfcd38ccec8e1771352611d40012103b1eb1c2e8a2ff72b96395c84a59def03e754edb1887efd5855aef316c60dec0d67000000",
  "blockhash": "0cc4c0daaafdd70d601fe462c1fe55180b633e78da46ebc30a12f25e988d433d",
  "confirmations": 1,
  "time": 1527323298,
  "blocktime": 1527323298
}

> 6.Send from first SegWit address to second SegWit address. (display JSON)

一つ目のp2sh-segwitアドレスから二つ目のp2sh-segwitアドレスに1BTC送金する。

$ bitcoin-cli sendfrom segwit1 2N11WNmuHfUNyKsoAAoYvqmBPrpao372ymT 1.0
2071756f706e08246c4ff359c8f73d7fa25d36f7fca30c3421eca9143fa67664
```

$ bitcoin-cli generate 1
[
  "14a28b1959bf3f66e0af7a22fa6966be4688c9f825947065597e6fbcbbb4591e"
]
$ bitcoin-cli getreceivedbyaddress 2N11WNmuHfUNyKsoAAoYvqmBPrpao372ymT
1.00000000
bitcoin-cli getrawtransaction 2071756f706e08246c4ff359c8f73d7fa25d36f7fca30c3421eca9143fa67664 1
{
  "txid": "2071756f706e08246c4ff359c8f73d7fa25d36f7fca30c3421eca9143fa67664",
  "hash": "6e458c0fbb3e59f43f1f77fbd3121c323f250bc9adb858639e2caa1a6df32180",
  "version": 2,
  "size": 247,
  "vsize": 166,
  "locktime": 104,
  "vin": [
    {
      "txid": "91ddd98b5dc841f0d407c0e7ec384793b4c6fd125541eec402540c73f8108a6b",
      "vout": 0,
      "scriptSig": {
        "asm": "001480d852d554362f25d0a9cb343c3d9c253e369ca6",
        "hex": "16001480d852d554362f25d0a9cb343c3d9c253e369ca6"
      },
      "txinwitness": [
        "304402204c8c11077446a70187bea9fdf827ef96addbe3fbfd624f75b5440ed74b241720022051647f2e164bd9eb3b18e014db001b54cc6b38036a665f6ec5ab06615b5a717701",
        "03aa6b449e5cf864404f77e5e464bce58f32fbd8aca1e0af43a29f196c2e973643"
      ],
      "sequence": 4294967294
    }
  ],
  "vout": [
    {
      "value": 0.99990040,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_HASH160 5748d766f5538e492a485bbe1f5fef3f6549bf3f OP_EQUAL",
        "hex": "a9145748d766f5538e492a485bbe1f5fef3f6549bf3f87",
        "reqSigs": 1,
        "type": "scripthash",
        "addresses": [
          "2N1Ck35ntim8P1kok6PSPEe6t83HPJJc1Lk"
        ]
      }
    },
    {
      "value": 1.00000000,
      "n": 1,
      "scriptPubKey": {
        "asm": "OP_HASH160 5528dcd572a7bb4edb58b47d72c7e5f17059cc11 OP_EQUAL",
        "hex": "a9145528dcd572a7bb4edb58b47d72c7e5f17059cc1187",
        "reqSigs": 1,
        "type": "scripthash",
        "addresses": [
          "2N11WNmuHfUNyKsoAAoYvqmBPrpao372ymT"
        ]
      }
    }
  ],
  "hex": "020000000001016b8a10f8730c5402c4ee415512fdc6b4934738ece7c007d4f041c85d8bd9dd91000000001716001480d852d554362f25d0a9cb343c3d9c253e369ca6feffffff0218baf5050000000017a9145748d766f5538e492a485bbe1f5fef3f6549bf3f8700e1f5050000000017a9145528dcd572a7bb4edb58b47d72c7e5f17059cc11870247304402204c8c11077446a70187bea9fdf827ef96addbe3fbfd624f75b5440ed74b241720022051647f2e164bd9eb3b18e014db001b54cc6b38036a665f6ec5ab06615b5a7177012103aa6b449e5cf864404f77e5e464bce58f32fbd8aca1e0af43a29f196c2e97364368000000",
  "blockhash": "14a28b1959bf3f66e0af7a22fa6966be4688c9f825947065597e6fbcbbb4591e",
  "confirmations": 1,
  "time": 1527323373,
  "blocktime": 1527323373
}
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0