UTXO and Account
普段はレイヤー2のライトニングネットワークについて調査することが多いんですが、今回はビットコインのレイヤー1で扱われるUTXOと呼ばれるものについて調査したのでその備忘録を残したいと思います。余談ですが、今回はUTXOと対比されることがあるイーサリアムのAccountについても触れていてます。両者は対比されることがありますが、今回は善し悪しではなく、それぞれの仕組みと違いについて書いていきます。
UTXO型モデル
UTXOとはUnspent Transaction Outputの略称で、「未使用なトランザクションアウトプット」と訳され、このアウトプットがビットコインにあたります。例えば、以下の図のような3つのトランザクションがあった場合、未使用なトランザクションアウトプットはTx1のOut[4BTC]、Tx2のOut[2.4BTC]、Tx3のOut[0.8BTC]とOut[0.6BTC]となります。そして、これらのアウトプットを合計すると7.8BTCとなり、これがビットコインの残高となります。このビットコインの残高管理をUTXO型モデルと呼びます。
私たちの財布の中には大小さまざまな小銭が入っていると思いますが、それらを合計しないと残高が分からないことに似ていますね。
ビットコインのブロックのデータ構造は以下の図のようになっています。これは後ほどイーサリアムのデータ構造と比較するために記載するので読み飛ばしてもらって構いません。