今更聞けない!仮想通貨におけるトランザクションとは
初心者向けに仮想通貨において頻出用語「トランザクション」とは何か詳しく解説しています。仮想通貨を送金する際に行う処理で具体的な流れをイメージとして紹介しています。トランザクションの流れ、仕組みを理解したい方は必見の内容でしょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
今回は、仮想通貨におけるトランザクションについて解説します。
仮想通貨のお金の流れを知る上でよく聞く単語ですが、よく意味がわからないという人も多いでしょう。ブロックチェーン技術を理解する上で新しい用語を覚える必要があるので、一つずつ覚えていきましょう。
今回はトランザクションについて解説しよう。
田島メンター!トランザクションというのは何ですか〜?
取引の処理のひとまとまりのことを指して言うんだ。まずは大まかな流れについて説明するよ。
お願いします!
トランザクションとは
トランザクション(Tx)とは、仮想通貨を送金する際の処理です。
ブロックチェーンのトランザクションの中には、送金者、受金者、送金額等が含まれます。
スマートコントラクトの場合は、契約内容が含まれることになります。
複数のトランザクションが集まってブロックになります。
トランザクションのライフサイクル
トランザクションは、「生成→署名→伝搬→ブロック化」という動作をします。
この一連の動作を、トランザクションのライフサイクルと言います。
生成→署名された時点で、トランザクションはブロックチェーンの複数ノードに伝送されます。ノードとは、お手元のコンピューターのようにマイニングを行う端末を意味します。
マイニングとは、ブロックチェーンにおいて新しいブロックを生成することを意味します。
ノードは全てのノードに接続されているわけではなく、一部のノードに網の目状に接続されています。
トランザクションの一連の手順だよ。
これらの処理がひとつのセットになっているということですね。
次に、このトランザクションが実際にどういう構造になっているのかその中身を確認してみよう。
トランザクションの構造
構造
Version No Input Counter Input List Output Counter Output List Locktime
解説
Version Noは4バイトで構成され、どのバージョンであるかを指定しています。現在のビットコインのバージョンは1です。
Input Counterは1-9バイトで構成され、Input Listの数を定義します。
Input Listは可変バイトで構成され、トランザクションインプット(TxIn)の数を指定します。
Output Counterは1-9バイトで構成され、Output Listの数を定義します。
Output Listは可変バイトで構成され、トランザクションアウトプット(TxOut)の数を指定します。
Locktimeは予約された日時になるまで使用禁止にする値です。500000000以上の場合は、Unixtimeで予約された日時に成るまで使用禁止になります。
500000000未満の場合はブロック高を基準にロックされます。
0の場合はロックされません。
送金によるトランザクション例
送受金とトランザクション
一郎(以前からビットコインを保有していた)
二郎(一郎から1ビットコインを受け取るトランザクション1)
三郎(二郎から0.3ビットコインを受け取るトランザクション2)
手数料(マイニングを行ったマイナーへと支払われる)
トランザクション1
インプット
FROM:
一郎保有のビットコイン
一郎:1.0005ビットコイン
(ここでは一郎が保有する1.0005が送金されたことを記載してあります)
アウトプット
TO:
二郎
1ビットコイン
手数料0.0005ビットコイン
(ここでは二郎が1ビットコインを受金、手数料として一郎からマイナーへ0.0005ビットコイン受金したことを記載してあります)
トランザクション2
インプット
FROM:
トランザクション1
二郎:1ビットコイン
(ここではトランザクション1の結果による結果で二郎が1ビットコイン保有しており、そこから支払われることを意味しています)
アウトプット
TO:
#0 三郎
0.3ビットコイン
#1 二郎
0.6995ビットコイン
手数料0.0005ビットコイン
(ここでは三郎が0.6995ビットコインを受金、手数料を引いた二郎の残金が0.6995ビットコイン、手数料として二郎からマイナーへ0.0005ビットコイン受金したことを記載してあります)
今回は、トランザクションについて解説しました。
具体的なトランザクションの例を見てみたよ。
アウトプットとインプット、ふたつの動作によって処理が進行していくんですね。
取引の中での改ざんなどを防ぐために、ハッシュ関数というものが使われるんだ。それについては別のところで解説するよ。
了解です。ありがとうございました!
この記事を監修してくれた方
中本賢吾(なかもとけんご) 開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。 その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。 |