(57)【要約】  本発明は、ブロックチェーンに基づくローカルコンセンサスを設定するための方法を開示する。当該方法は、複数のノードの初期化を実現するステップと、複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成するステップとを含む。本発明は更に、対応するコンピュータ可読記憶媒体およびブロックチェーンに基づくローカルコンセンサスを設定するための装置を開示する。当該装置は初期化モジュールとローカルコンセンサス設定モジュールを含む。初期化モジュールは、複数のノードの初期化を実現するように構成される。ローカルコンセンサス設定モジュールは、複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成するように構成される。本発明に係るブロックチェーンに基づくローカルコンセンサスを設定するための方法によっては、ブロックチェーンを構成する複数のノードから一部の関連ノードを選択することができる。これにより、選択されたノード間にはローカルコンセンサスのインスタンスが作成される。そして、ローカルコンセンサスのインスタンスは、所望のコンセンサスアルゴリズムを選択して実現されるように保証し、ネットワークサービスを最適化し、ネットワークサービスの品質を向上させる。
2019526945.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンに基づくローカルコンセンサスを設定するための方法であって、
複数のノードの初期化を実現するステップと、
前記複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成するステップと、
を含むブロックチェーンに基づくローカルコンセンサスを設定するための方法。
【請求項２】
前記複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成するステップは更に、
作成された前記ローカルコンセンサスのインスタンス上で実行されるサービスの要件に従って、前記複数のノードから前記１組のノードを選択するステップと、
前記複数のノードの中の１つのノードを介して、前記ブロックチェーン内のすべてのノードに対して、前記ローカルコンセンサスのインスタンスを作成するための第１のトランザクションコマンドをブロードキャストするステップと、
前記ブロックチェーン内のすべてのノードは、前記第１のトランザクションコマンドに応答して、前記ローカルコンセンサスのインスタンスを作成するステップと、
を含む請求項１に記載の方法。
【請求項３】
前記第１のトランザクションコマンドは、前記１組のノードのノードリストを示すための情報、前記ブロックチェーンの管理者が指定したローカルコンセンサスの識別子に関する情報、および作成された前記ローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムに関する情報を含む、
請求項２に記載の方法。
【請求項４】
前記コンセンサスアルゴリズムは、
プルーフオブワークコンセンサスアルゴリズム、
プルーフオブステークコンセンサスアルゴリズム、
委任プルーフオブステークコンセンサスアルゴリズム、
実用的ビザンチン・フォールト・トレランス・コンセンサスアルゴリズム、および
ＢＦＴ−ＲＡＦＴコンセンサスアルゴリズム、
のうち少なくとも１つのアルゴリズムを含む請求項３に記載の方法。
【請求項５】
作成された前記ローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムに関する情報は、作成された前記ローカルコンセンサスのインスタンス上で実行されるサービスの要件および前記ブロックチェーンがサポートするコンセンサスアルゴリズムに従って決定される、
請求項３に記載の方法。
【請求項６】
前記方法は、
前記ローカルコンセンサスのインスタンスは、前記ローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムのタイプによって、１つまたは複数の通信チャネルを作成するステップ、
を更に含む請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記方法は、
作成された前記ローカルコンセンサスのインスタンスは、他のノードにより送信されたメッセージを受信して処理するためのメッセージ処理スレッドを起動するステップ、
を更に含む請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記方法は、
前記ローカルコンセンサスのインスタンス上で実行されるサービスの要件が満足された後、前記ブロックチェーン内のすべてのノードに対して、前記ローカルコンセンサスのインスタンスを削除するための第２のトランザクションコマンドをブロードキャストするステップと、
前記ブロックチェーン内のすべてのノードは、前記第２のトランザクションコマンドに応答して前記ローカルコンセンサスのインスタンスを削除するステップと、
を更に含む請求項１から７のいずれか一項に記載の方法。
【請求項９】
複数のノードの初期化を実現するステップは更に、
前記複数のノードに対して、ネットワークのアドレスとポートを設定するステップと、
ノードの公開鍵と秘密鍵を生成するステップと、
ノードのブロックチェーンプログラムを起動して実行するステップと、
を含む請求項１から８のいずれか一項に記載の方法。
【請求項１０】
コンピュータプログラムであって、
前記コンピュータプログラムは命令を含み、前記命令は、実行されたときに、コンピュータのプロセッサに、少なくとも、
複数のノードの初期化を実現するステップと、
前記複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成するステップと、
を実行させるコンピュータプログラム。
【請求項１１】
前記複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成するステップは更に、
作成された前記ローカルコンセンサスのインスタンス上で実行されるサービスの要件に従って、前記複数のノードから前記１組のノードを選択するステップと、
前記複数のノードの中の１つのノードを介して、ブロックチェーン内のすべてのノードに対して、前記ローカルコンセンサスのインスタンスを作成するための第１のトランザクションコマンドをブロードキャストするステップと、
前記ブロックチェーン内のすべてのノードは、第１のトランザクションコマンドに応答して、前記ローカルコンセンサスのインスタンスを作成するステップと、
を含む請求項１０に記載のコンピュータプログラム。
【請求項１２】
前記命令は、実行されたときに、前記コンピュータのプロセッサに更に、
前記ローカルコンセンサスのインスタンス上で実行されるサービスの要件が満足された後、ブロックチェーン内のすべてのノードに対して、前記ローカルコンセンサスのインスタンスを削除するための第２のトランザクションコマンドをブロードキャストするステップと、
前記ブロックチェーン内のすべてのノードは、前記第２のトランザクションコマンドに応答して前記ローカルコンセンサスのインスタンスを削除するステップと、
を実行させる請求項１０または１１に記載のコンピュータプログラム。
【請求項１３】
ブロックチェーンに基づくローカルコンセンサスを設定するための装置であって、
複数のノードの初期化を実現するように構成される初期化モジュールと、
前記複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成するように構成されるローカルコンセンサス設定モジュールと、
を含むブロックチェーンに基づくローカルコンセンサスを設定するための装置。
【請求項１４】
前記ローカルコンセンサス設定モジュールは更に、
作成された前記ローカルコンセンサスのインスタンス上で実行されるサービスの要件に従って、前記複数のノードから前記１組のノードを選択する、
前記複数のノードの中の１つのノードを介して、前記ブロックチェーン内のすべてのノードに対して、前記ローカルコンセンサスのインスタンスを作成するための第１のトランザクションコマンドをブロードキャストする、および
前記ブロックチェーン内のすべてのノードは、第１のトランザクションコマンドに応答して、前記ローカルコンセンサスのインスタンスを作成する、
ように構成される請求項１３に記載の装置。
【請求項１５】
前記第１のトランザクションコマンドは、前記１組のノードのノードリストを示すための情報、前記ブロックチェーンの管理者が指定したローカルコンセンサスの識別子に関する情報、および作成された前記ローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムに関する情報を含む、
請求項１４に記載の装置。
【請求項１６】
前記コンセンサスアルゴリズムは、
プルーフオブワークコンセンサスアルゴリズム、
プルーフオブステークコンセンサスアルゴリズム、
委任プルーフオブステークコンセンサスアルゴリズム、
実用的ビザンチン・フォールト・トレランス・コンセンサスアルゴリズム、および
ＢＦＴ−ＲＡＦＴコンセンサスアルゴリズム、
のうち少なくとも１つのアルゴリズムを含む請求項１５に記載の装置。
【請求項１７】
作成された前記ローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムに関する情報は、作成された前記ローカルコンセンサスのインスタンス上で実行されるサービスの要件および前記ブロックチェーンがサポートするコンセンサスアルゴリズムに従って決定される、
請求項１５または１６に記載の装置。
【請求項１８】
前記ローカルコンセンサス設定モジュールは更に、
前記ローカルコンセンサスのインスタンス上で実行されるサービスの要件が満足された後、前記ブロックチェーン内のすべてのノードに対して、前記ローカルコンセンサスのインスタンスを削除するための第２のトランザクションコマンドをブロードキャストする、および
前記ブロックチェーン内のすべてのノードは、前記第２のトランザクションコマンドに応答して前記ローカルコンセンサスのインスタンスを削除する、
ように構成される請求項１３から１７のいずれか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックチェーン技術の分野に関し、特にブロックチェーンに基づくローカルコンセンサスを設定するための方法、ブロックチェーンに基づくローカルコンセンサスを設定するための装置、および対応する有形のコンピュータ可読記憶媒体に関する。
【背景技術】
【０００２】
ブロックチェーン（Ｂｌｏｃｋ  Ｃｈａｉｎ）技術は、分散型ピアツーピアネットワークに基づく技術であり、暗号化の原理とコンセンサスのメカニズムを組み合わせて、分散ノード間のデータの継続性と永続性を保証するようにする。これにより、情報のインスタント検証、トレーサビリティ、改ざん困難およびブロック不能という目的を実現する。更には、プライバシー、効率性、安全性を備えた共有な価値システムを創出する。
【０００３】
ブロックチェーンは通常、パブリックチェーン、アライアンスチェーン、およびプライベートチェーンに分かれている。そのうち、パブリックチェーンとは、誰もがプロトコルに従ってアクセスしてコンセンサスに参加できるブロックチェーンを指す。アライアンスチェーンとは、コンセンサスのプロセスが事前選択されたノードによって制御されるブロックチェーンを指す。プライベートチェーンとは、すべての権限が１つの組織にあってその組織によって任意に制御されるブロックチェーンを指す。
【０００４】
コンセンサスアルゴリズムとは、ブロックチェーンに参加している複数のノードの間で、共同で作動して遵守する一連のプロトコルを指し、ブロックチェーンに提出された請求操作（時には実行結果も含む。）が、ブロックチェーン内の複数のノードにわたって合意できるように保証するのに使用される。
【０００５】
既存のブロックチェーン技術では、異なるブロックチェーンプラットフォームが選択したコンセンサスアルゴリズムも異なる。技術指標から見て、異なるコンセンサスアルゴリズムは、システム可用性、スケーラビリティ、およびコンセンサス確認速度などの指標に大きな違いがある。すべてのシナリオを満たす完璧なコンセンサスアルゴリズムは、存在していない。そのため、実際のブロックチェーンプラクティスでは、実際の利用シナリオや技術指標に応じて適切なコンセンサスアルゴリズムを選択する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
現在市販されているブロックチェーンプラットフォームは、基本的に単一のコンセンサスアルゴリズムをサポートしているため、プラグイン可能な操作をサポートするコンセンサスモジュールであっても、一つだけのコンセンサスアルゴリズムを同時に実行することはできる。そのため、既存のブロックチェーンプラットフォームは、柔軟性に乏しく、複数の異なるサービスシナリオを同時に満たすことができない。更に、特定のシナリオでは、特定のブロックチェーンサービスを実行するために、ノードの一つのサブセットを選択して一つのサブチェーンを形成する必要がある。関連のない他のノードはメッセージを受信できない。このような状況は、既存のブロックチェーンプラットフォームにおいて、まだ実現できていない。
【課題を解決するための手段】
【０００７】
上記課題に鑑みて、本発明の第１の形態では、ブロックチェーンに基づくローカルコンセンサスを設定するための方法を提供し、この方法は、以下のステップを含む：
【０００８】
複数のノードの初期化を実現する；および
【０００９】
複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成する。
【００１０】
本発明に係るブロックチェーンに基づくローカルコンセンサスを設定するための方法によっては、ブロックチェーンを構成する複数のノードから、一部の関連ノードを選択することができる。これにより、選択されたノード間には、ローカルコンセンサスのインスタンスが作成される。そして、ローカルコンセンサスのインスタンスは、所望のコンセンサスアルゴリズムを選択して実現されるように保証し、ネットワークサービスを最適化し、ネットワークサービスの品質を向上させる。
【００１１】
本発明に係る一つの実施形態において、複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成するステップは更に、以下のステップを含む：
【００１２】
作成されたローカルコンセンサスのインスタンス上で実行されるサービスの要件に従って、複数のノードから１組のノードを選択する；
【００１３】
複数のノードの中の１つのノードを介して、ブロックチェーン内のすべてのノードに対して、ローカルコンセンサスのインスタンスを生成するための第１のトランザクションコマンドをブロードキャストする；および
【００１４】
ブロックチェーン内のすべてのノードは、第１のトランザクションコマンドに応答して、ローカルコンセンサスのインスタンスを作成する。
【００１５】
このような形態によれば、ブロックチェーンの管理者は、作成すべきローカルコンセンサスのインスタンス上で実行されるサービスの要件によって複数のノードから１組のノードを選択することができる。これにより、選択された１組のノードの間にローカルコンセンサスのインスタンスを作成することができる。無関係な他のノードは、このローカルコンセンサスのインスタンスに参加する必要もなく、参加する可能性もない。これにより、この１組のノード間の通信のセキュリティとプライバシーを保証することができる。一方、作成されたローカルコンセンサスのインスタンスが所望のコンセンサスアルゴリズムを比較的自由に選択できるように確保することもできる。
【００１６】
本発明に係る一つの実施形態において、第１のトランザクションコマンドは、１組のノードのノードリストを示すための情報、ブロックチェーンの管理者が指定したローカルコンセンサスの識別子に関する情報、および作成されたローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムに関する情報を含む。
【００１７】
本発明に係る一つの実施形態において、コンセンサスアルゴリズムは、プルーフオブワークコンセンサスアルゴリズム、プルーフオブステークコンセンサスアルゴリズム、委任プルーフオブステークコンセンサスアルゴリズム、実用的ビザンチン・フォールト・トレランス・コンセンサスアルゴリズム、および／またはＢＦＴ−ＲＡＦＴコンセンサスアルゴリズムの少なくとも１つのアルゴリズムを含む。そのうち、プルーフオブワーク（Ｐｒｏｏｆ  Ｏｆ  Ｗｏｒｋ：ＰＯＷ）コンセンサスアルゴリズムは、例えば、ビットコインにより使用されており、主にパブリックチェーンで使用される。プルーフオブステーク（Ｐｒｏｏｆ  Ｏｆ  Ｓｔａｋｅ：ＰＯＳ）コンセンサスアルゴリズムは、エテリアムによって使用されており、主にパブリックチェーンで使用される。委任プルーフオブステーク（Ｄｅｌｅｇａｔｅｄ  Ｐｒｏｏｆ  ｏｆ  Ｓｔａｋｅ：：ＤＰＯＳ）コンセンサスアルゴリズムは、ＰＯＳコンセンサスアルゴリズムの変種であり、主にパブリックチェーンで使用される。実用的ビザンチン・フォールト・トレランス（Ｐｒａｃｔｉｃａｌ  Ｂｙｚａｎｔｉｎｅ  Ｆａｕｌｔ  Ｔｏｌｅｒａｎｃｅ：ＰＢＦＴ）コンセンサスアルゴリズムは、主にアライアンスチェーンで使用される。２０１４年に新たに提出された分散型コンセンサスアルゴリズムであるＢＦＴ−ＲＡＦＴコンセンサスアルゴリズムは、ＰＢＦＴに似ており、主に分散型システムやアライアンスチェーンで使用される。
【００１８】
本発明に係る一つの実施形態において、作成されたローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムに関する情報は、作成されたローカルコンセンサスのインスタンス上で実行されるサービスの要件およびブロックチェーンがサポートするコンセンサスアルゴリズムに従って決定される。
【００１９】
本発明に係る一つの実施形態において、方法は以下のステップを更に含む：ローカルコンセンサスのインスタンスは、ローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムのタイプによって、１つまたは複数の通信チャネルを作成する。本発明に係る一つの実施形態において、方法は以下のステップを更に含む：作成されたローカルコンセンサスのインスタンスは、他のノードにより送信されたメッセージを受信して処理するためのメッセージ処理スレッドを起動する。
【００２０】
本発明に係る一つの実施形態において、方法は以下のステップを更に含む：
【００２１】
ローカルコンセンサスのインスタンス上で実行されるサービスの要件が満足された後、ブロックチェーン内のすべてのノードに対して、ローカルコンセンサスのインスタンスを削除するための第２のトランザクションコマンドをブロードキャストする；
【００２２】
ブロックチェーン内のすべてのノードは、第２のトランザクションコマンドに応答してローカルコンセンサスのインスタンスを削除する。
【００２３】
このような形態によれば、ローカルコンセンサスのインスタンス上で実行されるサービスの要件が満足された後、ブロックチェーンの管理者は、即時にこのローカルコンセンサスインスタンスを削除できるので、対応するネットワークリソースをリリースし、ブロックチェーンネットワークリソースを最適に利用することができる。
【００２４】
本発明に係る一つの実施形態において、複数のノードの初期化を実現するステップは更に以下のステップを含む：
【００２５】
複数のノードに対して、ネットワークのアドレスとポートを設定する；
【００２６】
ノードの公開鍵と秘密鍵を生成する；および
【００２７】
ノードのブロックチェーンプログラムを起動して実行する。
【００２８】
また、本発明に係る第２の形態では、有形のコンピュータ可読記憶媒体を提供する。記憶媒体は命令を含み、命令は、実行されたときに、コンピュータのプロセッサに、少なくとも以下のステップを実行させる：
【００２９】
複数のノードの初期化を実現する；および
【００３０】
複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成する。
【００３１】
本発明に係る一つの実施形態において、複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成するステップは更に以下のステップを含む：
【００３２】
作成されたローカルコンセンサスのインスタンス上で実行されるサービスの要件に従って、複数のノードから１組のノードを選択する；
【００３３】
複数のノードの中の１つのノードを介して、ブロックチェーン内のすべてのノードに対して、ローカルコンセンサスのインスタンスを生成するための第１のトランザクションコマンドをブロードキャストする；および
【００３４】
ブロックチェーン内のすべてのノードは、第１のトランザクションコマンドに応答して、ローカルコンセンサスのインスタンスを作成する。
【００３５】
本発明に係る一つの実施形態において、命令が実行されたときに、コンピュータのプロセッサは更に以下のことに使用される：
【００３６】
ローカルコンセンサスのインスタンス上で実行されるサービスの要件が満足された後、ブロックチェーン内のすべてのノードに対して、ローカルコンセンサスのインスタンスを削除するための第２のトランザクションコマンドをブロードキャストする；および
【００３７】
ブロックチェーン内のすべてのノードは、第２のトランザクションコマンドに応答してローカルコンセンサスのインスタンスを削除する。
【００３８】
最後に、本発明に係る第３の形態では、ブロックチェーンに基づくローカルコンセンサスを設定するための装置を提供し、装置は以下のモジュールを含む：
【００３９】
複数のノードの初期化を実現するように構成される初期化モジュール；および
【００４０】
複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成するように構成されるローカルコンセンサス設定モジュール。
【００４１】
本発明に係る一つの実施形態において、ローカルコンセンサス設定モジュールは更に以下のように構成される：
【００４２】
作成されたローカルコンセンサスのインスタンス上で実行されるサービスの要件に従って、複数のノードから１組のノードを選択する；
【００４３】
複数のノードの中の１つのノードを介して、ブロックチェーン内のすべてのノードに対して、ローカルコンセンサスのインスタンスを生成するための第１のトランザクションコマンドをブロードキャストする；および
【００４４】
ブロックチェーン内のすべてのノードは、第１のトランザクションコマンドに応答して、ローカルコンセンサスのインスタンスを作成する。
【００４５】
本発明に係る一つの実施形態において、第１のトランザクションコマンドは、１組のノードのノードリストを示すための情報、ブロックチェーンの管理者が指定したローカルコンセンサスの識別子に関する情報、および作成されたローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムに関する情報を含む。
【００４６】
本発明に係る一つの実施形態において、コンセンサスアルゴリズムは下記の少なくとも１つのアルゴリズムを含む：
【００４７】
プルーフオブワークコンセンサスアルゴリズム；
【００４８】
プルーフオブステークコンセンサスアルゴリズム；
【００４９】
委任プルーフオブステークコンセンサスアルゴリズム；
【００５０】
実用的ビザンチン・フォールト・トレランス・コンセンサスアルゴリズム；および／または
【００５１】
ＢＦＴ−ＲＡＦＴコンセンサスアルゴリズム。
【００５２】
本発明に係る一つの実施形態において、作成されたローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムに関する情報は、作成されたローカルコンセンサスのインスタンス上で実行されるサービスの要件およびブロックチェーンがサポートするコンセンサスアルゴリズムに従って決定される。
【００５３】
本発明に係る一つの実施形態において、ローカルコンセンサス設定モジュールは更に以下のように構成される：
【００５４】
ローカルコンセンサスのインスタンス上で実行されるサービスの要件が満足された後、ブロックチェーン内のすべてのノードに対して、ローカルコンセンサスのインスタンスを削除するための第２のトランザクションコマンドをブロードキャストする；および
【００５５】
ブロックチェーン内のすべてのノードは、第２のトランザクションコマンドに応答してローカルコンセンサスのインスタンスを削除する。
【００５６】
本発明に係るブロックチェーンに基づくローカルコンセンサスを設定するための方法、装置およびこれに対応するコンピュータ可読記憶媒体によっては、ブロックチェーンを構成する複数のノードから、一部の関連ノードを選択することができる。これにより、選択されたノード間には、ローカルコンセンサスのインスタンスが作成される。そして、ローカルコンセンサスのインスタンスは、所望のコンセンサスアルゴリズムを選択して実現されるように保証し、ネットワークサービスを最適化し、ネットワークサービスの品質を向上させる。
【図面の簡単な説明】
【００５７】
本発明の各実施形態における特徴、利点、および他の態様は、図面と合わせて下記詳細な説明を参照して、より明らかになる。ここで、本発明のいくつかの実施形態は、限定ではなく例示として示されている。図面において：
【００５８】
【図１】図１は従来技術におけるブロックチェーンのネットワーク構造１００の概略図である。
【００５９】
【図２】図２は本発明に係るブロックチェーンのネットワーク構造２００の概略図である。
【００６０】
【図３】図３は本発明に係るブロックチェーンに基づくローカルコンセンサスを設定するための方法３００のフローチャートである。
【００６１】
【図４】図４は本発明に係るブロックチェーンに基づくローカルコンセンサスを設定するための装置４００の概略図である。
【００６２】
【図５】図５は本発明に係る複数のローカルコンセンサスを実施する実施形態５００の概略図を示す。
【発明を実施するための形態】
【００６３】
以下、図面を参照して本発明の例示的な各実施形態を詳細に説明する。図面におけるフローチャートおよびブロック図は、本発明の各実施形態に係る方法およびシステムの可能なシステムアーキテクチャ、機能、および動作を示す。留意すべきことには、フローチャートまたはブロック図におけるそれぞれのボックスは、モジュール、プログラムセグメント、またはコードの一部を表すことができる。モジュール、プログラムセグメント、またはコードの一部は、各実施形態で特定された論理機能を実現するための１つまたは複数の実行可能命令を含むことができる。更に留意すべきことには、また、いくつかの代替の実施形態では、ボックスに記載された機能は、図面に示された順序とは異なる順序で行われてもよい。例えば、連続して図示されている二つのボックスは、実際に実質的に同時に実行されてもよく、または時には逆の順序で実行されてもよい。これは関連する機能に依存する。同様に留意すべきことには、フローチャートおよび／またはブロック図における各ボックス、ならびにフローチャートおよび／またはブロック図におけるボックスの組み合わせは、特定された機能または動作を実行する専用のハードウェアベースのシステムを使用して実施することができるし、あるいは、専用のハードウェアとコンピュータ命令との組み合わせで実現することもできる。
【００６４】
本明細書で使用する用語「含む」、「備える」などの類似の用語は、開放的な用語を意味すると理解されるべきであり、すなわち、「含む／備えるが、これに限定されない」であり、他の内容も含まれることを意味する。用語「基づく」は、「少なくとも部分的に基づく」を意味する。用語「実施形態」は、「少なくとも１つの実施形態」を意味する。用語「別の実施形態」は、「少なくとも１つの別の実施形態」を意味する。
【００６５】
当業者にとって知られている技術、方法および装置は、詳細に説明しないかもしれない。必要に応じて、技術、方法および装置は、明細書の一部として見なされるべきである。図中の各部間の接続線は、説明の便宜上、少なくとも接続線の両端にあるユニットが相互通信していることを示しており、接続されていないユニット間の通信を制限するものではない。
【００６６】
図１は従来技術におけるブロックチェーンのネットワーク構造１００の概略図である。図１から分かるように、ブロックチェーンプラットフォーム１００は、ネットワークによって接続された端末１０１、１０２、１０３、１０４、１０５、１０６、１０７、１０８、および１０９を含むが、これらに限定されない。そのうち、端末１０１、１０３、１０４は、無線ネットワークを介して他のブロックチェーン端末と接続されている。端子１０２、１０５、１０６、１０７、１０８、１０９は、有線ネットワークを介して他のブロックチェーン端末に接続されている。しかしながら、このようなブロックチェーンプラットフォームには、以下の技術的問題が存在する。つまり、現在市販されているブロックチェーンプラットフォームは、基本的に単一のコンセンサスアルゴリズムをサポートしているため、プラグイン可能な操作をサポートするコンセンサスモジュールであっても、一つだけのコンセンサスアルゴリズムを同時に実行することはできる。このため、既存のブロックチェーンプラットフォームは、柔軟性に乏しく、複数の異なるサービスシナリオを同時に満たすことができない。これに対応する現実の要求としては、特定のシナリオで、特定のブロックチェーンサービスを実行するために、ノードの一つのサブセットを選択して一つのサブチェーンを形成する必要がある。関連性のない他のノードはメッセージを受信できない。このような状況は、既存のブロックチェーンプラットフォームにおいて、まだ実現できていない。
【００６７】
なお、具体的なブロックチェーンプラットフォームに対して選択したコンセンサスアルゴリズムも異なる。技術指標から見て、異なるコンセンサスアルゴリズムは、システム可用性、スケーラビリティ、およびコンセンサス確認速度などの指標に大きな違いがある。すべてのシナリオを満たす完璧なコンセンサスアルゴリズムは、存在していない。そのため、実際のブロックチェーンプラクティスでは、実際の利用シナリオや技術指標に応じて適切なコンセンサスアルゴリズムを選択する必要がある。
【００６８】
本発明の研究者は、研究によって以下のことを見出した。大規模なブロックチェーンプラットフォーム上では、これらのノードから、サービスの要件に応じて特定のサービスに参加する必要のある関連ノードを選択して、これらの関連ノード間でローカルコンセンサスのインスタンスを作成することができる。これにより、このローカルコンセンサスのインスタンス間の通信のセキュリティとプライバシーを保証することができる。なお、このローカルコンセンサスのインスタンスに対して、個別にコンセンサスアルゴリズムを選択することができる。これにより、このローカルコンセンサスのインスタンス上で実行されるコンセンサスアルゴリズムの選択は、より標的であり、ひいてはブロックチェーンの動作を最適化することができる。
【００６９】
以下、図２を参照して本発明の思想を説明する。例えば、図１に示すブロックチェーンプラットフォームでは、銀行顧客Ａ（すなわち、図示のノード２０１）、保険顧客Ｂ（図示のノード２０６）、および保険顧客Ｃ（図示のノード２０８）のためにサブチェーン（即ちローカルコンセンサスのインスタンス）を作成する必要がある。この場合、このブロックチェーンの管理者は、このローカルコンセンサスのインスタンスの識別子（例えば、「会計プラットフォーム」）を指定し、このローカルコンセンサスのインスタンスのために、サービス要件によって、それらのノードから、特定のサービスに参加する必要がある関連ノード（すなわち、ボックス２２０によって表されるノード２０１、２０６、および２０８）を選択し、このローカルコンセンサスのインスタンスに対応するコンセンサスアルゴリズム（例えば、実用的ビザンチン・フォールトトレラント・コンセンサスアルゴリズム）を選択することができる。しかしながら、当業者にとって理解すべきことには、ここにおけるローカルコンセンサスのインスタンスの識別子、選択された関連ノード（即ち、ノード２０１、２０６、２０８）、および選択された実用的ビザンチン・フォールト・トレラント・コンセンサスアルゴリズムは、いずれも、例示的なものであり、制限的なものではない。要件を満たす場合、他のノードや他のコンセンサスアルゴリズムを選択したり、他のローカルコンセンサスのインスタンスの識別子を指定したりすることも可能である。次に、ブロックチェーン管理者は、いずれか１個のノードを介して、ブロックチェーン内のすべてのノードに対して、ローカルコンセンサスのインスタンスを作成するための第１のトランザクションコマンドをブロードキャストする。そして、このブロックチェーン内のすべてのノードは、上記第１のトランザクションコマンドに応答してローカルコンセンサスのインスタンスを作成する。このように、本発明に係るローカルコンセンサスのインスタンスが作成されている。これから分かるように、第１のトランザクションコマンドは、１組のノードのノードリストを示すための情報（即ちノード２０１、２０６および２０８を示す情報）、ブロックチェーンの管理者が指定したローカルコンセンサスの識別子に関する情報（例えば、「会計プラットフォーム」に関する情報）、および作成されたローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムに関する情報（例えば、実用的ビザンチン・フォールト・トレラント・コンセンサスアルゴリズムに関する情報）を含む。本発明に係るブロックチェーンに基づくローカルコンセンサスを設定するための方法によっては、ブロックチェーンを構成する複数のノードから、一部の関連ノードを選択することができる。これにより、選択されたノード間には、ローカルコンセンサスのインスタンスが作成される。そして、ローカルコンセンサスのインスタンスは、所望のコンセンサスアルゴリズムを選択して実現されるように保証し、ネットワークサービスを最適化し、ネットワークサービスの品質を向上させる。
【００７０】
ローカルコンセンサスのインスタンスは、作成された後、ローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムのタイプ（例えば、実用的ビザンチン・フォールト・トレランス・コンセンサスアルゴリズム）によって、１つまたは複数の通信チャネルを作成する。次に、作成されたローカルコンセンサスのインスタンスは、他のノードにより送信されたメッセージを受信して処理するためのメッセージ処理スレッドを起動する。ローカルコンセンサスのインスタンス上で実行されるサービスの要件が満足された後、ブロックチェーン内のすべてのノードに対して、ローカルコンセンサスのインスタンスを削除するための第２のトランザクションコマンドをブロードキャストする。ブロックチェーン内のすべてのノードは、第２のトランザクションコマンドに応答してローカルコンセンサスのインスタンスを削除する。このような形態によれば、ローカルコンセンサスのインスタンス上で実行されるサービスの要件が満足された後、ブロックチェーンの管理者は、即時にこのローカルコンセンサスインスタンスを削除できるので、対応するネットワークリソースをリリースし、ブロックチェーンネットワークリソースを最適に利用することができる。
【００７１】
以下、図３を参照して、本発明に係るブロックチェーンに基づくローカルコンセンサスを設定するための方法３００を更に説明する。この方法３００は以下のステップを含む。つまり、先ずは、方法のステップ３１０において、複数のノードの初期化を実現する。次に、方法のステップ３２０において、複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成する。一つの実施形態において、方法のステップ３２０は更に、作成されたローカルコンセンサスのインスタンス上で実行されるサービスの要件に従って、複数のノードから１組のノードを選択するステップと、複数のノードの中の１つのノードを介して、ブロックチェーン内のすべてのノードに対してローカルコンセンサスのインスタンスを生成するための第１のトランザクションコマンドをブロードキャストするステップと、ブロックチェーン内のすべてのノードが第１のトランザクションコマンドに応答してローカルコンセンサスのインスタンスを作成するステップと、を含む。第１のトランザクションコマンドは、１組のノードのノードリストを示すための情報、ブロックチェーンの管理者が指定したローカルコンセンサスの識別子に関する情報、および作成されたローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムに関する情報を含む。そのうち、方法のステップ３１０は更に、複数のノードに対して、ネットワークのアドレスとポートを設定するステップと、ノードの公開鍵と秘密鍵を生成するステップと、ノードのブロックチェーンプログラムを起動して実行するステップとを含む。
【００７２】
上述したコンセンサスアルゴリズムは下記の少なくとも１つのアルゴリズムを含む：プルーフオブワークコンセンサスアルゴリズム、プルーフオブステークコンセンサスアルゴリズム；委任プルーフオブステークコンセンサスアルゴリズム、実用的ビザンチン・フォールト・トレランス・コンセンサスアルゴリズム、および／またはＢＦＴ−ＲＡＦＴコンセンサスアルゴリズム。そのうち、プルーフオブワーク（Ｐｒｏｏｆ  Ｏｆ  Ｗｏｒｋ：ＰＯＷ）コンセンサスアルゴリズムは、たとえば、ビットコインにより使用されており、主にパブリックチェーンで使用される。プルーフオブステーク（Ｐｒｏｏｆ  Ｏｆ  Ｓｔａｋｅ：ＰＯＳ）コンセンサスアルゴリズムは、エテリアムよって使用されており、主にパブリックチェーンで使用される。委任プルーフオブステーク（Ｄｅｌｅｇａｔｅｄ  Ｐｒｏｏｆ  ｏｆ  Ｓｔａｋｅ：：ＤＰＯＳ）コンセンサスアルゴリズムは、ＰＯＳコンセンサスアルゴリズムの変種であり、主にパブリックチェーンで使用される。実用的ビザンチン・フォールト・トレランス（Ｐｒａｃｔｉｃａｌ  Ｂｙｚａｎｔｉｎｅ  Ｆａｕｌｔ  Ｔｏｌｅｒａｎｃｅ：ＰＢＦＴ）コンセンサスアルゴリズムは、主にアライアンスチェーンで使用される。２０１４年に新たに提出された分散型コンセンサスアルゴリズムであるＢＦＴ−ＲＡＦＴコンセンサスアルゴリズムは、ＰＢＦＴに似ており、主に分散型システムやアライアンスチェーンで使用される。
【００７３】
より具体的には、作成されたローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムに関する情報は、作成すべきローカルコンセンサスのインスタンス上で実行されるサービス要件およびブロックチェーンによってサポートされるコンセンサスアルゴリズムに従って決定される。
【００７４】
上述した設定方法は、有形のコンピュータ可読記憶媒体によって実現されることができる。記憶媒体は命令を含み、命令は、実行されたときに、コンピュータのプロセッサに、少なくとも複数のノードの初期化を実現するステップと複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成するステップとを実行させる。また、命令は、実行されたときに、更にコンピュータのプロセッサに、作成されたローカルコンセンサスのインスタンス上で実行されるサービスの要件に従って複数のノードから１組のノードを選択するステップと、複数のノードの中の１つのノードを介してブロックチェーン内のすべてのノードに対してローカルコンセンサスのインスタンスを生成するための第１のトランザクションコマンドをブロードキャストするステップと、ブロックチェーン内のすべてのノードが第１のトランザクションコマンドに応答してローカルコンセンサスのインスタンスを作成するステップとを、実行させる。本発明に係る一つの実施形態において、命令は、実行されたときに、コンピュータのプロセッサに更に、ローカルコンセンサスのインスタンス上で実行されるサービスの要件が満足された後、ブロックチェーン内のすべてのノードに対してローカルコンセンサスのインスタンスを削除するための第２のトランザクションコマンドをブロードキャストするステップと、ブロックチェーン内のすべてのノードが第２のトランザクションコマンドに応答してローカルコンセンサスのインスタンスを削除するステップとを、実行させる。
【００７５】
あるいは、上述した設定方法は、コンピュータプログラム製品によって実現することができる。コンピュータプログラム製品は、本発明に係る各態様を実行するためのコンピュータ可読プログラム命令を記憶するコンピュータ可読記憶媒体を含むことができる。コンピュータ可読記憶媒体は、命令実行装置により使用される命令を格納して記憶できる有形の機器であってもよい。コンピュータ可読記憶媒体は、例えば、限定されるものではないが、電気記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはこれらの任意の適切な組み合わせであってもよい。コンピュータ可読記憶媒体のより具体的な適用例（非限定的なリスト）は、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ポータブルコンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリスティック、フロッピーディスク、機械コード装置（例えば、命令が格納されているパンチカードまたは凹部内の隆起構造）、および上記の任意の適切な組み合わせを含んでもよい。ここで使用されるコンピュータ可読記憶媒体は、無線電波または他の自由に伝播する電磁波、導波管または他の伝送媒体を通って伝播する電磁波（例えば、光ファイバケーブルを通る光パルス）、またはワイヤを通って伝播する電気信号などの瞬時信号自体として解釈されるべきではない。
【００７６】
図４は、本発明に係るブロックチェーンに基づくローカルコンセンサスを設定するための装置４００の概略図である。図面から分かるように、ブロックチェーンに基づくローカルコンセンサスを設定するための装置４００は初期化モジュール４１０を含む。この初期化モジュール４１０は、複数のノードの初期化を実現するように構成される。また、ブロックチェーンに基づくローカルコンセンサスを設定するための装置４００は更にローカルコンセンサス設定モジュール４２０を含む。このローカルコンセンサス設定モジュール４２０は、複数のノードから選択された１組のノードに対してローカルコンセンサスのインスタンスを作成するように構成される。また、ローカルコンセンサス設定モジュール４２０は更に、作成されたローカルコンセンサスのインスタンス上で実行されるサービスの要件に従って、複数のノードから１組のノードを選択するように構成され、複数のノードの中の１つのノードを介してブロックチェーン内のすべてのノードに対してローカルコンセンサスのインスタンスを生成するための第１のトランザクションコマンドをブロードキャストするように構成され、ブロックチェーン内のすべてのノードは、第１のトランザクションコマンドに応答してローカルコンセンサスのインスタンスを作成するように構成されてもよい。この第１のトランザクションコマンドは、１組のノードのノードリストを示すための情報、ブロックチェーンの管理者が指定したローカルコンセンサスの識別子に関する情報、および作成されたローカルコンセンサスのインスタンスにより使用されるコンセンサスアルゴリズムに関する情報を含む。コンセンサスアルゴリズムは、下記の少なくとも１つのアルゴリズムを含む：プルーフオブワークコンセンサスアルゴリズム、プルーフオブステークコンセンサスアルゴリズム、委任プルーフオブステークコンセンサスアルゴリズム、実用的ビザンチン・フォールト・トレランス・コンセンサスアルゴリズム、および／またはＢＦＴ−ＲＡＦＴコンセンサスアルゴリズム。本発明に係る実施形態において、コンピュータのプロセッサは更に、ローカルコンセンサスのインスタンス上で実行されるサービスの要件が満足された後、ブロックチェーン内のすべてのノードに対してローカルコンセンサスのインスタンスを削除するための第２のトランザクションコマンドをブロードキャストするように構成され、ブロックチェーン内のすべてのノードが第２のトランザクションコマンドに応答してローカルコンセンサスのインスタンスを削除するように構成される。
【００７７】
本発明に係るブロックチェーンに基づくローカルコンセンサスを設定するための方法、装置および対応するコンピュータ可読記憶媒体によっては、ブロックチェーンを構成する複数のノードから一部の関連ノードを選択することができる。これにより、選択されたノード間にはローカルコンセンサスのインスタンスが作成される。そして、ローカルコンセンサスのインスタンスは、所望のコンセンサスアルゴリズムを選択して実現されるように保証し、ネットワークサービスを最適化し、ネットワークサービスの品質を向上させる。
【００７８】
以下、図５を参照して、本発明に係る方法に従って実施された複数のローカルコンセンサスの実施形態５００をさらに説明する。図面から分かるように、伝送層５１０上には、ピアツーピアネットワーク接続層があり、ノード間の物理的接続を維持する役割を担う。ノード層５２０は、それぞれのノードのネットワークアドレス、ポート、公開鍵および秘密鍵の情報を維持し、ハンドシェイク、署名、およびチェック処理を完了するのに使用される。その後、チャネル層５３０上には、複数のチャネルを作成することができる。複数のノード間では、同じＩＤを持つチャネルだけが互いに通信できる。それぞれのローカルコンセンサスのインスタンスは、チャネルを動的に作成または削除することができる。ぞれぞれのチャネルのＩＤは繰り返すことができない。つまり、それぞれのチャネルのＩＤは唯一である。コンセンサスアルゴリズム層では、それぞれのコンセンサスアルゴリズムは、ノードセットを指定し、他のノードの対応するチャネルと通信したり、受信したチャネルメッセージを処理したりするために、１つまたは複数のチャネルを作成する。さらに、作成されたコンセンサスアルゴリズム（例えば、第１のローカルコンセンサス５４１、第２のローカルコンセンサス５４２、第３のローカルコンセンサス５４３、および第４のローカルコンセンサス５４４）は、動的に作成、変更、および／または削除されてもよい。
【００７９】
ネットワーク構築の観点からは、ローカルコンセンサスインスタンスを作成するのは２つの段階を含む。第１段階では、複数のノードの初期化を実現する。複数のノードの初期化を実現するのは、ノードのネットワークのアドレスとポートを設定することと、ノードの公開鍵と秘密鍵を生成してノードのブロックチェーンプログラムを起動して実行することとを含む。第２段階では、ローカルコンセンサスを起動する。ローカルコンセンサスを起動するのは、ローカルコンセンサスの文字列ＩＤを決定することを含む。このＩＤは繰り返すことができない。次に、ローカルコンセンサスに参加するノードセットとコンセンサスアルゴリズムを決定する。留意すべきことには、コンセンサスアルゴリズムは、プラットフォームがサポートするアルゴリズムでなければならない。次に、管理者として、ローカルコンセンサストランザクション作成コマンドを開始し、同時にローカルコンセンサスの文字列ＩＤ、ノードセット、およびコンセンサスアルゴリズムを提出する。このトランザクションは、ネットワーク全体によって確認されると、選択されたノードで、ローカルコンセンサスのインスタンスを自動的に作成して起動する。新たに作成されたローカルコンセンサスのインスタンスは、互いに通信するための１つまたは複数の通信チャネル（ｃｈａｎｎｅｌ）を作成する。そして、新たに作成されたローカルコンセンサスは、メッセージ処理スレッドを起動し、他のノードにより送信されたメッセージを受信して処理する。最後に、ローカルコンセンサスがタスクを完成して停止しようとする場合は、管理者としてローカルコンセンサストランザクション削除コマンドを開始すればよい。
【００８０】
従来技術と比べて、本発明に係る方法は以下の利点を有する。
【００８１】
最初に、本方法は、再配置や再起動なしに新しいローカルコンセンサスを起動／停止することができる。ローカルコンセンサスに参加するノードを選択して、適切なコンセンサスアルゴリズムを選択して、プラットフォームによって提供されたローカルコンセンサス作成コマンドを通じて、動的に作成して使用すればよい。不要となるとき、プラットフォームによって提供されたローカルコンセンサス停止コマンドを通じて、指定されたローカルコンセンサスを停止すればよい。
【００８２】
本方法は、複数のローカルコンセンサスが同時に作動することを同時にサポートすることができる。そして、ローカルコンセンサスの間では、論理的に完全に分離されて互いに影響を及ぼさない。つまり、ローカルコンセンサスの間では、互いに見えない。そのため、異なるローカルコンセンサスは、完全に異なるコンセンサスアルゴリズムを任意に選択できるので、より大きな柔軟性を有する。
【００８３】
最後に、本方法によりサポートされているローカルコンセンサスは、完全に異なるノードセットを自由に選択することができる。それぞれのローカルコンセンサスのメッセージは、指定されたノードセット間で伝達されるように厳密に制限され、無関係な他のノードはコンセンサスメッセージを受信することができないので、より良いプライバシーを有する。一部のノードが小規模のブロックチェーンのアプリケーションシナリオを実行する場合の要件をよく満たすことができるため、データのプライバシーとセキュリティは、より強くなる。
【００８４】
留意すべきことには、上記内容における詳細な説明で機器のいくつかの装置またはサブ装置が言及されているが、そのような分割は、単なる例示であり、必須ではない。実際には、本発明の実施形態によって、上述した２つ以上の装置の特徴および機能は、１つの装置内に具体化されてもよい。一方、上述した１つの装置の特徴および機能は、複数の装置により具体化されるように分割してもよい。
【００８５】
上記内容は、本発明に係る実施形態の選択的な実施形態に過ぎず、本発明の実施形態を限定するものではない。当業者にとって、本発明に係る実施形態では様々な変更や修正が可能である。本発明に係る実施形態の趣旨と範囲内で行ったすべての構成や均等置換や改善などは、いずれも本発明に係る実施形態の範囲内に含まれるべきである。
【００８６】
本発明の実施形態は、いくつの特定の実施形態を参照して説明されたが、理解すべきことには、本発明の実施形態は、開示された特定の実施形態に限定されない。本発明の実施形態は、添付した特許請求の範囲による趣旨と範囲内の様々な変更や均等配置をカバーすることを意図する。添付した特許請求の範囲は、最も広い解釈と一致するので、すべてのそのような変更および均等の構造や機能を含む。
【図１】
2019526945.tif 000003
【図２】
2019526945.tif 000004
【図３】
2019526945.tif 000005
【図４】
2019526945.tif 000006
【図５】
2019526945.tif 000007
【国際調査報告】
2019526945.tif 000008
2019526945.tif 000009
2019526945.tif 000010
2019526945.tif 000011