ブロックチェーンはストレージ?何でも保存できる?ブロックチェーンはストレージ?何でも保存できる?2018.11.20コラムブロックチェーンはストレージ?何でも保存できる?つかみづらいブロックチェーンを分かりやすく!近年、その有用性と将来性が注目され、話題になることも多いブロックチェーンですが、その概念や技術内容、どのように使えるのかといった詳細になると、まだその実態をつかみかねている方が多いのではないでしょうか。そもそもブロックチェーンとはいったい何で、何ができて何ができないのか、どのような特徴をもっているのか、これからの活用を考える上でも、そのスタート地点でつまずくことのないよう、基礎から整理して理解を積み重ねていくことが大切です。高い耐改ざん性をもって、ほぼ永久的にデータを保存することができる、ゼロダウンタイムでの運用が実現される、これらブロックチェーンならではのメリットは、徐々に理解されてきたところかと思われますが、ならばブロックチェーンはデータベース、データストレージそのものなのでしょうか。仮にその要素が認められるなら、従来のものとはどう違い、どのように使っていけばよいのでしょう。今回は、そうした疑問に答えるブロックチェーン解説を進めていきます。P2Pの分散型ネットワークによるデータ保管技術ブロックチェーンが一躍脚光を浴びることとなったのは、ビットコインをはじめとする仮想通貨(暗号通貨)がきっかけでした。仮想通貨はブロックチェーンを基盤技術として活用していますが、互いはイコールで結ばれるものではなく、ブロックチェーンの応用範囲はより広い世界へとつながっています。ブロックチェーンとは何なのか――端的に答えるなら、P2Pによる分散型ネットワーク処理の仕組みをもった、データの塊を連鎖させる時系列型のデータ保管技術です。データを保存するという点で、一種のP2P型分散データストレージ、データベースとみることもできます。通常のデータストレージサービスやデータベースの場合、提供事業者など特別の権限を有する主体があり、一手に情報を集約・管理する中央サーバー、あるいは分散して保管する複数のサーバーが存在します。これに対し、ブロックチェーンは参加ノードが皆同等の地位にあり、特別の権限をもった管理主体はどこにも存在しません。運用も正しさも、ネットワークで参加者同士が互いにそれを保証し合い、維持していきます。サービスが管理者の意図によって終了となることがないのはもちろん、特異点がもともと存在せず、互いにデータを保存し合っていることから、どこかに障害が発生しても、他のノードからデータを復元することができるほか、ネットワークが分断されても、迂回して通信することが可能で、システムが落ちるというリスクがありません。メンテナンスなどで止まることもなく、常に動き続けるゼロダウンタイムを実現できる優れた安定性が、機能的な特徴としてあります。通常のストレージやデータベースの場合、アクセス権限の問題さえなければ、特定のデータレコードをいつでも書き替えることができ、変更や削除を行っても他に影響することはありません。このことは容易に編集できるメリットとなる一方、不正改ざんが行われやすく、その検知も難しいというデメリットになるところでもあります。これに対し、ブロックチェーンでは、連結においてひとつ前のブロックのデータ内容を要約したハッシュ値などを含み、特別な関連性をもたせているため、いったん記録・保存されると、一部分だけを書き替えることはできません。仮に書き替えや削除を行うと、それ以降のチェーンに不整合が生じ、その行為が一目瞭然になります。よって不正改ざんが事実上不可能で、不特定多数の人が関与しても、高い信頼性をもった仕組みを構築できるのです。このことから、ブロックチェーンの場合、度々編集を加えていく必要があるデータの保存には向きませんが、一度決定したら確実にそのまま残すことが求められるデータ、取引関係や権利関係、トレーサビリティ、医療データ、ログデータなどの保存・管理には、非常に向いているといえます。記録・保存対象はどんなデータのかたちでもOK?このほかブロックチェーンは、原則として不特定多数の誰もが自由に参加でき、そのデータをいつでも閲覧可能とする高い公共性のもとにあり、オープンソースとなっているため、個人情報や企業の機密情報などは、暗号化して保存する必要があり、復号はブロックチェーンの外で行うかたちになります。これまでのストレージやデータベースと異なる点として、ブロックチェーンは画像や動画、膨大なドキュメントデータなど、複雑でサイズの大きなデータファイルをそのまま保存するようにはできていないことに注意が必要です。ブロックチェーンが記録・保存の対象とするのは、あくまでトランザクション(取引)データで、こうした大きく複雑なファイルを取り扱う場合には、そのハッシュ値を算出し、タイムスタンプなどのデータとともに記録するといった工夫が求められます。ハッシュ関数により算出されたハッシュ値は、元データに少しでも改ざんが加えられると、大きく異なるものになる特徴があるほか、どのようなデータであっても同じ桁数の値にするものとなっているため、ごく軽量なブロックチェーン向きのデータになり、この作業を挟み込むことで、間接的にブロックチェーンを用いた保存・管理も可能になるのです。ブロックチェーンはその仕組み上、塊とするブロックのサイズ、その承認時間、トランザクションのサイズで、単位時間あたりに処理し記録できるデータ容量の上限が決まってしまいます。そのため、どんなファイルでもアップロードできるわけではなく、トランザクションのデータ、あるいは何らかの処理操作を経てそのかたちにできるデータが対象になります。コスト面でも軽量さが求められますから、従来のストレージのようにブロックチェーンを直接用いることは不適切でしょう。ハッシュを中心にその他の技術と組み合わせ、ブロックチェーン技術を活かしたクラウドストレージのサービスなどが開発されてきているため、そうしたところの利用スタイルの方が、どんなファイルもアップロードできる、これまでのストレージと似たものになっていくと考えられます。ほかにもブロックチェーンの場合、これまでの全データを連結保持し、同期していくものとなることから、大量のデータを高速に検索・読み出しする、管理・分析するといった用途には向かないといった特性もあります。できることとできないこと、向いていること、向かないことと、ブロックチェーンにも多様な側面と特色がありますから、これらをよく理解し、透明性や耐改ざん性、ゼロダウンタイムといった優れたポイントを伸ばす活用方法を探っていきたいですね。