ブロックチェーンに足りないもの

Senshi M. Onions
Sep 19, 2019 · 8 min read

とてつもない可能性を持つブロックチェーンにも限界はあるのだろうか。前回 は「社会にとっての役割」という観点からブロックチェーンを考えた。今回は核心に近づいて、ステップごとに「実際に何をするものか」というミクロな視点からデータが動く仕組みを単純化して捉えることで、ブロックチェーンの本質に迫り、その境界を見極めながらその可能性を追求してみよう。

Photo by Thomas Chan on Unsplash

要点の復習

まだピンと来ないという方や、暗号通貨と何が違うのかと疑問に思う方の方が世の中には多いと思うので、まずブロックチェーンの復習をしておきたい。どんなに複雑なことも小さなステップに分けて「何をするものか」に着目すれば、特段難しい事はない。本稿の目的は、ブロックチェーンは地球規模の一台のコンピュータである、ということを平易な言葉を使ってその仕組みから理解してもらうことにある。後ほど詳しくアナロジーを紹介するので、私たちが慣れ親しんだコンピュータとの比較から、ブロックチェーンの役割をすっきりと整理していただきたい。

ここでは技術的な言葉をなるべく使いたくないが、一つだけ覚えておいて欲しい言葉がある。それはステートという、コンピュータの動きを理解するのに欠かせない概念で、日本語で「状態」を意味する。

コンピュータは要するに、クロックが立ち上がるたびに、今の状態を元にして次の状態へとパラパラ漫画のように次々に状態遷移を繰り返すだけのステートマシンである。すなわち、メモリからデータを読み込む→計算結果をメモリに書き込むといった状態を繰り返してプログラムを動かす設計になっている。

こうしたコンピュータの仕組みから、プログラムというのは、メモリ上のデータによって表される状態を変化させるものと見ることができる。例えばエクセルを開いてユーザーがキーボードで入力するたびに、プログラムに書かれた方法によって計算が行われ、メモリ上のデータが書き換わる。この状態遷移が反映された結果、画面に入力後の状態が表示される。ちなみに、ハードディスク等に保存しなければ、電源を落とした時にメモリのデータはすべてなくなってしまうことに注意が必要だ。

ブロックチェーンとは

これらをふまえてブロックチェーンに置き換えると、スクリプトやスマートコントラクトと呼ばれるブロックチェーン用のプログラムは、チェーン上のデータによって表される状態に対して変化をさせるものと見ることができる。例えばLINE PayやPayPayみたいなウォレットアプリを開いてユーザーが誰かに支払いをするたびに、プログラムによって書かれた方法で計算が行われ、チェーン上のブロックが一つ追加されて最新の状態、つまり払った方の残高は減り、受け取った方の残高が増えた状態へと更新される。ちなみに、ブロックチェーンの情報はしっかり保存されているので、世界中で停電が起きてもデータはなくなる心配はない。

また、チェーンには大勢の参加者がおり、それぞれの状態が異なっていると困るので、マイニングなどを通じて全体で合意をとりながら、たった一つのステートが全体で共有されるようになっている。この特徴のおかげで、普通のコンピュータと異なってデータが消えたり逆戻りしたりすることがないように設計された安全な仕組みが実現している。

さて、このように比べると、ブロックチェーンはネットワーク全体すなわち地球規模で一台のコンピュータのような働きをすることが分かる。つまり、グローバルなステートマシンであると考えられまいか。そうすればEthereum考案者のヴィタリック氏が、イーサリアムをワールドコンピュータと呼んでいるのも納得できるだろう。

ここでようやく、通常のコンピュータとの比較からブロックチェーンが現在抱えている2つの制約が見えてくる。ただし、これら制約があったとしても十分に有用なアプリケーション開発が可能であるため、これらを問題とは呼ばないことにする。

  1. 状態遷移が瞬時におこらない(処理速度の制約)
  2. 大きなデータを扱いづらい(データサイズの制約)

1. 処理速度の制約

これはスケーラビリティとして良く話題にとりあげられているので簡潔に紹介するにとどめておく。コンセンサス・アルゴリズムの改善、ブロックに含まれるトランザクションを増やす、オフチェーン処理、シャーディング、サイドチェーンなどのさまざまな改善策が打たれている。個々についての詳しい説明は多くの解説がすでにされているので、そちらを参考いただきたい。

2. データサイズの制約

コンピュータのメモリにサイズの制約があるように、ブロックにもサイズの制約があり、例えばビットコインでは1MBと小さい。またネットワーク参加者全員が大きな同じデータをそれぞれ保存するのは合理性に欠ける。イーサリアムではそのため、データの保存にはペナルティともいえるべき多くのコストを払う必要がある。

ちなみに、2019年9月時点において、イーサリアムのアーカイブを含めたデータ量は3TB(Etherscan)である。世界全体の取引の歴史のサイズにしては小さいと感じられるのではないか。

では、数テラバイトもあるような大きなデータファイルを扱う場合、どうすればよいか。通常のコンピュータの場合テラバイトのメモリを積むことは無理でも、外部ハードディスクを追加して保存し、そこからデータを取って来ることで対応できるだろう。

ブロックチェーンの場合に困るのが、ネットワーク参加者全員が共有する外部ハードディスクが必要になることである。もしも、AWSなどの中央型クラウドサービスを使う場合、データはブロックチェーン外なので、リンク切れや、サーバー障害などの単一障害点リスクを引き受けることになり、せっかくの分散アーキテクチャの利点が台無しになってしまう。

そうした問題を解決するのが分散型ストレージサービスである。InterPlanetary File System(IPFS)はその代表的なものであり、管理者のいない非中央集権モデルでありながら大きなサイズを効率的に扱うことができる、分散型クラウドサービスようなものである。もっと簡単にいえば、ブロックチェーンにも使えるネットワークハードディスクともいえる。これを使えばブロックチェーンの種類に関わらず、データサイズの制約を開放できるため、大きな可能性を開くことになる。まるで地球規模のコンピュータに地球規模のハードディスクが加わり、ついにフルスペック地球コンピュータとして完成するようなものだ。と筆者は注目しており、これからも記事や勉強会などを通じて紹介してゆきたい。

結論

ブロックチェーンは地球規模の一台のコンピュータであり、個別のコンピュータが持ち得ない強力なメリットを持つが現時点では制約もある。しかしあらゆるテクノロジーに制約はつきものであり、我々はいつの時代も乗り越えてきた。さらには現時点ですでに、比較的サイズの小さな重要データを扱い、瞬間的な状態遷移を求めないような場面においては、大きな威力を発揮する。

例えば通貨。資金の移転を証明するだけならば小さなデータの状態遷移で済むので、まずビットコインがある。応用範囲は通貨だけにとどまらない。金融商品なら例えば株式の受け渡しは約定から2営業日後であるところ、ブロックチェーンを使えば大幅にパフォーマンス改善が可能であり、そのシステムを開発する費用は驚くほど安くてすむだろう。

ブロックチェーンは制約こそあれど、その解消に向けて日々進化している。今後は制約の解消とともに適用範囲が急速に拡大して、あらゆる業界で革新的なサービスが誕生するだろう。我々がブロックチェーンを意識しないでサービスを使う日はそう遠くない内にやってくるのではないか。夜明けは近い。


もし、ブロックチェーンやWeb3といったものに興味をもっていただけたら、ツイッターをフォローしていただけますと幸いです。今年10月に日本で開かれるDevcon前後で、Juan Benet率いるProtocol LabsIPFSコアデベロッパーを招いて、大阪(10/7 Mon 3–6pm)東京(10/12 Sat 3-6pm)でデモ・ワークショップを行う予定です(詳細は近日発表)ので、お気軽に遊びに来ていただいて交流の場にしたいと考えています。今後Meetupや勉強会の最新情報なども発信いたしますのでお楽しみに。

また、そうした場でご自身のプロダクトを紹介してみたい方も募集しておりますので、お気軽にDMいただければと思います。

Senshi M. Onions

Written by

Software Developer / Financial Consultant / Contributor to Decentralized Web and IPFS

More From Medium

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade