(57)【要約】  ブロックチェーンコンセンサス方法において、アカウンティングノードがブロックを生成し、Ｎ個のアカウンティングノードのうちの他のアカウンティングノードにアカウンティングノードの検証情報をブロードキャストし、そして、他のアカウンティングノードによってブロードキャストされた確認情報を受信し、確認情報検証し、受信された確認情報が第２の所定条件を満たすとき、ブロックをブロックチェーンに追加し、コインエイジに応じて選挙ノードから複数のアカウンティングノードが選択されるため、プルーフオブワーク問題を解決してアカウンティングノードを決定するのではなく、アカウンティングノードを決定する効率が改善され、リソースの消費が低減される。アカウンティングノードは、ブロックを生成し、アカウンティングノードの情報とブロックの情報はブロードキャストされ、ブロードキャストの情報は、他のアカウンティングノードによって検証された後、アカウンティングノードは、ブロックをローカルブロックチェーンに追加することにより、ブロックチェーンネットワークの一貫性とセキュリティを保証し、アカウンティングノードはブロックを生成した直後にコンセンサスを作成でき、コンセンサスの効率が向上する。
2021521555.tif 000002
【特許請求の範囲】
【請求項１】
アカウンティングノードは、ブロックを生成し、前記アカウンティングノードの検証情報をＮ個のアカウンティングノードのうちの他のアカウンティングノードにブロードキャストするステップであって、前記Ｎ個のアカウンティングノードはＭ個の選挙ノードによってブロードキャスされたトの選挙要求で運ばれるコインエイジ情報に従って決定され、Ｍは１以上であり、Ｎは１以上であり、ＭはＮ以上である前記ブロードキャストするステップと、
前記アカウンティングノードは、前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証するステップであって、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第２のアカウンティングノードの準備情報が第１の所定条件を満たすときに、第１のアカウンティングノードによって生成され、およびブロードキャストされ、前記第２のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第２のアカウンティングノードによって生成され、およびブロードキャストされ、前記第１のアカウンティングノードおよび前記第２のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかである前記検証するステップと、
受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第２の所定条件を満たすときに、前記アカウンティングノードは、前記ブロックをブロックチェーンに追加するステップとを備えることを特徴とするブロックチェーンコンセンサス方法。
【請求項２】
前記アカウンティングノードは、前記他のアカウンティングノードブロードキャストの準備情報を受信および検証し、
前記アカウンティングノードは、受信された前記他のアカウンティングノードの準備情報が前記第１の所定条件を満たしたときに、前記アカウンティングノードの確認情報を生成してブロードキャストすることを特徴とする請求項１に記載のブロックチェーンコンセンサス方法。
【請求項３】
前記第２のアカウンティングノードは、前記第１のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信し、
前記第２のアカウンティングノードは、受信された確認情報が前記第２の所定条件を満たすときに、前記ブロックをブロックチェーンに追加することを特徴とする請求項２に記載のブロックチェーンコンセンサス方法。
【請求項４】
前記Ｍ個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って前記Ｎ個のアカウンティングノードを決定することは、
任意のノードについて、前記ノードは、Ｍ個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記Ｍ個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記Ｍ個の選挙ノードからＮ個の選挙ノードを決定し、
前記ノードは、選挙結果情報を生成してブロードキャストし、前記選挙結果情報は、前記Ｎ個の選挙ノードを含み、
他のノードから受信された選挙結果情報が第３の所定条件を満たすときに、前記選挙結果情報中のＮ個の選挙ノードをアカウンティングノードとして決定することを特徴とする請求項１に記載のブロックチェーンコンセンサス方法。
【請求項５】
前記アカウンティングノードは、受信された前記確認情報が検証に失敗した場合、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第１の障害ノード除去要求をブロードキャストし、
前記アカウンティングノードは、第２の障害ノード除去要求を受信し、前記第２の障害ノード除去要求を検証し、前記第２の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第１の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされ、
受信された前記第２の障害ノード除去要求が第４の所定条件を満たすときに、前記アカウンティングノードは、アカウンティングノード再選択要求をブロードキャストすることにより、非アカウンティングノードが前記アカウンティングノード再選択要求を受信した後、アカウンティングノード競争に参加するための選挙要求をブロードキャストすることを特徴とする請求項１に記載のブロックチェーンコンセンサス方法。
【請求項６】
前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記Ｎ個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記Ｎ個のアカウンティングノードのうちのアカウンティングノードであることを特徴とする請求項１から５のいずれか一項に記載のブロックチェーンコンセンサス方法。
【請求項７】
ブロックを生成するように構成された第１のブロードキャストモジュールと、アカウンティングノードの検証情報をＮ個のアカウンティングノードのうちの他のアカウンティングノードにブロードキャストし、前記Ｎ個のアカウンティングノードはＭ個の選挙ノードによってブロードキャスされたトの選挙要求で運ばれるコインエイジ情報に従って決定され、Ｍは１以上であり、Ｎは１以上であり、ＭはＮ以上であり、
前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証するように構成された検証モジュールであって、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第２のアカウンティングノードの準備情報が第１の所定条件を満たすときに、第１のアカウンティングノードによって生成され、およびブロードキャストされ、前記第２のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第２のアカウンティングノードによって生成され、およびブロードキャストされ、前記第１のアカウンティングノードおよび前記第２のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかである前記検証モジュールと
受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第２の所定条件を満たしたときに前記ブロックをブロックチェーンに追加するように構成された第１の処理モジュールとを備えることを特徴とするアカウンティングノード。
【請求項８】
前記検証モジュールは、前記他のアカウンティングノードブロードキャストの準備情報を受信および検証するようにさらに構成され、
前記第１の処理モジュールは、受信された前記他のアカウンティングノードの準備情報が前記第１の所定条件を満たしたときに、前記アカウンティングノードの確認情報を生成してブロードキャストするようにさらに構成されることを特徴とする請求項７に記載のアカウンティングノード。
【請求項９】
前記第１のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信するように構成された第１の受信モジュールをさらに備え、
前記処理モジュールは、受信された確認情報が前記第２の所定条件を満たすときに、前記ブロックをブロックチェーンに追加するようにさらに構成されることを特徴とする請求項８に記載のアカウンティングノード。
【請求項１０】
前記第１の処理モジュールは、受信された前記確認情報が検証に失敗した場合、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第１の障害ノード除去要求をブロードキャストし、
前記検証モジュールは、第２の障害ノード除去要求を受信し、前記第２の障害ノード除去要求を検証し、前記第２の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第１の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされ、
前記第１のブロードキャストモジュールは、受信された前記第２の障害ノード除去要求が第４の所定条件を満たすときにアカウンティングノードの再選択要求をブロードキャストし、その結果、非アカウンティングノードは、前記アカウンティングノード再選択要求を受信した後にアカウンティングノード競争に参加するための選挙要求をブロードキャストすることを特徴とする請求項７に記載のアカウンティングノード。
【請求項１１】
前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記Ｎ個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記Ｎ個のアカウンティングノードのうちのアカウンティングノードであることを特徴とする請求項７から１０のいずれか一項に記載のアカウンティングノード。
【請求項１２】
Ｍ個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記Ｍ個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記Ｍ個の選挙ノードからＮ個の選挙ノードを決定するように構成された第２の受信モジュールと、
前記Ｎ個の選挙ノードを含む選挙結果情報を生成およびブロードキャストするように構成された第２のブロードキャストモジュールと、
他のノードから受信された選挙結果情報が第３の所定条件を満たすときに、前記選挙結果情報中のＮ個の選挙ノードをアカウンティングノードとして決定するように構成された第２の処理モジュールとを備えることを特徴とするノード。
【請求項１３】
少なくとも１つの処理ユニットおよび少なくとも１つの記憶ユニットを含み、ここで、前記記憶ユニットには、コンピュータプログラムが記憶され、前記プログラムが前記処理ユニットによって実行されるとき、前記処理ユニットに請求項１から６のいずれか一項に記載された前記方法のステップを実行させることを特徴とする端末デバイス。
【請求項１４】
端末デバイスによって実行可能なコンピュータプログラムを格納する、コンピュータ可読媒体であって、前記プログラムは、前記端末デバイス上で実行されるときに、前記端末デバイスに、請求項１から６のいずれか一項に記載の方法を実行させる。
【請求項１５】
プロセッサ、メモリ、送受信機、バスインターフェースを含み、プロセッサ、メモリと送受信機は、バスを介してお互いに接続され、
前記送受信機は、ブロックを生成し、アカウンティングノードの検証情報をＮ個のアカウンティングノードのうちの他のアカウンティングノードにブロードキャストし、前記Ｎ個のアカウンティングノードはＭ個の選挙ノードによってブロードキャスされたトの選挙要求で運ばれるコインエイジ情報に従って決定され、Ｍは１以上であり、Ｎは１以上であり、ＭはＮ以上であり、
前記プロセッサは、前記メモリ内のプログラムを読み取って次の方法を実行するように構成され、前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証し、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第２のアカウンティングノードの準備情報が第１の所定条件を満たすときに、第１のアカウンティングノードによって生成され、およびブロードキャストされ、前記第２のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第２のアカウンティングノードによって生成され、およびブロードキャストされ、前記第１のアカウンティングノードおよび前記第２のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかであり、受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第２の所定条件を満たしたときに前記ブロックをブロックチェーンに追加する。
前記メモリは、１つ以上の実行可能プログラムを格納し、操作を実行するときに前記プロセッサが使用するデータを格納するように構成されることを特徴とする電子デバイス。
【請求項１６】
前記プロセッサは、前記他のアカウンティングノードブロードキャストの準備情報を受信して検証し、受信された前記他のアカウンティングノードの準備情報が前記第１の所定条件を満たすときに、前記アカウンティングノードの確認情報を生成してブロードキャストすることを特徴とする請求項１５に記載の電子デバイス。
【請求項１７】
前記送受信機は、前記第１のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信するように構成され、
前記プロセッサは、受信された確認情報が前記第２の所定条件を満たすときに、前記ブロックをブロックチェーンに追加するように構成されたことを特徴とする請求項１６に記載の電子デバイス。
【請求項１８】
前記プロセッサは、
受信された前記確認情報が検証に合格されていないと判断するときに、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第１の障害ノード除去要求をブロードキャストし、第２の障害ノード除去要求を受信し、前記第２の障害ノード除去要求を検証し、前記第２の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第１の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされ、
前記送受信機は、受信された前記第２の障害ノード除去要求が第４の所定条件を満たすときに、アカウンティングノードの再選択要求をブロードキャストする。その結果、非アカウンティングノードは、前記アカウンティングノード再選択要求を受信した後にアカウンティングノード競争に参加するための選挙要求をブロードキャストすることを特徴とする請求項１５に記載の電子デバイス。
【請求項１９】
前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記Ｎ個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記Ｎ個のアカウンティングノードのうちのアカウンティングノードであることを特徴とする請求項１５から１８のいずれか一項に記載の電子デバイス。
【請求項２０】
プロセッサ、メモリ、送受信機、およびバスインターフェースを含み、ここで、プロセッサ、メモリ、送受信機およびバスインターフェースは、バスによってお互いに接続され、
前記送受信機は、Ｍ個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記Ｍ個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記Ｍ個の選挙ノードからＮ個の選挙ノードを決定し、選挙結果情報を生成およびブロードキャストし、前記選挙結果情報は、前記Ｎ個の選挙ノードを含み、
前記プロセッサは、他のノードから受信された選挙結果情報が第３の所定条件を満たすときに、前記選挙結果情報中のＮ個の選挙ノードをアカウンティングノードとして決定することを特徴とする電子デバイス。
【請求項２１】
コンピュータに請求項１から６のいずれか一項に記載の方法を実行させるコンピュータ命令を記憶する、非一時的なコンピュータ可読記憶媒体。
【請求項２２】
非一時的なコンピュータ可読記憶媒体に記憶されたコンピュータプログラムを含むコンピュータプログラム製品であって、前記コンピュータプログラムは、コンピュータによって実行されると、コンピュータに請求項１から６のいずれか一項に記載の方法を実行させるコンピュータ命令を含むコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願の相互参照〕
本出願は、２０１８年０５月０３日に中国特許局に提出し、出願番号が２０１８１０４１４９２７．８であり、発明名称が「ブロックチェーンコンセンサス方法、アカウンティングノードおよびノード」との中国特許出願を基礎とする優先権を主張し、その開示の総てをここに取り込む。
【０００２】
本発明は、通信技術分野に関し、特にブロックチェーンコンセンサス方法、アカウンティングノードおよびノードに関する。
【背景技術】
【０００３】
従来技術では、ブロックチェーンは、プルーフオブワーク（Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ，ＰｏＷ）コンセンサスメカニズムを使用し、マイニングプロセスは、コンセンサスメカニズムの中核である。マイニングは、カウンティングの権利のために戦うプロセスである。カウンティングの権利を取得するノードは、受信したすべての法的トランザクションをブロックにパッケージ化し、ブロックをメインチェーンに接続してビットコインの報酬を取得する。ビットコインネットワーク内のすべてのノードがカウンティングを競うことができるが、最終的には、プルーフオブワークの問題を最初に解決する１つのノードだけがカウンティングを完了することができる。ＰｏＷは、カウンティングの権利を争うためにノードが一連の計算を実行する必要があるため、このプロセスは大量の計算リソースと電力を消費する必要があり、また、比較的長い計算時間を必要とするため、より高い効率を必要とする多くのプロジェクトを満たすことができない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態は、ブロックチェーンのコンセンサス効率を改善するために、ブロックチェーンコンセンサス方法、アカウンティングノード、およびノードを提供する。
【課題を解決するための手段】
【０００５】
第１の態様では、本発明の実施形態は、ブロックチェーンコンセンサス方法を提供し、当該ブロックチェーンコンセンサス方法は、アカウンティングノードは、ブロックを生成し、前記アカウンティングノードの検証情報をＮ個のアカウンティングノードのうちの他のアカウンティングノードにブロードキャストし、前記Ｎ個のアカウンティングノードはＭ個の選挙ノードによってブロードキャスされたトの選挙要求で運ばれるコインエイジ情報に従って決定され、Ｍは１以上であり、Ｎは１以上であり、ＭはＮ以上であり、前記アカウンティングノードは、前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証し、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第２のアカウンティングノードの準備情報が第１の所定条件を満たすときに、第１のアカウンティングノードによって生成され、およびブロードキャストされ、前記第２のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第２のアカウンティングノードによって生成され、およびブロードキャストされ、前記第１のアカウンティングノードおよび前記第２のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかであり、受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第２の所定条件を満たすときに、前記アカウンティングノードは、前記ブロックをブロックチェーンに追加する。
【０００６】
プルーフオブワーク問題を解決することによってアカウンティングノードを決定する代わりに、選挙ノードのコインエイジに従って選挙ノードから複数のアカウンティングノードを選択するので、アカウンティングノードを決定する効率が改善される。一方、リソース消費は削減される。第二に、アカウンティングノードは、ブロックを生成し、ここで、ブロックを生成するアカウンティングノードがアカウンティングノードのコインエイジに従って決定され、コインエイジの最大のアカウンティングノードがブロックを生成するアカウンティングノードとして決定され得る。アカウンティングノードは、ブロックを生成するアカウンティングノードとしてコインエイジに応じてランダムに選択される。アカウンティングノードの情報とブロックの情報はブロードキャストされ、ブロードキャストの情報が他のアカウンティングノードによって検証された後にのみローカルブロックチェーンにブロックを追加できるため、ブロックチェーンネットワークの一貫性とセキュリティが確保される。さらに、アカウンティングノードはブロックを生成した直後にコンセンサスを作成でき、コンセンサスプロセスはプルーフオブワークの問題を解決する必要がないため、コンセンサスの効率が向上する。
【０００７】
可能な設計では、前記アカウンティングノードは、前記他のアカウンティングノードブロードキャストの準備情報を受信および検証し、前記アカウンティングノードは、受信された前記他のアカウンティングノードの準備情報が前記第１の所定条件を満たしたときに、前記アカウンティングノードの確認情報を生成してブロードキャストする。
【０００８】
可能な設計では、前記第２のアカウンティングノードは、前記第１のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信し、前記第２のアカウンティングノードは、受信された確認情報が前記第２の所定条件を満たすときに、前記ブロックをブロックチェーンに追加する。
【０００９】
可能な設計では、任意のノードについて、前記ノードは、Ｍ個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記Ｍ個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記Ｍ個の選挙ノードからＮ個の選挙ノードを決定し、前記ノードは、選挙結果情報を生成してブロードキャストし、前記選挙結果情報は、前記Ｎ個の選挙ノードを含み、他のノードから受信された選挙結果情報が第３の所定条件を満たすときに、前記選挙結果情報中のＮ個の選挙ノードをアカウンティングノードとして決定する。選挙ノードが選挙要求をブロードキャストした後、ブロックチェーンネットワーク内の他のノードは、受信された選挙要求のコインエイジに従って選挙ノードをソートし、次にソート結果をブロードキャストする。受信されたソート結果が第３の所定条件を満たす場合、どのノードもソート結果の選挙ノードをアカウンティングノードとして決定し、プロセス全体でプルーフオブワークの問題を解決する必要がないため、アカウンティングの決定効率が向上する。一方、リソース消費は削減される。
【００１０】
可能な設計では、前記アカウンティングノードは、受信された前記確認情報が検証に失敗した場合、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第１の障害ノード除去要求をブロードキャストし、前記アカウンティングノードは、第２の障害ノード除去要求を受信し、前記第２の障害ノード除去要求を検証し、前記第２の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第１の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされ、受信された前記第２の障害ノード除去要求が第４の所定条件を満たすときに、前記アカウンティングノードは、アカウンティングノード再選択要求をブロードキャストすることにより、非アカウンティングノードが前記アカウンティングノード再選択要求を受信した後、アカウンティングノード競争に参加するための選挙要求をブロードキャストする。アカウンティングノードが障害ノードを検出すると、障害ノード除去要求をブロードキャストし、障害ノード除去要求が他のアカウンティングノードによって承認された後にアカウンティングノードの再選択要求をブロードキャストする。これにより、障害ノードのブロックチェーンネットワークへの干渉が回避される。ブロックチェーンネットワークの安定性を向上させる。
【００１１】
可能な設計では、前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記Ｎ個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記Ｎ個のアカウンティングノードのうちのアカウンティングノードである。より多くの権利と利益を持つノードはシステムセキュリティを維持するためのより多くの動機を持っているので、より多くの権利と利益を持つノードはシステムセキュリティを維持メインアカウンティングノードおよびバックアップアカウンティングノードがコインエイジ情報に従ってＮ個のアカウンティングノードから決定された後、メインアカウンティングノードがコンセンサスプロセスを開始する。システムのセキュリティをさらに向上させることができる。
【００１２】
第２の態様では、本発明の実施形態によって提供されるアカウンティングノードは、ブロックを生成するように構成された第１のブロードキャストモジュールであって、前記アカウンティングノードの検証情報をＮ個のアカウンティングノードのうちの他のアカウンティングノードにブロードキャストし、前記Ｎ個のアカウンティングノードはＭ個の選挙ノードによってブロードキャスされたトの選挙要求で運ばれるコインエイジ情報に従って決定され、Ｍは１以上であり、Ｎは１以上であり、ＭはＮ以上である第１のブロードキャストモジュールと、前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証するように構成された検証モジュールであって、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第２のアカウンティングノードの準備情報が第１の所定条件を満たすときに、第１のアカウンティングノードによって生成され、およびブロードキャストされ、前記第２のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第２のアカウンティングノードによって生成され、およびブロードキャストされ、前記第１のアカウンティングノードおよび前記第２のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかである前記検証モジュールと、受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第２の所定条件を満たしたときに前記ブロックをブロックチェーンに追加するように構成された第１の処理モジュールと、を備える。
【００１３】
可能な設計では、前記検証モジュールは、前記他のアカウンティングノードブロードキャストの準備情報を受信および検証するようにさらに構成され、前記第１の処理モジュールは、受信された前記他のアカウンティングノードの準備情報が前記第１の所定条件を満たしたときに、前記アカウンティングノードの確認情報を生成してブロードキャストするようにさらに構成される。
【００１４】
可能な設計では、前記第１のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信するように構成された第１の受信モジュールがさらに備えられ、前記処理モジュールは、受信された確認情報が前記第２の所定条件を満たすときに、前記ブロックをブロックチェーンに追加するようにさらに構成される。
【００１５】
可能な設計では、前記第１の処理モジュールは、受信された前記確認情報が検証に失敗した場合、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第１の障害ノード除去要求をブロードキャストし、前記検証モジュールは、第２の障害ノード除去要求を受信し、前記第２の障害ノード除去要求を検証し、前記第２の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第１の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされ、前記第１のブロードキャストモジュールは、受信された前記第２の障害ノード除去要求が第４の所定条件を満たすときにアカウンティングノードの再選択要求をブロードキャストする。その結果、非アカウンティングノードは、前記アカウンティングノード再選択要求を受信した後にアカウンティングノード競争に参加するための選挙要求をブロードキャストする。
【００１６】
可能な設計では、前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記Ｎ個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記Ｎ個のアカウンティングノードのうちのアカウンティングノードである。
【００１７】
第３の態様では、本発明の実施形態によって提供されるノードは、
Ｍ個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記Ｍ個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記Ｍ個の選挙ノードからＮ個の選挙ノードを決定するように構成された第２の受信モジュールと、前記Ｎ個の選挙ノードを含む選挙結果情報并ブロードキャストするように構成された第２のブロードキャストモジュールと、他のノードから受信された選挙結果情報が第３の所定条件を満たすときに、前記選挙結果情報中のＮ個の選挙ノードをアカウンティングノードとして決定するように構成された第２の処理モジュールと、を備える。
【００１８】
第４の態様では、本発明の実施形態によって提供される端末デバイスは、少なくとも１つの処理ユニットおよび少なくとも１つの記憶ユニットを含み、ここで、前記記憶ユニットには、コンピュータプログラムが記憶され、前記プログラムが前記処理ユニットによって実行されるとき、前記処理ユニットに上記の任意の方法のステップを実行させる。
【００１９】
第５の態様では、本発明の実施形態によって提供される電子デバイス，プロセッサ、メモリ、送受信機、およびバスインターフェースを含み、ここで、プロセッサ、メモリ、送受信機およびバスインターフェースは、バスによってお互いに接続され、
前記プロセッサは、前記メモリ内のプログラムを読み取って次の方法を実行するように構成され、ブロックを生成し、送受信機を介してＮ個のアカウンティングノードのうちの他のアカウンティングノードをに前記アカウンティングノードの検証情報をブロードキャストし、前記Ｎ個のアカウンティングノードはＭ個の選挙ノードによってブロードキャスされたトの選挙要求で運ばれるコインエイジ情報に従って決定され、Ｍは１以上であり、Ｎは１以上であり、ＭはＮ以上であり、送受信機を介して前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証し、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第２のアカウンティングノードの準備情報が第１の所定条件を満たすときに、第１のアカウンティングノードによって生成され、およびブロードキャストされ、前記第２のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第２のアカウンティングノードによって生成され、およびブロードキャストされ、前記第１のアカウンティングノードおよび前記第２のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかであり、送受信機を介して受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第２の所定条件を満たしたときに前記ブロックをブロックチェーンに追加する。
【００２０】
前記メモリは、１つ以上の実行可能プログラムを格納し、操作を実行するときに前記プロセッサが使用するデータを格納するように構成される。
【００２１】
第６の態様では、本発明の実施形態によって提供される電子デバイスは、プロセッサ、メモリ、送受信機、およびバスインターフェースを含み、ここで、プロセッサ、メモリ、送受信機およびバスインターフェースは、バスによってお互いに接続され、
前記プロセッサは、前記メモリ内のプログラムを読み取って次の方法を実行するように構成され、送受信機を介して受信された他のノードからの選挙結果情報が第３の所定条件を満たすときに、前記選挙結果情報中のＮ個の選挙ノードをアカウンティングノードとして決定し、送受信機は、プロセッサの制御下で、Ｍ個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記Ｍ個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記Ｍ個の選挙ノードからＮ個の選挙ノードを決定し、選挙結果情報を生成およびブロードキャストし、前記選挙結果情報は、前記Ｎ個の選挙ノードを含み、
前記メモリは、１つ以上の実行可能プログラムを格納し、操作を実行するときに前記プロセッサが使用するデータを格納するように構成される。
【００２２】
第７の態様では、本出願の実施形態は、命令を格納する非一時的なコンピュータ可読記憶媒体を提供し、これにより、コンピュータは、コンピュータ上で実行されるときに、第１の態様または第１の態様の任意の可能な実装において方法を実行する。
【００２３】
第８の態様では、本出願の実施形態は、命令を含むコンピュータプログラム製品を提供し、これにより、コンピュータは、コンピュータ上で実行されるときに、第１の態様または第１の態様の任意の可能な実装において方法を実行する。
【発明の効果】
【００２４】
本発明の実施形態において、プルーフオブワーク問題を解決することによってアカウンティングノードを決定する代わりに、選挙ノードのコインエイジに従って選挙ノードから複数のアカウンティングノードを選択するので、アカウンティングの決定効率が向上する。一方、リソース消費は削減される。つぎに、アカウンティングノードによってブロックが生成され、アカウンティングノードの情報とブロックの情報はブロードキャストされ、ブロードキャストの情報が他のアカウンティングノードによって検証された後にのみローカルブロックチェーンにブロックを追加できるため、ブロックチェーンネットワークの一貫性とセキュリティが確保される。さらに、アカウンティングノードはブロックを生成した直後にコンセンサスを作成でき、コンセンサスプロセスはプルーフオブワークの問題を解決する必要がないため、コンセンサスの効率が向上する。
【図面の簡単な説明】
【００２５】
本発明に係る実施例や従来の技術方案をより明確に説明するために、以下に実施例を説明するために必要な図面をについて簡単に紹介する。無論、以下の説明における図面は本発明に係る実施例の一部であり、当業者は、創造性作業を行わないことを前提として、これらの図面に基づいて他の図面を得ることができる。
【００２６】
【図１】本発明の実施形態によって提供されるブロックチェーンコンセンサス方法の概略フローチャートである。
【図２ａ】本発明の実施形態によって提供されるアカウンティングノードを決定する方法の概略フローチャートである。
【図２ｂ】本発明の実施形態によって提供されるアカウンティングノードを決定する方法の概略フローチャートである。
【図３】本発明の実施形態によって提供される障害ノードを検出する方法の概略フローチャートである。
【図４】本発明の実施形態によって提供されるアカウンティングノードの構造概略図である。
【図５】本発明の実施形態によって提供されるノードの構造概略図である。
【図６】本発明の実施形態によって提供される端末デバイスの構造概略図である。
【図７】本発明の実施形態によって提供される電子デバイスの構造概略図である。
【図８】本発明の実施形態によって提供される電子デバイスの構造概略図である。
【発明を実施するための形態】
【００２７】
本発明に係る実施例の目的、技術案及びメリットをより明確にするため、以下、本発明に係る実施例の図面を参考しながら、本発明に係る実施例の技術案を明確かつ完全に説明する。説明した実施例は本発明の一部の実施例にすぎず、全部の実施例ではないのが明らかである。本発明の実施例に基づき、当業者は、創造性作業を行わない限りに得られた他の実施例は、全部本発明の保護範囲に属する。
【００２８】
本発明に係る実施例の目的、技術案及びメリットをより明確にするため、以下、本発明に係る実施例の図面を参考しながら、本発明に係る実施例の技術案を明確かつ完全に説明する。説明した実施例は本発明の一部の実施例にすぎず、全部の実施例ではないのが明らかである。本発明の実施例に基づき、当業者は、創造性作業を行わない限りに得られた他の実施例は、全部本発明の保護範囲に属する。
【００２９】
本明細書では、図面内の任意の数の要素は、限定ではなく例を目的としており、任意の命名は、区別のためにのみ使用され、限定的な意味を持たないことを理解されたい。理解のために、本発明の実施形態に含まれる名詞を以下に説明する。
【００３０】
ブロックチェーン：狭義には、ブロックチェーンは、時系列で順次接続によってデータブロックを結合するリンクされたデータ構造であり、暗号化の方法で改ざんおよび偽造することができない分散型台帳である。広い意味で、ブロックチェーンテクノロジーは、ブロックチェーンデータ構造を使用してデータを検証および保存し、分散ノードコンセンサスアルゴリズムを使用してデータを生成および更新し、暗号化を使用してデータ送信とアクセスのセキュリティを保証し、自動化されたスクリプトコードで構成されるスマートコントラクトを使用して、データをプログラムおよび操作するする新しい分散インフラストラクチャおよび計算モードである。
【００３１】
本発明の一実施形態は、ブロックチェーンコンセンサス方法のプロセスを提供する。この方法のプロセスは、アカウンティングノードによって実行することができ、図１に示すように、以下のステップを含む。
【００３２】
ステップＳ１０１：アカウンティングノードは、ブロックを生成し、Ｎ個のアカウンティングノードのうちの他のアカウンティングノードにアカウンティングノードの検証情報をブロードキャストする。
【００３３】
具体的には、アカウンティングノードは、法的トランザクションをブロックにパッケージ化し、ブロックをブロックチェーンに接続するブロックチェーンネットワーク内のノードである。検証情報は、アカウンティングノードの情報とアカウンティングノードのブロックの情報を示すために使用される。具体的には、検証情報のフォーマットは次のとおりである。
【００３４】
＜ＰＲＥ−ＰＲＥＰＡＲＥ，ｐ，Ｂｌｏｃｋ，ｓｉｇ（Ｍ）＞
ここで、ｐはブロックを生成するときにアカウンティングノードによって決定されるブロック番号であり、Ｂｌｏｃｋはブロックの内容であり、ｓｉｇ（Ｍ）はアカウンティングノードのメッセージ署名である。
【００３５】
Ｎ個のアカウンティングノードはＭ個の選挙ノードによってブロードキャスされたトの選挙要求で運ばれるコインエイジ情報に従って決定され、Ｍは１以上であり、Ｎは１以上であり、ＭはＮ以上である。
【００３６】
ステップＳ１０２：アカウンティングノードは、他のアカウンティングノードによって送信された確認応答情報を受信し、他のアカウンティングノードによってブロードキャストされた確認情報を検証する。
【００３７】
ここで、他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第２のアカウンティングノードの準備情報が第１の所定条件を満たすときに、第１のアカウンティングノードによって生成され、およびブロードキャストされ、第２のアカウンティングノードの準備情報は、第２のアカウンティングノードがアカウンティングノードの検証情報を検証に合格したときに生成およびブロードキャストされ、第１のアカウンティングノードおよび第２のアカウンティングノードは他のアカウンティングノードのいずれかである。
【００３８】
具体的には、第２のアカウンティングノードは、アカウンティングノードによってブロードキャストされた検証情報を受信した後、検証を実行する。具体的には、まずアカウンティングノードのメッセージ署名が正当であるかどうかを検証し、次に自身のブロックチェーンで生成される次のブロックのブロック番号が検証情報のブロック番号と一致するかどうかを検証し、次にブロック番号は同じであるが、アカウンティングノードのメッセージ署名が異る検証情報が受信されていないことを検証する。上記の３つの検証条件がすべて満たされている場合、つまり、アカウンティングノードのメッセージ署名が有効であり、自身のブロックチェーンで生成される次のブロックのブロック番号が検証情報のブロック番号と一致し、同じブロック番号であるがアカウンティングノードの異なるメッセージ署名を持つ検証情報が受信されていない場合、第２のアカウンティングノードが準備情報を生成する。準備情報のフォーマットは次のとおりである。
【００３９】
＜ＰＲＥＰＡＲＥ，ｐ，Ｂｌｏｃｋ，ｓｉｇ（Ｍ）＞
ここで、ｐはブロック番号、Ｂｌｏｃｋはブロックの内容であり、ｓｉｇ（Ｍ）は第２のアカウンティングノードのメッセージ署名である。第２のアカウンティングノードは、準備情報を他のアカウンティングノードにブロードキャストする。上記の３つの検証条件の少なくとも１つが満たされない場合、つまり第２のアカウンティングノードが障害ノードである場合、第２のアカウンティングノードが削除され、アカウンティングノードが再選挙されて第２のアカウンティングノードが置き換えられる。
【００４０】
第１のアカウンティングノードは、準備情報を受信した後、準備情報を検証する。具体的には、まず準備情報のメッセージ署名が正当かどうかを確認し、次に独自のブロックチェーンで生成される次のブロックのブロック番号が準備情報のブロック番号と一致しているかどうかを確認する。上記の２つの検証条件が満たされると、受信した準備情報がログに書き込まれ、受信した準備情報が第１の所定条件を満たしていると判断されると、ブロックの確認情報が生成されてブロードキャストされる。任意選択で、第１の所定条件は次のとおりである。検証された準備情報の量が、２ｆである第１のしきい値よりも大きい。ここで、ｆは障害ノードの数である。具体的には、確認情報のフォーマットは次のとおりである。
【００４１】
＜ＣＯＭＭＩＴ，ｐ，Ｂｌｏｃｋ，ｓｉｇ（Ｍ）＞
ここで、ｐはブロック番号、Ｂｌｏｃｋはブロックの内容であり、ｓｉｇ（Ｍ）  は第１のアカウンティングノードのメッセージ署名である。
【００４２】
上記の２つの検証条件のうちの１つが満たされない場合、これは、第１のアカウンティングノードが故障ノードであることを示し、第１のアカウンティングノードが削除され、アカウンティングノードが再選されて第１のアカウンティングノードと置き換わる。
【００４３】
任意選択で、アカウンティングノードは、他のアカウンティングノードによってブロードキャストされた準備情報を受信および検証し、他のアカウンティングノードの受信された準備情報が第１の設定条件を満たしたときに、アカウンティングノードの確認応答情報を生成およびブロードキャストする。特定の実施では、アカウンティングノードが受信した準備情報を検証して確認応答情報を生成するプロセスは、第１のアカウンティングノードが準備情報を確認して確認応答情報を生成するプロセスと同じであり、ここでは繰り返さない。
【００４４】
ステップＳ１０３：アカウンティングノードは、受信された他のアカウンティングノードによってブロードキャストされた確認情報が第２の所定条件を満たしたときにブロックをブロックチェーンに追加する。
【００４５】
他のアカウンティングノードによってブロードキャストされた確認応答情報を受信した後、アカウンティングノードは確認応答情報を検証する。具体的には、最初に確認応答情報のメッセージ署名が正当であるかどうかを確認し、次に自身のブロックチェーンで生成される次のブロックのブロック番号が確認応答情報のブロック番号と一致するかどうかを確認する。上記の２つの検証条件が満たされると、受信した確認応答情報がログに書き込まれます。受信した確認応答情報が第２の所定条件を満たすと判断されると、ブロックがブロックチェーンに追加される。任意選択で、第２の所定条件は次のとおりである：検証された確認応答情報が第２のしきい値（２ｆ  ＋  １）より大きい場合、ｆは障害ノードの数である。上記の２つの検証条件の少なくとも１つが満たされない場合、つまりアカウンティングノードが障害ノードである場合、アカウンティングノードが削除され、アカウンティングノードが再選挙されてこのアカウンティングノードが置き換えられる。
【００４６】
任意選択で、第２のアカウンティングノードは、第１のアカウンティングノードによってブロードキャストされた確認応答情報およびアカウンティングノードによってブロードキャストされた確認応答情報を受信し、受信した確認応答情報が第２の設定条件を満たすときにブロックをブロックチェーンに追加する。特定の実施において、第２のアカウンティングノードが受信された確認応答情報に従ってブロックをブロックチェーンに追加するプロセスは、アカウンティングノードが受信された確認応答情報に従ってブロックチェーンにブロックを追加するプロセスと同じである。ここでは繰り返されない。
【００４７】
プルーフオブワーク問題を解決することによってアカウンティングノードを決定する代わりに、選挙ノードのコインエイジに従って選挙ノードから複数のアカウンティングノードを選択するので、アカウンティングノードを決定する効率が改善される。一方、リソース消費は削減される。つぎに、アカウンティングノードによってブロックが生成され、アカウンティングノードの情報とブロックの情報はブロードキャストされ、ブロードキャストの情報が他のアカウンティングノードによって検証された後にのみローカルブロックチェーンにブロックを追加できるため、ブロックチェーンネットワークの一貫性とセキュリティが確保される。さらに、アカウンティングノードはブロックを生成した直後にコンセンサスを作成でき、コンセンサスプロセスはプルーフオブワークの問題を解決する必要がないため、コンセンサスの効率が向上する。
【００４８】
Ｎ個のアカウンティングノードを決定する方法のプロセスを以下に具体的に紹介する。このプロセスは、ブロックチェーンネットワーク内の任意のノードによって実行され、図２ａに示すように、次の手順が含まれる。
【００４９】
ステップＳ２０１：ノードは、Ｍ個の選挙ノードによってブロードキャストされた選挙要求を受信し、Ｍ個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、Ｍ個の選挙ノードからＮ個の選挙ノードを決定する。
【００５０】
ステップＳ２０２：ノードは、選挙結果情報を生成してブロードキャストし、選挙結果情報はＮ個の選挙ノードを含む。
【００５１】
具体的には、ノードは、アカウンティングノードの選挙に参加する選挙ノードであり得るか、またはアカウンティングノードの選挙に参加しない通常のノードであり得る。選挙ノードは、アカウンティングノードの選挙に参加するときに選挙要求をブロードキャストする。
【００５２】
＜ＣＡＮＤＩＤＡＴＥ，ａｄｄｒ，ｔｘｓ，ｓｉｇ（Ｍ）＞
ここで、ａｄｄｒは選挙ノードのアカウントアドレス、ｔｘｓは選挙ノードによって新たに開始されたトランザクションであり、トランザクションには選挙ノードの秘密鍵署名があり、トランザクションの内容は未使用のトランザクション出力（Ｕｎｓｐｅｎｔ  Ｔｒａｎｓａｃｔｉｏｎ  Ｏｕｔｐｕｔ，  ＵＴＸＯ）でコインを自体に支払うことであり、トランザクション時間を更新し、コインの経過時間をクリアする。ｓｉｇ（Ｍ）は、選択ノードのメッセージ署名である。
【００５３】
任意選択で、コインエイジは、コインの数と日数の積である。具体的には、ドのコインエイジは、トランザクションの内容と更新されたトランザクション時間に基づいて決定できる。たとえば、選挙ノードＡは１０コインを使用してアカウンティングノードの競争に参加し、選挙ノードＡは２０１８年３月１日に１０コインを取得し、トランザクションの内容はＵＴＸＯで１０コインを自分自身に支払うことであり、トランザクション時間は現在の時刻、つまり２０１８年３月３１日に更新される。トランザクションの内容とトランザクション時間から、選挙ノードＡのコインエイジは３００であることがわかる。
【００５４】
選挙要求を受信した後、他のノードは、最初に、ｔｘｓ内のトランザクションの合法性をチェックし、具体的には、トランザクション開始者のコインがトランザクション要件を満たしているかどうか、およびトランザクション受信者のアカウントアドレスが合法であるかどうかなどをチェックする。ｔｘｓでのトランザクションが違法である場合、当該選挙ノードの選択要求は無視され、当該選挙ノードをブラックリストに追加する。ｔｘｓでのトランザクションが合法である場合、当該選挙ノードの選択要求が保存される。設定された時間になると、その期間中に受信した選挙要求がカウントされ、選挙ノードは選挙要求のコインエイジに従ってソートされる。たとえば、この期間中にＭ個の選挙ノードの選挙要求が検証された場合、Ｍ個の選挙ノードがコインエイジで高いものから低いものへとソートされ、上位Ｎ個の選挙ノードがリストに配置され、選挙結果情報は他のノードにブロードキャストされる。選挙結果情報のフォーマットは次のとおりである。
【００５５】
＜ＲＥＳＵＬＴ，ｌｉｓｔ，ｓｉｇ（Ｍ）＞
ここで、ｌｉｓｔはアカウンティングノードのアカウントアドレスのリストであり、ｓｉｇ（Ｍ）は選挙結果情報をブロードキャストするノードのメッセージ署名である。
【００５６】
ステップＳ２０３：ノードは、他のノードから受信された選挙結果情報が第３の所定条件を満たすときに、他のノードによってアカウンティングノードとして選挙結果情報内のＮ個の選挙ノードを決定する。
【００５７】
選挙結果情報を受信した後、任意のノードは、最初に選挙結果情報のメッセージ署名を検証し、次に、受信した選挙結果情報のリストを比較する。ノードが受信した同じリストの選挙結果情報の量が第３のしきい値よりも大きい場合、リスト内の選挙ノードがアカウンティングノードとして決定される。
【００５８】
リストによれば、ノードは、それがアカウンティングノードとして選挙されるかどうかを決定することができる。ノードがアカウンティングノードとして選挙されると、アカウンティングノードの確認応答情報をブロードキャストする。また、ノードがアカウンティングノードとして選挙されていない場合、アカウンティングノードの確認応答情報をブロードキャストしない。アカウンティングノード確認情報のフォーマットは次のとおりである。
【００５９】
＜ＣＯＮＦＩＲＭ，ｌｉｓｔ，ｓｉｇ（Ｍ）＞
ここで、ｌｉｓｔはアカウンティングノードのアカウントアドレスのリストであり、ｓｉｇ（Ｍ）  はアカウンティングノードの確認応答情報をブロードキャストするノードのメッセージ署名である。
【００６０】
リスト内のいずれかのアカウンティングノードが、リスト内の他のアカウンティングノードによってブロードキャストされた確認応答情報を受信し、受信した確認応答情報が一貫している場合、リスト内のノードは、正常に選挙されたアカウンティングノードであると判断され、アカウンティングノードは、リスト内のシーケンスに従って各自のシリアル番号を決定し、コインエイジをクリアできる。コインエイジに応じて選挙ノードから複数のアカウンティングノードが選択されるため、プルーフオブワーク問題を解決してアカウンティングノードを決定するのではなく、アカウンティングノードの決定効率が向上し、リソース消費が削減される。アカウンティングノードはコインエイジの経過時間に応じて決定され、アカウンティングノードの決定後にアカウンティングノードのコインエイジがクリアされるため、コインの多い人はブロックチェーンネットワークを制御できず、ブロックチェーンネットワークのセキュリティが向上する。
【００６１】
本発明の実施形態をよりよく説明するために、本発明の実施形態によって提供されるアカウンティングノードを決定する方法の流れを、特定の実施シナリオを通して、図２ｂに示すように、以下に説明する。フローには次のステップが含まれる。
【００６２】
ステップＳ０１：アカウンティングノードの選挙を開始する。
【００６３】
ステップＳ０２：ブロックチェーンネットワーク内の任意のノードについて、それが選挙に参加するかどうかを判断する。参加するは、ステップＳ０３を実行する。それ以外の場合は、ステップＳ０４を実行する。
【００６４】
ステップＳ０３：ノードは、選挙ノードになるための選挙要求をブロードキャストする。
【００６５】
ステップＳ０４：ノードは、選挙要求を受信し、選挙要求の合法性をチェックする。
【００６６】
ステップＳ０５：ノードは、設定された期間内に選挙要求が受信されたかどうかを判断する。その場合は、ステップＳ０４を実行する。それ以外の場合は、ステップＳ０６を実行する。
【００６７】
ステップＳ０６：ノードは、受信した選挙要求に従って、コインエイジによって選挙ノードを大きいものから小さいものへとソートし、上位ｍ個の選挙ノードをアカウンティングノードとして取り、アカウンティングノードのアカウントアドレスをリストに入れる。
【００６８】
ステップＳ０７：リストを含む選挙結果情報をアカウンティングノードにブロードキャストする。
【００６９】
ステップＳ０８：アカウンティングノードは、同じリストで２ｎ／３個の選挙結果情報を受信したかどうかを判断する。ここで、ｎはノードの総数である。受信した場合は、ステップＳ０９を実行する。それ以外の場合は、ステップＳ１０３を実行する。
【００７０】
ステップＳ０９：アカウンティングノードは、アカウンティングノードの確認応答情報をブロードキャストする。
【００７１】
ステップＳ１０：アカウンティングノードは、アカウンティングノードによってブロードキャストされたすべてのアカウンティングノードの確認応答情報を受信したかどうか、およびアカウンティングノードの確認応答情報は一貫しているかどうかを判断し、受信して確認応答情報が一貫している場合は、ステップＳ１１を実行する。それ以外の場合は、ステップＳ１３を実行する。
【００７２】
ステップＳ１１：アカウンティングノードは、選挙要求においてトランザクション情報をブロードキャストする。
【００７３】
ステップＳ１２：アカウンティングノードの選択が終了する。
【００７４】
ステップＳ１３：アカウンティングノードは、アカウンティングノードの一貫性のない確認応答情報を有するアカウンティングノードを除去するために、アカウンティングノード除去要求をブロードキャストする。
【００７５】
ステップＳ１４：アカウンティングノードは、２ｍ／３の正当なアカウンティングノード削除要求を受信した後、アカウンティングノード再選択要求をブロードキャストする。
【００７６】
ステップＳ１５：非アカウンティングノードは、２ｍ／３のリーガルアカウンティングノード再選択要求を受信した後、ステップＳ０２を実行する。
【００７７】
Ｎ個のアカウンティングノードに障害のあるノードが存在する可能性があり、障害のあるノードはブロックチェーンネットワーク全体のセキュリティおよび安定性に影響を与えるため、アカウンティングノードの決定プロセスおよびコンセンサスプロセス中に障害のあるノードを検出および処理する必要がある。、これには、図３に示すように、具体的には次のステップが含まれる。
【００７８】
ステップＳ３０１：アカウンティングノードは、受信された確認情報が検証に失敗された場合、障害ノードとしてブロードキャスト確認情報のアカウンティングノードを決定し、第１の障害ノード除去要求をブロードキャストする。
【００７９】
アカウンティングノードは、確認応答情報を検証することによって障害ノードを検出することに限定されず、検証情報および準備情報を検証することによって障害ノードを検出することも可能であり、または、アカウンティングノードの選択段階で、アカウンティングノードの受信確認情報に一貫性があるかどうか、およびリスト内の他のすべてのアカウンティングノードによってブロードキャストされたアカウンティングノードの確認応答情報が受信されたかどうかに応じて、障害のあるノード検出することも可能であることに留意されたい。
【００８０】
以下では、説明のための例として、確認応答情報を検証することによって、障害のあるノードが検出される。アカウンティングノードは、他のアカウンティングノードによってブロードキャストされた確認応答情報を受信した後、他のアカウンティングノードによってブロードキャストされた確認応答情報を検証する。確認応答情報が検証に失敗された場合、確認応答情報を障害ノードとして決定し、第１の障害ノード除去要求をブロードキャストし、第１の障害ノード除去要求のフォーマットは次のとおりである。
【００８１】
＜ＲＥＭＯＶＥ，ａｄｄｒ，ｃ，ｓｉｇ（Ｍ）＞
ここで、ａｄｄｒは障害のあるノードのアカウントアドレス、ｃは障害のあるノードによってブロードキャストされる確認応答情報、ｓｉｇ（Ｍ）は、第１のアカウンティングノード除去要求をブロードキャストするアカウンティングノードのメッセージ署名である。
【００８２】
ステップＳ３０２：アカウンティングノードは、第２の障害ノード除去要求を受信し、第２の障害ノード除去要求を検証する。
【００８３】
第２の障害ノード除去要求は、受信した第１の障害ノード除去要求が検証され、第２の障害ノード除去要求のフォーマットが第１の障害ノードのフォーマットと同じであると判断した後、他のアカウンティングノードによって生成およびブロードキャストされる。具体的には、第１のアカウンティングノード除去要求を受信した後、他のアカウンティングノードが第１のアカウンティングノード除去要求の確認応答情報を検証し、検証が失敗した場合、受信した第１のアカウンティングノード除去要求内のメッセージ署名を自分のメッセージ署名として変更した後、第２のアカウンティングノード除去要求を生成してブロードキャストする。
【００８４】
ステップＳ３０３：受信された第２の障害ノード除去要求が第４の所定条件を満たすときに、アカウンティングノードがアカウンティングノード再選択要求をブロードキャストし、その結果、非アカウンティングノードが参加するため、アカウンティングノードの再選択要求を受信した後選挙要求をブロードキャストする。
【００８５】
アカウンティングノードは、同じ障害ノードの検証に成功した受信した第２のアカウンティングノード除去要求の数が第４のしきい値よりも大きい場合に、アカウンティングノード再選択要求を生成およびブロードキャストする。ここで、アカウンティングノード再選択要求のフォーマットは以下のとおりである。
【００８６】
＜ＲＥＶＯＴＥ，ｎ，ｓｉｇ（Ｍ）＞
ｎは障害のあるノードのシリアル番号であり、ｓｉｇ（Ｍ）は、ブロードキャストアカウンティングノード再選択要求のアカウンティングノードのメッセージ署名である。
【００８７】
非アカウンティングノードは、アカウンティングノード再選択要求を受信および検証し、検証に合格した受信したアカウンティングノード再選択要求の数が第５のしきい値よりも大きいと判断すると、選挙要求をブロードキャストし、非アカウンティングノードは、アカウンティングノードの競争に参加する。このとき、選挙されるアカウンティングノードの数は故障ノードの数であり、選挙されるアカウンティングノードのシリアル番号は、リスト内の故障ノードのシリアル番号に対応する。アカウンティングノードは、障害ノードを検出すると、障害ノードの除去要求をブロードキャストし、障害ノード除去要求が他のアカウンティングノードによって承認された後にアカウンティングノードの再選択要求をブロードキャストする。これにより、障害ノードのブロックチェーンネットワークへの干渉が回避される。ブロックチェーンネットワークの安定性を向上させる。
【００８８】
任意選択で、Ｎ個のアカウンティングノードは、メインアカウンティングノードとバックアップアカウンティングノードに分割され、メインアカウンティングノードは、Ｎ個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードである。バックアップアカウンティングノードは、メインアカウンティングノードを除くＮ個のアカウンティングノードのうちのアカウンティングノードである。ブロックチェーンコンセンサスプロセスでは、メインアカウンティングノードがブロックを生成し、メインアカウンティングノードの検証情報をＮ個のアカウンティングノードのうちのバックアップアカウンティングノードにブロードキャストする。メインアカウンティングノードは、バックアップアカウンティングノードによってブロードキャストされた確認情報を受信および検証する。ここで、バックアップアカウンティングノードによってブロードキャストされた確認情報は、受信された第２のアカウンティングノードの準備情報が第１の所定条件を満たすときに、第１のアカウンティングノードによって生成され、およびブロードキャストされる。第２のアカウンティングノードの準備情報は、メインアカウンティングノードの検証情報を検証する際に第２のアカウンティングノードによって生成およびブロードキャストされる。第１のアカウンティングノードおよび第２のアカウンティングノードのそれぞれは、バックアップアカウンティングノードのいずれかである。より多くの権利と利益を持つアカウンティングノードはシステムセキュリティを維持するためのより多くの動機を持っているので、Ｎ個のアカウンティングノードの中で最大のコインエイジを持つアカウンティングノードがメインアカウンティングノードとして決定され、メインアカウンティングノードがコンセンサスプロセスを開始する。これにより、システムのセキュリティをさらに向上させることができる。
【００８９】
同じ技術的思想に基づいて、本発明の実施形態は、アカウンティングノードを提供する。図４に示されるように、アカウンティングノード４００は、
ブロックを生成し、前記アカウンティングノードの検証情報をＮ個のアカウンティングノードのうちの他のアカウンティングノードにブロードキャストするように構成された第１のブロードキャストモジュール４０１であって、前記Ｎ個のアカウンティングノードはＭ個の選挙ノードによってブロードキャスされたトの選挙要求で運ばれるコインエイジ情報に従って決定され、Ｍは１以上であり、Ｎは１以上であり、ＭはＮ以上である前記第１のブロードキャストモジュール４０１と、
前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証するように構成された検証モジュール４０２であって、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第２のアカウンティングノードの準備情報が第１の所定条件を満たすときに、第１のアカウンティングノードによって生成され、およびブロードキャストされ、前記第２のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第２のアカウンティングノードによって生成され、およびブロードキャストされ、前記第１のアカウンティングノードおよび前記第２のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかである前記検証モジュール４０２と、
受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第２の所定条件を満たしたときに前記ブロックをブロックチェーンに追加するように構成された第１の処理モジュール４０３とを備える。
【００９０】
可能な設計では、前記検証モジュール４０２は、他のアカウンティングノードによってブロードキャストされた準備情報を受信および検証するようにさらに構成される。
【００９１】
前記第１の処理モジュール４０３は、他のアカウンティングノードの受信された準備情報が第１の所定条件を満たすときに、前記アカウンティングノードの確認情報を生成してブロードキャストする。
【００９２】
可能な設計では、前記第１のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信するように構成された第１の受信モジュール４０４がさらに備えられる。
【００９３】
前記第１の処理モジュール４０３は、受信された確認応答情報が第２の所定条件を満たすときに、前記ブロックをブロックチェーンに追加する。
【００９４】
可能な設計では、前記第１の処理モジュール４０３は、受信された前記確認情報が検証に失敗したと判断した場合、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第１の障害ノード除去要求をブロードキャストしする。
【００９５】
前記検証モジュール４０２は、第２の障害ノード除去要求を受信し、前記第２の障害ノード除去要求を検証し、前記第２の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第１の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされる。
【００９６】
前記第１のブロードキャストモジュール４０１は、受信された前記第２の障害ノード除去要求が第４の所定条件を満たすときに、アカウンティングノードの再選択要求をブロードキャストする。その結果、非アカウンティングノードは、前記アカウンティングノード再選択要求を受信した後にアカウンティングノード競争に参加するための選挙要求をブロードキャストする。
【００９７】
可能な設計では、前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記Ｎ個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記Ｎ個のアカウンティングノードのうちのアカウンティングノードである。
【００９８】
同じ技術的思想に基づいて、本発明の実施形態はノードを提供する。図５に示されるように、ノード５００は、
Ｍ個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記Ｍ個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記Ｍ個の選挙ノードからＮ個の選挙ノードを決定するように構成された第２の受信モジュール５０１と、
Ｎ個の選挙ノードを含む選挙結果情報を生成およびブロードキャストするように構成された第２のブロードキャストモジュール５０２と、
他のノードから受信された選挙結果情報が第３の所定条件を満たすときに、前記選挙結果情報中のＮ個の選挙ノードをアカウンティングノードとして決定するように構成された第２の処理モジュール５０３とを備える。
【００９９】
本発明の一実施形態は、少なくとも１つの処理ユニットおよび少なくとも１つの記憶ユニットを含む端末デバイスを提供し、ここで、前記記憶ユニットには、コンピュータプログラムが記憶され、前記プログラムが前記処理ユニットによって実行されるとき、前記処理ユニットにブロックチェーンコンセンサス方法のステップを実行させる。本発明の実施形態に記載された端末デバイスのハードウェア構造の概略図である図６に示されるように、端末デバイスは、デスクトップコンピュータ、ポータブルコンピュータ、スマートフォン、タブレットコンピュータであり得る。具体的には、端末デバイスは、メモリ６０１、プロセッサ６０２、およびメモリに格納されたコンピュータプログラムを含み得、前記プロセッサ６０２は、前記プログラムを実行するときに、上記の実施形態における任意のブロックチェーンコンセンサス方法のステップを実施する。ここで、メモリ６０１は、読み取り専用メモリ（ＲＯＭ）およびランダムアクセスメモリ（ＲＡＭ）を含み得、メモリ６０１に記憶されたプログラム命令およびデータをプロセッサ６０２に提供する。
【０１００】
さらに、本出願の実施形態に記載される端末デバイスは、入力装置６０３、出力装置６０４などをさらに含むことができる。入力装置６０３は、キーボード、マウス、タッチスクリーンなどを含み得る。出力装置６０４は、液晶ディスプレイ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ，ＬＤＣ）、陰極線管（ＣＲＴ）、タッチスクリーンなどなどのディスプレイデバイスを含み得る。メモリ６０１、プロセッサ６０２、入力デバイス６０３、および出力デバイス６０４は、バスを介して、または他の方法で接続することができる。バス接続は、図６の例として取り上げられる。プロセッサ６０２は、メモリ６０１に格納されたプログラム命令を呼び出し、得られたプログラム命令に従って、上記の実施形態で提供されるブロックチェーンコンセンサス方法を実行する。
【０１０１】
本発明の一実施形態は、端末デバイスによって実行可能なコンピュータプログラムを格納するコンピュータ可読記憶媒体をさらに提供し、プログラムは、端末デバイス上で実行されるときに、端末デバイスにブロックチェーンコンセンサス方式のステップを実行させる。
【０１０２】
同じ思想に基づいて、本出願は、上記のアカウンティングノードの方法フローを実行するために使用することができる電子デバイスを提供する。図７は、本出願により提供される電子デバイスの構造概略図である。電子デバイスは、プロセッサ７０１、メモリ７０２、送受信機７０３、およびバスインターフェース７０４を含む。ここで、プロセッサ７０１、メモリ７０２、送受信機７０３、およびバスインターフェース７０４は、バス７０５を介して互いに接続されている。
【０１０３】
メモリ７０２は、プログラムを格納するために使用される。具体的には、プログラムは、コンピュータの操作命令を含むプログラムコードを含み得る。メモリ７０２は、揮発性メモリ（ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）、例えば、ランダムアクセスメモリ（ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ，ＲＡＭ）を含み得る。メモリはまた、不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）、例えば、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）、ハードディスクドライブ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ，ＨＤＤ）またはソリッドステートドライブ（ｓｏｌｉｄ−ｓｔａｔｅ  ｄｒｉｖｅ，ＳＤＤ）を含み得る。また、メモリ７０２は、上記のタイプのメモリの組み合わせを含み得る。
【０１０４】
メモリ７０２は、以下の要素を格納する：実行可能モジュールまたはデータ構造、またはそれらのサブセット、またはそれらの拡張セット。
【０１０５】
様々な操作を実施するための様々な操作指示を含む操作指示。
【０１０６】
さまざまな基本サービスを実施し、ハードウェアベースのタスクを処理するためのさまざまなシステムプログラムを含むオペレーティングシステム。
【０１０７】
バス７０５は、ペリフェラルコンポーネントインターコネクト（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ，ＰＣＩ）バスまたは拡張産業標準アーキテクチャ（ｅｘｔｅｎｄｅｄ  ｉｎｄｕｓｔｒｙ  ｓｔａｎｄａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ，ＥＩＳＡ）バスなどであり得る。ババスは、アドレスバス、データバス、制御バスなどに分けることができる。わかりやすくするために、図７ではバスを１本の太い線で表していますが、１本のバスや１種類のバスだけを表しているわけではない。
【０１０８】
バスインターフェース７０４は、有線通信インターフェース、無線バスインターフェース、またはそれらの組み合わせであり得る。ここで、有線バスインターフェースは、例えば、イーサネットインターフェースであり得る。イーサネットインターフェースは、光インターフェース、電気インターフェース、またはそれらの組み合わせであり得る。無線バスインターフェースは、ＷＬＡＮインターフェースであり得る。
【０１０９】
プロセッサ７０１は、中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ，ＣＰＵ）、ネットワークプロセッサ（ｎｅｔｗｏｒｋ  ｐｒｏｃｅｓｓｏｒ，ＮＰ）、またはＣＰＵとＮＰの組み合わせであり得る。ハードウェアチップの場合もある。上記のハードウェアチップは、特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ，ＡＳＩＣ）、プログラマブルロジックデバイス（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ，ＰＬＤ）、またはそれらの組み合わせであり得る。上記のＰＬＤは、コンプレックスプログラマブルロジックデバイス（ｃｏｍｐｌｅｘ  ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ，ＣＰＬＤ）、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ，ＦＰＧＡ）、ジェネリックアレイロジック（ｇｅｎｅｒｉｃ  ａｒｒａｙ  ｌｏｇｉｃ，ＧＡＬ）、またはそれらの任意の組み合わせであり得る。
【０１１０】
前記プロセッサ７０１は、前記メモリ７０２内のプログラムを読み取って、以下の方法を実行するように構成される：ブロックを生成し、送受信機７０３を介してＮ個のアカウンティングノードのうちの他のアカウンティングノードに前記アカウンティングノードの検証情報をブロードキャストし、前記Ｎ個のアカウンティングノードはＭ個の選挙ノードによってブロードキャスされたトの選挙要求で運ばれるコインエイジ情報に従って決定され、Ｍは１以上であり、Ｎは１以上であり、ＭはＮ以上であり、送受信機７０３を介して前記他のアカウンティングノードによってブロードキャストされた確認情報を受信し、前記他のアカウンティングノードによってブロードキャストされた確認情報を検証し、ここで、前記他のアカウンティングノードによってブロードキャストされた確認情報は、受信された第２のアカウンティングノードの準備情報が第１の所定条件を満たすときに、第１のアカウンティングノードによって生成され、およびブロードキャストされる。前記第２のアカウンティングノードの準備情報は、前記アカウンティングノードの検証情報を検証するときに、第２のアカウンティングノードによって生成され、およびブロードキャストされ、前記第１のアカウンティングノードおよび前記第２のアカウンティングノードのそれぞれは、前記他のアカウンティングノードのいずれかであり、受信された前記他のアカウンティングノードによってブロードキャストされた確認情報が第２の所定条件を満たしたときに前記ブロックをブロックチェーンに追加するは、
前記メモリ７０２，１つ以上の実行可能プログラムを格納するように構成され、動作を実行するときにプロセッサ７０１によって使用されるデータを格納することができる任意選択で、プロセッサ７０１は、前記他のアカウンティングノードブロードキャストの準備情報を受信して検証し、受信された前記他のアカウンティングノードの準備情報が前記第１の所定条件を満たすときに、前記アカウンティングノードの確認情報を生成してブロードキャストする。
【０１１１】
任意選択で、送受信機７０３は、前記第１のアカウンティングノードによってブロードキャストされた確認情報および前記アカウンティングノードによってブロードキャストされた確認情報を受信する。プロセッサ７０１は、受信された確認情報が前記第２の所定条件を満たすときに、前記ブロックをブロックチェーンに追加する。
【０１１２】
任意選択で、プロセッサ７０１は、受信確認情報が検証に失敗したと判断したときに、前記確認情報のアカウンティングノードを障害ノードとして決定してブロードキャストし、第１の障害ノード除去要求をブロードキャストする。また、前記プロセッサ７０１は、第２の障害ノード除去要求を受信し、前記第２の障害ノード除去要求を検証し、前記第２の障害ノード除去要求は、前記他のアカウンティングノードが受信された前記第１の障害ノード除去要求が検証されたと判断した後、生成およびブロードキャストされる。送受信機７０３は、受信された前記第２の障害ノード除去要求が第４の所定条件を満たすときに、アカウンティングノードの再選択要求をブロードキャストする。その結果、非アカウンティングノードは、前記アカウンティングノード再選択要求を受信した後にアカウンティングノード競争に参加するための選挙要求をブロードキャストする。
【０１１３】
任意選択で、前記アカウンティングノードは、メインアカウンティングノードであり、前記他のアカウンティングノードはバックアップアカウンティングノードであり、前記メインアカウンティングノードは、前記Ｎ個のアカウンティングノードの中で選挙要求において最大のコインエイジ情報を運ぶアカウンティングノードであり、前記バックアップアカウンティングノードは、前記メインアカウンティングノードを除く前記Ｎ個のアカウンティングノードのうちのアカウンティングノードである。
【０１１４】
上記のユニットの分割は、論理機能の分割のみであり、これらのユニットは、完全にまたは部分的に物理エンティティに統合されてもよく、実際の実施では物理的に分離されてもよいことを理解されたい。本出願の一実施形態では、第１のブロードキャストモジュール４０１および第１の受信モジュール４０４は、送受信機７０３によって実施され得、検証モジュール４０２および第１の処理モジュール４０３は、プロセッサ７０１によって実施され得る。図７に示すように、電子デバイス７００は、プロセッサ７０１、送受信機７０３、およびメモリ７０２を含み得、メモリ７０２は、電子デバイス７００が工場を離れるときに事前にインストールされたプログラム／コードを格納するように構成され得、また、プロセッサ７０１などによって実行されていたコードを記憶し得る。
【０１１５】
上記から分かるように、本発明の実施形態において、プルーフオブワーク問題を解決することによってアカウンティングノードを決定する代わりに、選挙ノードのコインエイジに従って選挙ノードから複数のアカウンティングノードを選択するので、アカウンティングの決定効率が向上する。一方、リソース消費は削減される。つぎに、アカウンティングノードによってブロックが生成され、アカウンティングノードの情報とブロックの情報はブロードキャストされ、ブロードキャストの情報が他のアカウンティングノードによって検証された後にのみローカルブロックチェーンにブロックを追加できるため、ブロックチェーンネットワークの一貫性とセキュリティが確保される。さらに、アカウンティングノードはブロックを生成した直後にコンセンサスを作成でき、コンセンサスプロセスはプルーフオブワークの問題を解決する必要がないため、コンセンサスの効率が向上する。
【０１１６】
同じ思想に基づいて、本出願は、上記のアカウンティングノードの方法フローを実行するために使用することができる電子デバイスを提供する。図８は、本出願により提供される電子デバイスの構造概略図である。電子デバイスは、プロセッサ８０１、メモリ８０２、送受信機８０３、およびバスインターフェース８０４を含む。ここで、プロセッサ８０１、メモリ８０２、送受信機８０３、およびバスインターフェース８０４は、バス８０５を介して互いに接続されている。
【０１１７】
メモリ８０２は、プログラムを格納するために使用される。具体的には、プログラムは、コンピュータの操作命令を含むプログラムコードを含み得る。メモリ８０２は、揮発性メモリ（ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）、例えば、ランダムアクセスメモリ（ｒａｎｄｏｍ−ａｃｃｅｓｓ  ｍｅｍｏｒｙ，ＲＡＭ）を含み得る。メモリはまた、不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）、例えば、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）、ハードディスクドライブ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ，ＨＤＤ）またはソリッドステートドライブ（ｓｏｌｉｄ−ｓｔａｔｅ  ｄｒｉｖｅ，ＳＤＤ）を含み得る。また、メモリ７０２は、上記のタイプのメモリの組み合わせを含み得る。
【０１１８】
メモリ８０２は、以下の要素を格納する：実行可能モジュールまたはデータ構造、またはそれらのサブセット、またはそれらの拡張セット。
【０１１９】
様々な操作を実施するための様々な操作指示を含む操作指示。
【０１２０】
さまざまな基本サービスを実施し、ハードウェアベースのタスクを処理するためのさまざまなシステムプログラムを含むオペレーティングシステム。
【０１２１】
バス８０５は、ペリフェラルコンポーネントインターコネクト（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ，ＰＣＩ）バスまたは拡張産業標準アーキテクチャ（ｅｘｔｅｎｄｅｄ  ｉｎｄｕｓｔｒｙ  ｓｔａｎｄａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ，ＥＩＳＡ）バスなどであり得る。ババスは、アドレスバス、データバス、制御バスなどに分けることができる。わかりやすくするために、図７ではバスを１本の太い線で表していますが、１本のバスや１種類のバスだけを表しているわけではない。
【０１２２】
バスインターフェース８０４は、有線通信インターフェース、無線バスインターフェース、またはそれらの組み合わせであり得る。ここで、有線バスインターフェースは、例えば、イーサネットインターフェースであり得る。イーサネットインターフェースは、光インターフェース、電気インターフェース、またはそれらの組み合わせであり得る。無線バスインターフェースは、ＷＬＡＮインターフェースであり得る。
【０１２３】
プロセッサ８０１は、中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ，ＣＰＵ）、ネットワークプロセッサ（ｎｅｔｗｏｒｋ  ｐｒｏｃｅｓｓｏｒ，ＮＰ）、またはＣＰＵとＮＰの組み合わせであり得る。ハードウェアチップの場合もある。上記のハードウェアチップは、特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ，ＡＳＩＣ）、プログラマブルロジックデバイス（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ，ＰＬＤ）、またはそれらの組み合わせであり得る。上記のＰＬＤは、コンプレックスプログラマブルロジックデバイス（ｃｏｍｐｌｅｘ  ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ，ＣＰＬＤ）、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ，ＦＰＧＡ）、ジェネリックアレイロジック（ｇｅｎｅｒｉｃ  ａｒｒａｙ  ｌｏｇｉｃ，ＧＡＬ）、またはそれらの任意の組み合わせであり得る。
【０１２４】
前記プロセッサ８０１は、前記メモリ８０２内のプログラムを読み取って、以下の方法を実行するように構成される：他のノードから受信された選挙結果情報が第３の所定条件を満たすときに、前記選挙結果情報中のＮ個の選挙ノードをアカウンティングノードとして決定し、他のノードから受信された選挙結果情報が第３の所定条件を満たすときに、前記選挙結果情報中のＮ個の選挙ノードをアカウンティングノードとして決定する。
【０１２５】
前記送受信機８０３は、Ｍ個の選挙ノードによってブロードキャストされた選挙要求を受信し、前記Ｍ個の選挙ノードによってブロードキャストされた選挙要求で運ばれるコインエイジ情報に従って、前記Ｍ個の選挙ノードからＮ個の選挙ノードを決定し、前記Ｎ個の選挙ノードを含む選挙結果情報を生成してブロードキャストする。
【０１２６】
上記のユニットの分割は、論理機能の分割のみであり、これらのユニットは、完全にまたは部分的に物理エンティティに統合されてもよく、実際の実施では物理的に分離されてもよいことを理解されたい。本出願の一実施形態では、第２のブロードキャストモジュール５０２および第２の受信モジュール５０１は、送受信機８０３によって実施され得、第２の処理モジュール５０３は、プロセッサ８０１によって実施され得る。図８に示されるように、電子デバイス８００は、プロセッサ８０１、送受信機８０３、およびメモリ８０２を含み得、ここで、メモリ８０２電子デバイス８００が工場を離れるときに事前にインストールされたプログラム／コードを格納するように構成され得、また、プロセッサ８０１などによって実行されるコードを格納し得る。
【０１２７】
本分野の技術者として、本発明の実施形態が、方法、システム或いはコンピュータプログラム製品を提供できるため、本発明は完全なハードウェア実施形態、完全なソフトウェア実施形態、またはソフトウェアとハードウェアの両方を結合した実施形態を採用できることがわかるはずである。さらに、本発明は、一つ或いは複数のコンピュータプログラム製品の形式を採用できる。当該製品はコンピュータ使用可能なプログラムコードを含むコンピュータ使用可能な記憶媒体（ディスク記憶装置、ＣＤ−ＲＯＭ、光学記憶装置等を含むがそれとは限らない）において実施する。
【０１２８】
以上は本発明の実施形態の方法、装置（システム）、およびコンピュータプログラム製品のフロー図および／またはブロック図によって、本発明を記述した。理解すべきことは、コンピュータプログラム命令によって、フロー図および／またはブロック図における各フローおよび／またはブロックと、フロー図および／またはブロック図におけるフローおよび／またはブロックの結合を実現できる。プロセッサはこれらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ、組込み式処理装置、或いは他のプログラム可能なデータ処理装置設備の処理装置器に提供でき、コンピュータ或いは他のプログラム可能なデータ処理装置のプロセッサは、これらのコンピュータプログラム命令を実行し、フロー図における一つ或いは複数のフローおよび／またはブロック図における一つ或いは複数のブロックに指定する機能を実現する。  
これらのコンピュータプログラム命令は又、また、コンピュータ或いは他のプログラム可能なデータ処理装置を特定方式で動作させるコンピュータ読取記憶装置に記憶できる。これによって、命令を含む装置は当該コンピュータ読取記憶装置内の命令を実行でき、フロー図における一つ或いは複数のフローおよび／またはブロック図における一つ或いは複数のブロックに指定する機能を実現する。
【０１２９】
これらコンピュータプログラム命令はさらに、コンピュータ或いは他のプログラム可能なデータ処理装置設備に実装もできる。コンピュータプログラム命令が実装されたコンピュータ或いは他のプログラム可能設備は、一連の操作ステップを実行することによって、関連の処理を実現し、コンピュータ或いは他のプログラム可能な設備において実行される命令によって、フロー図における一つ或いは複数のフローおよび／またはブロック図における一つ或いは複数のブロックに指定する機能を実現する。  
無論、当業者によって、上述した実施形態に記述された技術的な解決手段を改造し、或いはその中の一部の技術要素を置換することもできる。そのような、改造と置換は本発明の各実施形態の技術の範囲から逸脱するとは見なされない。そのような改造と置換は、すべて本発明の請求の範囲に属する。
【符号の説明】
【０１３０】
４００アカウンティングノード
４０１  第１のブロードキャストモジュール
４０２  検証モジュール
４０３  第１の処理モジュール
４０４  第１の受信モジュール
５００  ノード
５０１  第２の受信モジュール
５０２  第２のブロードキャストモジュール
５０３  第２の処理モジュール
６０１  メモリ
６０２  プロセッサ
６０３  入力装置
６０４  出力装置
７００  電子デバイス
７０１  プロセッサ
７０２  メモリ
７０３  送受信機
７０４  バスインターフェース
７０５  バス
８００  電子デバイス
８０１  プロセッサ
８０２  メモリ
８０３  送受信機
８０４  バスインターフェース
８０５  バス
【図１】
2021521555.tif 000003
【図２ａ】
2021521555.tif 000004
【図２ｂ】
2021521555.tif 000005
【図３】
2021521555.tif 000006
【図４】
2021521555.tif 000007
【図５】
2021521555.tif 000008
【図６】
2021521555.tif 000009
【図７】
2021521555.tif 000010
【図８】
2021521555.tif 000011
【手続補正書】
【提出日】令和2年11月2日(2020.11.2)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図２ｂ
【補正方法】変更
【補正の内容】
【図２ｂ】
2021521555.tif 000012
【国際調査報告】
2021521555.tif 000013
2021521555.tif 000014
2021521555.tif 000015
2021521555.tif 000016
2021521555.tif 000017