サルでもわかるブロックチェーン超入門
「ブロックチェーン?ひぇ〜なんか怖いぃぃぃ」
横文字見たら思わずビクビクしてしまう方へ、専門用語を使わずにブロックチェーンを解説しました。
・はじめてブロックチェーンを勉強する
・ブロックチェーン勉強で専門用語多すぎて挫折した
・いきなりビットコインの論文はハードル高すぎる
そんな方は、まずはじめにこのnoteを読んでください。
このnoteで解決できるコト
・ブロックチェーンとは何かがざっくりわかる
・友だちにブロックチェーン知ってる感を醸し出せる
・最新技術をいち早くキャッチすることでイキリ散らすことができる
当てはまる方は、ぜひお読みください!
ブロックチェーンとは何か?
めいいっぱい簡単に言うと
「データをブロックにまとめて、チェーン状につなげて管理する技術」
です。
んで、それぞれのブロックには必要なデータが入ってます。
じゃあブロックにはどんなデータが入ってるのか?
1番有名なビットコインのブロックチェーンでは以下の4つが入ってます。
例えば、
8月24日の22時に、AさんからBさんに1ビットコインが送られたとします。
前のブロックの情報をまとめたデータの証明番号が、”0x0”で表されるとします。
また、今回のブロックの情報をまとめたデータの証明番号は”0x1”とします。
するとブロックのデータはこのようになります。
この辺の番号は、もっともっと難しい理論をもとにつくられてるんですが、ざっくりイメージはこんな感じです。
つまり、ブロックの中には、時間と取引、そして1つ前のデータと今回のデータをまとめた証明番号が入ってるわけです。
ここまでで、一旦ブロックにどんなデータが入ってるかわかりました。
でも、
どうやってブロックをチェーン状につなげてるのか?
がわかりません。
それは、生成するブロックの中に、1つ前のブロックのデータを入れておくことでつなげることができます。
口でいうとわかりにくいので、一旦、図を見てください。
よは、1つ前のブロックのデータを入れ続けてるわけです。
これにより、ブロック同士で繋がりができるので、チェーン状に表せるわけです。
じゃあ何でわざわざブロック同士を繋げるのか?
改ざんできないようにするためです。
難しい説明はイヤになっちゃうので、とりあえず例を考えてみましょう。
先ほどブロックチェーンは、
生成するブロックの中に、1つ前のブロックのデータを入れておく
と言いました。
んで、前のブロックの内容が以下。
今回生成したブロックの内容が以下だとします。
ここで、ばいきんまんがやってきてこう言います。
「おれさまに100ビットコイン送らせたことにしてやる!」
ブロック1のデータを書き換えてしまいました。
するとどうでしょうか。
ブロックのデータをまとめた名前が”0x0”から”0xA0”に変わってしまいました。
・先ほど生成したブロックに入っている1つ前のブロックのデータ
・ばいきんまんが改ざんしたブロックのデータ
が合わなくなってしまいます。
すると、改ざんしたところで、チェーンが分かれることになります。
んで、厳密にはちょっと違うんですが、みんなで多数決するわけです。
チェーン分かれたけど、これ
どっちの方が正しいチェーンなの?
ってね。
ここでみんなはどうやって正しいチェーンを判断するのか。
それはチェーンが長いかどうか?で決めます。
チェーンが長い方がたくさんの人が承認してるから正しいチェーンとみなすのです。
となると、改ざんする前のチェーンの方(図の上のチェーン)が長いので、基本はみんなそっちを信用してブロックを繋げていきます。
つまり、改ざんするには、みんなが信じてる長いチェーンよりも自分が改ざんしたチェーンを長くしなければいけません。
で、ブロックチェーンには、一定以上の差がついた短いチェーンは使われなくなるというルールがあります。
「え、これ改ざんするの無理じゃね?」とすぐ気づけた人はまじすごいです。
どういうことかというと、
その他全世界の何百万人がものすごい速度で繋げているチェーンよりも速いスピードで、自分1人だけが信用しているチェーンにブロックを繋げていく必要があるのです。
しかも、たった1人で。
これ理論上できますが、ほぼ不可能です。
なので、仮にばいきんまんみたいに改ざんしようとしても、みんなが信じてる長いチェーンがどんどん長くなっていくので、必ず正しいチェーンと改ざんした方のチェーンに一定以上の差がついてしまいます。
すると、改ざんした方のチェーンは使えなくなるので、実質改ざんはできないわけです。
同時に分かれちゃった場合は長さに差が出ないから正しいか分からなくね?
奇跡的に改ざんした方が長くなるかもしれなくない?
と思った方は超鋭い。天才です。
細かく話すと長くなるので、さわりだけお伝えすると、
実際のビットコインの送金を6回承認されるまで待つことにしているからです。
ここらへんは、次回の入門で詳しく解説します。
ぜひ気になる方はフォローしてお待ちください。
まとめ
・ブロックチェーンは、「データをブロックにまとめて、チェーン状につなげて管理する技術」
・ブロックの中には、時間、取引、1つ前のデータ、今回のデータをまとめた証明番号が入ってる
・生成するブロックの中に、1つ前のブロックのデータを入れておくことでチェーン状につなげることができる
・改ざんは理論上できるが、ほぼ不可能
次回は、以下の専門用語も少し深掘りしてみます。
今回もありがとうございました!
参考文献
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