JP2021526249A - ブロックチェーン上のプロキシ・エージェントおよびプロキシ台帳 - Google Patents

ブロックチェーン上のプロキシ・エージェントおよびプロキシ台帳 Download PDF

Info

Publication number
JP2021526249A
JP2021526249A JP2020562132A JP2020562132A JP2021526249A JP 2021526249 A JP2021526249 A JP 2021526249A JP 2020562132 A JP2020562132 A JP 2020562132A JP 2020562132 A JP2020562132 A JP 2020562132A JP 2021526249 A JP2021526249 A JP 2021526249A
Authority
JP
Japan
Prior art keywords
blockchain
node
transaction
proxy
ledger
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020562132A
Other languages
English (en)
Other versions
JP7304117B2 (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 JP2021526249A publication Critical patent/JP2021526249A/ja
Application granted granted Critical
Publication of JP7304117B2 publication Critical patent/JP7304117B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

例の動作は、第1のブロックチェーン・ノードにおいて、処理を必要とするブロックチェーン・トランザクションを特定することと、第1のブロックチェーン・ノードによって、および、第1のブロックチェーン・ノードとコロケートされる1つまたは複数のプロキシ・エージェントによって、ブロックチェーン・トランザクションに関連付けられるスマート・コントラクトを実行することであって、1つまたは複数のプロキシ・エージェントは、ブロックチェーン・ネットワーク上の他のブロックチェーン・ノードにも関連付けられる、実行することと、ブロックチェーン・トランザクションをコミットするよう決定することと、ブロックチェーン・トランザクションを、第1のブロックチェーン・ノードによって維持される台帳に記憶することとのうちの1つまたは複数を含むことができる。

Description

本出願は、一般的に、ブロックチェーンへのピア参加に関し、より詳細には、ブロックチェーン上のプロキシ・エージェントおよびプロキシ台帳に関する。
台帳は、一般的にトランザクションが記録される勘定台帳として定義される。分散台帳は、全体または一部が複数のコンピュータに複製される台帳である。暗号化台帳(CDL)は、次の性質:不可逆性(いったんトランザクションが記録されると、元に戻すことができない)、アクセス性(任意の関係者が、CDLに全体または一部アクセスすることができる)、時系列的かつタイムスタンプを有する(すべての関係者が、トランザクションがいつ台帳に追加されたかを知っている)、合意ベースである(トランザクションは、ネットワーク上の関係者によって、典型的には満場一致で、認められた場合のみ追加される)、検証可能性(すべてのトランザクションは暗号法的に検証することができる)のうちの少なくともいくつかを有することができる。ブロックチェーンは、CDLの一例である。本明細書における説明および図面は、ブロックチェーンに関して説明されるが、当該出願はあらゆるCDLに等しく適用する。
分散台帳は、継続的に増大するレコードのリストであり、典型的には、他のブロックに関連する暗号法的ハッシュを記憶するなど、暗号法的技法を適用する。ブロックチェーンは、分散台帳の一般的な一例であり、情報を記憶するためのパブリックな台帳として使用することができる。主に金融取引用に使用されるが、ブロックチェーンは、商品およびサービスに関連する様々な情報(すなわち、製品、パッケージ、状態など)を記憶することができる。非中央集権化されたスキームは、非中央集権化されたネットワークに権限および信頼性を与え、そのノードが連続的にかつ順次にそれらのトランザクションをパブリックな「ブロック」に記録することを可能にし、ブロックチェーンと参照される一意な「チェーン」を作成する。ハッシュ・コードを介する暗号法を使用して、トランザクション・ソースの認証をセキュアにして、中心となる仲介者を不要とする。ブロックチェーンは、継続的に増大するレコードのリストをブロックチェーンのブロック内に維持する分散データベースであり、その不変な性質により改竄および改版されることからセキュアになされている。それぞれのブロックは、タイムスタンプおよび先行するブロックに対するリンクを含んでいる。ブロックチェーンを使用して、情報の保持、追跡、移送、および検証をすることができる。ブロックチェーンは、分散システムであるため、トランザクションをブロックチェーン台帳に追加する前に、すべてのピアが合意状態に達する必要がある。
従来、許可型のブロックチェーン(permissioned blockchain)のシステムは、ノード間で分散される合意を提供する際、有意なレイテンシを被っていた。ブロックチェーン・ネットワークに参加するノードの場所およびこれらのノード間の通信に関与するレイテンシに依存して、既存のブロックチェーン・ネットワークのパフォーマンスは、例えば、1秒当たり数10トランザクションまたはそれよりも多いオーダーとなる場合がある。主流となるブロックチェーン・トランザクションのプロセッサは、時には1秒当たり50000トランザクションを超える速度をピークとして、平均して1秒当たり数千トランザクションをサポートすることができる。ほとんどのブロックチェーン・システムは、現在の能力を有意に超えて増大するようパフォーマンスの向上を必要とするより大きなスケールのキャパシティへ拡張する傾向がある。従来型のブロックチェーン・ネットワークでは、ネットワークに参加しているノードは、台帳のノードの複製に結合されるスマート・コントラクト・レイヤでプログラムされたロジックを処理する。システム内でコミットされるトランザクションについて、合意メカニズムを介して検証ノード(ノードを選択する)により様々なトランザクションが合意され、トランザクションは、さらに検証リーダーノードによって順序付けられ、それぞれのノードは、トランザクションを台帳のその複製にコミットする。
ある構成では、エンドーシング・ノードのセットがトランザクションをエンドースし、その後、トランザクションは、順序付けられ、個々の台帳にコミットされる。これらのエンドーシング・ノード間の相互作用に伴うレイテンシに応じて、システムのスループット・パフォーマンスが限定要因となり得、遅延および他のシステム構成の懸念事項をもたらす場合がある。
例示的な一実施形態は、ブロックチェーン・ノードによるエンドースメントを必要とするブロックチェーン・トランザクションを特定することと、他のブロックチェーン・ノードのうちの1つまたは複数に関連付けられるプロキシ・エージェントから1つのブロックチェーン・ノードにおいてエンドースメントを受信することと、ブロックチェーン・トランザクションをコミットするよう決定することと、コミットされたブロックチェーン・トランザクションを、1つのブロックチェーン・ノードによって維持される台帳に記憶することと、のうちの1つまたは複数を含む方法を提供することができる。
さらに別の例示的な実施形態は、第1のブロックチェーン・ノードであって、コミットを必要とするブロックチェーン・トランザクションを特定することと、第1のブロックチェーン・ノードによってブロックチェーン・トランザクションに関連付けられるスマート・コントラクトを実行することとのうちの1つまたは複数を行うように構成された第1のブロックチェーン・ノードと、第1のブロックチェーン・ノードとコロケートされる1つまたは複数のプロキシ・エージェントであって、1つまたは複数のプロキシ・エージェントは、ブロックチェーン・ネットワーク上の他のブロックチェーン・ノードにも関連付けられる、1つまたは複数のプロキシ・エージェントとを含み、第1のブロックチェーン・ノードは、また、ブロックチェーン・トランザクションをコミットすることと、ブロックチェーン・トランザクションを、第1のブロックチェーン・ノードによって維持される台帳に記憶することを行うように構成される、システムを含むことができる。
なお別の例示的な実施形態は、実行されるとプロセッサに、第1のブロックチェーン・ノードにおいて、処理を必要とするブロックチェーン・トランザクションを特定することと、第1のブロックチェーン・ノードによって、および、前記第1のブロックチェーン・ノードとコロケートされる1つまたは複数のプロキシ・エージェントによって、ブロックチェーン・トランザクションに関連付けられるスマート・コントラクトを実行することであって、1つまたは複数のプロキシ・エージェントはブロックチェーン・ネットワーク上の他のブロックチェーン・ノードにも関連付けられる、実行することと、ブロックチェーン・トランザクションをコミットするよう決定することと、ブロックチェーン・トランザクションを、第1のブロックチェーン・ノードによって維持される台帳に記憶することとを実施させる命令を記憶するように構成される、非一過性のコンピュータ可読記憶媒体を含むことができる。
例示的な実施形態による、プロキシ・ノードを伴うプロキシ台帳およびエンドースメント管理のシステム・ネットワーク構成の図である。 例示的な実施形態による、プロキシ台帳およびエンドースメント管理のシステム・ネットワーク構成の図である。 例示的な実施形態による、プロキシ・エージェントのトランザクション・エンドースメントについての例示的なピア・ノードのブロックチェーン・アーキテクチャ構成の図である。 例示的な実施形態による、例示的なピア・ノードのブロックチェーン構成の図である。 例示的な実施形態による、許可型のブロックチェーンのネットワークの図である。 例示的な実施形態による、プロキシ・エージェントを介するピア・ノード管理を実施するためのシステム・メッセージング図である。 例示的な実施形態による、ブロックチェーン内でのプロキシ・エージェント管理の例示の方法のフロー図である。 例示的な実施形態による、ブロックチェーン内でのプロキシ・エージェント管理の別の例示の方法のフロー図である。 例示的な実施形態による、ブロックチェーン内でのプロキシ・エージェント管理の別の例示の方法のフロー図である。 例示的な実施形態による、本明細書において説明される1つまたは複数の動作にしたがう、ブロックチェーン上で様々な動作を実施するように構成される例示的な物理的インフラストラクチャの図である。 例示的な実施形態による、契約当事者間の例示的なスマート・コントラクト構成およびブロックチェーン上でスマート・コントラクト条項を執行するように構成された仲介サーバを示す図である。 例示的な実施形態のうちの1つまたは複数をサポートするように構成される例示的なコンピュータ・システムの図である。
本明細書の図面において一般的に説明され図示される当該コンポーネントは、多様な構成で配置構成され、設計される可能性があることが容易に理解されよう。したがって、添付の図面に表現される方法、装置、非一過性のコンピュータ可読媒体、およびシステムのうち少なくとも1つの実施形態の以下の詳細な説明は、特許請求される本出願の範囲を限定するよう意図されておらず、選択された実施形態の単なる典型例である。
本明細書を通じて説明される当該特徴、構造、または特性は、1つまたは複数の実施形態において、任意の適切なやり方で組み合わせることができる。例えば、本明細書を通じて、句「例示的な実施形態」、「いくつかの実施形態」または他の同様の言い回しの使用は、実施形態に関連して説明される特定の特徴、構造または特性が少なくとも1つの実施形態に含まれ得る事実に言及している。したがって、本明細書を通じて、句「例示的な実施形態」、「いくつかの実施形態」、「他の実施形態において」または他の同様の言い回しの登場は、必ずしもすべてが実施形態の同一の群を指しておらず、説明される特徴、構造、または特性は1つまたは複数の実施形態において任意の適切なやり方で組み合わせることができる。
加えて、用語「メッセージ」が実施形態の説明に使用されている場合があるが、その適用はパケット、フレーム、図などの多くのタイプのネットワーク・データに適用され得る。用語「メッセージ」はまた、パケット、フレーム、データグラム、およびそのあらゆる等価物を含む。さらには、例示的な実施形態において特定のタイプのメッセージおよびシグナリングが描かれる場合がある一方、これらは特定のタイプのメッセージに限定されず、また本出願は特定のタイプのシグナリングに限定されない。
例示的な実施形態は、様々な場所におけるノードにわたって分散台帳(ブロックチェーン)を維持するためのプロキシベースの手法を提供する方法、デバイス、ネットワーク、またはシステムあるいはその組合せを提供する。プロキシ・スマート・コントラクト・エージェントおよびプロキシ台帳は、ブロックチェーン・ネットワーク上のそれぞれのノードにおいてデプロイされてもよい。トランザクションに必要なリソースは、ノードを代表するエージェントをまたいで分割することができる。集約台帳(aggregate ledger)は、それぞれのノードにサブミットされたトランザクションに基づいて別個の台帳のセットとして維持される。システムは、プロキシ・ノードにおいてトランザクションをキャッシュする柔軟性を与え、高速のトランザクション処理を可能にして、それぞれのノードをまたいで必要に応じてアクセス制御を与えられて利用されるスマート・コントラクト・ロジックにおける柔軟性を与えることができる。システムのスケーラビリティは、それぞれのノードが、他のノードからのプロキシ・エージェントと相互作用をしてその台帳をローカルに更新する能力によって実現される。ノード、ひいては合意に関するプロキシ・エージェントの数が増加するにつれ、1ノード当たりのスループットは低下する可能性がある。しかしながら、他のプロキシ・ノード・エージェントが単に非検証エージェントとして機能することから、システムは、ノード当たりのスループット・スケーラビリティを確実にするために、合意決定に関与するノードの数を制限するように構成することができる。システム全体のスループットは、それぞれのノードにおける台帳のスループットの合計に基づくことになる。結果として、それぞれのノードにおける処理が比較的独立的であることに起因して、このシステムは、それぞれのノードにおいてプロキシ・エージェントによって可能にされる、トランザクションの局所化された処理に高度にスケーラブルなスループットを提供することができる。
ブロックチェーンは、互いに通信する複数のノードを含む分散システムである。ブロックチェーンは、チェーンコード(例えば、スマート・コントラクトなど)と呼ばれるプログラムを動作させ、状態および台帳データを保持し、トランザクションを実行する。いくつかのトランザクションは、チェーンコードで呼び出される動作である。一般的に、ブロックチェーン・トランザクションは、典型的には一定のブロックチェーン・メンバによって「エンドース」されなければならず、エンドースされたトランザクションだけがブロックチェーンにコミットすることができ、ブロックチェーンの状態に影響を与えることができる。エンドースされない他のトランザクションは、無視される。管理機能およびパラメータのための1つまたは複数の特殊なチェーンコードが存在する場合があり、システム・チェーンコードと総称される。
ノードは、ブロックチェーン・システムの通信エンティティである。「ノード」は、異なるタイプの複数のノードが同一の物理サーバ上で実行することができるという意味で、論理的な機能を実施することができる。ノードは、信頼されるドメインにグループ化され、それらを様々な方法で制御する論理的なエンティティに関連付けられる。ノードは、エンドーサ(例えば、ピア)にトランザクション呼び出しをサブミットして順序付けサービス(例えば、順序付けノード)にトランザクション・プロポーザルをブロードキャストするクライアントまたはサブミット・クライアント・ノードなどの様々なタイプを含むことができる。別のタイプのノードは、クライアントがサブミットしたトランザクションを受信し、そのトランザクションをコミットして、ブロックチェーン・トランザクションの台帳の状態および複製を維持することができる、ピア・ノードである。ピアはまたエンドーサの役割を有することができるが、これは必要事項ではない。順序付けサービス・ノード、すなわちオーダラ―(orderer)は、すべてのノードについて通信サービスを実行中のノードであり、トランザクションをコミットしてブロックチェーンのワールド・ステートを変更する際、システム内のピア・ノードのそれぞれへのブロードキャストなどの配信保証を実装し、これは通常制御およびセットアップ情報を含む初期のブロックチェーン・トランザクション用の別名である。
台帳は、ブロックチェーンのすべての状態遷移の、順序付けられた、耐改竄性のレコードである。状態遷移は、参加している関係者(例えば、クライアント・ノード、順序付けノード、エンドーサ・ノード、ピア・ノードなど)によってサブミットされたチェーンコード呼び出し(すなわち、トランザクション)から生じる場合がある。トランザクションは、作成、更新、削除など、1つまたは複数のオペランドとして台帳にコミットされるアセットのキー−バリューの対のセットとなる可能性がある。台帳は、不変で、ブロック内の順序付けられるレコードを記憶するために使用されるブロックチェーン(チェーンとも称される)を含む。台帳は、ブロックチェーンの現在の状態を維持するステート・データベースをさらに含む。典型的には1チャネルあたり1台帳である。それぞれのピア・ノードは、それらがメンバであるそれぞれのチャネルごとの台帳の複製を維持する。
チェーンは、ハッシュでリンクされたブロックとして構造化されるトランザクション・ログであり、それぞれのブロックは、一連のN個のトランザクションを含み、ここでNは1以上である。ブロックのヘッダは、ブロックのトランザクションのハッシュ、ならびにそれに先行ブロックのヘッダのハッシュを含む。この方法で、台帳のすべてのトランザクションを順序付け、ともに暗号法的にリンクさせることができる。したがって、ハッシュ・リンクを壊さずに台帳データを改竄することは不可能である。最も最近追加されたブロックチェーンのブロックのハッシュは、チェーン上のそれまでに生じたすべてのトランザクションを代表しており、すべてのピア・ノードが、一貫しており、信頼できる状態にあることを確実にすることを可能にしている。チェーンは、ピア・ノードのファイル・システム(すなわち、ローカル、付属ストレージ、クラウドなど)に記憶することができ、ブロックチェーン・ワークロードの追記のみの性質を効率的にサポートしている。
不変な台帳の現在の状態は、チェーン・トランザクション・ログに含まれるすべてのキーに対する最新のバリューを表している。現在の状態は、チャネルに既知である最新のキーバリューを表しているため、ときにはワールド・ステートと称される。チェーンコード呼び出しは、台帳の現在の状態データに対するトランザクションを実行する。これらのチェーンコード相互作用を効率的にするために、キーの最新のバリューをステート・データベースに記憶することができる。ステート・データベースは、単純にチェーンのトランザクション・ログにインデックス付けされたビューであるため、いつでもチェーンから再生成することができる。ステート・データベースは、ピア・ノードのスタートアップ時、またトランザクションが受理されるより前に、自動的にリカバリすることができる(または必要であれば生成される)。
例では、図面の要素に対応するよう定義される特定の変数および識別子を与える。例えば、「N」は、ネットワークにおけるブロックチェーン・ノードのセットであり、「SC(n,m)」は、ノード「m」においてサブミットされたトランザクションで実行されるNノードのうちの1つ「n」についてのスマート・コントラクト・コードであり、proxy(n,m)は、ノード「m」で実行中のノード「n」用のプロキシ・エージェントであり、ledger(m,n)はノード「n」において維持されるノード「m」用の台帳であり、ledger(m,m)は、ノード「m」において維持されるノード「m」用の台帳の複製であり、proxyledger(m,proxy(n,m))は台帳であり、Ag.ledger(m)はノード「m」において維持されるすべてのledger(ledger(i,m))の集約セットであり、ここでiεNである。
例示の実施形態によると、ブロックチェーン・ネットワーク内のそれぞれのノードにおいて、他のノードに対応するプロキシ・スマート・コントラクト・エージェントは、特定のノードとコロケートされるか、または一定程度のサービスを維持するためにピアが十分近くない場合にピア・ノード動作に支援を与えるために特定のノードに極近接して位置付けられるか、あるいはその両方であるプロキシ・ノード・エージェントにおいてデプロイされる。ブロックチェーン・トランザクションの要求の何らかの合意もしくはエンドースメント、または他の通信、あるいはその両方が必要とされる場合、第1のノード「A」において、ノード「A」においてサブミットされたトランザクションを処理するために、ノード「A」にインストールされたか、または他のピアよりもノード「A」の近くにインストールされたプロキシ・スマート・コントラクト・エージェントは、他のノードを代理して実行し、トランザクションを処理して必要な入力を与える。トランザクションを成功裏に処理した後、処理されたトランザクションは、ノード「A」において維持される台帳「A」にコミットされる。プロキシ・スマート・コントラクト・エージェントはさらに台帳を維持し、トランザクションをledger(A,A)のそれ自身の複製にコミットする。ノード「B」を代理するプロキシ・エージェントは、台帳「A」のその複製を作成して更新し、これはledger(A,proxy(B,A))と呼ばれる。周期的に、プロキシ・スマート・コントラクトは、別のノード「B」を代理して、ノード「B」にブロックの更新されたセットを送信する。ノード「B」において、ノード「A」についての台帳の複製が維持され(ledger(A,B))て、ledger(A,proxy(B,A))への更新に基づいてノード「B」がproxy(B,A)から更新を受信するとledger(A,B)が更新されるようにする。
図1Aは、例示的な実施形態による、プロキシ・ノードを伴うプロキシ台帳およびエンドースメント管理のシステム・ネットワーク構成を図示している。図1Aを参照すると、それぞれのノードは、そのノードにおいてサブミットされたトランザクションに基づいて台帳の複製、ならびに、他のノードからの台帳の複製を有し、これは、これらのノードに対してサブミットされたトランザクションに基づく。この例100Aでは、プロキシ・ノード108および110は、ノード「A」102と相互作用してノード「A」用の台帳を維持している。ノードB104およびノードC106は、それら自身の個々のプロキシ・ノードからの更新に基づいて、ノードA上の台帳への更新を同期する。
一例において、トランザクションは、ノードCによって供給される商品に基づいてノードAにおいて行うことができ、これらはノードBを介して出荷される。商品がノードAに到達すると、ノードAによってノードCおよびBに対してトランザクションが作られ、ノードAにおいてノードA用の台帳によって、ならびにノードAにおいてコロケートされるノードCおよびB用のプロキシ・エージェントによって管理されるプロキシ台帳によって記録され、プロキシ台帳はノードAにおいてノードA用の台帳に記憶されているトランザクションの記録を複製する。コロケートされる態様は、同一のノードにインストールすることができるか、またはノードで動作している管理プラットフォーム・ノードにインストールすることができるか、あるいはその両方である。時間的に後に、個々のノードCおよびBは、ノードAにおいてコロケートされるそれらの個々のプロキシ・エージェントを介してトランザクションに関する情報を受信する。あるいは、移送が行われるのではなく、ノードAの台帳は単に商品がノードAに到着したというイベントを記録することができ、この情報はノードCおよびB用のプロキシ・エージェントによって管理されるプロキシ台帳において複製され、やはりこれらはノードAとコロケートされる。時間的に後に、個々のノードCおよびBは、それらの個々のプロキシ・エージェントからトランザクションに関する情報を受信し、それら自身のカスタム台帳をそれらの記録手順に適切なあらゆるやり方で更新することができるが、これはトランザクション自身と同時的に起こらなくてもよい。
図1Bは、例示的な実施形態による、プロキシ台帳およびエンドースメント管理のシステム・ネットワーク構成100Bの図である。図1Bを参照すると、集約台帳(Ag.ledger(A))は、ledger(A,A)124および他のノードのledger(B,A)、ledger(C,A)などからの台帳の複製を含む場合がある。集約台帳(Ag.ledger(B))は、ledger(B,B)、ならびにledger(A,B)116およびledger(C,B)などの他のノードからの台帳の複製を含む場合がある。集約台帳(Ag.ledger(C))は、ledger(C,C)、ならびにledger(A,C)128およびledger(B,C)などの他のノードからの台帳の複製を含む場合がある。したがって、全体的なブロックチェーン台帳システムは、ノードのそれぞれにおいてサブミットされたトランザクションに基づく台帳の集約に基づいている。簡潔さの理由から、図100Aには、上で特定されたすべての台帳複製は含まれていない。
受け取った商品についての移送に関連付けられるトランザクションの例について、ノードAについてのスマート・コントラクトSC(A,A)122、あるいはSC(B)114に基づいている、ProxySC(B,A)118として示される、プロキシ・ノードにおけるノードBについてのプロキシ・スマート・コントラクト、もしくはSC(C)126に基づいている、ProxySC(C,A)132として示される、ノードAに位置する、ノードCについてのプロキシ・スマート・コントラクトまたはその両方を使用して、ノードA用のトランザクション残高が商品についてトランザクションの必要事項をカバーするために妥当かどうかを判断することができる。ノードAは、また、それ自身のスマート・コントラクトSC(A,A)122を有する。ノードAにおいて商品の受け取りを単に記録することの例については、そのようなスマート・コントラクトは、受け取った商品の量がトランザクション注文を反映して妥当だったかどうか、または受け取った商品のタイプが正しかったかどうか、または商品が期日前に受け取ったかどうか、などの制約をチェックすることができる。
ledger(A,proxy(B,A))120などのそれぞれのプロキシ台帳は、ledger(A,A)124全体を表してはいない。ledger(A,proxy(C,A))134についても、同様のシナリオである。ノードBにおいてledger(A,B)をコミットした後、プロキシ台帳はそれが含むブロックを削除することができる。しかしながら、過去のトランザクションについてのブロックチェーン・システムからの読み出しが、すべてのノードにわたる合意を必要とする場合、データ検証時間が増大する可能性がある。あるいは、ノードBにおいてledger(A,B)をコミットした後、プロキシ台帳はすべての最近のトランザクションのキャッシュを維持し続けることができる。使われてから最も時間が経過した(Least Recently Used:LRU)トランザクションを無効にするキャッシュベースの手法は、過去のトランザクションについてのノードにわたるデータ検証が高速で起こり、他のノードからの参加とともにそれぞれのノードにおいてローカルに実施されることを保証にすることができる。ノードのプロキシ・エージェントとその親ノードとの間の更新の頻度は、利用可能なキャッシュのサイズにより、変わる可能性がある。あるいは、キャッシュのサイズは、ノードにわたるネットワーク内の動的な負荷およびキャッシュ記憶空間可用性に基づくノードのプロキシ・エージェントとその親ノードとの間の更新の頻度に基づいて、変わる可能性がある。すべてのノードにわたる単一の台帳、また1つの台帳ですべてのノードにわたって合意を維持するようと試みる代わりに、このタイプのシステムは、台帳のセットを維持し、このセットはそれぞれのノードごとに1つの台帳を含む。プロキシ・スマート・コントラクト・エージェントを含むプロキシ・ノード・エージェント、およびプロキシ台帳は、それぞれのノードにデプロイされる。プロキシ・スマート・コントラクト・エージェントを使用して、それぞれのノードにおいて、高速の処理およびトランザクションの台帳へのコミットが可能となる。エージェントは、別個のデバイスであってもよいが、ピア・ノード・コンピュータで動作するソフトウェア・モジュールとして実装されることが好ましい。プロキシ・ノードは、別のノードから台帳についてバルクの更新を実施することによって、それらが代表するよう割り振られているノードと同期する。複数のチャネルが、それぞれ個々の台帳ごとにサポートされ得る。アクセス制御を利用して、特定のノードにおいてそれぞれのプロキシ・エージェントに対してアクセスを与えることができる。アクセス制御は、必要であればチャネルごとに異なっていてよい。ノードBが、ノードAにおいてそのプロキシを介して、ノードAで実行しようとしているスマート・コントラクトは、ノードBがそれ自身の台帳用の、それ自身のノードで実行するスマート・コントラクトとは異なっている可能性がある。この手法は、それぞれのノードにおける個々の台帳の必要性をカスタマイズすることができ、システム内にさらなる柔軟性を提供することができる。プロキシ・エージェントは、それらが代表するよう割り振られている他のピアに対して更新を送信することにより動作するブロックチェーン・ピアであり得る。
プロキシ・エージェントは、ブロックのトランザクションの実際の内容の、さらに非緊急/受動的な更新を伴う、コミットされブロックに関連付けられた、マークル・ツリー・ハッシュなどメタデータのみのプロアクティブな更新およびトランザクションのリストを提供することができる。プロキシ・ノードと、それらが代表するノードとの間の通信は、ネットワーク利用が低い時間帯、例えば、米国、またはアジア、または高いトランザクション・トラフィックを生じさせる世界の他の地域の夜間など、ネットワークのトラフィックが少ないと特定されるときに、実施することができる。最終的に、情報はプロキシ台帳に更新される。サプライ(supplies)などのリソースは、また予測的に、二重払いを避け、トランザクションがローカルで進むことを可能にするために、ノードを代表するエージェントに渡って、分散して分割することができる。
グローバル・リソース全体は、様々な地域に渡って分割することができる。例えば、リソース「A」を、シンガポール(リージョン1)、オーストラリア(リージョン2)およびニュージーランド(リージョン3)にわたる「A」=A1+A2+A3として分割すると仮定する。次に、オーストラリアとニュージーランドにおいて、それぞれA2がA2Newに変更され、A3がA3Newに変更され、それにしたがってコミットされるが、シンガポールはまだ更新情報を受信していないと仮定する。ここで、A1の最新のバリューは「SG」において既知であり、A2の最新のバリューは、「Aus」において所有されており、A3はニュージーランドにおいて所有されている。グローバル・リソース全体は、様々な地域に渡って分割することができる。例えば、シンガポール(SG)からのリソース「A」を、シンガポール(SG)(リージョン1)、オーストラリア(AUS)(リージョン2)、およびニュージーランド(NZ)(リージョン3)にわたるA=A1+A2+A3として分割する。量「A2」および「A3」は、SGからAUSおよびNZに割り当てられる。これにより、リソースAを伴うAUSおよびNZにおけるトランザクションを、リソースAのローカルな可用性に基づいて、ローカルでコミットさせることができる。将来的な時点において、リソースAの部分が、必要に応じて異なる地域に再割り振りすることができる一方で、続行中のトランザクションについてそれぞれのリージョンにおいてリソースAの妥当な量を利用可能にすることができる。予測エンジンを使用して、将来的な所与の時間に所与のリージョンにおいて必要とされるリソースの量を予測することができる。
グローバルなピア・ノード分散シナリオでは、ピアにサブミットされた複雑なクエリを、リソース可用性全体を決定するために遠い地域に送信しなければならず、分散ネットワークの従来的なレイテンシ・コストを被ることになる。しかしながら、そのようなクエリの頻度は、少なく、ほとんどのクエリがローカルのリソースに対してむけられ、ローカルで管理されることが期待される。一例では、SG/AUS/NZの例では、AUSとNZにおいて、それぞれA2がA2Newに変更され、A3がA3Newに変更され、それにしたがってコミットされるが、SGはまだトランザクションを認識していないと仮定する。ここで、A1の最新のバリューは「SG」において既知であり、A2の最新のバリューは、AUSにおいて所有されており、A3はNZにおいて所有されている。「A」に対するグローバルなクエリがサブミットされると、それぞれ3つの地域から、A1が取得され、A1が変わっていない場合は、A2Newが取得され、A3Newも取得される。グローバルな状態は、リソース「A」についてANew=A1+A2New+A3Newとして得られる。しかしながら、このクエリは、3つの異なる遠い地域を横断しなければならず、そのリージョン間で従来ネットワークの高レイテンシを被ることになる。
例示の実施形態によると、それぞれの地域の場所におけるクラウド・デプロイメントは、リモートの組織のプロキシ・ノードに対するローカルな組織用のローカル・ノードなど、異なる組織を代表するノード用に仮想マシン/コンテナ・パーティションを使用することができそれらは同一のクラウド・インフラストラクチャ内にコロケートされ、それによって、インフラストラクチャは、仮想マシン(VM)/コンテナ・パーティションに信頼できる分離を与えながら、コロケーションの機能性によりレイテンシを最小化する。ノードまたはプロキシ・ノードの機能は、複製されて、トランザクションをロード・バランスするための高可用性を提供することができる。エンドースメント・リクエストは、ロード・バランスのために複製されたノード間で分散することができるが、しかしながら、所与の場所でノードまたはプロキシ・ノードのすべての複製されたバージョンによってコミット・トランザクションを実行しなければならない。リソースおよび地域にわたる台帳分割を含み、およびプロキシ台帳との受動的な協調を含むシステム全体は、集約台帳の特徴がノードによって維持される個々の台帳の「スーパーセット(superset)」であることに起因して、「スーパー台帳(superledger)」と呼ぶことができる。
図2Aは、例示の実施形態によるブロックチェーン・アーキテクチャ構成200Aを図示している。図2Aを参照すると、ブロックチェーン・アーキテクチャ200Aは、特定のブロックチェーン要素、例えば、ブロックチェーン・ノード202のグループを含むことができる。ブロックチェーン・ノード202は、1つまたは複数のノード204〜210を含むことができる。(単なる例示として4ノードが描かれている)。これらのノードは、ブロックチェーン・トランザクションの追加、および検証プロセス(合意)などの、複数のアクティビティに参加している。ブロックチェーン・ノード204〜210のうちの1つまたは複数は、トランザクションをエンドースすることができ、またアーキテクチャ200A内のすべてのブロックチェーン・ノード用の順序付けサービスを提供することもできる。ブロックチェーン・ノードは、ブロックチェーン認証を開始し、ブロックチェーン・レイヤ216に記憶される不変な台帳であるブロックチェーンへの書き込みを試みることができ、その複製もまた基礎となっている物理的なインフラストラクチャ214に記憶することができる。ブロックチェーン構成は、記憶されたプログラム/アプリケーション・コード220(例えば、チェーンコード、スマート・コントラクトなど)にアクセスして実行するための、アプリケーション・プログラミング・インターフェース(API)222にリンクされる1つまたは複数のアプリケーション224を含むことができ、これらは参加者によって求められるカスタマイズされた構成にしたがって作成することができ、それら自身の状態を維持し、それら自身のアセットを制御し、そして外部情報を受信することができる。これは、すべてのブロックチェーン・ノード204〜210上で、分散台帳への追記を介して、トランザクションとしてデプロイして、インストールすることができる。
ブロックチェーン・ベースまたはプラットフォーム212は、ブロックチェーンのデータ、サービス(例えば、暗号法的なトラスト・サービス、仮想実行環境など)、基礎となっている物理的なコンピュータ・インフラストラクチャといった、様々なレイヤを含み、これらは、新しいトランザクションを受信して記憶し、データ・エントリへのアクセスを試みる監査にアクセスを提供するために使用することができる。ブロックチェーン・レイヤ216は、プログラム・コードを処理するために必要な仮想実行環境へのアクセスを与えるインターフェースを公開し、物理的なインフラストラクチャ214に繋がることができる。暗号法的なトラスト・サービス218を使用して、アセット交換トランザクションなどのトランザクションを検証して、情報を秘密にしておくことができる。
図2Aのブロックチェーン・アーキテクチャ構成は、ブロックチェーン・プラットフォーム212により、1つまたは複数の公開されるインターフェース、および提供されるサービスを介してプログラム/アプリケーション・コード220を処理して実行することができる。コード220は、ブロックチェーンアセットを制御することができる。例えば、コード220は、データを記憶して移送することができ、また、スマート・コントラクトおよびその実行の対象となる条件または他のコード要素に関連付けられるチェーンコードの形態でノード204〜210によって実行され得る。非限定的な例として、スマート・コントラクトは、リマインダ、更新、または変更、更新などを対象とする他の通知あるいはその組合せを実行するために作成することができる。スマート・コントラクトは、それ自身を使用して権限に関連付けられる規則を特定し、台帳の必要事項および使用にアクセスすることができる。
チェーンコード内で、スマート・コントラクトは、高水準のアプリケーションおよびプログラミング言語を介して作成することができ、ブロックチェーン内のブロックに書き込まれる。スマート・コントラクトは、ブロックチェーン(例えば、ブロックチェーン・ピアの分散ネットワーク)に登録される、記憶される、または複製される、あるいはその組合せである、実行可能コードを含むことができる。トランザクションは、スマート・コントラクト・コードの実行であり、これは、スマート・コントラクトに関連付けられる条件が満足されたことに応じて実施され得る。スマート・コントラクトの実行は、デジタルなブロックチェーン台帳の状態に対し、信頼される修正をトリガする場合がある。スマート・コントラクトの実行によって生じるブロックチェーン台帳への修正は、1つまたは複数の合意プロトコルによりブロックチェーン・ピアの分散ネットワーク全体に渡って自動的に複製され得る。
スマート・コントラクトは、データをキー−バリュー対のフォーマットで、ブロックチェーンに書き込むことができる。さらには、スマート・コントラクト・コードは、ブロックチェーンに記憶されるバリューを読み出し、アプリケーションの動作においてそれらを使用することができる。スマート・コントラクト・コードは、様々な論理演算の出力をブロックチェーンに書き込むことができる。コードを使用して、仮想マシンまたは他のコンピューティング・プラットフォーム上で、一時的なデータ構造を作成することができる。ブロックチェーンに書き込まれたデータは、パブリックであり得るか、または暗号化されて秘密として維持され得るか、あるいはその両方である。スマート・コントラクトによって使用される/生成される一時的なデータは、与えられた実行環境によってメモリ内に保持され、次いでブロックチェーンに必要なデータが特定されると削除される。
チェーンコードは、スマート・コントラクトのコード解釈を、さらなる特徴とともに、含むことができる。本明細書に記載されるように、チェーンコードは、コンピューティング・ネットワークにデプロイされるプログラム・コードであり得、そこで合意プロセスの間にチェーン・バリデータによって実行および検証される。チェーンコードは、ハッシュを受信し、以前に記憶された特徴抽出器の使用によって作成されたデータ・テンプレートに関連付けられるハッシュをブロックチェーンから取り出す。ハッシュ識別子のハッシュ、および記憶された識別子テンプレート・データから作成されたハッシュが一致する場合、チェーンコードは認可キー(authorization key)をリクエストされたサービスに送信する。チェーンコードはブロックチェーンに暗号法的な詳細に関連付けられるデータを書き込むことができる。図2Aにおいて、一例では、あるブロックチェーン・トランザクションが、エンドースメントまたは他のブロックチェーン・ピア・サービスを要求する潜在的なトランザクションとして特定される(226)。ブロックチェーン・ピア・ノードのうちの1つまたは複数によってトランザクションがエンドースされると、トランザクションはプロキシ・エージェントを介してピアによって維持される台帳に更新することができる(228)。プロキシ・エージェントは、トランザクションをコミットするために必要なエンドースメントを与える担当となっている場合がある。
図2Bは、例示の実施形態によるブロックチェーンのノード同士のトランザクション・フロー200Bの例を図示している。図2Bを参照すると、トランザクション・フローは、アプリケーション・クライアント・ノード260によってエンドーシング・ピア・ノード281に送信されたトランザクション・プロポーザル291を含む場合がある。エンドーシング・ピア281は、クライアント署名を検証し、チェーンコード関数を実行してトランザクションを開始することができる。出力には、チェーンコードの結果、チェーンコードで読み出されたキー/バリューのセット(読み出しセット(read set))バージョンおよびチェーンコードに書き込まれたキー/バリューのセット(書き込みセット(write set))が含まれる場合がある。プロポーザル・レスポンス292は、承認されている場合はエンドースメント署名とともに、クライアント260に送信し戻される。クライアント260は、エンドースメントをトランザクション・ペイロード293にまとめて、それを順序付けサービス・ノード284にブロードキャストする。順序付けサービス・ノード284は、次いで順序付けられたトランザクションをブロックとして、チャネル上のすべてのピア281〜283に配信する。ブロックチェーンへのコミットの前に、それぞれのピア281〜283は、トランザクションを検証することができる。例えば、ピアはエンドースメント・ポリシをチェックして、指定されたピアの正しい割り当てが結果に署名してあり、トランザクション・ペイロード293に対して署名を認証してあることを確認することができる。
再度、図2Bを参照すると、クライアント・ノード260は、リクエストを構築してエンドーサであるピア・ノード281に送信することによって、トランザクション291を開始する。クライアント260は、トランザクション・プロポーザルを生成するために利用可能なAPIを利用するNODE、JAVA(登録商標)、PYTHONなどのサポートされるソフトウェア開発キット(SDK)を活用するアプリケーションを含むことができる。プロポーザルは、データの台帳からの読み出しまたは台帳への書き込み(すなわち、アセットについての新しいキーバリュー対を書き込む)あるいはその両方を行うことができるよう、チェーンコード関数を呼び出すためのリクエストである。SDKは、トランザクション・プロポーザルを適切に設計されたフォーマット(例えば、リモート・プロシージャ・コール(RPC)上のプロトコル・バッファ)にパッケージするためのシム(shim)として機能し、クライアントの暗号法的クレデンシャル情報を得てトランザクション・プロポーザル用の一意な署名を作成することができる。
それに応じて、エンドーシング・ピア・ノード281は、(a)トランザクション・プロポーザルが正しく形成されたこと、(b)過去においてトランザクションがまだサブミットされていないこと(リプレイ攻撃保護)、(c)署名が有効であること、(d)チャネル上で提案された操作を実行するための適切な権限がサブミッタ(例では、クライアント260)に与えられていること、を検証することができる。エンドーシング・ピア・ノード281は、トランザクション・プロポーザルの入力を呼び出されたチェーンコード関数への引数とすることができる。次いで、チェーンコードは、現在の状態データベースに対して実行され、レスポンス値、読み出しセット、および書き込みセットを含むトランザクションの結果を作りだす。しかしながら、この時点では、台帳への更新はなされていない。292において、バリューのセットは、エンドーシング・ピア・ノード281の署名とともに、プロポーザル・レスポンス292としてクライアント260のSDKに戻され、クライアント260はそのアプリケーションが使用するためのペイロードを構文解析する。
それに応じて、クライアント260のアプリケーションは、エンドーシング・ピアの署名を検査/検証して、プロポーザル・レスポンスを比較してプロポーザル・レスポンスが同一かどうかを判断する。チェーンコードが台帳にクエリしただけである場合、アプリケーションは、クエリ・レスポンスを検査し、典型的にはトランザクションを順序付けノード・サービス284にサブミットしない。クライアント・アプリケーションが、台帳を更新するためにトランザクションを順序付けノード・サービス284にトランザクションをサブミットするよう意図する場合、アプリケーションは、指定されたエンドースメント・ポリシがサブミットの前に遂行されているかどうか(すなわち、トランザクションに必要なすべてのピア・ノードが、そのトランザクションをエンドースしたか)を判断する。ここで、クライアントはトランザクションへの複数の関係者のうち1つだけを含むことができる。この場合、それぞれのクライアントは、それら自身のエンドーシング・ノードを有することができ、それぞれのエンドーシング・ノードはトランザクションをエンドースする必要がある。アーキテクチャは、アプリケーションがレスポンスを検査しないよう選択した場合、またはそうではなく、エンドースされなかったトランザクションを転送する場合であっても、やはりエンドースメント・ポリシがピアによって施行され、コミット検証フェーズにおいて維持されるものである。
検査が成功した後、ステップ293において、クライアント260は、エンドースメントをトランザクションにまとめて、トランザクション・プロポーザルおよびトランザクション・メッセージ内のレスポンスを順序付けノード284にブロードキャストする。トランザクションは、読み出し/書き込みセット、エンドーシング・ピアの署名、およびチャネルIDを含む場合がある。順序付けノード284は、その動作を実施するためにトランザクションの内容全体を検査する必要はなく、代わりに順序付けノード284は、単にトランザクションをネットワーク内のすべてのチャネルから受信し、チャネルでそれらを時系列的に順序付け、チャネルごとにトランザクションのブロックを作成することができる。
トランザクションのブロックは、順序付けノード284から、チャネル上のすべてのピア・ノード281〜283に提供される。ブロック内のトランザクション294は、あらゆるエンドースメント・ポリシが遂行されることを保証にするため、および、読み出しセットがトランザクション実行により生成されてから、読み出しセット変数について台帳状態に変更がなかったことを保証にするために、検証される。ブロック内のトランザクションは、有効または無効としてタグ付けされる。さらには、ステップ295において、それぞれのピア・ノード281〜283は、ブロックをチャネルのチェーンに追加し、それぞれ有効なトランザクションごとに書き込みセットが現在の状態データベースにコミットされる。トランザクション(呼び出し)がチェーンに不変に追加されたことをクライアント・アプリケーションに通知するため、ならびにトランザクションが有効化されたかまたは無効化されたかを通知するために、イベントが発生する。
図3は、許可型のブロックチェーンのネットワーク300の例を図示しており、分散型の、非中央集権型のピアツーピアのアーキテクチャを特徴としており、認証局318が、ユーザ・ロールおよび権限を管理している。この例では、ブロックチェーン・ユーザ302は、許可型のブロックチェーンのネットワーク310にトランザクションをサブミットすることができる。この例では、トランザクションは、デプロイ、呼び出し、またはクエリである可能性があり、またSDKを活用するクライアント・サイドのアプリケーションを通じて、直接REST APIを通じて、などで発行することができる。信頼されるビジネス・ネットワークは、監査(例えば、米国株式市場における証券取引委員会)などの規制者システム314にアクセスを与えることができる。一方で、ブロックチェーン・ネットワーク運用者ノード308は、規制者システム314を「監査」として、またブロックチェーン・ユーザ302を「クライアント」としてエンロールするなど、メンバの権限を管理している。監査は、台帳を照会することだけに制限される可能性がある一方で、クライアントは、特定のタイプのチェーンコードをデプロイ、呼び出し、およびクエリするよう認可され得る。
ブロックチェーン開発者システム316は、チェーンコードおよびクライアント・サイドのアプリケーションを書き込む。ブロックチェーン開発者システム316は、チェーンコードを、RESTインターフェースを介して直接ネットワークにデプロイすることができる。従来的なデータ・ソース330からのクレデンシャル情報をチェーンコード内に含めるために、開発者システム316は、データにアクセスするためにアウトオブバンド接続を使用することができる。この例では、ブロックチェーン・ユーザ302は、ピア・ノード312を通じてネットワークに接続する。いずれかのトランザクションに進む前に、ピア・ノード312は、ユーザのエンロールメントおよびトランザクション証明書を認証局318から取り出す。場合によっては、ブロックチェーン・ユーザは、許可型のブロックチェーンのネットワーク310上で取引するために、これらのデジタル証明書を所有しなければならない。一方で、チェーンコードを動かそうと試みるユーザは、彼らのクレデンシャル情報を従来的なデータ・ソース330上で検証するよう要求される場合がある。ユーザの認可を確認するために、チェーンコードは従来的な処理プラットフォーム320を通じて、このデータに対してアウトオブバンド接続を使用することができる。
図4は、例示的な実施形態による、プロキシ・エージェントを介するピア・ノード管理を実施するためのシステム・メッセージング図を図示している。図4を参照すると、例示の構成400は、1つまたは複数のピア410、およびピア410に対応する1つまたは複数のプロキシ420を含む。また、ブロックチェーン430は、ピア410およびプロキシ420によって維持される台帳のうちの1つまたは複数を表すことができる。動作中、エンドースメントを必要とするブロックチェーン・トランザクションがピア410のうちの1つまたは複数によって特定され(412)、トランザクションは、エンドースする1つまたは複数のプロキシに転送される(414)。プロキシは、トランザクションをエンドースするために必要なエンドースメント動作を実施することにより、ピアのように作用することができる(416)。エンドースメントが特定され(418)、ブロックチェーン430にコミットされる(422)。トランザクションは、他の台帳に、それらの個々の台帳へのコミットのために転送される(424)。指定された時間、またはネットワークしきい値条件(例えば、時刻、ネットワーク・パフォーマンス・メトリクスなど)あるいはその両方など、更新ポリシに基づいて、適当な時期に、他のピアによって維持される他の台帳の複製は更新される(426)。
図5Aは、例示的な実施形態による、ブロックチェーン内でのプロキシ・エージェント管理の例示の方法のフロー図を図示している。図5Aを参照すると、方法500Aは、ブロックチェーン・ノードによるエンドースメントを必要とするブロックチェーン・トランザクションを特定すること(512)と、他のブロックチェーン・ノードのうちの1つまたは複数に関連付けられるプロキシ・エージェントから、1つのブロックチェーン・ノードにおいてエンドースメントを受信すること(514)と、必要なエンドースメントが特定されるとブロックチェーン・トランザクションをコミットするよう決定すること(516)と、コミットされたブロックチェーン・トランザクションを、1つのブロックチェーン・ノードによって維持される台帳に記憶すること(518)とを提供することができる。この例では、1つのピア・ノードは、コミットメント合意特徴を実施する主要ピア・ノードである。他のノードは、それらのプロキシを使用して、必要なエンドースメント・リクエストに対するタイムリーなレスポンスを維持する。ノードおよびプロキシのそれぞれは、すべてのトランザクションの集約台帳の一部で有り得る台帳を維持することができる。プロキシ・エージェントは、1つのブロックチェーン・ノードにソフトウェア・モジュールとしてインストールされるか、またはノードに極近接して動作するスタンドアロンのデバイスであってもよい。
方法はまた、台帳の更新を中継する最適な時間を決定するために、ネットワーク・レイテンシが低い期間を決定することを含むことができる。方法は、また、ネットワーク・レイテンシが低い期間の間に、更新をプロキシ・エージェントから他のブロックチェーン・ノードのうちの1つまたは複数に送信して、他のブロックチェーン・ノードに関連付けられる台帳を更新することと、プロキシ・エージェントに関連付けられるプロキシ台帳においてブロックチェーン・トランザクションを記憶することと、他のブロックチェーン・ノードのうちの1つまたは複数に更新を送信した後、プロキシ台帳においてブロックチェーン・トランザクションを削除することと、または代わりに、他のブロックチェーン・ノードのうちの1つまたは複数に更新を送信した後、プロキシ台帳においてブロックチェーン・トランザクションをキャッシュすることとを含むことができる。
図5Bは例示的な実施形態による、ブロックチェーン内でのプロキシ・エージェント管理の別の例示の方法のフロー図を示している。図5Bを参照すると、方法500Bは、ブロックチェーン・ノードによるエンドースメントを必要とするブロックチェーン・トランザクションを特定すること(552)と、1つのブロックチェーン・ノードにおいて他のブロックチェーン・ノードのうちの1つまたは複数に関連付けられるプロキシ・オブジェクトからエンドースメントを受信すること(554)と、ブロックチェーン・トランザクションをコミットするよう決定すること(556)と、コミットされたブロックチェーン・トランザクションを、1つのブロックチェーン・ノードによって維持される台帳に記憶すること(558)と、プロキシ・オブジェクトを介して、台帳のバックアップ複製を、1つまたは複数の他のブロックチェーン・ノードに記憶される台帳の他の複製に転送すること(562)とを提供する。
第1のブロックチェーン・ノードにおいて台帳の複製を維持することに加えて、台帳の複製または台帳への更新あるいはその両方は、ネットワーク・レイテンシが最適なネットワーク使用時間よりも低いと判断される時間の間に、他のブロックチェーン・ノード/ピアに受動的に転送される場合がある。プロキシ・オブジェクトは、最近のトランザクションを他のブロックチェーン・ノードに転送するために存在する。プロキシ・オブジェクトは、初期の台帳更新プロセスの間に作成され定義される場合があり、更新されるトランザクションを、適当な時間に共有するようにトリガすることができる。プロキシ・オブジェクトは、ネットワーク・レイテンシ、時刻、または更新がさらなるネットワーク・レイテンシを招くことなく転送され得ると判断される他の時間、などのしきい値によって定義され得る。
図5Cは、例示的な実施形態による、ブロックチェーン内でのプロキシ・エージェント管理の別の例示の方法のフロー図を図示している。図5Cを参照すると、例は、第1のブロックチェーン・ノードにおいて処理を必要とするブロックチェーン・トランザクションを特定すること(572)と、第1のブロックチェーン・ノードによって、および、第1のブロックチェーン・ノードとコロケートされる1つまたは複数のプロキシ・エージェントによって、ブロックチェーン・トランザクションに関連付けられるスマート・コントラクトを実行することであって、1つまたは複数のプロキシ・エージェントは、ブロックチェーン・ネットワーク上の他のブロックチェーン・ノードにも関連付けられる、実行すること(574)と、ブロックチェーン・トランザクションをコミットするよう決定すること(576)と、コミットされたブロックチェーン・トランザクションを、第1のブロックチェーン・ノードによって維持される台帳に記憶すること(578)とを含む、方法570を提供する。
方法はまた、第1のブロックチェーン・ノードにおいて1つまたは複数のプロキシ・エージェントからエンドースメントを受信することと、他のブロックチェーン・ノードのうちの1つまたは複数によってスマート・コントラクト・ノードを実行することと、他のブロックチェーン・ノードのうちの1つまたは複数によってブロックチェーン・トランザクションをコミットするよう決定することと、コミットされたブロックチェーン・トランザクションを、1つまたは複数の他のブロックチェーン・ノードのそれぞれによって維持される他の台帳に記憶することとを含む。1つまたは複数のプロキシ・エージェントは、第1のブロックチェーン・ノードにインストールすることができるか、または第1のブロックチェーン・ノードの一定の近接内のコロケートされる場所にある。コロケートされる場所は、第1のブロックチェーン・ノードと1つまたは複数のプロキシ・エージェントとの通信についてレイテンシ上限しきい値を超えないように決定されたレイテンシに基づいているか、またはコロケーション場所は、第1のブロックチェーン・ノードと、1つまたは複数のプロキシ・エージェントのために使用される処理プラットフォーム間の物理的な距離との間の地理学的距離に基づいている。方法はまた、1つまたは複数のプロキシ・エージェントから他のブロックチェーン・ノードへ更新を送信して他のブロックチェーン・ノードにおいて台帳の複製を更新することと、1つまたは複数のプロキシ・エージェントに関連付けられるプロキシ台帳においてブロックチェーン・トランザクションを記憶することと、ブロックチェーン・トランザクションを他のブロックチェーン・ノードのうちの1つまたは複数に送信した後、プロキシ台帳においてブロックチェーン・トランザクションをキャッシュすることと、トランザクションを他のブロックチェーン・ノードに送信した後で、、かつ、他のブロックチェーン・ノードからのトランザクションの受領の確認を受信した後、プロキシ台帳においてブロックチェーン・トランザクションを削除することとを提供することができる。他の特徴は、トランザクションを、プロキシ・エージェントによる個々のノードへのその送信に先立って、1つのノードにおいてローカルにコミットできるようにするために、ノードにわたってリソースを分割できるようにすることを提供することができる。キャッシュすることは、キャッシュ用の空間可用性、もしくはキャッシュ用の事前指定のタイム・ホライズンに基づいて、またはキャッシュ用のLRUポリシなどのキャッシュ・ポリシに基づいてなど、1つまたは複数の制約に基づいて実施され得る。プロキシ・エージェントは、ブロックチェーン・ネットワーク上で個々のピアのローカルな代表として機能し、コミットされるトランザクションの個々のピアへの送信に先立って、トランザクションがローカルでコミットできるようにしている。ブロックチェーン・ネットワーク上のそれぞれのノードは、そのノードの台帳を、ブロックチェーン・ネットワーク上の他のピアの台帳の複製されたバージョンとともに含む集約台帳を維持する。集約台帳の一部である台帳のそれぞれは、ソースおよび由来情報の異なるセットを特定する異なるジェネシス・ブロックを有する。
図6Aは、例示的な実施形態による、動作の例示的な方法のうちの1つまたは複数にしたがうブロックチェーン上で様々な動作を実施するように構成される例示的な物理的インフラストラクチャを図示している。図6Aを参照すると、例示的な構成600Aは、ブロックチェーン620およびスマート・コントラクト640を伴う物理的なインフラストラクチャ610を含み、例示的な実施形態のうちのいずれかに含まれる動作ステップ612のいずれかを実行することができる。ステップ/動作612は、1つまたは複数のフロー図または論理図あるいはその両方において説明されるか、または描かれるステップのうちの1つまたは複数を含むことができる。ステップは、システム構成の物理的なインフラストラクチャ610に常駐する1つもしくは複数のスマート・コントラクト640またはコンピュータ・ブロックチェーン620あるいはその両方に書き込まれたか、または読み出された出力または書き込み情報を表すことができる。データは、実行されたスマート・コントラクト640またはブロックチェーン620あるいはその両方から出力され得る。物理的なインフラストラクチャ610は、1つまたは複数のコンピュータ、サーバ、プロセッサ、メモリ、またはワイヤレス通信デバイスあるいはその組合せを含むことができる。
図6Bは、例示的な実施形態による、契約当事者間の例示的なスマート・コントラクト構成およびブロックチェーン上でスマート・コントラクト条項を執行する構成される仲介するサーバを図示している。図6Bを参照すると、構成650Bは、通信セッション、1つまたは複数のユーザ・デバイス652または656あるいはその両方を明示的に特定するスマート・コントラクト640によって進められるアセット移送セッションまたはプロセスまたはプロシージャを表すことができる。スマート・コントラクト実行の実行、動作および結果は、サーバ654によって管理することができる。スマート・コントラクト640の内容は、スマート・コントラクト・トランザクションの関係者であるエンティティ652および656のうちの1つまたは複数によるデジタル署名を必要とする場合がある。スマート・コントラクト実行の結果は、ブロックチェーン・トランザクションとしてブロックチェーンに書き込むことができる。
上記実施形態は、ハードウェア、プロセッサによって実行されるコンピュータ・プログラム、ファームウェア、またはこれらの組合せにおいて実装され得る。コンピュータ・プログラムは、記憶媒体などコンピュータ可読媒体に具体化することができる。例えば、コンピュータ・プログラムは、ランダム・アクセス・メモリ(「RAM」)、フラッシュ・メモリ、読み出し専用メモリ(「ROM」)、消去可能プログラム可能読み出し専用メモリ(「EPROM」)、電気的消去可能プログラム可能読み出し専用メモリ(「EEPROM」)、レジスタ、ハードディスク、リムーバブル・ディスク、コンパクト・ディスク読み出し専用メモリ(「CD−ROM」)、または当分野で既知の記憶媒体のあらゆる他の形態で存在することができる。
例示の記憶媒体は、プロセッサが記憶媒体から情報を読み出すこと、および情報を記憶媒体に書き込むことができるように、プロセッサに結合することができる。代替として、記憶媒体はプロセッサに統合することもできる。プロセッサおよび記憶媒体は、特定用途向け集積回路(「ASIC」)に存在することができる。代替として、プロセッサおよび記憶媒体は、個別部品として存在することができる。例えば、図7は、上述のコンポーネントなどのいずれかを代表することができるか、または上述のコンポーネントなどのいずれかに統合することができる、例のコンピュータ・システム・アーキテクチャ700を図示している。
図7は、本明細書で説明される本出願の実施形態の使用または機能性の範囲に関して、いかなる制限をも示唆するように意図されていない。とにかく、コンピューティング・ノード700は、本明細書で上述の機能性のいずれかを実装または実施あるいはその両方を行うことができる。
コンピューティング・ノード700には、多くの他の汎用または特殊目的の、コンピューティング・システム環境または構成で動作可能である、コンピュータ・システム/サーバ702が存在する。コンピュータ・システム/サーバ702での使用に適切であり得る周知のコンピューティング・システム、環境、または構成あるいはそれらの組合せの例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップのデバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサベースのシステム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、ミニ・コンピュータ・システム、メインフレーム・コンピュータ・システム、および上記システムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが挙げられるがそれに限定しない。
コンピュータ・システム/サーバ702は、コンピュータ・システムによって実行されているプログラム・モジュールなどのコンピュータ・システム−実行可能命令の一般的なコンテキストで説明され得る。一般的に、プログラム・モジュールは、特定のタスクを実施するか、または特定の抽象的なデータ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含むことができる。コンピュータ・システム/サーバ702、タスクが通信ネットワークを通じてリンクされたリモート処理デバイスによって実施される分散クラウド・コンピューティング環境において実践することができる。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ記憶デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム記憶媒体に配置することができる。
図7において示されるように、クラウド・コンピューティング・ノード700におけるコンピュータ・システム/サーバ702が汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ702のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット704、システム・メモリ706、および、システム・メモリ706を含む様々なシステム・コンポーネントをプロセッサ704に連結するバスを含むことができるが、それに限定されない。
バスは、バス構造のいくつかのタイプのいずれかのうちの1つまたは複数を表しており、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサまたは様々なバス・アーキテクチャの任意のものを使用するローカル・バスを含む。限定ではなく例として、そのようなアーキテクチャはインダストリ・スタンダード・アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、およびPeripheral Component Interconnect(PCI)バスを含む。
コンピュータ・システム/サーバ702は、典型的には様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ702によってアクセス可能なあらゆる利用可能な媒体であることができ、揮発性および非揮発性の媒体、ならびにリムーバブルおよび非リムーバブルの媒体の両方を含む。一実施形態において、システム・メモリ706は、他の図面のフロー図を実装する。システム・メモリ706は、ランダム・−アクセス・メモリ(RAM)710またはキャッシュ・メモリ712あるいはその両方などの揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ702は、他のリムーバブル/非リムーバブルの、揮発性/非揮発性のコンピュータ・システム記憶媒体をさらに含むことができる。単なる例として、非リムーバブル、非揮発性の磁気媒体(典型的には「ハード・ドライブ」と称され、図示せず)からの読み出しおよびそれへの書き込みのためのストレージ・システム714を設けることができる。図示していないが、リムーバブル、非揮発性の磁気ディスク(例えば、「フロッピー(登録商標)・ディスク」)からの読み出しおよびそれへの書き込みのための磁気ディスク・ドライブ、CD−ROM、DVD−ROMまたは他の光学媒体などのリムーバブル、非揮発性の光学ディスクからの読み出しまたはそれへの書き込みのための光学ディスク・ドライブを設けることができる。そのような事例において、それぞれは1つまたは複数のデータ媒体インターフェースによってバスへ接続することができる。以下でさらに描写され説明されるように、メモリ706は、本出願の様々な実施形態の機能を実行するように構成されるプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
プログラム・モジュール718のセット(少なくとも1つ)を有するプログラム/ユーティリティ716は、限定ではなく例として、メモリ706に記憶することができ、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データも同様である。オペレーティング・システムのそれぞれ、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データまたはそのいくつかの組合せは、ネットワーキング環境の実装を含むことができる。プログラム・モジュール718は、一般的に本明細書において説明されるような本出願の様々な実施形態の、機能または方法あるいはその両方を実行する。
当業者であれば理解されるように、本出願の態様は、システム、方法、またはコンピュータ・プログラム製品として具体化することができる。したがって、本出願の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または本明細書においてすべて一般的に「回路」、「モジュール」または「システム」と称され得るソフトウェアとハードウェアの態様を組み合わせた実施形態の形態を取ることができる。さらには、本出願の態様は、コンピュータ可読プログラム・コードを具体化して有する1つまたは複数のコンピュータ可読媒体において具体化されるコンピュータ・プログラム製品の形態を取ることができる。
コンピュータ・システム/サーバ702は、また、キーボード、ポインティング・デバイス、ディスプレイ722、などの1つもしくは複数の外部デバイス720、ユーザがコンピュータ・システム/サーバ702と対話できるようにする1つもしくは複数のデバイス、またはコンピュータ・システム/サーバ702が1つもしくは複数の他のコンピューティング・デバイスと通信できるようにするあらゆるデバイス(例えば、ネットワーク・カード、モデムなど)あるいはその組合せと通信することができる。そのような通信はI/Oインターフェース724を介して行うことができる。さらになお、コンピュータ・システム/サーバ702は、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、またはネットワーク・アダプタ726を介するパブリック・ネットワーク(例えば、インターネット)あるいはその組合せなどの1つまたは複数のネットワークと通信することができる。描写されるように、ネットワーク・アダプタ726は、バスを介してコンピュータ・システム/サーバ702の他のコンポーネントと通信する。図示していないが、他のハードウェアまたはソフトウェアあるいはその両方のコンポーネントが、コンピュータ・システム/サーバ702と併せて使用することができることが理解されるべきである。例として、マイクロコード、デバイス・ドライバ、冗長化処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、それに限定されない。
システム、方法、および非一過性のコンピュータ可読媒体のうちの少なくとも1つの例の実施形態が添付の図面に図示され、また先の詳細な説明において説明されてきたが、本出願は、開示される実施形態に限定されず、以下の特許請求の範囲によって説明され定義されるように、多数の再構成、修正、および置換が可能であることを理解されたい。例えば、様々な図面のシステムの機能は、本明細書において説明されるモジュールまたはコンポーネントのうちの1つまたは複数によって実施することができるか、または分散アーキテクチャにおいて実施される場合があり、送信機、受信機またはその両方の対を含む場合もある。例えば、個々のモジュールによって実施される機能性のすべてまたは一部は、これらのモジュールのうちの1つまたは複数によって実施することができる。さらには、本明細書において説明される機能性は、様々な時間に、また様々なイベントに関連して、モジュールまたはコンポーネントに対して内部的にまたは外部的に実施することができる。さらに、様々なモジュール間で送信される情報は、データ・ネットワーク、インターネット、音声ネットワーク、インターネット・プロトコル・ネットワーク、ワイヤレス・デバイス、ワイヤード・デバイス、または複数のプロトコル、あるいはその組合せのうちの少なくとも1つを介してモジュール間で送信することができる。さらに、モジュールのいずれかによって送信または受信されるメッセージは、直接的に、または他のモジュールのうちの1つもしくは複数を介して、あるいはその両方で、送信または受信することができる。
当業者であれば、「システム」は、パーソナル・コンピュータ、サーバ、コンソール、携帯情報端末(PDA)、携帯電話、タブレット・コンピューティング・デバイス、スマートフォン、またはあらゆる他の適切なコンピューティング・デバイス、またはデバイスの組合せとして具体化され得ることを理解できるであろう。上述の機能を「システム」によって実施されるとして提示することは、いかなる方法でも本出願の範囲を限定するよう意図しておらず、多くの実施形態のうちの一例を与えるよう意図されている。実際、本明細書において開示される方法、システム、および装置は、コンピューティング技術に一貫して局所化および分散された形態で実施される場合がある。
本明細書において説明されるシステム特徴のうちの一部は、その実装形態の独立性をより強調するためにモジュールとして提示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路またはゲート・アレイ、論理チップなどの市販の半導体、トランジスタ、または他の個別部品を備えるハードウェア回路として実装される場合がある。モジュールはまた、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、グラフィック・プロセシング・ユニットなどのプログラマブルなハードウェア・デバイスに実装される場合もある。
モジュールはまた、様々なタイプのプロセッサによる実行のために、少なくとも部分的にソフトウェアで実装することができる。実行可能なコードの特定されたユニットは、例えば、1つまたは複数の物理的または論理的な、例えば、オブジェクト、プロシージャ、または関数として組織化することができる、コンピュータ命令のブロックを含む場合がある。特定されるモジュールの実行可能物は、物理的に一緒に配置される必要はないが、論理的に一緒に結合されるとモジュールを構成してモジュールの明記される目的を達成する異なる場所に記憶される別の命令を含むことができる。さらには、モジュールは、例えば、ハード・ディスク・ドライブ、フラッシュ・デバイス、ランダム・アクセス・メモリ(RAM)、テープ、またはデータを記憶するために使用されるあらゆる他のそのような媒体であり得るコンピュータ可読媒体に記憶される場合がある。
実際、実行可能なコードのモジュールは、単一の命令、または複数の命令であることができ、様々なプログラム間で、いくつかのメモリ・デバイスに渡って、いくつかの異なるコード・セグメントに分散されることさえあり得る。同様に、動作可能なデータが、本明細書においてモジュール内に特定されて図示され、あらゆる適切なタイプのデータ構造においてあらゆる適切な形態で具体化され、組織化される可能性がある。動作可能なデータは、単一のデータ・セットとして収集することができるか、または様々なストレージ・デバイス上を含む異なる場所に分散されてもよく、また少なくとも部分的に、システムまたはネットワーク上の単なる電子的な信号として存在する場合がある。
本明細書の図面において一般的に説明され図示される本出願のコンポーネントは、多様な構成で配置構成され、設計される可能性があることが容易に理解されよう。したがって、実施形態の詳細な説明は、特許請求される出願の範囲を限定するよう意図されておらず、本出願の選択された実施形態の単なる代表である。
当業者であれば、上記が異なる順のステップで、または開示されるのとは異なる構成のハードウェア要素で、あるいはその両方で、実践され得ることを容易に理解するであろう。したがって、本出願はこれらの好ましい実施形態に基づいて説明されてきたが、特定の修正形態、変形形態、および代替構築物が明らかであることは、当業者にとって明らかとなろう。
本出願の好ましい実施形態が説明されてきたが、説明された実施形態は例示に過ぎず、本出願の範囲は、添付の特許請求の範囲によってのみ、それに対する等価物および修正形態の全範囲(例えば、プロトコル、ハードウェア・デバイス、ソフトウェア・プラットフォームなど)を考慮して、定義されることを理解されたい。

Claims (20)

  1. 方法であって、
    第1のブロックチェーン・ノードにおいて、処理を必要とするブロックチェーン・トランザクションを特定することと、
    前記第1のブロックチェーン・ノードによって、および、前記第1のブロックチェーン・ノードとコロケートされる1つまたは複数のプロキシ・エージェントによって、前記ブロックチェーン・トランザクションに関連付けられるスマート・コントラクトを実行することであって、前記1つまたは複数のプロキシ・エージェントは、ブロックチェーン・ネットワーク上の他のブロックチェーン・ノードにも関連付けられる、前記実行することと、
    前記ブロックチェーン・トランザクションをコミットするよう決定することと、
    前記ブロックチェーン・トランザクションを、前記第1のブロックチェーン・ノードによって維持される台帳に記憶することと
    を含む、方法。
  2. 前記第1のブロックチェーン・ノードにおいて、前記1つまたは複数のプロキシ・エージェントからエンドースメントを受信すること
    を含む、請求項1に記載の方法。
  3. 前記他のブロックチェーン・ノードのうちの1つまたは複数によって前記スマート・コントラクト・ノードを実行することと、
    前記1つまたは複数の他のブロックチェーン・ノードによって前記ブロックチェーン・トランザクションをコミットするよう決定することと、
    前記コミットされたブロックチェーン・トランザクションを、前記1つまたは複数の他のブロックチェーン・ノードのそれぞれによって維持される他の台帳に記憶することと
    をさらに含む、請求項1に記載の方法。
  4. 前記1つまたは複数のプロキシ・エージェントが、前記第1のブロックチェーン・ノードにインストールされるか、または、前記第1のブロックチェーン・ノードの一定の近接内のコロケートされる場所にある、請求項1に記載の方法。
  5. 前記コロケートされる場所が、前記第1のブロックチェーン・ノードと前記1つまたは複数のプロキシ・エージェントとの通信について、レイテンシの上限しきい値を超えない、決定されたレイテンシに基づいているか、または、前記コロケートされる場所が、前記第1のブロックチェーン・ノードと、前記1つまたは複数のプロキシ・エージェントのために使用される処理プラットフォームへの物理的な距離との間の地理学的距離に基づいている、請求項4に記載の方法。
  6. 前記1つまたは複数のプロキシ・エージェントから前記他のブロックチェーン・ノードへ更新を送信して前記他のブロックチェーン・ノードにおいて他の台帳の複製を更新すること
    をさらに含む、請求項1に記載の方法。
  7. 前記1つまたは複数のプロキシ・エージェントに関連付けられるプロキシ台帳において前記ブロックチェーン・トランザクションを記憶すること
    をさらに含む、請求項1に記載の方法。
  8. 前記ブロックチェーン・トランザクションを前記1つまたは複数の他のブロックチェーン・ノードに送信した後、前記プロキシ台帳において前記ブロックチェーン・トランザクションをキャッシュすることと、
    前記ブロックチェーン・トランザクションを前記他のブロックチェーン・ノードに送信した後で、かつ、前記他のブロックチェーン・ノードからの前記ブロックチェーン・トランザクションの受領の確認を受信した後、前記プロキシ台帳において前記ブロックチェーン・トランザクションを削除することと
    をさらに含む、請求項7に記載の方法。
  9. システムであって、
    第1のブロックチェーン・ノードであって、
    コミットを必要とするブロックチェーン・トランザクションを特定することと、
    前記第1のブロックチェーン・ノードによって前記ブロックチェーン・トランザクションに関連付けられるスマート・コントラクトを実行することとを行うように構成される、前記第1のブロックチェーン・ノードと、
    前記第1のブロックチェーン・ノードとコロケートされる1つまたは複数のプロキシ・エージェントであって、前記1つまたは複数のプロキシ・エージェントは、ブロックチェーン・ネットワーク上の他のブロックチェーン・ノードにも関連付けられる、前記1つまたは複数のプロキシ・エージェントと
    を含み、前記第1のブロックチェーン・ノードは、
    前記ブロックチェーン・トランザクションをコミットすることと、
    前記ブロックチェーン・トランザクションを、前記第1のブロックチェーン・ノードによって維持される台帳に記憶することと
    を行うように構成される、システム。
  10. 前記第1のブロックチェーン・ノードが、前記1つまたは複数のプロキシ・エージェントからエンドースメントを受信するようにさらに構成される、請求項9に記載のシステム。
  11. 前記1つまたは複数の他のブロックチェーン・ノードが、前記ブロックチェーン・トランザクションを前記1つまたは複数の他のブロックチェーン・ノードへコミットする決定により、前記スマート・コントラクト・ノードを実行することと、前記コミットされたブロックチェーン・トランザクションを前記1つまたは複数の他のブロックチェーン・ノードのそれぞれによって維持される他の台帳に記憶することとを行うように構成される、請求項9に記載のシステム。
  12. 前記1つまたは複数のプロキシ・エージェントが、前記第1のブロックチェーン・ノードにインストールされるか、または、前記第1のブロックチェーン・ノードの一定の近接内のコロケートされる場所にある、請求項9に記載のシステム。
  13. 前記コロケートされる場所が、前記第1のブロックチェーン・ノードと前記1つまたは複数のプロキシ・エージェントとの通信についてレイテンシの上限しきい値を超えない、決定されたレイテンシに基づいているか、または前記コロケートされる場所が、前記第1のブロックチェーン・ノードと、前記1つまたは複数のプロキシ・エージェントのために使用される処理プラットフォームへの物理的な距離との間の地理学的距離に基づいている、請求項12に記載のシステム。
  14. 前記1つまたは複数のプロキシ・エージェントが、前記他のブロックチェーン・ノードにおいて前記他の台帳の複製を更新するために前記他のブロックチェーン・ノードへ更新を送信するように構成される、請求項9に記載のシステム。
  15. 前記1つまたは複数のプロキシ・エージェントが、前記1つまたは複数のプロキシ・エージェントに関連付けられるプロキシ台帳において前記ブロックチェーン・トランザクションを記憶することと、前記ブロックチェーン・トランザクションが前記1つまたは複数の他のブロックチェーン・ノードに送信された後、前記プロキシ台帳において前記ブロックチェーン・トランザクションをキャッシュすることと、前記ブロックチェーン・トランザクションが前記他のブロックチェーン・ノードに送信された後で、かつ、前記他のブロックチェーン・ノードからの前記ブロックチェーン・トランザクションの受領の確認が受信された後、前記プロキシ台帳において前記ブロックチェーン・トランザクションを削除することとを行うように構成される、請求項9に記載のシステム。
  16. 非一過性のコンピュータ可読記憶媒体であって、実行されるとプロセッサに
    第1のブロックチェーン・ノードにおいて、処理を必要とするブロックチェーン・トランザクションを特定することと、
    前記第1のブロックチェーン・ノードによって、および、前記第1のブロックチェーン・ノードとコロケートされる1つまたは複数のプロキシ・エージェントによって、前記ブロックチェーン・トランザクションに関連付けられるスマート・コントラクトを実行することであって、前記1つまたは複数のプロキシ・エージェントは、ブロックチェーン・ネットワーク上の他のブロックチェーン・ノードにも関連付けられる、前記実行することと、
    前記ブロックチェーン・トランザクションをコミットするよう決定することと、
    前記ブロックチェーン・トランザクションを、前記第1のブロックチェーン・ノードによって維持される台帳に記憶することと
    を実施させる命令を記憶するように構成される、非一過性のコンピュータ可読記憶媒体。
  17. 前記プロセッサが、
    前記第1のブロックチェーン・ノードにおいて、前記1つまたは複数のプロキシ・エージェントからエンドースメントを受信することと、
    前記他のブロックチェーン・ノードのうちの1つまたは複数によって前記スマート・コントラクト・ノードを実行することと、
    前記1つまたは複数の他のブロックチェーン・ノードによって前記ブロックチェーン・トランザクションをコミットするよう決定することと、
    前記コミットされたブロックチェーン・トランザクションを前記1つまたは複数の他のブロックチェーン・ノードのそれぞれによって維持される他の台帳に記憶することと
    を実施するようにさらに構成される、請求項16に記載の非一過性のコンピュータ可読記憶媒体。
  18. 前記1つまたは複数のプロキシ・エージェントが、前記第1のブロックチェーン・ノードにインストールされるか、または前記第1のブロックチェーン・ノードの一定の近接内のコロケートされる場所にあり、前記コロケートされる場所が、前記第1のブロックチェーン・ノードと前記1つまたは複数のプロキシ・エージェントとの通信についてレイテンシの上限しきい値を超えない、決定されたレイテンシに基づいているか、または前記コロケーション場所が、前記第1のブロックチェーン・ノードと、前記1つまたは複数のプロキシ・エージェントのために使用される処理プラットフォームへの物理的な距離との間の地理学的距離に基づいている、請求項16に記載の非一過性のコンピュータ可読記憶媒体。
  19. 前記プロセッサが、
    前記1つまたは複数のプロキシ・エージェントから前記他のブロックチェーン・ノードへ更新を送信して前記他のブロックチェーン・ノードにおいて前記他の台帳の複製を更新することと、
    前記1つまたは複数のプロキシ・エージェントに関連付けられるプロキシ台帳において前記ブロックチェーン・トランザクションを記憶することと
    を実施するようにさらに構成される、請求項16に記載の非一過性のコンピュータ可読記憶媒体。
  20. 前記プロセッサが、
    前記ブロックチェーン・トランザクションを前記1つまたは複数の他のブロックチェーン・ノードに送信した後、前記プロキシ台帳において前記ブロックチェーン・トランザクションをキャッシュすることと、
    前記ブロックチェーン・トランザクションを前記他のブロックチェーン・ノードに送信した後で、かつ、前記他のブロックチェーン・ノードからの前記ブロックチェーン・トランザクションの受領の確認を受信した後、前記プロキシ台帳において前記ブロックチェーン・トランザクションを削除することと
    を実施するようにさらに構成される、請求項19に記載の非一過性のコンピュータ可読記憶媒体。
JP2020562132A 2018-06-06 2019-05-28 ブロックチェーン上のプロキシ・エージェントおよびプロキシ台帳 Active JP7304117B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/001,218 US11323530B2 (en) 2018-06-06 2018-06-06 Proxy agents and proxy ledgers on a blockchain
US16/001,218 2018-06-06
PCT/EP2019/063875 WO2019233833A1 (en) 2018-06-06 2019-05-28 Proxy agents and proxy ledgers on a blockchain

Publications (2)

Publication Number Publication Date
JP2021526249A true JP2021526249A (ja) 2021-09-30
JP7304117B2 JP7304117B2 (ja) 2023-07-06

Family

ID=66677142

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020562132A Active JP7304117B2 (ja) 2018-06-06 2019-05-28 ブロックチェーン上のプロキシ・エージェントおよびプロキシ台帳

Country Status (5)

Country Link
US (1) US11323530B2 (ja)
EP (1) EP3804281A1 (ja)
JP (1) JP7304117B2 (ja)
CN (1) CN112106336B (ja)
WO (1) WO2019233833A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11323530B2 (en) * 2018-06-06 2022-05-03 International Business Machines Corporation Proxy agents and proxy ledgers on a 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
CN109145053B (zh) * 2018-08-01 2021-03-23 创新先进技术有限公司 数据处理方法和装置、客户端、服务器
US11146560B1 (en) * 2018-08-30 2021-10-12 Amazon Technologies, Inc. Distributed governance of computing resources
CN109299336B (zh) * 2018-09-30 2022-07-01 腾讯科技(深圳)有限公司 数据备份方法、装置、存储介质及计算设备
US10942916B2 (en) * 2018-11-03 2021-03-09 International Business Machines Corporation Fraud prevention via database referencing
US11188384B2 (en) * 2018-11-07 2021-11-30 Ebay Inc. Resource trust model for securing component state data for a resource using blockchains
US20200153605A1 (en) * 2018-11-13 2020-05-14 Accelor Ltd. Systems and methods for pre-executing transaction validation for blockchain applications
JP2022511084A (ja) * 2018-12-04 2022-01-28 ゼットイーユー・テクノロジーズ・インコーポレイテッド ブロックチェーン技術を用いてデータベースアプリケーションを増強するためのシステムおよび方法
US10979213B2 (en) 2018-12-19 2021-04-13 Verizon Media Inc. Blockchain compression using summary and padding blocks
US11032064B2 (en) 2018-12-19 2021-06-08 Verizon Media Inc. Blockchain ledger growth management
US10992458B2 (en) 2019-01-16 2021-04-27 EMC IP Holding Company LLC Blockchain technology for data integrity regulation and proof of existence in data protection systems
US11836259B2 (en) * 2019-01-16 2023-12-05 EMC IP Holding Company LLC Blockchain technology for regulatory compliance of data management systems
US10992459B2 (en) * 2019-08-30 2021-04-27 Advanced New Technologies Co., Ltd. Updating a state Merkle tree
WO2019233500A2 (en) * 2019-09-12 2019-12-12 Alibaba Group Holding Limited Log-structured storage systems
US11874804B2 (en) * 2020-02-05 2024-01-16 International Business Machines Corporation Load balancing based blockchain transaction submission
CN111371905B (zh) * 2020-03-27 2023-08-01 中国人民解放军国防科技大学 一种基于云计算的区块链分层共识证明系统与方法
CN111656386B (zh) 2020-04-22 2022-05-17 支付宝(杭州)信息技术有限公司 管理账本系统中的交易请求
WO2020143855A2 (en) 2020-04-22 2020-07-16 Alipay (Hangzhou) Information Technology Co., Ltd. Managing transaction requests in ledger systems
EP3834157B1 (en) * 2020-04-22 2023-09-13 Alipay (Hangzhou) Information Technology Co., Ltd. Managing transaction requests in ledger systems
US11539787B2 (en) 2020-04-30 2022-12-27 T-Mobile Usa, Inc. 5G enabled massively distributed on-demand personal cloud system and method
US11418587B2 (en) 2020-04-30 2022-08-16 T-Mobile Usa, Inc. 5G on-demand dynamically instantiated blockchain for highly distributed peer-to-peer consumer cloud
CN111583047A (zh) * 2020-05-09 2020-08-25 中国银行股份有限公司 基于区块链的养老金托管业务系统及方法
US11556517B2 (en) * 2020-05-17 2023-01-17 International Business Machines Corporation Blockchain maintenance
WO2020169122A2 (en) 2020-06-08 2020-08-27 Alipay Labs (singapore) Pte. Ltd. Blockchain-based import custom clearance data processing
CN111936995A (zh) 2020-06-08 2020-11-13 支付宝实验室(新加坡)有限公司 海关清关数据的分布式存储
EP3841491B1 (en) 2020-06-08 2023-08-02 Alipay Labs (Singapore) Pte. Ltd. Blockchain-based smart contract pools
SG11202102366SA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd User management of blockchain-based custom clearance service platform
CN111936994A (zh) 2020-06-08 2020-11-13 支付宝实验室(新加坡)有限公司 用于海关清关的基于区块链的文档注册
CN111989707B (zh) 2020-06-08 2024-04-16 支付宝实验室(新加坡)有限公司 管理基于区块链的海关清关服务的用户权限
CN111562969B (zh) * 2020-07-15 2020-10-20 百度在线网络技术(北京)有限公司 一种区块链的智能合约实现方法、装置、设备和介质
US20220188295A1 (en) * 2020-12-14 2022-06-16 International Business Machines Corporation Dynamic management of blockchain resources
CN114764709A (zh) * 2021-01-14 2022-07-19 富士通株式会社 信息处理装置和信息处理方法
CN112712420B (zh) * 2021-03-29 2021-06-18 国网电子商务有限公司 一种基于区块链的绿色证书交易系统
CN113141377B (zh) * 2021-05-14 2023-05-02 南京慧链和信数字信息科技研究院有限公司 一种基于区块链的数据安全管理系统
WO2023063694A1 (ko) * 2021-10-12 2023-04-20 삼성전자 주식회사 블록체인 네트워크에서 부분 원장을 가진 전자 장치 및 그의 동작 방법
CN114900837B (zh) * 2022-04-06 2023-12-05 中国电信股份有限公司 网络处理方法、装置、系统、设备及介质
CN116975145A (zh) * 2022-11-15 2023-10-31 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170126802A1 (en) * 2015-10-29 2017-05-04 Dropbox, Inc. Peer-to-peer synchronization protocol for multi-premises hosting of digital content items
US20180020324A1 (en) * 2016-07-18 2018-01-18 Here Global B.V. Device location verification for updated map data
US20180219676A1 (en) * 2017-01-27 2018-08-02 Walmart Apollo, Llc Managing smart appliances using blockchain technology

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010044787A1 (en) * 2000-01-13 2001-11-22 Gil Shwartz Secure private agent for electronic transactions
US10984913B2 (en) * 2012-04-27 2021-04-20 Netspective Communications Llc Blockchain system for natural language processing
JP2015138395A (ja) * 2014-01-22 2015-07-30 三菱重工業株式会社 メンテナンス管理装置、メンテナンス管理方法及びプログラム
US9967334B2 (en) * 2015-03-02 2018-05-08 Dell Products Lp Computing device configuration and management using a secure decentralized transaction ledger
SG11201708000PA (en) * 2015-03-31 2017-10-30 Nasdaq Inc Systems and methods of blockchain transaction recordation
US20170228731A1 (en) 2016-02-09 2017-08-10 Fmr Llc Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems
EP3362965A4 (en) * 2015-10-13 2019-08-07 Transactive Grid Inc. USING A DISTRIBUTED CONSENSUS CONTROL BASED ON A BLOCK CHAIN
EP4375908A1 (en) * 2015-10-17 2024-05-29 Banqu, Inc. Blockchain-based identity and transaction platform
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
US10230756B2 (en) * 2015-11-25 2019-03-12 International Business Machines Corporation Resisting replay attacks efficiently in a permissioned and privacy-preserving blockchain network
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
SG11201804538UA (en) * 2015-11-30 2018-06-28 Shapeshift Ag Systems and methods for improving security in blockchain-asset exchange
US10013573B2 (en) * 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
US20170178127A1 (en) * 2015-12-18 2017-06-22 International Business Machines Corporation Proxy system mediated legacy transactions using multi-tenant transaction database
US10713654B2 (en) * 2016-01-21 2020-07-14 International Business Machines Corporation Enterprise blockchains and transactional systems
US10366388B2 (en) 2016-04-13 2019-07-30 Tyco Fire & Security Gmbh Method and apparatus for information management
US10022613B2 (en) * 2016-05-02 2018-07-17 Bao Tran Smart device
US10198325B2 (en) * 2016-05-24 2019-02-05 Mastercard International Incorporated Method and system for desynchronization recovery for permissioned blockchains using bloom filters
US20170344988A1 (en) * 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
US10108954B2 (en) * 2016-06-24 2018-10-23 PokitDok, Inc. System and method for cryptographically verified data driven contracts
WO2018006072A1 (en) * 2016-06-30 2018-01-04 Clause, Inc. Systems and method for forming, storing, managing,and executing contracts
US10361869B2 (en) * 2016-08-23 2019-07-23 International Business Machines Corporation Event ledger
US10360191B2 (en) * 2016-10-07 2019-07-23 International Business Machines Corporation Establishing overlay trust consensus for blockchain trust validation system
US10657526B2 (en) * 2016-10-28 2020-05-19 International Business Machines Corporation System and method to dynamically setup a private sub-blockchain based on agility of transaction processing
US20180123779A1 (en) * 2016-11-01 2018-05-03 Jiangang Zhang Flexible Blockchain Smart-Contract Deployment
JP6533771B2 (ja) * 2016-11-15 2019-06-19 富士通株式会社 通信方法、装置、及びプログラム
US10387684B2 (en) * 2016-12-09 2019-08-20 International Business Machines Corporation Interlocked blockchains to increase blockchain security
CN106603698A (zh) * 2016-12-28 2017-04-26 北京果仁宝科技有限公司 基于dpos的区块链共识方法和节点
US10438170B2 (en) * 2017-01-05 2019-10-08 International Business Machines Corporation Blockchain for program code credit and programmer contribution in a collective
TWI614712B (zh) * 2017-01-20 2018-02-11 現代財富控股有限公司 智能合約的事件連結系統及其方法
CN108323232B (zh) * 2017-05-16 2020-01-24 北京大学深圳研究生院 一种多层级区块链系统之间索引与链拓扑结构的维护方法
CN107402824B (zh) * 2017-05-31 2020-06-02 创新先进技术有限公司 一种数据处理的方法及装置
CN107507005B (zh) * 2017-08-01 2020-09-11 众安信息技术服务有限公司 一种基于联盟链的链外数据访问方法和系统
CN107679857B (zh) * 2017-10-10 2021-04-27 马晶瑶 区块链的跨链交易方法和存储介质
AU2017101413A4 (en) * 2017-10-23 2017-11-23 Bloxian International Pty Ltd Method and system for streamlining property buying journey using blockchain and smart contracts.
US11057225B2 (en) * 2017-12-07 2021-07-06 International Business Machines Corporation Enforcing compute equity models in distributed blockchain
US20190251199A1 (en) * 2018-02-14 2019-08-15 Ivan Klianev Transactions Across Blockchain Networks
US10250381B1 (en) * 2018-02-22 2019-04-02 Capital One Services, Llc Content validation using blockchain
US11323530B2 (en) * 2018-06-06 2022-05-03 International Business Machines Corporation Proxy agents and proxy ledgers on a blockchain
US11196551B2 (en) * 2018-06-27 2021-12-07 International Business Machines Corporation Automated task management on a blockchain based on predictive and analytical analysis
US10979452B2 (en) * 2018-09-21 2021-04-13 International Business Machines Corporation Blockchain-based malware containment in a network resource
US20200382309A1 (en) * 2019-05-29 2020-12-03 International Business Machines Corporation Approximate hash verification for blockchain
WO2020252479A1 (en) * 2019-06-13 2020-12-17 Gutierrez Sheris Luis Eduardo System and method using a fitness-gradient blockchain consensus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170126802A1 (en) * 2015-10-29 2017-05-04 Dropbox, Inc. Peer-to-peer synchronization protocol for multi-premises hosting of digital content items
US20180020324A1 (en) * 2016-07-18 2018-01-18 Here Global B.V. Device location verification for updated map data
US20180219676A1 (en) * 2017-01-27 2018-08-02 Walmart Apollo, Llc Managing smart appliances using blockchain technology

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ELLI ANDROULAKI, HYPERLEDGER FABRIC: A DISTRIBUTED OPERATING SYSTEM FOR PERMISSIONED BLOCKCHAINS, JPN6022049097, 30 January 2018 (2018-01-30), ISSN: 0004926159 *

Also Published As

Publication number Publication date
CN112106336A (zh) 2020-12-18
JP7304117B2 (ja) 2023-07-06
WO2019233833A1 (en) 2019-12-12
US11323530B2 (en) 2022-05-03
CN112106336B (zh) 2023-06-27
US20190379754A1 (en) 2019-12-12
EP3804281A1 (en) 2021-04-14

Similar Documents

Publication Publication Date Title
JP7304117B2 (ja) ブロックチェーン上のプロキシ・エージェントおよびプロキシ台帳
US11178151B2 (en) Decentralized database identity management system
US10917234B2 (en) Blockchain for on-chain management of off-chain storage
JP7228322B2 (ja) ブロックチェーン・ネットワークにおける自動コミット・トランザクション管理
US10997150B2 (en) Configuration drift prevention across multiple systems using blockchain
US11232221B2 (en) Right to be forgotten on an immutable ledger
JP2021525931A (ja) ブロックチェーンのための効率的な検証
US11689616B2 (en) Optimization of delivery of blocks
US11360946B2 (en) Tracking data transfers
US20190354989A1 (en) Automated data projection for smart contract groups on a blockchain
US11568402B2 (en) Decentralized out-of-band accelerated blockchain transaction processing
US20210352077A1 (en) Low trust privileged access management
US11240003B2 (en) Consent-based data management
US11177938B2 (en) Database composite endorsement
US11138188B2 (en) Performance optimization
US20220004647A1 (en) Blockchain implementation to securely store information off-chain
US20200374340A1 (en) Optimization of delivery of blocks
WO2022058183A1 (en) Integrating device identity into a permissioning framework of a blockchain
US11082215B2 (en) Immutable broadcasting queues
US11196543B2 (en) Minimum evidence calculation in blockchain transactions
US11876903B2 (en) Decentralized broadcast encryption and key generation facility

Legal Events

Date Code Title Description
RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20201105

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230222

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20230606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230622

R150 Certificate of patent or registration of utility model

Ref document number: 7304117

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150