Published on

ブロックチェーンとは何か言語化してみる

Authors

昨今話題に上がり続けているブロックチェーンという技術。
なんとなく理解はしているつもりでいたが、改めて言語化してみようと思う。
職業柄、技術的な話をしたくなるが今回は理解容易性に注力して書いていきたい。

なぜブロックチェーンが生まれたのか

1991 年
Stuart Haber と W. Scott Stornetta がデジタルドキュメントにタイムスタンプを付けることによって、日付が遡ったり、改竄されたりを防ぐという、計算上の実用的な解決法として紹介する。

2004 年
暗号分野で活躍していた、コンピュータサイエンティストの Hal Finney (Harold Thomas Finney II)がリユーザブル Proof of Work(RPoW)と呼ばれるシステムを紹介する。

2008 年
暗号学者のメーリングリストに、サトシナカモトと名乗る謎の個人またはグループによって、Bitcoin と呼ばれる、分散型 P2P 電子決済システム(Bitcoin: A Peer-to-Peer Electronic Cash System)が投稿される。

なお、この時点ではブロックチェーンという言葉は存在しない。
後にデータ構造の特性をみて界隈がブロックチェーンと呼ぶようになっただけ。

2009 年
サトシナカモトによって Bitcoin の最初のブロック(ジェネシス・ブロック)がマイニングされ、Bitcoin が誕生。

2013 年
Vitalik が新しいブロックチェーンベースの分散型コンピューティングプラットフォームである Ethereum の開発を始める。

ブロックチェーンは何がすごいのか

まず第一に疑問に思うのかというと “ビットコインをはじめとするブロックチェーン技術の何がすごいのか?” ということだろう。

簡単にいうと 誰か特定の存在に依存せず情報を記録または保持する技術 ということである。
少し難しい日本語にすると、非中央集権的分散台帳技術とも言えるだろう。

上記に記した Bitcoin の最初のブロック(ジェネシス・ブロック)にサトシ・ナカモトによって刻まれた言葉は “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks” (イギリスの首相が 2 度目の銀行救済措置をとる)と書かれており、サトシ・ナカモトが経済に政府という中央組織が介入することに危機感を抱いたことが伺える。

そこで、中央組織の存在を不要とした、個人間で取引を行う分散化された金融システムを実現しようとしたのではないだろうか。

ブロックチェーンは金融分野以外の領域でも生かされている。
だがしかし、全ての根底には 中央組織の存在を不要とする分散化された社会の実現 がある。

難しい話は嫌いな人向け

あなたの大切なデータをどこに置きたいだろうか?
クラウド?家の引き出し?会社?
クラウドも家の引き出しも会社も火事になったら何も残らない。
全ては何かしらに依存し、完全に安全な場所など存在しないのである。

だが、全人類が同じ情報を持っていたらどうだろうか。

誰かのミスでデータを失うことはない。
誰かの悪戯で消されることもない。
地球が吹き飛びでもしない限りはデータを失うことはない。

これがブロックチェーンというものである(雑)

ブロックチェーンの利点

  1. データの改ざんが困難
  2. システムの継続性が保たれる
  3. データのバックアップが不要
  4. 透明性が高い

利点について理解するための知識

ブロックチェーンの構造は簡単にまとめると下記のようになる。

  • ブロックが鎖状に繋がっている
  • ブロックの中にはさまざまな情報が入っている
  • ブロック 1 の情報をブロック2も保持している
  • これらの鎖状に繋がった全情報を世界中の人が保持している。

データの改ざんが困難

ブロック 1 が改ざんされるとブロック 2 にも影響が出る。 ブロック 2 を改ざんしたとしてもブロック 3 にも影響がでる。

このように全てのデータが鎖状に繋がっているため、どれかひとつを改ざんすると、それ以降の全てのブロックを改ざんする必要がある。

しかも、この鎖状のデータと同じものを世界中の人が保持している。

つまり、ブロック 1 を改ざんするには

世界中にある同じデータ全てのブロック 1 以降のデータを全て改ざんしなければならない

ということである。

システムの継続性が保たれる

従来のシステムではサーバーが命である。
サーバーが停止するとサービスも停止する。

ブロックチェーンの場合は、前述したように世界中の人がデータを保持する。
管理者がいなくとも、データをお互いに保管し合うことで信頼性や改ざんを防いでいる。
よって従来の方式とは異なりデータが一箇所に集中しない。

その為、サービスがメンテナンス等といったものの影響を受けない。

データのバックアップが不要

前述しているもので既に理解できるかもしれない。

データが一箇所に集中せず、世界中の人がデータを保持する為、バックアップというものが不要。

透明性が高い

従来のように管理者のみがデータを保持するのと異なる為、データを保持する全員がデータを確認できる。

ブロックチェーンの欠点

  1. 処理スピードが遅い
  2. データ容量に限界がある
  3. 一度記録されたデータの削除や修正が出来ない

処理スピードが遅い

従来のように一箇所で処理をになっている場合、情報の更新はその一箇所を更新するだけで済む。
しかし、ブロックチェーンは情報が分散しているため、全てを更新するのに数分かかってしまう。

例えば、ビットコインの場合は 1 秒間あたりに 7 件の取引を処理できる(理論値)
かたや、クレジットカードの VISA は 1 秒間あたりに数千〜数万件の取引を処理している。

データ容量に限界がある

前述したデータ構造にあるようにブロックチェーンはそれぞれのブロック内にデータを保持する。
このブロックのサイズには限界がある。
そのため大きなサイズの情報などは格納することが出来ない。

ビットコインが抱える問題
最初は 36MB だったが安全性を確保するために 2010 年から 1MB に変更された。
取引量が増加し現在では 10 分もかからず 1MB を超えてしまうため送金処理の遅延が常態化している。
これがビットコインのブロックサイズ問題、またはスケーラビリティ問題と言われるものである。

一度記録されたデータの削除や修正が出来ない

利点を読んだ方で疑問に思った方は “間違ったデータが入ったらどうするの?” と思った方も多いはず。

答えは “どうしようもない” なのである。

編集を容易にするというのは改ざんの余地を与えてしまう。
一度入れたデータは変更できない。
これがブロックチェーンなのである。

とはいえ、仕組みで解決できるとは思う。
編集できないのは一度入れたデータなのであって、それらを編集したというデータを入れることはできるからである。

ビットコインの場合

  1. 100btc を持っている A さんが B さんに 50btc を送金(A さんの残高は 50btc)
  2. B さんが A さんに 25btc を送金(A さんの残高は 75btc)

プロフィールの場合

  1. 誕生日を 2020 年に設定したというデータを持つ(修正不可)
  2. 誕生日を 2022 年に設定したというデータを持つ(修正不可)

このようにそれぞれのデータは修正不能だが結果的なデータは修正したと同意のものになる。
よって、設計次第では修正が加わるものもブロックチェーンで扱えると言えるだろう。

銀の弾丸ではない

何かとブロックチェーンにすれば良いと思ってる意見も耳にするがそうではない。
察しのよい読者は、既に気がついていると思うがブロックチェーンは万能ではないのだ。

例えば、個人情報保護の観点から話すとプロフィールなどの情報をブロックチェーンでは管理することは難しい。
実現するとなると、ブロックチェーンには特定の情報のみを格納し、重要な情報や機密情報は特定のデータベースで管理する必要がある。この時点でブロックチェーンの思想と異なってしまう。

様々な分野で活用が期待されるブロックチェーンであるが、向き不向きがあることは忘れてはならない。

量子コンピューターの及ぼす影響

ブロックチェーンだけに言えることではないが、量子技術によってコンピューターの処理スピードは、数万倍から数百万倍以上に高速化すると言われており、RSA 暗号などが用意に解読されてしまう問題が懸念されている。

量子コンピューターによる攻撃を防ぐために、符号暗号(code-based cryptography)、格子暗号(lattice-based cryptography)、多変数暗号(multivariate cryptography)のほか、超特異楕円曲線を用いた同種暗号などが提唱されている。

量子コンピューターを使用した攻撃が現実化するかは分からないが、仮に行われたとすると、現在のシステムに与える影響は未知数と言えるだろう。