JP7292783B2 - 許可型ブロックチェーンにおける優先順位付け - Google Patents

許可型ブロックチェーンにおける優先順位付け Download PDF

Info

Publication number
JP7292783B2
JP7292783B2 JP2020563787A JP2020563787A JP7292783B2 JP 7292783 B2 JP7292783 B2 JP 7292783B2 JP 2020563787 A JP2020563787 A JP 2020563787A JP 2020563787 A JP2020563787 A JP 2020563787A JP 7292783 B2 JP7292783 B2 JP 7292783B2
Authority
JP
Japan
Prior art keywords
blockchain
priority
transaction
transactions
priorities
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.)
Active
Application number
JP2020563787A
Other languages
English (en)
Other versions
JP2021524963A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021524963A publication Critical patent/JP2021524963A/ja
Application granted granted Critical
Publication of JP7292783B2 publication Critical patent/JP7292783B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/3247Cryptographic 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 digital signatures
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本出願は、概して、許可型ブロックチェーンに関し、より詳細には、許可型ブロックチェーンにおける優先順位付けに関する。
ブロックチェーンは、情報を記憶するための公開台帳として使用され得る。ブロックチェーンは、主に金融トランザクションのために用いられるが、商品およびサービス(即ち、製品、パッケージ、状態など)に関する様々な情報を記憶し得る。非集中型方式は、非集中型ネットワークに権限および信用を与え、そのノードが連続的かつ逐次的にそれらのトランザクションを公開「ブロック」上に記録することを可能にし、ブロックチェーンと呼ばれる一意の「チェーン」を生成する。ハッシュ・コードを介した暗号法が、トランザクション元の認証を保証するために使用され、中央の仲介者を除去する。ブロックチェーンは、連続的に成長するレコードのリストをブロックチェーンのブロックに維持する分散型データベースであり、ブロックチェーンのブロックは、それらの不変性特性に起因して改ざんおよび改訂から保護される。各ブロックは、タイムスタンプおよび前のブロックへのリンクを含む。ブロックチェーンは、情報を保持し、追跡し、移転し、および検証するために使用され得る。ブロックチェーンは分散型システムであるため、ブロックチェーン台帳にトランザクションを追加する前に、全てのピアが、合意状態に達する必要がある。
従来、「処理対象の要求」および「記憶対象のデータ」全てが対等の重要性を有するわけではないとき、優先順位付けは、多くの種類のネットワークにおいて使用されている。優先度は、非集中型方式で判断され、および施行される必要がある。既存技術を直接適用することは、ブロックチェーン・ネットワークを集中制御型のシステムに退化させ得る。許可型ブロックチェーン・ネットワークは、トランザクション実行、合意、台帳確認、およびコミットメント段階などの複数の相互作用する異種プロセス/コンポーネントを有する複雑な分散型システムである。1つのコンポーネントにおいて優先度を施行することは、差別化サービスとはならないことがあるため、施行努力は、トランザクションの処理の複数段階において優先度を施行する必要がある。現在、ブロックチェーン・トランザクションに関する全ての要求が、対等の重要性で、より具体的には固定の順序で順番に処理されている。しかしながら、ブロックチェーン内のトランザクションを高速で追跡すること、または減速することが有益であるシナリオが存在する。重要なトランザクションは、通常のトランザクションよりも優先を必要とし得る(例えば、金融、健康管理など)。システム・トランザクションは、クライアント・トランザクションよりも優先を必要とし得る。システムの状態を変更する書込みトランザクションは、照会(読出し)トランザクションよりも優先を必要とし得る。
自由参加型(permissionless)ブロックチェーン・システムは、トランザクション手数料/暗号通貨を用いた優先順位付けを達成するための自然な手法を有する。例えば、トランザクションに対して支払う手数料が高いほど、そのトランザクションをブロックに追加するためにより大きなインセンティブをブロックチェーン・マイナーが有することを可能にし、そのトランザクションは、他のトランザクションより高速に実行される。より高い報酬が与えられるトランザクションについてそれが見落とされるとき、トランザクションは、無期限に延期され得る。この手法は、一度サブミットされたトランザクション実行を保証しようとする許可型ブロックチェーン・ネットワークにおいては実用的ではない。
したがって、当技術分野において前述した問題に対処する必要がある。
第1の態様から見ると、本発明は、ブロックチェーンにおける優先順位付けの方法を提供し、この方法は、ピア・エンドースメントを要求するブロックチェーン・トランザクションを識別することと、ブロックチェーンに割り当てられる1つまたは複数のピアにエンドースメントの要求を送信することと、1つまたは複数のピアからエンドースメント応答メッセージを受信することであって、このエンドースメント応答メッセージが、ブロックチェーン・トランザクションに割り当てられる複数の優先度を含む、受信することと、受信した複数の優先度およびブロックチェーン・トランザクションをピアに対する割当てのために順序付けノードに転送することと、を含む。
さらなる一態様から見ると、本発明は、ブロックチェーンにおける優先順位付けのための装置を提供し、この装置は、ピア・エンドースメントを要求するブロックチェーン・トランザクションを識別するように構成されるプロセッサと、ブロックチェーンに割り当てられる1つまたは複数のピアにエンドースメントの要求を送信するように構成される送信器と、1つまたは複数のピアからエンドースメント応答メッセージを受信するように構成される受信器であって、このエンドースメント応答メッセージが、ブロックチェーン・トランザクションに割り当てられる複数の優先度を含む、受信器と、を含み、この送信器は、受信した複数の優先度およびブロックチェーン・トランザクションをピアに対する割当てのために順序付けノードに転送するようにさらに構成される。
さらなる一態様から見ると、本発明は、ブロックチェーンにおける優先順位付けのためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路によって読出し可能であり、本発明のステップを実行する方法を実行するための処理回路による実行用命令を記憶する、コンピュータ可読記憶媒体を含む。
さらなる一態様から見ると、本発明は、コンピュータ可読媒体上に記憶され、デジタル・コンピュータの内部メモリ内にロード可能なコンピュータ・プログラムであって、上記プログラムがコンピュータ上で実行されるときに、本発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
1つの例としての実施形態は、ピア・エンドースメントを要求するブロックチェーン・トランザクションを識別することと、ブロックチェーンに割り当てられる1つまたは複数のピアにエンドースメントの要求を送信することと、1つまたは複数のピアからエンドースメント応答メッセージを受信することであって、このエンドースメント応答メッセージが、ブロックチェーン・トランザクションに割り当てられる複数の優先度を含む、受信することと、受信した複数の優先度およびブロックチェーン・トランザクションをピアに対する割当てのために順序付けノードに転送することと、のうちの1つまたは複数を含む方法を提供し得る。
別の例としての実施形態は、ピア・エンドースメントを要求するブロックチェーン・トランザクションの識別の1つまたは複数を実行するように構成されるプロセッサと、ブロックチェーンに割り当てられる1つまたは複数のピアにエンドースメントの要求を送信するように構成される送信器と、1つまたは複数のピアからエンドースメント応答メッセージを受信するように構成される受信器であって、このエンドースメント応答メッセージが、ブロックチェーン・トランザクションに割り当てられる複数の優先度を含む、受信器と、を含み、この送信器が、受信した複数の優先度およびブロックチェーン・トランザクションをピアに対する割当てのために順序付けノードに転送するようにさらに構成される、装置を含み得る。
別の例としての実施形態は、ピア・エンドースメントを要求するブロックチェーン・トランザクションを識別することと、ブロックチェーンに割り当てられる1つまたは複数のピアにエンドースメントの要求を送信することと、1つまたは複数のピアからエンドースメント応答メッセージを受信することであって、このエンドースメント応答メッセージが、ブロックチェーン・トランザクションに割り当てられる複数の優先度を含む、受信することと、受信した複数の優先度およびブロックチェーン・トランザクションをピアに対する割当てのために順序付けノードに転送することと、のうちの1つまたは複数を、実行時にプロセッサに実行させる命令を記憶するように構成される非一過性コンピュータ可読記憶媒体を含み得る。
本発明の実施形態は、これから単なる例として添付図面を参照して説明される。
例としての実施形態による、ブロックチェーン・トランザクション優先度割当ての論理ネットワーク図を示す。 例としての実施形態による、ブロックチェーン・トランザクション優先度割当ての間に実行される動作のセットのシステム構成図を示す。 例としての実施形態による、トランザクション優先度割当てシナリオのための一例としてのピア・ノード・ブロックチェーン・アーキテクチャ構成を示す。 例としての実施形態による、一例としてのピア・ノード・ブロックチェーン構成を示す。 例としての実施形態による、許可型ブロックチェーン・ネットワークを示す図である。 例としての実施形態による、トランザクション優先度割当てを実行するためのシステム・メッセージング図を示す。 例としての実施形態による、ブロックチェーンにおけるブロックチェーン・トランザクション優先度割当ての一例としての方法のフロー図を示す。 例としての実施形態による、ブロックチェーンにおけるブロックチェーン・トランザクション優先度割当ての別の例としての方法のフロー図を示す。 例としての実施形態による、本明細書に説明される1つまたは複数の動作に従ってブロックチェーン上の様々な動作を実行するように構成される一例としての物理インフラストラクチャを示す。 例としての実施形態による、ブロックチェーン上のスマート・コントラクト条件を施行するように構成される契約当事者と仲介サーバとの間の一例としてのスマート・コントラクト構成を示す。 例としての実施形態のうちの1つまたは複数をサポートするように構成される、一例としてのコンピュータ・システムを示す。
インスタント・コンポーネントは、本明細書において概して説明され図面に示されるように、多種多様な異なる構成において配列され設計され得ると、容易に理解される。よって、関連する図面および説明に表される、方法、装置、非一過性コンピュータ可読媒体、およびシステムの実施形態の詳細な説明は、本出願の範囲を限定することを意図しておらず、単に選択された実施形態を表している。
本明細書全体を通して説明されるようにインスタント特徴、構造、または特性は、1つまたは複数の実施形態において、任意の適当なやり方で結合され得る。例えば、「例としての実施形態」、「いくつかの実施形態」という語句、または他の類似の言葉の使用は、本明細書全体を通して、実施形態に関連して説明される特定の特徴、構造、または特性が少なくとも1つの実施形態に含まれ得るという事実を指す。よって、「例としての実施形態」、「いくつかの実施形態において」、「他の実施形態において」という語句、または他の類似の言葉の出現は、本明細書全体を通して、必ずしも全てが同一グループの実施形態を指しておらず、説明される特徴、構造、または特性が、1つまたは複数の実施形態において任意の適当なやり方で結合され得る。
さらに、「メッセージ」という用語が実施形態の説明において使用されていることがあるが、本出願は、パケット、フレーム、データグラムなどの多くの種類のメッセージまたはネットワーク・データに適用され得る。さらに、ある種類のメッセージ、シグナリング、およびプロトコルが、例示的実施形態に示されることがあるが、それらは、ある種類のメッセージ、シグナリング、またはプロトコルに限定されない。
例としての実施形態は、方法、デバイス、ネットワーク、またはシステム、あるいはそれらの組合せを提供し、それらは、選択的ピア管理手続きでブロックチェーン分散型システムをサポートする。ブロックチェーンは、互いに通信する複数のノードを含む分散型システムである。ブロックチェーンは、チェーンコード(例えばスマート・コントラクトなど)と呼ばれるプログラムを動作させ、状態および台帳データを保持し、そしてトランザクションを実行する。いくつかのトランザクションは、チェーンコード上で呼び出される動作である。概して、ブロックチェーン・トランザクションは、典型的には、あるブロックチェーン・メンバによって「エンドース」されなければならず、エンドースされたトランザクションのみが、ブロックチェーンにコミットされ、ブロックチェーンの状態に対する影響を有し得る。エンドースされない他のトランザクションは、無視される。管理機能およびパラメータについての1つまたは複数の特殊なチェーンコードが存在することがあり、まとめてシステム・チェーンコードと呼ばれる。
ノードは、ブロックチェーン・システムの通信エンティティである。「ノード」は、異なる種類の複数のノードが同一の物理サーバ上で実行し得るという意味で、論理関数を実行し得る。ノードは、信頼できるドメイン内にグループ化され、様々なやり方でそれらを制御する論理エンティティに関連付けられる。ノードは、クライアント、またはトランザクション呼び出しをエンドーサ(endorser)(例えば、ピア)にサブミットし、トランザクション提案を順序付けサービス(例えば、順序付けノード)にブロードキャストするサブミット・クライアントなどの異なる種類を含み得る。ノードの別の種類は、クライアントがサブミットしたトランザクションを受信し、トランザクションをコミットし、そしてブロックチェーン・トランザクションの台帳の状態およびコピーを維持し得るピア・ノードである。ピアは、エンドーサの役割も有し得るが、それは必須ではない。順序付けサービス・ノードまたはオーダラ(orderer)は、全てのノードについての通信サービスを実行するノードであり、それは、トランザクションをコミットするとき、およびブロックチェーンの世界状態を修正するときに、システム内の各ピア・ノードへのブロードキャストなどの、配信保証を実施する。
台帳は、ブロックチェーンの全ての状態遷移の、順番に配列された耐改ざんレコードである。状態遷移は、参加している当事者(例えば、クライアント・ノード、順序付けノード、エンドーサ・ノード、ピア・ノードなど)によってサブミットされるチェーンコード呼び出し(即ち、トランザクション)から生じ得る。トランザクションは、生成、更新、削除などの1つまたは複数のオペランドとして台帳にコミットされている資産キー・バリュー・ペアのセットをもたらし得る。台帳は、不変性の、順番に配列されたレコードをブロックに記憶するために使用されるブロックチェーン(チェーンとも呼ばれる)を含む。台帳は、ブロックチェーンの現在の状態を維持する状態データベースも含む。典型的には、チャネル毎に1つの台帳が存在する。各ピア・ノードは、それらがメンバであるチャネル毎に台帳のコピーを維持する。
チェーンは、ハッシュでリンクされたブロックとして構築されるトランザクション・ログであり、各ブロックは、N個のトランザクションのシーケンスを含み、ここでNは1以上である。ブロック・ヘッダは、ブロックのトランザクションのハッシュだけでなく、前のブロックのヘッダのハッシュも含む。このようにして、台帳上の全てのトランザクションが、順番に配列され、暗号によって共にリンクされ得る。したがって、ハッシュ・リンクを壊すことなく台帳データを改ざんすることはできない。直近に追加されたブロックチェーン・ブロックのハッシュは、その前に来たチェーン上のあらゆるトランザクションを表し、全てのピア・ノードが整合性および信頼性のある状態にあることを保証することを可能にしている。チェーンは、ピア・ノード・ファイル・システム(即ち、ローカル、アタッチされたストレージ、クラウドなど)上に記憶されてもよく、ブロックチェーンの作業負荷の追加専用の性質を効率的にサポートする。
不変性の台帳の現在の状態は、チェーン・トランザクション・ログに含まれる全てのキーについての最新の値を表す。現在の状態は、チャネルにとって既知の最新のキー・バリューを表すため、それは、世界状態と呼ばれることがある。チェーンコード呼び出しは、台帳の現在の状態データに対してトランザクションを実行する。これらのチェーンコードの相互作用を効率的にするために、キーの最新の値が、状態データベース内に記憶され得る。状態データベースは、単にチェーンのトランザクション・ログ内にインデックスされたビューであってもよく、したがって、それはいかなるときでもチェーンから再生成され得る。状態データベースは、ピア・ノードが起動した直後、およびトランザクションが受諾される前に、自動的に回復され得る(または必要であれば生成され得る)。
例としての実施形態は、ブロックチェーン・ピアが非集中型方式で保留中のブロックチェーン・トランザクションに優先度を割り当てるための、およびブロックチェーン・ネットワーク内のトランザクション処理の異なる段階において優先度が施行されるための方法、デバイス、システム、およびコンピュータ・プラットフォームを提供する。各ピアによって提供される割り当てられた優先度は、静的ルール、または他のネットワーク要素上の偶発的な動的システム・ルール、あるいはその両方に基づき得る。そのような割り当てられた優先度は、優先度統合ポリシーに基づいてトランザクションを管理するために、割り当てられ、使用されるべき単一の「最終」優先度に統合される。そのような統合されたポリシーは、トランザクションの順序付け/合意の間だけでなく、ブロックチェーン・トランザクション・コミットメントの前のトランザクション確認の間も、施行される。順序付けプロセス中の施行は、順序付け/オーダラ・ノードの順序付けサービスが、優先度を意識したブロック形成ポリシーに基づいて様々な利用可能優先度からトランザクションを選択することを可能にする。そのような優先度を意識したブロック形成ポリシーは、異なるピアが、ブロック形成の間複数の異なる優先度キューから同一セットのトランザクションを読み出すことを保証する。優先度の割当ては、また、それらがブロックチェーン上のトランザクションの一部として持続しているとき、後の時点において監査され得る。
1つの実施形態におけるインスタント適用例は、許可型ブロックチェーンに関係し、別の実施形態では、許可型ブロックチェーンにおける優先順位付けに関係する。
図1Aは、例としての実施形態による、ブロックチェーン・トランザクション優先度割当ての論理ネットワーク図を示す。図1Aを参照すると、構成100は、オーダラ、コミッタ(committer)、エンドーサを含むがそれらに限定されないピアに対するトランザクション委任を管理するクライアント110を含む。動作中、クライアント・ノード110は、1つまたは複数のエンドーシング・ピアの代わりに優先度施行モジュール112の一部として動作する、オーダラ・ノード(111、113、115)にエンドースメント要求105を送信する。エンドースメント要求および応答は、多重キュー・ブロック生成器116によって生成されるブロック内に記憶され、ピアは、クライアントからの直接の要求ではなくオーダラ・ノードからブロックを受信するとエンドースメントを実行し、次いでオーダラ/順序付けノードに応答を送信する。モニタリングおよびリバランシングは、ピアの相対的処理速度をモニタリングすることによって各クライアントにより実行されてもよく、それは、トランザクション毎のエンドースメント要求および応答のブロック高さを比較することを含む。その結果、ピアの選択は、それらのピアについて識別される降順の処理速度の順序で、それらの識別されたピアにエンドースメント要求を送信することによって実行され得る。
クライアント・ノードまたはエンティティが、新たなブロックチェーン・トランザクション要求101を「エンドーサ」・ピアのセットに提案/送信するとき、優先度計算器124は、各ピアによって使用されてもよく、それらのエンドーサ・ピア(121、123、125)は、優先度をトランザクションに割り当て、エンドースメント応答メッセージ103を用いてトランザクションに埋め込む。エンドーサは、実施されるポリシーに基づいて静的に優先度を決定してもよく、またはエンドーサは、局所的知識(例えば、現在のトランザクション負荷サイズ)に基づいて動的に優先度を決定してもよい。各エンドーサは、その応答エンドースメント・メッセージにおいて同一または異なる優先度をトランザクションに割り当て得る。1つの例では、トランザクションへのアクセスを提供される4つのエンドーサが存在する場合、それぞれが異なる優先度をトランザクションに割り当て得る、または3つが同一の優先度をトランザクションに割り当て得る、または全てが同一の優先度を割り当て得る、などであってもよい。エンドーサによるポリシーの初期割当ては、トランザクションが実行されるときに決定するための各ピアによるソフト優先度施行120と考えられ得る。
エンドーサが優先度を判断するために使用し得る基準のいくつかの例は、チェーンコードID、呼び出される特定の関数、読出しトランザクションよりも高い優先度を有する書込みトランザクション(例えば、監査目的でトランザクション・ログに書き込まれる空のライト・セットを有する照会)、または保留中のトランザクションの現在経験しているネットワーク負荷、あるいはそれらの組合せを含み得る。ピア・エンドーサは、優先度のソフト施行など、より高い優先度を有するトランザクションを最初に実行するために、局所的に計算された優先度を利用し得る。クライアントは、全てのエンドースメントおよび優先度割当てを受信し、整合性について結果をチェックする。クライアントは、優先度をバンドルし、トランザクションと共に全ての情報を「オーダラ」・ピア/合意プロバイダに転送し得る。
オーダラおよびエンドーサ・エンティティにおける優先度統合器114は、優先度統合ポリシー140を用いて最終優先度を決定する。この最終優先度は、エンドースメントの第2ラウンドを用いてエンドーサによって判断される。オーダラは、ブロック形成の間に優先順位付けを施行し、優先度毎に別個のキュー118を維持し、最終優先度割当て手続きに基づいてトランザクションをそれぞれのキュー118に送信する。オーダラ・ピアは、各優先度レベルからブロックに含まれるトランザクションの数を記述する、優先度を意識したブロック形成ポリシーに基づいて、異なる優先度キューからトランザクションを読み出す。多重キュー・ブロック生成器116は、ブロックを形成する。全てのオーダラは、ブロックを形成するために異なる優先度キューから同一セットのトランザクションを選択するべきである。このプロセスをサポートするために、カット時間(TTC:time to cut)同期メッセージが、この多重キュー構成において使用される。トランザクションは、書込みトランザクション107および読出しトランザクション109を含み得る。ブロックは、優先度施行130についてのバリデータ(validator)134に配信111される。バリデータ/コミッタ・ノード(131、133、135)は、各トランザクションに割り当てられたポリシーを活用して、優先順位付けされたバリデータ134を介した確認順序付けおよび実行の間、優先度を施行する。優先順位付けされたバリデータ134は、ブロック内に矛盾があるときに、より低い優先度のトランザクションよりもより高い優先度のトランザクションを選択する。それは、トランザクションの並列確認の形成である。最終的には、予備的優先度がエンドーサによって割り当てられ、最終優先度がオーダラによって選択されると、トランザクションは、台帳136にコミットされる。
特定のトランザクションに割り当てる優先度を決定するとき、第1の手法は、それがリード・セット/ライト・セットまたはクライアントIDあるいはその両方であろうと、チェーンコードIDなどの様々なパラメータに基づいて優先度を決定するための静的手法であってもよい。優先度を決定するためのポリシーは、ポリシー決定を正当化するために取得され使用される構成ファイルを介して指定され得る。優先度は、動的に決定されてもよく、その場合に、各ピアは、クライアントID毎のトランザクションの数、所与のピアにおけるシステム負荷、認識されていない/好適なクライアントから受信したトランザクションに基づいて優先権を決定する。エンドーサは、トランザクションに割り当てる優先度を決定し、エンドースメントについてのクライアントの要求に対する提案応答の一部としてそれを送信してもよく、次いで、最終優先度およびコミットメント動作のために順序付けサービスにトランザクションを転送する。エンドーサは、優先度を確立するときに署名を提供し得る。
静的優先度割当ての1つの例は、あるトランザクションを、トランザクション「A」:#読出し 10、#書込み 2、トランザクションB:#読出し 2、#書込み 10として識別することを規定し得る。結果は、トランザクションのそれぞれにおける読出しおよび書込みの数に基づいて、トランザクションAに優先度「3」が割り当てられ、トランザクションBに優先度「1」が割り当てられることになる。優先度方式ポリシーに対しては、書込みは読出しよりも重要である。次に、オーダラは、トランザクションについての異なるまたは同一の、あるいはその両方のエンドースされた優先度を受信し、最終優先度を決定しなければならない。別の例としての実施形態では、優先度統合は、また、優先度の最終処理のためにエンドースメントの第2ラウンドを用いてエンドーサにおいて実行されてもよく、その場合に、クライアントはエンドーサから受信した優先度をバンドルし、最終優先度計算のために各エンドーサにそれらを返送する。1つの特定の優先度の例において、エンドーサ・セットが、E={A,B,C,D}であると仮定すると、いくつかの例としてのポリシーは、「n」のうちの過半数(n/2+)であってもよい。優先度は、A>B>C>Dなどの順序で考慮され、Aがエンドースされる場合、その優先度が考慮され、そうでない場合、Bの優先度が考慮される、などである。ある重み(A=40、B=30、C=20、D=10)を用いると、平均はSUM(全て)/nである。
例としての実施形態によれば、N個の優先度レベルに対応するN個のキューが存在する。キューに発行するとき、オーダラは、受信したトランザクションから優先度の値を読み出し、割り当てられた優先度の過半数、優先度の中央値、または他の優先度セグメンテーション動作に基づいてトランザクションを適当な優先度キューに発行する。オーダラは、キューを読み出し、ブロックを形成する。ブロック内に含まれるべき各優先度のトランザクションの数は、ポリシーにおいて定義され得る。オーダラは、パーセンテージ、バッチ・サイズ、またはタイムアウト、あるいはそれらの組合せに基づいてブロックを形成する。オーダラは、まず、優先度毎のトランザクションの期待数を含むことによってブロックを形成することを試みる。トランザクションの期待数に到達する前にタイムアウトがある場合、カット時間ブロック数「n」(TTC-n*)のメッセージが、全てのキューに送信される。ブロックは、まず、トランザクションの期待数、および各トピックからのTTCの前に利用可能なトランザクションを含む。残りのトランザクションは、TTC-nの前の残りのトランザクションで最も高い優先度を有するトピックから取られる。
優先度を施行するとき、1つの例は、例えば、3つの優先度<高、中、低>についてパーセンテージが<100、0、0>であり、ブロックを形成するためのバッチ・サイズが100である場合、オーダラは、高優先度のキューから100個のトランザクションを観測するとすぐにブロックを形成しなければならないと規定し得る。100個の高優先度のトランザクションが見られる前にタイムアウトがある場合、オーダラは、全てのキューにTTC-nメッセージを送信する。TTC-nメッセージの前に、高優先度キューに60個のトランザクション、中優先度キューに20個のトランザクション、低優先度キューに50個のトランザクションがあった。今、ブロックは、高優先度キューから60個のトランザクション、中優先度から20個のトランザクション、および低優先度キューから20個のトランザクションを含む。この例では、全ての高優先度キュー・トランザクションが、等しい数の中優先度および低優先度トランザクションと共にブロックのために取られた。
ブロック管理の別の例では、パーセンテージ・タプルは、<50、30、20>であってもよい。オーダラが高優先度キューに少なくとも50個のトランザクション、中優先度キューに30個のトランザクション、および低優先度キューに20個のトランザクションを観測する場合、オーダラは、すぐにブロックを形成する。バケットのいずれかが、タイムアウトにおいて一杯ではない場合、TTC-nメッセージが、全てのキューに送信される。TTC-nの前に、高優先度キューに55個のトランザクション、中優先度キューに50個のトランザクション、低優先度キューに10個のトランザクションがあったと仮定すると、今、形成されるブロックは、高優先度キューから55個のトランザクション、中優先度キューから35個のトランザクション、および低優先度キューから10個のトランザクションを含むことになる。
優先度は、代替的には、クライアントによって、またはトランザクションの最終段階(コミッタ)において決定され得る。クライアントは、また、それがより重要でない、またはより重要であると識別するトランザクションについての優先度を提案し得る。オーダラに悪意のある可能性があり、分岐した台帳から回復するやり方があるという仮定を用いると、優先度検証もまた、オーダラにおいて実行されてもよく、その場合に、最終優先度計算は、各オーダラにおいて独立して検証されてもよく、トランザクションの最終優先度がもともと読み出されたキューに合致するかどうかを判断するために、チェックが実行され得る、任意の不遵守問題を識別すると、トランザクションは落とされ得る。この構成についてのいくつかの基本的な仮定は、多重ピア分散型ブロックチェーン・システムを含み、そこでは、ピアが、1つまたは複数の役割(例えば、エンドーサ、コミッタ、オーダラ)を有してもよく、「全体の順序」を提供する分散型キュー、および全ての消費者が、同一セットのメッセージを消費する。
初期優先度を決定する間エンドーサによって使用され得る可能な基準は、様々な異なる基準に基づき得る。例えば、チェーンコードに関して、特定のチェーンコード(スマート・コントラクト)に関するトランザクションは、何らかの他のチェーンコードに関するトランザクションよりも高い優先度を有し得る。例えば、システム構成更新トランザクションは、システム・チェーンコードによって実行され、任意の他のチェーンコードに関するトランザクションよりも高い優先度がエンドーサによって割り当てられ得る。チェーンコード内の関数に関する別の例では、複数の関数が存在し、特定関数を呼び出すトランザクションには、同一チェーンコード内の他の関数を呼び出すトランザクションよりも高い優先度が割り当てられ得る。例えば、病院管理についてのチェーンコードが存在し、そのチェーンコード内部に「admitPatientToEmergency」および「dischargePatient」の2つの関数が存在する場合。その結果、「admitPatientToEmergency」関数に関するトランザクションには、「dischargePatient」関数に関するトランザクションよりも高い優先度が割り当てられ得る。空のライト・セットを有する読出し/照会に対するトランザクションに関しては、この場合、エンドーサは、ある変数に対するシステム更新「書込み」を実行しなければならないトランザクションに、単に変数を「読出し」しなければならないトランザクションよりも高い優先権を与えるように構成され得る。逆のポリシーも使用されてもよく、その場合、読出しトランザクションに、書込みトランザクションよりも高い優先度が割り当てられる。現在の経験負荷の例に関して、ここで、エンドーサは、エンドーサがある時間に優先度#1(即ち最高優先度)を有するトランザクションを全く見ていないことが分かっている場合、それらの状況下で、第2の優先度#2(優先度#1より低い優先度)を有するトランザクションも優先度#1のレベルに移動し得るようなやり方で、構成され得る。また、エンドーサは、それらのポリシーのうちの1つよりも多くの組合せを用いることによって、優先度を決定するように構成され得る。
概して、例としての実施形態に従って考慮されている2つの主な種類のポリシーが存在し、それらは、優先度ポリシーおよび優先度統合ポリシーを含む。優先度ポリシーは、例としてのポリシー考慮において概説されるポリシーの種類である。例えば、優先度ポリシーが、チェーンコードIDにのみ基づいて優先度を決定することであった場合、ポリシー文書は、「チェーンコード1」->優先度1、「チェーンコード2」->優先度1、「チェーンコード3」->優先度2、などと述べる。他方のポリシーは、優先度統合ポリシーである。
オーダラは、優先度統合ポリシーを用いて最終優先度を判断する。優先度ポリシーおよび優先度統合ポリシーの両方は、2つの別個のファイルに記憶される。それらのファイルは、ポリシー・ファイルである。第1のポリシー・ファイルは、初期優先度割当てを判断するためにエンドーサによって使用され、第2のポリシー・ファイルは、最終優先度を決定するために、オーダラによって使用される。エンドーサ・セットは、E={A,B,C,D}であり、いくつかの例としてのポリシーは、「n」のうちの過半数(n/2+)であり得る。優先度は、A>B>C>Dなどの順序で考慮され、Aがエンドースされる場合、その優先度が考慮され、そうでない場合、Bの優先度が考慮される。ある重み(A=40、B=30、C=20、D=10)を用いると、平均はSUM(全て)/nである。上述した例において、4つのエンドーサA、B、C、およびDが存在する。よって、「E」によって示されるエンドーサのセットは、4つの要素を有する。したがって、E={A,B,C,D}である。そこで、サンプル優先度統合ポリシーは、サンプル・ポリシー1:「n」のうちの過半数(n/2+)であってもよく、そのため、n=4のこの例では4つのエンドーサが存在し、2(n/2)または2より多くのエンドーサが何らかの優先度について同意する場合、それが、最終優先度である。サンプル・ポリシー2について、優先度は、A>B>C>Dなどの順序で考慮される。クライアントは、セットEにおける1つまたは複数のエンドーサからエンドースメントを取らないように選択し得ることに留意されたい。その場合、この種の優先度統合ポリシーが指定され、かつクライアントがエンドーサ「A」からエンドースメントを取る場合、「A」によって割り当てられた優先度はどれでも、最終優先度と考えられる。同様に、エンドーサ「A」からのエンドースメントが見つからない場合、およびBからのエンドースメントが取られる場合、エンドーサ「B」によって割り当てられる優先度が、最終優先度と考えられる、などである。別のサンプル・ポリシー3では、ある重み(A=40、B=30、C=20、D=10)を用いて、この種のポリシーにおいて、各エンドーサにある重みが割り当てられており、そのため、エンドーサ「A」が、優先度が#1であるべきであると示した場合、B、C、およびDが、優先度が#2であるべきであると投票する。測定されるように、優先度#1に対して40の重み(エンドーサAからの)が存在したが、優先度#2に対しては60の重み(エンドーサB、C、およびDからの)が存在したからである。別の例において、サンプル・ポリシー#4は、平均SUM(全て)/nを有する。これは、単純な平均に基づくポリシーであり、そのため、「A」が優先度#2を示し、「B」が優先度#2を示し、Cが優先度#3を示し、Dが優先度#1を示す場合、最終優先度は、平均である(2+2+3+1)/4=2となる。
ポリシー管理のシステム構成は、ブロック内に各優先度のある数のトランザクションを含むように構成され得る。そのため、例えば、ブロック・サイズは100個のトランザクションであり、かつ3つの優先度レベルがある場合、優先度#1のトランザクションを50個、優先度#2のトランザクションを30個、優先度#3のトランザクションを20個、ブロック内に含む。そこで、この比は、50:30:20であり、それが構成として定義され得る。理想的には、ブロックチェーン・メンバのうちのいずれかを無視しないように、各キューから少なくとも1つのトランザクションが単一のブロックに含まれる。ある期間の間、いくつかの特定の優先度レベルのトランザクションを停止することが望ましい場合、トランザクション動作比率が、それに従って指定され得る。例えば、上述した例において、比率が50:50:0である場合、優先度#3を有するトランザクションは、どのブロックにも含まれない。そのため、ある時間の後この比率が更新されるまで、優先度#3を有するトランザクションは全く処理されず、50個のトランザクションが存在すると仮定すると、優先度#1および#2のそれぞれが各ブロックを満たすために利用可能である。言い換えると、優先度#3は、厳密には、優先度#1および#2のトランザクションを収容した後の任意の残りのキャパシティに基づく、ベスト・エフォート・シナリオとなる。
図1Bは、例としての実施形態による、ブロックチェーン・トランザクション優先度割当ての間に実行される動作のセットのシステム構成図を示す。図1Bを参照すると、システム構成150は、クライアント152、エンドーシング・ピア154、オーダラ156、およびコミッティング・ピア158を含む。最初に、クライアント152は、エンドーシング・ピア154に優先度割当てのためのトランザクションをサブミットする。トランザクション要求は、クライアントID、チェーンコードID、トランザクション・ペイロード、タイムスタンプ、およびクライアント署名を含み得る162。エンドーシング・ピア154は、トランザクションをシミュレートし、既知のデータに基づいて優先度を計算し、そして優先度割当てに署名し得る163。エンドースメント164は、クライアント152に返送され、クライアント152は、トランザクションおよび優先度情報を収集し165、エンドースメントをオーダラ156に送信する166。優先度割当ては、ポリシーに基づいて統合され、対応キューに割り当てられる167。トランザクションは、キューから読み出され、各トランザクションの優先度が、トランザクションのブロックを生成する前に検証される169。ブロックは、書込みトランザクション168と共にエンドーシング・ピアに割り当てられる。ピアは、エンドースメントおよびリード・セットを検証し、許容可能であれば、ライト・セットが状態に適用される171。トランザクションは、次いで、コミッティング・ピアにサブミットされ172、コミッティング・ピアは、優先度を確認し、ブロックチェーンへの引渡しのためにトランザクションを確認する173。
図2Aは、例としての実施形態による、ブロックチェーン・システム・アーキテクチャ構成200を示す。図2Aを参照すると、ブロックチェーン・アーキテクチャ200は、あるブロックチェーン要素、例えば、ブロックチェーン・トランザクション追加および確認プロセス(合意)に参加する、ブロックチェーン・ノード281~284のグループ280を含み得る。ブロックチェーン・ノード281~284の1つまたは複数は、トランザクションをエンドースしてもよく、1つまたは複数のブロックチェーン・ノード281~284は、アーキテクチャ200内の全てのブロックチェーン・ノードについての順序付けサービスを提供し得る。ブロックチェーン・ノードは、ブロックチェーン認証を開始し、ブロックチェーン層220に記憶されるブロックチェーン不変台帳に書込みしようとしてもよく、そのコピーもまた、支持物理インフラストラクチャ210上に記憶され得る。ブロックチェーン構成は、1つまたは複数のアプリケーション270を含んでもよく、アプリケーション270は、記憶されたプログラム/アプリケーション・コード250(例えば、チェーンコード、スマート・コントラクトなど)にアクセスし実行するために、アプリケーション・プログラミング・インターフェース(API)260にリンクされる。プログラム/アプリケーション・コード250は、参加者によって求められるカスタマイズされた構成に従って生成されてもよく、それ自体の状態を維持し、それ自体の資産を制御し、外部情報を受信し得る。
ブロックチェーン・ベースまたはプラットフォーム205は、ブロックチェーン・データの様々な層、サービス(例えば、暗号による信用サービス、仮想実行環境など)、ならびに新たなトランザクションを受信および記憶し、データ・エントリにアクセスしようとしている監査役へのアクセスを提供するために使用され得る支持物理コンピュータ・インフラストラクチャを含み得る。ブロックチェーン層220は、プログラム・コードを処理し物理インフラストラクチャ210に関与するのに必要な仮想実行環境へのアクセスを提供するインターフェースを公開し得る。暗号による信用サービス230は、資産交換トランザクションなどのトランザクションを検証し、情報を秘密のままにするために使用され得る。
図2Aのブロックチェーン・アーキテクチャ構成は、公開された1つまたは複数のインターフェースおよび提供されるサービスを介して、ブロックチェーン・プラットフォーム205によってプログラム/アプリケーション・コード240を処理および実行し得る。コード240は、ブロックチェーン資産を制御し得る。例えば、コード240は、データを記憶および移転してもよく、スマート・コントラクトの形態でノード281~284によって実行されてもよく、その実行を前提として条件または他のコード要素とチェーンコードを関連付けられてもよい。非限定的な例として、スマート・コントラクトは、変更、更新などを前提としてリマインダ、更新、または他の通知、あるいはそれらの組合せを実行するために生成され得る。スマート・コントラクト自体は、認可およびアクセス要件、ならびに台帳の使用に関するルールを識別するために使用され得る。1つの例では、ピア・トランザクション優先度データ222は、ブロックチェーン層220に含まれる1つまたは複数の処理エンティティ(例えば、仮想機械)によって識別され処理され得る。結果は、ブロックチェーン・タスク/イベントの処理のための優先度割当てに従ってピアにブロックを割り当てること224を含み得る。
チェーンコード内で、スマート・コントラクトは、高レベル・アプリケーションおよびプログラミング言語を介して生成されてもよく、次いで、ブロックチェーン内のブロックに書き込まれてもよい。スマート・コントラクトは、ブロックチェーン(例えば、ブロックチェーン・ピアの分散型ネットワーク)を用いて登録される、記憶される、または複製される、あるいはそれらの組合せである実行可能コードを含み得る。トランザクションは、スマート・コントラクトに関連付けられた条件が満たされていることに応答して実行され得るスマート・コントラクト・コードの実行である。スマート・コントラクトの実行は、デジタル・ブロックチェーン台帳の状態に対する信頼性のある修正をトリガし得る。スマート・コントラクト実行により生じるブロックチェーン台帳への修正は、1つまたは複数の合意プロトコルを通してブロックチェーン・ピアの分散型ネットワーク全体で自動的に複製され得る。
スマート・コントラクトは、キー・バリュー・ペアのフォーマットでブロックチェーンにデータを書き込み得る。さらに、スマート・コントラクト・コードは、ブロックチェーンに記憶された値を読み出し、アプリケーション動作においてそれらを使用し得る。スマート・コントラクト・コードは、様々な論理演算の出力をブロックチェーン内に書き込み得る。コードは、仮想機械または他のコンピューティング・プラットフォームにおいて一時データ構造を生成するために使用され得る。ブロックチェーンに書き込まれたデータは、公開であってもよく、または秘密として暗号化され維持されてもよく、あるいはその両方であってもよい。スマート・コントラクトによって使用され/生成される一時データは、供給される実行環境によってメモリ内に保持され、ブロックチェーンに必要なデータが識別されるとすぐに削除される。
チェーンコードは、追加の特徴と共に、スマート・コントラクトのコード解釈を含み得る。本明細書で説明されるように、チェーンコードは、コンピューティング・ネットワーク上に展開されるプログラム・コードであってもよく、そこで、チェーンコードは、合意プロセス中にチェーン・バリデータによって共に実行され確認される。動作中に、チェーンコードは、ハッシュを受信し、以前記憶された特徴抽出器により生成されるデータ・テンプレートに関連付けられたハッシュをブロックチェーンから取得し得る。ハッシュ識別子のハッシュと記憶された識別子テンプレート・データから生成されるハッシュとが合致する場合、チェーンコードは、認可キーを要求されたサービスに送信する。チェーンコードは、暗号の詳細に関連付けられたブロックチェーン・データに書き込み得る。図2Aのこの例において、ピア優先度割当ては、トランザクション・ブロックとしてブロックチェーンにトランザクションを順序付けし、割り当て、そして書き込むために使用され得る。
図2Bは、一例としての実施形態による、ブロックチェーンのノード間のトランザクション・フロー250の一例を示す。図2Bを参照すると、トランザクション・フローは、アプリケーション・クライアント・ノード201によってエンドーシング・ピア・ノード281に送信されたトランザクション提案291を含み得る。エンドーシング・ピア281は、クライアント署名を検証し、トランザクションをシミュレートするためにチェーンコード関数を実行し得る。出力は、チェーンコード結果、チェーンコードにおいて読み出されたキー/バリュー・バージョンのセット(リード・セット)、およびチェーンコードに書き込まれたキー/バリューのセット(ライト・セット)を含み得る。提案応答292は、承認された場合、エンドースメント署名と共にクライアント201に返送される。クライアント201は、トランザクション・ペイロード293内にエンドースメントを集め、順序付けサービス・ノード284にそれをブロードキャストする。順序付けサービス・ノード284は、次いで、チャネル上の全てのピア281~283に順序付けされたトランザクションをブロックとして配信する。ブロックチェーンへの引渡しの前に、各ピア281~283は、トランザクションを確認し得る。例えば、ピアは、指定されたピアの正しい分配が結果に署名し、トランザクション・ペイロード293に対して署名を認証したことを保証するために、エンドースメント・ポリシーをチェックし得る。
再び図2Bを参照すると、クライアント・ノード201は、ピア・ノード281への要求を構成し送信することによって、トランザクション291を開始する。ピア・ノード281は、エンドーサである。クライアント201は、NODE、Java(R)、PYTHONなどのサポートされるソフトウェア開発キット(SDK)を活用するアプリケーションを含んでもよく、それは、利用可能なAPIを利用してトランザクション提案を生成する。JavaおよびJavaに基づく商標およびロゴは、Oracle、またはその関連会社、あるいはその両方の商標または登録商標である。
データが読み出され得る、または台帳に書き込まれ得る(即ち、資産についての新たなキー・バリュー・ペアを書き込む)、あるいはその両方であるように、提案は、チェーンコード関数を呼び出すための要求である。SDKは、トランザクション提案を適切に設計されたフォーマット(例えば、リモート・プロシージャ・コール(RPC)上のプロトコル・バッファ)にパッケージ化し、トランザクション提案についての一意の署名を作り出すためにクライアントの暗号による信用証明書を取るためのシムの役割をし得る。
それに応答して、エンドーシング・ピア・ノード281は、(a)トランザクション提案がうまく形成されること、(b)トランザクションが既に過去にサブミットされていないこと(リプレイ・アタック防御)、(c)署名が有効であること、および(d)サブミッタ(例でのクライアント201)が、提案された動作をそのチャネル上で実行するように適切に認可されていること、を検証し得る。エンドーシング・ピア・ノード281は、呼び出されたチェーンコード関数への引数としてトランザクション提案入力を取り得る。チェーンコードは、次いで、応答値、リード・セット、およびライト・セットを含むトランザクション結果を作り出すために現在の状態データベースに対して実行される。しかしながら、この時点では台帳に更新は行われない。292において、値のセットは、エンドーシング・ピア・ノード281の署名と共に、消費するアプリケーションについてのペイロードを解析するクライアント201のSDKに提案応答292として再び渡される。
それに応答して、クライアント201のアプリケーションは、エンドーシング・ピアの署名を検査/検証し、提案応答が同一であるかどうかを判断するために提案応答を比較する。チェーンコードが台帳に照会のみをした場合、アプリケーションは、クエリ応答を検査し、典型的には順序付けノード・サービス284にトランザクションをサブミットしない。クライアント・アプリケーションが、台帳を更新するために順序付けノード・サービス284にトランザクションをサブミットすることを意図する場合、指定されたエンドースメント・ポリシーがサブミットの前に満たされている(即ち、トランザクションに必要な全てのピア・ノードがトランザクションをエンドースした)かどうかを、アプリケーションが判断する。ここで、クライアントは、トランザクションに対する複数の当事者のうちの1人だけを含み得る。この場合、各クライアントが、それ自体のエンドーシング・ノードを有してもよく、各エンドーシング・ノードは、トランザクションをエンドースする必要がある。アーキテクチャは、アプリケーションが、応答を検査しないように選択するか、またはそうでなければエンドースされていないトランザクションを転送するとしても、エンドースメント・ポリシーが、依然としてピアによって施行され、コミット確認段階において支持されるようにする。
検査成功後、ステップ293において、クライアント201は、エンドースメントをトランザクション内に集め、トランザクション・メッセージ内のトランザクション提案および応答を順序付けノード284にブロードキャストする。トランザクションは、リード・セット/ライト・セット、エンドーシング・ピアの署名、およびチャネルIDを含み得る。順序付けノード284は、その動作を実行するためにトランザクションの内容全体を検査する必要はなく、その代わりに、順序付けノード284は、ネットワーク内の全てのチャネルからトランザクションを単に受信し、チャネルによって暗号によりそれらを順序付けし、そしてチャネル毎にトランザクションのブロックを生成し得る。
トランザクションのブロックは、順序付けノード284からチャネル上の全てのピア・ノード281~283に配信される。ブロック内のトランザクション294は、任意のエンドースメント・ポリシーが満たされていることを保証するため、およびリード・セットがトランザクション実行によって生成されて以降リード・セット変数についての台帳状態に変更がなかったことを保証するために、確認される。ブロック内のトランザクションは、有効または無効であるとしてタグ付けされる。さらに、ステップ295において、各ピア・ノード281~283は、ブロックをチャネルのチェーンに付加し、有効トランザクション毎に、ライト・セットが、現在の状態データベースにコミットされる。トランザクション(呼び出し)が、チェーンに不変的に付加されていることをクライアント・アプリケーションに通知するためだけでなく、トランザクションが有効化されたかまたは無効化されたかを通知するためにも、イベントが発行される。
図3は、許可型ブロックチェーン・ネットワーク300の一例を示し、それは、分散型の、非集中型ピアツーピア・アーキテクチャ、ならびにユーザの役割および許可を管理する証明書権限318を特徴付ける。この例では、ブロックチェーン・ユーザ302は、許可型ブロックチェーン・ネットワーク310にトランザクションをサブミットし得る。この例では、トランザクションは、展開、呼び出し、または照会であってもよく、SDKを活用するクライアント側アプリケーションを通して、REST APIを直接通して、などにより発行され得る。信頼できるビジネス・ネットワークが、監査役(例えば、米国株式市場における証券取引委員会)などの規制者システム314へのアクセスを提供し得る。一方、ブロックチェーン・ネットワーク事業者308は、規制者システム310を「監査役」として、ブロックチェーン・ユーザ302を「クライアント」として登録するなどの、メンバ許可を管理することを含むノードのシステムを管理する。監査役は台帳を照会することのみに制限されてもよく、その一方で、クライアントは、あるタイプのチェーンコードを展開し、呼び出し、照会するように認可されてもよい。
ブロックチェーン開発者システム316は、チェーンコードおよびクライアント側アプリケーションを書き込む。ブロックチェーン開発者システム316は、RESTインターフェースを通してネットワークに直接チェーンコードを展開し得る。従来のデータ・ソース330からの信用証明書をチェーンコードに含めるために、開発者システム316は、帯域外接続を使用して、データにアクセスし得る。この例では、ブロックチェーン・ユーザ302は、ピア・ノード312を通してネットワークに接続する。任意のトランザクションを続行する前に、ピア・ノード312は、証明書権限318からユーザの登録およびトランザクション証明書を取得する。いくつかの場合において、ブロックチェーン・ユーザは、許可型ブロックチェーン・ネットワーク310上で取引するために、これらのデジタル証明書を所有しなければならない。一方、チェーンコードを駆動しようとするユーザは、従来のデータ・ソース330上で彼らの信用証明書を検証することを必要とされ得る。ユーザの認可を確かめるために、チェーンコードは、従来の処理プラットフォーム320を通してこのデータへの帯域外接続を使用し得る。
図4は、例としての実施形態による、トランザクション優先度割当てを実行するためのシステム・メッセージング図を示す。図4を参照すると、システム400は、クライアント410、ピア420、およびオーダラ430を提供する。プロセスは、エンドースメントを要求する1つまたは複数のブロックチェーン・トランザクションを識別すること412を含み得る。対応する要求が生成され、エンドースメント・ピアに送信414されてもよく、エンドースメント・ピアは、初期または第1の優先度をブロックチェーン・トランザクションに割り当てる416。エンドースメント応答は、エンドーサ・ピア署名および1つまたは複数のトランザクションに割り当てられた優先度を含む。応答418は、クライアント410に返送され、クライアント410は、エンドースメント422をオーダラ430に転送する。トランザクションは、オーダラ430によって判断される各トランザクションに割り当てられた最終優先度に依存して、キュー内で順序付け424される。ブロックは、トランザクションのコミットメントについて生成426され、コミッティング・ピアに割当て428される。トランザクションは、それらの最終優先度432、および、ポリシーに従ってより低い優先度のトランザクションを考慮しつつより高い優先度を有するトランザクションを選択するために使用される優先度選択手続きに基づいてコミットされる。
図5Aは、例としての実施形態による、ブロックチェーンにおけるブロックチェーン・トランザクション優先度割当ての一例としての方法のフロー図を示す。図5Aを参照すると、方法500は、ピア・エンドースメントを要求するブロックチェーン・トランザクションを識別すること512と、ブロックチェーンに割り当てられる1つまたは複数のピアにエンドースメントの1つまたは複数の要求を送信すること514と、1つまたは複数のピアからエンドースメント応答メッセージを受信すること516であって、このエンドースメント応答メッセージが、ブロックチェーン・トランザクションに割り当てられる複数の優先度を含む、受信すること516と、を含み得る。この方法は、また、受信した複数の優先度およびブロックチェーン・トランザクションをピアに対する割当てのために順序付けノードに転送すること518を含む。
ブロックチェーン・トランザクションに割り当てられた複数の優先度は、複数の優先度のうちの他の少なくとも1つとは異なる少なくとも1つの優先度を含む。ブロックチェーン・トランザクションに割り当てられた複数の優先度が、全て同一の優先度であってもよい。ブロックチェーン・トランザクションに割り当てられた複数の優先度を判断するために使用される基準が、チェーンコード識別子(ID)、呼び出される関数、トランザクション・タイプ、およびブロックチェーン・トランザクションの現在の負荷のうちの1つまたは複数を含む。この方法は、また、受信した複数の優先度に基づいて、順序付けノードにおいてブロックチェーン・トランザクションの最終的な順序付け優先度を判断することと、それらの最終優先度に基づいて、ブロックチェーン・トランザクションを複数の優先度キューのうちの1つに割り当てることと、を提供する。この方法は、また、1つまたは複数のトランザクション矛盾が識別されるときに、他のブロックチェーン・トランザクションより高い優先度を割り当てられた複数のブロックチェーン・トランザクションを複数の優先度キューから選択することと、ブロックチェーン・ブロックを形成するために、より高い優先度を割り当てられた複数のブロックチェーン・トランザクションを確認することと、を含んでもよい。概して、より高い優先度を割り当てられた複数のブロックチェーン・トランザクションが、エンドースメント・ポリシーに基づいて最初に確認される。
図5Bは、例としての実施形態による、ブロックチェーンにおけるブロックチェーン・トランザクション優先度割当ての別の例としての方法のフロー図を示す。図5Bを参照すると、方法550は、ピア・エンドースメントを要求するブロックチェーン・トランザクションを識別すること552と、ブロックチェーンに割り当てられる1つまたは複数のピアにエンドースメントの要求を送信すること554と、信頼性のあるソースから送信されたエンドースメントの要求を識別すること556と、信頼性のあるソースに基づいて1つまたは複数のピアによって所定の優先度をブロックチェーン・トランザクションに割り当てること558と、割り当てられた所定の優先度を含むエンドースメント応答メッセージを1つまたは複数のピアから受信すること562と、を含む。
ポリシーおよびエンドースメント要求の既知の属性に従ってピアにより実行される優先度判断手続きに加えて、信頼性のあるソースは、ある優先度のものであると知られているエンドースメント要求を転送するだけであってもよい。これによって、ピアが、任意の判断プロセスにオーバライドすること、およびいかなる他の優先度計算または判断プロセスもなしにある優先度を直接割り当てることが可能となる。
図6Aは、例としての実施形態による動作の例としての方法のうちの1つまたは複数に従って、ブロックチェーン上の様々な動作を実行するように構成される一例としての物理インフラストラクチャを示す。図6Aを参照すると、例としての構成600は、ブロックチェーン620およびスマート・コントラクト640を有する物理インフラストラクチャ610を含み、それは、例としての実施形態のうちのいずれかに含まれる動作ステップ612のいずれかを実行し得る。ステップ/動作612は、1つまたは複数のフロー図またはロジック図あるいはその両方において説明され、または示されるステップのうちの1つまたは複数を含み得る。ステップは、コンピュータ・システム構成の物理インフラストラクチャ610上に存在する、1つまたは複数のスマート・コントラクト640またはブロックチェーン620、あるいはその両方から書き込まれ、または読み出される出力または書込み情報を表し得る。データは、実行されたスマート・コントラクト640またはブロックチェーン620、あるいはその両方から出力され得る。物理インフラストラクチャ610は、1つまたは複数のコンピュータ、サーバ、プロセッサ、メモリ、または無線通信デバイス、あるいはそれらの組合せを含み得る。
図6Bは、例としての実施形態による、ブロックチェーン上のスマート・コントラクト条件を施行するように構成される契約当事者と仲介サーバとの間の一例としてのスマート・コントラクト構成を示す。図6Bを参照すると、構成650は、1つまたは複数のユーザ・デバイス652または656あるいはその両方を明示的に識別するスマート・コントラクト640によって駆動される、通信セッション、資産移転セッション、またはプロセスもしくは手続きを表し得る。実行、動作、およびスマート・コントラクト実行の結果が、サーバ654によって管理され得る。スマート・コントラクト640の内容は、スマート・コントラクト・トランザクションに対する当事者であるエンティティ652および656のうちの1つまたは複数によるデジタル署名を必要とし得る。スマート・コントラクト実行の結果は、ブロックチェーン・トランザクションとしてブロックチェーンに書き込まれ得る。
上記実施形態は、ハードウェアにおいて、プロセッサにより実行されるコンピュータ・プログラムにおいて、ファームウェアにおいて、または上記の組合せにおいて実施され得る。コンピュータ・プログラムは、記憶媒体などのコンピュータ可読媒体上で具現化され得る。例えば、コンピュータ・プログラムは、ランダム・アクセス・メモリ(「RAM」)、フラッシュ・メモリ、読出し専用メモリ(「ROM」)、消去可能プログラマブル読出し専用メモリ(「EPROM」)、電気的消去可能プログラマブル読出し専用メモリ(「EEPROM」)、レジスタ、ハード・ディスク、リムーバブル・ディスク、コンパクト・ディスク読出し専用メモリ(「CD-ROM」)、または当技術分野において既知の任意の他の形式の記憶媒体に存在し得る。
プロセッサが記憶媒体から情報を読み出し、かつ記憶媒体に情報を書き込むように、一例示的記憶媒体は、プロセッサに連結され得る。代替的には、記憶媒体が、プロセッサと一体であってもよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(「ASIC」)に存在してもよい。代替的には、プロセッサおよび記憶媒体は、個別のコンポーネントとして存在してもよい。例えば、図7は、一例としてのコンピュータ・システム・アーキテクチャ700を示し、それは、上述したコンポーネントのうちのいずれかを表してもよく、または上述したコンポーネントのうちのいずれかにおいて一体化されてもよい。
図7は、本明細書で説明されるアプリケーションの実施形態の使用または機能性の範囲に関するいかなる限定も示唆することを意図しない。それにもかかわらず、コンピューティング・ノード700は、実施されること、または本明細書で上述した機能性のいずれかを実行すること、あるいはその両方が可能である。
コンピューティング・ノード700には、コンピュータ・システム/サーバ702が存在し、コンピュータ・システム/サーバ702は、多数の他の汎用または専用コンピューティング・システム環境または構成を用いて動作可能である。コンピュータ・システム/サーバ702を用いた使用に適当であり得る周知のコンピューティング・システム、環境、または構成、あるいはそれらの組合せの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式またはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル家電、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記システムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などを含むが、これらに限定されない。
コンピュータ・システム/サーバ702は、コンピュータ・システムによって実行されている、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的状況において説明され得る。概して、プログラム・モジュールは、特定のタスクを実行し、または特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム/サーバ702は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される、分散型クラウド・コンピューティング環境において実施され得る。分散型クラウド・コンピューティング環境では、プログラム・モジュールが、メモリ記憶デバイスを含むローカルおよびリモート両方のコンピュータ・システム記憶媒体に位置し得る。
図7に示されるように、クラウド・コンピューティング・ノード700内のコンピュータ・システム/サーバ702は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ702のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット704、システム・メモリ706、およびシステム・メモリ706を含む様々なシステム・コンポーネントをプロセッサ704に連結するバスを含み得るが、これらに限定されない。
バスは、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、および多様なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、複数種類のバス構造のいずれかの1つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA)・バス、マイクロ・チャネル・アーキテクチャ(MCA)・バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)・ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)・バスを含む。
コンピュータ・システム/サーバ702は、典型的には多様なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ702によってアクセス可能な任意の利用可能な媒体であってもよく、それは、揮発性媒体および不揮発性媒体の両方、リムーバブル媒体および非リムーバブル媒体の両方を含む。1つの実施形態において、システム・メモリ706は、他の図面のフロー図を実施する。システム・メモリ706は、コンピュータ・システム可読媒体を、ランダム・アクセス・メモリ(RAM)710またはキャッシュ・メモリ712あるいはその両方などの揮発性メモリの形態で含み得る。
コンピュータ・システム/サーバ702は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含み得る。単なる例として、記憶システム714は、非リムーバブル不揮発性磁気媒体(図示せず、かつ典型的には「ハード・ドライブ」と呼ばれる)から読み出し、かつそれに書き込むために提供され得る。図示されないが、リムーバブル不揮発性磁気ディスク(例えば、「フロッピー(R)・ディスク」)からの読出しおよびそれへの書込みのための磁気ディスク・ドライブ、ならびにCD-ROM、DVD-ROM、または他の光学媒体などのリムーバブル不揮発性光ディスクからの読出しまたはそれへの書込みのための光学ディスク・ドライブが、提供され得る。そのような場合、それぞれが、1つまたは複数のデータ媒体インターフェースによってバスに接続され得る。以下でさらに示され、説明されるように、メモリ706は、本出願の様々な実施形態の機能を実行するように構成されるプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
プログラム・モジュール718のセット(少なくとも1つ)を有するプログラム/ユーティリティ716は、限定ではなく例として、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、メモリ706に記憶され得る。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそれらの何らかの組合せは、ネットワーキング環境の実施を含み得る。プログラム・モジュール718は、概して、本明細書に説明されるように、本出願の様々な実施形態の機能または方法論あるいはその両方を実行する。
当業者によって理解されるように、本出願の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化され得る。したがって、本出願の態様は、完全な一ハードウェア実施形態、完全な一ソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または本明細書で「回路」、「モジュール」、もしくは「システム」と全て概して呼ばれ得るソフトウェアおよびハードウェア態様を組み合わせる一実施形態の形態を取ってもよい。さらに、本出願の態様は、その上で具現化されるコンピュータ可読プログラム・コードを有する、1つまたは複数のコンピュータ可読媒体において具現化される一コンピュータ・プログラム製品の形態を取ってもよい。
コンピュータ・システム/サーバ702は、また、キーボード、ポインティング・デバイス、ディスプレイ722などの1つもしくは複数の外部デバイス720、ユーザがコンピュータ・システム/サーバ702と対話することを可能にする1つもしくは複数のデバイス、またはコンピュータ・システム/サーバ702が1つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはそれらの組合せと通信し得る。そのような通信は、I/Oインターフェース724を介して発生し得る。まださらに、コンピュータ・システム/サーバ702は、ローカル・エリア・ネットワーク(LAN)、汎用ワイド・エリア・ネットワーク(WAN)、または公衆ネットワーク(例えば、インターネット)、あるいはそれらの組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ726を介して通信し得る。図示されるように、ネットワーク・アダプタ726は、バスを介してコンピュータ・システム/サーバ702の他のコンポーネントと通信する。図示されないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネント、あるいはその両方が、コンピュータ・システム/サーバ702と併せて使用され得ることが理解されるべきである。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ記憶システムなどを含むが、これらに限定されない。
システム、方法、および非一過性コンピュータ可読媒体の一例としての実施形態は、添付図面に示され、前述の詳細な説明に説明されているが、本出願は、開示される実施形態に限定されず、以下の特許請求の範囲によって明らかにされ定義されるように、多数の再配列、修正、および代用を可能にすることが理解されるであろう。例えば、様々な図面のシステムのケイパビリティは、本明細書に説明されるモジュールもしくはコンポーネントのうちの1つもしくは複数によって、または分散型アーキテクチャにおいて実行されてもよく、送信器、受信器、またはその両方の対を含んでもよい。例えば、個々のモジュールによって実行される機能性の全てまたは一部が、これらのモジュールのうちの1つまたは複数によって実行され得る。さらに、本明細書に説明される機能性は、様々なときに、かつ様々なイベントに関連して、モジュールまたはコンポーネントの内部または外部で実行され得る。また、様々なモジュール間で送信される情報は、データ・ネットワーク、インターネット、音声ネットワーク、インターネット・プロトコル・ネットワーク、無線デバイス、有線デバイスのうちの1つもしくは複数を介して、または複数のプロトコルを介して、あるいはその両方を介して、モジュール間で送信され得る。また、モジュールのいずれかによって送信または受信されるメッセージは、直接、または他のモジュールの1つもしくは複数を介して、あるいはその両方で、送信または受信され得る。
「システム」は、パーソナル・コンピュータ、サーバ、コンソール、携帯情報端末(PDA)、携帯電話、タブレット・コンピューティング・デバイス、スマートフォン、または任意の他の適当なコンピューティング・デバイス、あるいはデバイスの組合せとして具現化され得ることを、ある当業者は理解するであろう。「システム」によって実行されるように上述の機能を提示することは、どんなやり方でも本出願の範囲を限定することを意図しておらず、多くの実施形態のうちの1つの例を提供することを意図している。確かに、本明細書において開示された方法、システム、および装置は、コンピューティング技術と一貫した局所型および分散型形態で実施され得る。
本明細書において説明されたシステム特徴のうちのいくつかが、より詳細にはそれらの実施の独立性を強調するために、モジュールとして提示されていることに留意すべきである。例えば、モジュールは、カスタム超大規模集積(VLSI)回路またはゲート・アレイ、論理チップなどのオフザシェルフ半導体、トランジスタ、または他の個別のコンポーネントを含むハードウェア回路として実施され得る。モジュールは、また、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル論理デバイス、グラフィック処理ユニットなどのプログラマブル・ハードウェア・デバイスにおいて実施され得る。
モジュールは、また、様々な種類のプロセッサによる実行のためにソフトウェアにおいて少なくとも部分的に実施され得る。実行可能コードの識別されるユニットは、例えば、オブジェクト、手続き、または関数として組織され得る、例えば、コンピュータ命令の1つまたは複数の物理または論理ブロックを含み得る。それにもかかわらず、識別されるモジュールの実行可能ファイルは、物理的に共に位置されなくともよいが、論理的に共に接合されるときに、モジュールを含み、モジュールについての述べられた目的を達成する、異なる位置に記憶される別個の命令を含んでもよい。さらに、モジュールは、コンピュータ可読媒体上に記憶されてもよく、コンピュータ可読媒体は、例えば、ハード・ディスク・ドライブ、フラッシュ・デバイス、ランダム・アクセス・メモリ(RAM)、テープ、またはデータを記憶するために使用される任意の他のそのような媒体であってもよい。
確かに、実行可能コードのモジュールは、単一の命令または多数の命令であってもよく、複数の異なるコード・セグメントにわたって、異なるプログラムの間に、かつ複数のメモリ・デバイスにわたって分散すらされてもよい。同様に、動作データは、モジュール内において本明細書に識別され、例示されてもよく、任意の適当な形態で具現化され、任意の適当な種類のデータ構造内に編成されてもよい。動作データは、単一のデータ・セットとして収集されてもよく、または異なる記憶デバイスにわたって含む異なる位置にわたって分散されてもよく、かつ単にシステムまたはネットワーク上の電子信号として少なくとも部分的に存在してもよい。
本出願のコンポーネントは、本明細書において概して説明され図面に示されるように、多種多様な異なる構成において配列され設計され得ることが、容易に理解されるであろう。したがって、本実施形態の詳細な説明は、特許請求される本出願の範囲を限定することを意図しておらず、単に本出願の選択された実施形態を表している。
上記は、異なる順序のステップで実施されてもよく、または開示された構成とは異なる構成においてハードウェア要素を用いて実施されてもよく、あるいはその両方であってもよいことを、当業者は容易に理解するであろう。したがって、本出願は、これらの好適な実施形態に基づいて説明されているが、ある修正、変形、および代替的な構造が明らかとなることが、当業者には明らかとなる。
本出願の好適な実施形態が説明されているが、説明された実施形態が単なる例示であり、本出願の範囲は、均等物およびそれに対する修正(例えば、プロトコル、ハードウェア・デバイス、ソフトウェア・プラットフォームなど)の全範囲と共に考慮されるときに、添付の特許請求の範囲のみによって定義されるものであることが理解されるべきである。

Claims (16)

  1. ブロックチェーンにおける優先順位付けのための方法であって、ノードが、
    ピア・エンドースメントを要求するブロックチェーン・トランザクションを識別することと、
    前記ブロックチェーン・トランザクションに基づいて、前記ブロックチェーンに割り当てられる複数のピアにエンドースメントの要求を送信することと、
    前記複数のピアから複数のエンドースメント応答メッセージを受信することであって、前記複数のエンドースメント応答メッセージが、前記ブロックチェーン・トランザクションに割り当てられる複数の優先度を含み、前記複数の優先度は、それぞれ、前記複数のピアのうちの対応するピアにより動的または静的に決定される、前記受信することと、
    受信した前記複数の優先度および前記ブロックチェーン・トランザクションを前記ピアに対する割当てのために順序付けノードに転送することであって、前記順序付けノードは、前記複数の優先度および優先度統合ポリシーに基づいて前記ブロックチェーン・トランザクションを処理するよう構成される、前記転送することと、
    を実行する、方法
  2. 前記ブロックチェーン・トランザクションに割り当てられた前記複数の優先度が、前記複数の優先度のうちの他の少なくとも1つとは異なる少なくとも1つの優先度を含む、請求項1に記載の方法。
  3. 前記ブロックチェーン・トランザクションに割り当てられた前記複数の優先度が、全て同一の優先度である、請求項1に記載の方法。
  4. 前記ブロックチェーン・トランザクションに割り当てられた前記複数の優先度を判断するために使用される基準が、チェーンコード識別子(ID)、呼び出される関数、トランザクション・タイプ、およびブロックチェーン・トランザクションの現在の負荷のうちの1つまたは複数を含む、請求項1ないし3のいずれかに記載の方法。
  5. 受信した前記複数の優先度および前記優先度統合ポリシーに基づいて、前記順序付けノードにおいて前記ブロックチェーン・トランザクションの最終的な順序付け優先度を判断することと、
    前記順序付けノードにおいて、前記最終的な順序付け優先度に基づいて、前記処理することとして前記ブロックチェーン・トランザクションを複数の優先度キューのうちの1つに割り当てることと、
    をさらに含む、請求項1ないし4のいずれかに記載の方法。
  6. 1つまたは複数のトランザクション矛盾が識別されるときに、前記順序付けノードにおいて、他のブロックチェーン・トランザクションより高い優先度を割り当てられた複数のブロックチェーン・トランザクションを前記複数の優先度キューから選択することと、
    前記順序付けノードにおいて、前記より高い優先度を割り当てられた前記複数のブロックチェーン・トランザクションを確認してブロックチェーン・ブロックを形成することと、
    をさらに含む、請求項5に記載の方法。
  7. 前記より高い優先度を割り当てられた前記複数のブロックチェーン・トランザクションが、エンドースメント・ポリシーに基づいて確認される、請求項6に記載の方法。
  8. ブロックチェーンにおける優先順位付けのための装置であって、
    ピア・エンドースメントを要求するブロックチェーン・トランザクションを識別するように構成されるノードのプロセッサと、
    前記ブロックチェーン・トランザクションに基づいて、前記ブロックチェーンに割り当てられる複数のピアにエンドースメントの要求を送信するように構成される前記ノードの送信機と、
    前記複数のピアから複数のエンドースメント応答メッセージを受信するように構成される前記ノードの受信機であって、前記複数のエンドースメント応答メッセージが、前記ブロックチェーン・トランザクションに割り当てられる複数の優先度を含み、前記複数の優先度は、それぞれ、前記複数のピアのうちの対応するピアにより動的または静的に決定される、前記受信機と、を備え、
    前記送信機が、受信した前記複数の優先度および前記ブロックチェーン・トランザクションを前記ピアに対する割当てのために順序付けノードに転送することであって、前記順序付けノードは、前記複数の優先度および優先度統合ポリシーに基づいて前記ブロックチェーン・トランザクションを処理するよう構成される、転送することを行うようにさらに構成される、装置。
  9. 前記ブロックチェーン・トランザクションに割り当てられた前記複数の優先度が、前記複数の優先度のうちの他の少なくとも1つとは異なる少なくとも1つの優先度を含む、請求項8に記載の装置。
  10. 前記ブロックチェーン・トランザクションに割り当てられた前記複数の優先度が、全て同一の優先度である、請求項8に記載の装置。
  11. 前記ブロックチェーン・トランザクションに割り当てられた前記複数の優先度を判断するために使用される基準が、チェーンコード識別子(ID)、呼び出される関数、トランザクション・タイプ、およびブロックチェーン・トランザクションの現在の負荷のうちの1つまたは複数を含む、請求項8ないし10のいずれかに記載の装置。
  12. 前記装置は、前記プロセッサ、前記送信機および前記受信機を備える前記ノードと、前記順序付けノードとを備えるシステムであり、
    前記順序付けノードが、
    受信した前記複数の優先度および前記優先度統合ポリシーに基づいて前記ブロックチェーン・トランザクションの最終的な順序付け優先度を判断し、
    前記最終的な順序付け優先度に基づいて、前記処理することとして前記ブロックチェーン・トランザクションを複数の優先度キューのうちの1つに割り当て
    うにさらに構成される、請求項8ないし11のいずれかに記載の装置。
  13. 前記順序付けノードが、
    1つまたは複数のトランザクション矛盾が識別されるときに、他のブロックチェーン・トランザクションより高い優先度を割り当てられた複数のブロックチェーン・トランザクションを前記複数の優先度キューから選択し、
    前記より高い優先度を割り当てられた前記複数のブロックチェーン・トランザクションを確認してブロックチェーン・ブロックを形成
    うにさらに構成される、請求項12に記載の装置。
  14. 前記より高い優先度を割り当てられた前記複数のブロックチェーン・トランザクションが、エンドースメント・ポリシーに基づいて確認される、請求項13に記載の装置。
  15. ブロックチェーンにおける優先順位付けのためのコンピュータ・プログラムであって、
    処理回路によって読出し可能であり、請求項1ないしのいずれかに記載の方法を実行する、コンピュータ・プログラム。
  16. 請求項1ないしのいずれかに記載の方法を行うように実行可能なプログラム命令を記憶した、記憶媒体。
JP2020563787A 2018-05-15 2019-05-14 許可型ブロックチェーンにおける優先順位付け Active JP7292783B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/980,432 2018-05-15
US15/980,432 US10579424B2 (en) 2018-05-15 2018-05-15 Prioritization in a permissioned blockchain
PCT/EP2019/062258 WO2019219631A1 (en) 2018-05-15 2019-05-14 Prioritization in a permissioned blockchain

Publications (2)

Publication Number Publication Date
JP2021524963A JP2021524963A (ja) 2021-09-16
JP7292783B2 true JP7292783B2 (ja) 2023-06-19

Family

ID=66647368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020563787A Active JP7292783B2 (ja) 2018-05-15 2019-05-14 許可型ブロックチェーンにおける優先順位付け

Country Status (5)

Country Link
US (2) US10579424B2 (ja)
EP (1) EP3791353A1 (ja)
JP (1) JP7292783B2 (ja)
CN (1) CN111989705B (ja)
WO (1) WO2019219631A1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10270748B2 (en) 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
US11868995B2 (en) 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency
US11831409B2 (en) 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
US10831530B2 (en) * 2018-06-13 2020-11-10 International Business Machines Corporation Secure consensus-based endorsement for self-monitoring blockchain
US10880072B2 (en) 2018-06-20 2020-12-29 Verizon Patent And Licensing Inc. Systems and methods for controlled random endorsement in a blockchain network
US10855749B2 (en) * 2018-07-03 2020-12-01 Wandisco Inc. Methods, devices and systems for a distributed coordination engine-based exchange that implements a blockchain distributed ledger
US10956377B2 (en) * 2018-07-12 2021-03-23 EMC IP Holding Company LLC Decentralized data management via geographic location-based consensus protocol
US10848449B2 (en) * 2018-09-19 2020-11-24 Salesforce.Com, Inc. Token-based message exchange system
US11924360B2 (en) * 2018-10-08 2024-03-05 Green Market Square Limited Blockchain timestamp agreement
US10608829B1 (en) * 2018-10-08 2020-03-31 International Business Machines Corporation Blockchain timestamp agreement
US11792024B2 (en) 2019-03-29 2023-10-17 Nok Nok Labs, Inc. System and method for efficient challenge-response authentication
SG11201909767TA (en) 2019-04-12 2019-11-28 Alibaba Group Holding Ltd Performing parallel execution of transactions in a distributed ledger system
CN111095325B (zh) * 2019-04-12 2023-10-27 创新先进技术有限公司 在分布式账本***中进行交易的并行执行
US11249947B2 (en) 2019-06-15 2022-02-15 Facebook, Inc. Distributed digital ledger transaction network for flexible, lazy deletion of data stored within an authenticated data structure
US11249985B2 (en) * 2019-06-15 2022-02-15 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11405204B2 (en) 2019-06-15 2022-08-02 Meta Platforms, Inc Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11126593B2 (en) 2019-06-15 2021-09-21 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
EP3669263B1 (en) * 2019-09-12 2022-03-02 Advanced New Technologies Co., Ltd. Log-structured storage systems
CN110717762B (zh) * 2019-12-16 2020-03-17 腾讯科技(深圳)有限公司 数据处理方法、装置、节点设备及存储介质
JP7384044B2 (ja) * 2020-01-16 2023-11-21 富士通株式会社 検証方法、検証装置及び検証プログラム
US11496558B2 (en) * 2020-01-29 2022-11-08 Hewlett Packard Enterprise Development Lp Peer-to-peer blockchain fabric management mechanism
CN111506783B (zh) * 2020-04-08 2023-12-22 百度在线网络技术(北京)有限公司 区块链中事务请求处理方法、装置、设备和介质
WO2022010289A1 (ko) * 2020-07-10 2022-01-13 주식회사 미디움 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법
WO2022010297A1 (ko) * 2020-07-10 2022-01-13 주식회사 미디움 하이퍼레저 패브릭 구조에서 피어 단말기가 블록 데이터를 클라이언트 단말기로 전송하는 방법
KR102392150B1 (ko) * 2020-07-10 2022-04-28 주식회사 미디움 하이퍼레저 패브릭 구조에서 피어 단말기가 블록 데이터를 클라이언트 단말기로 전송하는 방법
KR102412780B1 (ko) * 2020-07-10 2022-06-24 주식회사 미디움 하이퍼레저 패브릭 구조에서 피어 단말기에 수신된 블록 데이터를 처리하는 방법
US11563559B2 (en) * 2020-07-29 2023-01-24 International Business Machines Corporation Parallel processing of blockchain procedures
CN111934990B (zh) * 2020-09-25 2021-02-09 支付宝(杭州)信息技术有限公司 消息传输方法及装置
CN114764709A (zh) * 2021-01-14 2022-07-19 富士通株式会社 信息处理装置和信息处理方法
JP7050368B1 (ja) * 2021-03-05 2022-04-08 株式会社アクセル ノード装置、情報処理システム、優先権付与方法及び優先権付与プログラム
CN114598496B (zh) * 2022-01-24 2024-02-20 华数云科技有限公司 一种基于HyperLedger Fabric***链码的联盟链监管***与方法
CN115271746B (zh) * 2022-09-27 2023-01-31 江苏荣泽信息科技股份有限公司 一种带优先级的区块链交易排序方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160342977A1 (en) 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
CN107040585A (zh) 2017-02-22 2017-08-11 阿里巴巴集团控股有限公司 一种业务校验的方法及装置
JP2017188883A (ja) 2017-03-23 2017-10-12 株式会社bitFlyer プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム
US20180089641A1 (en) 2016-09-27 2018-03-29 The Toronto-Dominion Bank Processing network architecture with companion database
US20180096360A1 (en) 2016-10-04 2018-04-05 International Business Machines Corporation Method and apparatus to enforce smart contract execution hierarchy on blockchain
US20180109541A1 (en) 2016-10-17 2018-04-19 Arm Ltd. Blockchain mining using trusted nodes

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2986164C (en) * 2015-05-26 2021-11-30 T0.Com, Inc. Obfuscation of intent in transactions using cryptographic techniques
US20170132626A1 (en) * 2015-11-05 2017-05-11 Mastercard International Incorporated Method and system for processing of a blockchain transaction in a transaction processing network
US11354658B2 (en) 2016-02-11 2022-06-07 Mastercard International Incorporated Method and system for offline blockchain exchanges
US10164952B2 (en) * 2016-02-16 2018-12-25 Xerox Corporation Method and system for server based secure auditing for revisioning of electronic document files
US10318938B2 (en) * 2016-02-22 2019-06-11 Bank Of America Corporation System for routing of process authorization and settlement to a user in process data network based on specified parameters
US10237259B2 (en) * 2016-02-29 2019-03-19 Securekey Technologies Inc. Systems and methods for distributed identity verification
US10529041B2 (en) * 2016-04-18 2020-01-07 Rs Ltd. System and method for managing transactions in dynamic digital documents
CN107196900B (zh) * 2017-03-24 2020-04-24 创新先进技术有限公司 一种共识校验的方法及装置
US20170285720A1 (en) 2017-05-07 2017-10-05 Jigar Jayesh Shah Method and system for mitigating transmission congestion via distributed computing and blockchain technology
US11138103B1 (en) * 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US20190012662A1 (en) * 2017-07-07 2019-01-10 Symbiont.Io, Inc. Systems, methods, and devices for reducing and/or eliminating data leakage in electronic ledger technologies for trustless order matching
CN107579848B (zh) * 2017-08-30 2020-08-25 上海保险交易所股份有限公司 实用拜占庭容错共识机制中动态更改共识节点的方法
US11556521B2 (en) * 2017-09-29 2023-01-17 Oracle International Corporation System and method for providing an interface for a blockchain cloud service
US10673626B2 (en) * 2018-03-30 2020-06-02 Spyrus, Inc. Threshold secret share authentication proof and secure blockchain voting with hardware security modules

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160342977A1 (en) 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US20180089641A1 (en) 2016-09-27 2018-03-29 The Toronto-Dominion Bank Processing network architecture with companion database
US20180096360A1 (en) 2016-10-04 2018-04-05 International Business Machines Corporation Method and apparatus to enforce smart contract execution hierarchy on blockchain
US20180109541A1 (en) 2016-10-17 2018-04-19 Arm Ltd. Blockchain mining using trusted nodes
CN107040585A (zh) 2017-02-22 2017-08-11 阿里巴巴集团控股有限公司 一种业务校验的方法及装置
JP2017188883A (ja) 2017-03-23 2017-10-12 株式会社bitFlyer プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Elli Androulaki, et.al.,Hyperledger Fabric: A Distributed Operating System for Permissiondc Blockchains,EuroSys '18: Proceedings of the Thirteenth EuroSys Conference [online],Association for Computing Machinery,2018年04月17日,1~15ページ,[2022年11月2日 検索], インターネット<URL: https://dl.acm.org/doi/10.1145/3190508.3190538>,https://doi.org/10.1145/3190508.3190538
佐中 晋,Hyperledger Fabric v1.0|合意形成と管理方式を一新,iMagazine [online],日本,アイマガジン株式会社,2018年03月26日,[令和4年11月2日 検索], インターネット<https:// www.imagazine.co.jp/hyperledger-fabric-v1-0|合意形成と管理方式を一新/>,IS magazine No.18(2018年1月)掲載

Also Published As

Publication number Publication date
EP3791353A1 (en) 2021-03-17
US10579424B2 (en) 2020-03-03
US11055136B2 (en) 2021-07-06
CN111989705B (zh) 2024-06-28
JP2021524963A (ja) 2021-09-16
CN111989705A (zh) 2020-11-24
US20190354397A1 (en) 2019-11-21
US20200159576A1 (en) 2020-05-21
WO2019219631A1 (en) 2019-11-21

Similar Documents

Publication Publication Date Title
JP7292783B2 (ja) 許可型ブロックチェーンにおける優先順位付け
JP7250568B2 (ja) ブロックチェーン・ノード、ブロックチェーン・ノードの方法、およびブロックチェーン・ノードのコンピュータ・プログラム
JP7304117B2 (ja) ブロックチェーン上のプロキシ・エージェントおよびプロキシ台帳
JP7304118B2 (ja) 自己監視ブロックチェーンのための安全な合意に基づくエンドースメント
JP7382108B2 (ja) ブロックチェーンのための効率的な検証
US11677542B2 (en) Ad-hoc smart contract generation in a blockchain
US10678598B2 (en) Enforcing compute equity models in distributed blockchain
US11057225B2 (en) Enforcing compute equity models in distributed blockchain
US10609032B2 (en) Enforcing compute equity models in distributed blockchain
JP7228322B2 (ja) ブロックチェーン・ネットワークにおける自動コミット・トランザクション管理
WO2019219306A1 (en) Identifying faults in a blockchain ordering service
CN110275891B (zh) 人工智能软件市场
US11568402B2 (en) Decentralized out-of-band accelerated blockchain transaction processing
CN112154434A (zh) 区块链上智能合约组的自动数据投影
JP2023524659A (ja) 低信頼の特権アクセス管理
CN115605868A (zh) 跨网身份提供

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201118

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20201111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210927

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230126

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: 20230516

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20230516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230605

R150 Certificate of patent or registration of utility model

Ref document number: 7292783

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150