(57)【特許請求の範囲】
【請求項１】
予め指定された２以上のブロックチェーンシステムを管理するブロックチェーン管理部と、
前記２以上のブロックチェーンシステムに対し、それぞれ、記録すべきデータと、前記記録すべきデータの復元のための冗長データとが、所定の冗長化ルールで分散配置されるよう送出するデータとブロックチェーンの組み合わせを決定する制御部と、
前記組み合わせに従って、前記ブロックチェーンシステムに対してデータを送出するデータ送出部と、
を含む、
仮想ブロックチェーンシステム。
【請求項２】
さらに、所定の端末装置から、前記２以上のブロックチェーンシステムを用いて構成された仮想ブロックチェーンシステム宛てに送信されたデータを受信するデータ受信部を備える請求項１の仮想ブロックチェーンシステム。
【請求項３】
前記制御部は、
前記データの送信元のアプリケーションプログラムと、前記アプリケーションプログラムから送信されたデータの保存先となるブロックチェーンの対応関係を定めた情報を参照し、
前記データとブロックチェーンの組み合わせとして、前記データの送信元のアプリケーションプログラムに対応付けられたブロックチェーンを選択する請求項１又は２の仮想ブロックチェーンシステム。
【請求項４】
さらに、前記２以上のブロックチェーンシステムのうちの特定のブロックチェーンシステムに対する代替ブロックチェーンシステムに対し、前記特定のブロックチェーンシステムに保持されていたデータを移転させるデータ移転部を備える請求項１から３いずれか一の仮想ブロックチェーンシステム。
【請求項５】
前記２以上のブロックチェーンシステムに加え、所定のストレージ装置を用いてデータを分散配置する請求項１から４いずれか一の仮想ブロックチェーンシステム。
【請求項６】
前記所定の冗長化ルールとして所定の秘密分散法を用いる請求項１から５いずれか一の仮想ブロックチェーンシステム。
【請求項７】
予め指定された２以上のブロックチェーンシステムを管理するブロックチェーン管理部と、前記ブロックチェーンシステムに対し、記録すべきデータを送出するデータ送出部と、を備えたコンピュータが、
前記２以上のブロックチェーンシステムに対し、それぞれ、記録すべきデータと、前記記録すべきデータの復元のための冗長データとが、所定の冗長化ルールで分散配置されるよう送出するデータとブロックチェーンの組み合わせを決定するステップと、
前記組み合わせに従って、前記ブロックチェーンシステムに対してデータを送出するステップと、
を含むデータ管理方法。
【請求項８】
さらに、所定の端末装置から、前記２以上のブロックチェーンシステムを用いて構成された仮想ブロックチェーンシステム宛てに送信されたデータを受信するステップを含む、
請求項７のデータ管理方法。
【請求項９】
前記データの送信元のアプリケーションプログラムと、前記アプリケーションプログラムから送信されたデータの保存先となるブロックチェーンの対応関係を定めた情報を参照し、
前記データとブロックチェーンの組み合わせとして、前記データの送信元のアプリケーションプログラムに対応付けられたブロックチェーンを選択する請求項７又は８のデータ管理方法。
【請求項１０】
予め指定された２以上のブロックチェーンシステムを管理するブロックチェーン管理部と、前記ブロックチェーンシステムに対し、記録すべきデータを送出するデータ送出部と、を備えたコンピュータに、
前記２以上のブロックチェーンシステムに対し、それぞれ、記録すべきデータと、前記記録すべきデータの復元のための冗長データとが、所定の冗長化ルールで分散配置されるよう送出するデータとブロックチェーンの組み合わせを決定する処理と、
前記組み合わせに従って、前記ブロックチェーンシステムに対してデータを送出する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想ブロックチェーンシステム、データ管理方法及びプログラムに関する。
【背景技術】
【０００２】
特許文献１に、より安全で信頼性の高いデジタル仮想通貨のブロックチェーンデータを生成することができるというブロックチェーン生成装置が開示されている。このブロックチェーン生成装置１は、ブロックチェーンデータ１１２と、ブロックチェーンに含まれていないトランザクションデータ１１３とを含む共有データ１１１を取得する同期手段１２１を備える。さらに、このブロックチェーン生成装置１は、トランザクションデータのうち、ブロックチェーン生成装置１を用いる生成者の識別子に関連するトランザクションデータから、生成者の取引パターン量を算出する取引パターン量算出手段１２４を備える。さらに、このブロックチェーン生成装置１は、取引パターン量に基づいて、生成者が、新たなブロックチェーンデータを生成する資格を有しているか否かを判定するブロック生成条件確認手段１２５を備える。さらに、このブロックチェーン生成装置１は、ブロック生成条件確認手段１２５が資格を有していると判定した場合、共有データ１１１を参照して、新たなブロックチェーンの生成を試みるブロックチェーン生成手段１２６を備える。【０００３】
昨今、取引所で取引されているＢｉｔｃｏｉｎ（登録商標）やＥｔｈｅｒｕｍ（登録商標）といった多くの仮想通貨は、パブリック型ブロックチェーンの上に成り立っている。パブリック型ブロックチェーンは、複数のノードによって運用され、それらのノードの運用者が大多数の権限を取得しない限り、ブロックチェーンは中立で透明性とデータの耐改ざん性を保証できるとされている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−９１１４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以下の分析は、本発明によって与えられたものである。上記したパブリック型ブロックチェーンにおいても、参加ノード数が少なかったり、コードにバグが存在するということが起こりうる。さらに、人的要因として、コミュニティ内での意見の対立やその運営が健全でない、あるいは、現に健全な運営がなされていたとしても、将来にわたって運営の健全性が保証されていないという問題点がある。現に、これらを原因として、ブロックチェーンが分裂したり、事実上運用が停止になったり、耐改ざん性が失われてデータの書き換えが可能になる等といった事象が起きている。これらの事象はパブリック型ブロックチェーンに特有のもので、プライベート型やコンソーシアム型ブロックチェーンと異なり、中央集権的に制御できないことにその一因がある。【０００６】
一方で、上記したブロックチェーンは仮想通貨のみならず、各種の証明や履歴管理など、さまざまなサービスへの応用が期待されている。これらのサービスを実現するためのアプリケーション（プログラム）も提案されているが、上記パブリック型ブロックチェーンの不安定さが、その普及のネックの一つとなっている。【０００７】
本発明は、上記したパブリック型ブロックチェーンを用いたサービスの可用性の向上に貢献できる仮想ブロックチェーンシステム、データ管理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の視点によれば、予め指定された２以上のブロックチェーンシステムを管理するブロックチェーン管理部と、前記２以上のブロックチェーンシステムに対し、それぞれ、記録すべきデータと、前記記録すべきデータの復元のための冗長データとが、所定の冗長化ルールで分散配置されるよう送出するデータとブロックチェーンの組み合わせを決定する制御部と、前記組み合わせに従って、前記ブロックチェーンシステムに対してデータを送出するデータ送出部と、を含む、仮想ブロックチェーンシステムが提供される。【０００９】
第２の視点によれば、予め指定された２以上のブロックチェーンシステムを管理するブロックチェーン管理部と、前記ブロックチェーンシステムに対し、記録すべきデータを送出するデータ送出部と、を備えたコンピュータが、前記２以上のブロックチェーンシステムに対し、それぞれ、記録すべきデータと、前記記録すべきデータの復元のための冗長データとが、所定の冗長化ルールで分散配置されるよう送出するデータとブロックチェーンの組み合わせを決定するステップと、前記組み合わせに従って、前記ブロックチェーンシステムに対してデータを送出するステップと、を含むデータ管理方法が提供される。本方法は、上記ブロックチェーン管理部とデータ送出部とを備えるコンピュータという、特定の機械に結びつけられている。【００１０】
第３の視点によれば、予め指定された２以上のブロックチェーンシステムを管理するブロックチェーン管理部と、前記ブロックチェーンシステムに対し、記録すべきデータを送出するデータ送出部と、を備えたコンピュータに、前記２以上のブロックチェーンシステムに対し、それぞれ、記録すべきデータと、前記記録すべきデータの復元のための冗長データとが、所定の冗長化ルールで分散配置されるよう送出するデータとブロックチェーンの組み合わせを決定する処理と、前記組み合わせに従って、前記ブロックチェーンシステムに対してデータを送出する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジトリーな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１１】
本発明によれば、パブリック型ブロックチェーンを用いたサービスの可用性の向上に貢献することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態の構成を示す図である。
【図２】本発明の一実施形態の動作を説明するための図である。
【図３】本発明の一実施形態の別の動作を説明するための図である。
【図４】本発明の第１の実施形態の仮想ブロックチェーンシステムの構成を示す図である。
【図５】本発明の第１の実施形態の仮想ブロックチェーンシステムが保持するブロックチェーン管理情報の一例を示す図である。
【図６】本発明の第１の実施形態の仮想ブロックチェーンシステムが保持するブロックチェーン管理情報の一例を示す図である。
【図７】本発明の第１の実施形態の仮想ブロックチェーンシステムの動作を説明するための流れ図である。
【図８】本発明の第１の実施形態の仮想ブロックチェーンシステムの動作を説明するための図である。
【図９】本発明の第２の実施形態の仮想ブロックチェーンシステムの構成を示す図である。
【図１０】本発明の第２の実施形態の仮想ブロックチェーンシステムの動作を説明するための流れ図である。
【図１１】本発明の第２の実施形態の仮想ブロックチェーンシステムの動作を説明するための図である。
【図１２】本発明の第３の実施形態の仮想ブロックチェーンシステムの構成を示す図である。
【図１３】本発明の第３の実施形態の仮想ブロックチェーンシステムの動作を説明するための図である。
【図１４】本発明の第３の実施形態の仮想ブロックチェーンシステムの動作を説明するための流れ図である。
【図１５】本発明の第３の実施形態の仮想ブロックチェーンシステムの動作を説明するための図である。
【図１６】本発明の仮想ブロックチェーンシステムを構成するコンピュータの構成を示す図である。
【発明を実施するための形態】
【００１３】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。また、以降の説明で参照する図面等のブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号（データ）の流れを模式的に示すものであり、双方向性を排除するものではない。
【００１４】
本発明は、その一実施形態において、図１に示すように、制御部１１と、データ送出部１２と、ブロックチェーン管理部１３とを含む仮想ブロックチェーンシステム１０にて実現できる。
【００１５】
より具体的には、ブロックチェーン管理部１３は、予め指定された２以上の実ブロックチェーンシステム２１〜２Ｎ（以降、実ブロックチェーンシステムを単に「ブロックチェーン」と記す。）を管理する。ここで「管理する」とは、仮想ブロックチェーンシステム１０が、管理主体として、他のブロックチェーンを管理するのではなく、他のブロックチェーンシステムに対し、いつでもデータを送信できるように管理するという意味である。
【００１６】
データ送出部１２は、前記ブロックチェーン２１〜２Ｎに対し、記録すべきデータを送出する。ここで、データ送出部１２が送出するデータは、本仮想ブロックチェーンシステム１０の用途等に依存する。例えば、本仮想ブロックチェーンシステム１０が仮想通貨による決済機能や商品等の売買履歴の管理機能を提供する場合、データ送出部１２が送出するデータは、トランザクションデータとなる。また、このトランザクションデータの代わりに、秘密分散法による分散データ（シェア）、パリティデータを送出するようにしてもよい。
【００１７】
制御部１１は、前記２以上のブロックチェーン２１〜２Ｎに対し、それぞれ、記録すべきデータと、前記記録すべきデータの復元のための冗長データとが、所定の冗長化ルールで分散配置されるよう送出するデータとブロックチェーンの組み合わせを決定する。
【００１８】
例えば、図２に示すように、制御部１１は、２以上のブロックチェーンのうち、ブロックチェーン＃１（符号２１）と、ブロックチェーン＃２（符号２２）とを選択したものとする。そして、制御部１１は、一方のブロックチェーン＃１（符号２１）に記録すべきデータを送り、他方のブロックチェーン＃２（符号２２）にその冗長データを送出するとの組み合わせを決定する。これにより、台帳データのミラーリングが実現される。それぞれのブロックチェーンにおいて、台帳は、改ざん耐性を持った状態で保持されるだけでなく、仮に一方のブロックチェーンに運用停止や分岐が発生しても、他方のブロックチェーンで運用を継続することが可能となる。上記ミラーリングに代えて、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）のレベル３〜５のように、実データとパリティデータの組み合わせを送信するようにしてもよい。
【００１９】
また、図３に示すように、上記ブロックチェーンに送出するデータとして、秘密分散法の分散データを生成し、各ブロックチェーンに送出してもよい。このようにすることで、ブロックチェーンの利用による改ざん耐性と、秘密分散法による漏洩、ハードウェア障害に対する耐性の双方を兼ね備えたシステムを構築することが可能となる。
【００２０】
以上、説明したように、本発明によれば、パブリック型ブロックチェーンを用いたサービスの普及に貢献することが可能となる。その理由は、上記複数のブロックチェーンを利用して安定的な仮想ブロックチェーンを構築し、運用の安定性を向上させたことにある。
【００２１】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図４は、本発明の第１の実施形態の仮想ブロックチェーンシステムの構成を示す図である。図４を参照すると、仮想ブロックチェーンシステム１００と、複数のブロックチェーン２０１〜２０Ｎが接続された構成が示されている。
【００２２】
ブロックチェーン２０１〜２０Ｎは、前述のブロックチェーン２１〜２Ｎと同様に、２以上の実ブロックチェーンである。それぞれのブロックチェーン２０１〜２０Ｎは、それぞれ固有の台帳を合意形成しながら更新していく複数のノード（合意形成ノード）を含んで構成される。また、それぞれのブロックチェーン２０１〜２０Ｎは、同一の仕様でなくてもよく、例えば、それぞれのブロックチェーン２０１〜２０Ｎの合意形成アルゴリズムが異なっていてもよい。また、本実施形態では、ブロックチェーン２０１〜２０Ｎは、パブリック型のブロックチェーンであるものとして説明するが、その一部に、プライベート型やコンソーシアム型のブロックチェーンが含まれていてもよい。
【００２３】
仮想ブロックチェーンシステム１００は、ブロックチェーン２０１〜２０Ｎに対し、それぞれ指定したデータを送出（ブロードキャスト）することで、合意形成を経て、それぞれのブロックチェーン２０１〜２０Ｎの台帳に指定したデータを追加させる。
【００２４】
具体的には、仮想ブロックチェーンシステム１００は、制御部１０１と、データ送出部１０２と、ブロックチェーン管理部１０３と、データ受信部１０４とを備える。
【００２５】
データ受信部１０４は、本実施形態の仮想ブロックチェーンシステム１００を利用するアプリケーションプログラム３０１〜３０Ｍ（以降、単に「アプリケーション」と記す。）からデータを受信する。アプリケーション３０１〜３０Ｍは、ネットワークに接続された各種の端末装置上で動作するプログラムである。なお、アプリケーション３０１〜３０Ｍは、同一の端末装置にインストールされた異なるプログラムであってもよいし、異なる端末装置にインストールされた同一のプログラムであってもよい。
【００２６】
ブロックチェーン管理部１０３は、上記ブロックチェーン２０１〜２０Ｎを管理する。図５は、ブロックチェーン管理部１０３が保持するブロックチェーン管理情報の一例を示す図である。図５の例では、ブロックチェーンを一意に特定するためのブロックチェーンＩＤと、所属ノードのＩＰアドレスリストと、各ブロックチェーンの使用プロトコルと、を対応付けたエントリを格納するテーブルが示されている。所属ノードＩＰアドレスリストは、当該ブロックチェーンの任意のノードのＩＰアドレスを含む。ブロックチェーンの任意のノードのＩＰアドレスの代わりに、ブロックチェーンに付与されたドメイン名に対応するＩＰアドレスを応答するＤＮＳサーバの情報が設定されていてもよい。その他、図５において省略しているが、ブロック高等は任意の項目を保持させてもよい。また、ブロック高その他の情報は、信頼の置けるノード等から入手することとしてもよい。
【００２７】
また、ブロックチェーン管理部１０３は、アプリケーションごとに、データの送信先（保存先）となるブロックチェーンのリストを管理する。図６は、ブロックチェーン管理部１０３が保持するブロックチェーン管理情報の別の一例を示す図である。図６の例では、アプリケーションを一意に特定するためのアプリケーションＩＤと、ブロックチェーンリストと、を対応付けたエントリを格納するテーブルが示されている。例えば、仮想ブロックチェーンシステム１００は、アプリケーション＃１のデータを受信すると、ブロックチェーンリストフィールドに設定されたブロックチェーンについて、それぞれ図５のテーブルを参照してその使用プロトコルに従いデータを加工する。その上で、仮想ブロックチェーンシステム１００は、加工後のデータを送出する。
【００２８】
図６のテーブルのブロックチェーンリストに設定するブロックチェーンの選択ルールが冗長化ルールに相当する。この冗長化ルールとしては、例えば、プロトコルが同一であるブロックチェーンを２以上選択するルールが考えられる。このようなルールを採用することで、データの加工処理を共通化することができる。また逆に、プロトコルが異なるブロックチェーンを２以上選択するルールが考えられる。このようなルールを採用することで、一方のブロックチェーンにプロトコルやプログラムに由来する障害が発生しても、他方のブロックチェーンに影響が及ぶ可能性を低くすることができる。冗長化ルールは、これらの例に限られるものではなく、例えば、各ブロックチェーンへのデータ登録コストや健全性などに基づいてブロックチェーンのミックスを選択する各種のルールを採用することができる。
【００２９】
制御部１０１は、データ受信部１０４からデータを受信すると、その送信元のアプリケーションを特定する。次に、制御部１０１は、図６に示すテーブルを参照して、前記特定したアプリケーションのデータの送出先となるブロックチェーンを特定する。さらに、制御部１０１は、図５のテーブルを参照して、前記特定したブロックチェーンに対し、それぞれ所要の加工を行う。さらに、制御部１０１は、図５のテーブルを参照して、データ送出部１０２に対し、送信先のブロックチェーンを指定して、前記加工後のデータの送信を指示する。このときに、送信先のブロックチェーンが２以上となるため、いずれか一方が冗長データとして機能することになる。
【００３０】
データ送出部１０２は、前記制御部１０１の指示に従って、指定されたブロックチェーンに対し、指定されたデータを送出する動作を行う。
【００３１】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図７は、本発明の第１の実施形態の仮想ブロックチェーンシステムの動作を説明するための流れ図である。図７を参照すると、まず、仮想ブロックチェーンシステム１００は、任意のアプリケーションからデータを受信する（ステップＳ００１）。
【００３２】
次に、仮想ブロックチェーンシステム１００は、受信したデータの送信元のアプリケーションを特定する（ステップＳ００２）。
【００３３】
次に、仮想ブロックチェーンシステム１００は、図６に示すテーブルを参照して、前記特定したアプリケーションのデータの送出先となるブロックチェーンを特定する（ステップＳ００３）。
【００３４】
次に、仮想ブロックチェーンシステム１００は、図５のテーブルを参照して、前記特定したブロックチェーンに対し、それぞれ所要の加工を行う（ステップＳ００４）。
【００３５】
次に、仮想ブロックチェーンシステム１００は、前記特定したブロックチェーンに対し、前記所要の加工を行ったデータをそれぞれ送出する（ステップＳ００５）。
【００３６】
以上により、図８に示すように、アプリケーションから受け取ったデータが複数のブロックチェーンに送信され、それぞれのブロックチェーンにおいて合意形成を行った後、台帳データに登録される。これにより、例えば、図８のブロックチェーン＃１のデータが消失したり、運用が停止したりした場合であっても、同一のデータを送信したその他のブロックチェーンのデータを用いてアプリケーションへのサービスを継続することが可能となる。
【００３７】
［第２の実施形態］
続いて、各ブロックチェーンに蓄積されたデータの移転機能が追加された本発明の第２の実施形態について図面を参照して詳細に説明する。図９は、本発明の第２の実施形態の仮想ブロックチェーンシステムの構成を示す図である。図４に示した第１の実施形態との構成上の相違点は、仮想ブロックチェーンシステム１００Ａにデータ移転処理部１０５が追加されている点である。その他の構成及び動作は第１の実施形態と同様であるので、以下、その相違点を中心に説明する。
【００３８】
データ移転処理部１０５は、あるブロックチェーンの台帳データあるいは台帳データから抽出したデータを他のブロックチェーンに移転させる機能を有している。データ移転処理部１０５が、データ移転処理を行う開始条件（トリガ）としては、ブロックチェーンの運用停止や分裂などが考えられる。また、別のトリガとしては、仮想ブロックチェーンの安定性の向上のための冗長度の増加、より信頼性の高いブロックチェーンへの乗り換えというケースも想定される。
【００３９】
その他、仮想ブロックチェーンシステム１００Ａの各部によるデータ配置の動作は第１の実施形態と同様であるため説明を省略する。
【００４０】
続いて、本実施形態の動作について、図面を参照して詳細に説明する。図１０は、本発明の第２の実施形態の仮想ブロックチェーンシステムの動作を説明するための流れ図である。
【００４１】
図１０を参照すると、まず、上記したブロックチェーンの運用停止や分裂などのトリガが成立すると、仮想ブロックチェーンシステム１００Ａは、移転対象のデータを保持しているブロックチェーンの台帳からデータを読み出す（ステップＳ１０１）。なお、ここで、読み出すデータは、仮想ブロックチェーンシステム１００Ａから送信したデータのみ抽出してもよい。
【００４２】
次に仮想ブロックチェーンシステム１００Ａは、所定のルールで選択した代替ブロックチェーンに前記読み出したデータを転送する（ステップＳ１０２）。
【００４３】
例えば、仮想ブロックチェーンシステム１００Ａは、あるブロックチェーン（例えば、図１１のブロックチェーン＃２  ２０２）の運用が停止した場合、同一のデータを保持しているブロックチェーン＃１  ２０１のデータを読み出す。そして、仮想ブロックチェーンシステム１００Ａは、前記読み出したデータを、他のブロックチェーン（例えば、図１１のブロックチェーン＃Ｎ  ２０Ｎ）に送る。これにより、あるブロックチェーン（例えば、図１１のブロックチェーン＃２  ２０２）の運用の停止により低下した冗長度を回復することが可能となる。また、本実施形態によれば、台帳データを移転させるため、あるアプリケーションのデータの送信先となるブロックチェーンに変更が生じた場合でも、変更前に遡って、データの冗長度を確保することが可能となる。
【００４４】
［第３の実施形態］
続いて、秘密分散法を用いて各ブロックチェーンに送るデータに秘匿性を持たせつつ、必要なときに復元できるようにした第３の実施形態について説明する。図１２は、本発明の第３の実施形態の仮想ブロックチェーンシステムの構成を示す図である。上記した第１、第２の実施形態の仮想ブロックチェーンシステム１００／１００Ａとの構成上の第１の相違点は、制御部１０１Ａと、データ移転処理部１０５Ａの機能に変更が加えられている点である。また、第２の相違点は、ブロックチェーン２０１〜２０Ｎに加えて、１台以上のストレージ装置４０１をデータの配置先とすることができる点である。その他の構成及び動作は第１、第２の実施形態と同様であるので、以下、その相違点を中心に説明する。
【００４５】
制御部１０１Ａは、第１の実施形態と同様、データ受信部１０４からデータを受信すると、その送信元のアプリケーションを特定する。次に、制御部１０１Ａは、図６に示すテーブルを参照して、前記特定したアプリケーションのデータの送出先となるブロックチェーンを特定する。このときに、アプリケーションのデータの送出先にストレージ装置が含まれていてもよい。これらブロックチェーン及びストレージ装置の合計はＮ個であるものとする。以下、分散データの配置先となるこれらブロックチェーン及びストレージ装置を総称する場合、「ブロックチェーン等」と記す。
【００４６】
さらに、制御部１０１Ａは、データ受信部１０４から受信したデータを用いて、Ｎ個のデータを作成する。このデータの作成方法としては、例えば、閾値Ｋとしたときに、（Ｋ−１）次の多項式を用いて、事前に定めたシークレットを用いてＮ個の分散データ（シェア）を作成するＳｈａｍｉｒの秘密分散法等の手法を用いることができる。
【００４７】
さらに、制御部１０１Ａは、データ送出部１０２に対し、送信先のブロックチェーンを指定して、前記分散データ（シェア）の送信を指示する。前記指示を受けたデータ送出部１０２は、制御部１０１Ａからの指示に従って、指定されたブロックチェーンやストレージ装置に、前記分散データ（シェア）を送信する（図１３参照）。本実施形態では、これらのデータの集合が、記録すべきデータと、前記記録すべきデータの復元のための冗長データとして機能することになる。
【００４８】
データ移転処理部１０５Ａは、上記した分散データの再配置機能を有している。具体的には、データ移転処理部１０５Ａは、データの配置先に変更が生じると、利用可能なＫ個のブロックチェーンからデータを読み出して、データ受信部１０４から受信したデータを復元する。そして、データ移転処理部１０５Ａは、制御部１０１Ａと連携して、再度、新しいデータ配置先に配置する分散データを作成し、新しいデータ配置先にデータを送信する。なお、データ移転処理部１０５Ａがデータ移転処理を行う開始条件（トリガ）は、第２の実施形態と同様とすることができる。但し、本実施形態では、Ｋ個のブロックチェーンが利用可能な限り、データを復元できるので、１つのブロックチェーンの運用停止等によって必ずしもデータ移転を実施する必要はない。また逆に、利用可能なブロックチェーン等がＮ個に保たれるように、その都度、データの再配置を行ってもよい。
【００４９】
続いて、本実施形態の動作について、図面を参照して詳細に説明する。仮想ブロックチェーンシステム１００Ｂの各部によるデータ配置の動作は、上記説明のとおり、図７のステップＳ００４において送信先に応じたデータ加工（分散データの作成）が行われる点を除いて第１の実施形態と同様であるため説明を省略する。
【００５０】
図１４は、本発明の第３の実施形態の仮想ブロックチェーンシステムによるデータ移転処理を説明するための流れ図である。図１４を参照すると、まず、上記したブロックチェーンの運用停止や分裂などのトリガが成立すると、仮想ブロックチェーンシステム１００Ｂは、分散データを保持しているブロックチェーンの台帳から分散データを読み出す（ステップＳ２０１）。
【００５１】
仮想ブロックチェーンシステム１００Ｂは、読み出したＫ個以上のデータを用いて、データ受信部１０４から受信したデータを復元する（ステップＳ２０２）。
【００５２】
次に、仮想ブロックチェーンシステム１００Ｂは、新しいデータ配置先となるブロックチェーン等に送信する分散データを計算する（ステップＳ２０３）。
【００５３】
次に、仮想ブロックチェーンシステム１００Ｂは、新しいデータ配置先のブロックチェーン等に前記計算後の分散データを送信する（ステップＳ２０４）。
【００５４】
例えば、仮想ブロックチェーンシステム１００Ｂは、あるブロックチェーン（例えば、図１５のブロックチェーン＃２  ２０２）の運用が停止した場合、次の動作を行う。まず、仮想ブロックチェーンシステム１００Ｂは、分散データを保持しているストレージ装置４０１、ブロックチェーン＃１  ２０１、・・・、ブロックチェーン＃Ｎ  ２０ＮからＫ個の分散データを読み出す。そして、仮想ブロックチェーンシステム１００Ｂは、前記読み出したＫ個のデータから元のデータを復元する。そして、仮想ブロックチェーンシステム１００Ｂは、復元したデータを用いて再度分散データを作成して、ブロックチェーンに再配置する。
【００５５】
これにより、Ｎ個のブロックチェーン等のうち、（Ｎ−Ｋ）個のブロックチェーン等に障害等が生じても安全かつ秘匿性を維持した状態で、アプリケーション３０１〜３０Ｍに対しブロックチェーンサービスを提供することが可能となる。また、本実施形態においても、過去に遡って分散データを復元し、再配置することで、特定のブロックチェーンに変更が生じた場合でも、変更前に遡って、データの冗長度を確保することが可能となる。
【００５６】
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成、各要素の構成、メッセージの表現形態は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。また、以下の説明において、「Ａ及び／又はＢ」は、Ａ及びＢの少なくともいずれかという意味で用いる。
【００５７】
例えば、上記した実施形態のデータの配置先として示したストレージ装置は、必ずしも物理的な装置でなくてもよく、仮想化基盤上に設けられた仮想ストレージやストレージネットワークであってもよい。また、仮想ブロックチェーン装置自体も仮想化基盤上の仮想マシン（ＶＭ）を用いて構成されていてもよい。
【００５８】
また、上記した第１〜第３の実施形態に示した手順は、仮想ブロックチェーンシステム１００／１００Ａ／１００Ｂとして機能するコンピュータ（図１６の９０００）に、仮想ブロックチェーンシステムとしての処理を実行させるプログラムにより実現可能である。このようなコンピュータは、図１６のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０１０、通信インタフェース９０２０、メモリ９０３０、補助記憶装置９０４０を備える構成に例示される。すなわち、図１６のＣＰＵ９０１０にて、データ送受信プログラムやデータ変換プログラムを実行し、その補助記憶装置９０４０に保持されたブロックチェーン管理情報を参照して受信したデータの加工やデータの送信処理を実施させればよい。
【００５９】
即ち、上記した第１〜第３の実施形態に示した仮想ブロックチェーンシステムの各部（処理手段、機能）は、上記コンピュータに搭載されたプロセッサに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することができる。
【００６０】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による仮想ブロックチェーンシステム参照）
［第２の形態］
上記した仮想ブロックチェーンシステムは、さらに、
所定の端末装置から、前記２以上のブロックチェーンシステムを用いて構成された仮想ブロックチェーンシステムに送るデータを受信するデータ受信部を備えていてもよい。
［第３の形態］
上記した仮想ブロックチェーンシステムの前記制御部は、
前記データの送信元のアプリケーションプログラムと、前記アプリケーションプログラムから送信されたデータの保存先となるブロックチェーンの対応関係を定めた情報を参照し、
前記データとブロックチェーンの組み合わせとして、前記データの送信元のアプリケーションプログラムに対応付けられたブロックチェーンを選択する構成を採ることができる。
［第４の形態］
上記した仮想ブロックチェーンシステムは、さらに、
２以上のブロックチェーンシステムのうちの特定のブロックチェーンシステムに対する代替ブロックチェーンシステムに対し、前記特定のブロックチェーンシステムに保持されていたデータを移転させるデータ移転部を備えていてもよい。
［第５の形態］
上記した仮想ブロックチェーンシステムは、
前記２以上のブロックチェーンシステムに加え、所定のストレージシステムを用いてデータを分散配置する構成とすることもできる。
［第６の形態］
上記した仮想ブロックチェーンシステムの前記冗長化ルールとして所定の秘密分散法を用いることもできる。
［第７の形態］
（上記第２の視点によるデータ管理方法参照）
［第８の形態］
（上記第３の視点によるプログラム参照）
なお、上記第７〜第８の形態は、第１の形態と同様に、第２〜第６の形態に展開することが可能である。
【００６１】
なお、上記の特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の開示の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００６２】
１０、１００、１００Ａ、１００Ｂ  仮想ブロックチェーンシステム
１１  制御部
１２  データ送出部
１３  ブロックチェーン管理部
２１〜２Ｎ、２０１〜２０Ｎ  実ブロックチェーンシステム（ブロックチェーン）
１０１、１０１Ａ  制御部
１０２  データ送出部
１０３  ブロックチェーン管理部
１０４  データ受信部
１０５、１０５Ａ  データ移転処理部
３０１〜３０Ｎ  アプリケーション（プログラム）
４０１  ストレージ装置
９０００  コンピュータ
９０１０  ＣＰＵ
９０２０  通信インタフェース
９０３０  メモリ
９０４０  補助記憶装置
【図１】
0006977872.tif 000002
【図２】
0006977872.tif 000003
【図３】
0006977872.tif 000004
【図４】
0006977872.tif 000005
【図５】
0006977872.tif 000006
【図６】
0006977872.tif 000007
【図７】
0006977872.tif 000008
【図８】
0006977872.tif 000009
【図９】
0006977872.tif 000010
【図１０】
0006977872.tif 000011
【図１１】
0006977872.tif 000012
【図１２】
0006977872.tif 000013
【図１３】
0006977872.tif 000014
【図１４】
0006977872.tif 000015
【図１５】
0006977872.tif 000016
【図１６】
0006977872.tif 000017