(57)【要約】  代表ノード装置の選出方法は、投票トランザクションデータを取得するステップであって、前記投票トランザクションデータは、ブロックチェーンシステムにおける少なくとも１つのノード装置に投票するためものであるステップと、ブロックチェーンシステムにおける複数のノード装置による投票トランザクションデータの合意がなされると、投票トランザクションデータをブロックチェーンシステムのターゲットブロックチェーンに記憶するステップと、ターゲットブロックチェーンにおいて生成されたブロックの数が所定数になると、投票トランザクションデータによって決定された各ノード装置の得票数に基づいて、選出結果を決定するステップであって、前記選出結果は、ブロックチェーンシステムにおける、ブロックを生成しブロックに対して合意形成を行う複数の代表ノード装置を含むステップとを含む。【選択図】図２
2021524967.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンシステムにおけるいずれかのノード装置である第１のノード装置が実行する代表ノード装置の選出方法であって、
投票トランザクションデータを取得するステップであって、前記投票トランザクションデータは、前記ブロックチェーンシステムにおける少なくとも１つのノード装置に投票するためのものであるステップと、
前記ブロックチェーンシステムにおける複数のノード装置による前記投票トランザクションデータの合意がなされると、前記投票トランザクションデータを前記ブロックチェーンシステムのターゲットブロックチェーンに記憶するステップと、
前記ターゲットブロックチェーンにおいて生成されたブロックの数が所定数になると、前記投票トランザクションデータによって決定された各ノード装置の得票数に基づいて、選出結果を決定するステップであって、前記選出結果は、前記ブロックチェーンシステムにおける複数の代表ノード装置を含み、前記代表ノード装置は、ブロックを生成しブロックに対して合意形成を行うものであるステップとを含む、方法。
【請求項２】
前記投票トランザクションデータによって決定された各ノード装置の得票数に基づいて、選出結果を決定する前記ステップは、
前記ターゲットブロックチェーンの各ブロックから、複数の第１のブロックを決定するステップであって、前記複数の第１のブロックは、各ノード装置の投票トランザクションデータを記憶するものであるステップと、
前記複数の第１のブロックに記憶された投票トランザクションデータに基づいて、前記ブロックチェーンシステムにおける所定数の代表ノード装置を決定するステップとを含む、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記複数の第１のブロックに記憶された投票トランザクションデータに基づいて、前記ブロックチェーンシステムにおける所定数の代表ノード装置を決定する前記ステップは、
前記複数の第１のブロックに記憶された投票トランザクションデータに基づいて、前記ブロックチェーンシステムにおける各ノード装置の得票数を決定するステップと、
得票数の高い順に、前記ブロックチェーンシステムにおける所定数の代表ノード装置を決定するステップとを含む、ことを特徴とする請求項２に記載の方法。
【請求項４】
前記ブロックチェーンシステムにおける投票方式は増分投票であり、
前記複数の第１のブロックに記憶された投票トランザクションデータに基づいて、前記ブロックチェーンシステムにおける各ノード装置の得票数を決定する前記ステップは、
前記複数の第１のブロックに記憶された各ユーザのトランザクションデータに基づいて、前記ブロックチェーンシステムにおける各ノード装置の得票数を決定するステップを含む、ことを特徴とする請求項３に記載の方法。
【請求項５】
前記ブロックチェーンシステムにおける投票方式は全量投票であり、
前記複数の第１のブロックに記憶された投票トランザクションデータに基づいて、前記ブロックチェーンシステムにおける各ノード装置の得票数を決定する前記ステップは、
前記複数の第１のブロックに記憶されたトランザクションデータから、各ユーザによって最後に投票されたトランザクションデータを決定し、前記各ユーザによって最後に投票されたトランザクションデータに基づいて、前記ブロックチェーンシステムにおける各ノード装置の得票数を決定するステップを含む、ことを特徴とする請求項３に記載の方法。
【請求項６】
投票に参加する各ユーザの投票に重みが設定されている、ことを特徴とする請求項１に記載の方法。
【請求項７】
前記各ユーザの重みは、アカウント残高又はクレジット限度額を含むユーザパラメータに基づいて設定される、ことを特徴とする請求項６に記載の方法。
【請求項８】
前記ブロックチェーンシステムにおける複数のノード装置による前記投票トランザクションデータの合意がなされると、前記投票トランザクションデータに基づいて、前記ノード装置に記憶された投票リストを更新するステップであって、前記投票リストは、各ノード装置の得票数を記憶するためのものであるステップをさらに含む、ことを特徴とする請求項１に記載の方法。
【請求項９】
前記ブロックチェーンシステムにおける投票方式が全量投票である場合、
前記ノード装置に記憶された投票リストを更新する前記ステップは、
前記ターゲットブロックチェーンの各ブロックから、複数の第１のブロックを決定するステップであって、前記複数の第１のブロックは、各ノード装置の投票トランザクションデータを記憶するものであるステップと、
前記第１のブロックに記憶されたトランザクションデータから、各ユーザによって最後に投票されたトランザクションデータを決定し、前記各ユーザによって最後に投票されたトランザクションデータに基づいて、前記ノード装置に記憶された投票リストを更新するステップを含む、ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記ブロックチェーンシステムにおける投票方式が増分投票である場合、
前記ノード装置に記憶された投票リストを更新する前記ステップは、
前記ターゲットブロックチェーンの各ブロックから、複数の第１のブロックを決定するステップであって、前記複数の第１のブロックは、各ノード装置の投票トランザクションデータを記憶するものであるステップと、
前記第１のブロックに記憶された各ユーザの全ての投票トランザクションデータに基づいて、前記ノード装置に記憶された投票リストを更新するステップを含む、ことを特徴とする請求項８に記載の方法。
【請求項１１】
投票トランザクションデータを取得する第１の取得モジュールであって、前記投票トランザクションデータは、ブロックチェーンシステムにおける少なくとも１つのノード装置に投票するためのものである第１の取得モジュールと、
前記ブロックチェーンシステムにおける複数のノード装置による前記投票トランザクションデータの合意がなされると、前記投票トランザクションデータを前記ブロックチェーンシステムのターゲットブロックチェーンに記憶する記憶モジュールと、
前記ターゲットブロックチェーンにおいて生成されたブロックの数が所定数になると、前記投票トランザクションデータによって決定された各ノード装置の得票数に基づいて、選出結果を決定する決定モジュールであって、前記選出結果は、前記ブロックチェーンシステムにおける複数の代表ノード装置を含み、前記代表ノード装置は、ブロックを生成しブロックに対して合意形成を行うものである決定モジュールとを含む、ことを特徴とする代表ノード装置の選出装置。
【請求項１２】
プロセッサと、前記プロセッサによって実行されると、前記プロセッサに請求項１〜１０のうちのいずれか１項に記載の方法を実行させるコンピュータ読み取り可能な命令が記憶されているメモリと、を含む、ことを特徴とするコンピュータ装置。
【請求項１３】
コンピュータに請求項１〜１０のうちのいずれか１項に記載の方法のステップを実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１８年９月７日に提出された、出願番号が２０１８１１０４６２６７．９で、発明の名称が「代表ノード装置の選出方法、装置、コンピュータ装置及び記憶媒体」の中国特許出願の優先権を主張するものであり、その全ての内容は参照により本願に組み込まれるものとする。
【０００２】
本願は、ブロックチェーンの技術分野に関し、特に、代表ノード装置の選出方法、装置、コンピュータ装置及びコンピュータプログラムに関する。
【背景技術】
【０００３】
近年、ビットコインの価値が年々上昇しており、ブロックチェーン技術は、その基礎技術としてビットコインの価値上昇につれて、広く研究され適用されている。ブロックチェーンシステムは、複数のノード装置で構成され得るものであり、各ノード装置は、いずれもブロックを用いてトランザクションデータを記憶し、かつ時間順にブロックを順に接続する方式でチェーン型データ構造に構成することにより、ブロックチェーンシステムにおいて分散型台帳を形成することができる。
【０００４】
現在、ノード装置によるブロックの生成は、いずれかのノード装置にトランザクションが発生すると、該ノード装置はトランザクションデータを記録し、かつブロックチェーンシステムにおいて該トランザクションデータをブロードキャスト（放送）することにより、ブロックチェーンシステムにおけるノード装置は該トランザクションデータを受信することができ、ブロックチェーンシステムにおけるノード装置がトランザクションデータを受信すると、トランザクションデータをパケット化し新しいブロックを生成すると共に、合意メカニズムにより新しいブロックを検証することができ、新しいブロックの検証を通過すると、各ノード装置は該新しいブロックをノード装置に配置されたターゲットブロックチェーンに追加するプロセスであるとし得る。
【０００５】
上記ノード装置によるブロック生成において、ブロックチェーンシステムにおける各ノード装置は、いずれも新しいブロックを生成する必要があり、ブロックチェーンシステムにおけるノード装置の数が多いと、ブロックチェーンシステムの動作効率が低い。したがって、ブロックチェーンシステムの動作効率を向上させるために、全てのノード装置の代わりに、代表ノード装置がブロックを生成することが強く求められている。
【発明の概要】
【０００６】
本願の実施形態は、代表ノード装置の選出方法、装置、コンピュータ装置及びコンピュータプログラムを提供する。
【０００７】
ブロックチェーンシステムにおけるいずれかのノード装置である第１のノード装置が実行する代表ノード装置の選出方法は、
投票トランザクションデータを取得するステップであって、前記投票トランザクションデータは、前記ブロックチェーンシステムにおける少なくとも１つのノード装置に投票するためのものであるステップと、
前記ブロックチェーンシステムにおける複数のノード装置による前記投票トランザクションデータの合意がなされると、前記投票トランザクションデータを前記ブロックチェーンシステムのターゲットブロックチェーンに記憶するステップと、
前記ターゲットブロックチェーンにおいて生成されたブロックの数が所定数になると、前記投票トランザクションデータによって決定された各ノード装置の得票数に基づいて、選出結果を決定するステップであって、前記選出結果は、前記ブロックチェーンシステムにおける複数の代表ノード装置を含み、前記代表ノード装置は、ブロックを生成しブロックに対して合意形成を行うものであるステップとを含む。
【０００８】
代表ノード装置の選出装置は、
投票トランザクションデータを取得する第１の取得モジュールであって、前記投票トランザクションデータは、ブロックチェーンシステムにおける少なくとも１つのノード装置に投票するためのものである第１の取得モジュールと、
前記ブロックチェーンシステムにおける複数のノード装置による前記投票トランザクションデータの合意がなされると、前記投票トランザクションデータを前記ブロックチェーンシステムのターゲットブロックチェーンに記憶する記憶モジュールと、
前記ターゲットブロックチェーンにおいて生成されたブロックの数が所定数になると、前記投票トランザクションデータによって決定された各ノード装置の得票数に基づいて、選出結果を決定する決定モジュールであって、前記選出結果は、前記ブロックチェーンシステムにおける複数の代表ノード装置を含み、前記代表ノード装置は、ブロックを生成しブロックに対して合意形成を行うものである決定モジュールとを含む。
【０００９】
コンピュータ装置は、プロセッサと、前記プロセッサによって実行されると、前記プロセッサに、
投票トランザクションデータを取得するステップであって、前記投票トランザクションデータは、前記ブロックチェーンシステムにおける少なくとも１つのノード装置に投票するためのものであるステップと、
前記ブロックチェーンシステムにおける複数のノード装置による前記投票トランザクションデータの合意がなされると、前記投票トランザクションデータを前記ブロックチェーンシステムのターゲットブロックチェーンに記憶するステップと、
前記ターゲットブロックチェーンにおいて生成されたブロックの数が所定数になると、前記投票トランザクションデータによって決定された各ノード装置の得票数に基づいて、選出結果を決定するステップであって、前記選出結果は、前記ブロックチェーンシステムにおける複数の代表ノード装置を含み、前記代表ノード装置は、ブロックを生成しブロックに対して合意形成を行うものであるステップとを実行させる、コンピュータ読み取り可能な命令が記憶されているメモリとを含む、ことを特徴とする。
【００１０】
コンピュータプログラムであって、コンピュータに、
投票トランザクションデータを取得するステップであって、前記投票トランザクションデータは、前記ブロックチェーンシステムにおける少なくとも１つのノード装置に投票するためのものであるステップと、
前記ブロックチェーンシステムにおける複数のノード装置による前記投票トランザクションデータの合意がなされると、前記投票トランザクションデータを前記ブロックチェーンシステムのターゲットブロックチェーンに記憶するステップと、
前記ターゲットブロックチェーンにおいて生成されたブロックの数が所定数になると、前記投票トランザクションデータによって決定された各ノード装置の得票数に基づいて、選出結果を決定するステップであって、前記選出結果は、前記ブロックチェーンシステムにおける複数の代表ノード装置を含み、前記代表ノード装置は、ブロックを生成しブロックに対して合意形成を行うものであるステップとを実行させるコンピュータプログラム。
【００１１】
本願の１つ以上の実施形態の詳細は、以下の図面及び説明において提供される。本願の他の特徴、目的及び利点は、明細書、図面及び特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００１２】
以下、本願の実施形態における技術手段をより明確に説明するために、実施形態の説明に必要な図面を簡単に説明するが、以下の説明における図面は、本願のいくつかの実施形態に過ぎず、当業者であれば、創造的な労働をせずに、これらの図面に基づいて他の図面を得ることは明らかでる。
【図１】本願の実施形態に係るブロックチェーンシステムの構造概略図である。
【図２】本願の実施形態に係る代表ノード装置の選出方法のフローチャートである。
【図３】本願の実施形態に係る代表ノード装置の選出装置の構造概略図である。
【図４】本願の実施形態に係るサーバの構造概略図である。
【発明を実施するための形態】
【００１３】
以下、本願の目的、技術手段及び利点をより明確にするために、図面を参照しながら本願の実施形態をさらに詳細に説明する。
【００１４】
図１は、本願の実施形態に係るブロックチェーンシステムの構造概略図であり、図１を参照すると、該システムは複数のサーバを含む。
【００１５】
複数のサーバに同一のブロックチェーンが配置されることができ、つまり、該複数のサーバはブロックチェーンシステムを構成することができ、各サーバはそれぞれ該ブロックチェーンシステムにおけるノード装置である。該複数のサーバは同一機構の複数のサーバであってもよく、異なる機構に属する複数のサーバであってもよく、一般ユーザの複数のサーバであってもよい。
【００１６】
複数のサーバは、ブロックチェーンシステムにおけるノード装置として、いずれもトランザクションデータを受信できるが、ブロックチェーンシステムがトランザクションデータを記録する際、各ノード装置は用途が異なるため、代表ノード装置と非代表ノード装置とに分けられることができる。ここで、代表ノード装置は、ブロックを生成しブロックに対して合意形成を行い、非代表ノード装置は、代表ノード装置によって生成され合意されたブロックを受信し、ブロックを検証すると共に、検証を通過したブロックをターゲットブロックチェーンに記憶する。
【００１７】
例えば、ブロックチェーンシステムにおけるいずれかのノード装置がトランザクションデータを受信すると、該ノード装置は、他のノード装置が該トランザクションデータを受信するように、受信したトランザクションデータをブロックチェーンシステムにブロードキャストする。ブロックチェーンシステムにおける代表ノード装置が該トランザクションデータを受信すると、代表ノード装置はトランザクションデータに基づいてブロックを生成することにより、各代表ノード装置が該ブロックに対して合意形成を行い、代表ノード装置が該ブロックに合意すると、代表ノード装置はブロックチェーンシステムに該ブロックをブロードキャストし、非代表ノード装置が代表ノード装置によってブロードキャストされたブロックを受信すると、該ブロックを検証し、検証を通過した後、該ブロックを該非代表ノードに配置されたターゲットブロックチェーンに記憶する。
【００１８】
本願の実施形態に係る合意とは、ブロックチェーンシステムにおける複数のノード装置がデータをそれぞれ検証し、いずれかのノード装置の検証が通過されると、ブロックチェーンシステムに検証通過メッセージをブロードキャストし、いずれかのノード装置の受信した検証通過メッセージが所定の合意ポリシーに適合すると、該データを合意したと決定することを意味する。
【００１９】
例えば、合意がブロックチェーンシステムにおける代表ノード装置によって行われることを例として説明すると、該合意は、ＰＯＷ（ｐｒｏｏｆ  ｏｆ  ｗｏｒｋ、プルーフ・オブ・ワーク）メカニズムにより実現されてもよい。そのプロセスの説明は以下のとおりである。即ち、ブロックチェーンシステムにおける代表ノード装置はブロックを生成し、代表ノード装置は、該生成されたブロックのブロックヘッダーのハッシュ値を算出して、それが現在の目標値よりも小さいか否かを確認し、ハッシュ値が目標値よりも大きければ、代表ノード装置は該生成されたブロックにおける乱数を修正し、再算出し、代表ノード装置によって算出されたハッシュ値が目標値よりも小さいと、該代表ノード装置は他の代表ノード装置に該ブロックをブロードキャストし、ブロックチェーンシステムにもブロードキャストすることができ、他の代表ノード装置が該ブロックを受信して、検証し、多くの他の代表ノード装置がいずれも該ブロックの有効性を認めると、合意したことになる。
【００２０】
本願の実施形態に係るシステムによれば、ブロックチェーンシステムにおける全てのノード装置がブロックを生成する必要がなくなり、ブロックチェーンシステムにおけるほとんどのノード装置が生成されたブロックを合意した後、トランザクションデータを記憶できるか否かを検証する必要もなくなり、単に、代表ノードがブロックを生成し、ブロックを合意し、かつ非代表ノード装置が検証を完了すれば、トランザクションデータをブロックチェーンシステムに記憶することができるため、ブロックチェーンシステムの動作効率を向上させる。
【００２１】
そして、ブロックチェーンシステムにおける代表ノード装置の生成プロセスについて、ここで具体的な実施形態を参照しながら以下のように説明する。
【００２２】
図２は、本願の実施形態に係る代表ノード装置の選出方法のフローチャートであり、図２を参照すると、本願の実施形態に係る方法のフローは以下のステップＳ２０１〜Ｓ２０８を含む。
【００２３】
Ｓ２０１において、第１のノード装置はユーザの投票トランザクションデータを受信する。
【００２４】
ここで、ブロックチェーンシステムにおける第１のノード装置は、ブロックチェーンシステムにおけるいずれかのノード装置である。ユーザ装置が第１のノード装置に対して開始するトランザクションは、タイプに応じて投票トランザクションと他のトランザクションとを含んでもよい。
【００２５】
投票トランザクションデータは、トランザクションデータの１つとして、ユーザのブロックチェーンシステムにおける投票ターゲットに応じて生成されてもよく、いずれかのユーザがブロックチェーンシステムにおけるいずれかのノード装置において投票を開始すると、該ノード装置は投票トランザクションデータを取得し、また、該投票トランザクションデータは、トランザクションタイプ、被投票ノード装置リスト、及び投票ユーザ秘密鍵署名などを含んでもよい。
【００２６】
本願の実施形態では、ユーザがユーザ装置を用いて第１のノード装置に対して投票トランザクションを開始することを例とすると、ブロックチェーンシステムは、選出していないときにブロックチェーンシステムにおけるブロックの生成とブロックの合意を行うためのノード装置である初期代表ノード装置を決定し、該初期化段階で、初期代表ノード装置の公開鍵をブロックチェーンのジェネシスブロックに記憶することにより、ブロックチェーンシステムにおける各ノード装置がいずれも該初期代表ノード装置の、初期代表ノード装置の識別子を示す公開鍵を知ることができる。一実施形態では、合意アルゴリズムに必要であれば、また、初期化段階で、初期代表ノード装置のネットワークプロトコルアドレスも該ジェネシスブロックに記憶することにより、ブロックチェーンシステムにおける各ノード装置がいずれも該初期代表ノード装置のネットワークプロトコルアドレスを知ることができる。
【００２７】
なお、該公開鍵が初期代表ノード装置の識別子を示すこととは、第１回の選出中、該ブロックチェーンにおける初期代表ノード装置がジェネシスブロックに記憶された初期代表ノード装置の公開鍵から、自体が代表ノード装置であるという識別子を知ることができ、初期代表ノード装置が代表ノード状態での動作を行い、同様に非代表ノード装置もそれによって、自体の非代表ノード装置の識別子を知ることができ、これにより、非代表ノード装置が非代表ノード装置状態での動作を行うことを意味する。
【００２８】
Ｓ２０２において、第１のノード装置はブロックチェーンシステムに該投票トランザクションデータをブロードキャストする。
【００２９】
該ブロードキャストによりブロックチェーンシステムにおける全てのノード装置はいずれも該投票トランザクションデータを受信することができる。本願の実施形態では、第１のノード装置が、ユーザが該第１のノード装置に登録し、投票して生成された投票トランザクションデータを直接受信することを例として説明するが、一実施形態では、該第１のノード装置は、ユーザが他のノード装置に登録して投票した後、他のノード装置によってブロードキャストされた投票トランザクションデータを直接受信してもよく、本願の実施形態はこれを具体的に限定しない。
【００３０】
Ｓ２０３において、各第２のノード装置は投票トランザクションデータを受信する。
【００３１】
該第２のノード装置は、ブロックチェーンシステムにおける第１のノード装置以外のノード装置である。なお、本願の実施形態に係る「第１」、「第２」などの用語は、いずれも異なるノード装置を区別するためのものであり、ノード装置の機能を区別するためのものではない。
【００３２】
Ｓ２０４において、該ブロックチェーンシステムにおける複数のノード装置による該投票トランザクションデータの合意がなされると、該ブロックチェーンシステムにおける複数のノード装置は該投票トランザクションデータを該ブロックチェーンシステムのターゲットブロックチェーンに記憶する。
【００３３】
本願の実施形態の複数のノード装置が投票トランザクションデータを合意することとは、ブロックチェーンシステムにおける複数の代表ノード装置が該投票トランザクションデータを合意することであってもよい。第１回に選出を行うブロックチェーンシステムの場合、上述した初期代表ノード装置は、今回、合意プロセスに参加するノード装置とすることができ、その後に複数の代表ノード装置を選出した後、該選出された複数の代表ノード装置は代表ノード装置の動作状態に切り替えて、ブロックチェーンシステム全体のブロックの合意と生成プロセスに参加することができ、代表ノード装置として選出されていないノード装置は非代表ノード装置の状態で動作し、ブロックチェーンシステム全体のブロックの合意と生成プロセスに参加しない。ここで、本願の各実施形態に係る「複数」とは、「２つ以上」を意味する。
【００３４】
Ｓ２０５において、生成されたブロックの数が第１の所定数になると、第１のノード装置は該ターゲットブロックチェーンの各ブロックから、各ノード装置の投票トランザクションデータを記憶する複数の第１のブロックを決定する。
【００３５】
該ステップＳ２０５では、第１のノード装置は該ターゲットブロックチェーンの各ブロックから、投票トランザクションタイプに応じてクエリすることで、該投票トランザクションタイプが記憶されたブロックを第１のブロックとして取得する。
【００３６】
本願の実施形態では、ブロックチェーンシステム全体の動作中、複数回の選出を行うことにより、ある代表ノード装置の故障によるシステム動作の問題、例えば、ある代表ノード装置に装置の動作異常又は信用の問題などが現れる可能性があることを回避するため、代表ノード装置に基づくブロックチェーンシステムの安定的な作動を確保することができる。
【００３７】
該生成されたブロックが前回選出され生成されたブロックであり、生成されたブロックが第１の所定数になってこそ１回選出が可能という方式で、代表ノード装置の切替時間、即ち、代表ノード装置を１回切り替える時間間隔を確保することにより、代表ノード装置の頻繁な切替により、ブロックチェーンシステム全体の正常動作に影響を与えることを回避することができる。
【００３８】
理解できるように、該生成されたブロックは、投票トランザクションデータに基づいて生成されたブロックを含むだけでなく、他のトランザクションデータに基づいて生成されたブロックも含み、もちろん、投票トランザクションデータ及び他のトランザクションデータに基づいて生成されたブロックを含んでもよく、本願の実施形態は説明を省略する。
【００３９】
なお、ブロックチェーンシステムにおける各ノード装置は、いずれも上記ステップＳ２０５のプロセスを実行し、本願の実施形態は説明を省略する。
【００４０】
Ｓ２０６において、第１のノード装置は、該複数の第１のブロックに記憶された投票トランザクションデータに基づいて、該ブロックチェーンシステムにおける各ノード装置の得票数を決定する。
【００４１】
投票トランザクションデータは、トランザクションタイプ、被投票ノード装置リスト、及び投票ユーザ秘密鍵署名などを含むため、各第１のブロックに記憶された投票トランザクションデータに対して、どのノード装置がどれくらいの得票数を得たかを統計することができる。
【００４２】
本願の実施形態では、ブロックチェーンシステムにおける投票方式は、増分投票と全量投票との２種類の方式を含んでよく、増分投票とは、投票トランザクションにおいて投票されるノード装置を指定すると共に、履歴投票結果を保留することを意味する。例えば、ユーザがＡ、Ｂ及びＣの３つのノード装置に投票し、今回の投票ターゲットがＤノード装置であると、今回投票するときに、Ｄノード装置に直接投票し、その投票トランザクションデータにおける被投票ノード装置リストには該Ｄノード装置の装置公開鍵が担持されるべきであり、つまり、該ユーザは複数回の投票により、Ａ、Ｂ、Ｃ及びＤの４つのノード装置に投票した。
【００４３】
上記増分投票方式に基づいて、被投票ノード装置に投票撤回を行ってもよく、例えば、ユーザがＡ、Ｂ及びＣの３つのノード装置に投票し、次回にＣノード装置に対する投票を撤回しようとする場合、次回投票するときに、投票トランザクションデータにおいてＣノード装置に対する投票を撤回することを直接指定することができる。
【００４４】
全量投票とは、毎回のトランザクションにおいて投票されるノード装置を指定する必要があり、かつ前回の投票が無効になることを意味し、例えば、ユーザがＡノード装置及びＢノード装置に投票し、次回の投票ターゲットがＣノード装置及びＤノード装置であれば、ユーザは次回投票するときに、Ｃノード装置及びＤノード装置に投票することを指定する必要がある以外にも、ユーザのＡノード装置及びＢノード装置に対する前回の投票を直接カバーする必要がある。
【００４５】
一実施形態では、異なるユーザに投票の重みが対応して設定されてもよく、該重みは、ブロックチェーンシステムへの影響度を指示し、該ユーザの一票による全体的な選出への影響力を決定する。例えば、あるユーザの重みが５であれば、該ユーザは５つのノード装置に投票することができ、該ユーザが５票の投票権を有すると言うこともできる
一実施形態では、本願の実施形態は、具体的にどの段階で該重みを設定するかについて限定せず、例えば、該重みの設定は、得票数の統計時に行われてもよく、第１のノード装置が投票トランザクションデータを生成する時に決定されると共に該投票トランザクションデータに担持されてもよい。
【００４６】
一実施形態では、重みを設定するときに、異なるパラメータに基づいて設定してもよい。例えば、該パラメータは、ユーザのアカウント残高であってもよく、つまり、アカウント残高が多いほど、該ユーザの重みを大きく設定してもよい。また、例えば、該パラメータは、ユーザのクレジット限度額であってもよく、つまり、該ユーザのクレジット限度額が大きいほど、該ユーザの重みを大きく設定してもよい。
【００４７】
さらに、具体的にどのようなパラメータを用いて設定するかについては、ブロックチェーンシステムの適用ターゲットによって異なってもよい。例えば、ブロックチェーンシステムを一般業務に適用する場合に、ユーザのアカウント残高に基づいて重みを設定することができる。ブロックチェーンシステムを銀行業務に適用する場合に、ユーザのクレジット限度額に基づいて重みを設定することができる。
【００４８】
一実施形態では、さらに、投票ユーザを制限することにより、制限された投票ユーザは投票に参加できない。例えば、１つのブロックチェーンシステムにおいて、機構及び組織しか代表ノード装置に対する投票を開始できず、一般ユーザは投票できない。
【００４９】
なお、一実施形態では、該ブロックチェーンシステムは、各ユーザの持っている投票数、即ち、各ユーザが最も多く投票できる票数を規定してもよく、いくつかの特別な実施形態では、ユーザは、投票ターゲットが得る得票数又は重みを指定してもよいが、該ユーザの総投票数を超えることはできない。
【００５０】
Ｓ２０７において、第１のノード装置は、得票数の高い順に、該ブロックチェーンシステムにおける第２の所定数の代表ノード装置を含む選出結果を決定する。
【００５１】
該第２の所定数は、現在作業している代表ノード装置の数と一致してもよく、つまり、該第２の所定数の設定により、現在作業している代表ノード装置を選出された代表ノード装置で全部切り替え可能であるように確保することができる。もちろん、該第２の所定数を変更してもよく、例えば、該第２の所定数をブロックチェーンシステムにおけるノード装置の数の変化に応じて変更してもよく、ノード装置の数が増加すると、該第２の所定数は増加してもよい。
【００５２】
注意すべきことは、該第１のノード装置は、自体で決定した選出結果に基づいて、自体が今回新たに選出された代表ノード装置、即ち該ブロックチェーンシステムにおけるいずれかのノード装置であるか否かを決定してもよく、いずれも自体で統計した選出結果に基づいて、自体が今回新たに選出された代表ノード装置、及び今回新たに選出された他の代表ノード装置の識別子であるか否かを決定してもよい。
【００５３】
上記ステップＳ２０５〜Ｓ２０７は、第１のノード装置が該複数のノード装置の得票数に基づいて該ブロックチェーンシステムにおける複数の代表ノード装置を決定するプロセス、即ち、該複数の第１のブロックに記憶された投票トランザクションデータに基づいて該ブロックチェーンシステムにおける第２の所定数の代表ノード装置を決定するプロセスの実施形態である。いくつかの実施形態では、さらに、投票リストを設定する方式で、得票数を統計することにより、選出の目的を達成してもよく、具体的に以下のように説明する。
【００５４】
各ノード装置は、各ノード装置の得票数を記憶するための投票リストをメンテナンスすることができ、投票リストの場合、その更新は、ブロックチェーンシステムにおける投票のたびに行われてもよく、所定時間ごとに、又は生成されたブロックの数が所定数になると、ターゲットブロックチェーンにおける複数の第１のブロックに基づいて行われてもよく、本願の実施形態はこれを限定しない。さらに、選出を行うときに、ブロックチェーンシステムに記憶されたトランザクションデータにより、該投票リストを検証することにより、投票リストに基づいて選出を行ってもよい。
【００５５】
具体的には、投票リストを更新するたびに、ブロックチェーンシステムの投票方式に応じて、以下の更新プロセスを行ってもよい。
【００５６】
ステップＳ２０７における増分投票の説明から分かるように、増分投票は、元の投票を基に増分式投票を再度行う投票方式であるため、ブロックチェーンシステムにおける投票方式が増分投票であると、第１のブロックに記憶された各ユーザの全ての投票トランザクションデータに基づいて、該ノード装置に記憶された投票リストを更新することができる。例えば、第１のブロックにおいてユーザの最後から二番目の投票ターゲットがＡ、Ｂ及びＣの３つのノード装置であり、最後回の投票ターゲットがＤノード装置であり、全ての得票数を取得するために、投票リストにおいてＤノード装置に直接１票を追加することに加えて、ターゲットブロックチェーンから最後から二番目の投票ターゲットをクエリする必要があり、このように、毎回の投票ターゲットをクエリし、かつクエリ結果に基づいて、投票リストを更新する。
【００５７】
ステップＳ２０７における全量投票の説明から分かるように、全量投票は、前回の投票結果をカバーすることを基に投票を行う投票方式であるため、ブロックチェーンシステムにおける投票方式が全量投票である場合、第１のブロックに記憶された各ユーザの最後回の投票トランザクションデータに基づいて、ノード装置に記憶された投票リストを更新することができる。例えば、第１のブロックにおいて、ユーザの最後から二番目の投票ターゲットがＡ、Ｂ及びＣの３つのノード装置であり、最後回の投票ターゲットがＤノード装置であり、前回のＡ、Ｂ及びＣの３つのノード装置に対する投票をカバーするため、投票リストを更新するときに、投票リストにおいてＤノード装置に直接１票を追加してもよい。
【００５８】
ターゲットブロックチェーンにおいて生成されたブロックの数が第１の所定数になると、投票リストにおけるノード装置の得票数を高い順に並べ替えることにより、第２の所定数の代表ノード装置を決定してもよい。さらに、このような投票方式は、重みと組み合わせて行われてもよく、具体的な組み合わせ方式は、上記重みの説明と同様であるため、ここで説明を省略する。
【００５９】
Ｓ２０８において、今回新たに選出された代表ノード装置は、代表ノード装置の動作状態に切り替えて動作する。
【００６０】
今回新たに選出された代表ノード装置が自体に記憶された投票トランザクションデータに基づいて、今回の選出結果を取得すると、自体が代表ノード装置として選出されていると了解するため、今回新たに選出された代表ノード装置は、代表ノード装置の動作状態に切り替えて動作を開始する。
【００６１】
本願の実施形態に係る方法は、ブロックチェーンシステムにおけるノード装置に投票選出を行って、ブロックチェーンシステムにおける代表ノード装置を選出し、代表ノード装置がブロックチェーンシステムにおける全てのノード装置の代わりに、ブロックの生成及びブロックの合意等の動作を行うことにより、全てのノード装置がいずれも上記プロセスを実行することを回避し、ブロックチェーンシステムの動作効率を大幅に向上させる。
【００６２】
さらに、選出中、選出方式は、増分投票又は全量投票であってもよく、異なる投票方式に基づくか又はユーザに重みを設定することにより、異なる得票数統計方法を選択し、ブロックチェーンシステムに対して代表ノード装置を選出し、より柔軟な選出方式を提供することができる。第１の所定数のブロックが生成されるごとに、ブロックチェーンシステムにおける各ノード装置の得票数を統計し、かつ得票数を高い順に並べ替えることにより、代表ノード装置を選出する。該方式は、さらに、代表ノード装置の切替時間を制御することにより、代表ノード装置を頻繁に切り替えて、ブロックチェーンシステムが正常に作業できないことを回避することができる。また、ブロックチェーンシステムにおいて複数回の選出を行うことで、ある正常に作業できない代表ノード装置が切り替えられることを回避して、ブロックチェーンシステムの正常動作を維持することができる。
【００６３】
図３は、本願の実施形態に係る代表ノード装置の選出装置の構造概略図であり、図３を参照すると、第１の取得モジュール３０１、記憶モジュール３０２、及び決定モジュール３０３を含む。
【００６４】
第１の取得モジュール３０１は、記憶モジュール３０２に接続され、該ブロックチェーンシステムにおける少なくとも１つのノード装置に投票するための投票トランザクションデータを取得する。
【００６５】
記憶モジュール３０２は、決定モジュール３０３に接続され、該ブロックチェーンシステムにおける複数のノード装置による該投票トランザクションデータの合意がなされると、該投票トランザクションデータを該ブロックチェーンシステムのターゲットブロックチェーンに記憶する。
【００６６】
決定モジュール３０３は、生成されたブロックの数が所定数になると、該複数のノード装置の得票数に基づいて、該ブロックチェーンシステムにおける、ブロックを生成しブロックに対して合意形成を行うものである複数の代表ノード装置を含む選出結果を決定する。
【００６７】
一実施形態では、決定モジュール３０３は、
該ターゲットブロックチェーンの各ブロックから、各ノード装置の投票トランザクションデータを記憶するものである複数の第１のブロックを決定するブロック決定ユニットと、
該複数の第１のブロックに記憶された投票トランザクションデータに基づいて、該ブロックチェーンシステムにおける所定数の代表ノード装置を決定する代表ノード装置決定ユニットとを含む。
【００６８】
一実施形態では、代表ノード装置決定ユニットは、
該複数の第１のブロックに記憶された投票トランザクションデータに基づいて、該ブロックチェーンシステムにおける各ノード装置の得票数を決定する得票数決定サブユニットと、
得票数の高い順に、該ブロックチェーンシステムにおける所定数の代表ノード装置を決定する代表ノード装置決定サブユニットとを含む。
【００６９】
一実施形態では、該ブロックチェーンシステムにおける投票方式は増分投票であり、該得票数決定サブユニットは、さらに、該複数の第１のブロックに記憶された各ユーザのトランザクションデータに基づいて、該ブロックチェーンシステムにおける各ノード装置の得票数を決定する。
【００７０】
一実施形態では、該ブロックチェーンシステムにおける投票方式は全量投票であり、該得票数決定サブユニットは、さらに、該複数の第１のブロックに記憶されたトランザクションデータから、各ユーザによって最後に投票されたトランザクションデータを決定し、該各ユーザによって最後に投票されたトランザクションデータに基づいて、該ブロックチェーンシステムにおける各ノード装置の得票数を決定する。
【００７１】
一実施形態では、投票に参加する各ユーザの投票に重みが設定されている。
【００７２】
一実施形態では、該各ユーザの重みは、アカウント残高又はクレジット限度額を含むユーザパラメータに基づいて設定される。
【００７３】
一実施形態では、該装置は、
該ブロックチェーンシステムにおける複数のノード装置による該投票トランザクションデータの合意がなされると、該投票トランザクションデータに基づいて、該ノード装置に記憶された、各ノード装置の得票数を記憶するための投票リストを更新する更新モジュールをさらに含む。
【００７４】
一実施形態では、該ブロックチェーンシステムにおける投票方式が全量投票であると、該更新モジュールは、さらに、該第１のブロックに記憶されたトランザクションデータから、各ユーザによって最後に投票されたトランザクションデータを決定し、該各ユーザによって最後に投票されたトランザクションデータに基づいて、該ノード装置に記憶された投票リストを更新する。
【００７５】
一実施形態では、該ブロックチェーンシステムにおける投票方式が増分投票であると、該更新モジュールは、さらに、該第１のブロックに記憶された各ユーザの全ての投票トランザクションデータに基づいて、該ノード装置に記憶された投票リストを更新する。
【００７６】
本願の実施形態に係る装置は、投票選出の方式で、ブロックチェーンシステムにおける代表ノード装置を選出し、代表ノード装置は、ブロックチェーンシステムにおける全てのノード装置の代わりに、ブロックを生成すると共に、新しいブロックに対する合意作業を完了することができるため、ブロックチェーンシステムの作業効率を向上させる。
【００７７】
上記全ての選択的な技術手段は、任意に組み合わせて本願の選択的な実施形態を構成することができ、ここで説明を省略する。
【００７８】
なお、上記実施形態に係る代表ノード装置の選出装置が選出を行う場合について、上記各機能モジュールの分割を例を挙げて説明したのみであり、実際の応用において、必要に応じて上記機能を割り当てて様々な機能モジュールにより実現し、つまり、装置の内部構造を様々な機能モジュールに分割することにより、以上に説明した全て又は一部の機能を実現することができる。また、上記実施形態に係る代表ノード装置の選出方法の実施形態は同じ思想であり、その具体的な実現プロセスの詳細について、方法の実施形態を参照し、ここで説明を省略する。
【００７９】
図４は、本願の実施形態に係るサーバの構造概略図であり、該サーバ４００は、構成又は性能によって大きく異る可能性があり、１つまたは複数のプロセッサ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔｓ、ＣＰＵ）４０１と、１つまたは複数のメモリ４０２とを含んでもよい。該メモリ４０２には、該プロセッサ４０１によって展開され実行されて上記各方法の実施形態に係る方法を実現するコンピュータ読み取り可能な命令が記憶されている。もちろん、該サーバは、入出力を行うために有線/無線ネットワークインタフェース、キーボード及び入出力インタフェースなどの部品をさらに備えてもよく、装置機能を実現する他の部品をさらに含んでもよく、ここで説明を省略する。
【００８０】
例示的な実施形態は、端末におけるプロセッサによって実行されて、上記実施形態における代表ノード装置の選出方法を実現できる命令を含むメモリなどのコンピュータ読み取り可能な記憶媒体をさらに提供する。例えば、該コンピュータ読み取り可能な記憶媒体は、ＲＯＭ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ、リードオンリーメモリ）、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ランダムアクセスメモリ）、ＣＤ−ＲＯＭ（ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ、コンパクトディスクリードオンリーメモリ）、磁気テープ、フロッピーディスク（登録商標）、及び光データ記憶装置などであってもよい。
【００８１】
当業者であれば理解できるように、上記実施形態の全て又は一部のステップは、ハードウェアにより実現されてもよく、コンピュータ読み取り可能な記憶媒体に記憶できるプログラムにより、関連するハードウェアを命令することで実現されてもよく、上記記憶媒体は、リードオンリーメモリ、磁気ディスク又は光ディスクなどであってもよい。
【００８２】
以上は、本願の好ましい実施形態に過ぎず、本願を限定するものではなく、本願の構想及び原理内に行われる全ての変更、同等置換及び改善などは、いずれも本願の保護範囲に含まれるべきである。
【図１】
2021524967.tif 000003
【図２】
2021524967.tif 000004
【図３】
2021524967.tif 000005
【図４】
2021524967.tif 000006
【国際調査報告】
2021524967.tif 000007
2021524967.tif 000008
2021524967.tif 000009
2021524967.tif 000010
2021524967.tif 000011