JP7250568B2 - ブロックチェーン・ノード、ブロックチェーン・ノードの方法、およびブロックチェーン・ノードのコンピュータ・プログラム - Google Patents

ブロックチェーン・ノード、ブロックチェーン・ノードの方法、およびブロックチェーン・ノードのコンピュータ・プログラム Download PDF

Info

Publication number
JP7250568B2
JP7250568B2 JP2019039271A JP2019039271A JP7250568B2 JP 7250568 B2 JP7250568 B2 JP 7250568B2 JP 2019039271 A JP2019039271 A JP 2019039271A JP 2019039271 A JP2019039271 A JP 2019039271A JP 7250568 B2 JP7250568 B2 JP 7250568B2
Authority
JP
Japan
Prior art keywords
transaction
blockchain
endorsement
distributed ledger
node
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
JP2019039271A
Other languages
English (en)
Other versions
JP2019160312A (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 JP2019160312A publication Critical patent/JP2019160312A/ja
Application granted granted Critical
Publication of JP7250568B2 publication Critical patent/JP7250568B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/182Distributed file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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 Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本出願は一般に、ブロックチェーン・ネットワーク・システムなどの分散型台帳に関し、より詳細には、トランザクションが有効であるかどうか、およびブロックチェーン・ネットワークの不変台帳にコミットされ得るかどうかを判断するときのカスタマイズされた裏書ロジックを実装できるブロックチェーン・ネットワークのブロックチェーン・ノードに関する。
分散型台帳は、他のブロックに関する暗号学的ハッシュを格納することなどの暗号化技法を典型的に適用する、レコードの継続的に成長するリストである。ブロックチェーンは、分散型台帳の1つの共通インスタンスである。金融取引に使用されることが多いが、ブロックチェーンは、商品およびサービスに関連した情報(すなわち、製品、パッケージ、ステータス、等)などの他の様々なタイプの情報を格納することができる。非集中化された方式は、ノードの非集中化されたネットワークに権限と信頼を提供し、これらのトランザクションを公開の「ブロック」に、ノードが継続的におよび順次、記録することを可能にし、分散型台帳と呼ばれる一意の「チェーン」を作り出す。暗号文は、ハッシュ・コードなどにより、トランザクション・ソースの認証を守り、中間媒介者を排除するために使用されてよい。分散型台帳に格納されたレコードは、これらの不変的性質により、改ざんおよび改訂から守られることが可能である。各ブロックは、タイムスタンプおよび前のブロックへのリンクを含むことができる。分散型台帳は、情報を保持、追跡、伝達、および確認するために使用されてよい。台帳は分散システムなので、分散型台帳にトランザクションを追加する前に、ピアは、合意状態に至る必要がある
分散型台帳(ブロックチェーン)にコミットされることになるトランザクションを、クライアント・ノードが起動することを望むと、クライアント・ノードは、トランザクションに裏書する権限のある1つまたは複数の裏書ノードにトランザクションをサブミットする。クライアント・ノードからリクエストを受け取ると、裏書ノードは、トランザクションが参照するスマート・コントラクト、および裏書ピアによって保持される状態のコピーを起動することによってトランザクションをシミュレートする。裏書ノードは次に、トランザクションに裏書する裏書ロジックを有する。デフォルトで、ノードの裏書ロジックはトランザクションを受け入れ、単純にトランザクションに署名する。しかし、裏書ロジックは、トランザクションが許可されるべきかどうか、またはトランザクションが却下されるべきかどうかを、ノードが決定することを可能にせず、裏書ロジックは、外部データ・ソース、別のブロックチェーン、ユーザ入力、システム・リソース、および同様のものから入手された情報などの、トランザクションに関連する可能性があるオフ・チェーン情報に基づいて、トランザクションに裏書すべきかどうかをノードが判断することも可能にはしない。
実施形態の1つの例は、クライアント・デバイスからブロックチェーン・リクエストを受け取るように構成されるネットワーク・インターフェースと、ブロックチェーン・リクエストのトランザクションによって読まれるデータのリード・セットおよびトランザクションによって書かれるデータのライト・セットを生成するために、トランザクションをシミュレートすること、およびブロックチェーン・ノードのカスタマイズ可能な裏書ロジックの実行によって、分散型台帳に関するトランザクションに裏書すべきかどうかを判断することを行うように構成されるプロセッサとのうちの少なくとも1つを含むブロックチェーン・ノード・システムを提供することができ、カスタマイズ可能な裏書ロジックを実行することが、生成されたリード・セットおよびライト・セットを入力として受け取り、生成されたリード・セットおよびライト・セットに基づいて、トランザクションが分散型台帳のデータ・ブロックにコミットされるべきか否かを判断し、プロセッサが、カスタマイズされた裏書ロジックの判断の結果についての情報をクライアント・デバイスに伝送するようにネットワーク・インターフェースを制御するようにさらに構成される。
実施形態の別の例は、クライアント・デバイスからブロックチェーン・リクエストを、ネットワークを介して受け取ることと、ブロックチェーン・リクエストのトランザクションによって読まれるデータのリード・セットおよびトランザクションによって書かれるデータのライト・セットを生成するために、トランザクションをシミュレートすることと、ブロックチェーン・ノードのカスタマイズ可能な裏書ロジックを実行することによって、分散型台帳に関するトランザクションに裏書すべきかどうかを判断することであって、カスタマイズ可能な裏書ロジックを実行することが、生成されたリード・セットおよびライト・セットを入力として受け取り、生成されたリード・セットおよびライト・セットに基づいて、トランザクションが分散型台帳のデータ・ブロックにコミットされるべきか否かを判断する、判断することと、カスタマイズされた裏書ロジックの判断の結果についての情報をクライアント・デバイスに伝送することと、のうちの少なくとも1つを含む方法を提供することができる。
実施形態のさらなる例は、プロセッサによって読まれると、クライアント・デバイスからブロックチェーン・リクエストを、ネットワークを介して受け取ることと、ブロックチェーン・リクエストのトランザクションによって読まれるデータのリード・セットおよびトランザクションによって書かれるデータのライト・セットを生成するために、トランザクションをシミュレートすることと、ブロックチェーン・ノードのカスタマイズ可能な裏書ロジックを実行することによって、分散型台帳に関するトランザクションに裏書すべきかどうかを判断することであって、カスタマイズ可能な裏書ロジックを実行することが、生成されたリード・セットおよびライト・セットを入力として受け取り、生成されたリード・セットおよびライト・セットに基づいて、トランザクションが分散型台帳のデータ・ブロックにコミットされるべきか否かを判断する、判断することと、カスタマイズされた裏書ロジックの判断の結果についての情報をクライアント・デバイスに伝送することと、のうちの少なくとも1つ含む方法をプロセッサに行わせる命令を有するコンピュータ・プログラム、およびそのコンピュータ・プログラムを格納した記憶媒体を提供することができる。
実施形態の例による、カスタマイズされた裏書処理のためのブロックチェーン・ネットワークを示す図である。 実施形態の例による、資産共有シナリオのためのピア・ノードのブロックチェーン・アーキテクチャの構成を示す図である。 実施形態の例による、ピア・ノードのブロックチェーンの構成を示す図である。 実施形態の例による、許可されたブロックチェーン・ネットワークを示す図である。 実施形態の例による、カスタマイズされた裏書処理を行うブロックチェーン・ノードを示す図である。 実施形態の例による、カスタマイズされた裏書ロジックに基づいてブロックチェーンのトランザクションを処理するための方法を示す図である。 実施形態の例による、カスタマイズされた裏書ロジックに基づいてブロックチェーンのトランザクションを処理するための方法を示す図である。 実施形態の例による、カスタマイズされた裏書ロジックに基づいてブロックチェーンのトランザクションを処理するための方法を示す図である。 実施形態の例による、本明細書で説明される1つまたは複数の動作に従って、ブロックチェーンに対して様々な動作を行うように構成される物理インフラストラクチャを示す図である。 実施形態の例による、ブロックチェーンに対してスマート・コントラクトの条項を執行するように構成される、契約当事者と仲介サーバの間のスマート・コントラクトの構成を示す図である。 実施形態の例のうちの1つまたは複数をサポートするように構成されるコンピュータ・システムを示す図である。
本構成要素は、本明細書の図の中で全体的に説明され、示されるように、多種多様な様々な構成で配置され、デザインされてよいということが容易に理解されよう。したがって、方法、装置、非一時的コンピュータ可読媒体、およびシステムのうちの少なくとも1つの実施形態の詳細な説明は、関連する図および説明に表されるように、本出願の範囲を限定することを意図するものではなく、選択された実施形態を表すにすぎない。
本明細書の全体を通じて説明されるような本特徴、構造、または特性は、1つまたは複数の実施形態の中で任意の適切な手法で組み合わされてよい。例えば、句「実施形態の例(example embodiments)」、「いくつかの実施形態(some embodiments)」、または他の類似の言葉の使用は、本明細書の全体を通じて、実施形態に関連して説明される特定の特徴、構造、または特性が、少なくとも1つの実施形態に含まれることがあるということを指す。したがって、句「実施形態の例」、「いくつかの実施形態において(in some embodiments)」、「他の実施形態において(in other embodiments)」、または他の類似の言葉の出現は、本明細書の全体を通じて、実施形態の同じグループを必ずしもすべて指すわけではなく、説明される特徴、構造、または特性は、1つまたは複数の実施形態の中で任意の適切な手法で組み合わされてよい。
さらに、用語「メッセージ」は、実施形態の説明で使用されることがあるが、本出願は、パケット、フレーム、データグラム、等などの、多くのタイプのメッセージまたはネットワーク・データに適用されてよい。さらに、いくつかのタイプのメッセージ、シグナリング、およびプロトコルが、例示的な実施形態に描写されることがあるが、これらは、いくつかのタイプのメッセージ、シグナリング、またはプロトコルに限定されない。
従来のブロックチェーンの裏書のスマート・コントラクトでは、裏書ノードは、トランザクションをシミュレートするか、またはそうでなければ実行し、裏書ノードの秘密鍵を使用してトランザクションのリード・セットおよびライト・セットに署名し、データに対して他の任意のチェックを行わない。この単純なロジックは、すべての裏書ノードが、同じトランザクション出力を得ること、または言い換えると、トランザクションのリード・セットおよびライト・セットがすべてのノード上で同一であることを保証するためだけに、ブロックチェーン上のすべての裏書ノードに対して適用される。従来の裏書ノードは、計算された出力によって、シミュレートされたトランザクションに常に裏書する。
実施形態の例は、トランザクションに裏書すべきかどうか、またはトランザクションへの裏書を拒否すべきかどうかを判断するために、ブロックチェーン・ネットワーク内で裏書ノードによって実行され得る、特化された(またはカスタマイズされた)裏書ロジックをサポートすることによって従来の裏書ロジックを改善する、方法、デバイス、ネットワーク、またはシステム、あるいはその組合せを提供する。特化された裏書ロジックは、ブロックチェーン・ネットワークのアドミニストレータまたは他の権限のあるエンティティによって裏書ノードに追加されてよい。例えば、特化された/カスタマイズされた裏書ロジックは、Golang、Solidity、C#、Python、等などの任意の所望のプログラミング言語で書かれるスマート・コントラクトのコードに含まれてよい。いくつかのケースにおいて、特化された裏書ロジックは、同じトランザクションに裏書する同じブロックチェーン・ネットワーク内のノード対ノードと異なってよい。特化された裏書ロジックは、裏書ノードによってインストールされ、実行されるスマート・コントラクト内に実装されてよい。さらに、特化された裏書ロジックによってアクセスされるデータは、裏書ノード・システム上のローカルなデータ・ソース、外部データ・ソース、ユーザ入力、および同様のものなど、ブロックチェーンの外側(すなわち、オフ・チェーン)にあってよい。
ブロックチェーン・ネットワークは、通信ネットワークを介して互いに通信する複数のノードからなる分散システムである。ブロックチェーン・ノードは、チェーンコード(例えば、スマート・コントラクト、等)と呼ばれるプログラムを実行し、状態および台帳データを保持し、トランザクションを実行する。トランザクションは、チェーンコード上で起動される動作である。トランザクションは、典型的には、「裏書され(endorsed)」なければならず、裏書されたトランザクションだけがコミットされることが可能であり、ブロックチェーンの状態に効果を及ぼす。管理機能およびパラメータに対して1つまたは複数のチェーンコードが存在することができ、まとめてシステム・チェーンコードと呼ばれる。従来の裏書処理は、ノードがトランザクションをシミュレートし、署名することにかかわるが、トランザクションの内容に関して何の判断もしない。しかし、このような処理は、外側のソースからの裏書処理に恩恵をもたらすことができない。様々な態様によれば、本明細書で説明される特化された裏書ロジックは、特定のノードにカスタマイズされることが可能であり、トランザクションの内容、外部データ・ソース、タイミング、システム・リソース、ユーザ入力、およびトランザクションからオフ・チェーンの他の多くのファクタなどのファクタを考慮することができる。
ノードは、ブロックチェーン・システムの通信エンティティである。「ノード」は、様々なタイプの複数のノードが同じ物理サーバ上で実行できるという意味では、論理機能である。ノードは、トラスト・ドメイン内でグループ化され、様々な方式でノードを制御する論理的なエンティティに関連付けられてよい。ノードは、トランザクションの起動を裏書人(例えば、ピア)にサブミットし、トランザクションの提案を順序付けサービス(例えば、順序付けノード)にブロードキャストするクライアント、すなわちサブミット・クライアント・ノードなどの、様々なタイプを含むことができる。別のタイプのノードは、クライアントがサブミットしたトランザクションを受け取り、トランザクションをコミットし、状態および台帳のコピーを維持できるピア・ノードである。多くの場合、ノードは、ブロックチェーン・ネットワークの中で複数の役割を果たすことができる。例えば、ピア・ノードには、必要条件ではないが、裏書人ノード、クライアント・ノード、および同様のものの役割があってもよい。順序付けサービス・ノードまたは順序付けノードは、すべてのノードのための通信サービスを実行し、トランザクションをコミットして世界状態を修正するとき、システム内のピア・ノードのそれぞれに対する微細または全体的な水準のブロードキャストなど、配信保証を実装するノードである。
(不変台帳と本明細書で呼ばれることもある)分散型台帳は、ノードのネットワークのすべての状態遷移に関する順番に並べられた改ざん抵抗性のあるレコードである。状態遷移は、参加当事者(例えば、クライアント・ノード、順序付けノード、裏書人ノード、ピア・ノード、等)によってサブミットされるチェーンコードの起動の結果(すなわち、トランザクション)である。トランザクションは、作り出すこと、アップデートすること、削除すること、および同様のことを行うときに、台帳にコミットされる資産のキーと値のペアのセットを生じることができる。台帳は、(チェーンとも呼ばれる)ブロックチェーンを含むことができ、順番に並べられた不変のレコードをブロックに格納することができる。台帳は、ブロックチェーンの現在の状態を維持する状態データベースを含むこともできる。典型的には、チャネルごとに1つの台帳が存在する。各ピア・ノードは、台帳のコピーを維持し、台帳の各チャネルに対してピア・ノードがメンバである。したがって、ノードは、ノードが複数のチャネルに参加するときに複数の台帳を格納することができる。
チェーンは、ハッシュ・リンクされたブロックとして構造化されるトランザクションのログであり、各ブロックは一連のN個のトランザクションを収め、ここでNは1以上である。ブロック・ヘッダは、ブロックのトランザクションのハッシュ、ならびに前のブロックのヘッダのハッシュを含む。このようにして、台帳上のすべてのトランザクションは、順番に並べられ、互いに暗号学的にリンクされてよい。したがって、ハッシュ・リンクを壊さずに台帳データを改ざんすることは不可能である。最近追加されたブロックのハッシュは、その前に来るチェーン上のあらゆるトランザクションを表し、すべてのピア・ノードが、一貫し、信頼できる状態にあることを保証できるようにする。チェーンは、ピア・ノードのファイル・システム(ローカル、付随するストレージ、クラウド、等)に格納されてよく、ブロックチェーンの作業量の追加のみの性質を効率的にサポートする。
不変分散型台帳の現在の状態は、チェーン・トランザクションのログに含まれるすべてのキーの最新値を表す。現在の状態は、チャネルに知られている最新のキー値を表すので、世界状態(ワールドステート、world state)と呼ばれることもある。チェーンコードの起動は、台帳の現在の状態データに対してトランザクションを実行する。これらのチェーンコードの相互作用を効率的にするために、キーの最新の値は状態データベースに格納されてよい。状態データベースは単に、チェーンのトランザクションのログへの索引付けされたビューであり、したがって、チェーンからいつでも再生成されることが可能である。状態データベースは、ピア・ノードの始動時、およびトランザクションが受け入れられる前に自動的に回復されてよい(また、必要なら生成されてもよい)。
従来のブロックチェーンの裏書ロジックは単純で限定的である。典型的な裏書処理は、根本的なトランザクションのシミュレーション、および裏書ノードによる署名を含むにすぎない。この処理は、すべての裏書ノードにわたって共通である。しかし、従来の裏書ロジックには、トランザクションの裏書を却下する能力がない。言い換えると、従来の裏書ロジックは、裏書を拒否する権限を裏書ノードに与えず、裏書を拒否する理由も提供しない。また、従来のブロックチェーンの裏書ロジックは、ブロックチェーンに含まれるデータにアクセスすることだけに制限される。
実施形態の例は、従来のブロックチェーンの裏書ロジックに対して大きな恩恵をもたらす。例えば、本明細書で説明される特化された裏書ロジックは、システム・クロック、別のブロックチェーンまたは台帳、(例えば、分析等の)アプリケーション、ユーザ・インターフェースを介したユーザ入力、外部データ・ソース、優先度情報、および同様のものなど、ピアが利用できるオフ・チェーンの外部の秘密情報にアクセスするようにカスタマイズされてよい。さらに、特化された裏書ロジックは、裏書リクエストに対する否定的レスポンスを判断することができ、例えば、ノード/クライアントが、ブロックチェーンへのアクセスを許可されないとロジックが判断すると、ロジックは、却下の理由と共に却下することができる。
いくつかの実施形態において、特化された裏書ロジックは、トランザクションがブロックチェーンにコミットされているときに、裏書されるすべてのトランザクションに関して優先度のレベルを提供するために、裏書されるトランザクションに優先レベルを与えることができる。また、優先度は、トランザクションの優先度についてグループの優先度を判断するために複数の裏書ノードから集約されてよい(例えば、投票)。裏書ロジックによって考慮され得ることを拡大することによって、ブロックチェーンの外側で利用できる追加情報は、ブロックチェーンに記録されるトランザクションを判断するために使用されてよい。
図1は、実施形態の例による、カスタマイズされた裏書処理のためのブロックチェーン・ネットワーク100を示す。図1を参照すると、ブロックチェーン・ネットワーク100は、クライアント・デバイス110からのトランザクションをコミットしようとしている複数のノードを含む。この例において、ノードは、ピア・ノード120、裏書ノード130、および順序付けノード140として指定される。しかし、ノードのうちのいくつかには2つ以上の役割があってよく、様々な数およびタイプのノードがネットワーク100内に存在してもよいということを理解されたい。動作の際、クライアント・ノード110は、トランザクション・リクエストをピア・ノード120にサブミットし、ピア・ノード120は次に、クライアント110から受け取られたトランザクションの裏書ポリシに基づいて、トランザクション・リクエストを第1の裏書ノード130Aおよび第2の裏書ノード130Bに転送する。
図1の例において、第1の裏書ノード130Aには、独自のカスタマイズされた裏書ロジックAがあり、一方、第2の裏書ノード130Bにも、独自のカスタマイズされた裏書ロジックBがある。ここで、カスタマイズされた裏書ロジックAおよびカスタマイズされた裏書ロジックBは異なってもよい。例えば、ロジックは、様々な比率、様々な要求、様々な変数、様々な優先度、様々なタイミング、様々な条件、および同様のものを含むことができる。1つの非限定的な例として、裏書ロジックAは、トランザクション中のリクエストされた属性値と、ブロックチェーンに格納された属性値との間に完全なマッチを要求することができ、一方、裏書ロジックBは、属性の間に完全なマッチを要求することはできず、代わりに、リクエストの属性とブロックチェーンに格納された対応する属性との間に完全なマッチがないときに解決することができる。
ピア・ノード120を介してクライアント・システム110からトランザクションを受け取るのに応答して、裏書ノード130Aおよび130Bは、トランザクションに対するリード・セットおよびライト・セットを生成するためにトランザクションをシミュレートする。さらに、裏書ノード130Aは、トランザクションに裏書すべきか否かを判断するために、独自のカスタマイズされた裏書ロジックAにリード・セットおよびライト・セットを入力し、裏書ノード130Bは、トランザクションに裏書すべきか否かを判断するために、独自のカスタマイズされた裏書ロジックBにリード・セットおよびライト・セットを入力する。裏書ノード130Aおよび130Bは、異なる裏書ロジックを使用しているので、一方の裏書ノードはトランザクションの裏書を承認でき、他方の裏書ノードはトランザクションの裏書を却下できる可能性がある。
トランザクションに裏書すべきか、または拒否すべきかを判断した後、裏書ノード130Aおよび130Bは、個々のカスタマイズされた裏書判断についての情報をネットワーク100内の1つまたは複数のノードに伝送する。例えば、裏書ノード130Aおよび130Bは、ピア・ノード120を介して裏書の判断をクライアント・システム110に伝送することができる。ここで、クライアント・システム110が十分肯定的な裏書を受け取る場合、クライアント110は、トランザクションが順序付けノード140に送られることをリクエストすることができ、ここで、トランザクションはブロックに追加され、ノード間で複製される分散型台帳にコミットするためにネットワーク100内の他のノード(例えば、ピア・ノード120、または順序付けノード140、あるいはその両方)にブロードキャストされてよい。
図2は、実施形態の例による、ブロックチェーン・システムのアーキテクチャ構成200Aを示す。図2を参照すると、ブロックチェーン・アーキテクチャ200Aは、ブロックチェーンのトランザクションの追加および検証処理(合意)に関与する、例えば、ブロックチェーン・ノード281~284のグループ280といった、いくつかのブロックチェーン要素を含むことができる。ブロックチェーン・ノード281~284の1つまたは複数は、トランザクションに裏書することができ、1つまたは複数のブロックチェーン・ノード281~281は、アーキテクチャ200A内のすべてのブロックチェーン・ノードに順序付けサービスを提供することができる。ブロックチェーン・ノードは、ブロックチェーン認証を始め、ブロックチェーン層220に格納された分散型不変台帳に書こうとすることができ、これらのコピーは、土台となる物理インフラストラクチャ210に格納されてもよい。ブロックチェーンの構成は、関係者によって求められるカスタマイズされた構成に従って作り出されることがあり、これら自体の状態を維持し、これら自体の資産を制御し、外部情報を受け取ることができる(例えば、チェーンコード、スマート・コントラクト、等といった)格納されたプログラム/アプリケーション・コード250にアクセスし、実行するための、アプリケーション・プログラミング・インターフェース(API:application programming interface)260にリンクされるアプリケーション270のうちの1つを含むことができる。これは、トランザクションとして導入され、すべてのブロックチェーン・ノード281~284上に、分散型台帳に添付することによってインストールされてよい。
ブロックチェーンのベースまたはプラットフォーム205は、新しいトランザクションを受け取って格納し、台帳に格納されたデータ・レコードへのアクセスを求めている監査人にアクセスさせるために使用され得る、ブロックチェーンのデータ、サービス(例えば、暗号信託業務、仮想実行環境、等)、および土台となる物理コンピュータのインフラストラクチャといった様々な層を含むことができる。ブロックチェーン層220は、プログラム・コードを処理し、物理インフラストラクチャ210を利用するのに必要な仮想実行環境にアクセスできるインターフェースを公開することができる。暗号信託業務230は、資産交換トランザクションなどのトランザクションを確認し、情報を秘密にしておくために使用されてよい。
図2のブロックチェーン・システムのアーキテクチャ構成200Aは、ブロックチェーン・プラットフォーム205によって公開された1つまたは複数のインターフェース、および提供されたサービスを介して、プログラム/アプリケーション・コード250を処理し、実行することができる。コード250は、ブロックチェーンの資産を制御することができる。例えば、コード250は、データ・ブロックを格納し、伝達することができ、スマート・コントラクト、および条件またはその実行を受ける他のコード要素を有するチェーンコードの形でノード281~284によって実行されてよい。非限定的な例として、スマート・コントラクトは、リマインダ、アップデート、または変更、アップデート、等を受ける他の通知、あるいはその組合せを実行するために作り出されてよい。様々な実施形態によれば、スマート・コントラクトは、オフ・チェーンのデータに基づいて、トランザクションに裏書すべきかどうかを判断する、カスタマイズされた裏書ロジックを実行するために使用されてもよい。スマート・コントラクトは、それ自体、権限付与およびアクセス要求、ならびに台帳の使用に関連のあるルールを識別するために使用されてよい。例えば、クライアント・デバイスから受け取られたハッシュ化された識別子情報252は、ブロックチェーン層220に含まれる1つまたは複数の処理エンティティ(例えば、仮想マシン)によって処理されてよい。結果は、ブロックチェーンのコンピューティング環境からサード・パーティのアプリケーションへの認められたアクセス254を含むことができる。この例において、以前に知られたユーザ識別子またはデータ・テンプレート情報は、ブロックチェーン・プラットフォーム205に格納されてよい。物理マシン210は、ユーザ・デバイスのテンプレートを取得するためにアクセスされてよく、情報は、確認のために、入って来るユーザ識別子に対してマッチさせるために使用されてよい。
チェーンコード内で、スマート・コントラクトは、高レベルのアプリケーションおよびプログラミング言語によって作り出され、その後、ブロックチェーン内のブロックに書かれてよい。スマート・コントラクトは、ブロックチェーン(例えば、ブロックチェーンのピアの分散ネットワーク)によって登録、格納、または複製、あるいはその組合せを行う実行可能コードを含むことができる。しかし、いくつかの実施形態において、カスタマイズされた裏書ロジックを含むスマート・コントラクトは、共通のブロックチェーン・ネットワーク内の他のノードに関してノードに対して一意であってよい。トランザクションは、スマート・コントラクトに関連のある条件が満たされるのに応答して行われ得るスマート・コントラクトのコードの実行である。スマート・コントラクトの実行は、デジタル・ブロックチェーン台帳の状態に対して信頼できる修正をトリガすることができる。スマート・コントラクトの実行によって起こされるブロックチェーン台帳に対する修正は、1つまたは複数の合意プロトコルによって、ブロックチェーンのピアの分散ネットワークの全体を通じて自動的に複製されてよい。
スマート・コントラクトは、キーと値のペアのフォーマットでブロックチェーンにデータを書くことができる。さらに、スマート・コントラクトのコードは、ブロックチェーンに格納された値を読み、アプリケーションの動作の中でこれらの値を使用することができる。スマート・コントラクトのコードは、様々なロジック動作の出力をブロックチェーンに書くことができる。コードは、仮想マシンまたは他のコンピューティング・プラットフォーム内に一時的なデータ構造を作り出すために使用されてよい。ブロックチェーンに書かれたデータは、公開であってよく、または暗号化され、秘密として維持されてよく、あるいはその組合せであってよい。スマート・コントラクトによって使用/生成される一時的なデータは、与えられた実行環境によってメモリに保持され、その後、ブロックチェーンに必要とされるデータが識別されると削除される。
チェーンコードは、追加の特徴と共にスマート・コントラクトのコード翻訳を含むことができる。本明細書で説明されるように、チェーンコードは、コンピューティング・ネットワークに導入されるプログラム・コードであってよく、ここで、チェーンコードは、合意処理中にチェーンの検証器によって一緒に実行され、検証される。チェーンコードはハッシュを受け取り、以前に格納された特徴のエクストラクタを使って作り出されるデータ・テンプレートに関連のあるハッシュをブロックチェーンから取得する。ハッシュ識別子のハッシュおよび格納された識別子のテンプレートのデータから作り出されたハッシュがマッチする場合、チェーンコードは、リクエストされたサービスに権限付与キーを送る。チェーンコードは、暗号詳細に関連のあるブロックチェーンのデータに書くことができる。図2のこの例において、公表および入手するスマート・コントラクト情報は、資産サービスを提供するエンティティの明細書に従ってアップデートされてよい222。1つの機能は、エンティティ#2が正しい信任状(信憑性証明物、credentials)を有し、有効期限がまだ満期になっておらず、まだアクティブまたは未決の状態にある(すなわち、有効期限前)場合、リクエストするエンティティ、この例ではエンティティ#2に、資産へのアクセス224を提供することであってよい。正しい信任状が要求され、資産アクセス情報を公表する前にスマート・コントラクトの条件が満たされなければならない。
図3は、実施形態の例によるブロックチェーンのノード間のトランザクションのフロー200Bの例を示す。図3を参照すると、トランザクション・フロー200Bは、裏書ピア・ノード281にアプリケーション・クライアント・ノード201によって送られたトランザクションの提案を含むことができる。裏書ピア281はクライアントの署名を確認し、チェーンコード機能を実行してトランザクションをシミュレートすることができる。さらに、様々な実施形態によれば、裏書ピア281は、システム情報、ユーザ入力、他のブロックチェーン情報、外部データ・ソース、および同様のものなどのオフ・チェーンのデータに基づいて、カスタマイズされた裏書ロジックを実行して、トランザクションに裏書すべきか否かを判断することができる。出力は、チェーンコードの結果、チェーンコード内で読まれたキー/値のバージョンのセット(リード・セット)、チェーンコードに書かれたキー/値のセット(ライト・セット)である。裏書ピア281がトランザクションに裏書すると判断すると、提案のレスポンスが、裏書署名と共にクライアント201に送り返される。クライアントは、トランザクションのペイロードの中に裏書を集め、これを順序付けサービス・ノード284にブロードキャストする。順序付けサービス・ノード284は次に、順序付けされたトランザクションをブロックとしてチャネル上のすべてのピア281~283に配信する。コミットの前に、各ピア281~283は、トランザクションを検証することができる。例えば、これらのピアは、裏書ポリシをチェックし、指定されたピアの正しい割当てが結果に署名されたことを保証し、トランザクション・ペイロードに対する署名を認証することができる。
図3を参照すると、ステップ291において、クライアント・ノード201は、リクエストを構築し、裏書人であるピア・ノード281に送ることによってトランザクションを始める。クライアント201は、Node、Java(R)、Python、および同様のものなどの、サポートされるソフトウェア開発キット(SDK:software development kit)を活用するアプリケーションを含むことができ、これは、利用可能なAPIを利用してトランザクションの提案を生成する。提案は、データが読まれること、または台帳に書かれること(すなわち、資産に対する新しいキーと値とのペアを書く)、あるいは両方のことができるように、チェーンコード機能を起動するリクエストである。SDKは、トランザクションの提案を正しく設計されたフォーマット(例えば、gRPC上のプロトコル・バッファ)の中にパッケージするためのくさびとしての役割を果たし、クライアントの暗号信任状を用いて、このトランザクションの提案に対する一意の署名を生み出すことできる。
それに応じて、裏書ピア・ノード281は、(a)トランザクションの提案がうまく形成されること、(b)トランザクションが過去にまだサブミットされたことがないこと(リプレイ・アタックの保護)、(c)署名が有効であること、および(d)サブミッタ(例におけるクライアント201)が、このチャネル上で、提案された動作を実施するために正しく権限付与されることを確認することができる。裏書ピア・ノード281は、起動されたチェーンコード機能への引数としてトランザクションの提案の入力を用いることができる。チェーンコードは次に、レスポンス値、リード・セット、およびライト・セットを含むトランザクションの結果を生み出すために、現在の状態データベースに対して実行される。しかし、この時点で、台帳に対してアップデートは行われない。さらに、チェーンコードは、トランザクションを拒否すべきかどうか、トランザクションを承認/裏書すべきかどうか、トランザクションの優先度のレベル、および同様のものを判断するために使用され得る特化された裏書ロジックを含むこともできる。ステップ292において、これらの値のセットは、裏書ピア・ノード281による判断および裏書ピア・ノード281の署名と共に、アプリケーションが消費するペイロードを解析するクライアント201のSDKへの提案レスポンスとして戻される。
それに応じて、クライアント201のアプリケーションは、(署名を含む)裏書ピアによって行われるカスタマイズされた裏書判断を検査/確認し、提案レスポンスが同じであるかどうかを判断するために提案レスポンスを比較する。チェーンコードだけが台帳に問い合わせた場合、アプリケーションはクエリのレスポンスを検査し、典型的には、トランザクションを順序付けサービス284にサブミットしない。クライアントのアプリケーションが、台帳をアップデートするために、トランザクションを順序付けサービス284にサブミットすることを意図する場合、アプリケーションは、サブミットする前に指定された裏書ポリシが満たされたかどうかを判断する(例えば、トランザクションに必要なピア・ノードの両方が、カスタマイズされた裏書ロジックに基づいて裏書したかどうか、等)。ここで、クライアントは、トランザクションに対して複数の当事者のうちのただ1つを含むことができる。この場合、各クライアントには独自の裏書ノードがあり、各裏書ノードはトランザクションに裏書する必要がある。アーキテクチャは、アプリケーションがレスポンスを検査しないことを選ぶか、またはそうでなければ裏書されないトランザクションを転送する場合でも、裏書ポリシはまだ、ピアによって執行され、コミット検証フェーズで支持されるといったようなものである。
検査が成功した後、ステップ293において、クライアント201は、トランザクションの中に裏書を集め、トランザクション・メッセージ内のトランザクションの提案およびレスポンスを順序付けノード284にブロードキャストする。トランザクションは、リード/ライトのセット、裏書ピアの署名、およびチャネルIDを収めることができる。順序付けノード284は、その動作を行うためにトランザクションの全体内容を検査する必要はなく、順序付けノード284は、ネットワーク内のすべてのチャネルからトランザクションを単純に受け取り、チャネルによってトランザクションを時系列で順序付け、チャネルごとにトランザクションのブロックを作り出すことができる。
ステップ294において、トランザクションのブロックは、チャネル上のすべてのピア・ノード281~283に順序付けノード284から配信される。ブロック内のトランザクションは、裏書ポリシが満たされることを保証するため、およびリード・セットがトランザクションの実行によって生成されてからリード・セットの変数に対する台帳の状態への変更がなかったことを保証するために検証される。ブロック内のトランザクションは、有効または無効としてタグ付けされる。いくつかの実施形態において、トランザクションは、裏書ピアから決定される優先度に基づいて順序付けされてよい。例えば、各裏書ピアは台帳にコミットされることになる各トランザクションの優先度について投票することができる。順序付けノードは、各トランザクションに対する集計された投票を識別すること、および最も高い優先度から最も低い優先度にトランザクションを順序付けること、等ができる。さらに、ステップ295において、各ピア・ノード281~283は、ブロックをチャネルのチェーン(または他の分散型台帳)に添付し、それぞれの有効なトランザクションに対して、ライト・セットが現在の状態データベースにコミットされる。イベントは、トランザクション(起動)が、チェーンに不変的に添付されたことをクライアント・アプリケーションに通知するため、ならびにトランザクションが有効化されたか、または無効化されたかについての通知のために発せられる。
図4は、許可されたブロックチェーン・ネットワーク300の例を示し、これは分散型の非集中化されたピアツーピアのアーキテクチャを特徴とし、証明機関318がユーザの役割および資格(permission)を管理する。この例において、ブロックチェーンのユーザ302は、許可されたブロックチェーン・ネットワーク300にトランザクションをサブミットすることができる。トランザクションは、導入、起動、またはクエリであってよく、SDKを活用するクライアント側のアプリケーションを通じて、RESTのAPIを通じて直接的に、または同様のものを通じて発行されてよい。信頼できるビジネス・ネットワークは、監査人(例えば、米国の株式市場における証券取引委員会)などの規制当局のシステム310へのアクセスを提供することができる。一方で、ブロックチェーンのネットワーク事業者のシステム311は、規制当局のシステム310を「監査人」として、およびブロックチェーンのユーザ302を「クライアント」として登録することなど、メンバの資格を管理する。監査人は、台帳に問い合わせることだけに制約されることがあるが、その一方でクライアントは、いくつかのタイプのチェーンコードを導入し、起動し、問い合わせる権限を与えられることがある。
ブロックチェーンの開発者のシステム316は、チェーンコードおよびクライアント側のアプリケーションを書く。ブロックチェーンの開発者のシステム316は、RESTのインターフェースを通じてチェーンコードを直接的にネットワークに導入することができる。チェーンコードに従来のデータ・ソース330からの信任状を含めるために、開発者のシステム316は、帯域外の接続を使用してデータにアクセスすることができる。この例において、ブロックチェーンのユーザ302は、ピア・ノード312を通じてネットワークに接続する。任意のトランザクションを続ける前に、ノード312は、証明機関318からユーザの登録およびトランザクションの証明書を取得する。いくつかのケースにおいて、ブロックチェーンのユーザは、許可されたブロックチェーン・ネットワーク300上で取引するために、これらのデジタル証明書をもっていなければならない。一方で、チェーンコードを動かそうとするユーザは、従来のデータ・ソース330に対するこれらの信任状の確認を要求されることがある。ユーザの権限を確かめるために、チェーンコードは、従来の処理プラットフォーム320を通じて、このデータへの帯域外の接続を使用することができる。
許可されたブロックチェーン・ネットワーク300において、関係ノード312が知られており、ネットワーク内で確認可能なアイデンティティを有している。ピア・ノード312のこのアイデンティティは、各ピア・ノード312がトランザクションに「裏書」し、その一意の署名と共にその結果を記録することを可能にする。一意の署名は、その後、裏書ポリシの執行を可能にするネットワーク上の他の任意の当事者/ノードによって確認可能である。資格のないブロックチェーンにおいて。許可されたブロックチェーン・ネットワーク300は、ブロックチェーンのネットワーク事業者311などのノードの管理者だけが、特化された裏書ロジックを導入できるようにすることができる。したがって、どんなユーザでもロジックをアップロードできるわけではない。最初に、ロジックは、別のピア・ノード312に導入する前に、管理者ノードによって確認されてよい。許可されたブロックチェーン・ネットワーク300内のピア・ノード312が、様々な資格を有することはない。しかし、各ピア・ノード312には、トランザクションのライフ・サイクルにおける適正なフェーズ中にピア312上で実行される独自の特化された裏書ロジック(例えば、スマート・コントラクト)があってよい。
図5は、実施形態の例による、カスタマイズされた裏書処理を行うブロックチェーン・ノード420を示す。図5を参照すると、裏書ノード420は、ブロックチェーンなどの分散型台帳Aにトランザクションをコミットするために、クライアント・ノード410からリクエストを受け取る。この例において、裏書ノード420は、カスタマイズされた裏書ロジック実行して、分散型台帳Aに含めるためにトランザクションに裏書すべきか否かを判断する。カスタマイズされた裏書ロジックは、オフ・チェーンのデータ・ソースにアクセスすることができる。非限定的な例として、オフ・チェーンのデータ・ソースは、クロック421などの裏書ノード420のシステム・ハードウェアと、台帳B422などの別の分散型台帳(ブロックチェーン)と、データベース、ファイル、アプリケーション、および同様のものなどの外部データ・ソース423と、入力デバイスを介してユーザから入力を受け取ることができるユーザ・インターフェース424と、を含むがこれらに限定されない。
例えば、クライアント・ノード410からトランザクション・リクエストを受け取ると、裏書ノード420は、リード・セット(トランザクションによって読まれる資産のリスト)およびライト・セット(トランザクションによって修正または追加される資産のリスト)を収集するためだけにトランザクションをシミュレートすることができる。さらに、収集されたリード・セットおよびライト・セットは、ユーザが提供したカスタム裏書ロジックを実装する、裏書ノード420のカスタマイズされた裏書スマート・コントラクトに渡されてよい。例えば、カスタム裏書ロジックは、不正行為を検出すること、ユーザ・インターフェース424を介してトランザクションへの裏書または却下を人間に通知すること、リード・セットおよびライト・セットを見てアクセス制御を行うこと、ならびに同様のことを行うために、外部データベース423または分析プラットフォームに接続することができる。アクセス制御は、クライアントが資産にアクセスするかまたは修正する資格を有しているかどうかを判断することができ、トランザクションは、トランザクションに裏書せずに却下されてよい。裏書に成功するかまたは失敗すると、クライアントが資産にアクセスできない、トランザクションのタイミングが許可されない、または同様のものなど、トランザクションが却下された場合、クライアント・ノード410は、妥当な理由と共に裏書ノード420によって通知されてよい。
いくつかの実施形態において、1つまたは複数の裏書ノードにおける裏書ロジックは、他の裏書ロジックとは異なってよい。結果的に、裏書ノードを制御するブロックチェーン・ネットワーク内の各組織は、独自の裏書ロジックを実装することができる。特化された裏書ロジックをインストールするために、1つの実施形態において、ノードの始動中に、裏書ロジックのコードは、ロジックを裏書システムのスマート・コントラクトにノードが挿入できるように引数として渡されてよい。すなわち、コードは、裏書ノードにおける裏書ロジックを修正するかまたはそうでなければカスタマイズするために、裏書ノードのスマート・コントラクトに動的に追加されてよい。別の実施形態において、カスタマイズされた裏書ロジックは、チェーンコードの導入中に指定されたノード上に導入されてよい。別の例として、裏書ロジックは、構成トランザクションと呼ばれる特殊なシステム・トランザクションを使用して、裏書ロジックのライフ・サイクル中にアップデートされてよい。このトランザクションは、裏書ロジックをアップデートするために、ノード上でシステムのスマート・コントラクトによってローカルに処理されてよい。
従来の裏書処理では裏書の却下はない。例えば、クライアントがブロックチェーン・ネットワーク内のノードにトランザクションを送ると、このノードがトランザクションに常に裏書する。クライアントが十分な裏書(ブロックチェーン・ネットワーク内のノードの署名)を得ると、トランザクションは、検証およびコミットのためにネットワークにサブミットされてよい。対照的に、実施形態の例において、ノードは、(各ノード、トランザクションのリード・セット、トランザクションのライト・セット、トランザクションをサブミットしたクライアントのアイデンティティ、および同様のものに対して異なることがあるので)例えば、ノードにおけるカスタム裏書ロジックといった、1つまたは複数のパラメータに基づいて受け入れるかまたは却下することができる。
導入中に定義された裏書ポリシの通り、トランザクションに対する十分な裏書を収集することが、クライアント・ノードのタスクである。クライアント・ノードが十分な裏書を受け取れないとき、クライアント・ノードは、数回、リトライし、裏書の却下の際に提供された理由に基づいてトランザクションを調節することができる。クライアントが、十分な裏書がない状態でトランザクションをサブミットする場合、トランザクションは後で却下される。
特化された裏書ロジックにおいて、ピアは、投票をその裏書と共にさらに記録することができる。様々な実施形態によれば、投票は、ピアが実行したカスタム裏書ロジックの結果として取り込まれた値であってよい。投票は、適正なサブシステムによって解釈され、処理される。例えば、投票は、(例えば、不明瞭な値といった)バイトのバッグであってよい。例えば、裏書ノードは、トランザクションがネットワーク内で受け取るはずの優先度について投票することができる。このピアからの「投票」は、このトランザクションに割り当てられる最終的な優先度を見つけ出すために、他のピアからの「投票」と共に考慮される。どのように投票が突き合わされるかは、平均、最大、最小、等のように、受け入れたポリシに基づいてよい。
図6は、実施形態の例による、カスタマイズされた裏書に基づいてトランザクションを処理する方法500Aを示す。例えば、方法500Aは、裏書ノード(例えば、図5のノード420、等)によって行われてよい。ノードは、サーバ、データベース、コンピュータ、デバイス、クラウド・プラットフォーム、および同様のものなどの、コンピューティング・システムを含むことができる。図6を参照すると、510において、方法は、クライアント・デバイスからブロックチェーン・リクエストを、ネットワークを介して受け取ることを含む。例えば、リクエストは、トランザクション、およびブロックチェーン・ネットワーク内のノードの全体にわたって複製される分散型台帳にトランザクションを格納するリクエスト含むことができる。リクエストは、トランザクションに裏書することを裏書ノードにリクエストする指標も含むことができる。
520において、方法は、トランザクションによって読まれるデータのリード・セットおよびトランザクションによって書かれるデータのライト・セットを生成するために、トランザクションをシミュレートすることを含む。530において、方法は、ブロックチェーン・ノードのカスタマイズ可能な裏書ロジックを実行することによって、分散型台帳に関するトランザクションに裏書すべきかどうかを判断することをさらに含む。例えば、カスタマイズ可能な裏書ロジックを実行することは、生成されたリード・セットおよびライト・セットを入力として受け取り、生成されたリード・セットおよびライト・セットに基づいて、トランザクションが分散型台帳のデータ・ブロックにコミットされるべきか否かを判断する。540において、方法は、カスタマイズされた裏書ロジックの判断の結果についての情報をクライアント・デバイスに伝送することを含む。いくつかの実施形態において、ブロックチェーン・ノードのカスタマイズ可能な裏書ロジックは、トランザクションに裏書する別のブロックチェーン・ノードのカスタマイズ可能な裏書ロジックとは異なる裏書判断を行う。
図7および図8は、カスタマイズされた裏書ロジックに基づいて、ブロックチェーンのトランザクションを処理する方法500Bおよび500Cのさらなる例を示す。図7において、カスタマイズ可能な裏書ロジックは、531において、例えば、外部データ・ソースからのデータ、ユーザ・インターフェースから受け取られたユーザ入力、別のブロックチェーンから識別された情報、ブロックチェーン・ノードのシステム・クロックから抽出された情報、および同様のものといった、オフ・チェーンで取得したデータに基づいて分散型台帳にブロックチェーン・リクエストをコミットすべきか否かを判断する。トランザクションが分散型台帳にコミットされるのを却下すると判断するのに応答して、裏書ロジックは、532において、トランザクションを却下する理由をさらに判断し、533において、判断された理由をクライアント・デバイスに伝送することができる。別の例として、図8において、535において、分散型台帳にトランザクションをコミットすると判断するのに応答して、カスタマイズされた裏書ロジックは、536において、分散型台帳にコミットされるためのトランザクションの優先レベルを判断し、537において、判断された優先レベルをクライアント・デバイスに伝送することができる。
図9は、実施形態の例による動作の方法のうちの1つまたは複数に従って、ブロックチェーンに対して様々な動作を行うように構成される物理インフラストラクチャを示す。図9を参照すると、構成600Aは、ブロックチェーン620およびスマート・コントラクト640を有する物理インフラストラクチャ610を含み、実施形態の例のいずれかに含まれる動作ステップ612のいずれかを実行することができる。ステップ/動作612は、1つまたは複数のカスタマイズされた裏書ロジックを含むことができる。ステップは、コンピュータ・システム構成の物理インフラストラクチャ610上にある1つまたは複数のスマート・コントラクト640、またはブロックチェーン620、あるいはその両方から書かれるかまたは読まれる、出力されたまたは書かれた情報を表すことができる。データは、カスタマイズされた裏書ロジックなどの実行されたスマート・コントラクト640、またはブロックチェーン620、あるいはその両方から出力されてよい。物理インフラストラクチャ610は、1つまたは複数のコンピュータ、サーバ、プロセッサ、メモリ、またはワイヤレス通信デバイス、あるいはその組合せを含むことができる。
図10は、実施形態の例による、ブロックチェーンに対してスマート・コントラクトの条項を執行するように構成される、契約当事者と仲介サーバの間のスマート・コントラクトの構成の例を示す。図10を参照すると、構成600Bは、通信セッション、資産移転セッション、あるいは1つまたは複数のユーザ・デバイス652、もしくは656、またはその両方を明確に識別するスマート・コントラクト640によって動かされる処理または手続きを表すことができる。スマート・コントラクト実行に関する実行、動作、および結果は、サーバ654によって管理されてよい。例えば、サーバ654は、本明細書で説明されるようなカスタマイズされた裏書ロジックを含むソフトウェア・プログラムを実行することができる。スマート・コントラクト640の内容は、スマート・コントラクトのトランザクションの当事者であるエンティティ652および656の1つまたは複数によるデジタル署名を要求することができる。スマート・コントラクト実行の結果は、ブロックチェーンのトランザクションとしてブロックチェーンに書かれてよい。
上記の実施形態は、ハードウェアに、プロセッサによって実行されるコンピュータ・プログラムに、ファームウェアに、または上記の組合せの中に実装されてよい。コンピュータ・プログラムは、ストレージ媒体などのコンピュータ可読媒体上で具体化されてよい。例えば、コンピュータ・プログラムは、ランダム・アクセス・メモリ(「RAM」:random access memory)、フラッシュ・メモリ、リード・オンリ・メモリ(「ROM」:read-only memory)、消去可能プログラマブル・リード・オンリ・メモリ(「EPROM」:erasable programmable read-only memory)、電気的消去可能プログラマブル・リード・オンリ・メモリ(「EEPROM」:electrically erasable programmable read-only memory)、レジスタ、ハード・ディスク、リムーバブル・ディスク、コンパクト・ディスク・リード・オンリ・メモリ(「CD-ROM」:compact disk read-only memory)、または当技術分野で知られたストレージ媒体の他の任意の形式の中にあってよい。
例示的なストレージ媒体は、プロセッサがストレージ媒体に情報を読み書きできるように、プロセッサに連結されてよい。別の方式では、ストレージ媒体は、プロセッサに統合されてもよい。プロセッサおよびストレージ媒体は、特定用途向け集積回路(「ASIC」:application specific integrated circuit)の中にあってよい。別の方式では、プロセッサおよびストレージ媒体は、個別の構成要素として存在してよい。例えば、図11は、コンピュータ・システムのアーキテクチャの例700を示し、これは、上述の構成要素、等のいずれかを表すか、またはこれらに統合されてよい。
図11は、本明細書で説明される本出願の実施形態の使用または機能の範囲について、何らかの限定を示唆することを意図するものではない。いずれにしても、コンピューティング・ノード700は、実装されること、または上文に示す機能のいずれかを行うこと、あるいはその両方ができる。例えば、コンピューティング・ノード700は、組織化ノード、リクエスト・ノード、ネットワーク・ノード、(例えば、組織者ノードおよびネットワーク・ノードといった)ノードの組合せ、ならびに同様のものであってよい。
コンピューティング・ノード700に、コンピュータ・システム/サーバ702があり、これは、非常に多くの他の汎用または特殊用途のコンピューティング・システム環境または構成で動作するものである。コンピュータ・システム/サーバ702と共に使用するのに適切なことがある、よく知られたコンピューティング・システム、環境、または構成、あるいはその組合せの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、ならびに上記のシステムまたはデバイスのいずれか、および同様のものを含む分散クラウド・コンピューティング環境を含むがこれらに限定されない。
コンピュータ・システム/サーバ702は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システムが実行可能な命令の一般的な背景で説明されてよい。一般に、プログラム・モジュールは、特定のタスクを行うか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、ロジック、データ構造、等を含むことができる。コンピュータ・システム/サーバ702は、通信ネットワークを通じてリンクされるリモート処理デバイスによってタスクが行われる分散クラウド・コンピューティング環境の中で実践されてよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモート両方のコンピュータ・システムのストレージ媒体の中に配置されてよい。
図11に示されるように、クラウド・コンピューティング・ノード700内のコンピュータ・システム/サーバ702は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム/サーバ702の構成要素は、1つまたは複数のプロセッサまたは処理ユニット704、システム・メモリ706、およびシステム・メモリ706を含む様々なシステムの構成要素をプロセッサ704に連結するバスを含むことができるがこれらに限定されない。
バスは、いくつかのタイプのバス構造のいずれかのうちの1つまたは複数を表し、メモリ・バスまたはメモリ・コントローラ、周辺機器バス、アクセラレイティッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む。例として、また限定ではなく、このようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA:Video Electronics Standards Association)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI:Peripheral Component Interconnect)バスを含む。
コンピュータ・システム/サーバ702は、典型的には、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ702によってアクセス可能な任意の利用可能な媒体であってよく、揮発性媒体と不揮発性媒体の両方、リムーバブルと非リムーバブル・メディアの両方を含む。システム・メモリ706は、1つの実施形態において、他の図の流れ図を実装する。システム・メモリ706は、ランダム・アクセス・メモリ(RAM)710、またはキャッシュ・メモリ712、あるいはその両方などの、揮発性メモリの形でコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ702は、他のリムーバブル/非リムーバブル、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。ほんの一例として、ストレージ・システム714は、非リムーバブルの不揮発性磁気媒体(図示せず、また典型的には「ハード・ドライブ」と呼ばれる)に読み書きするために提供されてよい。図示しないが、リムーバブルの不揮発性磁気ディスク(例えば、「フロッピー・ディスク」)に読み書きするための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、または他の光媒体などのリムーバブルの不揮発性光ディスクに読み書きするための光ディスク・ドライブが提供されてよい。このような例において、それぞれは、1つまたは複数のデータ媒体インターフェースによってバスに接続されてよい。下記でさらに描写され、説明されるように、メモリ706は、本出願の様々な実施形態の機能を行うように構成されるプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
プログラム/ユーティリティ716は、プログラム・モジュール718のセット(少なくとも1つ)を有し、例として、また限定ではなく、メモリ706、ならびにオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データに格納されてよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはこれらのいくつかの組合せは、ネットワーク環境の実装を含むことができる。プログラム・モジュール718は一般に、本明細書で説明されるような本出願の様々な実施形態の機能、または方法、あるいはその両方を実行する。
当業者によって理解されるように、本出願の態様は、システム、方法、またはコンピュータ・プログラム製品として具体化されてよい。したがって、本出願の態様は、全面的にハードウェアの実施形態、(ファームウェア、常駐ソフトウェア、マイクロコード、等を含む)全面的にソフトウェアの実施形態、またはすべて全体的に本明細書で「回路」、「モジュール」、もしくは「システム」と呼ばれることがあるソフトウェアとハードウェアの態様を組み合わせる実施形態の形をとることができる。さらに、本出願の態様は、具体化されるコンピュータ可読プログラム・コードを有する1つまたは複数のコンピュータ可読媒体の中で具体化されるコンピュータ・プログラム製品の形をとることができる。
コンピュータ・システム/サーバ702は、キーボード、ポインティング・デバイス、ディスプレイ722、等などの1つもしくは複数の外部デバイス720、ユーザがコンピュータ・システム/サーバ702と対話できるようにする1つもしくは複数のデバイス、またはコンピュータ・システム/サーバ702が1つもしくは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデム、等)、あるいはその組合せと通信することもできる。このような通信は、I/Oインターフェース724を介して発生させることができる。さらに、コンピュータ・システム/サーバ702は、ネットワーク・アダプタ726を介して、ローカル・エリア・ネットワーク(LAN:local area network)、一般的な広域ネットワーク(WAN:wide area network)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組合せなどの、1つまたは複数のネットワークと通信することができる。描写されるように、ネットワーク・アダプタ726(例えば、ネットワーク・インターフェース、等)は、バスを介してコンピュータ・システム/サーバ702の他の構成要素と通信する。図示しないが、他のハードウェア構成要素、またはソフトウェア構成要素、あるいはその両方が、コンピュータ・システム/サーバ702と共に使用されることもあるということを理解されたい。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ保存ストレージ・システム、等を含むがこれらに限定されない。
様々な実施形態によれば、ネットワーク・インターフェース726は、クライアント・デバイスからブロックチェーン・リクエストを受け取ることができる。例えば、ブロックチェーン・リクエストは、クライアント・デバイスから直接的に受け取られた、1つまたは複数の中間のブロックチェーン・ノードを介して受け取られた、および同様のものから受け取られた、クライアント・デバイスによってリクエストされたトランザクションを含むことができる。プロセッサ704は、トランザクションによって読まれるデータのリード・セットおよびトランザクションによって書かれるデータのライト・セットを生成するために、トランザクションをシミュレートすることができる。様々な実施形態によれば、プロセッサ704は、ブロックチェーン・ノードに固有のカスタマイズ可能な裏書ロジックの実行によって、分散型台帳に関するトランザクションに裏書すべきかどうかを判断することができる。カスタマイズされた裏書ロジックは、ユーザがノードに追加したものであってよく、ブロックチェーンの外側の様々なデータ・ソースを考慮することができる。プロセッサによって実行されると、カスタマイズ可能な裏書ロジックは、生成されたリード・セットおよびライト・セットを入力として受け取り、生成されたリード・セットおよびライト・セットに基づいて、トランザクションが分散型台帳のデータ・ブロックにコミットされるべきか否かを判断する。さらに、プロセッサ704は、カスタマイズされた裏書ロジックの判断の結果についての情報をクライアント・デバイスに、直接的にまたは1つもしくは複数の中間ノードを介して伝送するようにネットワーク・インターフェース726を制御することができる。
いくつかの実施形態において、プロセッサ704は、カスタマイズされた裏書ロジックによって、同じトランザクションにも裏書する別のブロックチェーン・ノードのカスタマイズ可能な裏書ロジックとは異なる裏書判断を行うことができる。カスタマイズ可能な裏書ロジックはプロセッサ704をトリガして、(例えば、データベース、台帳、ファイル、等といった)外部データ・ソースの1つまたは複数からのデータ、ユーザ・インターフェースから受け取られたユーザ入力、(例えば、分析等の)アプリケーション、別のブロックチェーンから識別された情報、ブロックチェーン・ノードのシステム・クロックなどのブロックチェーン・ノードのシステム・ハードウェアから抽出された情報、および同様のものなど、オフ・チェーンで取得したデータに基づいて、分散型台帳にトランザクションをコミットすべきか否かを判断することができる。
いくつかの実施形態において、トランザクションが分散型台帳にコミットされるのを却下すると判断するのに応答して、カスタマイズされた裏書ロジックを実行するプロセッサ704は、トランザクションを却下する理由を判断することができ、プロセッサ704は、クライアント・デバイスに理由を伝送するようにネットワーク・インターフェース726を制御することができる。別の例として、分散型台帳にトランザクションをコミットすると判断するのに応答して、カスタマイズされた裏書ロジックを実行するプロセッサ704は、分散型台帳にコミットされるためのトランザクションの優先レベルを判断することができ、プロセッサ704は、トランザクションの優先レベルをクライアント・デバイスに伝送するようにネットワーク・インターフェース726をさらに制御することができる。
システム、方法、および非一時的コンピュータ可読媒体のうちの少なくとも1つの例示的な実施形態が添付の図面に示され、前述の詳細な説明で説明されたが、本出願は開示された実施形態に限定されず、以下の特許請求の範囲によって示され、定義されるように、非常に多くの再配置、修正、および代用を行うことができるということが理解されよう。例えば、様々な図のシステムの能力は、本明細書で説明される、または分散アーキテクチャ内の、モジュールまたは構成要素の1つまたは複数によって行われてよく、送信機、受信機、または両方のペアを含むことができる。例えば、個別のモジュールによって行われる機能のすべてまたは一部は、これらのモジュールの1つまたは複数によって行われてよい。さらに、本明細書で説明される機能は、様々な時間に、およびモジュールまたは構成要素の内部または外部の様々なイベントに関連して、行われてよい。また、様々なモジュール間で送られる情報は、データ・ネットワーク、インターネット、音声ネットワーク、インターネット・プロトコル・ネットワーク、ワイヤレス・デバイス、有線デバイスのうちの少なくとも1つを介して、または複数のプロトコルを介して、あるいはその両方を介して、モジュール間で送られてよい。また、モジュールのいずれかによって送られるか、または受け取られるメッセージは、直接的に、または他のモジュールのうちの1つもしくは複数を介して、あるいはその両方によって、送られるか、または受け取られてよい。
当業者は、「システム」は、パーソナル・コンピュータ、サーバ、コンソール、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)、携帯電話、タブレット・コンピューティング・デバイス、スマートフォン、もしくは他の任意の適切なコンピューティング・デバイス、またはデバイスの組合せとして具体化されてよいということを理解するであろう。「システム」によって行われるような上述の機能を提示することは、何らかの方式で本出願の範囲を限定することを意図するものではなく、多くの実施形態の1つの例を提供することを意図するものである。実際は、本明細書で開示される方法、システム、および装置は、コンピューティング技術と一致するローカライズされ、分散された形で実装されてよい。
本明細書で説明されるシステムの特徴のいくつかは、これらの実装形態の独立性を特に強調するためにモジュールとして提示されたということに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI:very large-scale integration)回路もしくはゲート・アレイを備えるハードウェア回路、ロジック・チップ、トランジスタなどの市販の半導体、または他の個別の構成要素として実装されてよい。モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、グラフィックス処理ユニット、または同様のものなどの、プログラマブル・ハードウェア・デバイスに実装されてもよい。
モジュールは、様々なタイプのプロセッサによって実行するために、ソフトウェアに少なくとも部分的に実装されてよい。実行可能コードの識別される単位は、例えば、オブジェクト、手続き、または関数として組織化され得る、例えば、コンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを備えることができる。それでも、識別されたモジュールの実行ファイルは、一緒に物理的に配置される必要はなく、一緒に論理的に結合されると、モジュールを含み、モジュールに対する決められた目的を実現する様々な場所に格納された完全に異なる命令を含むことができる。さらに、モジュールは、コンピュータ可読媒体に格納されてよく、媒体は、例えば、ハード・ディスク・ドライブ、フラッシュ・デバイス、ランダム・アクセス・メモリ(RAM)、テープ、またはデータを格納するために使用される他のこのような任意の媒体であってよい。
実際は、実行可能コードのモジュールは、単一の命令、または多くの命令であってよく、いくつかの様々なコード・セグメント上、様々なプログラムの中、およびいくつかのメモリ・デバイスにわたって分散されることさえ可能である。同様に、オペレーション・データは、モジュール内に本明細書では識別され、示されることがあり、任意の適切な形で具体化され、任意の適切なタイプのデータ構造の中で組織化されてよい。オペレーション・データは、単一のデータ・セットとして収集されてよく、また様々なストレージ・デバイスを含む様々な場所に分散されてもよく、単にシステムまたはネットワーク上の電子信号として少なくとも部分的に存在してもよい。
本出願の構成要素は、本明細書の図で全体的に説明され、示されるように、多種多様な様々な構成の中に配置され、デザインされてよいということが容易に理解されよう。したがって、実施形態の詳細な説明は、特許請求されるような本出願の範囲を限定することを意図するものではなく、本出願の選択された実施形態を表すにすぎない。
当業者は、上記は、異なる順序のステップで、または開示された構成とは異なる構成のハードウェア要素で、あるいはその両方で実践されてよいということを容易に理解するであろう。したがって、本出願は、これらの好ましい実施形態に基づいて説明されたが、いくつかの修正、変更、および代替の構造が明白であることが当業者には明白であろう。
本出願の好ましい実施形態が説明されたが、説明された実施形態は例示的なものにすぎず、本出願の範囲は、すべての範囲の均等物およびその変更形態(例えば、プロトコル、ハードウェア・デバイス、ソフトウェア・プラットフォーム、等)によって考慮されるとき、添付の特許請求の範囲によってのみ定義されるべきであるということを理解されたい。
110 クライアント・デバイス、クライアント・ノード、クライアント・システム、クライアント
120 ピア・ノード
130 裏書ノード(ロジックA)
130 裏書ノード(ロジックB)
140 順序付けノード
150 ネットワーク
201 アプリケーション・クライアント・ノード、クライアント、クライアント・ノード
205 ブロックチェーン・プラットフォーム
210 物理インフラストラクチャ、物理マシン、インフラストラクチャ
220 ブロックチェーン層(仮想実行環境)
230 信託業務(暗号)
250 プログラム/アプリケーション・コード、コード、アプリケーション・コード
252 ハッシュ化された識別子情報、ハッシュ化された識別子
254 サード・パーティのアプリケーションへの認められたアクセス
270 アプリケーション
280 ブロックチェーン・ノード281~284のグループ、ブロックチェーン・ノード
281 ブロックチェーン・ノード、ノード、裏書ピア・ノード、裏書ピア、ピア、ピア・ノード、ピア1、第1のピア・ノード
282 ブロックチェーン・ノード、ノード、ピア、ピア・ノード、ピア2、第2のピア・ノード
283 ブロックチェーン・ノード、ノード、ピア、ピア・ノード、ピア3、第3のピア・ノード
284 ブロックチェーン・ノード、ノード、順序付けサービス・ノード、順序付けサービス、順序付けノード、ピア4、第4のピア・ノード(順序付けノード)
291 トランザクション
292 レスポンス
293 トランザクション・データ
294 トランザクション
295 台帳にトランザクションをコミットする
300 許可されたブロックチェーン・ネットワーク、許可されたブロックチェーン
302 ブロックチェーンのユーザ
310 規制当局のシステム、規制当局
311 ブロックチェーンのネットワーク事業者のシステム、ブロックチェーンのネットワーク事業者
312 ピア・ノード、ピア、ノード
316 ブロックチェーンの開発者のシステム、開発者のシステム、ブロックチェーンの開発者
318 証明機関
320 処理プラットフォーム
330 データ・ソース
410 クライアント・ノード、クライアント/ノード(台帳A)
420 カスタマイズされた裏書処理を行うブロックチェーン・ノード、裏書ノード(台帳A)
421 クロック、システム・クロック
422 ブロックチェーン(台帳B)
423 外部データ・ソース、外部データベース、データ・ソース
424 ユーザ・インターフェース
510 クライアント・デバイスからブロックチェーンのトランザクションを受け取る
520 リード・セットおよびライト・セットを生成するためにトランザクションをシミュレートする
530 カスタマイズされた裏書ロジックの実行によって分散型台帳に対するトランザクションに裏書すべきかどうかを判断する
540 カスタマイズされた裏書ロジックの判断の結果についての情報を伝送する
531 オフ・チェーンで取得したデータに基づいて分散型台帳にトランザクションをコミットすべきか否かを判断する
532 トランザクションがコミットされるのを却下すると判断するのに応答して、却下の理由を判断する
533 判断された理由をクライアント・デバイスに伝送する
535 分散型台帳にトランザクションをコミットすると判断する
536 分散型台帳にコミットされるためのトランザクションの優先レベルを判断する
537 判断された優先レベルをクライアント・デバイスに伝送する
610 物理インフラストラクチャ
612 動作ステップ、ステップ/動作、ステップ
620 ブロックチェーン
640 スマート・コントラクト
652 ユーザ・デバイス、エンティティ、ユーザ・デバイス・エンティティ#1
654 サーバ
656 ユーザ・デバイス、エンティティ、ユーザ・デバイス・エンティティ#2
702 コンピュータ・システム/サーバ
704 プロセッサ、処理ユニット
706 システム・メモリ、メモリ
712 キャッシュ・メモリ、キャッシュ
714 ストレージ・システム
720 外部デバイス
722 ディスプレイ
724 I/Oインターフェース
726 ネットワーク・インターフェース、ネットワーク・アダプタ

Claims (17)

  1. ブロックチェーン・ノードであって、
    クライアント・デバイスからブロックチェーンのトランザクションを受け取るように構成されるネットワーク・インターフェースと、
    前記ブロックチェーンのトランザクションによって分散型台帳から読み取られるデータ のリード・セットおよびブロックチェーンの前記トランザクションによって分散型台帳に 書き込まれるデータのライト・セットを生成するために、分散型台帳の現在の状態に対し てブロックチェーンのトランザクションをシミュレートすること、および前記ブロックチェーン・ノードのカスタマイズ可能な裏書ロジックの実行によって、分散型台帳に関する前記トランザクション裏書すべきかどうかを判断することを行うように構成されるプロセッサと
    を備え、
    前記判断において分散型台帳に関して前記トランザクションを裏書しないことを決定し 、実行するカスタマイズ可能な裏書ロジックが、前記生成されたリード・セットおよびラ イト・セットを入力として受け取り、前記生成されたリード・セットおよびライト・セッ トに基づき、クライアント・デバイスがトランザクションを行う許可を有していないと決 定し、前記プロセッサが、前記カスタマイズされた裏書ロジックの判断の結果についての情報を前記クライアント・デバイスに伝送するように前記ネットワーク・インターフェースを制御するようにさらに構成される、
    ブロックチェーン・ノード。
  2. 前記ブロックチェーン・ノードの前記カスタマイズ可能な裏書ロジックの前記実行が、ブロックチェーンのトランザクションを裏書する別のブロックチェーン・ノードのカスタマイズ可能な裏書ロジックを実行することとは異なる裏書判断を行う、請求項1に記載のブロックチェーン・ノード。
  3. 前記カスタマイズ可能な裏書ロジックの前記実行が、外部データ・ソースからのオフ・チェーンで取得したデータに基づいて、前記分散型台帳に前記トランザクションを裏書すべきか否かを判断する、請求項1又は2に記載のブロックチェーン・ノード。
  4. 前記カスタマイズ可能な裏書ロジックの前記実行が、ユーザ・インターフェースから受け取られたユーザ入力に基づいて、前記分散型台帳に前記トランザクションを裏書すべきか否かを判断する、請求項1乃至3のいずれかに記載のブロックチェーン・ノード。
  5. 前記カスタマイズ可能な裏書ロジックの前記実行が、別のブロックチェーンから識別された情報に基づいて、前記分散型台帳に前記トランザクションを裏書すべきか否かを判断する、請求項1乃至4のいずれかに記載のブロックチェーン・ノード。
  6. 前記カスタマイズ可能な裏書ロジックの前記実行が、前記ブロックチェーン・ノードのシステム・クロックから抽出された情報に基づいて、前記分散型台帳に前記トランザクションを裏書すべきか否かを判断する、請求項1乃至5のいずれかに記載のブロックチェーン・ノード。
  7. 前記分散型台帳に関して前記トランザクションを裏書しないと判断するのに応答して、前記カスタマイズされた裏書ロジックの前記実行が、前記トランザクションを却下する理由をさらに判断し、前記プロセッサが、前記理由を前記クライアント・デバイスに伝送するように前記ネットワーク・インターフェースをさらに制御する、請求項1乃至6のいずれかに記載のブロックチェーン・ノード。
  8. 前記分散型台帳に前記トランザクションを裏書すると判断するのに応答して、前記カスタマイズされた裏書ロジックの前記実行が、前記分散型台帳に裏書されるための前記トランザクションの優先レベルをさらに判断し、前記プロセッサが、前記トランザクションの前記優先レベルを前記クライアント・デバイスに伝送するように前記ネットワーク・インターフェースをさらに制御する、請求項1乃至7のいずれかに記載のブロックチェーン・ノード。
  9. ブロックチェーン・ノードの方法であって、
    クライアント・デバイスからブロックチェーンのトランザクションを、ネットワークを介して受け取ることと、
    前記ブロックチェーンのトランザクションによって分散型台帳から読み取られるデータ のリード・セットおよびブロックチェーンの前記トランザクションによって分散型台帳に 書き込まれるデータのライト・セットを生成するために、分散型台帳の現在の状態に対し てブロックチェーンのトランザクションをシミュレートすることと、
    前記ブロックチェーン・ノードのカスタマイズ可能な裏書ロジックの実行によって、分 散型台帳に関する前記トランザクションを裏書すべきかどうかを判断することであって、 前記判断において分散型台帳に関して前記トランザクションを裏書しないことを決定し、 実行するカスタマイズ可能な裏書ロジックが、前記生成されたリード・セットおよびライ ト・セットを入力として受け取り、前記生成されたリード・セットおよびライト・セット に基づき、クライアント・デバイスがトランザクションを行う許可を有していないと決定することと、
    前記カスタマイズされた裏書ロジックの判断の結果についての情報を前記クライアント・デバイスに伝送すること
    を含む、方法。
  10. 前記ブロックチェーン・ノードのカスタマイズ可能な裏書ロジックを前記実行することが、前記トランザクションを裏書する別のブロックチェーン・ノードのカスタマイズ可能な裏書ロジックとは異なる裏書判断を行う、請求項9に記載の方法。
  11. 前記カスタマイズ可能な裏書ロジックによって前記判断することが、外部データ・ソースからのオフ・チェーンで取得したデータに基づいて、前記分散型台帳に前記トランザクションを裏書すべきか否かを判断することを含む、請求項9又は10に記載の方法。
  12. 前記カスタマイズ可能な裏書ロジックによって前記判断することが、ユーザ・インターフェースから受け取られたユーザ入力に基づいて、前記分散型台帳に前記トランザクションを裏書すべきか否かを判断することを含む、請求項9乃至11のいずれかに記載の方法。
  13. 前記カスタマイズ可能な裏書ロジックによって前記判断することが、別のブロックチェーンから識別された情報に基づいて、前記分散型台帳に前記トランザクションを裏書すべきか否かを判断することを含む、請求項9乃至12のいずれかに記載の方法。
  14. 前記カスタマイズ可能な裏書ロジックによって前記判断することが、前記ブロックチェーン・ノードのシステム・クロックから抽出された情報に基づいて、前記分散型台帳に前記トランザクションを裏書すべきか否かを判断することを含む、請求項9乃至13のいずれかに記載の方法。
  15. 分散型台帳に関して前記トランザクションを裏書するのを却下すると判断するのに応答して、前記裏書ロジックによって前記判断することが、前記トランザクションを却下する理由を判断することをさらに含み、前記伝送することが、前記判断された理由を前記クライアント・デバイスに伝送することをさらに含む、請求項9乃至14のいずれかに記載の方法。
  16. 前記分散型台帳に前記トランザクションを裏書すると判断するのに応答して、前記
    裏書ロジックによって前記判断することが、前記分散型台帳に裏書されるための前記トランザクションの優先レベルを判断することをさらに含み、前記伝送することが、前記判断された優先レベルを前記クライアント・デバイスに伝送することをさらに含む、請求項9乃至15のいずれかに記載の方法。
  17. 請求項9乃至16のいずれかに記載の方法の各ステップをコンピュータに実行させる、 コンピュータ・プログラム
JP2019039271A 2018-03-06 2019-03-05 ブロックチェーン・ノード、ブロックチェーン・ノードの方法、およびブロックチェーン・ノードのコンピュータ・プログラム Active JP7250568B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/913,521 US11494344B2 (en) 2018-03-06 2018-03-06 Customized endorsement logic for blockchain
US15/913521 2018-03-06

Publications (2)

Publication Number Publication Date
JP2019160312A JP2019160312A (ja) 2019-09-19
JP7250568B2 true JP7250568B2 (ja) 2023-04-03

Family

ID=67843273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019039271A Active JP7250568B2 (ja) 2018-03-06 2019-03-05 ブロックチェーン・ノード、ブロックチェーン・ノードの方法、およびブロックチェーン・ノードのコンピュータ・プログラム

Country Status (2)

Country Link
US (1) US11494344B2 (ja)
JP (1) JP7250568B2 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10880072B2 (en) * 2018-06-20 2020-12-29 Verizon Patent And Licensing Inc. Systems and methods for controlled random endorsement in a blockchain network
CN110740113B (zh) * 2018-07-20 2021-10-29 富士通株式会社 通过多个主体协作进行信息处理的方法和装置
CN112567408A (zh) * 2018-08-07 2021-03-26 科氏工业公司 用于访问控制的分布式账本平台
SG11202104293RA (en) 2018-11-02 2021-05-28 Verona Holdings Sezc A tokenization platform
CA3061603A1 (en) * 2018-11-14 2020-05-14 Royal Bank Of Canada System and method for storing contract data structures on permissioned distributed ledgers
FR3090156B1 (fr) * 2018-12-17 2022-03-04 Amadeus Sas Registre distribué
US11720545B2 (en) * 2018-12-19 2023-08-08 International Business Machines Corporation Optimization of chaincode statements
US11348101B2 (en) * 2018-12-19 2022-05-31 International Business Machines Corporation Post-settlement processes
CN111949315A (zh) * 2019-05-16 2020-11-17 富士通株式会社 用于区块链账本数据的管理装置和方法
CN110706106B (zh) * 2019-09-26 2022-07-26 联想(北京)有限公司 一种信息处理方法及设备
CN112685496B (zh) * 2019-10-18 2024-04-23 阿里巴巴集团控股有限公司 分布式***及其数据处理方法
US11349637B2 (en) * 2019-11-04 2022-05-31 International Business Machines Corporation Random node selection for permissioned blockchain
US11496558B2 (en) 2020-01-29 2022-11-08 Hewlett Packard Enterprise Development Lp Peer-to-peer blockchain fabric management mechanism
CN111352705B (zh) * 2020-02-25 2023-10-31 百度在线网络技术(北京)有限公司 一种区块链的事务处理方法、装置、设备和介质
CN111401898B (zh) * 2020-03-16 2024-02-27 联想(北京)有限公司 一种交易信息验证方法及电子设备
CN111414159B (zh) * 2020-03-16 2023-07-25 北京艾鸥科技有限公司 一种区块链虚拟机装置、虚拟机创建方法及交易方法
CN111414634B (zh) * 2020-03-18 2023-09-19 联想(北京)有限公司 一种信息处理方法及装置
US11362826B2 (en) 2020-03-18 2022-06-14 International Business Machines Corporation Endorsement process for non-deterministic application
CN111445334B (zh) * 2020-03-30 2023-09-05 北京数字认证股份有限公司 一种区块链***的聚合签名方法、装置及存储介质
US20220343323A1 (en) * 2020-03-30 2022-10-27 Hitachi, Ltd. Method and apparatus maintaining private data with consortium blockchain
CN111368344B (zh) * 2020-03-31 2023-03-21 西安理工大学 一种基于动态选举的提高背书节点容错性方法
CN111209346B (zh) * 2020-04-24 2020-07-28 腾讯科技(深圳)有限公司 一种区块链数据归档方法、装置和计算机可读存储介质
CN111629039B (zh) * 2020-05-20 2023-04-18 ***股份有限公司 一种区块链共识方法及客户端、背书节点、排序节点
CN116113936A (zh) * 2020-06-30 2023-05-12 交互数字专利控股公司 针对启用区块链的无线***中的交易管理的方法、架构、装置和***
WO2022006361A1 (en) * 2020-06-30 2022-01-06 Interdigital Patent Holdings, Inc. Methods, architectures, apparatuses and systems directed to messaging through blockchain networks
CN111882273A (zh) * 2020-07-20 2020-11-03 上海东普信息科技有限公司 基于区块链的业务费用结算方法、装置、设备及存储介质
JP2022021457A (ja) 2020-07-22 2022-02-03 富士通株式会社 情報処理プログラム、情報処理方法および情報処理装置
US11563559B2 (en) 2020-07-29 2023-01-24 International Business Machines Corporation Parallel processing of blockchain procedures
CN112016923A (zh) * 2020-08-28 2020-12-01 北京大学深圳研究生院 基于区块链的网内跨域身份管理方法、***以及算力网络
CN112199732B (zh) * 2020-09-01 2024-04-05 东方航空物流股份有限公司 一种基于区块链的航空物流电子运单管理方法
CN113158255A (zh) * 2020-10-30 2021-07-23 迅鳐成都科技有限公司 基于私有链的组织信息管理方法、装置、***及存储介质
CN112418856A (zh) * 2020-11-25 2021-02-26 政采云有限公司 一种摇号方法、装置、区块链、设备及计算机存储介质
US11640392B2 (en) * 2020-12-04 2023-05-02 International Business Machines Corporation Blockchain endorsement agreement
US11375009B1 (en) * 2020-12-07 2022-06-28 International Business Machines Corporation Minimizing the impact of malfunctioning peers on blockchain
US20220215340A1 (en) * 2021-01-04 2022-07-07 Bank Of America Corporation Distributed register perishable tracker engine
CN112988889B (zh) * 2021-03-04 2024-02-02 京东科技控股股份有限公司 区块链服务的实现方法、装置、设备及存储介质
CN112737782B (zh) * 2021-03-30 2021-06-25 支付宝(杭州)信息技术有限公司 提供跨链消息的方法和装置
CN113110977B (zh) * 2021-04-21 2022-04-22 中国电子科技网络信息安全有限公司 一种基于区块链***的安全监控方法
CN113411373B (zh) * 2021-04-26 2023-07-25 艾普工华科技(武汉)有限公司 一种交易数据存储方法、追踪溯源方法及区块链网络
CN113590611B (zh) * 2021-06-29 2023-11-24 杭州复杂美科技有限公司 区块执行方法、计算机设备和存储介质
US11789937B2 (en) * 2022-01-28 2023-10-17 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus for exchanging data between blockchain system and non-blockchain system
CN114938706B (zh) * 2022-01-28 2024-05-03 香港应用科技研究院有限公司 一种在区块链***与非区块链***之间进行数据交换的方法和设备
CN114757777A (zh) * 2022-04-29 2022-07-15 蚂蚁区块链科技(上海)有限公司 用于区块链的最优链路选择方法及装置和电子设备
US20230412402A1 (en) * 2022-06-15 2023-12-21 International Business Machines Corporation Endorsement policy consolidation in blockchain networks
CN115083637B (zh) * 2022-06-27 2023-10-13 华能核能技术研究院有限公司 球床式高温气冷堆燃料元件计数器逻辑判断方法及装置
CN116342041B (zh) * 2023-04-17 2023-11-07 深圳市感恩网络科技有限公司 一种基于区块链的国际贸易数据存储管理***及方法
CN117689384A (zh) * 2023-12-14 2024-03-12 厦门中卡科技股份有限公司 一种分布式数据库管理方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011187065A (ja) 2001-05-31 2011-09-22 Contentguard Holdings Inc 権利を行使するためのシステムの複数のデバイスによって読み出し可能なディジタル作品の権利を譲渡するシステム
JP2017050763A (ja) 2015-09-03 2017-03-09 日本電信電話株式会社 許諾情報管理システム、利用者端末、権利者端末、許諾情報管理方法、および、許諾情報管理プログラム
WO2017187395A1 (en) 2016-04-29 2017-11-02 nChain Holdings Limited A method and system for controlling the performance of a contract using a distributed hash table and a peer-to-peer distributed ledger
JP2018014567A (ja) 2016-07-19 2018-01-25 ソフトバンク株式会社 制御方法、情報処理システム、コンピュータ及び制御プログラム
WO2018020944A1 (ja) 2016-07-28 2018-02-01 日本電気株式会社 掲示板情報管理システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150170112A1 (en) 2013-10-04 2015-06-18 Erly Dalvo DeCastro Systems and methods for providing multi-currency platforms comprising means for exchanging and interconverting tangible and virtual currencies in various transactions, banking operations, and wealth management scenarios
US10812274B2 (en) 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
EP3403213A2 (fr) 2016-01-15 2018-11-21 Enrico Maim Procédés et systèmes mis en oeuvre dans une architecture en réseau de noeuds susceptibles de réaliser des transactions basées sur messages
US9849364B2 (en) 2016-02-02 2017-12-26 Bao Tran Smart device
US11829998B2 (en) 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
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
WO2018014123A1 (en) 2016-07-18 2018-01-25 Royal Bank Of Canada Distributed ledger platform for vehicle records
US20180158034A1 (en) * 2016-12-07 2018-06-07 International Business Machines Corporation Dynamic reordering of blockchain transactions to optimize performance and scalability
US20180365688A1 (en) * 2017-06-14 2018-12-20 International Business Machines Corporation Transaction execution and validation in a blockchain
CN111183445B (zh) * 2017-08-01 2024-03-08 数字资产(瑞士)股份有限公司 用于数字资产自动承诺结算的方法和装置
US20190188706A1 (en) * 2017-12-18 2019-06-20 Apple Inc. Transference tracking

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011187065A (ja) 2001-05-31 2011-09-22 Contentguard Holdings Inc 権利を行使するためのシステムの複数のデバイスによって読み出し可能なディジタル作品の権利を譲渡するシステム
JP2017050763A (ja) 2015-09-03 2017-03-09 日本電信電話株式会社 許諾情報管理システム、利用者端末、権利者端末、許諾情報管理方法、および、許諾情報管理プログラム
WO2017187395A1 (en) 2016-04-29 2017-11-02 nChain Holdings Limited A method and system for controlling the performance of a contract using a distributed hash table and a peer-to-peer distributed ledger
JP2018014567A (ja) 2016-07-19 2018-01-25 ソフトバンク株式会社 制御方法、情報処理システム、コンピュータ及び制御プログラム
WO2018020944A1 (ja) 2016-07-28 2018-02-01 日本電気株式会社 掲示板情報管理システム

Also Published As

Publication number Publication date
JP2019160312A (ja) 2019-09-19
US11494344B2 (en) 2022-11-08
US20190278852A1 (en) 2019-09-12

Similar Documents

Publication Publication Date Title
JP7250568B2 (ja) ブロックチェーン・ノード、ブロックチェーン・ノードの方法、およびブロックチェーン・ノードのコンピュータ・プログラム
US11689362B2 (en) Distributed ledger for generating and verifying random sequence
US10972274B2 (en) Trusted identity solution using blockchain
US11088826B2 (en) Managing assets with expiration on a blockchain
US10742424B2 (en) Trusted identity solution using blockchain
US10915552B2 (en) Delegating credentials with a blockchain member service
US10992456B2 (en) Certifying authenticity of data modifications
US11693840B2 (en) Database storing authenticated skill-based attributes
US20200052884A1 (en) Parallel transaction validation and block generation in a blockchain
US11849047B2 (en) Certifying authenticity of data modifications
US20200119910A1 (en) Selective exchange of transaction data
JP2021525931A (ja) ブロックチェーンのための効率的な検証
US11569996B2 (en) Anonymous rating structure for database
US10922097B2 (en) Collaborative model execution
US20200379977A1 (en) Anonymous database rating update
US11010728B2 (en) Timestamping changes to smart-contract state
US11568402B2 (en) Decentralized out-of-band accelerated blockchain transaction processing
US20200311695A1 (en) Privacy-preserving gridlock resolution
WO2019219324A1 (en) Automated data projection for smart contract groups on a blockchain
US11489662B2 (en) Special relationships in a blockchain
US20200117823A1 (en) Selective exchange of transaction data
US11374762B2 (en) Certifying authenticity of data modifications
US11475365B2 (en) Verification of stochastic gradient descent
US11196543B2 (en) Minimum evidence calculation in blockchain transactions
US11249949B2 (en) Batch processing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210816

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230322

R150 Certificate of patent or registration of utility model

Ref document number: 7250568

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150