「ブロックチェーンのトランザクションって、一体何のこと?」 「暗号資産の送金と関係があるのは分かるけど、詳しい仕組みは…?」 「手数料(ガス代)ってどうして必要なの?」
ブロックチェーン技術の基本であり、あらゆる活動の出発点となる「トランザクション」。
この記事では、トランザクションとは何か、その仕組みやブロックチェーンに記録されるまでの流れ、気になる手数料のことまで、図解はなくても分かりやすい言葉で丁寧にご説明します。
特定の暗号資産への投資をおすすめするものではありません。
ブロックチェーン技術の基礎知識として、トランザクションについて一緒に学んでいきましょう。
- ブロックチェーンの「トランザクション」ってどんな意味?
- トランザクションの中身はどうなってるの? 主要な構成要素
- トランザクションが生まれて記録されるまでの道のり ライフサイクル
- なぜトランザクションがそんなに大切なの? ブロックチェーンの心臓部
- トランザクション手数料(ガス代)って何? なぜ払う必要があるの?
- トランザクションの処理にかかる時間 どれくらい待つの?
- トランザクションの安全性はどうやって守られているの?
- トランザクションの記録方法にも違いがある? UTXOモデルとアカウントモデル
- スマートコントラクトとトランザクションはどう関係してる?
- トランザクションの状況はどうやって確認するの? ブロックチェーンエクスプローラーを使ってみよう
- トランザクションを使うときの注意点 よくあるトラブル
- まとめ ブロックチェーンを動かす一番小さな単位「トランザクション」
ブロックチェーンの「トランザクション」ってどんな意味?
まずは、ブロックチェーンの世界で「トランザクション」がどんな意味で使われているのか、基本的なところから見ていきましょう。
一番イメージしやすいのは、暗号資産(ビットコインやイーサリアムなど)を、ある人から別の人へ送る操作のことです。
銀行でお金を振り込むのに少し似ていますね。
しかし、銀行のような仲介役を通さずに、ブロックチェーンのネットワークを使って直接やり取りするのが大きな違いです。
トランザクションの意味は、これだけではありません。
イーサリアムのように「スマートコントラクト」というプログラムを動かせるブロックチェーンでは、もっと色々なことができます。
例えば、あらかじめ決められたルール通りに動くプログラム(スマートコントラクト)を実行するお願いや、新しいプログラムをブロックチェーン上に置く(デプロイする)操作も、トランザクションとして扱われます。
つまり、ブロックチェーンにおけるトランザクションとは、「ブロックチェーンの記録内容を変える可能性のある、署名付きのデータ」や「ネットワークにお願いする一連の操作指示」と考えると分かりやすいかもしれません。
コインを送ることも、プログラムを動かすことも、データを記録することも、ブロックチェーンというみんなで管理する台帳に書き込まれるべき「出来事」、それがトランザクションなんですね。
トランザクションの中身はどうなってるの? 主要な構成要素
手紙を書くときに、宛名や差出人、本文、切手が必要なように、ブロックチェーンのトランザクションにも、処理に必要な情報がちゃんと含まれています。
どんなブロックチェーンか(ビットコインかイーサリアムかなど)で少し違いはありますが、だいたい次のような情報が入っています。
誰から送るの? 送信者アドレス
トランザクションを始める人、つまりコインを送ったり、プログラム実行をお願いしたりする人のアドレス(口座番号のようなもの)です。
誰に送るの? 受信者アドレス
コインを受け取る人のアドレスや、動かしたいプログラムのアドレスです。
新しいプログラムを置くときは、宛先がない場合もあります。
いくら送るの? 量(金額)
送りたいコインの量です。
プログラムを動かすだけが目的のトランザクションだと、ここはゼロになることもあります。
本人確認のサイン! デジタル署名
「このトランザクションは、間違いなく私が作りました」ということを証明するための、暗号化されたサインです。
送る人は自分だけが知っている「秘密鍵」でサインし、他の人はその人の「公開鍵」で本物かどうかを確認できます。
これがあるから、なりすましや情報の書き換えを防げるんですね。
ネットワークへのお礼? トランザクション手数料(ガス代)
トランザクションをブロックチェーンに記録してもらうために、ネットワークを手伝っている人たち(マイナーやバリデーター)に支払う手数料です。
この手数料の額によって、トランザクションが処理されるスピードが変わることがあります。
イーサリアムなどでは、処理の複雑さに応じて「ガス(Gas)」という単位で手数料が計算されるので、「ガス代」と呼ばれたりします。
順番を守るための番号! ノンス(Nonce)
同じ人が送るトランザクションが、正しい順番で処理されるようにするための通し番号のようなものです。
これがあることで、同じお金を二度使ってしまう(二重支払い)のを防ぐ役割もあります。
(ビットコインなど)どこから来たお金? インプットとアウトプット
ビットコインなどで使われている「UTXOモデル」という方式では、少し考え方が違います。
過去の取引でもらった「まだ使っていないお金(UTXO)」を入力(インプット)として使い、送金先への新しいお金と、自分へのお釣り(アウトプット)を作る、という形でトランザクションが構成されます。
お財布の中の1000円札(インプット)で700円の物を買い、お店に700円(アウトプット)、自分に300円のお釣り(アウトプット)が来るようなイメージに近いですね。
これらの情報がひとまとまりになって、一つのトランザクションデータとしてネットワークに送られます。
トランザクションが生まれて記録されるまでの道のり ライフサイクル
私たちがスマホのウォレットアプリで「送金」ボタンを押してから、その記録がブロックチェーンにしっかり書き込まれるまで、トランザクションはいくつかのステップを旅します。
その流れを見てみましょう。
-
トランザクション作成とサイン: まず、送る人がウォレットアプリなどで、送り先、金額、手数料などを入力して、トランザクションデータを作ります。
そして、自分だけが持つ「秘密鍵」で、このデータにデジタル署名(サイン)をします。
これで「このトランザクションは私が承認しました」という証拠になります。
-
ネットワークに「お願いしまーす!」と伝える(ブロードキャスト): サインされたトランザクションは、自分のコンピューターから、ネットワークにつながっている他のコンピューターへ、そしてバケツリレーのようにどんどん広がっていきます。
-
ちょっと待機「メモリプール」: ネットワークに広がったトランザクションは、ブロックチェーンに記録してくれる人たち(マイナーやバリデーター)のコンピューターにある「メモリプール」という待合室のような場所に入ります。
ここでは、まだブロックチェーンには記録されておらず、「未確認」の状態です。
-
チェックして箱詰め(検証とブロックへの取り込み): マイナーやバリデーターは、待合室にあるトランザクションの中からいくつかを選び出して、「サインは本物か?」「送るお金はちゃんと持っているか?」などをチェック(検証)します。
チェックをパスしたトランザクションは、他のOKが出たトランザクションと一緒に、新しい「ブロック」という箱に詰められます。
普通は、手数料を多く設定してくれているトランザクションから優先的に選ばれることが多いです。
-
みんなで確認して承認(コンセンサス): 新しいブロックの箱ができたら、「この箱をチェーンにつなげていいか」を、ネットワークのルール(コンセンサスアルゴリズム)に従ってみんなで確認します。
計算競争(PoW)だったり、多数決(PoS)だったり、ルールはいろいろです。
この確認作業でOKが出たら、晴れてそのブロックはブロックチェーンの最後尾に追加されます。
-
記録完了!そして確定へ(確認とファイナリティ): トランザクションが入ったブロックがチェーンに追加されると、まず「1回確認された」ことになります。
その後、さらに新しいブロックがどんどん追加されていくと、「2回確認」「3回確認」と、確認された回数が増えていきます。
この確認回数が増えるほど、その記録が後から変わってしまう可能性は低くなり、どんどん確実になっていきます。
ある程度の確認回数(ビットコインだとよく6回と言われます)に達すると、もう変更はほぼ不可能と見なされ、「最終確定(ファイナリティ)」したと考えられます。
この一連の流れを経て、一つのトランザクションは、ブロックチェーンというみんなが見られる永続的な記録帳に、しっかりと刻まれることになるのです。
なぜトランザクションがそんなに大切なの? ブロックチェーンの心臓部
トランザクションは、ブロックチェーン技術を理解する上で、絶対に欠かせない一番基本のパーツです。
もしトランザクションがなければ、ブロックチェーンはただのデータ置き場になってしまい、その真価を発揮できません。
トランザクションがあるからこそ、暗号資産というデジタルなお金が、銀行などを通さずに、人から人へと直接送れるのです。
これは、これまでのお金のやり取りの仕組みを変える、新しい可能性を示しています。
スマートコントラクトが使えるブロックチェーンでは、トランザクションはもっと活躍します。
単にお金を送るだけでなく、プログラムを動かすための「スイッチ」のような役割も果たします。
「もし○○という条件が満たされたら、××という処理を自動で実行する」といったスマートコントラクトや、ブロックチェーン上で動くアプリ(DApps)も、トランザクションがきっかけとなって動いています。
ブロックチェーンに記録されている情報の変化は、すべて何らかのトランザクションによって引き起こされています。
つまり、トランザクションの記録をたどれば、そのブロックチェーンで過去に何が起こったのかを、誰でも(公開されている範囲で)確認でき、しかもその記録は後から書き換えられない、という透明性と信頼性が保たれるのです。
このように、トランザクションはブロックチェーンに命を吹き込み、お金のやり取り、契約の自動実行、データの記録といった、様々な使い道を実現するための、まさに「心臓部」と言える大切な存在なんですね。
トランザクション手数料(ガス代)って何? なぜ払う必要があるの?
ブロックチェーンでトランザクションを処理してもらうには、多くの場合、「トランザクション手数料」という費用がかかります。
特にイーサリアムなどでは、この手数料を「ガス(Gas)」という単位で考えるので、「ガス代」と呼ばれることが多いです。
では、なぜ手数料が必要なのでしょうか。
理由は大きく二つあります。
ネットワークを支える人へのお礼
一つ目は、トランザクションをチェックしたり、新しいブロックを作ったりして、ブロックチェーンの安全を守ってくれている人たち(マイナーやバリデーター)への報酬のためです。
彼らは自分のコンピューターや資産を使って、ネットワークのために働いてくれています。
トランザクション手数料は、その働きに対するお礼のようなもので、ネットワークを維持していくための大切な動機付けになっています。
迷惑行為を防ぐため
二つ目は、ネットワークへのイタズラや攻撃を防ぐためです。
もしトランザクションを送るのがタダだったら、悪い人が意味のないトランザクションを大量に送りつけて、ネットワークをパンクさせようとするかもしれません。
手数料がかかることで、そうした無駄な行為をしにくくし、ネットワークをスムーズに動かす助けになっています。
手数料の金額は、トランザクションの内容がどれくらい複雑か(どれくらい計算が必要か)や、その時にネットワークがどれくらい混雑しているかによって変わります。
イーサリアムのガス代の場合は、「ガスリミット」(このトランザクションで使うかもしれないガスの最大量)と、「ガスプライス」(ガス1単位あたりの値段)を掛け合わせて決まります。
トランザクションを送る人は、どれくらいのガスプライスを払うかを自分で設定できます。
一般的には、高いガスプライスを設定した方が、マイナーやバリデーターに優先的に処理してもらえて、早くブロックに入れてもらえる傾向があります。
逆に、安いガスプライスだと、後回しにされたり、なかなか処理されなかったりすることもあります。
トランザクションの処理にかかる時間 どれくらい待つの?
自分が送ったトランザクションが、相手に届いたと確認できるまで、どれくらいの時間がかかるのでしょうか。
これは、いくつかの要因によって変わってきます。
まず、そのブロックチェーンで、新しいブロックがどれくらいの頻度で作られているか(ブロック生成時間)が関係します。
ビットコインは約10分ごと、イーサリアム(PoS)は約12秒ごと、というように、ブロックチェーンごとに目安の時間が決まっています。
次に、先ほどお話ししたトランザクション手数料(ガス代)の設定も影響します。
ネットワークが混んでいるときに、手数料を安く設定してしまうと、なかなかブロックに入れてもらえず、時間がかかってしまうことがあります。
さらに、トランザクションがブロックに入った後、どれくらい「確認(Confirmation)」されれば安心と考えるか、という点も重要です。
確認回数とは、そのトランザクションが入ったブロックの上に、さらにいくつ新しいブロックが積み重なったか、という数です。
確認回数が多ければ多いほど、その記録が覆される心配は少なくなります。
取引所などでは、安全のため、「ビットコインなら6回確認されるまで待ちましょう」といったルールを決めていることが多いです。
ですから、トランザクションが「完了した!」と感じるまでの時間は、ブロック生成時間、ネットワークの混雑具合、設定した手数料、そして何回の確認を待つか、によって変わってくるんですね。
トランザクションの安全性はどうやって守られているの?
ブロックチェーンのトランザクションは、その仕組み自体に、安全性を高めるための工夫がたくさん詰まっています。
どうやって安全が守られているのか、主なポイントを見てみましょう。
本人であることの証明「デジタル署名」
トランザクションは、送る人の「秘密鍵」という、本人しか知らないパスワードのようなもので署名(サイン)されます。
このサインがあることで、「このトランザクションは確かに本人が承認したものです」と証明できます。
ネットワーク上の誰もが、送る人の「公開鍵」を使って、そのサインが本物かどうかを確かめることができますが、秘密鍵を知ることはできません。
これで、他の人が勝手にトランザクションを作ることを防いでいます。
書き換えはほぼ不可能「ブロックチェーンの不変性」
一度ブロックチェーンに記録されて、十分な確認を経たトランザクションは、後から内容を書き換えることが非常に難しくなっています。
これは、ブロックが鎖のようにつながっていて、前のブロックの情報を持っていること、そしてネットワーク全体で同じ記録を共有しているからです。
もし誰かが一部を書き換えようとしても、他の大多数の記録と食い違いが生まれ、すぐに不正だとバレてしまいます。
ルール自体が安全を守る「コンセンサスアルゴリズム」
トランザクションを承認するためのルール(コンセンサスアルゴリズム)自体にも、安全を守る仕組みがあります。
例えば、PoWでは悪いことをするには莫大な計算パワーが必要だったり、PoSでは悪いことをすると預けたお金が没収されたりするように、正直にルールを守った方が得をするように設計されていることが多いです。
二重払いも防止
「ノンス」という通し番号のような仕組みなどによって、同じお金を2回使ってしまう「二重支払い」も防がれています。
これらの仕組みが組み合わさることで、特定の管理者がいなくても、トランザクションの正しさと、ブロックチェーン全体の信頼性が保たれているのです。
トランザクションの記録方法にも違いがある? UTXOモデルとアカウントモデル
ブロックチェーンが、どうやって「誰がいくら持っているか」を記録し、トランザクションを扱っているかについては、大きく分けて二つの方式があります。
「UTXOモデル」と「アカウントモデル」です。
UTXOモデル ビットコインなどで使われる方式
UTXO(ユーティーエックスオー)モデルは、ビットコインなどで使われています。
この方式では、「口座残高」というものを直接は管理しません。
その代わりに、過去の取引でもらった「まだ使っていないお金(UTXO)」の集まりとして、使えるお金を管理します。
トランザクションを作るときは、このUTXOをいくつか入力(インプット)として使い、送り先への新しいお金と、自分へのお釣り(アウトプット)を作ります。
お財布に入っている小銭や紙幣(UTXO)を組み合わせて支払い(インプット)、お釣り(アウトプット)をもらう感覚に似ていますね。
UTXOモデルは、一つ一つの取引が独立しているので、プライバシーを守りやすかったり、同時にたくさんの処理をしやすかったりする利点があると言われています。
アカウントモデル イーサリアムなどで使われる方式
アカウントモデルは、イーサリアムなどで使われています。
こちらは、銀行の口座のように、アドレス(アカウント)ごとに「残高」を直接記録しています。
トランザクションは、「Aさんの口座からBさんの口座へ〇〇円移動させる」という指示のような形になります。
トランザクションが処理されると、Aさんの残高が減り、Bさんの残高が増える、という形で記録が更新されます。
アカウントモデルは、残高の管理が分かりやすく、特にスマートコントラクトのように複雑な状態を扱うのに向いているとされています。
どちらのモデルが良い・悪いというわけではなく、それぞれのブロックチェーンが目指すものに合わせて、適した方式が選ばれています。
トランザクションのデータの作り方や処理の仕方も、このモデルによって少し変わってきます。
スマートコントラクトとトランザクションはどう関係してる?
イーサリアムのようなスマートコントラクトが使えるブロックチェーンでは、トランザクションは単にお金を送るだけではありません。
スマートコントラクトは、「もし○○なら××する」というルールをプログラムしておき、条件が揃ったら自動で実行される仕組みです。
このスマートコントラクトを動かすための「スイッチ」を押すのが、トランザクションの役割なんです。
利用者は、動かしたいスマートコントラクトのアドレスに対して、「このプログラムのこの命令を実行してください」というお願いと、必要な情報、そして手数料(ガス代)を含んだトランザクションを送ります。
ネットワークのコンピューターは、このトランザクションを受け取ると、指定されたプログラムを実行し、その結果をブロックチェーンの記録に反映させます。
例えば、分散型取引所(DEX)でコインを交換したり、NFTマーケットでデジタルアートを買ったり、DeFiでお金を貸し借りしたりする操作は、すべてスマートコントラクトを動かすトランザクションによって行われています。
新しいスマートコントラクト自体をブロックチェーン上に設置するのも、特別なトランザクションとして処理されます。
このように、トランザクションはスマートコントラクトと連携して、ブロックチェーン上でより高度で便利な機能を実現するための、基本的な手段になっているんですね。
トランザクションの状況はどうやって確認するの? ブロックチェーンエクスプローラーを使ってみよう
自分が送ったトランザクションが、今どうなっているか(まだ確認中? それとも完了した? 何回確認された?)を知りたい時や、特定のアドレスがどんな取引をしているかを見たい時がありますよね。
そんな時に便利なのが「ブロックチェーンエクスプローラー」というツールです。
ブロックチェーンエクスプローラーは、ブロックチェーン上の公開されている情報(ブロックの中身、トランザクションの詳細、アドレスの情報など)を、誰でもインターネットで検索して見られるようにしたウェブサイトです。
ビットコインやイーサリアムなど、主なブロックチェーンには、それぞれ専用のエクスプローラーがあります(例 Blockchain.com、Etherscanなど)。
トランザクションを送ると、普通、「トランザクションID(TxID)」や「トランザクションハッシュ」と呼ばれる、そのトランザクション固有の番号が発行されます。
この番号をエクスプローラーの検索窓に入れると、そのトランザクションの詳しい情報、例えば、誰から誰へ、いくら送ったか、手数料はいくらか、今の状態(確認回数など)、どのブロックに入っているか、といったことが分かります。
これを使えば、送金が無事に届いたかや、処理が遅れている理由などを自分で調べることができます。
トランザクションを使うときの注意点 よくあるトラブル
ブロックチェーンのトランザクションはとても便利な仕組みですが、使う上でいくつか気をつけるべき点や、起こりうる問題もあります。
アドレス間違いは致命的!
送り先のアドレスをたった一文字でも間違えてしまうと、全く知らない人に送ってしまったり、最悪の場合、送ったコインが二度と戻ってこなくなる可能性があります。
ブロックチェーンのトランザクションは、基本的に一度送ったら取り消せません。
送る前にアドレスをしっかり確認することが、とてもとても重要です。
コピー&ペーストを使い、できれば最初と最後の数文字を目視で確認するといった習慣が役立ちます。
手数料(ガス代)の設定に注意
ネットワークが混雑しているときに、手数料を安く設定しすぎると、いつまで経ってもトランザクションが処理されず、「未確認」のまま止まってしまうことがあります。
その時の状況に合わせて適切な手数料を設定するか、混雑が収まるのを待つ、場合によってはトランザクションをキャンセルしたり、手数料を上げて再送信したりする(ウォレットが対応していれば)といった対応が必要になるかもしれません。
秘密鍵は絶対に秘密に!
トランザクションにサインするために使う「秘密鍵」は、あなたの財産を守るための最も大切な鍵です。
絶対に他の人に教えてはいけません。
もし秘密鍵が漏れてしまうと、他の人に勝手にトランザクションを作られて、コインを盗まれてしまう可能性があります。
ウォレットの管理は厳重に行うことが大切です。
詐欺にも気をつけて!
偽物のウェブサイトやメールで、あなたに不利なトランザクションを承認させようとしたり、秘密鍵やパスワードをだまし取ろうとしたりする詐欺があります。
怪しいリンクはクリックしない、よく分からないプログラムとの連携は避けるなど、常に注意深くいることが求められます。
これらの点に気をつけて、慎重に操作することが、ブロックチェーン技術を安全に使うための第一歩です。
まとめ ブロックチェーンを動かす一番小さな単位「トランザクション」
今回は、ブロックチェーンの基本中の基本である「トランザクション(Transaction)」について、その意味から中身、処理の流れ、手数料、安全性、関連するモデルまで、幅広く見てきました。
ブロックチェーンにおけるトランザクションは、単なる「取引」の記録ではなく、ネットワークの状態を変えるための「指示書」のようなものです。
コインの移動だけでなく、スマートコントラクトの実行など、ブロックチェーン上のあらゆる活動の元になっています。
デジタル署名で本人が承認したことが証明され、みんなで合意するルール(コンセンサスアルゴリズム)によって正しさが確認され、ブロックチェーンに書き込まれることで、後から書き換えられない記録となります。
手数料の仕組みや処理時間、UTXOモデルとアカウントモデルの違いなどを知ることは、ブロックチェーン技術そのものをより深く理解する上でとても役立ちます。
ブロックチェーンエクスプローラーを使えば、その透明性を誰もが確かめることができます。
トランザクションは、ブロックチェーンという新しい技術を実際に動かしている、まさに「基本単位」であり、その仕組みを知ることは、これからのデジタル社会を生きていく上で、きっとあなたの役に立つはずです。
免責事項
この記事は、ブロックチェーンにおけるトランザクションに関する一般的な情報を提供することを目的として書かれたものです。
特定の暗号資産、トークン、プロジェクト、または投資戦略を推奨したり、勧誘したりするものではありません。
ブロックチェーン技術や暗号資産の利用や取引には、様々なリスクが伴います。
トランザクションの送信ミスや秘密鍵の管理不備などにより、資産を失う可能性もあります。
この記事の情報を元に行ったいかなる行動の結果についても、この記事の作成者は一切の責任を負うことはできません。
技術の利用や投資などに関する判断は、ご自身の責任において、十分に情報を集め、よく検討した上で行ってください。
必要に応じて、専門家にご相談することをおすすめします。
コメント