Mastering Bitcoin「トランザクション」#1

Bitcoinトランザクションの勉強してる。

トランザクションの構造

トランザクションはインプット(どこからの取引か)とアウトプット(どこへの取引か)によって定義される。インプットとなるビットコインは未使用トランザクションアウトプット(UTXO)である必要があり、トランザクションの中で消費され、アウトプットのビットコインが新たなUTXOになる。この連鎖により、Bitcoinの所有権が移動していく。 マイニングによって生成されるトランザクションは、例外的にインプットが存在しない。これは無からBitcoinを生成するためである。

トランザクションアウトプット

UTXOには、金額と解錠条件(Locking Script)がセットになっている。解錠条件は、多くの場合公開鍵になっている。利用する際に、解錠条件に適したUnlocking script(例えばLocking Scriptの公開鍵にマッチする秘密鍵の署名)を提示することで、UTXOを次以降のトランザクションのインプットとして利用可能になる。

トランザクション手数料

手数料は、トランザクションのデータサイズと、Bitcoinネットワーク内での市場原理によって決定される。ほとんどのウォレットはこの手数料を自動的に計算する。トランザクション手数料を含めなくてもマイナーが次のブロックに含める可能性があるが、処理の優先順位は下がる。

トランザクションチェーンとOrphanトランザクション

トランザクションはチェーンを生成するが、ネットワークに到達する順番によっては、チェーンの親の前に子が届く可能性がある。その時には、Orphan(孤児)トランザクションリストとしてメモリに保持される。メモリに保存できるトランザクション数には制限があり、クラアントごとに定義されている。