見出し画像

サルでもわかるブロックチェーン超入門

「ブロックチェーン?ひぇ〜なんか怖いぃぃぃ」

横文字見たら思わずビクビクしてしまう方へ、専門用語を使わずにブロックチェーンを解説しました。

・はじめてブロックチェーンを勉強する
・ブロックチェーン勉強で専門用語多すぎて挫折した
・いきなりビットコインの論文はハードル高すぎる

そんな方は、まずはじめにこのnoteを読んでください。

このnoteで解決できるコト

・ブロックチェーンとは何かがざっくりわかる
・友だちにブロックチェーン知ってる感を醸し出せる
・最新技術をいち早くキャッチすることでイキリ散らすことができる

当てはまる方は、ぜひお読みください!


ブロックチェーンとは何か?

めいいっぱい簡単に言うと

「データをブロックにまとめて、チェーン状につなげて管理する技術」

です。

こんな感じのイメージ

んで、それぞれのブロックには必要なデータが入ってます。

じゃあブロックにはどんなデータが入ってるのか?

1番有名なビットコインのブロックチェーンでは以下の4つが入ってます。

・ブロックが作られた日時
・前のブロックの情報をまとめたデータの証明番号
・取引のデータ
・今回のブロックの情報をまとめたデータの証明番号

こんな感じのイメージ

例えば、

8月24日の22時に、AさんからBさんに1ビットコインが送られたとします。

前のブロックの情報をまとめたデータの証明番号が、”0x0”で表されるとします。

また、今回のブロックの情報をまとめたデータの証明番号は”0x1”とします。

するとブロックのデータはこのようになります。

・8月24日22時
・0x0
・AさんからBさんに1ビットコイン送った
・0x1

この辺の番号は、もっともっと難しい理論をもとにつくられてるんですが、ざっくりイメージはこんな感じです。

つまり、ブロックの中には、時間と取引、そして1つ前のデータと今回のデータをまとめた証明番号が入ってるわけです。

ここまでで、一旦ブロックにどんなデータが入ってるかわかりました。

でも、

どうやってブロックをチェーン状につなげてるのか?

がわかりません。

それは、生成するブロックの中に、1つ前のブロックのデータを入れておくことでつなげることができます。

口でいうとわかりにくいので、一旦、図を見てください。

よは、1つ前のブロックのデータを入れ続けてるわけです。

これにより、ブロック同士で繋がりができるので、チェーン状に表せるわけです。

じゃあ何でわざわざブロック同士を繋げるのか?

改ざんできないようにするためです。

難しい説明はイヤになっちゃうので、とりあえず例を考えてみましょう。

先ほどブロックチェーンは、

生成するブロックの中に、1つ前のブロックのデータを入れておく

と言いました。

んで、前のブロックの内容が以下。

・8月24日21時50分
・0x00
・AさんからBさんに10ビットコイン送った
・0x0

今回生成したブロックの内容が以下だとします。

・8月24日22時
・0x0
・AさんからBさんに1ビットコイン送った
・0x1

元々の取引の記録はこんな感じだったとします

ここで、ばいきんまんがやってきてこう言います。

「おれさまに100ビットコイン送らせたことにしてやる!」

ブロック1のデータを書き換えてしまいました。

するとどうでしょうか。

・8月24日22時
・0x00
・Aさんからばいきんまんに100ビットコイン送った
・0xA0

ブロックのデータをまとめた名前が”0x0”から”0xA0”に変わってしまいました。

・先ほど生成したブロックに入っている1つ前のブロックのデータ
・ばいきんまんが改ざんしたブロックのデータ

が合わなくなってしまいます。

すると、改ざんしたところで、チェーンが分かれることになります。

下が改ざんした方のブロック

んで、厳密にはちょっと違うんですが、みんなで多数決するわけです。

チェーン分かれたけど、これ

どっちの方が正しいチェーンなの?

ってね。

ここでみんなはどうやって正しいチェーンを判断するのか。

それはチェーンが長いかどうか?で決めます。

チェーンが長い方がたくさんの人が承認してるから正しいチェーンとみなすのです。

となると、改ざんする前のチェーンの方(図の上のチェーン)が長いので、基本はみんなそっちを信用してブロックを繋げていきます。

上の方が長いので信用できる

つまり、改ざんするには、みんなが信じてる長いチェーンよりも自分が改ざんしたチェーンを長くしなければいけません。

で、ブロックチェーンには、一定以上の差がついた短いチェーンは使われなくなるというルールがあります。

「え、これ改ざんするの無理じゃね?」とすぐ気づけた人はまじすごいです。

どういうことかというと、

その他全世界の何百万人がものすごい速度で繋げているチェーンよりも速いスピードで、自分1人だけが信用しているチェーンにブロックを繋げていく必要があるのです。

しかも、たった1人で。

これ理論上できますが、ほぼ不可能です。

なので、仮にばいきんまんみたいに改ざんしようとしても、みんなが信じてる長いチェーンがどんどん長くなっていくので、必ず正しいチェーンと改ざんした方のチェーンに一定以上の差がついてしまいます。

すると、改ざんした方のチェーンは使えなくなるので、実質改ざんはできないわけです。

同時に分かれちゃった場合は長さに差が出ないから正しいか分からなくね?
奇跡的に改ざんした方が長くなるかもしれなくない?

と思った方は超鋭い。天才です。

細かく話すと長くなるので、さわりだけお伝えすると、

実際のビットコインの送金を6回承認されるまで待つことにしているからです。

ここらへんは、次回の入門で詳しく解説します。

ぜひ気になる方はフォローしてお待ちください。

まとめ

・ブロックチェーンは、「データをブロックにまとめて、チェーン状につなげて管理する技術」
・ブロックの中には、時間、取引、1つ前のデータ、今回のデータをまとめた証明番号が入ってる
・生成するブロックの中に、1つ前のブロックのデータを入れておくことでチェーン状につなげることができる
・改ざんは理論上できるが、ほぼ不可能

次回は、以下の専門用語も少し深掘りしてみます。

・分散型台帳技術(DLT)
・ハッシュ関数
・公開鍵暗号
・コンセンサスアルゴリズム
・プルーフオブワーク
・プルーフオブステーク
・P2Pネットワーク
・スマートコントラクト
・ゼロ知識証明

今回もありがとうございました!

「♡」は、誰でも(noteにアカウントを作っていない方でも)押すことができます。この投稿を「いいな」と思った方は、気軽に押してもらえると嬉しいです。もちろんフォローも嬉しいです!

参考文献

Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System. Retrieved from https://www.kk-kernel.co.jp/qgis/HALTAK/FEBupload/nakamotosatoshi-paper.pdf

いいなと思ったら応援しよう!