(57)【要約】  例示的な動作は、ブロックチェーンに取り込まれるデータ・レコードを識別することと、ブロックチェーンにアクセス可能なデータ消費者に対してデータ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、スマート・コントラクト・グループが１つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、スマート・コントラクト・グループをブロックチェーン上で格納することと、のうちの１つまたは複数を含んでいてもよい。
2021524962.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンに取り込まれるデータ・レコードを識別することと、
前記ブロックチェーンにアクセス可能なデータ消費者に対して前記データ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、
前記スマート・コントラクト・グループが１つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、
前記スマート・コントラクト・グループを前記ブロックチェーン上で格納することと、
を含む方法。
【請求項２】
前記スマート・コントラクト・グループ中の各スマート・コントラクトに前記データ・レコードの異なる部分が割り当てられるように、前記データ・レコードの異なる部分を前記スマート・コントラクト・グループに割り当てることをさらに含む、請求項１に記載の方法。
【請求項３】
前記データ・レコードと関連付けられた複数のデータ・レコード・アクセス提案を含むグループ呼び出しトランザクション提案を識別することをさらに含む、請求項１に記載の方法。
【請求項４】
前記１つまたは複数のブロックチェーン・ピアにより前記グループ呼び出しトランザクション提案を承認することと、
前記グループ呼び出しトランザクション提案を配列サービスに送信することと、
をさらに含む、請求項３に記載の方法。
【請求項５】
前記承認したグループ呼び出しトランザクション提案を複数の個々の承認したスマート・コントラクトに分解することをさらに含む、請求項４に記載の方法。
【請求項６】
前記配列サービスから、前記ブロックチェーンに関与するブロックチェーン・トランザクションとして、前記１つまたは複数のブロックチェーン・ピアに対応する複数の承認したトランザクションを送信することをさらに含む、請求項５に記載の方法。
【請求項７】
前記配列サービスへの１つまたは複数のグループの登録を実行することであり、前記登録が、グループ識別子、レコード・フィールド、および前記スマート・コントラクト・グループに対応するスマート・コントラクト識別子を含む、前記実行することをさらに含む、請求項６に記載の方法。
【請求項８】
ブロックチェーンに取り込まれるデータ・レコードを識別することと、
前記ブロックチェーンにアクセス可能なデータ消費者に対して前記データ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、
前記スマート・コントラクト・グループが１つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、
前記スマート・コントラクト・グループを前記ブロックチェーン上で格納することと、
を行うように構成されたプロセッサを備えた装置。
【請求項９】
前記プロセッサが、前記スマート・コントラクト・グループ中の各スマート・コントラクトに前記データ・レコードの異なる部分が割り当てられるように、前記データ・レコードの異なる部分を前記スマート・コントラクト・グループに割り当てるようにさらに構成された、請求項８に記載の装置。
【請求項１０】
前記プロセッサが、前記データ・レコードと関連付けられた複数のデータ・レコード・アクセス提案を含むグループ呼び出しトランザクション提案を識別するようにさらに構成された、請求項８に記載の装置。
【請求項１１】
前記プロセッサが、前記１つまたは複数のブロックチェーン・ピアにより前記グループ呼び出しトランザクション提案を承認するようにさらに構成され、
前記装置が、前記グループ呼び出しトランザクション提案を配列サービスに送信するように構成された送信機をさらに備えた、請求項１０に記載の装置。
【請求項１２】
前記プロセッサが、前記承認したグループ呼び出しトランザクション提案を複数の個々の承認したスマート・コントラクトに分解するようにさらに構成された、請求項１１に記載の装置。
【請求項１３】
前記送信機が、前記配列サービスから、前記ブロックチェーンに関与するブロックチェーン・トランザクションとして、前記１つまたは複数のブロックチェーン・ピアに対応する複数の承認したトランザクションを送信するようにさらに構成された、請求項１２に記載の装置。
【請求項１４】
前記プロセッサが、前記配列サービスへの１つまたは複数のグループの登録を実行することであり、前記登録が、グループ識別子、レコード・フィールド、および前記スマート・コントラクト・グループに対応するスマート・コントラクト識別子を含む、前記実行することを行うようにさらに構成された、請求項１３に記載の装置。
【請求項１５】
非一過性コンピュータ可読記憶媒体であって、
実行された場合に、
ブロックチェーンに取り込まれるデータ・レコードを識別することと、
前記ブロックチェーンにアクセス可能なデータ消費者に対して前記データ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、
前記スマート・コントラクト・グループが１つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、
前記スマート・コントラクト・グループを前記ブロックチェーン上で格納することと、
をプロセッサに実行させる命令を格納するように構成された非一過性コンピュータ可読記憶媒体。
【請求項１６】
前記プロセッサが、前記スマート・コントラクト・グループ中の各スマート・コントラクトに前記データ・レコードの異なる部分が割り当てられるように、前記データ・レコードの異なる部分を前記スマート・コントラクト・グループに割り当てることを実行するようにさらに構成された、請求項１５に記載の非一過性コンピュータ可読記憶媒体。
【請求項１７】
前記プロセッサが、前記データ・レコードと関連付けられた複数のデータ・レコード・アクセス提案を含むグループ呼び出しトランザクション提案を識別することを実行するようにさらに構成された、請求項１５に記載の非一過性コンピュータ可読記憶媒体。
【請求項１８】
前記プロセッサが、
前記１つまたは複数のブロックチェーン・ピアにより前記グループ呼び出しトランザクション提案を承認することと、
前記グループ呼び出しトランザクション提案を配列サービスに送信することと、
を実行するようにさらに構成された、請求項１７に記載の非一過性コンピュータ可読記憶媒体。
【請求項１９】
前記プロセッサが、前記承認したグループ呼び出しトランザクション提案を複数の個々の承認したスマート・コントラクトに分解することを実行するようにさらに構成された、請求項１８に記載の非一過性コンピュータ可読記憶媒体。
【請求項２０】
前記プロセッサが、
前記配列サービスから、前記ブロックチェーンに関与するブロックチェーン・トランザクションとして、前記１つまたは複数のブロックチェーン・ピアに対応する複数の承認したトランザクションを送信することと、
前記配列サービスへの１つまたは複数のグループの登録を実行することであり、前記登録が、グループ識別子、レコード・フィールド、および前記スマート・コントラクト・グループに対応するスマート・コントラクト識別子を含む、前記実行することと、
を実行するようにさらに構成された、請求項１９に記載の非一過性コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、概してデータ投影に関し、より詳細には、分散台帳（ブロックチェーン等）上のスマート・コントラクトに対する自動データ投影の実行に関する。
【背景技術】
【０００２】
台帳は通常、トランザクションが記録された会計入力帳簿として規定される。分散台帳は、複数のコンピュータに対して全部または一部が複製された台帳である。暗号分散台帳（ＣＤＬ）は、不可逆性（トランザクションは、記録されると無効化できない）、アクセス可能性（如何なる関係者も、ＣＤＬの全部または一部にアクセス可能である）、時系列かつタイムスタンプ（トランザクションが台帳に追加されたタイミングをすべての関係者が把握する）、合意ベース（ネットワーク上の関係者により（通常は、全員一致で）承認された場合にのみトランザクションが追加される）、確認可能性（すべてのトランザクションが暗号学的に確認可能である）といった特性のうちの少なくとも一部を有し得る。ブロックチェーンは、ＣＤＬの一例である。本明細書の記載および図面は、ブロックチェーンの観点で説明するが、本願は、如何なるＣＤＬにも等しく当てはまる。
【０００３】
分散台帳は、他のブロックに関する暗号学的ハッシュの格納等、通常は暗号学的技術を適用するレコードの増え続けるリストである。ブロックチェーンは、分散台帳の１つの共通インスタンスであり、情報を格納する公開台帳として使用可能である。主として金融取引に利用されるものの、ブロックチェーンは、商品およびサービス（すなわち、製品、パッケージ、ステータス等）に関連するさまざまな情報を格納し得る。分散方式は、分散ネットワークに権威および信頼を与え、そのノードが継続的かつ連続的にそれぞれのトランザクションを公開「ブロック」に記録して、ブロックチェーンと称する一意の「チェーン」を生成可能となる。ハッシュ・コードを介した暗号化は、トランザクション源の認証の確保に用いられ、中央の仲介手段を不要にする。ブロックチェーンは、不変の特性により改竄および改訂から保護されたブロックチェーンのブロックにレコードの増え続けるリストを維持する分散データベースである。各ブロックには、タイムスタンプと、過去のブロックへのリンクとを含む。ブロックチェーンは、情報の保持、追跡、移動、および確認に使用可能である。ブロックチェーンが分散システムであることから、トランザクションをブロックチェーン台帳に追加する前に、すべてのピアが合意ステータスに達する必要がある。
【０００４】
従来、さまざまな用途において、生成者により生成されたデータ・レコードがその属性の部分集合に投影され、異なるデータ消費者に配布されている。たとえば、フィールド「Ｆ」を伴うデータのデータ・モデル「Ａ」のレコード「Ｒ」は、フィールドのｎ個の部分集合Ｓ１，・・・，Ｓｎ⊆Ｆに対し、Ｒ［Ｓｉ］：＝Ｒ｜（Ｓｉ）として投影され得る。各投影Ｒ［Ｓｉ］は、データ消費者の部分集合により独立して消費される。通常、生成者および消費者は、ネットワーク上に分散している。データは、高速に生成することも可能である。本質的に、これらの用途は、当業者に周知の分散出版−購読型システムと考えられる。あるデータ・レコード「Ｒ」は、当該レコード「Ｒ」の異なる部分集合を消費する種々異なる消費者を有し得る。予想される消費者アクセス動作を見越してデータ・レコードを編成することにより、最適な結果が得られる可能性がある。
【発明の概要】
【０００５】
例示的な一実施形態は、ブロックチェーンに取り込まれるデータ・レコードを識別することと、ブロックチェーンにアクセス可能なデータ消費者に対してデータ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、スマート・コントラクト・グループが１つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、スマート・コントラクト・グループをブロックチェーン上で格納することと、のうちの１つまたは複数を含む方法を提供するようにしてもよい。
【０００６】
別の例示的な実施形態は、ブロックチェーンに取り込まれるデータ・レコードを識別することと、ブロックチェーンにアクセス可能なデータ消費者に対してデータ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、スマート・コントラクト・グループが１つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、スマート・コントラクト・グループをブロックチェーン上で格納することと、を行うように構成されたプロセッサを備えた装置を含んでいてもよい。
【０００７】
さらに別の例示的な実施形態は、実行された場合に、ブロックチェーンに取り込まれるデータ・レコードを識別することと、ブロックチェーンにアクセス可能なデータ消費者に対してデータ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、スマート・コントラクト・グループが１つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、スマート・コントラクト・グループをブロックチェーン上で格納することと、のうちの１つまたは複数をプロセッサに実行させる命令を格納するように構成された非一過性コンピュータ可読記憶媒体を提供するようにしてもよい。
【０００８】
以下、添付の図面を参照して、本発明の実施形態を説明するが、これらは一例に過ぎない。
【図面の簡単な説明】
【０００９】
【図１Ａ】例示的な実施形態に係る、ブロックチェーン・データ・レコード管理構成のネットワーク図である。
【図１Ｂ】例示的な実施形態に係る、スマート・コントラクト・グループを用いたブロックチェーン・データ・レコード管理構成のネットワーク図である。
【図１Ｃ】例示的な実施形態に係る、生成ピアによるデータ・レコードの挿入のためのブロックチェーン・データ・レコード管理構成のネットワーク図である。
【図１Ｄ】例示的な実施形態に係る、生成ピアによるデータ・レコードの挿入のための配列サービスのブロックチェーン・データ・レコード管理構成のネットワーク図である。
【図２Ａ】例示的な実施形態に係る、データ・レコード管理のための例示的なピア・ノード・ブロックチェーン・アーキテクチャ構成を示した図である。
【図２Ｂ】例示的な実施形態に係る、例示的なピア・ノード・ブロックチェーン構成を示した図である。
【図３】例示的な実施形態に係る、認可ブロックチェーン・ネットワークを示した図である。
【図４】例示的な実施形態に係る、データ・レコード管理を実行するシステム・メッセージング図である。
【図５】例示的な実施形態に係る、ブロックチェーンにおけるデータ・レコード管理の例示的な方法のフロー図である。
【図６Ａ】例示的な実施形態に係る、本明細書に記載の１つまたは複数の動作に従って、さまざまな動作をブロックチェーン上で実行するように構成された例示的な物理的インフラを示した図である。
【図６Ｂ】例示的な実施形態に係る、契約関係者間の例示的なスマート・コントラクト構成およびスマート・コントラクト条件をブロックチェーン上で施行するように構成された仲介サーバを示した図である。
【図７】例示的な実施形態のうちの１つまたは複数に対応するように構成された例示的なコンピュータ・システムを示した図である。
【発明を実施するための形態】
【００１０】
本明細書の図面に大略記載するとともに図示する構成要素は、多種多様な異なる構成で配置および設計されていてもよいことが容易に了解される。したがって、添付の図面に示す方法、装置、非一過性コンピュータ可読媒体、およびシステムのうちの少なくとも１つの実施形態に関する以下の詳細な説明は、特許請求の範囲に係る本願の範囲の制限を意図したものではなく、選択的な実施形態を表しているに過ぎない。
【００１１】
本明細書の全体を通して記載する特徴、構造、または特性は、１つまたは複数の実施形態において、任意好適に組み合わされていてもよい。たとえば、本明細書の全体を通して、表現「例示的な実施形態（example embodiments）」、「いくつかの実施形態（some embodiments）」、または他の類似表現の使用は、当該実施形態に関して説明する特定の特徴、構造、または特性が少なくとも１つの実施形態に含まれ得るという事実を表す。このため、本明細書の全体を通して、表現「例示的な実施形態（example embodiments）」、「いくつかの実施形態において（in some embodiments）」、「他の実施形態において（in other embodiments）」、または他の類似表現の出現は必ずしも、同じグループの実施形態を表しておらず、記載の特徴、構造、または特性が１つまたは複数の実施形態において任意好適に組み合わされていてもよい。
【００１２】
また、実施形態の説明において用語「メッセージ（message）」を使用している可能性があるものの、本願は、パケット、フレーム、データグラム等、多くの種類のネットワーク・データに適用可能である。また、用語「メッセージ（message）」には、パケット、フレーム、データグラム、およびその任意の等価物を含む。さらに、例示的な実施形態においては、特定の種類のメッセージおよびシグナリングを示す可能性があるものの、これらは特定の種類のメッセージに限定されず、また、本願は特定の種類のシグナリングに限定されない。
【００１３】
例示的な実施形態は、ブロックチェーン・ネットワーク上でのデータの投影および配布を可能にする方法、デバイス、ネットワーク、またはシステム、あるいはその組み合わせを提供する。データの生成者／消費者は、エンタープライズ・ブロックチェーン・ネットワークのピア・レベル・ユーザであってもよい。スマート・コントラクトは、データの挿入、投影、および配布の実現に用いられるようになっていてもよい。具体的には、各投影Ｓｉについて、すべての生成ピア（すなわち、レコードを生成するピア）およびすべてのＳｉ消費ピア（すなわち、Ｓｉに対応するフィールドを消費するピア）を含むチャネルＣｉが存在する。
【００１４】
ブロックチェーンは、互いに通信する複数のノードを含む分散システムである。ブロックチェーンは、チェーンコードと称するプログラム（たとえば、スマート・コントラクト等）を動作させ、状態および台帳データを保持し、トランザクションを実行する。一部のトランザクションは、チェーンコード上で呼び出される動作である。一般的に、ブロックチェーン・トランザクションは通常、特定のブロックチェーン・メンバーによる「承認」が必要であり、承認トランザクションのみがブロックチェーンに関与し、ブロックチェーンの状態に影響を及ぼし得る。承認されていない他のトランザクションは、無視される。管理機能およびパラメータ用の１つまたは複数の特殊なチェーンコードが存在していてもよく、システム・チェーンコードと総称される。
【００１５】
ノードは、ブロックチェーン・システムの通信エンティティである。「ノード」は、異なる種類の複数のノードが同じ物理サーバ上で動作し得る意味において、論理的機能を実行し得る。ノードは、信頼領域においてグループ化され、当該ノードをさまざまに制御する論理エンティティと関連付けられる。ノードには、クライアントまたはトランザクション呼び出しを承認者（たとえば、ピア）に提出する提出クライアント・ノード等、異なる種類を含んでいてもよく、トランザクション提案を配列サービス（たとえば、配列ノード）にブロードキャストする。別の種類のノードは、クライアント提出のトランザクションを受信し、トランザクションに関与し、ブロックチェーン・トランザクションの台帳の状態およびコピーを維持し得るピア・ノードである。ピアは、承認者の役割も有し得るが、必須ではない。配列サービス・ノードまたは配列者は、すべてのノードに対する通信サービスを動作させるノードであり、トランザクションに関与してブロックチェーンの世界状態を修正する場合のシステム中のピア・ノードそれぞれへのブロードキャスト等の配送保証を実現するが、これは、制御およびセットアップ情報を通常含む最初のブロックチェーン・トランザクションの別の名称である。
【００１６】
台帳は、ブロックチェーンのすべての状態トランザクションの順序付き改竄防止レコードである。状態トランザクションは、参加関係者（たとえば、クライアント・ノード、配列ノード、承認者ノード、ピア・ノード等）により提出されたチェーンコード呼び出し（すなわち、トランザクション）の結果であってもよい。トランザクションは、生成、更新、消去等の１つまたは複数のオペランドとして台帳に関与する一組のアセット・キー値ペアとなり得る。台帳には、ブロック中の不変順序付きレコードの格納に用いられるブロックチェーン（チェーンとも称する）を含む。また、台帳には、ブロックチェーンの現在状態を維持する状態データベースを含む。通常は、チャネルごとに１つの台帳が存在する。各ピア・ノードは、メンバーとなっているチャネルごとに、台帳のコピーを維持する。
【００１７】
チェーンは、ハッシュ連結ブロックとして構造化されたトランザクション・ログであり、各ブロックには、一連のＮ個のトランザクションを含む（ここで、Ｎは１以上である）。ブロック・ヘッダには、ブロックのトランザクションのハッシュのほか、先行ブロックのヘッダのハッシュを含む。このように、台帳上のすべてのトランザクションが順序付けられ、暗号学的に一体連結されていてもよい。したがって、ハッシュ・リンクを破壊せずに台帳データを改竄することは不可能である。最も新しく追加されたブロックチェーンのブロックのハッシュは、その前に到着したチェーン上のあらゆるトランザクションを表し、すべてのピア・ノードが一貫した信頼状態となるように保証可能である。チェーンは、ピア・ノード・ファイル・システム（すなわち、ローカル、付属ストレージ、クラウド等）上に格納されていてもよく、ブロックチェーン負荷の追加専用の性質に効率良く対応する。
【００１８】
不変台帳の現在状態は、チェーン・トランザクション・ログに含まれるすべてのキーの最新値を表す。現在状態は、チャネルが把握する最新のキー値を表すため、世界状態と称する場合がある。チェーンコード呼び出しは、台帳の現在状態データに対してトランザクションを実行する。これらのチェーンコード相互作用を効率化するため、キーの最新値は、状態データベースに格納されていてもよい。状態データベースは単に、チェーンのトランザクション・ログへのインデックス付きビューであってもよいため、いつでもチェーンから再生可能である。状態データベースは、ピア・ノードの起動に際して、トランザクションが受け入れられる前に自動的に回復されるようになっていてもよい（または、必要に応じて生成されるようになっていてもよい）。
【００１９】
複数のスマート・コントラクトが生成され、データ・レコード「Ｒ」の特定の部分に割り当てられるようになっていてもよく、これらのデータ部分は、スマート・コントラクトごとに異なっていてもよいし、同じであってもよい。たとえば、別個のチャネルおよびデータ・レコード「Ｒ」のフィールドの特定の部分集合に対応する別個のスマート・コントラクトが生成され、一組のデータ消費者と共有される。２つの異なるスマート・コントラクトがデータ・フィールドの２つの異なる部分集合に対応するのでなければ、データ・レコード「Ｒ」の同じ部分を識別する特定のスマート・コントラクト同士が冗長となる。
【００２０】
図１Ａは、例示的な実施形態に係る、ブロックチェーン・データ・レコード管理構成のネットワーク図である。この構成１００Ａにおいて、レコード「Ｒ」１０２は、ブロックチェーンの各ピア・ノード上で動作するデータ管理アプリケーションにより識別される。このアプリケーションは、レコードＲを識別して、「ｉ」ごとにＲ［Ｓ１］１０４、Ｒ［Ｓ２］１０６、およびＲ［Ｓ３］１０８等の投影Ｒ［Ｓｉ］を演算する。トランザクション「提案」は、アプリケーションから承認ピアに送られるスマート・コントラクト実行呼び出しである。提案Ｐ１  １１０、Ｐ２  １１２、およびＰ３  １１４は、ピア１１６による承認プロセスに送られ、承認提案１１８、１２２、および１２４は、配列サービス１２６に転送されてブロックチェーンに関与する。ピアは、スマート・コントラクトの実行のシミュレーションによって、台帳に対する結果的な一組の変化（すなわち、読み書き集合）を生成するが、これは、承認トランザクション提案１１８〜１２４と称し、アプリケーションに送り返される。アプリケーションは、承認トランザクション提案１１８〜１２４を配列サービス１２６に送り、ここでトランザクションがブロックチェーンのブロックに追加されるが、これは、ピアがそれぞれの台帳への関与を受け入れることを前提に、他のトランザクションを含んでいてもよい。
【００２１】
チャネルは、当該チャネルに対応するとともにそのピアだけがアクセス可能な分散台帳を共有する一組のブロックチェーン・ピアである。チャネルは、共有台帳を修正する複数のスマート・コントラクトのインスタンスが作成されていてもよい。トランザクションの別個のブロックチェーンがそのピアによってチャネルごとに維持される。呼び出し提案は、スマート・コントラクト・トランザクション提案と同じである。また、スマート・コントラクトは、その状態の変化なく台帳への問い合わせのみを行うように実行可能であるが、これは、ピアによって単純に実行される問い合わせ提案となり、そのローカル台帳からの結果が呼び出し側アプリケーションに提供される。
【００２２】
図１Ｂは、例示的な実施形態に係る、スマート・コントラクト・グループを用いたブロックチェーン・データ・レコード管理構成のネットワーク図である。図１Ｂを参照して、構成１００Ｂには、ピア１１６による承認によって承認グループ呼び出し提案Ｐ１３４を生成するグループ呼び出し提案［Ｐ］１３２を受ける投影Ｒ［Ｓ１］１０４〜Ｒ［Ｓ３］１０８を備えたレコードＲ１０２を含む。グループ呼び出しは、同じデータ・レコード上の複数のスマート・コントラクトの「グループ」の組み合わせ実行である。このグループ読み出し提案は、アプリケーションによって、すべての構成スマート・コントラクトの実行のシミュレーションを行い、承認グループ呼び出し提案として組み合わされる承認トランザクション提案を生成する承認ピアに送られる。このグループ呼び出し提案は、アプリケーションにより受信された後、配列サービス１２６に送られる。承認グループ呼び出し提案中の異なる承認トランザクション提案は、異なるチャネルに対応し得ることから、それぞれのチャネルのブロックに配布される。これには、承認トランザクション提案への承認グループ呼び出し提案の分解および異なるピアに対応するチャネル固有ブロックへの承認トランザクション提案の再構築を含む。
【００２３】
図１Ｃは、例示的な実施形態に係る、生成ピアによるデータ・レコードの挿入のためのブロックチェーン・データ・レコード管理構成のネットワーク図である。図１Ｃを参照して、例示的な構成１００Ｃは、生成ピアによるレコードの挿入を可能とする。承認グループ呼び出し提案「Ｐ」１４２が受信されて分解１４４が行われると、結果は、複数の別個の承認提案Ｐ１  １４６〜Ｐ３  １５２である。配列サービス１５０は、承認グループ呼び出し提案をスマート・コントラクト・レベルの承認提案へと分解する。配列サービスは、ピア（生成者および消費者）ごとに、ブロックチェーンに関与するトランザクションとして、承認スマート・コントラクト提案の適当な再構築を送る。この手法は、配列サービス１５０により実行されるディスパッチ動作まで、グループ呼び出し動作の原子性を提供する。たとえば、スマート・コントラクト・グループを構成するスマート・コントラクトの個々のトランザクションはすべて、ピアにより承認され、配列サービスによりディスパッチされるか、あるいは、スマート・コントラクト／トランザクションは一切ディスパッチされない。この手法は、グループ呼び出し提案において実行されるバンドリングに起因するネットワーク輻輳の量を低下させる。
【００２４】
図１Ｄは、例示的な実施形態に係る、生成ピアによるデータ・レコードの挿入のための配列サービスのブロックチェーン・データ・レコード管理構成のネットワーク図である。図１Ｄを参照して、構成１００Ｄは、生成ピアごとに配列／承認サービスにそのグループを登録することを可能にする。この登録は、当該グループにおけるスマート・コントラクト１６４、１６６、および１６８ごとに、生成ピアに固有の投影と併せて、当該グループにおける「グループＩＤ」１６９、レコード・フィールド１６２、およびスマート・コントラクトＩＤを与え得る。この情報は、登録中に確認される。ピアにより生成されたグループ呼び出し提案には、挿入されるグループＩＤおよびデータ・レコードを含む。このグループの登録情報を用いることにより、承認サービスは、提案を承認する。コードは、承認ポリシー・レベルで存在し、如何なるスマート・コントラクトの一部でもない。承認提案には、当該グループにおけるスマート・コントラクトごとに、グループＩＤおよび読み書き集合を含む。ピアに対して配列サービスにより生成される再構築トランザクションには、関連する読み書き集合を含む。
【００２５】
図１Ｄに関して上述した使用の場合、基本的なスマート・コントラクトは、同じ入力データ・レコードのフィールド部分集合への投影として、スマート・コントラクト自体の台帳を演算して格納するのに用いられる。用語「投影（projection）」は、スマート・コントラクト「１」、「２」、および「３」が投影であるものと定める。スマート・コントラクト・グループは、構成スマート・コントラクト、入力データ・レコードの一組のフィールド、および識別用のグループＩＤによって与えられる。この情報は、ピアおよび配列サービスに登録される。アプリケーションは単に、そのグループ呼び出し提案の一部として、入力データ・レコードおよびグループＩＤをピアに送る。ピアは、グループＩＤを用いて、入力データ・レコードに対する実行により承認グループ呼び出し提案を生成するスマート・コントラクト・グループを決定する。
【００２６】
上記例によれば、生成者は、互いに独立したスマート・コントラクト・グループを規定することができる。このグループは、同じデータ・レコードの部分集合を入力として受信し、当該グループの複数のメンバーに基づいて、「呼び出し」を組み合わせ提案または単一のグループ呼び出しとして処理する。この手法は、ネットワーク輻輳の排除により通信効率を向上させる。
【００２７】
医療データ共有ネットワークの一具体例においては、病院が医療データの生成者である一方、提携サービス（たとえば、保険、医薬研究）エンティティがデータの消費者である。生成者により生成される医療データは、さまざまなテスト結果と併せて患者の識別情報に対応するフィールドを有する患者ごとのレコードの形態であってもよい。これらのレコードは、プライバシまたは契約上のポリシー、あるいはその両方に従って適当にフィルタリングおよび投影された後、消費者との共有が意図される。ブロックチェーン実施態様は、グループ・スマート・コントラクト手法の実装によって、医療データ共有のための効率的で堅牢なソリューションを提供し得る。病院は生成ピアであり、提携サービス・エンティティは消費ピアである。スマート・コントラクト・チャネルは、ネットワーク上で適当に規定および登録されたスマート・コントラクト・グループと併せて、必要なデータ投影ごとに展開される。
【００２８】
図２Ａは、例示的な実施形態に係る、ブロックチェーン・アーキテクチャ構成２００を示している。図２Ａを参照して、ブロックチェーン・アーキテクチャ２００は、特定のブロックチェーン要素（たとえば、ブロックチェーン・ノード・グループ２０２）を含んでいてもよい。ブロックチェーン・ノード２０２には、１つまたは複数のノード２０４〜２１０を含んでいてもよい（４つのノードを示すが、これは一例に過ぎない）。これらのノードは、ブロックチェーン・トランザクションの追加および有効化プロセス（合意）等、多くのアクティビティに参加する。ブロックチェーン・ノード２０４〜２１０のうちの１つまたは複数は、トランザクションを承認するとともに、アーキテクチャ２００中のすべてのブロックチェーン・ノードに対して配列サービスを提供するようにしてもよい。あるブロックチェーン・ノードがブロックチェーン認証を開始し、ブロックチェーン・レイヤ２１６に格納されたブロックチェーン不変台帳への書き込みを行うようにしてもよく、また、そのコピーが基盤となる物理的インフラ２１４に格納されるようになっていてもよい。ブロックチェーン構成には、参加者が求める専用構成に従って生成可能であり、それぞれの状態の維持、それぞれのアセットの制御、および外部情報の受信が可能な格納プログラム／アプリケーション・コード２２０（たとえば、チェーンコード、スマート・コントラクト等）へのアクセスおよび実行を行うアプリケーション・プログラミング・インターフェース（ＡＰＩ）２２２にリンクされた１つまたは複数のアプリケーション２２４を含んでいてもよい。これは、トランザクションとして展開可能であるとともに、分散台帳への追加によって、すべてのブロックチェーン・ノード２０４〜２１０にインストール可能である。
【００２９】
ブロックチェーン・ベースまたはプラットフォーム２１２は、ブロックチェーン・データのさまざまなレイヤ、サービス（たとえば、暗号学的信頼サービス、仮想実行環境等）、ならびに新たなトランザクションの受信・格納およびデータ入力にアクセスしようとしている監査役へのアクセス提供に使用可能な基盤となる物理コンピュータ・インフラを具備していてもよい。ブロックチェーン・レイヤ２１６は、プログラム・コードの処理および物理的インフラ２１４の手配に必要な仮想実行環境へのアクセスを提供するインターフェースを提示していてもよい。暗号学的信頼サービス２１８は、アセット交換トランザクション等のトランザクションの確認および情報の秘匿に使用可能である。
【００３０】
図２Ａのブロックチェーン・アーキテクチャ構成は、提示された１つまたは複数のインターフェースによるプログラム／アプリケーション・コード２２０の処理・実行およびブロックチェーン・プラットフォーム２１２により提供されたサービスの処理・実行を行うようにしてもよい。コード２２０は、ブロックチェーン・アセットを制御するようにしてもよい。たとえば、コード２２０は、データの格納および移動が可能であり、その実行の影響を受ける条件等のコード要素を有するスマート・コントラクトおよび関連するチェーンコードの形態でノード２０４〜２１０により実行されるようになっていてもよい。非限定的な一例としては、変更、更新等を受ける注意喚起、更新、または他の通知、あるいはその組み合わせを実行するスマート・コントラクトが生成されるようになっていてもよい。台帳の権限およびアクセス要件ならびに使用と関連付けられたルールの識別には、スマート・コントラクト自体を使用可能である。
【００３１】
チェーンコードにおいては、高レベルのアプリケーションおよびプログラミング言語によってスマート・コントラクトが生成された後、ブロックチェーンのブロックに書き込まれるようになっていてもよい。スマート・コントラクトは、ブロックチェーン（たとえば、ブロックチェーン・ピアの分散ネットワーク）により登録、格納、または複製、あるいはその組み合わせがなされた実行可能コードを含んでいてもよい。トランザクションは、満たすべきスマート・コントラクトと関連付けられた条件に応じて実行可能なスマート・コントラクト・コードの実行である。スマート・コントラクトの実行によって、デジタル・ブロックチェーン台帳の状態の信頼修正がトリガされるようになっていてもよい。スマート・コントラクトの実行によるブロックチェーン台帳の修正は、１つまたは複数の合意手順を通じて、ブロックチェーン・ピアの分散ネットワーク全体で自動的に複製されるようになっていてもよい。
【００３２】
スマート・コントラクトは、キー値ペアのフォーマットでデータをブロックチェーンに書き込むようにしてもよい。さらに、スマート・コントラクト・コードは、ブロックチェーンに格納された値を読み出して、それらをアプリケーションの動作において使用することができる。スマート・コントラクト・コードは、さまざまな論理演算の出力をブロックチェーンに書き込むことができる。コードは、仮想マシン等のコンピューティング・プラットフォームにおいて一時データ構造の生成に使用されるようになっていてもよい。ブロックチェーンに書き込まれるデータは、公開であることが可能であり、または非公開として暗号化および維持されることが可能であり、あるいはその両方である。スマート・コントラクトが使用／生成する一時データは、供給された実行環境によりメモリに保持された後、ブロックチェーンに必要なデータが識別された時点で消去される。
【００３３】
チェーンコードには、付加的な特徴とともに、スマート・コントラクトのコード解釈を含んでいてもよい。本明細書に記載の通り、チェーンコードは、合意プロセスにおいてチェーン実効者により一体的に実行および有効化が行われるコンピューティング・ネットワーク上に展開されたプログラム・コードであってもよい。チェーンコードは、ハッシュを受信し、格納済みの特徴抽出者の使用により生成されるデータ・テンプレートと関連付けられたハッシュをブロックチェーンから読み出す。ハッシュ識別子のハッシュと格納識別子テンプレート・データから生成されるハッシュとが一致する場合、チェーンコードは、要求されたサービスに権限付与キーを送る。チェーンコードは、暗号学的詳細と関連付けられたデータをブロックチェーンに書き込むようにしてもよい。図２Ａにおいて、一例においては、グループ呼び出し提案の潜在的なデータ・セットとして、データ・レコードの特定の部分集合の識別２２６が行われるが、これは、ネットワーク性能を最適化し得るとともに、種々異なる関係者に対して最適なアクセスを提供し得る。異なるスマート・コントラクトの規定２２８によって、データ・レコードの異なる部分を表すことができる。スマート・コントラクトの集合は、ブロックチェーン・ピア・ノード２０１のうちの１つまたは複数により識別および承認されるスマート・コントラクト・グループ２２８としてセットアップされるようになっていてもよい。
【００３４】
図２Ｂは、例示的な一実施形態に係る、ブロックチェーンのノード間のトランザクション・フロー２５０の一例を示している。図２Ｂを参照して、このトランザクション・フローは、アプリケーション・クライアント・ノード２６０により承認ピア・ノード２８１に送られたトランザクション提案２９１を含んでいてもよい。承認ピア２８１は、クライアントのサインを確認するとともに、チェーンコード関数を実行して、トランザクションを開始するようにしてもよい。出力には、チェーンコード結果、チェーンコードに読み込まれた一組のキー／値バージョン（読み込み集合）、およびチェーンコードに書き込まれた一組のキー／値（書き込み集合）を含んでいてもよい。提案応答２９２は、承認された場合に、承認サインと併せてクライアント２６０に送り返される。クライアント２６０は、承認をトランザクション・ペイロード２９３として組み立て、配列サービス・ノード２８４にブロードキャストする。そして、配列サービス・ノード２８４は、配列されたトランザクションをブロックとして、チャネル上のすべてのピア２８１〜２８３に配送する。各ピア２８１〜２８３は、ブロックチェーンに関与する前に、トランザクションを有効化するようにしてもよい。たとえば、ピアは、承認ポリシーを確認して、指定ピアの正しい割り当てにより結果がサインされ、トランザクション・ペイロード２９３に対してサインが認証済みとなるようにしてもよい。
【００３５】
再び図２Ｂを参照して、クライアント・ノード２６０は、リクエストの構成および承認者であるピア・ノード２８１への送信によって、トランザクション２９１を開始する。クライアント２６０は、ＮＯＤＥ、ＪＡＶＡ（Ｒ）、ＰＹＴＨＯＮ等、利用可能なＡＰＩを利用してトランザクション提案を生成するサポート付きのソフトウェア開発キット（ＳＤＫ）を活用したアプリケーションを含んでいてもよい。この提案は、台帳に対するデータの読み出しまたは書き込み、あるいはその両方（すなわち、アセットの新たなキー値ペアの書き込み）が可能になるようにチェーンコード関数を呼び出すリクエストである。ＳＤＫは、適正に構成されたフォーマット（たとえば、リモート・プロシージャ・コール（ＲＰＣ）上のプロトコル・バッファ）へとトランザクション提案をパッケージングするとともに、クライアントの暗号学的認証情報を取得して、トランザクション提案の一意のサインを生成するシムとして機能し得る。
【００３６】
これに応答して、承認ピア・ノード２８１は、（ａ）トランザクション提案が十分に形成されていること、（ｂ）トランザクションが過去にまだ提出されていないこと（リプレイアタック保護）、（ｃ）サインが有効であること、および（ｄ）提案の動作を当該チャネル上で実行するように提出者（本例ではクライアント２６０）が適正に権限付与されていることを確認するようにしてもよい。承認ピア・ノード２８１は、呼び出されたチェーンコード関数に渡す引数としてトランザクション提案入力を見なすようにしてもよい。その後、現在状態データベースに対するチェーンコードの実行によって、応答値、読み込み集合、および書き込み集合を含むトランザクション結果を生成する。ただし、この時点では、台帳が更新されることはない。２９２においては、承認ピア・ノード２８１のサインと併せて、消費するアプリケーションのペイロードを構文解析するクライアント２６０のＳＤＫに値集合が提案応答２９２として戻される。
【００３７】
これに応答して、クライアント２６０のアプリケーションは、承認ピアのサインを検査／確認するとともに、提案応答を比較して、提案応答が同じであるかを判定する。チェーンコードが台帳のみを問い合わせているのであれば、アプリケーションは、問い合わせ応答を検査し、通常は、トランザクションを配列サービス・ノード２８４に提出しない。クライアントのアプリケーションは、トランザクションを配列サービス・ノード２８４に提出して台帳を更新することを意図する場合、提出前に指定の承認ポリシーが満たされているか（すなわち、トランザクションに必要なすべてのピア・ノードが当該トランザクションを承認していたか）を判定する。ここで、クライアントは、トランザクションに対する複数の関係者のうちの１つだけを含んでいてもよい。この場合、各クライアントは、それ自体の承認ノードを有していてもよく、各承認ノードがトランザクションを承認することが必要となる。このアーキテクチャでは、アプリケーションが応答を検査しないことを選択するか、あるいは、未承認トランザクションを転送する場合であっても、承認ポリシーが依然としてピアにより強制され、関与有効化段階で支持されるようにする。
【００３８】
検査に成功した後、ステップ２９３において、クライアント２６０は、承認をトランザクションとして組み立て、トランザクション提案および応答をトランザクション・メッセージ内で配列ノード２８４にブロードキャストする。トランザクションには、読み書き集合、承認ピアのサイン、およびチャネルＩＤを含んでいてもよい。配列ノード２８４は、その動作の実行のためにトランザクションの全内容を検査する必要がなく、代替として単に、ネットワークのすべてのチャネルからトランザクションを受信し、チャネルによって時系列に配列し、チャネルごとにトランザクションのブロックを生成するようにしてもよい。
【００３９】
トランザクションのブロックは、配列ノード２８４からチャネル上のすべてのピア・ノード２８１〜２８３に配送される。ブロック内のトランザクション２９４の有効化によって、任意の承認ポリシーが満たされ、トランザクションの実行によって読み込み集合が生成されてから読み込み集合の変数に対して台帳の状態が変化していないものとする。ブロック中のトランザクションは、有効または無効としてタグ付けがなされる。さらに、ステップ２９５においては、各ピア・ノード２８１〜２８３がブロックをチャネルのチェーンに追加し、有効なトランザクションごとに、書き込み集合が現在状態データベースに関与する。イベントの発出によって、トランザクション（呼び出し）が変わりなくチェーンに追加されたことのほか、トランザクションが有効化されたか無効化されたかをクライアントのアプリケーションに通知する。
【００４０】
図３は、非集中的な分散ピアツーピア・アーキテクチャと、ユーザの役割および認可を管理する認証機関３１８とを特徴とする認可ブロックチェーン・ネットワーク３００の一例を示している。本例において、ブロックチェーン・ユーザ３０２は、トランザクションを認可ブロックチェーン・ネットワーク３１０に提出するようにしてもよい。本例において、トランザクションとしては、展開、呼び出し、または問い合わせが可能であり、ＲＥＳＴ  ＡＰＩ等により直接ＳＤＫを活用するクライアント側アプリケーションを通じて発行されるようになっていてもよい。信頼できるビジネス・ネットワークが監査役（たとえば、米国株式市場における証券取引委員会）等の規制者システム３１４へのアクセスを提供するようにしてもよい。一方、ノード３１２のブロックチェーン・ネットワーク・オペレータ・システムは、規制者システム３１４の「監査役」としての登録およびブロックチェーン・ユーザ３０２の「クライアント」としての登録等、メンバーの認可を管理する。監査役が台帳への問い合わせのみに制限される一方、クライアントには、特定種類のチェーンコードの展開、呼び出し、および問い合わせの権限を付与することも可能である。
【００４１】
ブロックチェーン開発者システム３１６がチェーンコードおよびクライアント側アプリケーションを記述する。ブロックチェーン開発者システム３１６は、ＲＥＳＴインターフェースを通じて直接、チェーンコードをネットワークに展開可能である。従来のデータ源３３０からの認証情報をチェーンコードに取り込むため、開発者システム３１６は、帯域外接続を用いてデータにアクセスすることも可能である。本例において、ブロックチェーン・ユーザ３０２は、ピア・ノード３０８を通じてネットワークにつながる。任意のトランザクションを進める前に、ピア・ノード３０８は、認証機関３１８から、ユーザの登録およびトランザクション証明書を読み出す。場合によっては、認可ブロックチェーン・ネットワーク３１０上でのトランザクションのため、ブロックチェーン・ユーザがこれらのデジタル証明書を有する必要がある。一方、チェーンコードを駆動しようとするユーザは、従来のデータ源３３０上でそれぞれの認証情報を確認することが必要となり得る。ユーザの権限を確認するため、チェーンコードは、従来の処理プラットフォーム３２０を通じたこのデータへの帯域外接続を使用可能である。
【００４２】
図４は、例示的な実施形態に係る、データ・レコード管理を実行するシステム・メッセージング図である。図４を参照して、システム構成４００は、ブロックチェーン・ピア・グループ４１０、ブロックチェーン・トランザクションを管理する配列サービス４２０、およびブロックチェーン４３０を提供する。一例において、ピアは、データ・レコードに関するデータ・レコード提案の受信４１２およびデータ・レコード提案の承認４１４を行うようにしてもよく、これは、ブロックチェーンにおいてスマート・コントラクト・グループにより表されることになる。承認提案４１６は、配列サービス４２０に転送されてもよく、提案は個々のスマート・コントラクト・レベルのブロックチェーン・トランザクションへの分解４１８が行われ、ブロックチェーン４３０に関与するトランザクションのブロックとしての再構築４２２が行われるようになっていてもよい。トランザクションのブロックは、ブロックチェーンへの転送４２４および関与４２６が行われる。
【００４３】
図５は、例示的な実施形態に係る、ブロックチェーンにおけるデータ・レコード管理の例示的な方法のフロー図である。図５を参照して、方法５００は、ブロックチェーンに取り込まれるデータ・レコードの識別５１２と、ブロックチェーンにアクセス可能なデータ消費者に対してデータ・レコードへのアクセスを可能にするスマート・コントラクト・グループの生成５１４と、スマート・コントラクト・グループが１つまたは複数のブロックチェーン・ピアにより登録された旨の判定５１６と、スマート・コントラクト・グループのブロックチェーン上での格納５１８とを含む。また、この方法は、スマート・コントラクト・グループ中の各スマート・コントラクトにデータ・レコードの異なる部分が割り当てられるように、データ・レコードの異なる部分をスマート・コントラクト・グループに割り当てることを含む。この方法は、データ・レコードと関連付けられた複数のスマート・コントラクト・レベルのデータ・レコード・アクセス提案を含むグループ呼び出しトランザクション提案を識別することと、１つまたは複数のブロックチェーン・ピアによりグループ呼び出しトランザクション提案を承認することと、グループ呼び出しトランザクション提案を配列サービスに送信することと、承認したグループ呼び出しトランザクション提案を複数の個々の承認スマート・コントラクトに分解することと、配列サービスから、ブロックチェーンに関与するブロックチェーン・トランザクションとして、１つまたは複数のブロックチェーン・ピアに対応する複数の承認トランザクションを送信することと、配列サービスへの１つまたは複数のグループの登録を実行することであり、当該登録が、グループ識別子、レコード・フィールド、およびスマート・コントラクト・グループに対応するスマート・コントラクト識別子を含む、実行することとをさらに含んでいてもよい。
【００４４】
図６Ａは、例示的な実施形態に係る、例示的な動作方法のうちの１つまたは複数に従って、さまざまな動作をブロックチェーン上で実行するように構成された例示的な物理的インフラを示している。図６Ａを参照して、例示的な構成６００は、ブロックチェーン６２０およびスマート・コントラクト６４０を備えた物理的インフラ６１０を含み、例示的な実施形態のいずれかに含まれる動作ステップ６１２のいずれかを実行するようにしてもよい。ステップ／動作６１２には、１つまたは複数のフロー図またはロジック図、あるいはその両方に記載または図示のステップのうちの１つまたは複数を含んでいてもよい。これらのステップは、コンピュータ・システム構成の物理的インフラ６１０上に存在する１つまたは複数のスマート・コントラクト６４０またはブロックチェーン６２０、あるいはその両方に対して読み書きされる出力または書き込み情報を表していてもよい。データは、実行されたスマート・コントラクト６４０またはブロックチェーン６２０、あるいはその両方から出力可能である。物理的インフラ６１０には、１つまたは複数のコンピュータ、サーバ、プロセッサ、メモリ、または無線通信デバイス、あるいはその組み合わせを含んでいてもよい。
【００４５】
図６Ｂは、例示的な実施形態に係る、契約関係者間の例示的なスマート・コントラクト構成およびスマート・コントラクト条件をブロックチェーン上で施行するように構成された仲介サーバを示している。図６Ｂを参照して、構成６５０は、通信セッション、アセット移動セッション、または１つもしくは複数のユーザ・デバイス６５２もしくは６５６、あるいはその両方を明確に識別するスマート・コントラクト６４０により駆動されるプロセスもしくは手順を表していてもよい。スマート・コントラクト実行の実行、動作、および結果は、サーバ６５４により管理されるようになっていてもよい。スマート・コントラクト６４０の内容には、スマート・コントラクト・トランザクションの関係者であるエンティティ６５２および６５６のうちの１つまたは複数によるデジタル・サインを要する場合がある。スマート・コントラクトの実行結果は、ブロックチェーン・トランザクションとしてブロックチェーンに書き込まれるようになっていてもよい。
【００４６】
上記実施形態は、ハードウェア、プロセッサにより実行されるコンピュータ・プログラム、ファームウェア、またはこれらの組み合わせにて実現されていてもよい。コンピュータ・プログラムは、記憶媒体等のコンピュータ可読媒体上で具現化されていてもよい。たとえば、コンピュータ・プログラムは、ランダム・アクセス・メモリ（「ＲＡＭ」）、フラッシュ・メモリ、リードオンリー・メモリ（「ＲＯＭ」）、消去・プログラム可能リードオンリー・メモリ（「ＥＰＲＯＭ」）、電気的消去・プログラム可能リードオンリー・メモリ（「ＥＥＰＲＯＭ」）、レジスタ、ハード・ディスク、リムーバブル・ディスク、コンパクト・ディスク・リードオンリー・メモリ（「ＣＤ−ＲＯＭ」）、または当技術分野において既知の記憶媒体のその他任意の形態に存在していてもよい。
【００４７】
プロセッサが記憶媒体に対する情報の読み書きを行えるように、例示的な記憶媒体がプロセッサに結合されていてもよい。この代替として、記憶媒体は、プロセッサに一体化されていてもよい。プロセッサおよび記憶媒体は、特定用途向け集積回路（「ＡＳＩＣ」）中に存在していてもよい。この代替として、プロセッサおよび記憶媒体は、離散コンポーネントとして存在していてもよい。たとえば、図７は、例示的なコンピュータ・システム・アーキテクチャ７００を示しており、上述の構成要素等のいずれかを表していてもよいし、いずれかに組み込まれていてもよい。
【００４８】
図７は、本明細書に記載の本願の実施形態の使用または機能の範囲に関する制限の示唆を何ら意図したものではない。いずれにしろ、コンピューティング・ノード７００は、実装または上述の機能のいずれかの実行、あるいはその両方が可能である。
【００４９】
コンピューティング・ノード７００には、他の多くの汎用または専用コンピュータ・システム環境または構成と作用するコンピュータ・システム／サーバ７０２が存在する。コンピュータ・システム／サーバ７０２との併用に適し得る周知のコンピュータ・システム、環境、または構成、あるいはその組み合わせの例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式もしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、ならびに上記システムもしくはデバイスのいずれかを含む分散クラウド・コンピューティング環境等が挙げられるが、これらに限定されない。
【００５０】
コンピュータ・システム／サーバ７０２は、プログラム・モジュール等、コンピュータ・システムにより実行されるコンピュータ・システム実行可能命令の一般的背景にて記述されていてもよい。一般的に、プログラム・モジュールとしては、特定のタスクの実行または特定の抽象データ型の実装を行うルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造等が挙げられる。コンピュータ・システム／サーバ７０２は、通信ネットワークを通じてつながったリモート処理機器によりタスクが実行される分散クラウド・コンピューティング環境において実現されるようになっていてもよい。分散クラウド・コンピューティング環境においては、メモリ記憶装置を含むローカルおよびリモートの両コンピュータ・システム記憶媒体にプログラム・モジュールが配置されていてもよい。
【００５１】
図７に示すように、クラウド・コンピューティング・ノード７００におけるコンピュータ・システム／サーバ７０２は、汎用コンピュータ機器の形態で示している。コンピュータ・システム／サーバ７０２の構成要素としては、１つまたは複数のプロセッサまたは処理ユニット７０４、システム・メモリ７０６、およびシステム・メモリ７０６を含むさまざまなシステム構成要素をプロセッサ７０４に結合するバスが挙げられるが、これらに限定されない。
【００５２】
バスは、任意の複数種類のバス構造のうちの１つまたは複数を表し、多様なバス・アーキテクチャのいずれかを用いたメモリ・バスもしくはメモリ・コントローラ、周辺機器用バス、アクセラレイテッド・グラフィックス・ポート、ならびにプロセッサもしくはローカル・バスが挙げられる。非限定的な一例として、このようなアーキテクチャとしては、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス規格協会（ＶＥＳＡ）ローカル・バス、および周辺機器相互接続（ＰＣＩ）バスが挙げられる。
【００５３】
コンピュータ・システム／サーバ７０２は通常、多様なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ７０２によりアクセス可能な任意の利用可能な媒体であってもよく、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体の両者を含む。一実施形態において、システム・メモリ７０６は、その他の図面のフロー図を実装する。システム・メモリ７０６は、ランダム・アクセス・メモリ（ＲＡＭ）７１０またはキャッシュ・メモリ７１２、あるいはその両方等、揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム／サーバ７０２は、他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ・システム記憶媒体をさらに含んでいてもよい。非リムーバブル不揮発性磁気媒体（図示しないが、通常は「ハード・ドライブ」と称する）に対する読み書き用として、ストレージ・システム７１４を設けることも可能であるが、一例に過ぎない。図示はしていないものの、リムーバブル不揮発性磁気ディスク（たとえば、「フロッピー・ディスク」）に対する読み書き用の磁気ディスク・ドライブならびにＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、もしくは他の光学媒体等のリムーバブル不揮発性光ディスクに対する読み書き用の光ディスク・ドライブを設けることも可能である。このような場合は、１つまたは複数のデータ媒体インターフェースによって、それぞれをバスに接続可能である。以下に別途図示および説明する通り、メモリ７０６は、本願の種々の実施形態の機能を実行するように構成された一組（たとえば、少なくとも一組）のプログラム・モジュールを有する少なくとも１つのプログラム製品を含んでいてもよい。
【００５４】
非限定的な一例として、一組（少なくとも一組）のプログラム・モジュール７１８を有するプログラム／ユーティリティ７１６のほか、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データがメモリ７０６に格納されていてもよい。オペレーティング・システム、１つもしく複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらの何らかの組み合わせはそれぞれ、ネットワーキング環境の一実施態様を含んでいてもよい。プログラム・モジュール７１８は一般的に、本明細書に記載の本願の種々実施形態の機能または方法、あるいはその両方を実行する。
【００５５】
当業者には当然のことながら、本願の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化されていてもよい。したがって、本願の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等）、またはソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態であってもよく、本明細書においては、これらすべてを全体的に「回路」、「モジュール」、または「システム」と総称する場合がある。さらに、本願の態様は、コンピュータ可読プログラム・コードが具現化された１つまたは複数のコンピュータ可読媒体において具現化されたコンピュータ・プログラム製品の形態であってもよい。
【００５６】
また、コンピュータ・システム／サーバ７０２は、キーボード、ポインティング・デバイス、ディスプレイ７２２等の１つもしくは複数の外部デバイス７２０、ユーザによる当該コンピュータ・システム／サーバ７０２との相互作用を可能にする１つもしくは複数のデバイス、または当該コンピュータ・システム／サーバ７０２による１つもしくは複数の他のコンピュータ機器との通信を可能にする任意のデバイス（たとえば、ネットワーク・カード、モデム等）、あるいはその組み合わせと通信するようになっていてもよい。このような通信は、入出力（Ｉ／Ｏ）インターフェース７２４を介して発生し得る。さらに、コンピュータ・システム／サーバ７０２は、ネットワーク・アダプタ７２６を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的なワイド・エリア・ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（たとえば、インターネット）、あるいはその組み合わせ等の１つまたは複数のネットワークと通信可能である。図示のように、ネットワーク・アダプタ７２６は、バスを介して、コンピュータ・システム／サーバ７０２の他の構成要素と通信する。図示はしていないものの、コンピュータ・システム／サーバ７０２と併せて、他のハードウェアまたはソフトウェア構成要素、あるいはその両方を使用することも可能であることが了解されるものとする。その例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ記録ストレージ・システム等が挙げられるが、これらに限定されない。
【００５７】
システム、方法、および非一過性コンピュータ可読媒体のうちの少なくとも１つの例示的な一実施形態を添付の図面に示すとともに、上記詳細な説明に記載したが、本願は、開示の実施形態に限定されず、以下の特許請求の範囲により明記および規定される多くの再構成、改良、および代替が可能であることが了解される。たとえば、さまざまな図面のシステムの機能は、本明細書に記載のモジュールまたはコンポーネントのうちの１つまたは複数による実行も可能であるし、分散アーキテクチャにおける実行も可能であり、また、送信機、受信機、または両者のペアを具備していてもよい。たとえば、個々のモジュールが実行する機能の全部または一部がこれらモジュールのうちの１つまたは複数により実行されるようになっていてもよい。さらに、本明細書に記載の機能は、モジュールまたはコンポーネントの内部または外部のさまざまなイベントとの関連で何度も実行されるようになっていてもよい。また、さまざまなモジュール間で送られる情報は、データ・ネットワーク、インターネット、ボイス・ネットワーク、インターネット・プロトコル・ネットワーク、無線デバイス、有線デバイスのうちの少なくとも１つ、または複数のプロトコル、あるいはその組み合わせを介してモジュール間で送信可能である。また、モジュールのいずれかにより送受信されるメッセージは、直接的な送受信またはその他のモジュールのうちの１つもしくは複数を介した送受信、あるいはその両方が可能である。
【００５８】
当業者には当然のことながら、「システム」は、パソコン、サーバ、コンソール、個人用デジタル補助装置（ＰＤＡ）、携帯電話、タブレット・コンピュータ機器、スマートフォン、もしくはその他任意の好適なコンピュータ機器、または機器の組み合わせとして具現化することも可能である。「システム」による実行として上述の機能を提示することに、本願の範囲を制限する意図は一切なく、多くの実施形態の一例を提供する意図しかない。実際、本明細書に開示の方法、システム、および装置は、コンピュータ技術と矛盾しないローカライズされた分散形態にて実装されていてもよい。
【００５９】
本明細書に記載のシステム機能の一部は、それぞれの実装独立性をより具体的に強調するため、モジュールとして提示されていることに留意するものとする。たとえば、カスタムの超大規模集積（ＶＬＳＩ）回路もしくはゲート・アレイ、論理チップ等の既製半導体、トランジスタ、または他の個別部品を含むハードウェア回路としてモジュールが実装されていてもよい。また、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、グラフィックス処理ユニット等のプログラム可能なハードウェア・デバイスにてモジュールが実装されていてもよい。
【００６０】
また、さまざまな種類のプロセッサにより実行されるソフトウェアにてモジュールの少なくとも一部が実装されていてもよい。たとえば、実行可能コードの識別ユニットは、オブジェクト、手続き、または関数として構造化可能なコンピュータ命令の１つまたは複数の物理的または論理的ブロックを含んでいてもよい。その一方で、識別モジュールの実行ファイルは、物理的に一体配置する必要がなく、論理的に一体結合された場合に当該モジュールを含むとともに当該モジュールの規定された目的を達成する異なる場所に格納された異種命令を含んでいてもよい。さらに、モジュールがコンピュータ可読媒体に格納されていてもよく、たとえば、ハード・ディスク・ドライブ、フラッシュ・デバイス、ランダム・アクセス・メモリ（ＲＡＭ）、テープ、またはこのようなデータの格納に用いられるその他任意の媒体が考えられる。
【００６１】
実際、実行可能コードのモジュールとしては、単一の命令も多数の命令も可能であり、また、異なるプログラムの中で、複数のメモリ・デバイスにまたがって、複数の異なるコード・セグメントにわたって分散していてもよい。同様に、本明細書においては、演算データがモジュール内で識別および図示されるようになっていてもよく、任意好適な形態で具現化されるとともに、任意好適な種類のデータ構造において構造化されていてもよい。演算データは、単一のデータ・セットとして収集されるようになっていてもよいし、異なる記憶装置を含む異なる場所に分散していてもよく、少なくとも一部が単に電子信号として、システムまたはネットワーク上に存在していてもよい。
【００６２】
本明細書の図面に大略記載するとともに図示する本願の構成要素は、多種多様な異なる構成で配置および設計されていてもよいことが容易に了解される。このため、実施形態の詳細な説明は、特許請求の範囲に係る本願の範囲を制限する意図はなく、本願の選択的な実施形態を表しているに過ぎない。
【００６３】
当業者であれば、異なる順序のステップまたは本開示と異なる構成におけるハードウェア要素、あるいはその両方によって上記が実現され得ることが容易に了解されるであろう。したがって、上記好適な実施形態に基づいて本願を説明したが、当業者には、特定の改良、変更、および代替構成が明らかとなるであろう。
【００６４】
以上、本願の好適な実施形態を説明したが、上記実施形態は例示に過ぎず、本願の範囲は、添付の特許請求の範囲に対して、そのあらゆる同等物および改良物（たとえば、プロトコル、ハードウェア・デバイス、ソフトウェア・プラットフォーム等）を考慮する場合にのみ規定されるであろうことが了解されるものとする。
【図１Ａ】
2021524962.tif 000003
【図１Ｂ】
2021524962.tif 000004
【図１Ｃ】
2021524962.tif 000005
【図１Ｄ】
2021524962.tif 000006
【図２Ａ】
2021524962.tif 000007
【図２Ｂ】
2021524962.tif 000008
【図３】
2021524962.tif 000009
【図４】
2021524962.tif 000010
【図５】
2021524962.tif 000011
【図６Ａ】
2021524962.tif 000012
【図６Ｂ】
2021524962.tif 000013
【図７】
2021524962.tif 000014
【手続補正書】
【提出日】令和2年11月18日(2020.11.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ブロックチェーンに取り込まれるデータ・レコードを識別することと、
前記ブロックチェーンにアクセス可能なデータ消費者に対して前記データ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、
前記スマート・コントラクト・グループが１つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、
前記スマート・コントラクト・グループを前記ブロックチェーン上で格納することと、
を含む方法。
【請求項２】
前記スマート・コントラクト・グループ中の各スマート・コントラクトに前記データ・レコードの異なる部分が割り当てられるように、前記データ・レコードの異なる部分を前記スマート・コントラクト・グループに割り当てることをさらに含む、請求項１に記載の方法。
【請求項３】
前記データ・レコードと関連付けられた複数のデータ・レコード・アクセス提案を含むグループ呼び出しトランザクション提案を識別することをさらに含む、請求項１に記載の方法。
【請求項４】
前記１つまたは複数のブロックチェーン・ピアにより前記グループ呼び出しトランザクション提案を承認することと、
前記グループ呼び出しトランザクション提案を配列サービスに送信することと、
をさらに含む、請求項３に記載の方法。
【請求項５】
前記承認したグループ呼び出しトランザクション提案を複数の個々の承認したスマート・コントラクトに分解することをさらに含む、請求項４に記載の方法。
【請求項６】
前記配列サービスから、前記ブロックチェーンに関与するブロックチェーン・トランザクションとして、前記１つまたは複数のブロックチェーン・ピアに対応する複数の承認したトランザクションを送信することをさらに含む、請求項５に記載の方法。
【請求項７】
前記配列サービスへの１つまたは複数のグループの登録を実行することであり、前記登録が、グループ識別子、レコード・フィールド、および前記スマート・コントラクト・グループに対応するスマート・コントラクト識別子を含む、前記実行することをさらに含む、請求項６に記載の方法。
【請求項８】
装置であって、
ブロックチェーンに取り込まれるデータ・レコードを識別することと、
前記ブロックチェーンにアクセス可能なデータ消費者に対して前記データ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、
前記スマート・コントラクト・グループが１つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、
前記スマート・コントラクト・グループを前記ブロックチェーン上で格納することと、
を行うように構成されたプロセッサを備えた装置。
【請求項９】
前記プロセッサが、前記スマート・コントラクト・グループ中の各スマート・コントラクトに前記データ・レコードの異なる部分が割り当てられるように、前記データ・レコードの異なる部分を前記スマート・コントラクト・グループに割り当てるようにさらに構成された、請求項８に記載の装置。
【請求項１０】
前記プロセッサが、前記データ・レコードと関連付けられた複数のデータ・レコード・アクセス提案を含むグループ呼び出しトランザクション提案を識別するようにさらに構成された、請求項８に記載の装置。
【請求項１１】
前記プロセッサが、前記１つまたは複数のブロックチェーン・ピアにより前記グループ呼び出しトランザクション提案を承認するようにさらに構成され、
前記装置が、前記グループ呼び出しトランザクション提案を配列サービスに送信するように構成された送信機をさらに備えた、請求項１０に記載の装置。
【請求項１２】
前記プロセッサが、前記承認したグループ呼び出しトランザクション提案を複数の個々の承認スマート・コントラクトに分解するようにさらに構成された、請求項１１に記載の装置。
【請求項１３】
前記送信機が、前記配列サービスから、前記ブロックチェーンに関与するブロックチェーン・トランザクションとして、前記１つまたは複数のブロックチェーン・ピアに対応する複数の承認トランザクションを送信するようにさらに構成された、請求項１２に記載の装置。
【請求項１４】
前記プロセッサが、前記配列サービスへの１つまたは複数のグループの登録を実行することであり、前記登録が、グループ識別子、レコード・フィールド、および前記スマート・コントラクト・グループに対応するスマート・コントラクト識別子を含む、前記実行することを行うようにさらに構成された、請求項１３に記載の装置。
【請求項１５】
コンピュータ・プログラムであって、請求項１ないし７のいずれか１項に記載の方法の各ステップをコンピュータに実行させるための、コンピュータ・プログラム。
【請求項１６】
請求項１５に記載のコンピュータ・プログラムを記録した、コンピュータ可読記憶媒体。
【国際調査報告】
2021524962.tif 000015
2021524962.tif 000016
2021524962.tif 000017