わかりやすくブロックチェーンを説明してみる(第1回):腑に落ちない
はじめに
ブロックチェーンの本質は「データ分散(コピー)」技術です。
ブロックチェーンという言葉が世に広まり始めて10年以上経ちますが、「ブロックチェーンとは何か」についてその本質をわかりやすく説明した書籍やサイトがまだ少ないように思われます。私自身も最初は書籍やWEBサイトで調べましたが「で、結局ブロックチェーンって何?」といった感じでした。単に私の理解力が低いだけだったからかも知れませんが…。
しかししばらくしてふと、「もしかしてこういうこと?」とブロックチェーンの本質に気づくとそれまで色々疑問に思っていたことが次々と理解できるようになりました。その結果、ブロックチェーンの魅力にとりつかれ現在では自社製品としてブロックチェーン・アプリ(いわゆるDApps)を開発するまでになりました。
そこで本連載では私なり理解した内容をもとに、「わかりやすく」を目指してブロックチェーンとは何かについて何回かに分けて説明していこうと思います。
なお本連載はビットコインやブロックチェーンを技術的な側面から解説することを目的としています。ビットコイン等への投資を勧める連載では決してありません。
ブロックチェーンとの出会い
最初の出会いはマウントゴックス事件
私が初めてブロックチェーンの存在を知ったのは2014年2月、マウントゴックス社(本社:日本)のビットコイン消失事件が起きた時でした。偉そうに本記事を書いているわりにはブロックチェーンとの出会いは遅いです。
WEBニュースでマウントゴックス事件を知ったときは「仮想通貨って何?ビットコインって?超怪しいな~。ネスミ講か何かか?」という程度にしか思っていませんでした。また、「仮想通貨ってブロックチェーンとかいう技術が使われているらしいが、もっともらしい技術用語並べたネズミ講か何かか?」とも思っていました。
次の出会いはマイニング用LSIの開発
マウントゴックス事件の翌年2015年にひょんなことからビットコイン向けマイニング用LSI(半導体回路)の設計をすることになりました。「マイニングとは何か?」については本連載を読み終わるころには理解して頂けるかと思います。
当時私は「ビットコイン」や「マイニング」については全く知識を持っていませんでした。にもかかわらずマイニング用LSI(半導体回路)の設計を引き受けた理由は、とりあえずSHA-256がわかれば設計できるからです。「SHA-256」については今後の連載の中で説明する予定です。
腑に落ちない・・・
ビットコイン向けマイニング用LSI(半導体回路)の設計をするにあたり、まずは「ビットコインとは何か?」「マイニングとは何か?」について海外のサイトも含めWEBでかなり調べました。
ところがです。いくら調べても「マイニング」は何のためにやっているのかさっぱりわかりませんでした。もっともらしく説明しているWEBサイトはあるのですが、「で、結局何のため?」って感じです。
マイニングはよく、「データが改ざんされないようにするため」などと説明されているのですが、どうも腑に落ちませんでした。
一番疑問に思ったのは「ビットコインはマイニングの都合上、取引成立に時間がかかるが、より高速に取引が成立する他の仮想通貨(ブロックチェーン)もある」、という点でした。「じゃ、なんでビットコインはマイニングにそんなに時間(約10分)をかけるの?」「高速取引する仮想通貨(ブロックチェーン)はマイニングしているの?したとしても短時間のマイニング???」てな感じでした。
このあたりについては、ブロックチェーンについて全く知らない人にとっては何を言ってるのかまだ分からないかと思います。しかし分からなくても連載を読むにあたっては全く問題ありません。本連載を読み終わるころには必ず理解できるようになっていると思います。
ビットコイン向けマイニング用LSI(半導体回路)の設計を短期間で行う必要があったので上記の疑問についてはそれ以上の調査はしませんでした。上記の疑問を解決しなくても設計はできるので。
もしかして・・・
ビットコイン向けマイニング用LSI(半導体回路)の設計を終えてからも、「ビットコインよりも高速に取引ができる仮想通貨(ブロックチェーン)があるのはなぜなんだろう?そもそもマイニングって何?」とずっと気になっていました。
これから本連載において詳細に説明していきますが、ビットコインではビットコインネットワークに参加している全員のすべての取引情報(取引台帳)を1つの巨大なデータファイルとして保存します。そしてその巨大なデータファイルは世界中の約1万台のコンピュータに同じ内容でコピーされます。なお、この1つの巨大なデータファイルのサイズは現在(2021年4月)では約340GBです。つまり340GBのファイルが約1万台のコンピュータに同じ内容でコピーされているわけです。
ある日ふと思いました。
「ところで世界中のあちこちででほぼ同時に様々な取引(送金)が発生した場合、どうやって世界中のコンピュータに同じ内容で保存している?」
「取引Aと取引Bがほぼ同時に発生した場合、こっちのコンピュータには取引Aが先に保存され、あっちのコンピュータには取引Bが先に保存されるかも知れないのに。」
それで、
「ビットコインネットワークに参加している世界中のコンピュータの中にある取引台帳の中身を同じにするには、全コンピュータが先に取引Aを保存するようにしないと」
そのためには、
「誰か1人が全コンピュータに指示をだせばいい」
「でもどうやってその1人を決めるのか?」
「あ、もしかしてマイニングってこの1人を決めるためにやっているのか」
ここで腑に落ちました。「そんなこと当たり前でしょ」と賢明な方には言われそうですが、多くの説明を読んできても恥ずかしながら私はそのことに気が付きませんでした。
次回
今回(第1回)はブロックチェーンとの出会いおよび腑に落ちない点についてお話しました。
次回(第2回)以降は、「ビットコイン」「ブロックチェーン」とは何かについて1から説明していきたいと思います。