1. はじめに

結
前回、ブロックチェーンって「みんなで同じノートを持ってる」って聞いて安心したんですけど…そのノートって、どうやって書かれていくんですか?ブロックって「チェーン状に並んでて、それぞれ前のハッシュを覚えてる」っていう仕組みでしたよね?それがどうやって動くのか気になります。

江輝
ブロックチェーンの仕組みについて興味を持ってくれたようでなによりです。今回の記事では、代表的なブロックチェーンであるビットコインのネットワークを題材にして、取引がどのように処理され、記録されていくのかを順を追って学びましょう。
2. 取引(トランザクション)のはじまり

結
ビットコインを送るって、誰かが誰かに通貨を移すってことですよね?でも、実際にどういう手順で送るんですか?

江輝
いい質問ですね。ビットコインでの送金や受け取りといった記録は「トランザクション」と呼ばれます。トランザクションとは、過去に受け取ったビットコインを使って、新たな送り先に送金するという命令書のようなものです。次の図を見てください。


江輝
まずユーザーは、送りたい相手のアドレスと金額を指定します。そして、自分が過去に受け取ってまだ使っていないビットコイン(UTXO)を入力として選び、それらをまとめてトランザクションを構成します。この図では、私が過去に受け取った1.0BTCのうち、0.8BTCを結さんに送金し、残りを私に戻すトランザクションを作成しています。

江輝
このとき、自分が正当な持ち主であることを証明するために入力側に「電子署名」を行います。これは、自分の秘密鍵で取引内容に署名することで、誰でもその署名が正しいかを確認できる仕組みです。

結
電子署名って、「この取引は私がやりました」って証明する仕組みなんですか?

江輝
その通りです。電子署名があることで、そのトランザクションが本人によるものであり、かつ途中で改ざんされていないことも保証できます。

江輝
署名されたトランザクションはネットワークに送られ、周囲のノードたちがそれを受け取ります。ノードは署名や残高、二重支払いの有無などを確認し、問題がなければその取引を未承認トランザクションとしてプールに保管します。

結
未承認ということは、この後誰かが承認をするということですか?

江輝
はい。そして、このトランザクションの承認プロセスがビットコインの安全性を支える上で非常に重要な要素となっています。
3. ノードによる検証とブロック化

結
トランザクションを受け取ったノードは、どうやってその取引が本当に正しいものか判断するんですか?

江輝
前節でもお話したように、主に3つのポイントを確認します。まずは電子署名が正しく、自分のアドレスの秘密鍵から発行されたものであること。次に、送信者が実際にその金額分の未使用コイン(UTXO)を持っているか。そして、同じコインが別の取引にも使われていないか、つまり二重支払いのチェックです。

結
なるほど…たしかに、それを見落としたら不正が起きちゃいますもんね。

江輝
そうなんです。そして、こうして検証された未承認トランザクションは一時的にノードに保管され、マイナーと呼ばれるノードたちによってブロックにまとめられていきます。

江輝
ビットコインでは、おおよそ10分に1回のペースで新しいブロックが作られます。マイナーは、未承認トランザクションの中からいくつかを選び、1つのブロックにまとめたうえで、一定の条件を満たすハッシュ値を見つけるという「計算競争(マイニング)」に挑戦します。次の図を見てください。


結
なんかちょっと複雑な感じの図ですね…

江輝
少し複雑に見えるかもしれませんが、ここはビットコインの安全性を支える非常に重要な部分です。ぜひ理解しておきましょう。前回の講義で、新しいブロックをチェーンにつなぐキーが、直前のブロックのハッシュ値であることを説明しましたね。

結
はい、その仕組みによって、ブロックの改ざんを簡単に検知できるというお話でした。

江輝
その通りです。ここで重要なのは、単なるハッシュ値ではなく、一定の条件を満たすハッシュ値であることです。例えば、0〜1000の間の値を返すハッシュ関数があるとしましょう。ブロック候補の情報をこの関数にかけると、0〜1000のほぼランダムな値が出力されます。このとき、「その値が10以下でなければならない」といった条件を加えるのです。

結
なぜ、そのような制限を加えるのでしょうか?

江輝
それは、次のブロックを接続するためのキーとなるハッシュ値の計算コストを意図的に高くするためです。実は、現代のコンピュータなら単純なハッシュ計算は一瞬で終わってしまいます。もし、そのキーが一瞬で求められるとしたら、どんな問題が起こると思いますか?

結
えーっと……ブロックチェーン上のたくさんのブロックのハッシュ値を一気に書き換えて、記録の改ざんができてしまうかも!?

江輝
まさに、その通りです。ハッシュ値をキーにしてブロックをつなぐことで、チェーン全体の改ざんを難しくしているわけですが、それが機能するにはハッシュの計算に一定の手間がかかる必要があるのです。だからこそ、条件を満たすハッシュ値(=正解)を見つけるには、大量の計算を行う、つまり「マイニング」が必要になるというわけですね。

結
でも、ハッシュ関数の結果って、ブロックの情報が変わらない限りは同じではないのでしょうか?

江輝
鋭いですね。ハッシュ関数は、入力が同じであれば常に同じ出力になります。ですから、出力値を変えるには入力のどこかを変える必要があります。そこで使われるのが、ブロック内に含まれる「ナンス値」と呼ばれるものです。この値を変更する(1ずつ増やす)ことで、ブロック内の他の重要な情報を変えずに、ハッシュ関数の結果を変えることができるのです。

結
ナンス値ってなんなのかと思っていましたが、そんな役割があったんですね!

江輝
この仕組みは「プルーフ・オブ・ワーク(PoW)」と呼ばれます。膨大な計算力を使って、最初に条件を満たすハッシュを見つけたマイナーが、そのブロックの作成者として認められ、報酬を得られるのです。ちなみに、2025年現在のビットコインマイニングのハッシュレート(1秒間に実行されるハッシュ計算の回数)はおよそ10²¹回と言われています。この計算により消費される電力は非常に大きく、ある調査では、中規模国家(アルゼンチンなど)の消費電力量に匹敵すると言われています。

結
う…数字が大きすぎて想像もできないです。。
4. ノード間の同期と分散台帳

結
マイナーがブロックを作ったら、その情報はどうやって他のノードに伝わるんですか?

江輝
ブロックが完成すると、マイナーはその情報をネットワーク全体に伝播させます。各ノードは新しいブロックを受け取ると、自分のチェーンの最後に追加して、最新の状態を維持します。

結
でも先生、もし別々のマイナーが同時に違うブロックを作ってしまったらどうなるんですか?

江輝
それは「フォーク」と呼ばれる状態です。ノードは一時的に分岐したチェーンの両方を追跡しますが、次に追加されるブロックによって長さが違ってくると、より長くなったチェーンが正しいとみなされて採用されます。次の図のようなイメージです。


結
ちゃんと調整して1本に戻すんですね!分散してても協力してるって感じがします!

江輝
ちなみに「トランザクションがいつ確定したとみなされるのか」といった話題もありますが、これはもう少し複雑な内容になりますので、今回は触れずにおきましょう。今は「ブロックに取り込まれ、ネットワークで共有された時点で一通りの処理は終わる」と理解しておけば十分です。
5. まとめと次章予告

結
今回は、ビットコインの中で「どうやって記録が作られ、守られているのか」がすごくよく分かりました!

江輝
今回の学習内容をまとめると以下のような内容になります。
- ユーザーはトランザクションを作り、電子署名をしてネットワークに送信する
- ノードはその取引を検証し、マイナーがブロックにまとめてマイニングを行う
- ネットワーク全体でブロックが共有され、台帳が同期される
次回は、ブロックチェーンの仕組みがどのように社会で活用されているかを見ていきましょう。ビットコインをはじめとした暗号通貨のしくみや、ゲーム・デジタルアートにおけるNFTのような身近な事例を通じて、ブロックチェーン技術が私たちの生活にどんな役割を果たしているのかを学びます。

結
実際に使われてる場面を知れるって、なんだかワクワクします!