デジタルで豊かな社会の実現を目指す東芝デジタルソリューションズグループの
最新のデジタル技術とソリューションをお届けします。

近年、注目を集めているビットコインやイーサリアム。これらはブロックチェーンを基盤技術に活用したサービスです。ブロックチェーン技術によって、仮想通貨やICO(Initial Coin Offering)、NFT(Non-Fungible Token)などの新しいトレンドが次々と生み出されています。一方でブロックチェーンは、従来の基盤技術の仕組みと考え方が異なり、多くの人にとってなじみの薄いものです。ここでは、そんなブロックチェーンの仕組みや技術、ビジネスへの適用について、3回にわたりご紹介します。

第1回では、一般的なブロックチェーンについて、従来のシステムと異なる考え方を中心に解説しました。第2回では、東芝デジタルソリューションズが開発している独自のブロックチェーン「DNCWARE Blockchain+」について、ご紹介します。


DNCWARE Blockchain+とは


第1回で説明したように、ブロックチェーンには大きくパブリック型とプライベート型(特定の管理者あるいはコンソーシアムによって運用されるブロックチェーン)の2種類があります。「DNCWARE Blockchain+(以下、BC+)」は、お客さまのデジタルトランスフォーメーション(DX)を支援するために東芝デジタルソリューションズが開発した、企業向けのプライベートブロックチェーンです。BC+の活用により、ブロックチェーンの複雑な仕組みを意識することなく、アプリケーションを簡単に開発できるようになるため、ブロックチェーンをすぐに利用できます。

「DNCWARE」という名称は、統合クラスタソフトウェア「DNCWARE ClusterPerfect(以下、ClusterPerfect)」からその名を継承しています。ClusterPerfectは、20年以上の実績を誇る当社のソリューションで、その多くは、高可用性が強く求められるミッションクリティカルなシステムで活用されています。このClusterPerfectをはじめ、当社ではクラスタ制御の根幹となる合意アルゴリズムを独自で長年研究しており、今回、BC+に適用した合意アルゴリズムもその研究成果のひとつです。このような経緯から、当社のブロックチェーンの名称に、DNCWAREを付けました。

ここからは、BC+の仕組みとその特徴について具体的に説明していきます。


BC+の処理の流れと主な特徴


BC+における、基本の処理の流れを説明します。第1回で説明した一般的なパブリック型のブロックチェーンと同様に、BC+の処理は次のような流れになります。

①トランザクションの送信
利用者はトランザクションにデジタル署名をし、ブロックチェーンに送信します。BC+のトランザクションは、宛先であるスマートコントラクト(ブロックチェーンに記録された、ブロックチェーンの具体的な動作を決定するプログラム)のIDと、それに渡す引数が書かれたものです。

②トランザクションの処理
各ピア(ブロックチェーンネットワークに接続されたコンピューター)は、受け取ったトランザクションのデジタル署名を検証し、トランザクションに書かれている引数を、IDで指定されているスマートコントラクトに渡して実行します。

③ブロックの生成
各ピアは、複数のトランザクションをまとめてブロックを作成します。

④ブロックの合意と記録
すべてのピアで、同一の内容のブロックを記録します。

またBC+は、次の特徴を持っています。

特徴1:スマートコントラクトによる、高いカスタマイズ性とアプリケーション開発の容易性
特徴2:ユーザー、グループ、スマートコントラクトに対するアクセス制御
特徴3:高信頼性と高可用性の両立
特徴4:強化された耐改ざん性(真正性)

それぞれの特徴について、具体的に説明します。


特徴1:スマートコントラクトによる、高いカスタマイズ性とアプリケーション開発の容易性


まずは、高いカスタマイズ性について説明します。例えば、パブリックブロックチェーンの代表例ともいえるビットコインでは、仮想通貨を処理する内容がブロックチェーンの固定された機能として組み込まれているため、それ以外の用途では利用できず、利用者の目的に応じて処理の内容をカスタマイズ(調整・変更)できません。

このカスタマイズを可能にする仕組みが、BC+にも実装しているスマートコントラクトです。スマートコントラクトは、ブロックチェーンに記録されたプログラムで、ブロックチェーンの具体的な動作を決定するものです。個々のスマートコントラクトは、アプリケーションの開発者により作成され、ブロックチェーンにデプロイ(登録・変更)して使われます。例えば、仮想通貨の処理をスマートコントラクトによって実装することで、用途に合わせたさまざまな性質の仮想通貨を作れるようになります。また、仮想通貨以外の用途に関しても、さまざまな機能をスマートコントラクトで実現できる可能性が広がっています。このように、BC+は汎用性の高いプラットフォームになっています。

またBC+は、システムの構成変更や設定変更、ユーザーの作成、スマートコントラクトのデプロイなども含め、あらゆる処理がスマートコントラクトとして実行できるように設計されています。これにより、ブロックチェーンに関わるすべての変更は、例外なく、トランザクションの履歴として記録されます。

次に、アプリケーション開発の容易性についてです。BC+では、スマートコントラクトをJavaScriptで記述します。そのため、スマートコントラクトの作成を目的とした、特別なプログラミング言語の習得は不要です。

また、処理の流れで説明したとおり、スマートコントラクトの処理は複数のピアで実行されますが、BC+では、そのことについて、スマートコントラクトを作成する際に意識する必要はありません。ピア間の同期や耐障害性などは、BC+の機能としてプラットフォーム側で透過的に実現しているからです。つまり、スマートコントラクトの作成においては、運用は気にせずに、あたかも一台の高信頼なコンピューター上で実行されるプログラムとして、そのロジックを組み立てればよいということです。これが、BC+でのスマートコントラクトのシンプルな作成、ひいてはアプリケーションからBC+を利用する際の開発の容易さにつながります。

またBC+では、スマートコントラクトのデプロイの容易さも確保しています。スマートコントラクトをデプロイするにあたっては、ピアの管理者の許可を不要とし、またどれか1台のピアにデプロイすることで、それはすぐに自動的にすべてのピアに反映されます。もちろん、デプロイに際して、ブロックチェーンの運用を止めることも、ピアを再起動することも不要です。これは、アプリケーションとピアを独立して運営しているBC+の特徴により、実現できていることです。

BC+では、ブロックチェーンに記録されている情報を参照できるだけでなく、スマートコントラクトを作成するためのプログラミングやデプロイ、デバッグなどの作業が一貫してできるウェブブラウザベースのGUI(Graphical User Interface)を提供しています(図1)。その使い勝手の良さも、BC+が持つ特徴のひとつです。


特徴2:ユーザー、グループ、スマートコントラクトに対するアクセス制御


ビットコインやイーサリアムのようなパブリックブロックチェーンは、手数料を支払えば誰でもトランザクションを発行して処理を実行でき、またその処理の内容や結果はすべて全世界に公開されます。これらの性質により、パブリックブロックチェーンは高い透明性を担保していますが、この透明性の高さにより、一般のビジネス用途には適さない場合が多々あります。

例えば、複数の企業やサプライチェーンをまたいで業務効率化を図る用途にブロックチェーンを適用するケースでは、企業間で取り引きした内容を第三者に見られたくないため、ブロックチェーンに記録されたトランザクションの履歴の開示範囲を制限したいニーズがあります。

そこで、BC+では、ビジネス用途でも安心して活用できるように、独自のアクセス制御の仕組みを導入しています(図2)。

アクセス制御により、ブロックチェーンの利用者は、許可された範囲内でのみブロックチェーンを参照して利用することになります。また、BC+はアプリケーションとピアの管理を分離しているため、ピアの管理者にはブロックチェーンの記録を参照する権限が与えられていません。

この仕組みを構成する機能について、用語も含めて説明します。

「ウォレット」は、トランザクションにデジタル署名をする秘密鍵です。仮想通貨の機能を持つことが多い一般的なブロックチェーンでは、「仮想通貨を送金する」というトランザクションに秘密鍵でのデジタル署名が必要なことから、仮想通貨を入れる財布の意味を持たせて、このように呼ばれるようになりました。BC+には、組み込みの仮想通貨の機能はなく財布の意味は持ちませんが、一般的な用語としてそのままウォレットを使用しています。

また「ウォレットアドレス」は、ウォレットの秘密鍵に対応する公開鍵を元に、所定の一方向関数を使って生成した文字列です。ウォレットを一意に識別する目的で使用します。

そして「ユーザー」です。通常、システムで使われるユーザーは、特定の個人や法人などを意味しますが、BC+では、ブロックチェーン上のアクセス制御の主体をユーザーと呼んでいます。これはBC+における固有の考え方で、具体的には、ユーザーとウォレットアドレスをひも付けて所定の方法でブロックチェーンに記録し、ユーザーとウォレットの対応関係を定義することで、ユーザーの本人性を決定する仕組みです。ひとつのウォレットには、ひとつのユーザーしかひも付けられないルールからも、ウォレットを持っている人こそが、ユーザー本人であると解釈できます。

「アクセス制御リスト」について、説明します。BC+では、アクセスの種類ごとにアクセス制御リストを用意しています。例えば、個々のスマートコントラクトに対して実行可能なユーザーのリストや、各スマートコントラクトを呼び出したトランザクションの履歴を開示できるユーザーのリスト、アプリケーションの構成変更を管理するユーザーのリストなど、さまざまなリストがあり、これらのリストはすべてブロックチェーン上に記録されて安全に利用されています。

またアクセス制御リストには、ユーザーだけでなくスマートコントラクトも含めることができるため、スマートコントラクトからトランザクションの履歴を閲覧したり、あるいは、アプリケーションの構成変更をスマートコントラクトにより行ったりするような高度な自動化が可能になります。さらに、ユーザーやスマートコントラクトをひとまとめにした「グループ」を作成し、アクセス制御リストに含めることもできます。グループを利用することにより、関係するユーザーやスマートコントラクトが多い場合や、それらの追加や削除がある場合などでもアクセス制御が簡単に管理できるようになります。

トランザクションの履歴を参照する際に、これらの機能を用いてBC+が行うアクセス制御の流れは、おおよそ次のようになります(図3)。

①開示要求トランザクションのデジタル署名に用いられたウォレットのウォレットアドレスを計算する。

②算出したウォレットアドレスにひも付いているユーザーを、対応表を用いて特定する。

③特定したユーザーに、トランザクションの履歴を閲覧する権限があるのかどうかを、アクセス制御リストを参照して検証する。

④ユーザーが閲覧する権限を持っている場合に限り、ブロックチェーンに記録されたトランザクションの履歴を開示する。

なお、開示要求トランザクション自身は、ブロックチェーンの状態を変更するものではないため、トランザクション履歴として記録されません。


特徴3:高信頼性と高可用性の両立


コンソーシアムなど、企業や組織の垣根を越えた連携に使われるブロックチェーンの場合、高信頼性と高可用性が欠かせません。これを実現するために、BC+では、高速に実行できる耐障害性の高い合意アルゴリズムを搭載しています。

信頼性の中では、特にビザンチン障害耐性が重要です。

ビザンチン障害耐性とは、分散システムの一部のコンピューターで、故障や動作不良、悪意のある攻撃による誤作動、管理者が悪意を持って行う記録の改ざんなどの障害(ビザンチン障害)が発生しても、分散システムの他の正常なコンピューターでは、記録や動作について正しい結果が得られる性質のことです。

ブロックチェーンにおけるビザンチン障害耐性の最大の利点は、分散管理された複数のピアのうち少数のピアで改ざんが行われても、他のピアはその影響を受けないところにあります。この利点により、信頼関係が必ずしも十分ではない企業や組織にもコンソーシアムを広げていくことへのハードルが一段下がります。

BC+は、ビザンチン障害耐性を持つようにあらゆる面から設計しています。そのため、合意形成に関わるピアのうち20%未満※1の数のピアにビザンチン障害が発生しても、残りの正常なピアの実行結果は正しい値で一致し、ビザンチン障害の影響を受けません。この核となる技術は、長年の研究の末に当社が独自に開発した、ビザンチン障害耐性をもつ合意アルゴリズム(特許技術)です。これにより、BC+はコンソーシアムでの運用に最も適した、パーミッション型のブロックチェーンとなっています。

また、BC+は、ビザンチン障害耐性だけでなく高可用性も同時に持つように設計しています。

高可用性とは、分散システムの一部のコンピューターが停止あるいは障害状態となっても、残りの正常なコンピューターで処理を継続できる性質のことです。コンピューターの停止は、突発的な停電や定期的なメンテナンスのためなどにより、比較的、起こりやすい事象です。そのため、一部のコンピューターが停止した場合でもサービスを継続できる高可用性は、多くのシステムに求められる重要な性質となっています。

この可用性の面においてBC+では、合意形成に関わるピアのうち20%未満※1の数のピアが停止あるいは障害が発生したとしても、残りの正常なピアが連携してブロックチェーンの処理を継続できるようにしています。また、停止していたピアが正常な状態で再起動した際には、そのピアは自動的にブロックチェーンに組み込まれます。万が一、すべてのピアが停止した場合でも、その後、80%以上※1のピアが正常な状態で再起動すれば、ブロックチェーンの処理は自動的に再開します。このように、BC+では最大限の可用性が得られるようになっています。

※1:一般的な構成での設定値(割合)。他の構成としては、例えばビザンチン障害耐性に関して許容できるビザンチン障害ピア数の割合を12.5%未満とし、一方で高可用性に関して許容できる障害ピア数の割合を25%未満とするなど、目的に応じて設定値を変更できます。

このような合意アルゴリズムを独自に開発して適用したことで、BC+は、高信頼性と高可用性を柔軟に両立できる特徴を持てました。


特徴4:強化された耐改ざん性(真正性)


ブロックチェーンの特徴である真正性の担保に向けて、BC+では、耐改ざん性を強化しています。真正性の検証には、いくつかの方法があります。

A)トランザクションのデジタル署名を検証し、記録されているトランザクション要求が第三者により改ざんされていないことを確認する。

B)ブロックのハッシュ値を再計算して、その次のブロックに記録されているハッシュ値と照合し、ハッシュのチェーンが壊れていないこと、すなわちブロックが改ざんされていないことを確認する。なお、ブロックのハッシュ値はアクセス制御に関係なく誰でも取得することが可能になっています。

C)複数のピアに記録されているデータを比較し、一部のピアが、その管理者により改ざんされていないことを確認する。

D)スマートコントラクトの実行をリプレイして比較し、スマートコントラクトの実行結果や、内部状態が改ざんされていないことを確認する。

E)トランザクションに含まれるブロックのハッシュ値と、実際のブロックに記録されているブロックのハッシュ値を照合し、複数のピアの管理者の結託により改ざんがなされていないことを確認する。この技術は、当社の特許技術です。

BC+では、これらAからEまでの異なる視点による検証を、目的に応じて組み合わせます。このようなさまざまな角度から、二重三重に真正性を検証することで、改ざんを極めて難しくしているのです。こうしてBC+は、ブロックチェーンの特徴である真正性の担保を、より高いレベルで実現しています。


BC+の特徴のまとめとビジネスへの適用に向けて


BC+は、多くの開発者になじみのあるJavaScriptでスマートコントラクトが書け、簡単な操作でデプロイできるため、初めての利用者でも比較的容易にアプリケーションを開発して利用できるブロックチェーンです。また使いやすいにもかかわらず、できることは高度です。

例えば、アクセス制御の機能により、全員に開示する部分と関係するユーザーやグループ内のみにデータやスマートコントラクトの実行結果を開示する部分を分けるなど、必要に応じてアクセスを分離した形でブロックチェーンを利用できます。しかも、耐改ざん性を強化した、高速かつ高信頼性なブロックチェーンでもあります。

これらの特徴により、いろいろな企業、団体にさまざまな目的で使っていただけるブロックチェーンになっています。連載の最終回となる次回は、実際にどのようにビジネスへ適用しているのかについて、ご紹介します。ご期待ください。

遠藤 浩太郎(ENDO Kotaro)

東芝デジタルソリューションズ株式会社
ソフトウェアシステム技術開発センター コアテクノロジー開発部 エキスパート


東芝に入社後、産業用コンピューターの基本ソフトウェア開発や、サーバーのクラスター技術の研究開発に従事。さまざまな新しい技術の研究開発を経て、現在はブロックチェーンおよび量子インスパイアード最適化ソルバーSQBM+の技術開発に取り組んでいる。

  • この記事に掲載の、社名、部署名、役職名などは、2022年8月現在のものです。

>> 関連情報

関連記事