この記事は、Blockchain Capitalのパートナーであり、ビットコインの教育者であるJimmy Song(@jimmysong)によるWhy Blockchain is Hardを翻訳したものです。
分かりやすくするために随所意訳をしているので、原文そのままの翻訳ではありませんことをご了承ください。
なお本メディア「あたらしい経済」は、ブロックチェーンの可能性に対して非常に肯定的なスタンスです。いままでの記事でも紹介してきたように、それがもたらすメリットは大きく世の中を変えると信じています。
しかし、そういった肯定的な情報ばかりを発信し続けることが、果たしてブロックチェーンの可能性の本質に迫れるかというと、そうではないと感じています。たとえ否定的な意見であっても、そこにブロックチェーンの成長に関する重要な解決すべき課題を含んでいることがあるのです。そういう観点で、今回海外で発表された「Why Blockchain is Hard」の翻訳版を掲載することにしました。
いままでもテクノロジーは多くの課題を今まで乗り越えてきました。そしてそれはブロックチェーンも同じだと思っています。この記事に含まれる「問題点」を、ぜひ皆さんにも感じて未来への議論の題材にしてもらいたいと思っています。
—
ブロックチェーンを巡る誇張は凄まじいものがある。ブロックチェーンには次のようなものができると言われている。
- 経済格差を解決する
- 全てのデータを永久に安全に保管する
- 全てを効率化してトラストレスにする
- 死にかけの赤ちゃんを救う
こんなたくさんのことができると言われているブロックチェーンとは、一体なんなんだろう? 本当にそれら全てのことをできるのか? ヘルスケア、ファイナンス、サプライチェーン、音楽といった多様な産業に対して素晴らしいソリューションを提供できるのか?
また、ビットコイン支持者であるということはブロックチェーン支持者であるという意味ではないのだろうか? ビットコインを支持しておきながら、その根幹を支えるブロックチェーン技術を批判するということはできるのだろうか?
この記事では、上記のような問いの多くに答えられるものなはずだ-「ブロックチェーンとは何であるか」を説明したり、「ブロックチェーンは何ではないか」を説明することによって。
ブロックチェーンとは何か
まずはじめに、ブロックチェーンとは何か、また何がブロックチェーンをこれほど複雑なものにしているのかを考察する。多くの会社がブロックチェーンを「全てを解決する魔法のツール」であるかのように使っているが、もちろんそんなものは現実世界には存在しない。
ブロックチェーンとは何なのだろうか?正確には、いくつかの取引を含んだブロックの繋がりである。鎖状に繋がったデータベースのかたまり、と理解していただいて結構だ。
ブロックチェーンがデータベースと異なっている主な部分は、「どのようにデータを追加するか」というところだ。
1つ目は既存のデータと相反するデータは追加できないこと(一貫性)。
2つ目はデータは追加することしかできないこと(不変性)。
3つ目はデータを誰でもコピーできて所有することができるということ(所有可能)。
4つ目は、データベースのステータスを全員が合意しているが(標準的)、中央管理機関を必要としない(分散型)ということである。
ブロックチェーンの真骨頂は最後の部分、すなわち「分散型」である。なぜここまで分散型が魅力的であるかというと、単一障害点(Single point of failure)がないからである。つまり、権威を持つ単一の機関によって都合よくデータが改ざんされたり資産を取り上げられたりする心配がないのである。誰のことも信頼する必要なく、データの改ざんが不可能であると安心できる点が、ブロックチェーン業界に携わる人が求めているものだ。しかしこの恩恵を受けるためには、多大なコストを割く必要がある。
ブロックチェーンのコスト
単一の機関による改ざんが不可能であることは確かに素晴らしいが、そのようなシステムを作り上げるためには多くのコストを割かなければいけない。詳しく見ていこう。
開発は慎重で、遅い
「一貫性を有していると実証するのが可能であるシステム」を構築するのは簡単なことではない。小さなバグがデータベース全体を破壊してしまう恐れもあるし、小さなバグが原因で一貫性が損なわれてしまう恐れがある。もちろん、データはダメージを受けてしまうともはや一貫性を証明できなくなってしまう。そうなった場合、一貫性を保つために最初のデータから一つずつ変更を加えていく必要がある。ブロックチェーンには「早く作ってそこから改善していこう」というスタートアップ的な方法は存在しない。改善した瞬間に、一貫性が失われてしまいそのブロックチェーン自体が価値ないものになってしまうから。
問題のあるデータベースだけを調整して、それ以降にデータを追加していけばいいのではないかと思うかもしれない。中央集権型システムでは管理主体が変更の指示を下せば済むので容易だが、分散型システムだと全員の合意を取らないといけないので非常に難しいのである。
インセンティブ構造を設計するのが難しい
ネットワーク参加者の誰もがその構造を乱用したり腐敗しないようにするインセンティブ構造を設計するのも非常に難しいことである。たとえデータに一貫性があったとしても、無駄なデータを追加するコストが安すぎれば、無駄なデータが大量に追加されて使い物にならないブロックチェーンになる。一方、データを追加するコストが高ければ誰もデータを追加することがなく、これもまた意味のないブロックチェーンになってしまう。
そもそもどうやってそのデータが重要であると判断できるのだろうか? ネットワークの目指しているものとインセンティブ配布の方針が合っているとどうやったら確信できるのだろうか? どうすればネットワーク参加者がデータをネットワークに追加してくれるのか?
このような問いに対してしっかりとした解決策を提供する必要があるし、その回答はネットワークが技術などによって起きる変化にも対応できるものでないといけない。
「その都度修正すればいいじゃないか」と思うかもしれない。先ほどと同じ回答になるが、それは中央集権型システムでは簡単だが、分散型システムでは非常に難しい。なぜなら、全員からの承認がもらえない限り修正ができないからである。
メンテナンス費用が高い
おなじみの中央集権のデータベースは、一度書いてしまえばそれで終わりである一方、ブロックチェーンは何千回も書かれる必要がある。
中央集権のデータベースは一度データのチェックをすれば終わりである一方、ブロックチェーンは何千回もチェックする必要がある。
中央集権のデータベースには一度データを追加すれば終わりである一方、ブロックチェーンには何千回もデータを追加する必要がある。
ブロックチェーンを維持するためにかかるコストは従来よりも桁違いに高く、コストが高ければ、その分有用性が桁違いに高くなければいけない。もしアプリケーションに一貫性が欲しいのであれば、中央集権型システムで整合性チェックやバックアップを活用したほうがよっぽどコストをかけずにそれを実現することができる。
ユーザーが独立している
これは企業にとって都合の良いことである。なぜなら企業はユーザーのデータ管理に関して責任を負いたくないからである。しかし、もしユーザーの独立性が高い状態でユーザーが不作法な行為を繰り返したらどうなるだろうか。ブロックチェーンではユーザーが詐欺行為をしていても、他人に害悪を与えていても、追い出すことはできない。
だからこそ、このようなことが起きないようなインセンティブ構造を設計する必要があるのだが、これがとてつもなく難しいのである。大抵の場合、悪い行為をする利益の方が善い行為をする利益よりも大きいからだ。
「単純に害を及ぼすユーザーを追い出せば良いじゃないか」と思う人が多いだろう。これは中央集権システムでは非常に容易なことだが、ブロックチェーンでそれを行うのは無理である。なぜなら意思決定を下す単一の機関が存在しないからである。
ブロックチェーンは公平でなければならず、ソフトウェアに定められたルールに従って動かなければならない。定められたルールに抜け道が存在し、悪質なユーザーを追い出すことができない場合は、どうしようもない。ブロックチェーンには「法の精神」みたいなものは存在しない。定められたルールで排除できない悪質なユーザーがいる場合、長期間そのユーザーの対処に追われることになるだろう。
全てのアップグレードは自由意志である
強制的なアップグレードはブロックチェーンには存在しない。勝手にソフトウェアに変更が加えられることはない。勝手に変更が加えることができるようなシステムであったとしたら、それは中央集権システムである。そもそもブロックチェーンの存在意義は、単一の機関が勝手にシステムを動かすことができないということなのだ。
アップグレードする場合、それは前方互換(後発機能が先発機能に対応する)でなければならない。これは新機能を追加するときに非常に足かせになるものであり、テスティングという観点から見たら更に難しいものである。ソフトウェアのバージョンが更新されるごとにテストマトリックスは追加されていき、それに伴ってリリースまでの時間が長くなってしまう。
スケールするのが難しい
最後に、中央集権と比べたときに桁違いに難しいことの1つがスケーリングである。
理由はもう明らかな通り、データが1つの場所ではなく、何千もの場所に散りばめられているからである。中央集権システムだと一度で済むが、ブロックチェーン上ではデータの送付、データの検証、データの保管などの数が莫大で、毎回それに対するコストがかかってくる。
もちろん、ノードの数を減らすことによって送付や検証や保管の回数を減らすことができる。しかしそうなった場合、そもそも分散型のブロックチェーンにする必要があるのだろうか?もしスケーリングのコストが主な懸念点なら、中央集権で良いのではないか?
中央集権のほうがよっぽど簡単である
この記事の主張に気づいている人もいると思うが、ここで言いたいのは、分散型システムは構築が難しく、管理コストは高く、アップグレードも煩雑で、スケールもコストがかかるということだ。中央集権システムの方がよっぽど早く、容易に構築でき、管理やアップグレードも簡単である。
では一体なぜ多くの人がブロックチェーンを万能薬のように捉えているのだろうか。
まず、ブロックチェーンに夢中になっている業界の多くが非常にITインフラのアップデートに出遅れているという特徴がある。ヘルスケアのソフトウェアは散々だと悪名高いし、金融業界は1970年代に構築されたソフトウェアの上で動いている。サプライチェーン管理ソフトは使いにくいだけでなく、導入することさえも困難だ。このような業界の多くは、リスクを恐れてITの発展について行こうとしない。導入するのに何百億円かかった挙句、結局やめて元に戻ってしまうということが多い。ブロックチェーンはそういったITインフラをより興味をそそる風に見せるための方法である。
次に、ブロックチェーンを導入していれば、テクノロジー業界の最前線でいるように見える。今日のブロックチェーンはそれだけで1つの形になってしまった。本当にそれが何であるかを理解している人は非常に少ないが、自分を賢く見せるためにブロックチェーンという言葉を使う人は大量に存在する。
「クラウド」の本当の意味は「他の人のコンピュータ」であり、「AI」の本当の意味は「変なアルゴリズム」であるのと同じで、「ブロックチェーン」も実際は「遅くてコストが高いデータベース」なのである。
また、ある業界においては政府による管理を非常に嫌う人が多く、法的フレームワーク(大抵遅くて高い)ではない何か違う裁定メカニズムを欲している。そのような人にとってブロックチェーンは政府の管理を除去できる強力なツールである。しかしこれは、ブロックチェーンを過大評価している。ブロックチェーンが魔法のように人間同士の紛争を解決してはくれない。
上記の要因のせいで、多くの人がブロックチェーンの能力やコストを本当に理解しないまま誇張する状況になっているのだ。さらに悪いことに、VCや業界の大物たちによってブロックチェーンの技術詳細がぼやかされていて、ブロックチェーンが何をできて何をできないかという点が不明瞭になってしまっている。話が上の空である。そのようなVCや業界の大物たちの下で働く人は「本当はブロックチェーンを理解していないでしょう」と楯突くことはできず、現状が改善されないのだ。
ではブロックチェーンは何に適しているのか?
中央集権のデータベースと比べて、ブロックチェーンはコストが高いということは説明した。そのような状況でブロックチェーンを使う唯一の理由が「分散化させるため」だ。つまり、単一障害点や単一管理者をなくすということである。
分散化するということは、そのソフトウェアやデータベースに変更を加えることはほぼ無いということになる。変更を加える時のメリットよりリスクの方が格段に多くなるからだ。
しかし、多くの産業がそれに当てはまらない。普通は新たな機能やアップデートを常にしなければならないし、いざとなったら変更も加えられるくらい自由でないといけない。しかしブロックチェーンには「変更を加えることができない」という特徴があるため、ほとんどの産業がブロックチェーンに適していないということになる。
しかし、1つだけブロックチェーンに適した産業があった。カネである。
上述の産業とは違い、カネに変更が加えられると困るだろう。変更に対する免疫と、そもそも変更するのがこんなんであるという特徴はカネにとっては大きなメリットになる。だからビットコインはブロックチェーンの最適な活用法だと言われているのだ。
明確に言えることは、ブロックチェーンを活用しようとしている多くの企業が本当に欲しいものはブロックチェーンではない。IT技術のアップグレードである。もちろんアップグレードは必要であるが、ブロックチェーンという単語を使ってアップグレードをした気になるのは不誠実だ。
まとめ
ブロックチェーンは最近のバズワードになったが、「ブロックチェーンとビットコインを混同するな(Blockchain not Bitcoin)」という論は消えないだろう。もしあなたが中央集権システムでサービス提供していて、ブロックチェーンの導入を考えたとしよう。忠告しておく。中央集権システムでできることをブロックチェーンがその1000分の1のコストでできるようなことはあり得ない。
2000年代初頭、テクノロジー業界の大物の多くによってJavaとXMLを使うべきだという議論が強くおこなわれた。JavaとXMLはプロダクトではなく、あくまでツールに過ぎないにも関わらず彼らはそれらを活用すべきだと主張した。エンジニアが作ろうとしているものとどんなにフィットしなくても、主張を続けた。ブロックチェーンもこれに似ている。使うツールにこだわり過ぎて、特に何も上手にこなさないルーブ・ゴールドバーグ・マシーン(簡単にできることを複雑に行うマシーンのこと)を作ってしまう。
分散型システムのセキュリティの強さを中央集権型の管理システムで達成したいと人々が考えていることからもわかるように、昨今のブロックチェーンと呼ばれる概念は、ある意味不可能を可能にするものというイメージがある。みんなが欲しいのは分散型と中央集権のいいとこ取りであるが、それを求めた場合最終的に手に入るのは、両者の悪いとこ取りである。どういうことかというと、分散型システム並みのコストと難易度の高さを、単一障害点を持つ中央集権型システムで構築しまう。
ブロックチェーンは、不要なものを売りつけるために使われるバズワードに成り下がってしまった。ブロックチェーンを取り巻く誇張をいかに早く取り除けるかが、長期的に見た我々の発展に直結する。
原文: Jimmy Song(@jimmysong)「Why Blockchain is Hard」
photo:iStock/suphakit73・Dmitry Volkov