ブロックチェーンが使い物にならない理由

相変わらず、企業の間では「ブロックチェーン」という言葉が流行っていますね。

「ブロックチェーン」を使って新しい経済圏を作るとか。

「ブロックチェーン」でトークンエコノミーを実現するとか。

「ブロックチェーン」で業務を分散化するとか。

「ブロックチェーン」を使えば自動的にトラストレスになるとか。

特定の組織が、「ブロックチェーン」という言葉を使うことに、物凄い違和感を感じていました。

はたして、ビジネスに使えるのだろうか?

そもそも、何を実現するために誕生したのだろうか?

今回もJimmy Song氏の名記事を翻訳。

以下、本文。

ブロックチェーン界隈の誇大広告には驚きが隠せないです。世に出回っているブロックチェーンの宣伝文句は、だいたい次のようなものです。

1.所得格差の解消
2.すべてのデータが改ざんできない。
3.すべてのデータが効率的かつ仲介人なしで運用できる
4.死にかけている赤ちゃんを救う

そもそも、ブロックチェーンとはなんでしょうか?本当に、これらすべてのことができるのでしょうか?ブロックチェーンは、ヘルスケア、金融、サプライチェーン管理、音楽の権利などの業界に驚くべき結果をもたらすのでしょうか?

また、Bitcoinホルダーということは、自動的にブロックチェーンが好きという意味ではないのでしょうか?Bitcoinが好きで、ブロックチェーンの批判ができるのでしょうか?

この記事では、ブロックチェーンとは何で何でないか、を見ていくことにします。

ブロックチェーンとは?

そもそも、ブロックチェーンとは何か? を定義する必要があります。世間ではもう混乱だらけです。多くの企業は、「ブロックチェーン」という言葉を、自社データが決して改ざんされないような、ある種の魔法のような装置と考えています。そのような装置は、もちろん実社会には存在しません。

では、ブロックチェーンとは何でしょうか?技術的には、ブロックチェーンはブロックの連結リストであり、トランザクションの発生した順序によって、ブロック同士が関連付けられています。何のことか、わからない人は、ブロックチェーンをデータベースの小さな集まりと思ってもらえればいいでしょう。

ブロックチェーンと通常のデータベース相違点は、データを格納する方法に厳格な規則があることです。つまり、すでにデータベースに存在する他のデータと矛盾することはなく(一貫性があり)、追加のみ可能(不変)であり、データ自体は所有者にロックされ(所有権)、全体は複製可能で、いつでも利用可能です。最後にネットワークの参加者が、データベースの状態が真正であることを(正規の)特定の管理者なし(分散型)に同意します。

最後のポイントが、ブロックチェーンの核心です。分散化がなぜこんなにも魅力的なのでしょうか?それは「単一障害点」がないからです。つまり、管理者があなたの資産を奪ったり、彼らのニーズに合わせて「歴史」を改竄したりできません。「誰かを信用する必要がない」ということが、この技術を使っているすべての人が求めているメリットです。しかし、この恩恵を受けるには多大なコストがかかります。

ブロックチェーンのコスト

管理者が不在でも機能する、不変のデータ追跡システムは確かに有用です。しかし、このようなシステムを作り上げるには、多大なコストがかかります。何故なのか見ていきましょう。

開発は難しく時間がかかる

一貫したデータを証明するシステムを作ることは簡単ではありません。小さなバグがデータベース全体を破損させたり、データの整合性が取れなくなる可能性があります。もちろん、破損したデータベースや整合のとれないデータベースには、一貫性を担保できません。さらに、システムは最初から一貫性があるように設計する必要があります。ブロックチェーンでは「素早く行動し破壊せよ」(※Facebookのモットー)はできません。1つでもバグがあると、一貫性を失いブロックチェーンに価値がなくなります。

なぜ、データベースを修正するだけで、やり直すことができないのでしょうか?これは集中型のシステムで行うのは簡単ですが、分散型システムでは、非常に難しいです。データベースを変更するには、ネットワーク内の全参加者の合意が必要です。ブロックチェーンは、特定の管理下に置かれていない(分散型だよ、覚えている?)パブリック・リソースである必要があります。そうしないと、多大な努力の結果、単なる低速で非常な高価な中央集権型のデータベースを作成して終わりです。

インセンティブ設計が難しい

正しいインセンティブ構造を設計し、システム内のすべての参加者がデータベースを悪用したり破損できないようにすることが大変重要です。データを入れるためのコストが低くすぎて、無駄なデータだらけになっても役に立ちませんし、逆にコストが高すぎて、誰もデータを投入しなくても役に立ちません。

データが最終形だと、何を持って確定しますか?報酬がネットワーク・プロトコルと一致しているか、どのように確認しますか?各ノードがデータを保持、または更新するモチベーションは?また、ブロック同士が競合した場合どちらを優先しますか?これらは、すべてインセンティブ設計に関する問いで、明確に決める必要があります。企業は、テクノロジーとともに変化して行くので、最初だけでなく将来のあらゆる時点で、これを調整して行く必要があります。そうしないと、ブロックチェーンは役に立ちません。

インセンティブ設計に問題がある場合、なぜ簡単に修正できないのでしょうか。繰り返しになりますが、集中型システムでは簡単に修正できますが、分散型システムでは、参加者の合意なしには何も変更できません。全員の合意がない限り、何も「修正」することはできません。

メンテナンスコストが高い

伝統的な中央集権データベースは、一度だけの書き込み処理で済みます。一方て、ブロックチェーンには、何千回も書き込み必要です。従来の集中型データベースでは、データを一度だけ確認するだけで済みます。ブロックチェーンは、データを何千回もチェックする必要があります。従来の集中型データベースでは、バックアップ用のデータは一度だけ転送すれば済みます。ブロックチェーンは、データを何千回も転送する必要があります。

ブロックチェーンを維持するためのコストは桁違いに高いのです。整合性や信頼性など、前述の特性が必要なアプリケーションは、従来のデータベースソフトを使えば、整合性チェック、状態確認、およびバックアップをはるかに安価に実現できます。

ユーザーこそが主権者

そもそも、企業がユーザーデータを管理するのを負担だと感じているであれば、ブロックチェーンを使うのが正解かもしれません。ただし、ユーザーが「不正な行動」をしている場合、これは悪い方向なる可能性があります。ブロックチェーンに対して、つまらないスパム送るユーザーを追い出したり、他のユーザーに迷惑をかけるような何らかの方法で、利益を得ているユーザーを追い出す方法はないです。これは、最初のインセンティブを慎重に設計する必要があるということです。特に、悪用することによって利益を得る方法を見つけたユーザーが、その行為を辞める可能性は低いです。

悪意あるユーザーへのサービスを、単に拒否すればいいじゃないかと、考えているかもしれませんが、これは中央集権型のサービスでは非常に簡単にできます。ただし、中央集権型サービスとは異なり、分散型の環境では拒否することは困難です。これは単一の管理者が、誰かを追い出す権限を持っていないためです。ブロックチェーンは、公平でソフトウェアによって定義されている規則が強制されている必要があります。悪意ある行動を、抑止するための規則が不十分であるならば、あなたの運の尽きですね。ブロックチェーンには法律の「精神」はありません。常に悪意のあるユーザーに対処する必要が生じます。

アップデートは強制できない

ブロックチェーンでは、ソフトウエアの強制アップデートはできません。ネットワーク上の、他の参加者はソフトウェアを変更する義務を負いません。もし、変更させたいのであれば、集中型システムとして構築するのが、はるかに簡単で速く、そして安価です。ブロックチェーンのポイントは、単一の組織の管理下にはないことであり、強制的なアップデートを行なった場合は、このルールは侵害されます。

代わりに、すべてのアップデートは後方互換性がなければなりません。特に新機能を追加したい場合や、テストの観点から考えると面倒が伴います。ソフトウェアの、各バージョンは、テストケースが増え、リリースまでの時間が長くなります。

繰り返しますが、これが一元化されたシステムであれば、古いヴァージョンのシステムにサービスを提供しなくなるため、修正が非常に簡単です。しかし、分散型システムでは実行することはできません。強制的に誰かに何かをさせることはできません。

スケーリングは本当に難しい

スケーリングは、従来の集中型システムよりも相当困難です。その理由は明白で、同じデータは単一の場所よりも、数百または数千の場所に同時に存在する必要があるからです。分散システムでは、転送、検証、および保存のオーバーヘッドは非常に大きく。従来の集中型データベースでは一度だけ発生したコストは、分散システムでは、データベースのコピー別にコストが発生します。

もちろん、ノード数を減らすことで負担を減らすことができます。そうであるならば、そもそも分散型システムでやる必要があるのでしょうか?スケーリングコストが懸念事項であるのなら、なぜ集中型データベースを構築しないのですか?

集中管理の方がはるかに簡単

分散型システムでは、扱いが非常に困難になり、維持管理に費用がかかり、アップグレードが困難になり、スケーリングに苦労します。集中型データベースは、ブロックチェーンよりもはるかに高速で、安価で、保守が容易で、アップグレードが簡単です。それでは、なぜ人々はブロックチェーンという言葉を、あたかも問題のすべてを解決してくれる「万能薬」のように使い続けているのでしょうか?

まず第1に、ブロックチェーンが売り込まれている業界の多くは、ITインフラストラクチャが時代遅れです。ヘルスケア業界は、悪名高いほどひどいソフトウェアで構成されています。金融業界は、まだ70年代のソフトウェアを使っています。サプライチェーン管理ソフトウェアは使いにくく、インストールすら難しいのです。これらの業界のほとんどの企業は、変化のリスクを恐れてアップグレードに抵抗しています。何億もの費用をかけて、アップグレードしても、結局ロールバックされることになるインフラストラクチャの事例はたくさんあります。ブロックチェーンは、ITインフラストラクチャのアップグレードを、あたかも簡単に見せる方法なのです。

第2に、ブロックチェーンは、あなたがテクノロジーの最先端にいるように見せる方法です。好むと好まざるにかかわらず、「ブロックチェーン」という言葉は一人歩きしています。実際の言葉の意味を理解している人はほとんどいませんが、自分を知的に見せたいから使用しているのです。 「クラウド」が単純に他人のコンピュータを意味し、「AI」が調整アルゴリズムを意味するのと同じように、「ブロックチェーン」は遅くて高価なデータベースを意味します。

第3に、企業は特定の産業に対する政府の統制を好まず、遅くて高価な法的枠組みとは異なる、判断メカニズムを望んでいます。彼らにとって、「ブロックチェーン」は政府の規制装置を、取り除くための簡単な方法に思えるのです。これは、ブロックチェーンで、できることを誇張しすぎています。ブロックチェーンは、人間の対立を魔法のように無くすことはありません。

結果、ブロックチェーンが持つ実際の能力や、コストを理解することなく、大げさな約束や、誇大広告を信じる人々が生まれたのです。さらに悪いことに、多くのVCや役員に対して、実際の技術的な詳細とコストは、「ブロックチェーンができることと、できないこと」を、曖昧にするような方法で提案されています。投資してもらった後に、誰も本当のことを言い出せないでいるのが現状です。

それでは、ブロックチェーンは何の役立つのか?

ブロックチェーンは、集中型データベースに比べて、非常に高価であることはすでに確認してきました。したがって、ブロックチェーンを、使用する必要がある唯一の理由は分散化したい場合です。つまり、「単一障害点」を取り除きたい場合です。

これは当然、ソフトウェア、またはデータベースを頻繁に変更しない前提であることを意味します。アップグレードや、ルールの修正や、変更には非常に大きなコストがかかるからです。

しかしながら、ほとんどの産業は上記のことは当てはまりません。ほとんどの業界では、新しい機能やアップグレード、および必要に応じて変更やスケーリングを自由に行いたいはずです。ブロックチェーンは、アップグレードが困難、修正が困難、スケーリングが困難であることを考えると、ほとんどの業界ではブロックチェーンは必要ありません。

1つ例外をあげるとすれば「お金」です。他の産業のユースケースとは異なり、お金は数字なので管理しやすいのです。不変性と、ルール変更の難しさはは、お金を扱う場合に非常に相性がいいのです。Bitcoinがブロックチェーンを使用するのに、適したツールであるのはこのためです。

ブロックチェーンを使用しようとしている、多くの企業が本当に必要なのは、業界全体のITインフラをアップグレードすることです。単に、「blockchain」という単語を使用して、ITインフラをアップグレードすることは不可能であり、その能力を過大評価しています。

結論

ブロックチェーンは、世間で一般的になった用語ですが、残念ながらこの「ビットコインは嫌だけど、ブロックチェーンは使いたい」という世間の思い込みは消えません。あなたが集中型サービスであるならば、ブロックチェーンは使い物にならないだけでなく、集中型データベースで方が千倍も安いです。あなたが分散型サービスであると言うならば、あなた自身がシステムに存在する「単一障害点」だということを誤魔化しています。真の分散型サービスには、「あなた」はという存在はありえないのです。

2000年代初頭、テクノロジー業界で多くの幹部達がJavaとXMLを使いたがっていました。この2つはツールであり、実際の製品ではないにもかかわらず、多くの経営幹部は、エンジニアが達成しようとしている目標との適合性が低くても、この2つの技術を使用するように要求しました。ブロックチェーン界隈は、これに似ています。解決しようとしている問題に焦点を当てると、使用すべきツールは明らかになります。使用したいツールにこだわると、なんの役にも立たないサービスや製品を作る結果になります。

誰もがブロックチェーンで、不可能なことをやろうとしています。彼らは、中央集型システムで、分散型システムのようなセキュリティを望んでいます。両立できれば最高ですが、結局は最悪の結果を得ることになります。分散型システムのコストと扱いにくさ、集中型システムの単一障害点が加わるだけす。

ブロックチェーンは、無駄なものを売るためのバズワードとして使われすぎています。誇大広告を取り除くのが早ければ早いほど、私たち全員は長期的に恩恵を受けることができるのです。

ブロックチェーンは、後方参照するハッシュポインタを持ったリンクト・リストです。データ構造であり、それ以上でもそれ以下でもありません。

データ構造が「あなたのビジネスを効率化する」と考えるは、おかしいですよね?

パーミッションレスでP2P前提の分散環境下で使うための技術を、集中的に管理したいと考えれることが、問題の元凶です。

分散型アーキテクチャーが、なぜ強靭なシステムを生み出すのか?ナシーム・タレブの本を読むと理解できます。ビットコインという言葉は一言も出てきませんが、ビットコインの本です。

関連記事:ビットコインの価値を裏付けるもの。

関連記事:ほとんどのアルトコインがダメな理由。

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

94

S ⚡️

#エンジニア 系記事まとめ

noteに投稿されたエンジニア系の記事のまとめ。コーディングTIPSよりは、考察や意見などを中心に。
3つのマガジンに含まれています
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。