JP7059370B2 - ブロックチェーン上の大量トランザクション性能を最適化するための方法、装置、コンピュータ・プログラムおよびコンピュータ・プログラムを記録したコンピュータ可読記憶媒体 - Google Patents

ブロックチェーン上の大量トランザクション性能を最適化するための方法、装置、コンピュータ・プログラムおよびコンピュータ・プログラムを記録したコンピュータ可読記憶媒体 Download PDF

Info

Publication number
JP7059370B2
JP7059370B2 JP2020524167A JP2020524167A JP7059370B2 JP 7059370 B2 JP7059370 B2 JP 7059370B2 JP 2020524167 A JP2020524167 A JP 2020524167A JP 2020524167 A JP2020524167 A JP 2020524167A JP 7059370 B2 JP7059370 B2 JP 7059370B2
Authority
JP
Japan
Prior art keywords
key
blockchain
transaction
value pair
newly proposed
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
JP2020524167A
Other languages
English (en)
Other versions
JP2021503643A (ja
JP2021503643A5 (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 JP2021503643A publication Critical patent/JP2021503643A/ja
Publication of JP2021503643A5 publication Critical patent/JP2021503643A5/ja
Application granted granted Critical
Publication of JP7059370B2 publication Critical patent/JP7059370B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • 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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • 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/08Payment architectures
    • G06Q20/085Payment architectures involving remote charge determination or related payment systems
    • G06Q20/0855Payment architectures involving remote charge determination or related payment systems involving a third party
    • 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/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • 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
    • 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

Description

本発明は、一般に、ブロックチェーン上のトランザクション管理に関し、より詳細には、ブロックチェーン上の大量トランザクション性能の最適化に関する。
ブロックチェーンは、任意のタイプの情報を格納するためのパブリック台帳として使用されることがある。ブロックチェーンは主に金融取引に使用されるが、資産(すなわち、製品、パッケージ、サービス、ステータスなど)を含む任意のタイプの情報を格納することができる。非中央集権方式は、権限および信用を分散型ネットワークに移転し、そのノードがそのトランザクションをパブリック「ブロック」に継続的かつ連続的に記録できるようにし、ブロックチェーンと呼ばれる固有の「チェーン」を作成する。ハッシュ・コードによる暗号技術を使用して、トランザクション・ソースの認証を安全なものにし、中央の仲介者を排除する。
多くのユース・ケースにおいて、株式取引および資本取引などの大量かつ時間的制約のあるトランザクションは、最適なタイミングを必要とする。大量のトランザクションに対処するブロックチェーンの場合、ブロックチェーン・ネットワーク・インフラストラクチャは、トランザクションのタイムリーな順序付けを確保するだけでなく、速度および否認防止性を伴うトランザクション処理を確保するための構成要素を必要とし、これは、クリアリングハウスおよびそのような機能を実行する他のものなど、あるエンティティに対する構成要素である。
一般に、ブロックチェーン関連のトランザクションは、正確に順序付けられ、遅延なくコミットされるべきである。
本発明の一実施形態は、ブロックチェーンの新たに提案されたトランザクションを識別すること、コンセンサス動作を開始して新たに提案されたトランザクションを承認するかどうかを判定すること、前のトランザクションから識別されたキーと値のペア(key-value pair)を取得すること、前のトランザクションのキーと値のペアに関連付けられたインデックス値を新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値と比較すること、および前のトランザクションのキーと値のペアに関連付けられたインデックス値が新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値と連続的に続く場合、新たに提案されたトランザクションをブロックチェーンに受け入れるための肯定のコンセンサスを提供することのうちの1つまたは複数を含む方法を提供することができる。
本発明の別の実施形態は、装置であって、プロセッサを備え、プロセッサが、ブロックチェーンの新たに提案されたトランザクションを識別すること、コンセンサス動作を開始して新たに提案されたトランザクションを承認するかどうかを判定すること、前のトランザクションから識別されたキーと値のペアを取得すること、前のトランザクションのキーと値のペアに関連付けられたインデックス値を新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値と比較すること、および前のトランザクションのキーと値のペアに関連付けられたインデックス値が新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値と連続的に続く場合、新たに提案されたトランザクションをブロックチェーンに受け入れるための肯定のコンセンサスを提供することのうちの1つまたは複数を実行するように構成された、装置を含む。
本発明のさらに別の実施形態は、命令を格納するように構成された非一過性コンピュータ可読記憶媒体であって、命令は、実行されると、プロセッサに、ブロックチェーンの新たに提案されたトランザクションを識別すること、コンセンサス動作を開始して新たに提案されたトランザクションを承認するかどうかを判定すること、前のトランザクションから識別されたキーと値のペアを取得すること、前のトランザクションのキーと値のペアに関連付けられたインデックス値を新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値と比較すること、および前のトランザクションのキーと値のペアに関連付けられたインデックス値が新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値と連続的に続く場合、新たに提案されたトランザクションをブロックチェーンに受け入れるための肯定のコンセンサスを提供することのうちの1つまたは複数を実行させる、非一過性コンピュータ可読記憶媒体を含む。
本発明を具現化する、コンセンサス・サービス・モジュールを介してコンセンサス判定を処理する論理図である。 本発明を具現化する、例示的な台帳圧縮動作の図である。 本発明を具現化する、ブロックチェーン・コンセンサス管理を実行するための例示的なブロックチェーン構成の図である。 本発明を具現化する、トランザクション・コンセンサス処理を処理するためのシステム・メッセージング図である。 本発明を具現化する、トランザクションのコンセンサス処理を管理する方法のフロー図である。 本発明を具現化する、トランザクションのコンセンサス処理を管理する方法の別のフロー図である。 本発明を具現化する、トランザクションのコンセンサス処理を管理する方法の論理フロー図である。 本発明の実施形態の1つまたは複数をサポートするように構成されたコンピュータ・システム/サーバの図である。
本明細書の図面において全体として説明および図示されるような本構成要素は、多種多様な異なる構成で配置および設計され得ることが容易に理解されよう。したがって、添付の図面に示される方法、装置、非一過性コンピュータ可読媒体、およびシステムの以下の詳細な説明は、特許請求される本発明の範囲を限定するよう意図されておらず、本発明の選択された実施形態の代表的なものにすぎない。
本明細書全体にわたって説明されるような本特徴、構造、または特性は、本発明の1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。例えば、本明細書全体にわたる「例示的な実施形態」、「いくつかの実施形態」という語句、または他の類似の文言の使用は、実施形態に関連して説明される特定の特徴、構造、または特性が少なくとも1つの実施形態に含まれてよいことを意味する。したがって、本明細書全体にわたる「例示的な実施形態」、「いくつかの実施形態において」、「他の実施形態において」という語句、または他の類似の文言の出現は、必ずしもすべてが本発明の実施形態の同じグループを指しているわけではなく、説明されている特徴、構造、または特性は、本発明の1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。
さらに、本発明の実施形態の説明において「メッセージ」という用語が使用されている場合があるが、本発明は、パケット、フレーム、データグラムなどの多くのタイプのネットワーク・データに適用されてよい。また、「メッセージ」という用語は、パケット、フレーム、データグラム、およびそれらの任意の均等物を含む。さらに、本発明の例示的な実施形態においてある種のメッセージおよびシグナリングが示される場合があるが、それらは、ある種のメッセージに限定されず、アプリケーションは、ある種のシグナリングに限定されない。
本発明の一実施形態における本アプリケーションは、ブロックチェーン上のトランザクション管理に関し、本発明の別の実施形態では、トランザクションを順序付けること、およびブロックチェーン上の最適な性能のために大量トランザクションを最適化することに関する。
本発明の例示的な実施形態によれば、複数のバリデータがコンセンサス/検証メカニズムを使用することによって維持されるアプリケーションが、ブロックチェーン・コンピューティング・システム・プラットフォーム上で実行されてよい。一例では、ブロックチェーンの各ブロックまたはトランザクションは、キーと値のペア、または一定数のキーと値のペアを含んでよい。例示のために、ブロックおよびトランザクションという用語は、交換可能に使用されることがある。ブロックチェーン・ブロックは複数のブロックチェーン・トランザクションを含んでよいが、どちらの例も、ブロックチェーンにコミットされる前にコンセンサス判定を必要とする場合がある。コンセンサス管理アプリケーションは、キーと値のペア内の情報を維持することを実行することもでき、キーは、単調で連続したシーケンスを形成してよい。キーは、コンセンサス/検証手順が最近採掘されたブロック/トランザクションを実施できることを照会するため、およびブロック/トランザクションが確立されたキー・シーケンス内に次のキーを保持しているかどうかに応じてブロック/トランザクションが有効と見なされるかどうかを照会するための、インデックスとして使用されてよい。ブロック/トランザクションが追加されると、そのキーに対応する値は今後のブロック/トランザクションで上書きされることが許可されず、それによって高速なブロック取得が可能になる。
ログ/台帳/ブロックチェーンの圧縮/冪等性は、台帳データの所望の順序付けを確実に保証するため、および依存関係によりトランザクション処理の性能につながる順序付けの最適な性能を確保してマーケット・インフラストラクチャの需要を満たし、否認防止性(non-repudiation)を提供するための、構成または手順あるいはその両方である。コンセンサスは、ネットワークの要求またはトランザクションの順序を検証するための方法である。多くのタイプのネットワーク・トランザクションは1つまたは複数の以前のトランザクションとの依存関係を有するので(例えば、口座の借方は、しばしば以前の貸方との依存関係を有する)、トランザクションの正しい順序付けは重要である。ブロックチェーン・ネットワーク上にトランザクションの順序を決定する単一の権限は存在せず、代わりに、各ブロックチェーン・ノード(ピア)が、ネットワーク・コンセンサス・プロトコルを実施することによってトランザクションの順序を確立する権利を有する。したがって、コンセンサスは、トランザクションが共有の台帳に追加される順序についてノードの定足数が合意することを確保する。コンセンサスは、提案されたトランザクションの順序におけるあらゆる矛盾を解決することによって、すべてのネットワーク・ノードが同一のブロックチェーン上で動作することを可能にする。言い換えれば、コンセンサスは、ブロックチェーン・ネットワーク・トランザクションの整合性および一貫性を保証する。
コンセンサス/検証の構成手順は、各キーの最初の値が維持されるログ圧縮を提供してよい。連続したシーケンスが予測可能なシーケンスでもあり、迅速に処理および照会され得るので、この手法は、高速な取得を提供することができる。このコンセンサス・メカニズムは、連続したシーケンスを徹底し、それにより照会しているノードは、効率的かつ簡単な方法でキーの値を識別することができる。この手法は、新たに接続されたブロックチェーン・ノードが照会に迅速に応答するのにも役立つ。例えば、キー値が分かっている場合、特定のトランザクションを探し出すためにブロックのチェーン全体を解析する必要がない。
図1は、例示的な実施形態による、コンセンサス・サービス・モジュールを介してコンセンサス判定を処理する論理図を示す。図1を参照すると、構成100は、ピア・ノード130のコンセンサスに基づいてトランザクションまたは新しいブロックあるいはその両方を受信および格納するように構成されたブロックチェーン構成110を含む。動作に際しては、コンセンサス・サービス120は、トランザクション116、118または122あるいはその組合せを受信し、トランザクションを台帳に受け入れることができるかどうかを判定するように構成されたソフトウェア・モジュールであってよい。この例では、ブロックチェーン110は、ピア130からコンセンサスを介してブロックチェーンにすでに受け入れられているトランザクション112および114を格納する。新しいトランザクションが受信されると、コンセンサス・サービス・モジュール120によってキーと値のペア「KVP」が識別されて、続く1、2、3などの連続した一連のものを決定する。次のトランザクションが連続した一連の数値識別子を保持しない場合、トランザクションは無効と見なされ、拒否される可能性がある。例えば、トランザクション118はKVP値5を有し、116の後に処理されているので、次の識別子は「5」ではなく「4」になる。したがって、このトランザクションは無効として識別され、拒否されることになる。その後のトランザクション122は、KVP-3に続く正しいKVP-4を有しており、したがって受け入れられ、コミットされることになる。
図2は、本発明を具現化する台帳圧縮の例を示す。図2を参照すると、台帳圧縮手順150は、11個のエントリ0~10を有する通常の台帳152を含むことができる。各エントリは、キー(K1~K6)、カウンタ、時間値などの数値識別子、およびそのエントリに関連付けられた値を有し、それによってキーと値のペアK/Vを作成する。元の圧縮されていない台帳152から分かるように、キーは1回を超えて使用され、K1などの特定のキー値のどれを参照しても、その使用に関連付けられた複数の値を有している。しかし、圧縮手順によって、キーの最初のインスタンスのみが関連し、連続するキー値の単調シーケンスが必要であると仮定すると、連続するキー値K1~K6の新しい順序付けられたセットは、圧縮された台帳154という結果になり、正しいと見なされる。これは、連続したエントリを高速で取得する機会をもたらす。
提案するログ圧縮メカニズムは、常に同じログ・プレフィックスが返されるように読み取りの冪等性を提供する。図2を参照すると、従来のログ圧縮メカニズムでは、台帳に追加されるエントリが2つしか存在しないとき、ログ・プレフィックスはK1であるが、3番目のエントリ(K1/V3)が追加されるとき、ログ・プレフィックスはK2になる。ログ圧縮メカニズムは、プレフィックスとして常にK1を返す。
図3は、本発明の一実施形態による、トランザクションのスケジューリングおよびコンセンサス管理を実行するための例示的なブロックチェーン構成を示す。図3を参照すると、ブロックチェーン・システム200は、ブロックチェーン・ノード群280などのある種の共通のブロックチェーン要素を含んでよく、これらには、ブロックチェーン・トランザクションの追加および検証プロセス(コンセンサス)に参加するピア・ブロックチェーン・ノード「ピア・ノード」282~285が割り当てられてよい。ブロックチェーン・ピア・ノード280のいずれかは、新しいトランザクションを開始し、ブロックチェーン不変元帳272への書き込みを求めてもよく、ブロックチェーン不変元帳のコピーは、ブロックチェーン270の基盤となる物理的インフラストラクチャ271に格納されている。この構成では、カスタマイズされたブロックチェーン構成は、格納されたプログラム/アプリケーション・コード(例えば、チェーン・コードまたはスマート・コントラクトあるいはその両方)275にアクセスして実行するためのAPI276にリンクされた1つまたは複数のアプリケーション277を含んでもよく、これらは、参加者が求めるカスタマイズされた構成に従って作成され、自身の状態をメンテナンスし、自身の資産を管理し、外部情報を受信することができる。このコードは、分散型台帳に追加することによって、すべてのブロックチェーン・ピア・ノード上にトランザクションとして展開され、インストールされてよい。
本明細書で説明されるように、スマート・コントラクトは、ブロックチェーン(例えば、ブロックチェーン・ピアの分散型ネットワーク)で登録、格納、および複製される実行可能コードである。トランザクションは、スマート・コントラクトに関連する条件が満たされたことに応答して実行され得るスマート・コントラクト・コードの実行である。スマート・コントラクトの実行は、デジタル・ブロックチェーン台帳の状態に対する信頼できる変更をトリガすることができる。スマート・コントラクトの実行によってもたらされるブロックチェーン台帳への変更は、1つまたは複数のコンセンサス・プロトコルを介してブロックチェーン・ピアの分散型ネットワーク全体に自動的に複製されてよい。
ブロックチェーン・プラットフォーム270は、ブロックチェーン・データ、サービス(例えば、暗号化トラスト・サービス(cryptographic trust service)、仮想実行環境)、および新しいトランザクションを受信および格納し、データ・エントリへのアクセスを求めているオーディタにアクセスを提供するために必要な基盤となる物理的コンピュータ・インフラストラクチャの様々な層を含む。ブロックチェーン層272は、プログラム・コードを処理し、物理的プラットフォーム271に関与するために必要な仮想実行環境へのアクセスを提供するインターフェースを公開する。暗号化トラスト・サービス273は、トランザクションを検証し、個人情報を維持するために使用される。
図3のブロックチェーン構成は、ブロックチェーン・プラットフォーム270によって公開されるインターフェースおよび提供されるサービスを通してプログラム/アプリケーション・コード275を処理および実行することができる。コードは、ブロックチェーンの資産を管理してもよく、例えば、コードは、データを格納および転送することができ、例えば、スマート・コントラクトおよび条件付きの関連するチェーン・コードまたはその実行対象となる他のコード要素の形で、ブロックチェーンによって実行されてよい。スマート・コントラクト275は、リマインダ、更新、または変更、更新などを受ける他の通知あるいはその組合せを実行するために作成されてよい。スマート・コントラクト自体を使用して、承認およびアクセス要件に関連する規則ならびに使用状況を識別することができる。一例では、新しいトランザクション212は、ピア・ノード280によって識別されてよい。一定の条件が満たされていれば、ノードは、コンセンサス214に到達し、トランザクションをブロックチェーン台帳272にコミットすることを許可する。例えば、トランザクションは、コンセンサス・ピアによって承認されるように、コンセンサス・サービスを介してキーと値のペアを要求してよい。この場合、ピアは、ブロックチェーン内の前のトランザクションを識別し、現在のトランザクションが続いて連続する(番号順で次の)キーと値のペアの識別子を有すると識別されるかどうかを判定することができる。この情報は、トランザクションのキーと値のペアの識別番号によって容易に識別することができ、識別番号を識別し比較して、トランザクションをブロックチェーンにコミットすることを許可するためのコンセンサスを検証および提供することができる。
図4は、本発明の一実施形態による、トランザクション・コンセンサス処理を処理するためのシステム・メッセージング図を示す。図4を参照すると、この例示的なシステム構成300では、ブロックチェーン・メンバ310は、ブロックチェーン330へのコミットメントのためにトランザクションを送信する役割を担うことができる312。コンセンサス・サービス320は、要求および新しいトランザクションを識別し、ブロックチェーン・トランザクションを識別することによって、キーと値のペアに関連付けられたシーケンス値の識別のために前のトランザクションを監査してよい314。316で識別された最後の値は、続いて連続するシーケンスについて新しいトランザクションと比較されてよい318。シーケンスが続いて連続する場合、トランザクションはそれに応じてコミットされ326、遅延なく台帳に追加されてよい322。シーケンスが正しくない場合、新しいトランザクションは破棄されてよい324。
図5は、本発明の一実施形態による、トランザクションのコンセンサス処理を管理する例示的な方法のフロー図を示す。図5を参照すると、方法400は、ブロックチェーンの新たに提案されたトランザクションを識別すること412、コンセンサス動作を開始して新たに提案されたトランザクションを承認するかどうかを判定すること414、前のトランザクションから識別されたキーと値のペアを取得すること416、前のトランザクションのキーと値のペアに関連付けられたインデックス値を、新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値と比較すること418、および前のトランザクションのキーと値のペアに関連付けられたインデックス値が、新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値と連続的に続く場合、新たに提案されたトランザクションをブロックチェーンに受け入れるための肯定のコンセンサスを提供すること422を含んでよい。
また、方法は、前のトランザクションのキーと値のペアに関連付けられたインデックス値が新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値と連続的に続いていない場合、新たに提案されたトランザクションを拒否すること、前のトランザクションのキーと値のペアに関連付けられたインデックス値が新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値と連続的に続いていない場合、新たに提案されたトランザクションが1つまたは複数の他のトランザクションと順不同であると判断することを含んでよい。コンセンサス動作は、ブロックチェーンの複数のバリデータ・ノード・メンバを呼び出す。新たに提案されたトランザクションを検証しブロックチェーンに追加するために必要となるのは、ブロックチェーンの1人のバリデータ・ノード・メンバのみである。方法は、ブロックチェーンにアクセスすること、キー値の最初のインスタンスを有する複数のブロックチェーン・トランザクションを抽出すること、複数のブロックチェーン・トランザクションに基づいて圧縮された台帳を生成することを含んでもよく、圧縮された台帳は、キー値の連続的に続くセットとして構成された複数のブロックチェーン・トランザクションを含む。
また、方法は、ブロックチェーンのバリデータ・メンバから、新たに提案されたトランザクションに関する提案されたキーと値のペアを受信し、前に受け入れられたキーと値のペアに基づいて、ブロックチェーンのリーダ・メンバを介して提案されたキーと値のペアを受け入れるか、または拒否すること、およびブロックチェーンのリーダ・メンバを介して、新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値を新たに提案されたトランザクションに割り当てることを含んでもよい。
図6は、本発明の一実施形態による、トランザクションのコンセンサス処理を管理する例示的な方法の別のフロー図を示す。図6を参照すると、方法450は、ブロックチェーンの新たに提案されたトランザクションを識別すること452、コンセンサス動作を開始して新たに提案されたトランザクションを承認するかどうかを判定すること454、新たに提案されたトランザクションのキーと値のペアに関連付けられた通し番号が、新たに提案されたトランザクションに関連付けられたブロックチェーン・メンバに前に割り当てられた通し番号のリスト内で識別されると判断すること456、および新たに提案されたトランザクションのキーと値のペアに関連付けられた通し番号が、前に受け入れられた他のブロックチェーン・トランザクションと連続的に一貫している場合、新たに提案されたトランザクションをブロックチェーンに受け入れるための肯定のコンセンサスを提供すること458を含んでよい。
この代替例では、キーと値のペアは、特定のシーケンス番号を有する必要がなく、代わりに、前に割り当てられた使用可能な通し番号のプールから選択され、かつ新しいブロックに割り当てられたバー・コードまたは通し番号を有してよい。通し番号は、それらが割り当てられた時間およびブロックチェーン・メンバまで追跡され得る。通し番号は、時間およびシーケンスにリンクされており、ブロックまたはトランザクションが処理され、前のブロック、トランザクション、および対応するブロックチェーン・メンバの他の通し番号と順番になっていることを保証することができる。このラベリング手法は、正確性および順序付けのためにトランザクションを追跡する方法を提供する。通し番号が他のブロックと連続的に一貫しているかどうかの判定は、対象の通し番号の時間および割当てを識別することを含んでよく、前のブロックで他の通し番号の前に行われるように通し番号の割当てを識別することができる場合、トランザクションは受け入れ可能である。また、トランザクションまたはブロックをコミットするためにコンセンサスを承認すべきかどうかを判定するとき、受け入れ可能な通し番号の割当ての期間として、時間枠が使用されてもよい。
図7は、本発明の一実施形態による、トランザクションのコンセンサス処理を管理する例示的な方法の論理フロー図を示す。図7を参照すると、論理構成470は、コンセンサスを必要とするトランザクションを順にバッファリングするために使用されるアウトバウンド・トランザクション・バッファから、新しいトランザクションを受信することを含んでよい472。新しいトランザクションは、そのキーと値のペアが識別され、対応するシーケンス番号が抽出されてよい474。情報は、次の期待値と比較され476、前の値と続いて連続していない場合、破棄されてよい477。あるいは、シーケンスに一貫性がある場合、トランザクションはブロックチェーンのコミットメントのために準備され478、ブロックチェーンに追加される480。
本発明の上記の実施形態は、ハードウェアにおいて、プロセッサによって実行されるコンピュータ・プログラムにおいて、ファームウェアにおいて、またはこれらの組合せにおいて実装されてよい。コンピュータ・プログラムは、記憶媒体などのコンピュータ可読媒体上で具現化されてよい。例えば、コンピュータ・プログラムは、ランダム・アクセス・メモリ(「RAM」)、フラッシュメモリ、読み取り専用メモリ(「ROM」)、消去可能プログラマブル読み取り専用メモリ(「EPROM」)、電気的消去可能プログラマブル読み取り専用メモリ(「EEPROM」)、レジスタ、ハード・ディスク、リムーバブル・ディスク、コンパクト・ディスク読み取り専用メモリ(「CD-ROM」)、または当技術分野で知られている任意の他の形式の記憶媒体に存在してよい。
例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合されてよい。代替方法では、記憶媒体はプロセッサと一体であってよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(「ASIC」)に存在してよい。代替方法では、プロセッサおよび記憶媒体は、個別の構成要素として存在してよい。例えば、図8は、前述した構成要素などのいずれかを表すか、またはそれに統合され得る例示的なコンピュータ・システム・アーキテクチャ500を示す。
図8は、本明細書に記載の本発明の実施形態の使用または機能の範囲に関して、いかなる制限を示唆することも意図されていない。いずれにせよ、コンピューティング・ノード500は、前述した機能のいずれかを実装すること、または実行すること、あるいはその両方を行うことができる。
コンピューティング・ノード500内には、多数の他の汎用または専用のコンピューティング・システム環境または構成で動作可能なコンピュータ・システム/サーバ502が存在する。コンピュータ・システム/サーバ502と共に使用するのに適したよく知られているコンピューティング・システム、環境、または構成あるいはその組合せの例には、パソコン・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれるが、これらに限定されない。
コンピュータ・システム/サーバ502は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システムで実行可能な命令の一般的なコンテキストで説明され得る。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、ロジック、データ構造などを含むことができる。コンピュータ・システム/サーバ502は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実現されてよい。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ記憶デバイスを含むローカルとリモートの両方のコンピュータ・システム記憶媒体に配置されてよい。
図8に示すように、クラウド・コンピューティング・ノード500内のコンピュータ・システム/サーバ502が、汎用コンピューティング・デバイスの形で示されている。コンピュータ・システム/サーバ502の構成要素には、1つまたは複数のプロセッサまたは処理ユニット504、システム・メモリ506、およびシステム・メモリ506を含む様々なシステム構成要素をプロセッサ504に結合するバスが含まれ得るが、これらに限定されない。
バスは、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および任意の様々なバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、1つまたは複数の任意のいくつかのタイプのバス構造を表す。例として、そのようなアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス規格協会(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスが含まれるが、これらに限定されない。
コンピュータ・システム/サーバ502は、典型的には、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ502によってアクセスできる任意の利用可能な媒体であってよく、揮発性媒体と不揮発性媒体の両方、取り外し可能な媒体と取り外し不可の媒体の両方を含む。システム・メモリ506は、ランダム・アクセス・メモリ(RAM)510またはキャッシュ・メモリ512あるいはその両方などの、揮発性メモリの形でコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ502は、他の取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム記憶媒体をさらに含んでよい。単に例として、ストレージ・システム514は、取り外し不可、不揮発性の磁気媒体(図示せず、通常「ハード・ドライブ」と呼ばれる)に対する読み取りと書き込みを行うために提供されてよい。図示しないが、取り外し可能、不揮発性の磁気ディスク(例えば「フロッピー・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、または他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブが提供されてよい。そのような例において、それぞれは、1つまたは複数のデータ媒体インターフェースによってバスに接続されてよい。以下でさらに詳細に示され、説明されるように、メモリ506は、本発明の様々な実施形態の機能を実行するように構成された一連の(例えば、少なくとも1つの)プログラム・モジュールを有する少なくとも1つのプログラム製品を含んでよい。
例えば、メモリ506には、一連の(少なくとも1つの)プログラム・モジュール518を有するプログラム/ユーティリティ516が格納されてよく、同様にオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データも格納され得るが、これらに限定されない。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらの何らかの組合せは、それぞれネットワーキング環境の実装を含んでよい。プログラム・モジュール518は、概して、本明細書に記載されるような本発明の様々な実施形態の機能または方法あるいはその両方を実行する。
当業者によって理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化されてよい。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェア態様とハードウェア態様を組み合わせた実施形態の形をとることができ、これらはすべて、本明細書では、概して「回路」、「モジュール」、または「システム」と呼ばれることがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが具現化されている1つまたは複数のコンピュータ可読媒体において具現化されたコンピュータ・プログラム製品の形をとることができる。
また、コンピュータ・システム/サーバ502は、キーボード、ポインティング・デバイス、ディスプレイ522などの1つまたは複数の外部デバイス520、ユーザがコンピュータ・システム/サーバ502と対話できるようにする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ502が1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはその組合せと通信してもよい。そのような通信は、I/Oインターフェース524を介して行うことができる。さらに、コンピュータ・システム/サーバ502は、ローカル・エリア・ネットワーク(LAN)、一般的な広域ネットワーク(WAN)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ526を介して通信することができる。図示するように、ネットワーク・アダプタ526は、コンピュータ・システム/サーバ502のその他の構成要素とバスを介して通信する。図示していないが、他のハードウェア構成要素またはソフトウェア構成要素あるいはその両方を、コンピュータ・システム/サーバ502と併せて使用できることが理解されるべきである。例として、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらに限定されない。
本発明をそれぞれ具現化するシステム、方法、および非一過性コンピュータ可読媒体が、添付の図面に示され、前述の詳細な説明において説明されたが、本発明が、開示された本発明の実施形態に限定されず、添付の特許請求の範囲によって示され、定義されているように、多数の再構成、変更、および置換を行うことができることが理解されよう。例えば、様々な図面のシステムの機能は、本明細書に記載のモジュールまたは構成要素のうちの1つまたは複数によって、あるいは分散型アーキテクチャにおいて実行することができ、送信機、受信機、またはその両方のペアを含んでよい。例えば、個々のモジュールによって実行される機能の全部または一部は、それらのモジュールのうちの1つまたは複数によって実行されてよい。さらに、本明細書に記載の機能は、様々な時間に、様々なイベントに関して、モジュールまたは構成要素の内部または外部で、実行されてよい。また、様々なモジュール間で送信される情報は、データ・ネットワーク、インターネット、音声ネットワーク、インターネット・プロトコル・ネットワーク、ワイヤレス・デバイス、有線デバイスのうちの少なくとも1つを介して、または複数のプロトコルを介して、あるいはその組合せを介して、モジュール間で送信され得る。また、モジュールのいずれかによって送信または受信されるメッセージは、直接的に、またはその他のモジュールのうちの1つまたは複数を介して、あるいはその両方で、送信または受信されてよい。
当業者は、「システム」が、パーソナル・コンピュータ、サーバ、コンソール、携帯情報端末(PDA:personal digital assistant)、携帯電話、タブレット・コンピューティング・デバイス、スマートフォン、もしくは任意の他の適切なコンピューティング・デバイス、またはデバイスの組合せとして具現化され得ることを理解するであろう。「システム」によって実行されているような上述の機能を提示することは、本出願の範囲を何らかの形で限定することを意図するものではなく、多くの実施形態の一例を示すことを意図するものである。実際には、本明細書で開示されている方法、システム、および装置は、コンピューティング技術と整合する局所化および分散された形態で実装されてよい。
本明細書に記載のシステムの特徴のいくつかは、それらの実装形態の独立性を特に強調するためにモジュールとして提示されていることに留意されたい。例えば、モジュールは、カスタム超大規模集積(VLSI:very large-scale integration)回路もしくはゲート・アレイ、ロジック・チップなどの既製の半導体、トランジスタ、または他の個別の構成要素を備えるハードウェア回路として実装されてよい。モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、グラフィックス処理ユニットなどのプログラマブル・ハードウェア・デバイスに実装されてもよい。
モジュールは、様々なタイプのプロセッサによって実行するために、ソフトウェアに少なくとも部分的に実装されてもよい。例えば、実行可能コードの識別されるユニットは、例えばオブジェクト、プロシージャ、または関数として編成可能なコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含むことができる。それでもやはり、識別されるモジュールの実行ファイルは、物理的に一緒に配置される必要はなく、論理的に一緒に結合されるとき、モジュールを含み、モジュールの定められた目的を実現する、異なる場所に格納された異種の命令を含むことができる。さらに、モジュールは、コンピュータ可読媒体に格納されてよく、媒体は、例えば、ハード・ディスク・ドライブ、フラッシュ・デバイス、ランダム・アクセス・メモリ(RAM)、テープ、またはデータを格納するために使用される他のこのような任意の媒体であってよい。
実際には、実行可能コードのモジュールは、単一の命令、または多くの命令であってよく、いくつかの様々なコード・セグメント上、様々なプログラム間、およびいくつかのメモリ・デバイスにわたって分散されてもよい。同様に、動作上のデータは、本明細書ではモジュール内に識別され、図示されることがあり、任意の適切な形で具現化され、任意の適切なタイプのデータ構造内で編成されてもよい。動作上のデータは、単一のデータ・セットとして収集されてもよく、または様々な記憶デバイス上を含む様々な場所に分散されてもよく、少なくとも一部が単にシステムまたはネットワーク上の電子信号として存在してもよい。
本発明の構成要素は、本明細書の図面において全体的に説明され、図示されるように、多種多様な構成で配置および設計されてよいことが容易に理解されよう。したがって、本発明の実施形態の詳細な説明は、特許請求される本出願の範囲を限定することを意図するものではなく、本発明の選択された実施形態を表すにすぎない。
当業者は、上記が、異なる順序のステップで、または開示された構成とは異なる構成のハードウェア要素で、あるいはその両方で実現されてよいことを容易に理解するであろう。したがって、本発明が本発明のこれらの好ましい実施形態に基づいて説明されたが、一定の変更形態、変形形態、および代替の構成が明白であることが当業者には明らかであろう。
本発明の好ましい実施形態が説明されたが、説明された本発明の実施形態は例示的なものにすぎず、本発明の範囲は、すべての範囲の均等物およびその変更形態(例えば、プロトコル、ハードウェア・デバイス、ソフトウェア・プラットフォームなど)で考慮されるとき、添付の特許請求の範囲によってのみ定義されるべきであることを理解されたい。

Claims (16)

  1. 装置のプロセッサにより実行可能なモジュールである命令を含む方法であって、前記プロセッサに実行される命令として前記方法が、
    ブロックチェーンの新たに提案されたトランザクションを識別することと、
    コンセンサス動作を開始して前記新たに提案されたトランザクションを承認するかどうかを判定することと、
    前のトランザクションから識別されたキーと値のペアを取得することと、
    前記前のトランザクションの前記キーと値のペアに関連付けられたインデックス値を、前記新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値と比較することと、
    前記前のトランザクションの前記キーと値のペアに関連付けられた前記インデックス値が前記新たに提案されたトランザクションの前記キーと値のペアに関連付けられた前記インデックス値と連続的に続く場合、前記新たに提案されたトランザクションを前記ブロックチェーンに受け入れるための肯定のコンセンサスを提供することと
    を含む、方法。
  2. 前記プロセッサに実行される命令として、前記前のトランザクションの前記キーと値のペアに関連付けられた前記インデックス値が前記新たに提案されたトランザクションの前記キーと値のペアに関連付けられた前記インデックス値と連続的に続いていない場合、前記新たに提案されたトランザクションを拒否することをさらに含む、請求項1に記載の方法。
  3. 前記プロセッサに実行される命令として、前記前のトランザクションの前記キーと値のペアに関連付けられた前記インデックス値が前記新たに提案されたトランザクションの前記キーと値のペアに関連付けられた前記インデックス値と連続的に続いていない場合、前記新たに提案されたトランザクションが1つまたは複数の他のトランザクションと順不同であると判断することをさらに含む、請求項1に記載の方法。
  4. 前記コンセンサス動作が前記ブロックチェーンの複数のバリデータ・ノード・メンバを呼び出し、前記新たに提案されたトランザクションを検証し前記ブロックチェーンに追加するために必要となるのが、前記ブロックチェーンの1人のバリデータ・ノード・メンバのみである、請求項1に記載の方法。
  5. 前記プロセッサに実行される命令として、
    前記ブロックチェーンにアクセスすることと、
    キー値の最初のインスタンスを有する複数のブロックチェーン・トランザクションを抽出することと、
    前記複数のブロックチェーン・トランザクションに基づいて圧縮された台帳を生成することであって、前記圧縮された台帳がキー値の連続的に続くセットとして構成された前記複数のブロックチェーン・トランザクションを含む、前記生成することと
    をさらに含む、請求項1に記載の方法。
  6. 前記ブロックチェーンのバリデータ・メンバから、前記新たに提案されたトランザクションに関する提案されたキーと値のペアを受信することと、
    前に受け入れられたキーと値のペアに基づいて、前記ブロックチェーンのリーダ・メンバを介して、前記提案されたキーと値のペアを受け入れるか、または拒否することと
    をさらに含む、請求項1に記載の方法。
  7. 前記プロセッサに実行される命令として、前記ブロックチェーンの前記リーダ・メンバを介して、前記新たに提案されたトランザクションの前記キーと値のペアに関連付けられた前記インデックス値を、前記新たに提案されたトランザクションに割り当てることをさらに含む、請求項6に記載の方法。
  8. 装置であって、
    プロセッサを備え、前記プロセッサが、
    ブロックチェーンの新たに提案されたトランザクションを識別し、
    コンセンサス動作を開始して前記新たに提案されたトランザクションを承認するかどうかを判定し、
    前のトランザクションから識別されたキーと値のペアを取得し、
    前記前のトランザクションの前記キーと値のペアに関連付けられたインデックス値を、前記新たに提案されたトランザクションのキーと値のペアに関連付けられたインデックス値と比較し、
    前記前のトランザクションの前記キーと値のペアに関連付けられた前記インデックス値が前記新たに提案されたトランザクションの前記キーと値のペアに関連付けられた前記インデックス値と連続的に続く場合、前記新たに提案されたトランザクションを前記ブロックチェーンに受け入れるための肯定のコンセンサスを提供する
    ように構成された、装置。
  9. 前記プロセッサが、前記前のトランザクションの前記キーと値のペアに関連付けられた前記インデックス値が前記新たに提案されたトランザクションの前記キーと値のペアに関連付けられた前記インデックス値と連続的に続いていない場合、前記新たに提案されたトランザクションを拒否するようにさらに構成された、請求項8に記載の装置。
  10. 前記プロセッサが、前記前のトランザクションの前記キーと値のペアに関連付けられた前記インデックス値が前記新たに提案されたトランザクションの前記キーと値のペアに関連付けられた前記インデックス値と連続的に続いていない場合、前記新たに提案されたトランザクションが1つまたは複数の他のトランザクションと順不同であると判断するようにさらに構成された、請求項8に記載の装置。
  11. 前記コンセンサス動作が前記ブロックチェーンの複数のバリデータ・ノード・メンバを呼び出し、前記新たに提案されたトランザクションを検証し前記ブロックチェーンに追加するために必要となるのが、前記ブロックチェーンの1人のバリデータ・ノード・メンバのみである、請求項8に記載の装置。
  12. 前記プロセッサが、
    前記ブロックチェーンにアクセスし、
    キー値の最初のインスタンスを有する複数のブロックチェーン・トランザクションを抽出し、
    前記複数のブロックチェーン・トランザクションに基づいて、圧縮された台帳を生成する
    ようにさらに構成され、前記圧縮された台帳が、キー値の連続的に続くセットとして構成された前記複数のブロックチェーン・トランザクションを含む、請求項8に記載の装置。
  13. 前記ブロックチェーンのバリデータ・メンバから前記新たに提案されたトランザクションに関する提案されたキーと値のペアを受信するように構成された受信機をさらに備え、
    前記プロセッサが、前に受け入れられたキーと値のペアに基づいて、前記ブロックチェーンのリーダ・メンバを介して、前記提案されたキーと値のペアを受け入れるか、または拒否するようにさらに構成された、請求項8に記載の装置。
  14. 前記プロセッサが、前記ブロックチェーンの前記リーダ・メンバを介して、前記新たに提案されたトランザクションの前記キーと値のペアに関連付けられた前記インデックス値を、前記新たに提案されたトランザクションに割り当てるようにさらに構成された、請求項13に記載の装置。
  15. コンピュータ・プログラムであって、請求項1ないし7のいずれか1項に記載の方法の各ステップをコンピュータに実行させるための、コンピュータ・プログラム。
  16. 請求項15に記載のコンピュータ・プログラムを記録した、コンピュータ可読記録媒体。
JP2020524167A 2017-11-17 2018-10-10 ブロックチェーン上の大量トランザクション性能を最適化するための方法、装置、コンピュータ・プログラムおよびコンピュータ・プログラムを記録したコンピュータ可読記憶媒体 Active JP7059370B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/815,944 2017-11-17
US15/815,944 US11823178B2 (en) 2017-11-17 2017-11-17 Optimization of high volume transaction performance on a blockchain
PCT/IB2018/057836 WO2019097322A1 (en) 2017-11-17 2018-10-10 Optimization of high volume transaction performance on a blockchain

Publications (3)

Publication Number Publication Date
JP2021503643A JP2021503643A (ja) 2021-02-12
JP2021503643A5 JP2021503643A5 (ja) 2021-03-25
JP7059370B2 true JP7059370B2 (ja) 2022-04-25

Family

ID=66533187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020524167A Active JP7059370B2 (ja) 2017-11-17 2018-10-10 ブロックチェーン上の大量トランザクション性能を最適化するための方法、装置、コンピュータ・プログラムおよびコンピュータ・プログラムを記録したコンピュータ可読記憶媒体

Country Status (6)

Country Link
US (1) US11823178B2 (ja)
JP (1) JP7059370B2 (ja)
CN (1) CN111344706B (ja)
DE (1) DE112018005348T5 (ja)
GB (1) GB2581083A (ja)
WO (1) WO2019097322A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108805569A (zh) * 2018-05-29 2018-11-13 阿里巴巴集团控股有限公司 基于区块链的交易处理方法及装置、电子设备
CN111899004A (zh) 2018-05-29 2020-11-06 创新先进技术有限公司 基于区块链的交易处理方法及装置、电子设备
GB201810707D0 (en) * 2018-06-29 2018-08-15 Bedrock Capital Ltd Gospel L
US10628450B1 (en) * 2018-09-30 2020-04-21 Innoplexus Ag System and method for blockchain-based secure data processing
US10997154B2 (en) * 2018-10-02 2021-05-04 Microsoft Technology Licensing, Llc Verifiable state machines
MX2019009344A (es) * 2018-12-28 2019-10-02 Alibaba Group Holding Ltd Ejecucion paralela de transacciones en una red de cadena de bloques con base en listas blancas de contratos inteligentes.
CN111033489B (zh) * 2019-05-14 2023-11-17 创新先进技术有限公司 用于数据遍历的方法和设备
CN111108478B (zh) * 2019-07-11 2023-11-21 创新先进技术有限公司 一种用于通信和共享区块链数据的方法、系统、和装置
WO2019179538A2 (en) 2019-07-11 2019-09-26 Alibaba Group Holding Limited Shared blockchain data storage
SG11202001989WA (en) 2019-07-11 2020-04-29 Alibaba Group Holding Ltd Shared blockchain data storage
US11586614B2 (en) 2019-07-30 2023-02-21 Oracle International Corporation Native persistent store support for blockchains
CN113570460A (zh) * 2019-08-30 2021-10-29 创新先进技术有限公司 在区块链中并发执行交易的方法和装置
CN110648125B (zh) * 2019-09-10 2022-08-02 杭州秘猿科技有限公司 一种打包交易方法、装置、电子设备及存储介质
CN110688410B (zh) * 2019-09-23 2021-03-19 创新先进技术有限公司 一种基于区块链的提议处理方法、装置及电子设备
US11023423B2 (en) * 2019-10-10 2021-06-01 Avery Glasser System and method for information storage using blockchain databases combined with pointer databases
CN111884809B (zh) * 2020-07-20 2023-05-05 杭州溪塔科技有限公司 一种防止分叉链交易重放的方法、装置及电子设备
US11875178B2 (en) * 2020-07-30 2024-01-16 Oracle International Corporation Using multiple blockchains for applying transactions to a set of persistent data objects in persistent storage systems
US11356506B2 (en) 2020-10-01 2022-06-07 Bank Of America Corporation System for optimizing data acceptance and data storage in a distributed computing network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017531256A (ja) 2014-09-10 2017-10-19 アマゾン・テクノロジーズ・インコーポレーテッド 拡張縮小可能なログベーストランザクション管理
JP2018132931A (ja) 2017-02-15 2018-08-23 富士通株式会社 承認システム、承認方法および承認プログラム
US20190102409A1 (en) 2017-09-29 2019-04-04 Oracle International Corporation System and method for managing a blockchain cloud service

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7548928B1 (en) * 2005-08-05 2009-06-16 Google Inc. Data compression of large scale data stored in sparse tables
US8255398B2 (en) * 2008-09-30 2012-08-28 International Business Machines Corporation Compression of sorted value indexes using common prefixes
US9553982B2 (en) * 2013-07-06 2017-01-24 Newvoicemedia, Ltd. System and methods for tamper proof interaction recording and timestamping
FR3018378A1 (fr) 2014-03-12 2015-09-11 Enrico Maim Systeme et procede transactionnels a architecture repartie fondees sur des transactions de transferts d'unites de compte entre adresses
US9830593B2 (en) * 2014-04-26 2017-11-28 Ss8 Networks, Inc. Cryptographic currency user directory data and enhanced peer-verification ledger synthesis through multi-modal cryptographic key-address mapping
US10148441B2 (en) * 2014-09-12 2018-12-04 Verisign, Inc. Systems, devices, and methods for detecting double signing in a one-time use signature scheme
US20160164884A1 (en) 2014-12-05 2016-06-09 Skuchain, Inc. Cryptographic verification of provenance in a supply chain
WO2016122548A1 (en) * 2015-01-29 2016-08-04 Hewlett Packard Enterprise Development Lp Hash index
US9942046B2 (en) * 2015-05-06 2018-04-10 21, Inc. Digital currency mining circuitry with adaptable difficulty compare capabilities
US20160342989A1 (en) 2015-05-21 2016-11-24 Mastercard International Incorporated Method and system for processing blockchain-based transactions on existing payment networks
US20170031676A1 (en) * 2015-07-27 2017-02-02 Deja Vu Security, Llc Blockchain computer data distribution
US10853750B2 (en) * 2015-07-31 2020-12-01 British Telecommunications Public Limited Company Controlled resource provisioning in distributed computing environments
US11526877B2 (en) * 2015-10-22 2022-12-13 Coinbase, Inc. Electronic devices having embedded circuitry for accessing remote digital services
US9992028B2 (en) 2015-11-26 2018-06-05 International Business Machines Corporation System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger
US9849364B2 (en) * 2016-02-02 2017-12-26 Bao Tran Smart device
US20170236120A1 (en) * 2016-02-11 2017-08-17 Oracle International Corporation Accountability and Trust in Distributed Ledger Systems
US10212145B2 (en) * 2016-04-06 2019-02-19 Avaya Inc. Methods and systems for creating and exchanging a device specific blockchain for device authentication
US10788988B1 (en) * 2016-05-24 2020-09-29 Violin Systems Llc Controlling block duplicates
CN107122675B (zh) 2017-04-27 2019-10-15 北京众享比特科技有限公司 一种基于区块链的数据库事务操作方法和系统
GB201709219D0 (en) * 2017-06-09 2017-07-26 Nchain Holdings Ltd Computer-implemented system and method
GB201709845D0 (en) * 2017-06-20 2017-08-02 Nchain Holdings Ltd Computer-implemented system and method
US10496371B2 (en) * 2017-06-29 2019-12-03 Intel Corporation Key-value compaction
US10924466B2 (en) * 2017-07-28 2021-02-16 SmartAxiom, Inc. System and method for IOT security
CN107273556A (zh) * 2017-08-23 2017-10-20 上海点融信息科技有限责任公司 区块链数据索引方法和设备
WO2019094797A1 (en) * 2017-11-10 2019-05-16 Digital Asset (Switzerland) GmbH Method and apparatus for execution of atomic transactions
US20190147065A1 (en) * 2017-11-16 2019-05-16 International Business Machines Corporation Method and system for verification of deleted data for blockchains
US10985907B2 (en) * 2018-05-16 2021-04-20 International Business Machines Corporation Identifying faults in a blockchain ordering service

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017531256A (ja) 2014-09-10 2017-10-19 アマゾン・テクノロジーズ・インコーポレーテッド 拡張縮小可能なログベーストランザクション管理
JP2018132931A (ja) 2017-02-15 2018-08-23 富士通株式会社 承認システム、承認方法および承認プログラム
US20190102409A1 (en) 2017-09-29 2019-04-04 Oracle International Corporation System and method for managing a blockchain cloud service
JP2020512757A (ja) 2017-09-29 2020-04-23 オラクル・インターナショナル・コーポレイション ブロックチェーンクラウドサービスを管理するためのシステムおよび方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
山本 由和,購買情報の時間変化の可視化,計算機統計学 第29巻 第2号,日本,日本計算機統計学会,2017年02月11日,第29巻,pp.169-179

Also Published As

Publication number Publication date
CN111344706A (zh) 2020-06-26
CN111344706B (zh) 2023-12-29
WO2019097322A1 (en) 2019-05-23
GB2581083A (en) 2020-08-05
JP2021503643A (ja) 2021-02-12
US20190156332A1 (en) 2019-05-23
GB202005864D0 (en) 2020-06-03
US11823178B2 (en) 2023-11-21
DE112018005348T5 (de) 2020-06-25

Similar Documents

Publication Publication Date Title
JP7059370B2 (ja) ブロックチェーン上の大量トランザクション性能を最適化するための方法、装置、コンピュータ・プログラムおよびコンピュータ・プログラムを記録したコンピュータ可読記憶媒体
JP7028532B2 (ja) ブロックチェーン・ライフサイクルを管理するための方法、装置及びコンピュータ・プログラム
US11875400B2 (en) Systems, methods, and apparatuses for dynamically assigning nodes to a group within blockchains based on transaction type and node intelligence using distributed ledger technology (DLT)
US10679210B2 (en) Blockchain transaction commitment ordering
JP6975101B2 (ja) ブロックチェーンにおけるトランザクションの実行および妥当性確認のための方法、装置ならびに非一時的コンピュータ可読記憶媒体(ブロックチェーンにおけるトランザクション実行および妥当性確認)
US10360191B2 (en) Establishing overlay trust consensus for blockchain trust validation system
US8990149B2 (en) Generating a predictive model from multiple data sources
US20190026821A1 (en) Intermediate blockchain system for managing transactions
US20190149600A1 (en) Partitioning of a blockchain ledger
EP3905178A1 (en) Blockchain-based resource allocation method and apparatus, and electronic device
US10970311B2 (en) Scalable snapshot isolation on non-transactional NoSQL
US11082514B2 (en) Push notification management
US11917088B2 (en) Integrating device identity into a permissioning framework of a blockchain
WO2022041889A1 (zh) 资金路由方法、装置、电子设备及存储介质
US10158650B1 (en) Token verification from incremental inputs
US20210142406A1 (en) Vehicle selection platform
US20220006855A1 (en) Centralized approach for managing cross-service data of cloud resources
US11238044B2 (en) Candidate data record prioritization for match processing
CN110889040B (zh) 用于推送信息的方法和装置
US11966921B2 (en) Systems and methods for using proxy number tokens with configurable relationship data bindings
US20230163970A1 (en) Generating cryptographic proof of a series of transactions
US20230062616A1 (en) Database log performance
US20210223984A1 (en) Consistent reads in a distributed transaction protocol

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220322

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220413

R150 Certificate of patent or registration of utility model

Ref document number: 7059370

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150