(57)【要約】      （修正有）【課題】低コストで複数のブロックチェーンそれぞれの信頼性を向上できるブロックチェーン管理システム、ブロックチェーン管理方法及びブロックチェーン管理プログラムを提供する。【解決手段】ブロックチェーン管理システム１は、複数のノード１０がそれぞれ、互いに異なるブロックチェーンを構成する。各ノード１０は、他のノード１０のブロックチェーンに収納されたブロックから、ランダムに１以上のブロックを選択し、当該ブロックのハッシュ値を取得する選択部１２と、自身が直前に生成したブロックのハッシュ値に加えて、選択部１２により選択された１以上のブロックのハッシュ値を含めて、新たなブロックを生成する生成部１３と、を備える。【選択図】図１
2019121947.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードがそれぞれ、互いに異なるブロックチェーンを構成するブロックチェーン管理システムであって、
各ノードは、
他のノードのブロックチェーンに収納されたブロックから、ランダムに１以上のブロックを選択し、当該ブロックのハッシュ値を取得する選択部と、
自身が直前に生成したブロックのハッシュ値に加えて、前記選択部により選択された前記１以上のブロックのハッシュ値を含めて、新たなブロックを生成する生成部と、を備えるブロックチェーン管理システム。
【請求項２】
前記選択部は、所定期間内に生成されたブロックから選択する請求項１に記載のブロックチェーン管理システム。
【請求項３】
前記他のノードのブロックチェーンに収納されたブロックのハッシュ値を一時記憶するバッファ部を備える請求項１又は請求項２に記載のブロックチェーン管理システム。
【請求項４】
前記選択部は、前記直前に生成したブロックのハッシュ値の少なくとも一部を入力とした選択関数により、前記１以上のブロックを選択する請求項１から請求項３のいずれかに記載のブロックチェーン管理システム。
【請求項５】
複数のノードがそれぞれ、互いに異なるブロックチェーンを構成するブロックチェーン管理方法であって、
各ノードは、
他のノードのブロックチェーンに収納されたブロックから、ランダムに１以上のブロックを選択し、当該ブロックのハッシュ値を取得する選択ステップと、
自身が直前に生成したブロックのハッシュ値に加えて、前記選択ステップにおいて選択された前記１以上のブロックのハッシュ値を含めて、新たなブロックを生成する生成ステップと、を実行するブロックチェーン管理方法。
【請求項６】
複数のノードがそれぞれ、互いに異なるブロックチェーンを構成するためのブロックチェーン管理プログラムであって、
各ノードに、
他のノードのブロックチェーンに収納されたブロックから、ランダムに１以上のブロックを選択し、当該ブロックのハッシュ値を取得する選択ステップと、
自身が直前に生成したブロックのハッシュ値に加えて、前記選択ステップにおいて選択された前記１以上のブロックのハッシュ値を含めて、新たなブロックを生成する生成ステップと、を実行させるためのブロックチェーン管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のブロックチェーンを管理するためのシステム、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、分散データベースであるブロックチェーンは、改竄が困難なデータ記録方式として、様々なシステムへの活用方法が提案されている（例えば、非特許文献１〜３参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｓａｔｏｓｈｉ  Ｎａｋａｍｏｔｏ．  Ｂｉｔｃｏｉｎ：  Ａ  ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ｅｌｅｃｔｒｏｎｉｃ  ｃａｓｈ  ｓｙｓｔｅｍ，  ２００８．
【非特許文献２】Ｓｏｍｐｏｌｉｎｓｋｙ，  Ｙ．，  Ｚｏｈａｒ，  Ａ．：  Ａｃｃｅｌｅｒａｔｉｎｇ  ｂｉｔｃｏｉｎ’ｓ  ｔｒａｎｓａｃｔｉｏｎ  ｐｒｏｃｅｓｓｉｎｇ．  Ｆａｓｔ  ｍｏｎｅｙ  ｇｒｏｗｓ  ｏｎ  ｔｒｅｅｓ，  ｎｏｔ  ｃｈａｉｎｓ．  ＩＡＣＲ  Ｃｒｙｐｔｏｌｏｇｙ  ｅＰｒｉｎｔ  Ａｒｃｈｉｖｅ  ２０１３  （２０１３）８８１．
【非特許文献３】Ｌｅｗｅｎｂｅｒｇ，  Ｙ．，  Ｓｏｍｐｏｌｉｎｓｋｙ，  Ｙ．，  Ｚｏｈａｒ，  Ａ．：  Ｉｎｃｌｕｓｉｖｅ  ｂｌｏｃｋ  ｃｈａｉｎ  ｐｒｏｔｏｃｏｌｓ．  Ｉｎ：Ｆｉｎａｎｃｉａｌ  Ｃｒｙｐｔｏｇｒａｐｈｙ  ａｎｄ  Ｄａｔａ  Ｓｅｃｕｒｉｔｙ  −  １９ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ，  ＦＣ２０１５，  Ｓａｎ  Ｊｕａｎ，  Ｐｕｅｒｔｏ  Ｒｉｃｏ，  Ｊａｎｕａｒｙ  ２６−３０，  ２０１５，  Ｒｅｖｉｓｅｄ  Ｓｅｌｅｃｔｅｄ  Ｐａｐｅｒｓ．  （２０１５）５２８−５４７．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、通常、ブロックチェーンでは、記録されたデータの正当性を保証するために、所定のコンセンサス・アルゴリズムによって利用者全体の合意形成を行うが、この処理は、演算及び通信のコストが大きかった。
また、複数の組織によってローカルなブロックチェーンがそれぞれ運用されると、各ブロックチェーンの規模の低下に伴って信頼性が低下すると共に、全体のコストが増大していた。
【０００５】
本発明は、低コストで複数のブロックチェーンそれぞれの信頼性を向上できるブロックチェーン管理システム、ブロックチェーン管理方法及びブロックチェーン管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るブロックチェーン管理システムは、複数のノードがそれぞれ、互いに異なるブロックチェーンを構成するブロックチェーン管理システムであって、各ノードは、他のノードのブロックチェーンに収納されたブロックから、ランダムに１以上のブロックを選択し、当該ブロックのハッシュ値を取得する選択部と、自身が直前に生成したブロックのハッシュ値に加えて、前記選択部により選択された前記１以上のブロックのハッシュ値を含めて、新たなブロックを生成する生成部と、を備える。
【０００７】
前記選択部は、所定期間内に生成されたブロックから選択してもよい。
【０００８】
前記ブロックチェーン管理システムは、前記他のノードのブロックチェーンに収納されたブロックのハッシュ値を一時記憶するバッファ部を備えてもよい。
【０００９】
前記選択部は、前記直前に生成したブロックのハッシュ値の少なくとも一部を入力とした選択関数により、前記１以上のブロックを選択してもよい。
【００１０】
本発明に係るブロックチェーン管理方法は、複数のノードがそれぞれ、互いに異なるブロックチェーンを構成するブロックチェーン管理方法であって、各ノードは、他のノードのブロックチェーンに収納されたブロックから、ランダムに１以上のブロックを選択し、当該ブロックのハッシュ値を取得する選択ステップと、自身が直前に生成したブロックのハッシュ値に加えて、前記選択ステップにおいて選択された前記１以上のブロックのハッシュ値を含めて、新たなブロックを生成する生成ステップと、を実行する。
【００１１】
本発明に係るブロックチェーン管理プログラムは、複数のノードがそれぞれ、互いに異なるブロックチェーンを構成するためのブロックチェーン管理プログラムであって、各ノードに、他のノードのブロックチェーンに収納されたブロックから、ランダムに１以上のブロックを選択し、当該ブロックのハッシュ値を取得する選択ステップと、自身が直前に生成したブロックのハッシュ値に加えて、前記選択ステップにおいて選択された前記１以上のブロックのハッシュ値を含めて、新たなブロックを生成する生成ステップと、を実行させるためのものである。
【発明の効果】
【００１２】
本発明によれば、低コストで複数のブロックチェーンそれぞれの信頼性が向上する。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係るブロックチェーン管理システムの機能構成を示す図である。
【図２】実施形態に係るブロックの構成を示す図である。
【図３】実施形態に係るブロック間の接続の様子を例示する図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態の一例について説明する。
図１は、本実施形態に係るブロックチェーン管理システム１において、管理対象である複数のブロックチェーンを管理するノード１０（情報処理装置、又は装置群）の機能構成を示す図である。
ブロックチェーンを管理する各組織のノード１０は、それぞれが互いに異なるブロックチェーンを構成し、バッファ部１１と、選択部１２と、生成部１３とを備える。
【００１５】
バッファ部１１は、他のノード１０により構成されているブロックチェーンに収納されたブロックのハッシュ値を一時記憶する。
例えば、各ブロックチェーンに収納されたブロックのハッシュ値は、ブロードキャストされ、各ノード１０のバッファ部１１にインデックスと対応付けて記憶される。
バッファ部１１は、所定期間内に生成されたブロックのハッシュ値を格納し、例えば、生成から時間の経過した古いブロックほど高確率で削除されてもよい。
【００１６】
バッファ部１１の機能は、バッファ関数により実装されてよい。バッファ関数は、インデックスとハッシュ値との対応表を管理し、指定されたインデックスに対応するハッシュ値を返す。また、バッファ関数は、ランダムＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ，  Ｆｉｒｓｔ  Ｏｕｔ）方式により、例えば実行の都度、古いブロックをバッファの対象から除外し、一定の期間に生成されたブロックのハッシュ値を新たに追加する。
【００１７】
選択部１２は、他のノード１０のブロックチェーンに収納されたブロックから、ランダムに１以上のブロックを選択し、選択したブロックのハッシュ値を取得する。
このとき、選択部１２は、バッファ部１１に記憶されたハッシュ値から選択することで、所定期間内に生成されたブロックのハッシュ値を取得する。
【００１８】
また、選択部１２は、自身が直前に生成したブロックのハッシュ値の少なくとも一部を入力とした選択関数により、１以上のブロックを選択してもよい。具体的には、選択部１２は、例えば、直前に生成したブロックのハッシュ値の所定ビットを抽出し、選択関数に入力することでインデックス（整数値）を一意に決定し、このインデックスに対応するブロックのハッシュ値を取得する。
【００１９】
生成部１３は、各ノード１０自身が直前に生成したブロックのハッシュ値に加えて、選択部１２により選択された１以上のブロックのハッシュ値を含めて、新たなブロックを生成する。
【００２０】
図２は、本実施形態に係るブロックチェーンに収納されるブロックの構成を示す図である。
ブロックチェーンの各ブロックに記録される複数のトランザクションデータは、例えばマークルハッシュツリー等の木構造により管理され、この木構造のルートハッシュがブロックに収納される。
【００２１】
また、ブロックには、直前のブロックのハッシュ値と、他のノード１０で生成された１以上のブロックのハッシュ値が収納され、これらを合わせて作成者の電子署名が付与される。
なお、通常のコンセンサスの処理で用いられるＮｏｎｃｅは省略可能であり、これにより処理負荷が低減される。
【００２２】
図３は、本実施形態に係るブロックチェーン管理システム１におけるブロック間の接続の様子を例示する図である。
この例では、３つのノードＡ，Ｂ，Ｃがそれぞれ、ブロックチェーンを運用しており、ノードＡは番号１，４，７の順にブロックを生成し、ノードＢは番号２，５，８の順にブロックを生成し、ノードＣは番号３，６，９の順にブロックを生成している。
【００２３】
例えば、４番のブロックは、同一のブロックチェーンにおける直前の１番のブロックのハッシュ値に加えて、ノードＢが運用しているブロックチェーンの２番のブロックのハッシュ値を収納する。
同様に、例えば、８番のブロックは、同一のブロックチェーンにおける直前の５番のブロックのハッシュ値に加えて、ノードＡが運用しているブロックチェーンの１番のブロックのハッシュ値を収納する。
【００２４】
このように、複数のブロックチェーンに収納されるブロックは、それぞれ他のブロックチェーンのブロックのハッシュ値を含むことで相互に接続される。時間が経過するにつれて、この相互接続がシステム全体で密になることで、各ブロックの信頼性が高まる。
なお、各ブロックチェーンにおいてブロックを生成するタイミングは、必ずしも同期されなくてもよく、ノード１０それぞれにおいて独自の周期で生成されたブロックのハッシュ値がバッファ部１１に一定期間保持される。
【００２５】
本実施形態によれば、ブロックチェーン管理システム１は、複数のブロックチェーンを複数のノード１０により分散して構成する。各ブロックチェーンのブロックには、直前のブロックのハッシュ値に加えて、他のノード１０で生成されたいずれかのブロックのハッシュ値がランダムに選択されて格納される。
したがって、ブロックチェーン管理システム１は、複数のブロックチェーンのブロック同士を相互に参照することにより、単独のブロックチェーンでの改竄を抑制できる。各ブロックチェーンでは、時間の経過に従って、システム内の他の全てのブロックチェーンを参照することになるため、相互チェックの効果によって低コストで複数のブロックチェーンそれぞれの信頼性を向上できる。この結果、通常のＮｏｎｃｅを用いたコンセンサスの処理が不要となり、高速かつ分散処理可能なブロックチェーンが実現される。
【００２６】
さらに、ブロックチェーンの数が増えても、単体のブロックチェーンのコストは増加しないため、並列度を上げることで、効率が向上する。
また、ブロックチェーン間で相互参照されるデータはハッシュ値のみであるため、秘密情報の漏洩を防ぐことができ、安全性は担保される。
【００２７】
ブロックチェーン管理システム１は、バッファ部１１に他のノード１０で生成されたブロックのハッシュ値を一時記憶することにより、直近以外の過去のブロックをランダムに選択してハッシュ値をブロックに含めることができる。
したがって、ブロックチェーン管理システム１は、ブロックチェーンの相互接続をより複雑にし、信頼性を向上できる。さらに、複数のブロックが選択されることにより、さらに密な接続が可能となり、信頼性の向上が期待できる。
【００２８】
また、ブロックチェーン管理システム１は、選択する他のノード１０のブロックを、所定期間内に生成されたブロックに限定することにより、バッファ部１１の容量及び処理負荷を抑制できる。
【００２９】
ブロックチェーン管理システム１において、各ノード１０は、他のノード１０のブロックを選択する際に、自身が直前に生成したブロックのハッシュ値の少なくとも一部を入力として一意なインデックスを求める。
したがって、選択されるブロックは、直前のブロックから一意に決まるので、検証が容易になる。
【００３０】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【００３１】
前述の実施形態では、ブロードキャストされたハッシュ値がバッファ部１１により記憶されたが、選択の対象とするブロックを例えば直近のものに限定することで、バッファ部１１が省略されてもよい。この場合も、選択関数により得られるインデックスに対して、直前のブロックを選択するルールが決められる。
【００３２】
また、前述の実施形態では、コンセンサスの処理に用いられるＮｏｎｃｅを不要としたが、Ｎｏｎｃｅを含むブロックからなるブロックチェーンがふくまれていてもよい。ブロックチェーン管理システム１は、複数のノード１０それぞれが独自のポリシで運用するブロックチェーンを相互に接続することにより、全体の信頼性を向上できる。
【００３３】
ブロックチェーン管理システム１によるブロックチェーン管理方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置（コンピュータ）にインストールされる。また、これらのプログラムは、ＣＤ−ＲＯＭのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したＷｅｂサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【００３４】
１  ブロックチェーン管理システム
１０  ノード
１１  バッファ部
１２  選択部
１３  生成部
【図１】
2019121947.tif 000003
【図２】
2019121947.tif 000004
【図３】
2019121947.tif 000005