注目キーワード
  1. Web3
  2. NFT
  3. OnCyber
  4. Open sea
  5. Etherscan

【復習にも】ブロックチェーンとは?ハッシュ値とは?わかりやすく図解します。

「よく聞く言葉だけど、実は理解していない…」「ブロックチェーン技術の何がすごいのか分からない…」「ブロックチェーンってビットコインのこと?」「すぐ消える流行じゃないの?」という方へ。わかりやすい図を使って説明します。

ブロックチェーンとは

ブロックチェーンとは、「取引を記録する技術」。この技術の一番の特徴は、「改ざんできないから、信頼できる 」ということ。そして、信頼できるブロックチェーンを使えば、取引相手を信頼する必要がありません。まずは「”信頼”がキーワードなんだな」という理解でOKです。

ブロックチェーンは大きく3種類に分けられますが、まずはビットコインを支える「パブリックブロックチェーン」について説明します。「分散型」「非中央集権」という言葉で説明されることが多いのですが、ここで「??」となる方も多いのではないでしょうか。私がそうでした。

「分散型」「非中央集権」とは、簡単にいうと「世界中にあるコンピュータが、対等な立場でデータを管理している」ということ。国や政府、銀行、企業など、権力を持った組織(中央管理者)がデータを管理しているわけではない、ということです。

これだけを聞くと「だから何のメリットがあるの?」と思いますよね。そこで、中央管理者がいるデータベース」と、「パブリックブロックチェーン」を比べて考えてみましょう。

★正確にいうと改ざんに挑戦することはできますが、莫大な費用と手間、時間がかかる上、「改ざんに成功する確率」が限りなくゼロに近いため、「改ざんは極めて困難」だといえます。

★混同されがちなビットコインは、あくまで「ブロックチェーン技術の活用方法の一つ」でしかなく、「ブロックチェーン=ビットコイン」ではありません(でも、ブロックチェーンの可能性を最初に証明したのは、ビットコインだといえます)。

データベースと、ブロックチェーンの違い

まず、一般的なデータベースには、国や政府、銀行、企業などの「中央管理者」が存在します。そして、管理されるデータは、必要に応じて追加したり、書き換えたり、削除したりすることが可能です。つまり「Excelのような形」ですね。

ユーザーは、「自分のデータを正しく保管してくれるはずだ」「不正をしないはずだ」と管理者を信頼してデータを渡していることになります。

たとえば、インターネットで買い物した代金を支払うとき、送金相手に「ちゃんと商品を送ってくれるかな」と思うことはあっても、送金を仲介する銀行に「残高をごまかされるかも」とは思いませんよね。

また、管理者がいるということは、「困ったときに助けを求める場所がある」というメリットもあります。送金先を間違えたときには、「組戻し」を依頼することもできますし、振り込んだお金が着金しなければ「調べてもらえませんか」と問い合わせることもできますね。

一方、このように中央管理者がいるデータベースの場合、「悪い人」がこっそりデータを消したり、書き換えたりしても、ユーザーがそれを確認することはできません。

また、「クライアントサーバ型」で管理されているため、たとえば急に負荷がかかった場合、停電した場合、サイバー攻撃を受けた場合には、サーバーが落ちてしまったり、データが流出してしまったりします。

では、パブリックブロックチェーンならどうでしょう。データは世界中に散らばった多数のコンピュータが管理しており、「権力を持った中央管理者」は存在していません。データは「見ること」と「追加すること」しかできず、後から都合の悪い情報を消したり、書き換えたりすることもできません(※)。

また、データは誰でも確認することができ、たとえば「AからBへいくら送金したか」という情報も丸見えになっています。「透明性が高い」ということですね。さらに、コンピュータが直接、対等なネットワークをつくるP2P(ピアツーピア)型通信のため、一部のサーバー・コンピュータがダウンしてもシステム全体に影響はありません。

多数のコンピュータでデータを共有している(みんながコピーを持っている)ため、「データが消えてしまう」という心配もありません。

一方、中央に管理者がいないため、データの管理はすべて自己責任です。「お客様センター」のようなものがない、とイメージするとわかりやすいかもしれません。たとえば送金先のウォレットアドレスを間違えたとき、「さっきの送金を取り消してほしい」と助けを求めることはできませんし、「なんとかしましょう」と言ってくる人がいたら、それはきっと詐欺師です。

一度ブロックチェーンに刻まれたデータは、原則として書き換えることができないからです。

中央管理者がいるデータベース」と、「パブリックブロックチェーン」を比べてみると、それぞれにメリット・デメリットがあることがわかりました。では、パブリックブロックチェーンは「管理者がどこの誰かもわからない」のに、なぜ信頼することができるのでしょうか。

ブロックチェーンが信頼できる理由

ブロックチェーンが信頼できる理由。それは、「不正ができない仕組み」「みんなで監視し合う仕組み」があるからです。ここではその仕組みを「ビットコイン・ブロックチェーン」を例に説明します。

こんな光景をイメージしてみてください。あなたの目の前には、透明な箱があります。あなたは、次々に届く書類のファイルを受け取り、箱に入れていきます。一つの箱にはファイルが2000枚ほど入りますが、世界中からファイルが届くので、箱はすぐいっぱいになりました。

目の前には、すでに99個の箱が鎖につながった状態で並んでいます。あなたの仕事は、自分が作った箱を「99」と書かれた箱の次につなぐこと。箱をつなぐのは難しい仕事ですが、その分たくさんの報酬がもらえます。

あなたは頭をフル回転して難問を解き、周りの人たちに答えを見せ、「箱をつないでいいですね?」と確認します。OKをもらったら箱のフタを閉めて鍵をかけ、箱に「100」という番号を書き込みます。ここでようやく、「99」の次に箱をつなぐことができました。やった!

10分ほどすると、あなたが担当した「100」という箱の後ろに、別の誰かが「101」という箱をつないでいます。みんな報酬を受け取りたいので、必死で難問に取り組んでいるようです。

箱をつなぐのは頑丈な鎖で、誰にも外すことはできません。フタを開けることもできません。ですから、箱を抜き取って捨てたり、順番を入れ替えたり、書類を黒塗りにしたりすることはできません。この「透明な箱」がブロックで、「外せない鎖」がチェーンです。

データが処理される方法

もちろん実際には、この作業を行うのは高性能なコンピュータです。では、データはどのように処理されるのでしょうか。ここでも、「ビットコイン・ブロックチェーン」を例に説明します。

まず、「0.5BTCを売りたい」「0.03BTCをAさんに送りたい」といった取引データ(トランザクション)がネットワーク上に集まります。これが、「次々と届く書類のファイル」ですね。ネットワーク上ではたくさんのコンピュータ(ノード ※1)が相互に通信しており、取引のデータが正しいか、解かれた難問の答えが正しいか、などをチェックしています。ブロックをつなぐために難問を解く人はマイナー(採掘者)と呼ばれます。

取引のリクエストは、マイナーが難問を解き、「周りの人たち」であるノードが合意し、ブロックをつないだ時点でようやく承認(=売買・送金などが実施)されます。マイナーは、ブロックをつないだ報酬としてビットコインをもらい、さらに箱の中に入れた取引の手数料も受け取ることができます。

ビットコインの場合、この「報酬」が「市場への新規供給 ※2」を兼ねているため、一連の作業は「金を掘り出すような仕事」ということで「マイニング(採掘)」と呼ばれています。

ここで、「ビットコインがもらえるの?」とマイニングに興味を持った方がいるかもしれません。「難問を解く」という作業は、家庭用のPCでもできるものなのでしょうか…?

※1:ビットコイン・ブロックチェーンの場合、「Bitnodes」によるとノードの数は14930(2022年1月11日現在)。どの国・エリアにノードが分布しているかも、BitnodesのLive Mapで確認することができます。

※2:ビットコインの場合、総数(発行枚数)が2100万枚と設定されており、2021年12月の時点ですでに90%以上が発行済みとなっています。そして、ブロックが21万個つくられるたびに、新規発行量(=報酬)は半分に減らされます。これを「半減期を迎える」といいます。当初は50BTCだった報酬も、2021年1月現在は6.25BTCにまで減っており、残り10%のマイニングが終わるのは2140年頃と推測されています。発行量や価格の推移データは「Bitcoin.com」で確認できます。

「ナンス」を探し続ける仕事

難問を解く作業というのは、一言でいうと「決められたハッシュ値を出すための、ナンスを見つける作業」です。うーん、まったく意味がわかりませんよね。正直なところ、ここまで理解する必要はないと思うので、興味がない方は飛ばしてください…!

ハッシュ値とは、元のデータから一定の計算手順で求めた、「規則性のない値」です。これではわかりにくいですね。そこで、ハッシュ値生成ツール(無料)を使い、ハッシュ値を出してみました。ハッシュ関数(計算式)はビットコインでも使われる「SHA256」を使用しています。

たとえば、「ABC」という文字列でハッシュ値を生成すると「b5d4045c3f466fa91fe2cc6abe79232a1a57cdf104f7a26e716e0a1e2789df78」となります。

bからはじまる、64桁の値です。これは、元データが同じなら、何度やっても変わりません。

では、一文字変えて「ABCD」にすると…? 出てきた値は「e12e115acf4552b2568b55e93cbd39394c4ef81c82447fafc997882a02d23677」でした。

元データは4文字に増えているのに、生成されたハッシュ値は先ほどと同じ64桁。一文字しか違わないのに、文字列に規則性は見られません。

このように、ハッシュ値には3つの特徴があります。

  • 元データが同じなら、同じハッシュ値が生成される
  • 元データの文字数に関わらず、同じ桁数になる
  • 生成されたハッシュ値から、元データは推測できない

では、元のデータに「何か」を追加することで、ハッシュ値の先頭を「000000…」にしなければならない、と決まっていたらどうでしょう。しかも、「先頭の13桁(※)すべてを0にする」と決まっていたら? ハッシュ値には規則性がないため、「何か」を見つけ出すのはものすごく難しい、ということがわかりますね。

この「何か」が、「ナンス」です。ナンスとは「Number Used Once」、一度だけ使われる番号のこと。このナンスを見つけるために、ビットコインのマイナーは一秒間に24兆回も計算ができるようなマイニング専用マシンを使うそうです。

このように、難問を解く仕事(Work)を成し遂げた人がブロックをつなぎ、報酬を受け取れる仕組みを、「プルーフ・オブ・ワーク(Proof of Work/PoW)」といいます(他の仕組みもあります)。では、マイナーの中に「悪い人」がいたらどうなるのでしょうか。

※マイニングに参加するマイナーの数などにより、難易度(0にする桁数)は調整されます。

「悪いこと」をするメリットがない

たとえば、「96番目のブロックのデータを書き換えて1000BTC(ビットコイン)を奪いたい」と思うマイナーがいたとしましょう。そして、現時点では101番目までブロックがつながれているとします。

ブロックチェーンが単なるブロックの集まりなら、96番目だけをこっそり書き換えればいいはずです(※1)。

※1:仮に取引履歴を改ざんできたとしても、その場合には他のノードで管理している取引履歴ともデータを一致させる必要があります。最終的な改ざんを成立させるためには、ノード全体の過半数のコンピュータを自分で用意しなければなりません。

ここで不正防止に役立っているのが、先ほど出てきたハッシュ値です。実は新しくつなぐブロックには、「直前のブロックのハッシュ値を入れなければいけない」というルールがあります。つまり100番目のブロックには99番目のハッシュ値、99番目のブロックには98番目のハッシュ値が含まれている、ということです。

「ハッシュ値によってチェーンがつながっている」とイメージするとわかりやすいですね。

そのため、たとえば96番目のブロックを改ざんするためには、96番目だけでなく、97番目、98番目、99番目…と、最新のブロックまですべてのナンス値を再計算しなければいけません

ビットコイン・ブロックチェーンの場合、約10分に1個のペースで新しいブロックが作成されているため、このスピードに追いつくのは現実的に不可能だと考えられています(※2)。

※2:正しいチェーンとは別に、改ざんしたチェーンを後から伸ばし続けていくことになりますが、このような場合は「より長い方が、正しいチェーン」と認められることになっています。

それでも、もし「全マイナーの総計算能力のうち、51%以上の計算能力を持つマイナー」が不正をすれば、理論上はブロックを伸ばし続けることができるそうです。しかし、ブロックチェーンは、透明性が高く、誰でも履歴を見られる仕組みです。仮にビットコイン・ブロックチェーンで不正が明らかになれば、莫大な費用と手間、時間をかけて手に入れたBTC(ビットコイン)の価値は暴落し、労力に見合わない結果となってしまいます。

ですから、マイナーには「(経済的な意味で)悪いこと」をするメリットがありません。ブロックを改ざんできる力があったとしても、マイニング報酬を受け取ってブロックチェーンに正しく貢献する方が、「より大きな利益を得られる」からです。

ちなみに、ビットコインが誕生したのは2009年1月。この頃のマイニング報酬は、50BTCです。

ブロックチェーンの種類とは?

ここまで、「ブロックチェーン」=「パブリックブロックチェーン」として説明してきました。その特徴は、

  • 中央管理者が存在しない
  • 不正ができない承認、監視の仕組みがある
  • 取引の履歴は誰でも見られる

 ということです。一方で、以下のような弱点もあります。

  • 意思決定が難しい
  • 高速処理には強くない
  • プライバシーの問題がある

パブリックブロックチェーンの場合、中央管理者がいないため、「ルールを変えた方が良い」と思う参加者がいても、合意形成は容易ではありません。参加者の間で意見が割れた結果として、ブロックチェーンが永久に分岐(ハードフォーク)することもあります。意思決定権を持つ人・組織がいないということは、「責任の所在が明確でない」と言うこともできます。

また、ブロックの承認に手間と時間がかかる(マイニングや、ノード間の合意形成に時間がかかる)ため、データの処理速度は速くありません。そのため、大量の取引を記録する場合、データの書き換えが頻繁に発生する場合には、従来のデータベースの方が使いやすく、無駄(電力・時間・コスト)がありません。

さらに、取引履歴がオープンになっているということは、ウォレットの残高や送金先、NFTの購買履歴なども丸見えになっている状態。偽造することができないので「信頼」を数値化することができるわけですが、見方によっては「プライバシーの問題がある」とも言えますね。

そのため、実際には、パブリックブロックチェーンと、管理者がいるデータベースの「いいとこ取り」をしたブロックチェーンもあります。

  • 単独の人・組織が運営する「プライベート型ブロックチェーン」
  • 複数の人・グループが運営する「コンソーシアム型ブロックチェーン」

これは、「データが改ざんできない」というブロックチェーンの強みを活かしつつ、「大量のデータを高速処理する」「見せるデータと、隠すデータを分ける」といった使い分けもできることが特徴です。

最後に

今回は、主に「ビットコイン・ブロックチェーン」を例に説明してきました。ブロックチェーンという技術の使い道として、一番わかりやすいのが仮想通貨(暗号資産)だからです。ブロックチェーンは仮想通貨以外にも決済、ローン、保険、貿易、知的財産、不動産など、さまざまな用途がある技術。

また、仮想通貨に限ってもたくさんの種類があり、しかも用語が難しいので、最初は本当にわかりにくいです。これらについては、また別の記事で書きたいと思います!

★ブロックチェーンという技術によって、「Web3(ウェブスリー)」時代がはじまろうとしています。Web3について、わかりやすく図解した記事はこちらです。

ブロックチェーンの最新記事8件