- Home
- ビットコインのトランザクションの構造
ビットコインのトランザクションの構造
トランザクション
Bitcoinトランザクション
トランザクションとは、取引の履歴(価値の転移を表した署名されたデータ構造)のこと。トランザクションはインプットからアウトプットに価値を移動する。通常インプット(どこからbitcoinが来たか)は、前のトランザクションのアウトプットとなっている。
参考:Bitcoinトランザクション(VIN VOUTの流れ)
generation トランザクション
ブロックに最初の追加された特別なトランザクション。generation または coinbase トランザクションと呼ばれる。マイニングに成功したマイナーに提供されるブロック生成報酬として使用される。
トランザクションの相違点
通常のトランザクションとは異なり、generation トランザクションはインプットとしてのトランザクションを持たない。これは、使用する前のUTXOを特定するトランザクションインプットとは違い、coinbase と呼ばれる特別なフォーマットをした、たった1つのインプットを持つ。これが何もないところから bitcoin を生み出す唯一の方法となる。
サイズ | フィールド名 | 説明 |
32byte | Transaction Hash | 使われるUTXOを含むトランザクションハッシュ |
4byte | Output Index | 使われるUTXOのトランザクション内インデックス、一番最初のアウトプットの場合は0 |
1-9byte (VarInt) | Unlocking-Script Size | unlocking-scriptのbyte長 |
可変サイズ | Unlocking-Script | UTXOのlocking script を満たすscript |
4byte | Sequence Number | 現在トランザクション置換は使用不可になっていて、0xFFFFFFFFに固定 |
サイズ | フィールド名 | 説明 |
32byte | Transaction Hash | 全てのbitが0であり、他のトランザクションハッシュの参照はしていない |
4byte | Output Index | 全てのbitが1: 0xFFFFFFFF |
1-9byte (VarInt) | Coinbase Data Size | Coinbase Dataサイズの長さ(2から100byte) |
可変サイズ | Coinbase Data | バージョン2 ブロックのextranonceやminingtagのために使われる任意のデータであり、ブロック高から始まらなければならないscript |
4byte | Sequence Number | 0xFFFFFFFF に固定 |
- generationトランザクションでは、最初の2つのフィールドはUTXOへの参照を表現していない値が設定されている。
- 通常のトランザクションの”Transaction Hash”の代わりに、最初のフィールドは全てが0の32byteで埋められている。
- “Output Index”は全てが 0xFF(10進数で255)に設定された4byteで埋められている。
- “Unlocking Script”は CoinbaseData で置き換えられており、マイナーによって使われる任意のデータを入れられるフィールドになっている。
ご相談・お見積もり
03-5207-2689