ブロックチェーンの強みと弱み~CAP定理から考える|DApps(ブロックチェーンを活用したアプリケーション)のことなら

TOP  コラム  ブロックチェーンの強みと弱み~CAP定理から考える

ブロックチェーンの強みと弱み~CAP定理から考える

2018.11.19

コラム

ブロックチェーンの強みと弱み~CAP定理から考える

ブロックチェーンは完璧?
暗号通貨の基盤技術として、一躍注目を集めるところとなったブロックチェーンの技術概念と仕組みは、本来の分散型台帳システムネットワークとしての機能に着目することで、さまざまな応用が可能と考えられるようになり、今日では、将来の社会構造全般に大きな影響をもたらす偉大な革新性、可能性を秘めたものであると認識されるようになりました。

高い透明性をもって確実にデータを保持し、ネットワークに参加する不特定多数の全員で正しさを承認し合い、維持・運用し合っていくこの仕組みは、不正や改ざんが事実上不可能で、システムのゼロダウンタイムを実現することもでき、社会インフラとしてきわめて理想的なかたちを築くことができますが、一方でこうしたブロックチェーンの仕組みも依然完璧なものではありません。

あらゆるものがそうであるように、やはり長所と短所、強みと弱みがあります。ですからもちろん、完璧でないからといって将来性がない、応用できないというわけではありません。大切なのは、その弱点を知った上で改善・開発を進めること、応用先のニーズに適した設計上の工夫を施し、活用していくことなのです。

そこで、今回はブロックチェーンのネットワークシステムが、その機能上避けられないものとしてもっている長所と短所について、CAP定理の観点からみていくこととしましょう。

可用性と分断耐性に長け、一貫性に弱い
ブロックチェーンは、これまでの一般的なWebサービスが採ってきたクライアント・サーバー型の仕組み、特別な権限を有し情報を一手に集約する管理サーバーが置かれて、一般ユーザーはクライアントとしてその機能やサービスを利用しに行くだけという、それぞれに固定された役割で築かれたネットワークとは全く異なり、ネットワークに参加する皆がPeer、同等の者として扱われる分散型の仕組みになっています。

データ保持の観点でも、P2Pで参加ノード同士がデータを交換し合い、分散データストアとして機能します。しかしこうした分散型システムでは、データストアとして望まれる3要素のうち、3つを100%同時に満たすことは不可能であるということが、CAP定理によって証明されており、ブロックチェーンもその例外ではないことが判明しています。

3要素というのは、C(Consistency)で示す「一貫性」、A(Availability)の「可用性」、P(Partition-tolerance)の「分断耐性」です。もう少しその内容を具体的に説明すると、一貫性は、全ユーザーが同じ最新データを直後に読み取れる状態が保証されていること、全ノードが更新された最新データを同時に保持し、読み出しは直前の書き込み内容を返すものになっていることを指しています。

次の可用性は、どこかに障害が発生しても、他のノードが影響を受けることはなく、機能性・応答性が損なわれないこと、単一障害点が存在せず、常に素早い応答が正常に返されることの保証となります。

また分断耐性は、ノード同士が分断されても動作する状態が保たれること、ネットワークに通信障害などがあっても継続動作が可能であることを示します。

どれもデータ記録には重要なポイントで、瞬時にこれらが高水準に確保されることが信頼できるシステム、有用性のある優れたシステムといえるものですね。

しかし同時に完璧な実現は不可能であることから、ブロックチェーンは可用性と分断耐性という後者の2つを保証する一方で、Cの一貫性については、やや弱みをもって成り立っている、トレードオフで完璧を手放すことにより、仕組みとしてなっているものなのです。

すぐには反映されないものの、最終的に一貫性を確立
どういうことか、さらに詳しく説明します。ブロックチェーンには、単一障害点がなく、不特定多数のノードのどこかに障害が発生しても、ダウンしていないノードから常に補完応答があり、システムダウンがほぼありません。ネットワークが分断されても、迂回して通信を行い、機能性を維持できます。

このように可用性と分断耐性に関しては非常に長けており、長所として特筆できる仕組みになっています。しかし、一貫性については不完全で、時間の経過とともに確立されていくものの、瞬時には保証されず、タイムラグが発生してしまうのです。

ブロックチェーンでは、データを時系列と容量で区切り、ひとまとめにしてブロックを生成、承認処理を行って記録し、ネットワークの皆で保持するという、常に止まることのないシステムが動いています。

そのためデータを更新した直後は、手元のノードでは確認できても、他のノードからは確認できず、すぐにデータベースネットワークへ反映される仕組みとはなっていません。

技術的にいうと、承認アルゴリズムのもと、処理途中の段階ではファイナリティが存在せず、フォークと呼ばれる分岐がたびたび発生してしまいます。特別な計算処理を行ってブロック生成に関わるマイニング作業を行うノードは、ブロックを追加してチェーンを形成していく際に用いられる、使い捨ての暗号数値を発見したタイミングでデータの伝播を実行、更新を広げていくので、ネットワーク全体が最終的な正しさを保持し合う状態にたどり着くまでには、どうしても一定の時間を要してしまうのです。

データストアとして一貫性は不可欠な要素であり、ブロックチェーンでも時間とともに保証され、最終的には確固たるものとして確保されるにいたります。しかしそこにはタイムラグがあり、即座に最新の同じデータが共有されてはいないことに注意を払っておく必要があります。

そのため活用や実装のシーンでは、遅れて同期され、最終的に正しさが確保されている、統一性・整合性がとれるものとなっているのだということを忘れず、一定数のブロックが先に進んだところで、そのブロックの同期も収束、確定したとみなすなど仕組み上の工夫を行わなければなりません。

いかがでしたか。一見、大きな弱みのようにみえるかもしれませんが、時間が経過すれば一貫性も保たれ、高い耐改ざん性、透明性、可用性と分断耐性を保証する多くの長所をもったブロックチェーンは、やはり優れた技術概念であり、システムであることに変わりはありません。

だからこそ長所と短所を踏まえてなお、将来性が見込まれ、高い注目を集めているのだともいえます。この機会により一層理解を深め、今後の発案や議論に活かしていきましょう。

▼DApps総研
https://dapps-info.com/

(画像は写真素材 足成より)