JP2020522150A - コンセンサスノード選択方法および装置、ならびにサーバ - Google Patents

コンセンサスノード選択方法および装置、ならびにサーバ Download PDF

Info

Publication number
JP2020522150A
JP2020522150A JP2019553281A JP2019553281A JP2020522150A JP 2020522150 A JP2020522150 A JP 2020522150A JP 2019553281 A JP2019553281 A JP 2019553281A JP 2019553281 A JP2019553281 A JP 2019553281A JP 2020522150 A JP2020522150 A JP 2020522150A
Authority
JP
Japan
Prior art keywords
node
voting
consensus
allocation
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019553281A
Other languages
English (en)
Other versions
JP6889275B2 (ja
Inventor
チャン・タン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2020522150A publication Critical patent/JP2020522150A/ja
Application granted granted Critical
Publication of JP6889275B2 publication Critical patent/JP6889275B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61MDEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
    • A61M5/00Devices for bringing media into the body in a subcutaneous, intra-vascular or intramuscular way; Accessories therefor, e.g. filling or cleaning devices, arm-rests
    • A61M5/14Infusion devices, e.g. infusing by gravity; Blood infusion; Accessories therefor
    • A61M5/1407Infusion of two or more substances
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61MDEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
    • A61M5/00Devices for bringing media into the body in a subcutaneous, intra-vascular or intramuscular way; Accessories therefor, e.g. filling or cleaning devices, arm-rests
    • A61M5/14Infusion devices, e.g. infusing by gravity; Blood infusion; Accessories therefor
    • A61M5/142Pressure infusion, e.g. using pumps
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61MDEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
    • A61M5/00Devices for bringing media into the body in a subcutaneous, intra-vascular or intramuscular way; Accessories therefor, e.g. filling or cleaning devices, arm-rests
    • A61M5/14Infusion devices, e.g. infusing by gravity; Blood infusion; Accessories therefor
    • A61M5/168Means for controlling media flow to the body or for metering media to the body, e.g. drip meters, counters ; Monitoring media flow to the body
    • A61M5/172Means for controlling media flow to the body or for metering media to the body, e.g. drip meters, counters ; Monitoring media flow to the body electrical or electronic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/60ICT specially adapted for the handling or processing of patient-related medical or healthcare data for patient-specific data, e.g. for electronic patient records
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H20/00ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance
    • G16H20/10ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance relating to drugs or medications, e.g. for ensuring correct administration to patients
    • G16H20/17ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance relating to drugs or medications, e.g. for ensuring correct administration to patients delivered via infusion or injection
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
    • G16H40/63ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for local operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61MDEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
    • A61M5/00Devices for bringing media into the body in a subcutaneous, intra-vascular or intramuscular way; Accessories therefor, e.g. filling or cleaning devices, arm-rests
    • A61M5/14Infusion devices, e.g. infusing by gravity; Blood infusion; Accessories therefor
    • A61M5/142Pressure infusion, e.g. using pumps
    • A61M2005/14208Pressure infusion, e.g. using pumps with a programmable infusion control system, characterised by the infusion program
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61MDEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
    • A61M2205/00General characteristics of the apparatus
    • A61M2205/50General characteristics of the apparatus with microprocessors or computers
    • A61M2205/52General characteristics of the apparatus with microprocessors or computers with memories providing a history of measured variating parameters of apparatus or patient
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Databases & Information Systems (AREA)
  • Biomedical Technology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Vascular Medicine (AREA)
  • Hematology (AREA)
  • Veterinary Medicine (AREA)
  • Animal Behavior & Ethology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Anesthesiology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Primary Health Care (AREA)
  • Medical Informatics (AREA)
  • Epidemiology (AREA)
  • Business, Economics & Management (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Medicinal Chemistry (AREA)
  • Chemical & Material Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Tourism & Hospitality (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Child & Adolescent Psychology (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)

Abstract

少なくとも1つの期待ノードへの割当保有ノードの持分投票結果が得られ、ここで割当保有ノードは、所定の総割当の少なくとも1つを所有するノードから成る。持分投票結果に基づいて、持分投票後に各割当保有ノードによって所有される割当数が決定される。持分投票後に各割当保有ノードによって所有される割当数に基づいてコンセンサスノード選択結果が決定される。

Description

関連出願の相互参照
本出願は、2017年8月24日に出願の中国特許出願第201710736740.5号に対する優先権を主張するものであり、その全体が引用により本明細書に援用される。
本明細書は、コンピュータデータ処理技術の分野に属し、特に、コンセンサスノード選択方法および装置、ならびにサーバに属する。
ブロックチェーン技術は、概して、非集中化、透明性、耐タンパ性、信用等といった特性を持つ非集中型分散データベース技術である。それは、パブリックまたはプライベートピアツーピアネットワークにデータ情報を記録するために使用できる。ブロックチェーンのデータ整合性を保証するために、データは、コンセンサスアルゴリズムを使用することによってブロックチェーン上で生成および更新される。実用的ビザンチン障害耐性(PBFT)アルゴリズムが、業界において一般的に使用される分散整合性コンセンサスアルゴリズムである。
PBFTは状態機械複製アルゴリズムである。通常、一部のノードが、コンセンサス処理のためのコンセンサスノードとしてブロックチェーン上の複数のノードから選択される。通常、コンセンサスに参加できるコンセンサスノードは4から11である。現在、PBFTでは、コンセンサスノード選択のためのアルゴリズムが、主にランダム選択および固定選択を含む。ランダムコンセンサスノード選択では、新たに選択されたコンセンサスノードを全てのノードに承認させるようにアルゴリズムを設計することは困難であり、ノード選択自体が複雑なコンセンサス到達プロセスである。固定コンセンサスノード選択は実装の点でランダム選択より単純であり、例えば、全てのノードにソースコードが分配される必要があるだけである。しかしながら、この方法は、障害が発生すると、またはコンセンサスノードが何らかの理由で更新されると困難になる。
現在、実装および維持するのが簡単で、非常に効率的で、かつ信頼できるPBFTコンセンサスノード選択解決策の必要性が業界にある。
本明細書の1つまたは複数の実装例は、PBFTでより簡単に、より効率的にかつより信頼できるようにコンセンサスノードを選択する、コンセンサスノード選択方法および装置、ならびにサーバを提供するように意図される。
本明細書の1つまたは複数の実装例に提供されるコンセンサスノード選択方法および装置ならびにサーバは、以下の方法を使用することによって実装される。
コンセンサスノード選択方法は、少なくとも1つの選択される期待ノードへの割当保有ノード(shareholder node)の持分投票結果を取得するステップであって、割当保有ノードが、所定の総持分権の少なくとも1つを所有するノードを含む、ステップと、持分投票結果に基づいて、持分投票後に各割当保有ノードによって所有される割当数を決定するステップと、持分投票後に各割当保有ノードによって所有される割当数に基づいてコンセンサスノード選択結果を決定するステップとを含む。
コンセンサスノード選択装置は、少なくとも1つの選択される期待ノードへの割当保有ノードの持分投票結果を取得するように構成され、少なくとも1つの割当保有ノードが、所定の総割当の少なくとも1つを所有するノードを含む、投票結果取得モジュールと、持分投票結果に基づいて、持分投票後に各割当保有ノードによって所有される割当数を決定するように構成される、投票結果決定モジュールと、持分投票後に各割当保有ノードによって所有される割当数に基づいてコンセンサスノード選択結果を決定するように構成される、コンセンサスノード決定モジュールとを含む。
コンセンサスノード選択装置は、プロセッサおよびプロセッサ実行可能命令を記憶するように構成されるメモリを含む。プロセッサは、命令を実行して、少なくとも1つの期待ノードへの割当保有ノードの持分投票結果を取得する。ここで割当保有ノードは、所定の総割当の少なくとも1つを所有するノードを含んでおり、持分投票結果に基づいて、持分投票後に各割当保有ノードによって所有される割当数を決定し、そして持分投票後に各割当保有ノードによって所有される割当数に基づいてコンセンサスノード選択結果を決定する。
サーバは、少なくとも1つのプロセッサおよびプロセッサ実行可能命令を記憶するように構成されるメモリを含む。プロセッサは、命令を実行して、少なくとも1つの期待ノードへの割当保有ノードの持分投票結果を取得する。ここで割当保有ノードは、所定の総割当の少なくとも1つを所有するノードを含んでおり、持分投票結果に基づいて、持分投票後に各割当保有ノードによって所有される割当数を決定し、そして持分投票後に各割当保有ノードによって所有される割当数に基づいてコンセンサスノード選択結果を決定する。
本明細書の1つまたは複数の実装例に提供されるコンセンサスノード選択方法および装置、ならびにサーバにおいて、割当保有ノードが持分投票を行い、そして投票結果において割当保有ノードによって所有される割当数に基づいてコンセンサスに参加するようにノードを選択できる。本方法は実装するのが簡単である。選択結果は実在して有効であり、そして投票結果はネットワーク全体に開示されて他のノードによって承認できる。本明細書における実装解決策に基づき、持分投票後の割当比率に基づいてコンセンサスノードが迅速に選択できる。そのため、コンセンサスプロセスでの消費が低減され、コンセンサス処理ステップが単純化され、コンセンサスノード選択効率が改善され、そして選択結果はより信頼できる。
本明細書の実装例における、または既存技術における技術的解決策をより明確に説明するために、以下、実装例または既存技術を説明するための添付図面を簡単に説明する。明らかに、以下の説明における添付図面は単に本明細書の一部の実装例を図示するだけであり、当業者は創造的努力なしでこれらの添付図面から他の図面をさらに導き出せる。
本明細書の一実装例に係る、証明書サーバによって応対されるノードおよびブロックチェーンノードへの所定の総割当の配分を例示する概要構造図である。 明細書に係る、実装シナリオにおける方法の処理プロセスを例示する概要図である。 本明細書に係る、同方法の別の実装例を例示する概要フローチャートである。 本明細書の一実装例に係る、ブロックチェーンネットワークにおいてコンセンサスノードを選択するシナリオを例示する概要図である。 本明細書の一実装例に係る、コンセンサスノード選択装置におけるモジュールを例示する概要構造図である。 本明細書の別の実装例に係る、コンセンサスノード選択装置におけるモジュールを例示する概要構造図である。 本明細書の一実装例に係る、サーバを例示する概要構造図である。 本開示の一実装例に係る、ブロックチェーンにおいてコンセンサスノードを選択するためのコンピュータ実装方法の一例を例示するフローチャートである。
当業者に本明細書における技術的解決策をより良く理解させるために、以下、本明細書の実装例における添付図面を参照しつつ本明細書の実装例における技術的解決策を明確かつ包括的に説明する。明らかに、記載される実装例は、本明細書の実装例の全部よりむしろ単に一部である。創造的努力なしで本明細書の実装例に基づいて当業者によって得られる他の実装例は本明細書の保護範囲内に納まるものとする。
本明細書が以下の実装例または添付図面に本方法の動作ステップまたは本装置の構造を提供するが、本方法または本装置は、従来のまたは非創造的な努力に基づいて、より多くの動作ステップもしくはモジュールユニット、または一部の動作ステップもしくはモジュールユニットの組み合わせ後により少ない動作ステップもしくはモジュールユニットを含み得る。必要な論理的因果関係のないステップまたは構造では、ステップの実行順序または本装置のモジュール構造は、本明細書における実装例または添付図面に図示される実行順序またはモジュール構造に限定されない。本方法またはモジュール構造が実際の装置、サーバまたは最終製品に適用されるとき、本方法またはモジュール構造は、実装例または添付図面に図示される方法またはモジュール構造に基づく順序で実行できる、または(例えば、並列処理の環境で、マルチスレッド処理環境で、ならびに分散処理環境およびサーバクラスタ環境でさえ)並列に実行できる。
PBFTは、状態機械複製アルゴリズム、すなわち、モデル化のための状態機械として使用されるサービスである。サービスは、通常、サーバによって提供される特定応用サービスである。例えば、移動を完了するために、サービス「移動」は状態機械としてモデル化できる。状態機械は分散システムにおける異なるノードに複製される。一般に、状態機械の各コピーがサービス状況を記憶し、そしてサービス動作を実装する。ブロックチェーン上のノード数が一定数を超えると、コンセンサスに参加するノードがコンセンサス効率を低下させ得る。したがって、一部のノードが、コンセンサスに参加するように、或る方法を使用することによってコンセンサスノードとしてブロックチェーン上のノードから選択される必要がある。例えば、モデル化を通じてコピーが生成され、そして他のノードはコンセンサス結果が同期される(例えば、複製される)だけであり、コンセンサスプロセスには参加しない。
PBFTコンセンサスアルゴリズムでは、通常、コンセンサスに参加するノードは4から11である。コンセンサスに参加するノードが4つ未満であれば、PBFTアルゴリズムは無効になる。コンセンサスに参加するノードが11を超えれば、ノードの増加と共にコンセンサス性能が低下する。ビザンチン障害耐性およびコンセンサス性能のバランスをとるために、一部のノードが、コンセンサスに参加するように多数のノードからコンセンサスノードとして選択される必要がある。コンセンサスは、通常、ブロックチェーン上の分散ノードが同じアルゴリズムおよび同じデータ形式(または同じ処理プロトコル)を使用して、異なる言語を使用することによってデータを生成および更新できることを示す。本明細書の実装例は、持分投票に基づく効果的なPBFTコンセンサスノード選択方法を提供する。本方法は実装するのが簡単である。選択されるノードは実在して有効であり、かつ他のノードによって承認できる。具体的な実装例において、証明書サーバが導入でき、そして証明書サーバの公開鍵がブロックチェーン上の作成ブロック(ブロックチェーン上のデータ記憶ブロック)へ書き込める。ブロックチェーン上の各ノードはルート証明書サーバにルート証明書を申請する必要がある。ルート証明書は、ノード識別情報の有効性を証明するために使用できる。
本実装例において、総割当数はあらかじめ決定できる。例えば、ブロックチェーン上の全てのノードの総割当数は100に設定できる。本明細書の本実装例において、割当は等しい権限(または重み)を有することができ、そして割当はブロックチェーン上の1つのノードから別のノードに移動できる。割当は資産と考えることができ、そしてブロックチェーン上で取引できる。割当の有効性は、作成ブロックに記録される情報に基づいてトランザクション確認プロセスで証明できる。総割当数は、実ノード数、実装環境等に基づいて決定できる。一般に、決定した総割当数は一意であり、不変のままである。もちろん、本明細書の他の実装例において、総割当数はサービス処理要件に基づいて増減でき、例えば、新たにアクセスされた重要なノードはそれ自身で10割当を所有する。総割当は、サービス規則に基づいて対応するノードに配分できる。具体的な配分規則は、ノードサイズ、トラフィック量、重要性等に基づいて決定できる。本明細書の1つまたは複数の実装例において、所定の総割当のうちの割当が配分されたノードが割当保有ノードと称することができる、または所定の総割当の少なくとも1つを所有するノードとして理解できる。図1は、本明細書に係る、証明書サーバによって応対されるノードおよびブロックチェーンノードへの所定の総割当の配分を例示する概要構造図である。
したがって、PBFTでコンセンサスノードが選択される必要があるとき、割当を所有するノードは期待ノードに投票することを選べ、そして投票結果はブロックチェーンネットワーク全体にブロードキャストできる。投票後に、各ノードは、同じ持分投票結果を受信し、次いで各ノードによって所有される割当数に基づいてコンセンサスノード選択結果を決定できる。具体的な実装例が図2に図示される。本明細書はコンセンサスノード選択方法の一実装例を提供する。本方法は以下のステップを含むことができる。
S2.少なくとも1つの期待ノードへの割当保有ノードの持分投票結果を取得し、ここで割当保有ノードは、所定の総割当の少なくとも1つを所有するノードを含む。
割当保有ノードが投票するノードは期待ノードと称することができる。期待ノードは、割当を所有する割当保有ノードを含むことができる、または投票前に割当を所有しないノードを含むことができる。一実装例において、割当を所有するノードは、どのノードに投票することでも独立して選べる。期待ノードを選択するための根拠は、ノードサービス性能安定性、ノードサービス容量、オペレータによって決定される選択ポリシー等を含むことができるが、これらに限定されない。本明細書の一実装例において、選択される期待ノードは、割当を投票するための所定のコンセンサスノード選択条件に基づいて割当保有ノードによって選択される少なくとも1つのノードを含むことができる。
所定のコンセンサスノード選択条件は、ノードサービス性能安定性、ノードサービス容量、オペレータによって決定される選択ポリシー等の少なくとも1つを含むことができる。割当保有ノードは、それ自身に投票できる、または別のノードに投票できる。
本明細書の本実装例において、割当を所有するノード(割当保有ノード)が投票でき、割当のない一般ノードは投票できない。
一実装例において、割当保有ノードの総票数は、割当保有ノードによって所有される投票割当数だけである。投票割当は、コンセンサスノード選択中に他の割当保有ノードが投票する割当を含まない。したがって、本明細書に提供される本方法の別の実装例において、割当が投票を通じてブロックチェーン上のノード間で有効に移動される回数は、単一のコンセンサスノード選択プロセスにおいて1に設定される。
本実装例において、割当保有ノードは、それ自身に投票できる、または別のノードに投票できる。割当保有ノードは、他の割当保有ノードから得られた票を移動できない。コンセンサスノード選択のための単一の投票プロセスでは、各割当は、割当保有ノードによって一度だけ投票するために使用できる。
具体例では、ノード1が10割当を有し、そして10割当が投票割当である。ノード1がノード2に6割当を投票し、そしてノード3がノード1に3割当を投票する。この時点でノード1が7割当を有するが、それらのうちの3つは別のノードによってノード1に投票されて、投票割当でないので、ノード1は持分投票のために使用できる4割当を有する。ノード1は、それ自身に投票できる、または別の期待ノードに投票できる。
本明細書の別の実装例において、割当保有ノードの持分投票の投票結果にデジタル署名を付けることができる。そのため、別のノードが割当保有ノードの投票結果を偽造するのを防止できる。デジタル署名は、割当保有ノードがそれ自身の投票結果を否定するのを防止するために、投票結果の検証データとしても使用できる。そのため、持分投票結果の信頼性および安全性が大いに改善される。本明細書に提供される一実装例において、持分投票結果は、割当保有ノードによってその秘密鍵を使用して期待ノードの持分投票結果にデジタル署名して生成できる。
それに応じて、持分投票結果を取得した後に、本方法はさらに以下を含む。
S20.割当保有ノードの対応する公開鍵を使用することによって持分投票結果を検証する。
図3は、本明細書に係る、本方法の別の実装例を例示する概要フローチャートである。本実装例において、投票結果上の署名に署名するために非対称暗号化における秘密鍵が使用でき、そして対応する公開鍵が他のノードにブロードキャストできる。それに応じて、持分投票結果および持分投票結果の送信側が有効(正当)であるかどうかを確認するために、秘密鍵を使用することによって署名が署名された結果は、対応するノードの公開鍵を使用することによって検証できる。持分投票結果が無効であれば、警報を発することができる、または別の所定の処理動作を行うことができる。
S4.持分投票結果に基づいて、持分投票後に各割当保有ノードによって所有される割当数を決定する。
割当保有ノードが投票した後に、割当保有ノードの持分投票結果はブロックチェーン上の全てのノードにブロードキャストできる。そのため、ブロックチェーン上の各ノードが割当保有ノードの持分投票結果を受信でき、そしてノードは同じ持分投票結果を受信できる。本実装例において、全ての割当保有ノードが投票した後に、ノードへの割当配分構造が通常変化する。例えば、元々割当を所有するノードが別のノードに全ての割当を投票した一方で、他のノードから票を受けていなければ、そのノードは目下割当を有しない。すなわち、持分投票前に、ノードは割当保有ノードであった。しかし、持分投票後に、ノードは割当のない一般ノードに変わった。持分投票前に割当のない一般ノードが持分投票後に割当を所有すれば、それは新たな割当保有ノードになる。
したがって、持分投票後に、割当保有ノードまたは一般ノードが、受信した持分投票結果またはそれ自身の持分投票結果に基づいて、各割当保有ノードによって所有される割当数を決定できる。本実装例の実装シナリオでは、持分投票後、全ての割当保有ノードの割当の和は持分投票前後で不変のままである。
具体例では、持分投票前に、割当保有ノード10が20割当を所有し、割当保有ノード11が25割当を所有し、割当保有ノード15が30割当を所有し、割当保有ノード8が10割当を所有し、そして割当保有ノード6が15割当を所有する。持分投票後に、全てのノードが同じ持分投票結果を受信する。割当保有ノード10によって受信される持分投票結果は次の通りであり得る:割当保有ノード10が9割当を所有し、割当保有ノード11が20割当を所有し、割当保有ノード15が35割当を所有し、割当保有ノード8が3割当を所有し、割当保有ノード6が20割当を所有し、そして割当保有ノード7が13割当を所有する。持分投票後に、当初の割当保有ノードによって所有される割当数が変化しただけでなく、新たな割当保有ノード7も現れて13割当を所有する。
S6.持分投票後に各割当保有ノードによって所有される割当数に基づいてコンセンサスノード選択結果を決定する。
持分投票結果が得られた後、各現在の割当保有ノードによって所有される割当数に基づいてコンセンサスノード選択結果が決定できる。選択されるコンセンサスノードの具体数および選択方法は実際の応用シナリオまたは処理要件に基づいて設定できる。例えば、最多割当を所有する5つの割当保有ノードがコンセンサスノードとして選択される。
本明細書に提供される本方法の別の実装シナリオでは、持分投票後に同数の割当を所有するノードがあり得る。例えば、ノード10およびノード11が各々20割当を所有する。しかしながら、コンセンサスノード数の制限のため(例えば、5つのコンセンサスノードが選択される必要があり、4つのコンセンサスノードが決定されており、各決定したコンセンサスノードが20を超える割当を所有する)、ノード10およびノード11の一方がコンセンサスノードとして選択される必要がある。本明細書に提供される一実装例において、同数の割当を所有するノードがある場合、ノードルート証明書を生成する時系列に基づいてコンセンサスノードが選択できる。別の実装例において、持分投票後に各割当保有ノードによって所有される割当数に基づいてコンセンサスノード選択結果を決定することは、以下のステップを含むことができる。
S601.割当保有ノードに、持分投票後に同数の割当を所有するノードを含む場合、ノードルート証明書を生成する時系列に基づいて同数の割当を所有するノードからコンセンサスノードを選択し、ここでノードルート証明書は、ノード識別情報を証明するために使用され、かつブロックチェーン上のノードによって特定の証明書サーバに申請される、データ情報を含む。
上記したように、一実装方法において、ブロックチェーンに追加される前に、ブロックチェーン上のノードは、ノードが有効であることを証明するために使用されるルート証明書を指定の証明書サーバに申請する必要がある。ノードがブロックチェーンに早く追加されるほど、ノードのルート証明書は早く生成される。一般に、ノードがブロックチェーンに早く追加されるほど、その実行パラメータ、サーバ性能、データ処理ポリシー等は安定し、最適でかつ信頼できる。したがって、本実装例において、同数の割当を所有するノードがある場合、より早く生成されたルート証明書を持つノードがコンセンサスノードとして優先的に選択できる。具体例では、ルート証明書を生成する時間を含む情報を使用することによってルート証明書が番号付けされる場合、コンセンサスノードはルート証明書の番号の昇順に選択できる。
図4は、本明細書の一実装例に係る、ブロックチェーンネットワークにおいてコンセンサスノードを選択するシナリオを例示する概要図である。本明細書の1つまたは複数の実装例は、コンセンサスノード選択方法を提供する。割当保有ノードが持分投票を行い、そして投票結果において割当保有ノードによって所有される割当数に基づいてコンセンサスに参加するようにノードを選択できる。本方法は実装するのが簡単である。選択結果は実在して有効であり、そして投票結果はネットワーク全体に開示されて他のノードによって承認できる。本明細書における実装解決策に基づき、持分投票後の割当比率に基づいてコンセンサスノードが迅速に選択できる。そのため、コンセンサスプロセスでの消費が低減され、コンセンサス処理ステップが単純化され、コンセンサスノード選択効率が改善され、そして選択結果はより信頼できる。
前述のコンセンサスノード選択方法に基づいて、本明細書は、コンセンサスノード選択装置をさらに提供する。本装置は、本明細書の1つまたは複数の実装例における方法においてシステム(分散システムを含む)、ソフトウェア(アプリケーション)、モジュール、コンポーネント、サーバ、クライアント、量子コンピュータ等を使用し、かつ必要な実装ハードウェアを含む装置を含むことができる。同じ発明概念に基づいて、本明細書の1つまたは複数の実装例に提供される装置が以下の実装例に記載される。問題を解決するための本装置の実装解決策は本方法の実装解決策と類似している。したがって、本明細書における本装置の1つまたは複数の具体的な実装例については、前述の方法の実装例を参照されたい。詳細は再度ここで記載されることはない。以下、用語「ユニット」または「モジュール」は、所定の機能のソフトウェアおよび/またはハードウェアの組合せを実装できる。以下の実装例に記載される装置が好ましくはソフトウェアを使用することによって実装されるが、本装置はハードウェアまたはソフトウェアおよびハードウェアの組合せを使用することによっても実装できる。
図5は、本明細書の一実装例に係る、コンセンサスノード選択装置におけるモジュールを例示する概要構造図である。図5に図示されるように、本装置は、少なくとも1つの期待ノードへの割当保有ノードの持分投票結果を取得するように構成され、割当保有ノードが、所定の総割当の少なくとも1つを所有するノードを含む、投票結果取得モジュール101と、持分投票結果に基づいて、持分投票後に各割当保有ノードによって所有される割当数を決定するように構成される、投票結果決定モジュール102と、持分投票後に各割当保有ノードによって所有される割当数に基づいてコンセンサスノード選択結果を決定するように構成される、コンセンサスノード決定モジュール103とを含むことができる。
総割当数は、実ノード数、実装環境等に基づいて決定できる。一般に、決定した総割当数は一意であり、不変のままである。総割当は、サービス規則に基づいて対応するノードに配分できる。具体的な配分規則は、ノードサイズ、トラフィック量、重要性等に基づいて決定できる。
PBFTでコンセンサスノードが選択される必要があるとき、割当を所有するノードは期待ノードに投票することを選べ、そして投票結果はブロックチェーンネットワーク全体にブロードキャストできる。投票後に、ノードは、同じ持分投票結果を受信し、次いで各ノードによって所有される割当数に基づいてコンセンサスノード選択結果を決定できる。本明細書における本装置の実装解決策に基づき、持分投票後の割当比率に基づいてコンセンサスノードが迅速に選択できる。そのため、コンセンサスプロセスでの消費が低減され、コンセンサス処理ステップが単純化され、コンセンサスノード選択効率が改善され、そして選択結果はより信頼できる。
本明細書に提供される本装置の別の実装例において、割当保有ノードに、持分投票後に同数の割当を所有するノードを含む場合、コンセンサスノード決定モジュール103は、ノードルート証明書を生成する時系列に基づいて同数の割当を所有するノードからコンセンサスノードを選択する。ノードルート証明書は、ノード識別情報を証明するために使用され、かつ特定の証明書サーバにブロックチェーン上のノードによって申請される、データ情報を含む。
図6は、本明細書の別の実装例に係る、コンセンサスノード選択装置におけるモジュールを例示する概要構造図である。図6に図示されるように、本明細書によって提供される本装置の一実装例において、持分投票結果は、割当保有ノードが、割当保有ノードの秘密鍵を使用することによって、期待ノードへの持分投票後に生成される投票結果上の署名に署名した後に生成される持分投票結果を含むことができる。
それに応じて、本装置は、持分投票結果が得られた後に割当保有ノードの対応する公開鍵を使用することによって持分投票結果を検証するように構成される、検証モジュール104をさらに含むことができる。
一実装例において、割当を所有するノードは、どのノードに投票するかを独立して選べる。期待ノードを選択するための根拠は、ノードサービス性能安定性、ノードサービス容量、オペレータによって決定される選択ポリシー等を含むことができるが、これらに限定されない。本明細書に提供される本装置の別の実装例において、選択される期待ノードは、割当を投票するための所定のコンセンサスノード選択条件に基づいて割当保有ノードによって選択される少なくとも1つのノードを含むことができる。
一実装例において、割当保有ノードの総票数は、割当保有ノードによって所有される投票割当数だけと設定できる。投票割当は、コンセンサスノード選択中に割当保有ノードに他の割当保有ノードが投票する割当を含まない。したがって、本装置の別の実装例において、割当が投票を通じてブロックチェーン上のノード間で有効に移動される回数は、単一のコンセンサスノード選択プロセスにおいて1に設定される。
この実装例において、コンセンサスノード選択のための単一の投票プロセスでは、各割当は、割当保有ノードによって一度だけ投票するために使用でき、そして割当保有ノードは、他の割当保有ノードから得られた票を移動できない。
前述の実装例における装置は単一のノードに実装でき、そして一般ノードまたは割当保有ノードを含むことができる。投票結果がブロックチェーンネットワークにおける全てのノードにブロードキャストされ、そして全てのノードが同じ持分投票結果を受信するので、各ノードが持分投票結果に基づいてコンセンサスノード選択結果を確認できる。
本明細書における前述の装置の説明が関連方法実装例の説明に基づく別の実装例をさらに含むことができることに留意する価値がある。本明細書における実装例は全て漸進的に記載される。実装例における同じまたは類似の部分については相互参照が行える。各実装例は他の実装例との差異に重点を置いている。モジュール装置実装例は方法実装例と類似しており、したがって簡潔に記載される。関連部分については、方法実装例における部分説明を参照されたい。
本明細書の具体的な実装例が上記されている。他の実装例は添付の請求項の範囲内に納まる。一部の状況では、請求項に記録される動作またはステップは実装例における順と異なる順に行うことができ、それでも所望の結果を達成できる。加えて、添付図面に記載されるプロセスは、所望の結果を達成するために、必ずしも図示された順または順序を必要とするわけではない。一部の実装例において、マルチタスク処理および並列処理も実行可能または場合により有利である。
本明細書は、コンセンサスノード選択装置を提供する。割当保有ノードが持分投票を行い、そして投票結果において割当保有ノードによって所有される割当数に基づいてコンセンサスに参加するようにノードを選択できる。本方法は実装するのが簡単である。選択結果は実在して有効であり、そして投票結果はネットワーク全体に開示されて他のノードによって承認できる。本明細書における実装解決策に基づき、持分投票後の割当比率に基づいてコンセンサスノードが迅速に選択できる。そのため、コンセンサスプロセスでの消費が低減され、コンセンサス処理ステップが単純化され、コンセンサスノード選択効率が改善され、そして選択結果はより信頼できる。
本明細書に提供されるコンセンサスノード選択方法は、コンピュータにおいて対応するプログラム命令を実行するプロセッサによって実装できる。例えば、それは、WindowsオペレーティングシステムにおいてC++言語を使用することによってPC端において実装でき、またはLinux(登録商標)、Android、iOSなどの別のシステムにおいて対応するプログラム設計言語を使用することによって実装でき、または量子コンピュータの処理論理に基づいて実装できる。本明細書におけるコンセンサスノード選択のための装置の一実装例において、本装置は、プロセッサおよびプロセッサ実行可能命令を記憶するように構成されるメモリを含むことができる。プロセッサは、命令を実行して、少なくとも1つの期待ノードへの割当保有ノードの持分投票結果を取得し、ここで割当保有ノードは、所定の総割当の少なくとも1つを所有するノードを含んでおり、持分投票結果に基づいて、持分投票後に各割当保有ノードによって所有される割当数を決定し、そして持分投票後に各割当保有ノードによって所有される割当数に基づいてコンセンサスノード選択結果を決定する。
本明細書における前述の装置の説明が関連方法実装例の説明に基づく別の実装例をさらに含むことができることに留意する価値がある。本明細書における実装例は全て漸進的に記載される。実装例における同じまたは類似の部分については相互参照が行える。各実装例は他の実装例との差異に重点を置いている。ハードウェア+プログラム実装例は方法実装例と類似しており、したがって簡潔に記載される。関連部分については、方法実装例における部分説明を参照されたい。
前述の装置または方法は、ブロックチェーンサービスシステムのサーバがブロックチェーンネットワークにおいてコンセンサスノードを選択または確認するために使用できる。コンセンサスノード選択のための処理サーバは、持分投票後の割当比率に基づいてコンセンサスノードを迅速に選択できる。そのため、コンセンサスプロセスでの消費が低減され、コンセンサス処理ステップが単純化され、コンセンサスノード選択効率が改善され、そして選択結果はより信頼できる。サーバは、本明細書における1つまたは複数の方法実装例または装置実装例においてシステム(分散システムを含む)、ソフトウェア(アプリケーション)、モジュール、コンポーネント、サーバ、クライアント、量子コンピュータ等を使用し、かつ必要な実装ハードウェアを含む最終装置を含むことができる。
図7は、本明細書の一実装例に係る、サーバを例示する概要構造図である。サーバは、少なくとも1つのプロセッサおよびプロセッサ実行可能命令を記憶するように構成されるメモリを含むことができる。プロセッサは、命令を実行して、少なくとも1つの期待ノードへの割当保有ノードの持分投票結果を取得し、ここで割当保有ノードは、所定の総割当の少なくとも1つを所有するノードを含んでおり、持分投票結果に基づいて、持分投票後に各割当保有ノードによって所有される割当数を決定し、そして持分投票後に各割当保有ノードによって所有される割当数に基づいてコンセンサスノード選択結果を決定する。
ハードウェア+プログラム装置またはサーバが方法実装例における説明に基づく別の実装例をさらに含むことができることに留意する価値がある。具体的な実装例については、方法実装例における対応する説明を参照できる。詳細は再度ここで記載されることはない。
本明細書の1つまたは複数の実装例に提供されるコンセンサスノード選択方法および装置ならびにサーバにおいて、割当保有ノードが持分投票を行い、そして投票結果において割当保有ノードによって所有される割当数に基づいてコンセンサスに参加するようにノードを選択できる。本方法は実装するのが簡単である。選択結果は実在して有効であり、そして投票結果はネットワーク全体に開示されて他のノードによって承認できる。本明細書における実装解決策に基づき、持分投票後の割当比率に基づいてコンセンサスノードが迅速に選択できる。そのため、コンセンサスプロセスでの消費が低減され、コンセンサス処理ステップが単純化され、コンセンサスノード選択効率が改善され、そして選択結果はより信頼できる。
本明細書の内容が、割当保有ノードによって期待ノードを選択するための根拠のためのデータ設定、取得、対話、計算、決定等についての説明、割当が投票中に有効に移動される回数の制限、秘密鍵を使用して投票結果を暗号化し、そして公開鍵を使用してそれを復号すること、投票後にノードによって所有される割当数に基づいてコンセンサスノードを決定すること等を提供するが、本明細書は必ずしも、業界通信規格、標準ブロックチェーンデータ記憶、ならびにコンピュータ処理および記憶規則に準拠する事例、または本明細書の1つまたは複数の実装例に記載される事例に限定されるわけではない。一部の業界標準に基づいて、または自己定義の方法を使用することによって、または実装例に記載される実装に基づいて僅かな変更を行った後に得られる実装解決策も、前述の実装例と同じ、同等もしくは類似である、または変形後に予測できる実装効果を達成できる。そのような変更または変形後に得られるデータ取得、記憶、決定および処理方法を使用する一実装例は、それでも本明細書の1つまたは複数の任意の実装解決策の範囲内である。
1990年代、技術の改良はハードウェア改良(例えばダイオード、トランジスタおよびスイッチなどの回路構造の改良)とソフトウェア改良(方法手順の改良)との間で明確に区分できる。しかしながら、技術の発展につれて、多くの方法手順の改良がハードウェア回路構造の直接的な改良と考えることができる。設計者はほぼ全員、改良された方法手順をハードウェア回路にプログラムして、対応するハードウェア回路構造を得る。したがって、方法手順の改良がハードウェアエンティティモジュールを使用することによって実現できないとは言えない。例えば、プログラマブル論理デバイス(PLD)(例えば、フィールドプログラマブルゲートアレイ(FPGA))は一種の集積回路である。プログラマブル論理デバイスの論理機能は、ユーザによって実行されるコンポーネントプログラミングによって決定される。設計者は、チップメーカーに専用集積回路チップを設計および生産するよう依頼することなく、プログラミングを行ってデジタルシステムを単一のPLDへ「集積」する。加えて、集積回路チップを手動で生産する代わりに、プログラミングは大部分は「論理コンパイラ」ソフトウェアによって実装され、これはプログラム開発中に使用されるソフトウェアコンパイラに類似している。コンパイル前の原コードは特定のプログラミング言語でも書かれ、これはハードウェア記述言語(HDL)と称される。高級ブール式言語(ABEL)、Alteraハードウェア記述言語(AHDL)、Confluence、コーネル大学プログラミング言語(CUPL)、HDCal、Java(登録商標)ハードウェア記述言語(JHDL)、Lava、Lola、MyHDL、PALASMおよびRubyハードウェア記述言語(RHDL)など、2種類以上のHDLがある。現在、超高速集積回路ハードウェア記述言語(VHDL)およびVerilogが最も一般的に使用される。当業者は、方法手順が論理的にプログラムされ、そして前述のハードウェア記述言語を使用することによって集積回路にプログラムされる必要があるだけで、その結果、論理的方法手順を実装するハードウェア回路を簡単に得ることができることも理解するべきである。
コントローラは任意の適切な方式で実装できる。例えば、コントローラは、マイクロプロセッサ、プロセッサ、コンピュータ可読媒体、論理ゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブル論理コントローラ、またはマイクロプロセッサもしくはプロセッサによって実行できるコンピュータ可読プログラムコード(ソフトウェアもしくはファームウェアなど)を記憶した組込みマイクロプロセッサであることができる。コントローラの例は、以下のマイクロコントローラを含むが、これらに限定されない:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、およびSilicon Labs C8051F320。メモリコントローラはメモリの制御論理の一部としても実装できる。当業者は、コントローラがコンピュータ可読プログラムコードのみの方式で実装でき、そして方法におけるステップが論理的にプログラムされて、コントローラが論理ゲート、スイッチ、特定用途向け集積回路、プログラマブル論理コントローラ、組込みマイクロコントローラ等の形態で同じ機能をさらに実装することを可能にできることも知っている。したがって、コントローラはハードウェア部品と考えることができ、そしてコントローラに含まれて様々な機能を実装するように構成される装置もハードウェア部品内部の構造と考えることができる。代替的に、様々な機能を実装するように構成される装置は、本方法を実装するためのソフトウェアモジュールともハードウェア部品内部の構造とも考えることができる。
上記の実装例に記載されるシステム、装置、モジュールまたはユニットは、コンピュータチップもしくはエンティティによって実装できる、または特定の機能を持つ製品によって実装できる。典型的な実装デバイスがコンピュータである。コンピュータは、例えば、パーソナルコンピュータ、ラップトップコンピュータ、車内ヒューマンマシン対話デバイス、携帯電話、カメラ付き電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲーム機、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであることができる。
本明細書が実装例またはフローチャートに本方法の動作ステップを提供するが、従来のまたは非創造的な手段に基づいて、より多くのまたはより少ない動作ステップが含まれ得る。実装例に挙げられるステップの順序は単に複数のステップ実行順序の1つであり、一意の実行順序を表すものではない。実際には、装置または最終製品がステップを実行するとき、実行は、添付図面に図示される実装例もしくは方法に図示される順序で行う、または(例えば、並列処理の環境で、マルチスレッド処理環境で、および分散データ処理環境でさえ)並列に行うことができる。用語「備える」、「含む」またはそれらの任意の他の変形は非排他的包含に及ぶと意図され、その結果、一覧の要素を含むプロセス、方法、商品またはデバイスがそれらの要素を含むだけでなく、明記されない他の要素も含む、またはそのようなプロセス、方法、商品もしくはデバイスに固有の要素をさらに含む。更なる制約がない場合、要素を含むプロセス、方法、製品またはデバイスに別の同じまたは同等の要素があることも可能である。
説明を容易にするために、上記の装置は、機能を様々なモジュールへ分割することによって記載される。もちろん、本明細書を実装するとき、各モジュールの機能は1つもしくは複数のソフトウェアおよび/もしくはハードウェアで実装できる、または同じ機能を実装するモジュールが複数のサブモジュールもしくはサブユニットの組合せとして実装できる。記載される装置実装例は単に一例である。例えば、ユニット分割は単に論理機能分割であり、実際の実装例においては他の分割であることができる。例えば、複数のユニットもしくはコンポーネントが別のシステムへ合併もしくは統合できる、または一部の特徴が無視できるもしくは実行できない。加えて、表示または検討された相互結合または直接結合または通信接続は、いくつかのインタフェースを使用することによって実装できる。装置またはユニット間の間接結合または通信接続は、電子、機械または他の形態で実装できる。
当業者は、コントローラがコンピュータ可読プログラムコードのみの方式で実装でき、そして方法におけるステップが論理的にプログラムされて、コントローラが論理ゲート、スイッチ、特定用途向け集積回路、プログラマブル論理コントローラ、組込みマイクロコントローラ等の形態で同じ機能をさらに実装することを可能にできることも知っている。したがって、コントローラはハードウェア部品と考えることができ、そしてコントローラに含まれて様々な機能を実装するように構成される装置もハードウェア部品内部の構造と考えることができる。代替的に、様々な機能を実装するように構成される装置は、本方法を実装するためのソフトウェアモジュールともハードウェア部品内部の構造とも考えることができる。
本開示は、本開示の実装例に係る方法、デバイス(システム)およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照しつつ記載される。フローチャートおよび/またはブロック図における各プロセスおよび/またはブロックならびにフローチャートおよび/またはブロック図におけるプロセスおよび/またはブロックの組合せを実装するためにコンピュータプログラム命令が使用できることが理解されるべきである。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組込みプロセッサ、または任意の他のプログラム可能なデータ処理デバイスのプロセッサに提供されてマシンを生成でき、その結果、コンピュータまたは任意の他のプログラム可能なデータ処理デバイスのプロセッサによって実行される命令は、フローチャートにおける1つもしくは複数の手順におけるおよび/またはブロック図における1つもしくは複数のブロックにおける特定の機能を実装するための装置を生成する。
これらのコンピュータプログラム命令は、コンピュータまたは任意の他のプログラム可能なデータ処理デバイスに特定の方式で動くように命令できるコンピュータ可読メモリに記憶でき、その結果、コンピュータ可読メモリに記憶された命令は、命令装置を含むアーチファクトを生成できる。命令装置は、フローチャートにおける1つもしくは複数の手順におけるおよび/またはブロック図における1つもしくは複数のブロックにおける特定の機能を実装する。
これらのコンピュータプログラム命令は、コンピュータまたは別のプログラム可能なデータ処理デバイスへロードでき、その結果、コンピュータまたは別のプログラム可能なデバイス上で一連の動作およびステップが行われて、それによってコンピュータ実装処理を生成する。したがって、コンピュータまたは別のプログラム可能なデバイス上で実行される命令は、フローチャートにおける1つもしくは複数の手順におけるおよび/またはブロック図における1つもしくは複数のブロックにおける特定の機能を実装するためのステップを提供する。
典型的な構成では、コンピューティングデバイスは、1つまたは複数のプロセッサ(CPU)、入出力インタフェース、ネットワークインタフェースおよびメモリを含む。
メモリは、非持続性メモリ、ランダムアクセスメモリ(RAM)、不揮発性メモリ、および/またはコンピュータ可読媒体である別の形態、例えば、リードオンリメモリ(ROM)もしくはフラッシュメモリ(フラッシュメモリ)を含むことができる。メモリはコンピュータ可読媒体の一例である。
コンピュータ可読媒体は、任意の方法または技術を使用することによって情報記憶を実装できる持続性、非持続性、可動および不動媒体を含む。情報は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータであることができる。コンピュータ記憶媒体の例は、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別の種類のランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、フラッシュメモリもしくは別のメモリ技術、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)もしくは他の光記憶装置、カセット磁気テープ、テープおよびディスク記憶装置もしくは別の磁気記憶デバイス、またはコンピューティングデバイスがアクセスできる情報を記憶するように構成できる任意の他の非伝送媒体を含むが、これらに限定されない。本明細書に定義されるように、コンピュータ可読媒体は、変調データ信号および搬送波などの一過性コンピュータ可読媒体(一過性媒体)を含まない。
当業者は、本明細書の実装例が方法、システムまたはコンピュータプログラム製品として提供できることを理解するべきである。したがって、本明細書は、ハードウェアのみの実装、ソフトウェアのみの実装、またはソフトウェアおよびハードウェアの組合せでの実装の形態を使用できる。加えて、本明細書は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(ディスクメモリ、CD-ROM、光メモリ等を含むがこれらに限定されない)に実装されるコンピュータプログラム製品の形態を使用できる。
本明細書は、プログラムユニットなどのコンピュータによって実行されるコンピュータ実行可能命令の一般的文脈で記載できる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するためのルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。本明細書は、通信ネットワークを使用することによって接続されるリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実践できる。分散コンピューティング環境では、プログラムモジュールは、記憶デバイスを含む両ローカルおよびリモートコンピュータ記憶媒体に設けることができる。
本明細書における実装例は全て漸進的に記載される。実装例における同じまたは類似の部分については相互参照が行える。各実装例は他の実装例との差異に重点を置いている。システム実装例は方法実装例と類似しており、したがって簡単に記載され、関連部分については、方法実装例の部分説明を参照できる。本明細書の説明では、「一実装例」、「一部の実装例」、「例」、「具体例」および「一部の例」などの参照用語は、実装例または例を参照しつつ記載される具体的な特徴、構造、材料または特徴が本明細書における少なくとも1つの実装例または例に含まれることを意味する。本明細書において、上記の用語は必ずしも同じ実装例または例に対して記載されるわけではない。加えて、記載される具体的な特徴、構造、材料または特性は、いかなる1つまたは複数の実装例または例においても適当な方式で組み合わせることができる。さらに、当業者は、本明細書に記載される異なる実施形態または例および相互に矛盾しない異なる実装例または例の特徴を組み合わせることができる。
上記の説明は単に本明細書の1つまたは複数の実装例であり、本明細書を限定するとは意図されない。当業者にとっては、本明細書は様々な変化および変形を有することができる。本明細書の趣旨および原則内でなされるいかなる変更、等価な置換および改善も、本明細書における請求項の範囲内に納まるものとする。
図8は、本開示の一実装例に係る、ブロックチェーンにおいてコンセンサスノードを選択するためのコンピュータ実装方法800の一例を例示するフローチャートである。提示を明確にするために、以降の説明は、本説明におけるその他の図との関連で方法800について全体的に記載する。しかしながら、方法800が、例えば、任意のシステム、環境、ソフトウェア、ならびにハードウェア、または適宜、システム、環境、ソフトウェアおよびハードウェアの組合せによって行うことができることが理解されるであろう。一部の実装例では、方法800の様々なステップが並列に、組み合わせて、ループして、または任意の順に実行できる。
802で、複数の割当保有ノードによって投票プロセスが行われて、各割当保有ノードに対する投票結果を生成する。投票プロセスは、割当保有ノードが複数の選択された期待ノードに投票することを含む。期待ノードおよび割当保有ノードは、ブロックチェーンと関連する一群のノードに属する。割当保有ノードは、少なくとも1つの割当を所有するノードである。一部の実装例において、所定の総割当のうちの割当が配分されたノードが割当保有ノードと称することができる。割当保有ノードが投票するノードは期待ノードと称することができる。期待ノードは、投票前に割当を所有する割当保有ノードであることができる、または投票前に割当を所有しないノードであることができる。一部の実装例において、割当保有ノードは、どの期待ノードに投票するかを独立して選べる。一部の実装例において、期待ノードを選択するための根拠は、ノードサービス性能安定性、ノードサービス容量、またはオペレータによって決定される選択ポリシーを含むことができるが、これらに限定されない。
一部の実装例において、割当所有ノードだけが投票でき、割当を所有しない一般ノードは投票できない。割当保有ノードは、それら自身にまたは他のノードに投票できる。しかしながら、割当保有ノードは、それらが別のノードから受信する割当を移動できない。すなわち、各投票プロセスの間、割当は、一回投票するために使用できるだけである。例えば、投票プロセス前に、割当保有ノード1が10割当を有し、そしてノード1がノード2に10割当のうちの6を投票する一方、別の割当保有ノード3がノード1に3割当を投票する。ノード1が現在7割当(10-6+3=7)を有するが、その他の3割当が別のノードから移動されたものであるので、投票するのに4割当を使用できるだけである。802から、方法800は804に進む。
804で、各割当保有ノードに対する投票結果(例えば、持分投票結果)が検証される。一部の実装例において、各割当保有ノードに対する投票結果はデジタル署名によって検証できて、投票結果が偽造されるのを防止し、かつ割当保有ノードがそれらの投票結果を否定するのを防止する。一部の実装例において、割当保有ノードは、割当保有ノードと関連する秘密鍵を使用することによって期待ノードへのその投票結果にデジタル署名できる。一部の実装例において、投票結果上の署名に署名するために非対称暗号化を使用する秘密鍵が使用できる。対応する公開鍵がブロックチェーンにおけるノードにブロードキャストできる。
署名付きの投票結果は、ブロードキャストされた公開鍵を使用してブロックチェーンにおける別のノードによって検証できる。検証は、投票結果および投票結果の送信側が有効(正当)であるかどうかを確認するために使用できる。持分投票結果が無効であれば、警報を発することができる、または別の所定の処理動作を行うことができる。804から、方法800は806に進む。
806で、投票プロセス後に一群のノードの各ノードによって所有される割当数(すなわち、持分)が投票結果に基づいて決定される。一部の実装例において、割当保有ノードが投票した後に、その割当保有ノードの投票結果はブロックチェーンにおける全てのノードにブロードキャストできる。そのため、ブロックチェーンにおける各ノードが割当保有ノードの投票結果を受信できる。
一部の実装例において、投票プロセス後に、割当保有ノードまたは一般ノードが、受信したブロードキャストされた投票結果に基づいて、またはそれ自身のノード上の投票結果に基づいて、各割当保有ノードによって所有される割当数を決定できる。投票プロセス後に、当初の割当保有ノードによって所有される割当数が変化しただけでなく、新規な割当保有ノードも現れた。806から、方法800は808に進む。
808で、割当保有ノードの各々によって所有される割当数に基づいて、割当保有ノードから複数のコンセンサスノードが選択される。割当保有ノードは、投票プロセス後に少なくとも1つの割当を所有するノードである。一部の実装例において、ブロックチェーン上のノード数が一定数を超えると、コンセンサスに参加するノードがコンセンサス効率を低下させ得る。したがって、一部のノードが、コンセンサスに参加するように、或る方法を使用することによってコンセンサスノードとしてブロックチェーン上のノードから選択される必要がある。例えば、PBFTコンセンサスアルゴリズムでは、通常、ビザンチン障害耐性およびコンセンサス性能のバランスをとるために、一部のノードが、コンセンサスに参加するように多数のノードからコンセンサスノードとして選択される必要がある。コンセンサスは、通常、ブロックチェーン上の分散ノードが同じアルゴリズムおよび同じデータ形式(または同じ処理プロトコル)を使用してデータを生成および更新できることを示し、そしてこのプロセスは異なる言語を使用して実装できる。
本実装例において、全ての割当保有ノードが投票した後に、ノードへの割当配分構造が通常変化する。例えば、元々割当を所有するノードが別のノードに全ての割当を投票した一方で、他のノードから票を受けていなければ、そのノードは目下割当を有しない。すなわち、持分投票前に、ノードは割当保有ノードであった。しかし、持分投票後に、ノードは割当のない一般ノードに変わった。投票前に割当のない一般ノードが持分投票後に割当を所有すれば、それは新たな割当保有ノードになる。
持分投票結果が得られた後、各割当保有ノードによって所有される割当数に基づいてコンセンサスノード選択結果が決定できる。選択されるコンセンサスノードの具体数および選択方法は実際の応用シナリオまたは処理要件に基づいて設定できる。例えば、最多割当を所有する5つの割当保有ノードがコンセンサスノードとして選択される。
一部の実装例において、ブロックチェーンに追加される前に、ブロックチェーン上のノード(両割当保有および一般ノード)は、ノードが有効であることを証明するために使用されるルート証明書を指定の証明書サーバに申請する必要がある。ノードがブロックチェーンに早く追加されるほど、ノードのルート証明書は早く生成される。
一部の実装例において、割当保有ノードに、投票プロセス後に同数の割当を所有するノードを含み、かつコンセンサスノード数の制限がある場合、同数の割当を所有する割当保有ノードからのコンセンサスノードの選択は、ノードルート証明書を生成する時系列に基づくことができる。ノードがブロックチェーンに早く追加されるほど、ノードの実行パラメータ、サーバ性能またはデータ処理ポリシーは安定し、最適でかつ信頼できると考えられる。したがって、本実装例において、同数の割当を所有するノードがある場合、より早く生成されたルート証明書を持つノードがコンセンサスノードとして優先的に選択できる。具体例では、ルート証明書を生成する時間を含む情報を使用することによってルート証明書が番号付けされる場合、コンセンサスノードはルート証明書の番号の昇順に選択できる。808の後、方法800は停止する。
本出願の実装例は、ブロックチェーンコンセンサスノード選択の技術的問題を解決できる。ブロックチェーン技術は、概して、非集中化、透明性、耐タンパ性および信用といった特性を持つ非集中型分散データベース技術である。それは、パブリックまたはプライベートピアツーピアネットワークにデータ情報を記録するために使用できる。ブロックチェーンのデータ整合性を保証するために、データは、コンセンサスアルゴリズムを使用することによってブロックチェーン上で生成および更新される。PBFTアルゴリズムは、業界において一般的に使用される分散整合性コンセンサスアルゴリズムである。PBFTでは、コンセンサスノード選択のための従来のアルゴリズムは、主にランダム選択および固定選択を含む。しかしながら、従来の手法下では、複雑なコンセンサスノード選択プロセス後に新たに選択されたコンセンサスノードを全てのノードに承認させるようにアルゴリズムを設計することは困難である。その上、固定コンセンサスノード選択は実装の点でランダム選択より単純であるが、この方法は、障害が発生すると、またはコンセンサスノードが何らかの理由で更新されると困難になる。必要とされるのは、従来の方法のこれらの問題を回避する技術であり、実装および維持するのが簡単で、非常に効率的で、かつ信頼できるPBFTコンセンサスノード選択解決策を提供することである。
本出願の実装例は、ブロックチェーンにおけるコンセンサスノード選択を改善するための方法および装置を説明する。コンセンサスノード選択プロセス中に、割当保有ノードが期待ノードに投票して投票結果を生成できる。投票結果は、秘密鍵を使用して結果にデジタル署名することによって割当保有ノードによって検証でき、そして対応する公開鍵はブロックチェーンにおける全てのノードにブロードキャストされることになる。このように、全てのノードが投票結果を受信して、同時に結果を承認でき、結果として、ブロックチェーン内のノードが新たに選択されたコンセンサスノードを承認する、より単純かつ迅速な方法となる。その上、署名入デジタル署名のため、投票結果は偽造できず、または割当保有ノードによって否定できず、データ安全性を改善する。コンセンサスノードは、各ノードによって所有される割当数に基づいて選択でき、そして同数の割当を有するノードがある場合、選択は時系列に基づくことができる。一般に、ノードがブロックチェーンに早く追加されるほど、ノードの実行パラメータ、サーバ性能またはデータ処理ポリシーは安定し、最適でかつ信頼できる。したがって、ブロックチェーン内でより早い時系列に設けられるコンセンサスノードを選択することが、結果として、ブロックチェーン意思決定プロセスに参加するより安定しかつ信頼できるノードとなることができる。
本方法は実装するのも簡単である。投票結果はネットワーク全体に開示されて他のノードによって承認できる。記載される解決策に基づき、投票後の割当比率に基づいてコンセンサスノードが迅速に選択できる。そのため、コンセンサスプロセスでの消費が低減され、コンセンサス処理ステップが単純化され、コンセンサスノード選択効率が改善され、そして選択結果はより信頼できる。
本明細書に記載される実施形態および動作は、デジタル電子回路網で、または本明細書に開示される構造を含め、コンピュータソフトウェア、ファームウェアもしくはハードウェアで、またはそれらの1つもしくは複数の組合せで実装できる。同動作は、1つまたは複数のコンピュータ可読記憶デバイスに記憶されたまたは他の供給源から受信されたデータに対してデータ処理装置によって行われる動作として実装できる。データ処理装置、コンピュータまたはコンピューティングデバイスは、例としてプログラマブルプロセッサ、コンピュータ、システムオンチップもしくはその複数、または上記の組合せを含め、データを処理するための装置、デバイスおよび機械を包含してよい。装置は、専用論理回路網、例えば、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)を含むことができる。装置は、当該コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム(例えば、一オペレーティングシステムもしくはオペレーティングシステムの組合せ)、クロスプラットフォーム実行時環境、仮想マシン、またはそれらの1つもしくは複数の組合せを構成するコードも含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現できる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプトまたはコードとしても知られている)は、コンパイラ型またはインタープリタ型言語、宣言型または手続き型言語を含め、任意の形式のプログラミング言語で書くことができ、そしてそれは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクトもしくはコンピューティング環境での使用に適する他のユニットとしてを含め、任意の形式に展開できる。プログラムは、他のプログラムもしくはデータ(例えば、マークアップ言語文書に記憶される1つもしくは複数のスクリプト)を保持するファイルの一部分に、当該プログラムに専用の単一のファイルに、または複数の連係ファイル(例えば、1つもしくは複数のモジュール、サブプログラムもしくはコードの一部分を記憶するファイル)に記憶できる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに設けられるもしくは複数のサイトにわたって分散されて通信ネットワークによって相互接続される複数のコンピュータ上で実行できる。
コンピュータプログラムの実行のためのプロセッサは、例として、汎用および専用の両マイクロプロセッサ、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、リードオンリメモリまたはランダムアクセスメモリまたは両方から命令およびデータを受けることになる。コンピュータの必須要素は、命令に従って動作を行うためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはさらに、データを記憶するための1つまたは複数の大容量記憶デバイスを含む、または作動的に結合されて、それからデータを受けるもしくはそれにデータを転送するもしくは両方行うことになる。コンピュータは、別のデバイス、例えば、移動デバイス、携帯情報端末(PDA)、ゲーム機、全地球測位システム(GPS)受信器、またはポータブル記憶デバイスに埋め込みできる。コンピュータプログラム命令およびデータを記憶するのに適するデバイスは、例として、半導体メモリデバイス、磁気ディスクおよび光磁気ディスクを含め、不揮発性メモリ媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路網によって補足、またはそれに組み込みできる。
移動デバイスは、ハンドセット、ユーザ機器(UE)、移動電話(例えば、スマートフォン)、タブレット、ウェアラブルデバイス(例えば、スマートウォッチおよびスマートグラス)、人体内の埋込みデバイス(例えば、バイオセンサ、人工内耳)、または他の種類の移動デバイスを含むことができる。移動デバイスは、様々な通信ネットワーク(下記される)にワイヤレスで(例えば、無線周波数(RF)信号を使用して)通信できる。移動デバイスは、移動デバイスの現在の環境の特性を決定するためのセンサを含むことができる。センサは、カメラ、マイクロホン、近接センサ、GPSセンサ、運動センサ、加速度計、周辺光センサ、水分センサ、ジャイロスコープ、コンパス、気圧計、指紋センサ、顔認識システム、RFセンサ(例えば、Wi-Fiおよびセル無線)、温度センサ、または他の種類のセンサを含むことができる。例えば、カメラは、可動または固定レンズ、フラッシュ、イメージセンサおよび画像プロセッサを持つ前方または後方カメラを含むことができる。カメラは、顔および/または虹彩認識のための詳細を取り込むことが可能なメガピクセルカメラであることができる。カメラは、データプロセッサおよびメモリに記憶されるまたは遠隔でアクセスされる認証情報と共に、顔認識システムを形成できる。顔認識システムまたは1つもしくは複数のセンサ、例えば、マイクロホン、運動センサ、加速度計、GPSセンサもしくはRFセンサはユーザ認証のために使用可能できる。
ユーザとの対話を提供するために、実施形態は、ディスプレイデバイスおよび入力デバイス、例えば、ユーザに情報を表示するための液晶ディスプレイ(LCD)または有機発光ダイオード(OLED)/仮想現実(VR)/拡張現実(AR)ディスプレイ、ならびにユーザがコンピュータに入力を提供できるタッチスクリーン、キーボードおよびポインティングデバイスを有するコンピュータに実装できる。ユーザとの対話を提供するために他の種類のデバイスも使用でき、例えば、ユーザに提供されるフィードバックは任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバックまたは触覚フィードバックであることができ、そしてユーザからの入力は、音響、音声または触覚入力を含め、任意の形態で受け取れる。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、それから文書を受信することによって、例えば、ユーザのクライアントデバイス上のウェブブラウザから受信される要求に応じてウェブブラウザにウェブページを送信することによって、ユーザと対話できる。
実施形態は、ワイヤラインまたはワイヤレスデジタルデータ通信の任意の形態または媒体(またはその組合せ)、例えば、通信ネットワークによって相互接続されるコンピューティングデバイスを使用して実装できる。相互接続されるデバイスの例は、典型的に通信ネットワークを通じて対話する、一般に互いから離れたクライアントおよびサーバである。クライアント、例えば、移動デバイスは、サーバと、またはサーバを通じて取引自体を実施、例えば、購入、売却、支払、譲渡、送付もしくは貸付取引を行う、またはそれを許可できる。そのような取引は、動作および応答が時間的に近いように、例えば、動作および応答が実質的に同時に発生していると個人が認める、個人の動作に続く応答に対する時間差が1ミリ秒(ms)未満もしくは1秒(s)未満である、またはシステムの処理限界を考慮に入れて応答は意図的な遅延がないように、リアルタイムであってよい。
通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)およびワイドエリアネットワーク(WAN)を含む。通信ネットワークは、インターネットの全てもしくは一部分、別の通信ネットワーク、または通信ネットワークの組合せを含むことができる。情報は、ロングタームエボリューション(LTE)、5G、IEEE802、インターネットプロトコル(IP)、または他のプロトコルもしくはプロトコルの組合せを含め、様々なプロトコルおよび標準に従って通信ネットワーク上で伝送できる。通信ネットワークは、接続されたコンピューティングデバイス間で音声、ビデオ、生体もしくは認証データ、または他の情報を伝送できる。
別々の実装例として記載される特徴が、組み合せて単一の実装例で実装されてよい一方、単一の実装例として記載される特徴が、別々に複数の実装例で、または任意の適切な部分組合せで実装されてよい。特定の順に記載および特許請求される動作が、その特定の順も、全ての例示される動作が行われなければならない(一部の動作は任意選択であり得る)ことも必要とすると理解されるべきでない。適宜、マルチタスキングまたは並列処理(またはマルチタスキングおよび並列処理の組合せ)を行うことができる。
101 投票結果取得モジュール
102 投票結果決定モジュール
103 コンセンサスノード決定モジュール
104 検証モジュール

Claims (7)

  1. コンセンサスノードの選択のための方法であって、
    少なくとも1つの期待ノードへの割当保有ノードの持分投票結果を取得するステップであり、前記割当保有ノードが、所定の総割当の少なくとも1つを所有するノードを含み、ステップ(S2)と、
    前記持分投票結果に基づいて、持分投票後に各割当保有ノードによって所有される割当数を決定するステップ(S4)と、
    持分投票後に各割当保有ノードによって所有される前記割当数に基づいてコンセンサスノード選択結果を決定するステップ(S6)と、
    を含む方法。
  2. 持分投票後に各割当保有ノードによって所有される前記割当数に基づいてコンセンサスノード選択結果を決定するステップが、
    前記割当保有ノードが、持分投票後に同数の割当を所有するノードを含む場合、ノードルート証明書を生成する時系列に基づいて前記同数の割当を所有する前記ノードからコンセンサスノードを選択するステップであり、前記ノードルート証明書が、ノード識別情報を証明するために使用され、かつ特定の証明書サーバにブロックチェーン上のノードによって申請される、データ情報を含む、ステップ
    を含む、請求項1に記載の方法。
  3. 前記持分投票結果が、
    前記割当保有ノードが、前記割当保有ノードの秘密鍵を使用することによって、前記期待ノードへの持分投票後に生成される投票結果に署名を付けた後に生成される持分投票結果を含み、
    それに応じて、持分投票結果を取得する前記ステップ後に、前記方法が、
    前記割当保有ノードの対応する公開鍵を使用することによって前記持分投票結果を検証するステップ(S20)
    をさらに含む、請求項1または2に記載の方法。
  4. 前記選択される期待ノードが、
    割当を投票するための所定のコンセンサスノード選択条件に基づいて前記割当保有ノードによって選択される少なくとも1つのノード
    を含む、請求項1から3のいずれか一項に記載の方法。
  5. 前記所定のコンセンサスノード選択条件が、ノードサービス性能安定性、ノードサービス容量および選択ポリシーの少なくとも1つを含む、請求項4に記載の方法。
  6. 前記割当が投票を通じてブロックチェーン上のノード間で有効に移動される回数が、単一のコンセンサスノード選択プロセスにおいて1に設定される、
    請求項1から5のいずれか一項に記載の方法。
  7. コンセンサスノードの選択のための装置であって、請求項1から6のいずれか一項に記載の方法を行うように構成される複数のモジュールを備える装置。
JP2019553281A 2017-08-24 2018-08-24 コンセンサスノード選択方法および装置、ならびにサーバ Active JP6889275B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710736740.5A CN107590738A (zh) 2017-08-24 2017-08-24 选择共识节点的处理方法、装置及服务器
CN201710736740.5 2017-08-24
PCT/US2018/047975 WO2019040886A1 (en) 2017-08-24 2018-08-24 METHOD AND APPARATUS FOR SELECTING CONSENSUS NODE AND SERVER

Publications (2)

Publication Number Publication Date
JP2020522150A true JP2020522150A (ja) 2020-07-27
JP6889275B2 JP6889275B2 (ja) 2021-06-18

Family

ID=61042561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019553281A Active JP6889275B2 (ja) 2017-08-24 2018-08-24 コンセンサスノード選択方法および装置、ならびにサーバ

Country Status (12)

Country Link
US (3) US11044103B2 (ja)
EP (1) EP3586474B1 (ja)
JP (1) JP6889275B2 (ja)
KR (1) KR102192885B1 (ja)
CN (1) CN107590738A (ja)
AU (2) AU2018321398A1 (ja)
CA (1) CA3058675A1 (ja)
ES (1) ES2809510T3 (ja)
PL (1) PL3586474T3 (ja)
SG (1) SG11201908886TA (ja)
TW (1) TWI684943B (ja)
WO (1) WO2019040886A1 (ja)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11394773B2 (en) * 2014-06-19 2022-07-19 Jim Austin Joseph Cryptographic currency block chain based voting system
US9794331B1 (en) * 2014-09-29 2017-10-17 Amazon Technologies, Inc. Block allocation based on server utilization
CN107395665B (zh) * 2017-05-22 2020-04-24 创新先进技术有限公司 一种区块链业务受理及业务共识方法及装置
CN107360001B (zh) * 2017-07-26 2021-12-14 创新先进技术有限公司 一种数字证书管理方法、装置和系统
CN107590738A (zh) 2017-08-24 2018-01-16 阿里巴巴集团控股有限公司 选择共识节点的处理方法、装置及服务器
US11640640B2 (en) 2018-01-23 2023-05-02 Click IPO Holdings, LLC Systems and methods for allocating assets to directed and interest-based participants
CN110309366B (zh) * 2018-03-01 2021-04-30 中思博安科技(北京)有限公司 一种基于微实数的异步排序方法及装置
CN108377206B (zh) * 2018-03-12 2021-04-06 众安信息技术服务有限公司 用于配置共识算法的方法、装置及计算机可读存储介质
US11121876B2 (en) * 2018-04-11 2021-09-14 Microsoft Technology Licensing, Llc Distributed access control
CN108712468B (zh) * 2018-04-19 2021-01-08 上海分布信息科技有限公司 一种区块链收益分配方法和分配系统
US11063746B2 (en) * 2018-04-19 2021-07-13 Electronics And Telecommunications Research Institute Method for selecting consensus node using nonce and method and apparatus for generating blockchain using the same
US20210209885A1 (en) * 2018-05-23 2021-07-08 Centiglobe Ab A system and a method for achieving consensus between multiple parties on an event
CN110555764B (zh) * 2018-05-31 2022-11-08 本无链科技(深圳)有限公司 一种去中心化环境下区块链达成一致性的方法及系统
US10713133B2 (en) * 2018-06-11 2020-07-14 Vmware, Inc. Linear view-change BFT
US11646879B2 (en) 2018-06-12 2023-05-09 Electronics And Telecommunications Research Institute Method and apparatus for selecting distributed consensus node based on proof of nonce
CN109165092B (zh) * 2018-07-10 2021-07-20 矩阵元技术(深圳)有限公司 一种基于有效算力贡献的共识方法、装置及系统
CN108881287A (zh) * 2018-07-18 2018-11-23 电子科技大学 一种基于区块链的物联网节点身份认证方法
CN108964924B (zh) * 2018-07-24 2020-06-05 腾讯科技(深圳)有限公司 数字证书校验方法、装置、计算机设备和存储介质
US10862908B2 (en) * 2018-08-09 2020-12-08 Hrl Laboratories, Llc System and method for consensus ordering of broadcast messages
CN109347917A (zh) * 2018-09-14 2019-02-15 北京沃杰知识产权有限公司 区块链数据共识处理方法、系统、存储介质和电子设备
KR102130062B1 (ko) * 2018-09-18 2020-07-03 엔에이치엔 주식회사 블록체인 네트워크의 노드들 간의 합의를 이루는 방법 및 블록체인 시스템
CN110969527B (zh) * 2018-09-29 2023-02-24 北京天能博信息科技有限公司 一种区块链的数据处理方法及相关设备
US11048596B2 (en) * 2018-12-14 2021-06-29 Nokia Technologies Oy Hierarchical weighted consensus for permissioned blockchains
US11503036B2 (en) * 2019-03-13 2022-11-15 Nec Corporation Methods of electing leader nodes in a blockchain network using a role-based consensus protocol
CN110049029B (zh) * 2019-04-04 2021-07-20 矩阵元技术(深圳)有限公司 共识节点确定方法、装置、计算机设备和存储介质
KR102461653B1 (ko) * 2019-04-04 2022-11-02 한국전자통신연구원 비잔틴 환경에서의 합의 주체 선택 장치 및 방법
WO2020199179A1 (zh) * 2019-04-04 2020-10-08 云图有限公司 共识节点确定方法、装置、计算机设备和存储介质
PL3643041T3 (pl) 2019-04-26 2021-09-06 Advanced New Technologies Co., Ltd. Rozproszone zarządzanie kluczami dla zaufanych środowisk wykonawczych
CN111865595B (zh) * 2019-04-29 2023-06-27 普天信息技术有限公司 一种区块链的共识方法及装置
CN110868386B (zh) * 2019-05-17 2022-05-20 北京安妮全版权科技发展有限公司 区块链共识方法
US11443326B2 (en) * 2019-06-05 2022-09-13 International Business Machines Corporation Geo-location compliance
CN110321385B (zh) * 2019-06-28 2021-12-24 联想(北京)有限公司 基于区块链的数据处理方法和数据处理装置
CN110458560B (zh) * 2019-07-12 2021-10-12 创新先进技术有限公司 用于进行交易验证的方法及装置
CN110572429B (zh) * 2019-07-30 2022-01-07 中钞信用卡产业发展有限公司杭州区块链技术研究院 基于区块链的共识方法、装置、设备及存储介质
CN110458291A (zh) * 2019-08-09 2019-11-15 成都理工大学 一种基于遗传算法的最佳共识节点选择方法
CN110689344B (zh) * 2019-08-30 2021-04-09 创新先进技术有限公司 在区块链中并发执行交易的方法和装置
CN110708163B (zh) * 2019-09-10 2022-08-02 杭州秘猿科技有限公司 一种区块链的共识方法、装置、系统和电子设备
US11119734B2 (en) 2019-11-06 2021-09-14 International Business Machines Corporation Software detection and modification
CN110956542B (zh) * 2019-11-07 2021-05-18 支付宝(杭州)信息技术有限公司 区块链系统及其运行方法、装置及设备
CN110942821B (zh) * 2019-11-27 2023-08-25 兰州大学第一医院 医学检测设备的调试方法及系统
CN111131399B (zh) * 2019-12-03 2021-11-26 北京海益同展信息科技有限公司 一种区块链中共识节点动态增加方法及装置
JP7266147B2 (ja) * 2019-12-10 2023-04-27 株式会社日立製作所 ブロックチェーンシステムのテスト環境を構築する方法と装置
CN111131209B (zh) * 2019-12-16 2022-06-28 国网重庆市电力公司客户服务中心 一种改进的高效共识方法、系统、计算机设备及存储介质
CN111082990B (zh) * 2019-12-19 2023-01-13 度小满科技(北京)有限公司 一种区块链的共识方法、装置、设备及存储介质
TWI720761B (zh) * 2019-12-25 2021-03-01 帳聯網路科技股份有限公司 整合股票移轉及報稅的交易系統及其方法
CN111833510B (zh) * 2019-12-25 2021-12-14 北京熠智科技有限公司 基于区块链的投票处理方法及装置、设备、存储介质
CN111355810B (zh) * 2020-03-17 2022-05-10 重庆邮电大学 一种基于信誉与投票机制的改进pbft共识方法
US11461312B2 (en) * 2020-03-28 2022-10-04 Wipro Limited Method and system for performing adaptive consensus in a distributed ledger network
CN111464631B (zh) * 2020-03-31 2023-03-28 成都质数斯达克科技有限公司 联盟区块链中的业务共识方法及装置
CN111159750B (zh) * 2020-04-07 2021-02-05 南京邮电大学 基于联盟链的汽车维修数据存储方法
CN113256426B (zh) * 2020-05-29 2023-08-04 支付宝(杭州)信息技术有限公司 一种数据处理方法、装置、设备及介质
CN111522822A (zh) 2020-07-03 2020-08-11 支付宝(杭州)信息技术有限公司 一种区块链共识方法、装置及电子设备
CN114299656B (zh) * 2020-09-23 2023-08-01 成都中科信息技术有限公司 一种投票方法
US11615074B2 (en) 2020-10-01 2023-03-28 Bank Of America Corporation System and methods for intelligent path selection of enhanced distributed processors
CN112804333B (zh) * 2021-01-15 2022-10-11 北京百度网讯科技有限公司 出块节点的异常处理方法、装置、设备和存储介质
CN112801662B (zh) * 2021-02-02 2023-07-04 深圳前海益链网络科技有限公司 基于区块链智能合约的业务链接入管理方法及系统
CN113076375B (zh) * 2021-03-29 2023-07-25 湖北央中巨石信息技术有限公司 基于区块链的多方同步抽样共识方法及系统及装置及介质
KR20220137329A (ko) * 2021-04-02 2022-10-12 삼성전자주식회사 블록 체인에 기반하여 블록 합의를 수행하는 전자 장치 및 그 운용 방법
US11640639B2 (en) * 2021-05-04 2023-05-02 Click IPO Holdings, LLC Systems and methods for allocating fractional shares of a public offering
KR102628770B1 (ko) * 2021-09-02 2024-01-23 주식회사 리드포인트시스템 비-랜덤 합의체 증명 기반 블록 체인 네트워크를 이용한 랜덤 합의체 증명을 수행하는 뉴럴 합의체 기반의 블록체인 네트워크 시스템
TWI820528B (zh) * 2021-11-30 2023-11-01 藍星球資訊股份有限公司 樹狀網路圖產生方法
CN114629915A (zh) * 2022-03-04 2022-06-14 中信银行股份有限公司 一种见证人选举的投票机制处理方法及系统
EP4346159A1 (en) * 2022-09-27 2024-04-03 Electronics and Telecommunications Research Institute Method and apparatus of adding additional chain to blockchain, and method and apparatus of generating shard for the same
TWI833643B (zh) * 2023-05-05 2024-02-21 緯創資通股份有限公司 網路配置方法及其網路配置單元

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007130068A (ja) * 2005-11-08 2007-05-31 Nintendo Co Ltd ゲームプログラムおよびゲーム装置
JP2011133983A (ja) * 2009-12-22 2011-07-07 Quad Kk 電子投票システム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150379510A1 (en) 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
US20160164884A1 (en) * 2014-12-05 2016-06-09 Skuchain, Inc. Cryptographic verification of provenance in a supply chain
US11277390B2 (en) * 2015-01-26 2022-03-15 Listat Ltd. Decentralized cybersecure privacy network for cloud communication, computing and global e-commerce
US9875510B1 (en) * 2015-02-03 2018-01-23 Lance Kasper Consensus system for tracking peer-to-peer digital records
CN107683488B (zh) 2015-04-05 2023-09-05 数字资产(瑞士)股份有限公司 数字资产中介电子结算平台
US10304143B2 (en) 2016-05-05 2019-05-28 Lance Timothy Kasper Consensus system for manipulation resistant digital record keeping
US20170075877A1 (en) 2015-09-16 2017-03-16 Marie-Therese LEPELTIER Methods and systems of handling patent claims
US20170236123A1 (en) * 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
WO2017148527A1 (en) * 2016-03-03 2017-09-08 Nec Europe Ltd. Method for managing data in a network of nodes
US9785369B1 (en) 2016-05-23 2017-10-10 Accenture Global Solutions Limited Multiple-link blockchain
US10204341B2 (en) 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
CN106445711B (zh) * 2016-08-28 2019-04-30 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
KR101727525B1 (ko) 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
US10360191B2 (en) 2016-10-07 2019-07-23 International Business Machines Corporation Establishing overlay trust consensus for blockchain trust validation system
CN106850536B (zh) * 2016-11-30 2020-01-07 北京瑞卓喜投科技发展有限公司 区块链共识方法及系统
CN106603698A (zh) * 2016-12-28 2017-04-26 北京果仁宝科技有限公司 基于dpos的区块链共识方法和节点
CN106878071B (zh) * 2017-01-25 2020-09-15 上海钜真金融信息服务有限公司 一种基于Raft算法的区块链共识机制
US9998286B1 (en) 2017-02-17 2018-06-12 Accenture Global Solutions Limited Hardware blockchain consensus operating procedure enforcement
CN106920097A (zh) 2017-02-27 2017-07-04 钱德君 一种量子链共识协议的生成时间块链方法
AU2018230763A1 (en) 2017-03-08 2019-10-31 Ip Oversight Corporation System and method for creating commodity asset-secured tokens from reserves
GB201710176D0 (en) 2017-06-26 2017-08-09 Nchain Holdings Ltd Computer-implemented system and method
CN107590738A (zh) 2017-08-24 2018-01-16 阿里巴巴集团控股有限公司 选择共识节点的处理方法、装置及服务器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007130068A (ja) * 2005-11-08 2007-05-31 Nintendo Co Ltd ゲームプログラムおよびゲーム装置
JP2011133983A (ja) * 2009-12-22 2011-07-07 Quad Kk 電子投票システム

Also Published As

Publication number Publication date
CN107590738A (zh) 2018-01-16
US20210297267A1 (en) 2021-09-23
EP3586474A1 (en) 2020-01-01
US11044103B2 (en) 2021-06-22
TW201913515A (zh) 2019-04-01
AU2018321398A1 (en) 2019-10-17
US20200129694A1 (en) 2020-04-30
KR102192885B1 (ko) 2020-12-21
US11265177B2 (en) 2022-03-01
US10722649B2 (en) 2020-07-28
SG11201908886TA (en) 2019-10-30
EP3586474B1 (en) 2020-07-22
WO2019040886A1 (en) 2019-02-28
CA3058675A1 (en) 2019-02-28
PL3586474T3 (pl) 2020-12-14
TWI684943B (zh) 2020-02-11
US20190068380A1 (en) 2019-02-28
AU2021229188A1 (en) 2021-10-07
JP6889275B2 (ja) 2021-06-18
ES2809510T3 (es) 2021-03-04
KR20190133687A (ko) 2019-12-03

Similar Documents

Publication Publication Date Title
JP6889275B2 (ja) コンセンサスノード選択方法および装置、ならびにサーバ
US10657151B2 (en) Method and apparatus for communication between blockchain nodes
US10891612B2 (en) Blockchain member management data processing methods, apparatuses, servers, and systems
US10693649B2 (en) Blockchain data processing methods, apparatuses, processing devices, and systems
EP3701464B1 (en) Blockchain data processing method, apparatus, device, and system
US10581610B2 (en) Blockchain data processing methods, apparatuses, processing devices, and systems
US20190347654A1 (en) Blockchain data processing methods, apparatuses, devices, and systems
JP6810259B2 (ja) ワークフローに基づくブロックチェーンネットワーク上での非公開のトランザクションの管理

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200529

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200529

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201124

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20201228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210520

R150 Certificate of patent or registration of utility model

Ref document number: 6889275

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250