• セキュリティ
  • ブロックチェーン

ブロックチェーンをどう活用すべきか?ー技術編ー

2018年12月11日

  • 4
  •  

■ ブロックチェーンを支える技術たち

今回は、ブロックチェーンを支える技術、また特徴などについてポイントをあげたいと思います。
まず背景をもとに、基礎的なものを下記に列挙します。

・ P2Pネットワーク(分散台帳の実現)
・ 暗号学的ハッシュ関数(真正性の証明、トレーサビリティの保証)
・ デジタル署名(非改ざんの証明)
・ コンセンサス・アルゴリズム(電子的な合意形成、皆で見張るイメージ、マイニングの手法、PoW/PoC/PoIなどがある)
・ トークン(デジタル通貨の経済圏を構築)
・ フォーク(派生や分岐という拡張性がある、仮想通貨が乱立している原因でもあるが)

これまでにも、P2Pベースの分散化の仕組みとして(あくまでプロトコルレイヤーですが)IPFS, GunDBなど存在しましたが、ブロックチェーンでは、マイニング、コンセンサス・アルゴリズム、トークンなどの仕組みが加わっている、と考えるとわかりやすいと思います。

ブロックチェーンのプラットフォームごとの特徴を理解する上で、比較ポイントとなるのが、コンセンサス・アルゴリズムです。これはプラットフォームの設計思想が反映される部分で、ある意味エンジン的な役割(データベースで言うところのオプティマイザみたいなもの)を担っています。各プラットフォームには、必ずホワイトペーパーが存在しますので(設計思想を理解しようとすると、結局ここにたどり着く)ご一読されるとより理解が深まります。

コンセンサス・アルゴリズムは、ビットコインが採用しているPoW(Proof of Work)から始まりました。その合意形成の手段としては、最長のチェーンが常に正しい、という民主的かつ耐改ざん性が高い構造ではありますが、その問題は、ブロックチェーンにデータを書き込むのに、多くのハッシュレートを求められる(=時間がかかる、処理リソースを食う)ことです。つまり、パフォーマンスの問題があるわけです。コンセンサス・アルゴリズムとしては、その後、さまざまな改善が行われています。所有量を加えたPoS(Proof of Stake)、重要度を加えたPoI(Proof of Importance)、投票の概念を加えたPoC(Proof of Consensus)、さらには、証明手段を工夫したProof of Replication、Proof of Spacetimeという実装プラットフォームも出現してきています。ここでは詳細な説明を割愛しますが、それぞれメリット・デメリットがあります。

ブロックチェーンには、実際にはさまざまなタイプがあります。よく混乱する部分でもあるため、こちらで触れおきたいと思います。

・ パブリックチェーンとプライベートチェーン
・ メインネットとオフチェーン
・ ブロックチェーンとDAG(Directed Acyclic Graph)

ブロックチェーンのネットワークには、誰でも自由に参加できる、世界でひとつの「パブリックチェーン」と、中央管理者がいる限定的なネットワークの「プライベートチェーン」があります。そもそもの概念である自立型分散台帳(DAO:Decentralized Autonomous Organization)の厳密さを求めるには、ブロックチェーンはパブリックチェーンであるべきです。しかし、現状のビジネスシーンにおいては、ブロックチェーンの耐改ざん性や真正性はそのまま担保し、特定の管理者のもと(運営者、企業など)合意形成を厳格にせずに、処理速度を高速に保つことを目的に、中央集権を残す(矛盾しますが)やり方も、実際には多く存在しています。また「プライベートチェーン」には、実は処理速度の高速化だけでなく、取引コスト(手数料)をおさえることができる、プライバシー性に優れる、外部攻撃に強い、さまざまな変更に柔軟などのメリットもあります。


これも、矛盾する話ではありますが、本来ブロックチェーン基盤で解決すべきさまざまな問題を、サブシステムで解決しようとする動きが、現状多く見受けられます。ブロックチェーン側を「メインネット」と呼び、サブシステム側を「オフチェーン」などと呼んでいます。多くのプロジェクトで実装例が紹介されており、独自のサブシステムを加えて、ひとつのプラットフォームとして見せているものも多く存在します。

分散型ネットワークという括りにおいては、ブロックチェーンの処理速度の問題を解決する「DAG」と呼ばれる仕組みがあります(厳密にはブロックチェーンではないが、提供する機能は大きくは変わらない)。プラットフォームとしては、IoT分野に特化したIOTA、Byteball、Nanoなどがあります。有向非巡回グラフという概念に基づくものですが、ブロックチェーンがすべての取引をブロックに書き込むのに対し、「DAG」では個々の取引のみブロックに書き込むことで、処理速度をあげる仕組みとなっています。過去から現在にかけて時系列に従ってチェーンを繋いでいくのが特徴です。また、マイニングという概念もここではありません(取引の真正性はノード全体で担保しない)。

■ ブロックチェーンが抱える課題と動向

ブロックチェーンのプラットフォームは、ここ数年乱立している状況があります。しかし、グローバル(国内は少なめ)においても、まだプロトコルレイヤーの実装が圧倒的に多く、アプリケーションに近いレイヤーについてはこれからという感じです。ブロックチェーンのフォークという拡張性を利用して、特にイーサリアム(Ethereum)から派生したプラットフォームは非常に多く存在します。その中で、それぞれのプラットフォームにおける技術的な課題(処理速度とかのインフラ系の話)の他に、実際にはビジネス的な課題も多く存在します。

ブロックチェーンは、そのネットワークがベースになります。したがって、従来のネットワーク(インターネット)におけるデータ(情報)とどう融合連携するのか、という部分が大きな課題だと思われます。世の中には、さまざまな(実ビジネスの市場に特化したものも含め)オフチェーンを司る仕組みが出てきていますが、いくつかその例をご紹介します。

・ オラクルという概念(ブロックチェーンネットワークと外部インターネットを繋ぐ)

スマートコントラクトの増大に伴い、ネットワークが拡大しデータ量が膨大になると、外部ネットワークからの情報がいっそう必要になってきます。ブロックチェーン内部には限られたデータしかありません。実ビジネスを考えた場合、外部からの情報を取り込む必要が出てきます。単にAPIで外部と繋ぐことでは、本当に正しい情報なのか担保できないため、その真正性を担保した上で外部データを取り込んでくる仕組みが必要になります。そこを担うものを「オラクル」と呼んでいます(データベースのオラクルとは違います)。現段階では、予測市場などの適用事例として、Oraclize、Gnosisなどのプロジェクトが存在し、稼働しています。

・ ブロックチェーンハブという概念(ブロックチェーン同士を繋ぐ)

同様に、さまざまなブロックチェーンが稼働すると、それらを繋ぐ(トークン移動、データ移動など)需要も発生してきます。ここを担うものを「ブロックチェーンハブ」と呼んでいます。オフチェーン(サイドチェーンという言い方もします)の中で独自に実装するケースも多いのですが、より汎用的なプロジェクトも発生してきています。一例として、Cosmosというプロジェクトがあります。PoSベースのTendermintというミドルウェアをベースに、Cosmos Hubとそれらを取り巻くZoneから構成される仕組みを提供しています。ブロックチェーン間でのトークン移動を容易にすることを目的としています。

■ プロジェクトにおけるアプローチ

ブロックチェーン活用プロジェクトの要件定義において、重要と思われる点(実は放置されやすい、優先度が低くなる点でもある)を下記にあげます。今後、プロジェクトに携わる機会がある方々の参考になれば幸いです。

・ 「データ信憑性の担保」
・ 「インセンティブの設計」
・ 「スケーラビリティの考慮」
・ 「フレームワークの活用」

ブロックチェーンは、構造的にデータの改ざんが不可能な仕組みになっていますが、逆に間違ったデータが登録されると、もちろんですが、それを訂正することができなくなります。したがって、書き込まれるデータの信憑性をどう担保するのか、というところが大事になります。スマートコントラクトのロジックで担保するのか、または登録側(人ではなくIoT機器やロボットなど)で確実性をあげることで担保するのか(人は間違いを起こす、故意もある)などの検討が必要です。
注意すべき点は、スマートコントラクトはあくまでプログラムです。そこにバグが潜んでいたら(故意に仕込まれるケースも含め)真正性は担保できないことになります。このようにブロックチェーンに書かれるデータの前段階(入り口)の設計次第では、せっかくブロックチェーンを活用しても、本末転倒となりかねないのです。

自律型分散台帳(DAO)を実現するためには、ボランティアだけでは成り立たないため、その経済圏をデザインする必要があります。合意形成のための報酬や、取引記録のための手数料であったりします。サービス提供者や利用者、あるいはデータ登録者や閲覧者、すべての登場人物(アクター)に対して、どのようにインセンティブを持たせて経済圏をつくるか(トークンの移動など)が重要な要素になります。

特にパブリックチェーンを活用した仕組みの場合、ほぼ確実にネックになるのが、そのパフォーマンス問題です。スケーラビリティが求められる、またリアルタイム性が求められる、などの場合は、イーサリアム(Ethereum)では15件/秒という数字も公表されていますので、基本的には非同期でブロックチェーンに書き込むことを念頭におく必要があります(実際には、スケールを考慮したプラットフォームも出てきています。分散型アプリケーションプラットフォーム(EOS)では3000件以上/秒を処理可能と言われています)。通常は、前述のオフチェーンやサイドチェーンを使い、既存の技術と組み合わせたハイブリッドで構成する仕組みを検討すべきかと思います。

もうひとつ大切な点として、フレームワークの活用があります。ブロックチェーンのプラットフォームはその基盤を担うものであり、システム化においては、既存テクノロジーとの組み合わせも必要となり、アーキテクチャ全体の設計が重要になります。まだ発展途上な基盤でもあるので、従来のコンポーネント化や疎結合化の要素を取り入れ、効率や柔軟性をもたせるアーキテクチャを実現するためにも、それらの活用が不可欠です。イーサリアム(Ethereum)系のプラットフォームには、数多くのツールやフレームワークが存在します。
 

■ デジタルドキュメントを例に

最後に、ブロックチェーン活用をイメージするために、実際のアプリケーションについて例をあげたいと思います。一般的に、パブリックブロックチェーン基盤のアプリケーションを「DApps」と呼ぶことがあります。ただし、これには下記3要素の定義があります。

・ 非中央集権型(オープンソース)であること
・ トークン経済圏があること
・ ユーザ合意で改善が行われること

例えば、デジタルドキュメントの管理にブロックチェーン基盤を利用することで、真正性の証明に活用できると考えられます。デジタルドキュメントそのものは、分散ストレージ(IPFSなど)に格納し、ハッシュ値をもとに生成した「コンテンツアドレス」をブロックチェーンに記録するイメージになります。つまり、コンテンツ本体ではなく、そのコンテンツアドレスを管理することになります。仮に、コンテンツが少しでも書き換えられた場合、ハッシュ値から生成されるコンテンツアドレスはまったく別のものになります。したがって、存在証明と耐改ざん性が担保できることになります。既存のデジタルドキュメントのソリューションと、ブロックチェーンをハイブリッドで構成することで、前述の付加価値が提供できると考えられます。


<関連記事>
ブロックチェーンとは何か、また注目される理由について簡単にご紹介いたします。
「ブロックチェーンが変えるものはこれだ!」はこちら


アバノア・テクノロジー 代表、ITアーキテクト 平川 正広
https://www.avanoa-tech.com
現在、ブロックチェーン関連のさまざまなプロジェクトに参画し、技術開発支援を含めプロダクトやサービス創出に向け意欲的に活動している。最近の関わりとしては、Ethereum、Hyperledger Fabric、EOS、IOTA、ioeX(ELA)など。


 

Spread the love
  • 4
  •  

この記事に含まれるタグ一覧

RECOMMEND ENTRIESよく読まれている記事