IT

なぜ安全?図でしっかりと理解するブロックチェーンの仕組み

理解ができたときの画像

こんにちは!

今回は、ブロックチェーンがなぜ安全と言われているのかということについて、しっかりと理解していこうと思います。

そのため、ブロックチェーンって言葉は聞いたことあるけど、どんなものかは全く分からないっていう人は、先に以下の記事を見てから、この記事に戻ってきてください!

laptopの画像
ブロックチェーンとは何か?仕組み&特徴を図解でざっくりと理解こんにちは! ブロックチェーンと聞いて上記のように、思われた方も多くいると思いますが、ビットコインをはじめとする仮想通貨は...

ブロックチェーンとは?

上記で紹介したコチラの記事で、ブロックチェーンとは?について簡単に理解してもらったと思うので、ここではさらにブロックチェーンとは?について掘り下げて説明します。

ブロックチェーンとは、取引などの時系列で記録されるデータを記録する「台帳」を共有して、情報の信憑性を確保する仕組みのことを言います。

台帳 ・・・ すべての取引を記録するもの。

 

ブロックチェーンのデータ構造

ブロックとチェーン

ブロックチェーンの台帳には、最初の取引から最新の取引まで、全ての取引情報が記録されています。

そして、その取引情報が、ある一定の時間ごとに生成されたブロックの中に保存され、上記の画像のようにそのブロックごとがチェーンで繋がるような構造となっています。

しかし、最初から最新までの情報が保存されているとはいえ、なぜブロックチェーンは改ざんができない仕組みになっているのでしょうか。

その理由は、ブロックチェーンのブロックに記録されているデータを詳しく見ることで理解できます。

コチラの記事や、上記の画像では、「ブロックの中には取引履歴が記録されている」と表現していましたが、実は取引履歴だけが記録されているのではありません。以下の画像を見てください。

画像の中に、取引履歴の他に、ハッシュ値ナンスが見えると思います。このハッシュ値とナンスが、ブロックチェーンが改ざんできない仕組みを実現しています。

それでは、まずはハッシュ値とは何かを見ていきましょう。

ブロックの並びを1列にしてくれるハッシュ

ハッシュ値とは?

ハッシュ値とは、ハッシュ関数と呼ばれるあらかじめ定められた計算方法によって求められた値のことです。一般的に、送信側のデータと、受信側のデータが同じものかどうかを確かめるために使われます。

ハッシュ関数に2つのデータを通すとき、少しでもデータに差があれば全く異なるハッシュ値が生成される。

ハッシュ関数はハッシュ値から元のデータをたどるのが非常に困難という性質を持っているため、ハッシュ値から元のデータを復元することは事実上できません。

どうやってブロックを1列に並べているの?

ブロックチェーンは、取引履歴などが保存されたブロックが、時系列で1列に繋がっているのですが、どうやって1列に並んでいて、もし改ざんが起こった場合どうなるのでしょうか。

この疑問を解決するために、登場するのが先ほど説明した「ハッシュ値」です。

ブロックの中には、取引内容と「前のブロックのハッシュ値」が保存されていて、そのハッシュ値によって、ブロックの並び順が一意にわかるようになっています。

また、仮にどこかのブロックの取引内容が改ざんされても、その次のブロックに保存されている「取引内容のハッシュ値」とデータが一致しないため、改ざんがすぐにばれてしまいます。

取引内容とハッシュ値をどちらも改ざんすればいいと思うかもしれないが、ハッシュ関数によって、元のデータを推測するのは非常に困難なので、実際はできない!

 

各ブロックは前のブロックのハッシュを保有しているため、あるブロックに変更があると、その次のブロックの情報との不整合が生じます。つまり、ブロックチェーンでは、あるブロックを改ざんした場合、それ以降のすべてのブロックを変更しない限り、ブロック間に不整合が生じて改ざんが発覚します

ライアン
ライアン
じゃあ全部変更すればいいじゃん!

と思う方もいると思うので、それについて説明します!

 

改ざんができない理由

上記の通り、ブロックチェーン内のすべてのブロックを改ざんすれば改ざんは可能なのでしょうか?

実は、ブロックチェーンにはそれを事実上不可能にしている仕組みが存在します。

一度、登場したこの図で、「ナンス」(ナンス値)というものがありましたよね!実はこれが、すべてのブロックを改ざんできないようにしているのです。

さらに、ここで1点押さえておいてほしいことがあります。

先ほど、「ハッシュ値はひとつ前のブロックの内容である」というような説明をしましたが、ひとつ前のブロックの中には「取引履歴」「ハッシュ値」「ナンス」があるということです。この3つのデータをくっつけたものをハッシュ関数にかけて、生成されたものが、次のブロックのハッシュ値となります。

ナンス値とは?

ナンス値とはデータと組み合わせてハッシュ関数に通すとある条件を満たすハッシュ値が出来上がるような値のことです。ここである条件とは例えば、「ハッシュ値の最初に5個以上0が続く」などがあります。

こう言われても、なかなか理解するのが難しいと思うので、図解します!

<パターン①の場合>

「データ(取引内容)」と「ある値①」を組み合わせた文字列が、ハッシュ関数を通ってでてきたハッシュ値の先頭5文字は、「00000」ではありません。つまり、このとき「ある値①」はナンス値とはならないのです。

<パターン②の場合>

「データ(取引内容)」と「ある値②」を組み合わせた文字列が、ハッシュ関数を通ってでてきたハッシュ値の先頭5文字は、「00000」です。つまり、このとき「ある値②」はナンス値となります!

ここで、パターン②のように、もともと決められたある条件を満たすようなナンス値を見つけるのは、総当たりでたまたまハッシュ値が条件にあるような値を見つけるのと同じです。この値を見つけるには、スーパーコンピューターのような大規模なコンピューターが本気を出さないと無理といったイメージなのです。

もうお分かりだと思いますが、全てのブロックの改ざんすることは不可能ですよね・・・。

このような仕組みからブロックチェーンを改ざんするのは、事実上不可能となっているのです。

 

まとめ

今回は、ブロックチェーンの仕組みについて、しっかりと理解しました。

このように、ブロックチェーンは魅力的な仕組みではありますが、まだまだ隠れたブロックチェーンの用途が眠っています。特に日本は、世界に比べて進出が遅れています。

是非、ブロックチェーンを使ったビジネスモデルを考えて、GAFAを超えるような企業を生み出してください!