- 目次
はじめに
ブロックチェーンの活用を検討し始めた方の中には、「既存のデータベースとブロックチェーンは何が違うんだ?」という疑問を抱いている方も多いのではないでしょうか?
また、ブロックチェーンにはアクセス許可が不要なパブリックチェーンと、パーミッション型(許可型)のブロックチェーンがあるため、ひと括りにブロックチェーンといっても性質が異なります。そこで今回は、ブロックチェーン(パブリック型/パーミッション型)とデータベースの違いについて解説していきます。
ブロックチェーンおよびデータベース概要
まずは、ブロックチェーンとデータベースについて簡単に記しておきます。
ブロックチェーンとは?
ブロックチェーンは、P2P(Peer to Peer)の分散型台帳技術です。ブロックチェーン・分散型台帳技術をベースとした分散型ネットワークでは、特権的なノードの存在を必要としません。
2019年12月時点では、ブロックチェーンの定義が国際標準化されている訳ではありませんが、説明としては「日本ブロックチェーン協会」(JBA)が作成したブロックチェーンの定義が参考になります。
1)「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」
2)「電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼ぶ。」 https://jba-web.jp/
データベースとは?
データベースは、管理者によって実行される集中型の台帳です。データの整理や統合、活用のために、データの読み取りや書き込み、更新、削除などが行えます。ただし、この操作は管理者によって与えられた権限レベルに依存します。
バックアップや処理の高速化などを目的として、分散型データベースが構築される場合もありますが、基本的には取引履歴の確定や処理順序などは、管理者(中央サーバ)によって中央集権的に管理・決定されています。それゆえに、データベースの管理は容易であり、トランザクションの処理は高速です。
ただし、データが破損する可能性がある上に、すでに書き込まれたデータを管理者ではない一般ユーザーが変更する際には、データの変更ができないなどの問題が発生する場合があります。
ブロックチェーンとデータベースの比較
それでは、ブロックチェーンとデータベースを比較していきましょう。ブロックチェーンをパーミッション型チェーンとパブリックチェーンの2種類に分けているため、ここでは計3種類の比較となっています。
なお、「パーミッション型」とひと括りにしていますが、パブリックチェーンとプライベートチェーンのメリットを併せ持つことを目指した「ハイブリッド型」や、あらかじめ管理機関が決定された状態で運用される「フェデレーション型」といった複数の型が内包されています。
データベース vs パーミッション型チェーン vs パブリックチェーン
データベース | パーミッション型ブロックチェーン | パブリックブロックチェーン | |
---|---|---|---|
許可の有無 | 許可型 | 許可型 | パブリック(許可不要) |
制御 | 中央集権型 | 中央集権型と分散型のハイブリッド | 分散型 |
アーキテクチャー | クライアント・サーバ型 | P2P(クローズド) | P2P(パブリック) |
データの永続性 | 非永続的 | 変更不可 | 変更不可 |
故障の可能性 | ある | ない | ない |
性能 | 非常に高速 | 低速〜中程度 | 低速 |
ポイントをピックアップしていきましょう。
権限と制御
データベースは常にシステムの管理権限が中央集権型となっており、特権的な管理者あるいは管理者によって役割を与えられたユーザーのみが制御可能です。権限とそのレベルに応じた制御内容が明確に決められています。
一方で、ブロックチェーンは特権的な管理者が必要なく、自律分散型で動作するように設計されています。企業が使うことを考えると、ビットコインなどのようなパブリックチェーンを利用するのは難しいかもしれません。しかし、ネットワークへのアクセスをIDに応じてコントロールできるパーミッション型のブロックチェーンであれば、選択肢に入るでしょう。
アーキテクチャー
従来のデータベースは、クライアント・サーバモデルに基づいています。これはサーバを中心としたネットワークであり、クライアントがレシーバとして機能します。このモデルは小規模・大規模どちらの環境でも機能するアーキテクチャーです。
一方で、ブロックチェーンはP2Pの分散型台帳ネットワークを構築します。ネットワークを集中的に管理するノードが存在しないため、あらかじめ定められた条件さえクリアすれば、誰でも合意形成プロセスに参加できるのです。
なお、当然ながら、データベースは管理者が存在するため、コンセンサスアルゴリズムを必要としません。
書き込まれたデータの不変性
データの保存と処理についても、ブロックチェーンとデータベースは大きく異なります。
従来のデータベースは、アプリケーションが適切に動作するために必要な4つの主要機能であるCRUD(Create、Read、Update、Delete)をあらかじめ備えています。状況に応じて、データの追加や更新、消去ができるのが従来のデータベースなのです。
対して、ブロックチェーン上のデータは不変性を備えています。ブロックチェーンというデータストレージは書き込みと読み取り専用なのです。そして、一度書き込まれたデータは、消去や置換ができません。したがって、ブロックチェーン上のデータは改ざん耐性があるのです。
データの透明性と整合性
データベースは、中央集権的にデータが管理されているため、透明性がありません。管理者の意向次第ではデータが公開されることもありますが、そのデータの完全性を一般ユーザーが検証することは困難です。
ブロックチェーンの場合は、データの透明性と検証可能性を担保することができます。パブリックチェーンであれば、そもそもデータが誰でも閲覧・検証できるように公開されていますし、パーミッション型のチェーンも電子署名とハッシュによる改ざん耐性を有しています。したがって、データの完全性を検証することができるのです。
速度とパフォーマンス
データベースと比較すると、ブロックチェーンの処理能力は劣っていると言わざるを得ません。これは分散ネットワークにおいて、各ノードが合意を形成し、共通の台帳を自律的に構築するために必要な処理が実行されているからです(ビットコインのProof of Workなど)。データへの信頼性や透明性の担保と、処理能力はトレードオフの関係にあると言えるでしょう。
なお、ブロックチェーンは比較的新しい技術であるため、パフォーマンスに関しても改善余地は充分にあります。
データベース、ブロックチェーンそれぞれのユースケース
最後にデータベースとブロックチェーンが、どのような場面で適しているのかを簡単に整理しておきましょう。
データベースの場合
データベースは高速であり、一般的に普及しているデータベース管理システムもすでに存在します。したがって、エンタープライズ向けのソリューションやネットワークに最適です。例えば、高速処理を必要とする証券取引所などのシステムには、従来のデータベースが向いています。
また、機密情報の保存やデータの検証が不要なシステムにおいても、従来のデータベースの利用が適していると言えるでしょう。
ブロックチェーンの場合
ブロックチェーンは、データの透明性や信頼性を担保したい場合、あるいは利害関係者が対等な立場で分散ネットワークを構築したい場合に向いています。複数の利害関係者が商取引を行う場面において、ブロックチェーンベースのシステムは好都合です。
例としては、サプライチェーンや在庫管理、流通などの分野が挙げられます。また、データの検証が求められる投票システムや、スマートコントラクトによる業務の自動化などにも向いているでしょう。
ただし、データベースとは異なり、リレーショナルなデータに依存するシステムには、ブロックチェーンは不向きです。
実際のサービスを構築するなら
実際に何かしらのサービスを考え、ブロックチェーン利用の検討を行った場合に起こるよくある議論「なぜブロックチェーンなのか」を考えた場合、ブロックチェーン開発未経験の人は、「ブロックチェーン」か「既存のデータベース」かの2択で考えることが多いです。
しなしながら、もしそのサービス内でブロックチェーンのメリットを生かしたいと考えるのであれば、どちらか片方を選ぶのではなく、両方とも併用して利用することを検討に入れるべきでしょう。
データベースとブロックチェーンのハイブリット
既存のデータベースとブロックチェーンの併用パターンとしては下記のようなケースが多く見受けられます。
変更されると困るデータをハッシュ値に変換し、ブロックチェーンに書き込みます。その際はハッシュ値のみを書き込むのでブロックチェーン上で扱うデータを少なくなりますが、書き込まれたハッシュ値は改ざんするのが難しいので、データの信頼性を担保することができます。
一方、個人情報などは法律上変更できる形に保持しておくことが義務付けれているので、変更可能な既存のデータベースに保存します。
現状、すべてのデータをブロックチェーン上にアップするのは現実的ではありません。しかし、既存のデータベースと併用することで、ブロックチェーンの持つ特性を生かしたままサービスを構築することは可能です。
保存するデータ内容に応じてどういったデータをどのように取り扱うか、使い分けを考えることが大事です。
まとめ:ブロックチェーンは読み書き専用、改ざん耐性のあるストレージ
ブロックチェーンの場合、従来のデータベースに比べると、パフォーマンスが低下せざるを得ません。現時点での実用性や速度、正確性に関してはデータベースの方が優れていると言えるでしょう。
一方でブロックチェーンは、データの監査性や検証性が担保されており、業務プロセスの自動化が期待できます。
データベースとブロックチェーンは異なる特徴を持つ技術ではありますが、もしブロックチェーンを使いたいのであれば、両方を併用して使うこと検討するのが良いでしょう。