
インターネットが登場して、私たちは「情報のやり取り」を世界中の人たちと自由にできるようになった。
でも、お金や権利などの「価値」のやり取りだけは、そうはいかなかった。

PayPalやクレジットカードで、ネット送金なんて昔からできてたんじゃないの?

厳密に言えば、既存のオンライン決済は「お金そのもの」を送っているわけじゃない。
PayPalや銀行という仲介役に対して、「私の通帳の数字を減らして、あの人の数字を増やしておいて」と指示しているにすぎないんだよ。

あくまでお金のデータは、仲介者が管理している。そんなイメージかな?

そうだね。
データの実体はあくまで管理者のサーバーの中にあり、私たちはそれを操作する権利を借りている、といったところだ。

デジタルのデータは、簡単にコピーできるし、改ざんもしやすい。
堅牢なセキュリティを持つ銀行などを通さずに、お金のデータを個人間で直接やり取りする、ということは考えられなかったんだ。

確かに。
お金のデータを簡単にコピーできるとしたら、無限に偽札を作れちゃうもんね。

この常識を覆した技術、それが、「ブロックチェーン」だ。
そもそもデジタルの取引とは?
まず、ブロックチェーンの仕組みを理解するために、デジタル取引の正体を見てみましょう。
スマホの銀行アプリで送金ボタンを押したとき、なにも紙幣や硬貨のデータが飛んでいってるわけではありません。
実際に行われているのは、以下のようなテキストデータの作成です。
「2025/12/02 10:00:00, Aさんから, Bさんへ, 100コイン送る」
そして、このデータが銀行のサーバに送られ、AさんとBさんの銀行残高や取引歴に操作を行います。
ここで問題になるのが、次の3つです。
- データを盗み見されていないか?
- データを改ざんされていないか?
- そもそも送信ボタンを押したのは本当にAさんか?
データを送ると一口に言っても、実際は世界中の中継地点を経由して、目的のアドレスにたどり着きます。
仮に、テキストデータをそのままの状態で送ってしまったら、どこの誰が盗み見て、改ざんしてしまうかわかりません。
また、銀行側としても、この取引データが本当にAさんの銀行アプリの操作によって送られてきたことを確認する必要があります。

ここで活躍するのが暗号化や暗号通信などの「暗号理論」だ。
だが、「暗号理論」について解説するだけでも、一つ記事が書けるくらいの分量になるので、それはまた別の機会に。
ここでは、その「暗号理論」を支える数学理論として「ハッシュ関数」と「ハッシュ値」というものがあることだけ理解してくれたら大丈夫だ。

なんだか、お腹すいてきた。

…………?
ブロックチェーンのセキュリティの中核を担う「ハッシュ関数」
ハッシュ関数の主な特徴は大きく4つあります。
①入力されたデータの大きさによらず、出力されるハッシュ値は常に一定の長さであること。
例えば、SHA-256というハッシュ関数は、どんなに大きなデータを入力しても256ビットのハッシュ値を返します。
②ハッシュ値から、元のデータを復元するのはほぼ不可能であること。
つまり、ハッシュ値そのものを第三者に見られたとしても、そこから元のデータを復元される可能性はほぼない、ということです。
天文学的な時間をかけて計算すれば特定できる可能性は残されているので、「ほぼ」と言っていますが、事実上は不可能です。
③同じ入力からは必ず同じハッシュ値を返すこと。
そのままですね。
Aというデータをハッシュ関数に何度入力しようが、毎回同じハッシュ値を返します。
④異なる2個の入力値から同じハッシュ値を得ることが難しい
難しい言葉で「衝突困難性」と言います。
ハッシュ関数は、データの情報を操作する際、その一部切り落としてハッシュ値を返します。
つまり、入力値の種類より、返されるハッシュ値の種類の方が少なくなります。
そうすると、入力値が異なっても同じハッシュ値が返される(これを「衝突」という)、ということが理論上はあり得るのですが、ハッシュ関数はそういったことがほぼ起こらないようになっています。
また、異なる入力データの差が非常に微小なものだったとしても、ハッシュ値は大きく異なるという特性もあります。
これらの特性が暗号にかかわる様々なシーンで活用されています。
例えば、Aさんがある銀行にログインするシーンを考えてみましょう。
ログイン画面のフォームに「1234」というパスワードを入力して、「ログイン」ボタンを押したとしましょう。
この時、パスワード「1234」がインターネットを通る過程で誰かに盗み見されないように、通信自体を SSL/TLS(HTTPS)という技術で暗号化 します。
これにより、通信経路上では誰も「1234」という内容を読み取れません。
暗号化された通信を通って、銀行のサーバーに「1234」が無事に届きます。
ここで重要なのは、銀行はAさんのパスワード「1234」そのものをデータベースに保存しているわけではない という点です。
もしそのまま保存していたら、銀行内部の人間やハッカーにパスワードがバレてしまいますよね。
その代わり、銀行はあらかじめ「1234」をハッシュ関数に通して得られた「ハッシュ値」だけを保存しています。
ログイン時、銀行のサーバーは送られてきた「1234」をその場でハッシュ関数にかけます。そ個から返されたハッシュ値と、以前から銀行のデータベースに保存してあったハッシュ値を突き合わせます。
ハッシュ関数には「同じ入力値からは必ず同じハッシュ値が出る」という特性がありましたよね。もし2つが一致すれば「送られてきたのは正しいパスワード(1234)だ」と判断でき、ログインを許可します。
ハッシュ値には「ハッシュ値から元のデータを復元することは事実上不可能」という特性がありました。
そのため、万が一銀行がハッキング被害に遭い、保存されているデータがすべて盗まれたとしても、攻撃者が手にするのは「意味不明なハッシュ値」だけです。そこから元のパスワード「1234」を割り出すことは非常に困難なため、Aさんのパスワードは守られる、ということです。

ちょっと難しいかもしれないが、ハッシュ値とは、データ固有のIDで、いったん「データの指紋」のようなものだと思ってくれたらいい。
指紋だけ見ても、その人の容姿や性格までは分からないが、その人物を特定することはできるよね。
ブロックチェーンの基幹技術「P2P」とは
さて、ブロックチェーンの根幹をなす技術としてもう一つ「P2P」という仕組みがあります。
まず、インターネットの通信方式について理解しましょう。
現在、多くのシステムで採用されているのが、クライアント・サーバ方式です。
私たちが普段使っているWebサイトやアプリのほとんどはこれです。
サービスを提供する巨大な親コンピュータ(サーバ)に対して、私たちのスマホやPC(クライアント)からアクセスして、データを閲覧したり、操作をリクエストします。
すべてのデータは中央の「サーバー」に集まっているので、私たちはそこにアクセスしてデータを閲覧することができますが、 サーバーがダウンしたり、ハッキングされたりすると、全員が使えなくなります。
もちろん、管理者がデータを書き換えることも可能です。
これに対して「P2P(ピア・ツー・ピア)」では、クライアントもサーバもいません。
ネットワークに参加するすべてのスマホやコンピュータ(ノードと呼びます)が、対等な形で直接つながり、ネットワークを構築します。
サーバのような特定の場所にデータを置いて通信するのではなく、各ノードは皆と全く同じデータを保存しながら通信のやり取りをします。
ノードが、いわばクライアントとサーバの両方の役割を担うイメージです。
これによって、誰か一人のPCがダウンしても、他の誰かが生きている限り、データは失われず、システムも止まりません。
「ブロック」と「チェーン」を理解する
P2Pによって皆でデータを共有するイメージはつかめたでしょうか。
次は、ブロックチェーンの名前の由来にもなっている「ブロック」と「チェーン」を使ったデータ通信の考え方を理解しましょう。
「ブロック」とはある程度の量をまとめたデータの塊を指しています。
そして、このブロックを作り通信する際に、あるルールが守られるようにしています。
それは、
『新しいブロックを作るときは、そのひとつ前のブロックのハッシュ値をその中に書き込む』
というもの。

なぜ、そんなことを?

まずは、例を見てみよう。
- ブロックAを作る。→ ブロックAの中身を計算して「ハッシュ値A」を出す。
- ブロックBを作る。→ この中に、前の「ハッシュ値A」を書き込む。
- ブロックCを作る。→ この中に、前の「ハッシュ値B」を書き込む。

見たけど、よくわからない。
何のためにこんなメンドくさいことを?

例えば、ブロックAの中身を悪意あるハッカーが書き換えたとしよう。
ルールに基づいてハッシュ値Aも異なったものになる。
ここまでは分かるかな?

元のデータが少しでも異なれば、ハッシュ値も大きく変わるんだよね

ハッシュ値Aが異なれば、それが含まれているブロックBの中身も異なる。
ブロックBの中身がことなれば、ハッシュ値Bも異なるから、それが含まれるブロックCも異なる…
という風にすべてのブロックのデータが異なったものになっていくんだ。

すべてのブロックが鎖のようにつながっているイメージだね!

ここで思い出してほしい。
P2P通信においては、各ノードは皆と全く同じデータを保存しながら通信のやり取りをするんだったよね。

みんなが持っているデータと違うデータなら偽物だとわかるね

この方式の優れている点は、最新のブロックのハッシュ値さえチェックすれば、それまでの過去のデータのどこかに改ざんがあるかどうかがすぐわかる、ということだ。
価値を扱うテクノロジー
インターネットが「情報のやりとり」を自由にしました。
ブロックチェーンは「価値(お金や信用)のやりとり」を自由にする革命だと言われています。
みんなでデータを分散保持してシステム停止を防ぎ、暗号技術やブロックチェーンで不正や改ざんを防ぐ。
これまでは、銀行や国といった「権威ある第三者」を信用することで、価値の交換を行ってきました。
しかし、ブロックチェーンは、「テクノロジー」を活用して、第三者を介さずに価値を交換できる仕組みです。



