暗号通貨のトランザクションを手作りする (1)

はじめに

みなさんはじめまして。

VIPPOOL でエンジニアをやっています、星月です。

技術ブログを書いて社外にアピールしよう!という目論見で
何か書くよう言われたので、とりあえず暗号通貨の根幹を成している
トランザクションについて、連載しようと思います。

最終的には raw トランザクションを手作りできるところまで解説できればと思います。

というわけで早速、今回は

  1. そもそもトランザクションとは何か?
  2. 暗号通貨の残高とは何か?
  3. UTXO のロック、アンロックについて

というところを解説していこうと思います。

今後、特に断りがない場合、単純に「暗号通貨」といった場合は
bitcoin とそこからフォークした各種アルトコインのことを指します。
Ethereum とかはまた異なる仕組みになっているのでご注意を。

暗号通貨における「トランザクション

暗号通貨の世界でトランザクションとは、
「資金の流れ」を示すデータブロックのことを指します。

f:id:y-hoshizuki:20181022125518p:plain

複数の資金を一旦ひとまとめにして、それを複数に分散させます。
これがトランザクションです。

この左側がトランザクションの「入力」、右側が「出力」です。

図のようにトランザクションは複数の入力と複数の出力を持ちます。

f:id:y-hoshizuki:20181022125547p:plain

このトランザクションが集まることで、図のように「資金の流れ」ができます。
このような「資金の流れ」を記述してある1単位がトランザクションというわけです。

トランザクションのことを略して TX と書いたりします。

「未使用」なトランザクション出力 UTXO

先ほどの図で、「未使用」と書いてある部分、
これはトランザクションの出力には記述されているけれども、
他のトランザクションの入力に接続されていないことを示しています。

このように、どのトランザクションの入力にも使用されていない、
けれども出力としては存在しているものを、未使用なトランザクション出力、ということで
Unspent TX Output、略して UTXO と呼びます。

UTXO は通常、「ロック」されていて、勝手に他のトランザクションの入力に
接続することはできないようになっています。

このロックを解除(アンロック)して他のトランザクションの入力に接続する権利が、
すなわち「暗号通貨の所有権」であり、その合計が「残高」となるわけです。

今回はここまで。
ご質問、ご意見等ありましたらお気軽にリプライください。