目次

    全ての目次を見る
  1. ブロックチェーン(blockchain technology )とは?
  2. ブロックチェーン(blockchain technology)とは?-基本的な仕組みをわかりやすく図解
  3. P2Pネットワークを図解
  4. ブロックのデータ構造の概要を図解
  5. ブロックチェーンの改ざん防止の仕組みを図解
  6. ブロックチェーン(blockchain technology)のまとめ₋仕組みの振り返り
Large 3

ビットコイン(bitcoin)に注目が集まるにつれて、その中核技術であるブロックチェーンにも注目が集まってきています。

日本では三菱UFJ銀行がブロックチェーン技術の利用するというニュースもあり更なる注目が集まっています。

この記事にたどり着いた方はは最近注目されている『ブロックチェーンの概要や仕組み』を知りたいという読者の方が多いのではないでしょうか。

この記事ではブロックチェーン(blockchain technology)の概要と仕組みについて解説していきます。

ブロックチェーンとは分散型台帳と呼ばれており、取引データ(トランザクション)を分散して管理(みんなで管理)し合う技術のことです。

現在ブロックチェーンはさまざまなサービスに活用されており特徴もさまざまなので、ここではビットコイン(bitcoin)で使用されているオリジナルのブロックチェーンの仕組みと特徴に関して説明します。

ブロックチェーンには以下の特徴があります。

  1. 単一障害点がない

  2. 改ざんが極めて困難

単一障害点とは『心臓』のようなもので、故障やその他のトラブルによってシステム全体が停止してしまうようなポイント(点)のことを指します。

P2Pネットワーク(後述)によって『単一障害点がない』ことが実現していて、ハッシュ値(後述)を用いたデータ構造(後述)とコンセンサスアルゴリズム(後述)によって『改ざんが極めて困難』となっています。

これはどういうことでしょうか。

それぞれ次の段落で解説していきますね。

ブロックチェーンの仕組みを理解するには

P2Pネットワーク

ブロックのデータ構造

ハッシュチェーンの役割

コンセンサスアルゴリズム

の4点について理解する必要があります。

上図は一般に使用されているクライアント・サーバー型P2Pネットワークの比較図です。

クライアント・サーバー型とは中央集権型のネットワークで、『データを一括管理するサーバー』とそれに『アクセスするクライアント』が存在します。

クライアント・サーバー型では、サーバーがデータを一括管理しているのでサーバーがハッキングによりダウンしたり、システムに不具合が生じたらネットワーク全体が利用できなくなります

クライアント・サーバー型には『サーバー』という単一障害点が存在するのです。

一方、P2Pとは『Peer to Peer』の略称でネットワークに参加している個人間を直接つなげた技術のことでそれぞれの参加者がネットワークで共有されているデータを保有しています。

※Peer to Peerが無数に集まることでP2Pネットワークが構築されています。Peerとは『対等なもの』の意味でここでは対等関係にある個人のPCのことを指します。

『ブロックチェーンのP2P』では、参加者が同様のデータを分散して保持しているため1つのサーバーで故障やハッキングにより機能停止してもシステム全体に影響を与えることはありません。

ブロックチェーンの各ブロックには『複数の取引データ』『前の取引データのハッシュ値』『ナンス』が含まれています。

ハッシュ値とナンスについてそれぞれ解説していきますね。

ハッシュ値とは

ハッシュ値とはデータ(文字)を暗号化(数値化)した値のことを指します。

このハッシュ値には

『異なるデータから同じハッシュ値が取れることはほとんどない』=『少しでもデータが変わればハッシュ値は変化する』

という特徴があります。

下図を見てみると、『ブロック』の小さい『ッ』を平仮名の『っ』に変えただけで全く異なるハッシュ値になってるのがわかりますね。

この特徴を利用することで、ブロックチェーンでは改ざんを発見することが容易になっています。


『各ブロックのハッシュ値』=『前のブロックのハッシュ値』+『取引データ』+『ナンス』

です。

右辺の3つのどれか1つでもが変われば、左辺の値も変化してしまいますよね

すなわち、『取引データの改ざん』or『前のブロックのハッシュ値の変化』が起きた場合、ブロックのハッシュ値が変化するので改ざんに気づくことができるのです。


次にナンスの詳細を見ていきましょう。

ナンスとは

ナンスとはブロックを生成するために必要な数値のことです。

ナンスは元からブロックに格納されているわけではなく、ブロックを生成する際に計算して求めなければなりません

ナンスを求める手順は以下の手順をご覧ください

①『前のブロックのハッシュ値』と『トランザクションのデータを足し合わせて』ハッシュ化します。

このハッシュ値は『03ac674216f3e15c761ee1a5e255f067953623c8b3 88b4459e13f978d7c846f4』とする。

②このデータを『ある一定以下の数値に変化させるような値』を探す

  • ビットコインでは『ブロックのハッシュ値を一定以下の数値にさせるナンス』を発見しなければブロックチェーンにブロックを格納することができません。

このナンスを求めるには膨大な計算(数兆回以上)をしなければならないのですが、ビットコインではこの作業のことをマイニングといいます。

  • この数式を解く合理的な方法はなく考えられるすべての文字列の候補を総当り的に代入しなければなりません

厳密には『ナンスを発見したらブロックチェーンに追加』できるわけではありません。

適切なナンスを1番に発見しその正当性が他の参加者に承認された』ときにブロックチェーンにブロックを追加できるのです。

詳細は『ビットコインの仕組み』の記事をご覧ください。


次に『改ざん防止の仕組み』を理解するために『ハッシュチェーン』と『コンセンサスアルゴリズム』について解説していきまね。

上図はブロックチェーンですが、前後のブロックはハッシュ値によって、結び付けられているので『ハッシュチェーン』といわれることがあります。

仮に上図で『N番目』の取引データが改ざんされたとしたら、N番目のブロックのハッシュ値が変わるのでN+1番目以降の各ブロックのハッシュ値も変わってしまいます

理由は『ブロックのハッシュ値』=『前のブロックのハッシュ値+取引データ+ナンスを暗号化した数値』だからでしたね。

このとき各ブロックで計算して求めたナンスは変わりません

ブロックのハッシュ値が『一定以下の数値』ではなくなるので、またその条件を満たすナンスを探し出さなくては、他の参加者に改ざんがあることがすぐに発見されてしまいます

つまり、ブロックチェーンにおいて改ざんが成立するときは、取引データを改ざんしたときではなく、『変化したブロックのハッシュ値すべてのナンスを再発見したとき』ということになります。

続いて、コンセンサスアルゴリズムについて解説していきます。

ここでは、ビットコインのコンセンサスアルゴリズム、PoW(プルーフオブワーク)について解説していきます。

次の章を読めば、ブロックチェーンがどうして改ざんが極めて困難なのか理解できるかと思います。

コンセンサスアルゴリズムとは、ブロックチェーンのブロックの正当性(改ざんがないかどうか)を確認するための一連の作業のことをいいます。

PoWでは、10分に及ぶ数兆回以上もの膨大な計算作業により正当性を確認します。

この膨大な計算作業はブロックのハッシュ値と対となるナンスを見つける作業のことです。

仮に『n番目のブロックを改ざんしたとき』『n番目以降のすべてのハッシュ値(鍵穴)が変わる』ため、対となるナンス(鍵)を見つけなければ取引を確定(ロック)することはできません

これと同様の作業を『n番目以降のブロックすべて』でおこなわなければならないのです。

実際に改ざんをするとなると、10分毎に生成され続けるブロックを上回る速度で改ざんしなければならないので極めて困難です。


※仮に全体の約51%以上の計算速度を持てば改ざんが可能となるので、ブロックチェーンの改ざんは不可能ではなく極めて困難なのです。


最後に補足を加えてまとめると

  • ブロックチェーンとはビットコインを支えるために、サトシ ナカモトによって考案された技術で、P2Pネットワークブロックのデータ構造コンセンサスアルゴリズムによって実現された改ざんが極めて困難な唯一無二の台帳を分散して管理する技術です。

この記事では、ブロックチェーンとビットコインの関係性について触れましたが、ビットコインについてもっと詳しく知りたいという方がいらっしゃいましたら『ビットコインとは』『ビットコインの仕組み』の記事をご覧ください。