JP2021524962A - ブロックチェーン上のスマート・コントラクト・グループに対する自動データ投影 - Google Patents

ブロックチェーン上のスマート・コントラクト・グループに対する自動データ投影 Download PDF

Info

Publication number
JP2021524962A
JP2021524962A JP2020563774A JP2020563774A JP2021524962A JP 2021524962 A JP2021524962 A JP 2021524962A JP 2020563774 A JP2020563774 A JP 2020563774A JP 2020563774 A JP2020563774 A JP 2020563774A JP 2021524962 A JP2021524962 A JP 2021524962A
Authority
JP
Japan
Prior art keywords
blockchain
smart contract
group
data
data record
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
JP2020563774A
Other languages
English (en)
Other versions
JP7161273B2 (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 JP2021524962A publication Critical patent/JP2021524962A/ja
Application granted granted Critical
Publication of JP7161273B2 publication Critical patent/JP7161273B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/42Confirmation, e.g. check or permission by the legal debtor of payment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security

Landscapes

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

Abstract

例示的な動作は、ブロックチェーンに取り込まれるデータ・レコードを識別することと、ブロックチェーンにアクセス可能なデータ消費者に対してデータ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、スマート・コントラクト・グループが1つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、スマート・コントラクト・グループをブロックチェーン上で格納することと、のうちの1つまたは複数を含んでいてもよい。

Description

本願は、概してデータ投影に関し、より詳細には、分散台帳(ブロックチェーン等)上のスマート・コントラクトに対する自動データ投影の実行に関する。
台帳は通常、トランザクションが記録された会計入力帳簿として規定される。分散台帳は、複数のコンピュータに対して全部または一部が複製された台帳である。暗号分散台帳(CDL)は、不可逆性(トランザクションは、記録されると無効化できない)、アクセス可能性(如何なる関係者も、CDLの全部または一部にアクセス可能である)、時系列かつタイムスタンプ(トランザクションが台帳に追加されたタイミングをすべての関係者が把握する)、合意ベース(ネットワーク上の関係者により(通常は、全員一致で)承認された場合にのみトランザクションが追加される)、確認可能性(すべてのトランザクションが暗号学的に確認可能である)といった特性のうちの少なくとも一部を有し得る。ブロックチェーンは、CDLの一例である。本明細書の記載および図面は、ブロックチェーンの観点で説明するが、本願は、如何なるCDLにも等しく当てはまる。
分散台帳は、他のブロックに関する暗号学的ハッシュの格納等、通常は暗号学的技術を適用するレコードの増え続けるリストである。ブロックチェーンは、分散台帳の1つの共通インスタンスであり、情報を格納する公開台帳として使用可能である。主として金融取引に利用されるものの、ブロックチェーンは、商品およびサービス(すなわち、製品、パッケージ、ステータス等)に関連するさまざまな情報を格納し得る。分散方式は、分散ネットワークに権威および信頼を与え、そのノードが継続的かつ連続的にそれぞれのトランザクションを公開「ブロック」に記録して、ブロックチェーンと称する一意の「チェーン」を生成可能となる。ハッシュ・コードを介した暗号化は、トランザクション源の認証の確保に用いられ、中央の仲介手段を不要にする。ブロックチェーンは、不変の特性により改竄および改訂から保護されたブロックチェーンのブロックにレコードの増え続けるリストを維持する分散データベースである。各ブロックには、タイムスタンプと、過去のブロックへのリンクとを含む。ブロックチェーンは、情報の保持、追跡、移動、および確認に使用可能である。ブロックチェーンが分散システムであることから、トランザクションをブロックチェーン台帳に追加する前に、すべてのピアが合意ステータスに達する必要がある。
従来、さまざまな用途において、生成者により生成されたデータ・レコードがその属性の部分集合に投影され、異なるデータ消費者に配布されている。たとえば、フィールド「F」を伴うデータのデータ・モデル「A」のレコード「R」は、フィールドのn個の部分集合S1,・・・,Sn⊆Fに対し、R[Si]:=R|(Si)として投影され得る。各投影R[Si]は、データ消費者の部分集合により独立して消費される。通常、生成者および消費者は、ネットワーク上に分散している。データは、高速に生成することも可能である。本質的に、これらの用途は、当業者に周知の分散出版−購読型システムと考えられる。あるデータ・レコード「R」は、当該レコード「R」の異なる部分集合を消費する種々異なる消費者を有し得る。予想される消費者アクセス動作を見越してデータ・レコードを編成することにより、最適な結果が得られる可能性がある。
例示的な一実施形態は、ブロックチェーンに取り込まれるデータ・レコードを識別することと、ブロックチェーンにアクセス可能なデータ消費者に対してデータ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、スマート・コントラクト・グループが1つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、スマート・コントラクト・グループをブロックチェーン上で格納することと、のうちの1つまたは複数を含む方法を提供するようにしてもよい。
別の例示的な実施形態は、ブロックチェーンに取り込まれるデータ・レコードを識別することと、ブロックチェーンにアクセス可能なデータ消費者に対してデータ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、スマート・コントラクト・グループが1つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、スマート・コントラクト・グループをブロックチェーン上で格納することと、を行うように構成されたプロセッサを備えた装置を含んでいてもよい。
さらに別の例示的な実施形態は、実行された場合に、ブロックチェーンに取り込まれるデータ・レコードを識別することと、ブロックチェーンにアクセス可能なデータ消費者に対してデータ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、スマート・コントラクト・グループが1つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、スマート・コントラクト・グループをブロックチェーン上で格納することと、のうちの1つまたは複数をプロセッサに実行させる命令を格納するように構成された非一過性コンピュータ可読記憶媒体を提供するようにしてもよい。
以下、添付の図面を参照して、本発明の実施形態を説明するが、これらは一例に過ぎない。
例示的な実施形態に係る、ブロックチェーン・データ・レコード管理構成のネットワーク図である。 例示的な実施形態に係る、スマート・コントラクト・グループを用いたブロックチェーン・データ・レコード管理構成のネットワーク図である。 例示的な実施形態に係る、生成ピアによるデータ・レコードの挿入のためのブロックチェーン・データ・レコード管理構成のネットワーク図である。 例示的な実施形態に係る、生成ピアによるデータ・レコードの挿入のための配列サービスのブロックチェーン・データ・レコード管理構成のネットワーク図である。 例示的な実施形態に係る、データ・レコード管理のための例示的なピア・ノード・ブロックチェーン・アーキテクチャ構成を示した図である。 例示的な実施形態に係る、例示的なピア・ノード・ブロックチェーン構成を示した図である。 例示的な実施形態に係る、認可ブロックチェーン・ネットワークを示した図である。 例示的な実施形態に係る、データ・レコード管理を実行するシステム・メッセージング図である。 例示的な実施形態に係る、ブロックチェーンにおけるデータ・レコード管理の例示的な方法のフロー図である。 例示的な実施形態に係る、本明細書に記載の1つまたは複数の動作に従って、さまざまな動作をブロックチェーン上で実行するように構成された例示的な物理的インフラを示した図である。 例示的な実施形態に係る、契約関係者間の例示的なスマート・コントラクト構成およびスマート・コントラクト条件をブロックチェーン上で施行するように構成された仲介サーバを示した図である。 例示的な実施形態のうちの1つまたは複数に対応するように構成された例示的なコンピュータ・システムを示した図である。
本明細書の図面に大略記載するとともに図示する構成要素は、多種多様な異なる構成で配置および設計されていてもよいことが容易に了解される。したがって、添付の図面に示す方法、装置、非一過性コンピュータ可読媒体、およびシステムのうちの少なくとも1つの実施形態に関する以下の詳細な説明は、特許請求の範囲に係る本願の範囲の制限を意図したものではなく、選択的な実施形態を表しているに過ぎない。
本明細書の全体を通して記載する特徴、構造、または特性は、1つまたは複数の実施形態において、任意好適に組み合わされていてもよい。たとえば、本明細書の全体を通して、表現「例示的な実施形態(example embodiments)」、「いくつかの実施形態(some embodiments)」、または他の類似表現の使用は、当該実施形態に関して説明する特定の特徴、構造、または特性が少なくとも1つの実施形態に含まれ得るという事実を表す。このため、本明細書の全体を通して、表現「例示的な実施形態(example embodiments)」、「いくつかの実施形態において(in some embodiments)」、「他の実施形態において(in other embodiments)」、または他の類似表現の出現は必ずしも、同じグループの実施形態を表しておらず、記載の特徴、構造、または特性が1つまたは複数の実施形態において任意好適に組み合わされていてもよい。
また、実施形態の説明において用語「メッセージ(message)」を使用している可能性があるものの、本願は、パケット、フレーム、データグラム等、多くの種類のネットワーク・データに適用可能である。また、用語「メッセージ(message)」には、パケット、フレーム、データグラム、およびその任意の等価物を含む。さらに、例示的な実施形態においては、特定の種類のメッセージおよびシグナリングを示す可能性があるものの、これらは特定の種類のメッセージに限定されず、また、本願は特定の種類のシグナリングに限定されない。
例示的な実施形態は、ブロックチェーン・ネットワーク上でのデータの投影および配布を可能にする方法、デバイス、ネットワーク、またはシステム、あるいはその組み合わせを提供する。データの生成者/消費者は、エンタープライズ・ブロックチェーン・ネットワークのピア・レベル・ユーザであってもよい。スマート・コントラクトは、データの挿入、投影、および配布の実現に用いられるようになっていてもよい。具体的には、各投影Siについて、すべての生成ピア(すなわち、レコードを生成するピア)およびすべてのSi消費ピア(すなわち、Siに対応するフィールドを消費するピア)を含むチャネルCiが存在する。
ブロックチェーンは、互いに通信する複数のノードを含む分散システムである。ブロックチェーンは、チェーンコードと称するプログラム(たとえば、スマート・コントラクト等)を動作させ、状態および台帳データを保持し、トランザクションを実行する。一部のトランザクションは、チェーンコード上で呼び出される動作である。一般的に、ブロックチェーン・トランザクションは通常、特定のブロックチェーン・メンバーによる「承認」が必要であり、承認トランザクションのみがブロックチェーンに関与し、ブロックチェーンの状態に影響を及ぼし得る。承認されていない他のトランザクションは、無視される。管理機能およびパラメータ用の1つまたは複数の特殊なチェーンコードが存在していてもよく、システム・チェーンコードと総称される。
ノードは、ブロックチェーン・システムの通信エンティティである。「ノード」は、異なる種類の複数のノードが同じ物理サーバ上で動作し得る意味において、論理的機能を実行し得る。ノードは、信頼領域においてグループ化され、当該ノードをさまざまに制御する論理エンティティと関連付けられる。ノードには、クライアントまたはトランザクション呼び出しを承認者(たとえば、ピア)に提出する提出クライアント・ノード等、異なる種類を含んでいてもよく、トランザクション提案を配列サービス(たとえば、配列ノード)にブロードキャストする。別の種類のノードは、クライアント提出のトランザクションを受信し、トランザクションに関与し、ブロックチェーン・トランザクションの台帳の状態およびコピーを維持し得るピア・ノードである。ピアは、承認者の役割も有し得るが、必須ではない。配列サービス・ノードまたは配列者は、すべてのノードに対する通信サービスを動作させるノードであり、トランザクションに関与してブロックチェーンの世界状態を修正する場合のシステム中のピア・ノードそれぞれへのブロードキャスト等の配送保証を実現するが、これは、制御およびセットアップ情報を通常含む最初のブロックチェーン・トランザクションの別の名称である。
台帳は、ブロックチェーンのすべての状態トランザクションの順序付き改竄防止レコードである。状態トランザクションは、参加関係者(たとえば、クライアント・ノード、配列ノード、承認者ノード、ピア・ノード等)により提出されたチェーンコード呼び出し(すなわち、トランザクション)の結果であってもよい。トランザクションは、生成、更新、消去等の1つまたは複数のオペランドとして台帳に関与する一組のアセット・キー値ペアとなり得る。台帳には、ブロック中の不変順序付きレコードの格納に用いられるブロックチェーン(チェーンとも称する)を含む。また、台帳には、ブロックチェーンの現在状態を維持する状態データベースを含む。通常は、チャネルごとに1つの台帳が存在する。各ピア・ノードは、メンバーとなっているチャネルごとに、台帳のコピーを維持する。
チェーンは、ハッシュ連結ブロックとして構造化されたトランザクション・ログであり、各ブロックには、一連のN個のトランザクションを含む(ここで、Nは1以上である)。ブロック・ヘッダには、ブロックのトランザクションのハッシュのほか、先行ブロックのヘッダのハッシュを含む。このように、台帳上のすべてのトランザクションが順序付けられ、暗号学的に一体連結されていてもよい。したがって、ハッシュ・リンクを破壊せずに台帳データを改竄することは不可能である。最も新しく追加されたブロックチェーンのブロックのハッシュは、その前に到着したチェーン上のあらゆるトランザクションを表し、すべてのピア・ノードが一貫した信頼状態となるように保証可能である。チェーンは、ピア・ノード・ファイル・システム(すなわち、ローカル、付属ストレージ、クラウド等)上に格納されていてもよく、ブロックチェーン負荷の追加専用の性質に効率良く対応する。
不変台帳の現在状態は、チェーン・トランザクション・ログに含まれるすべてのキーの最新値を表す。現在状態は、チャネルが把握する最新のキー値を表すため、世界状態と称する場合がある。チェーンコード呼び出しは、台帳の現在状態データに対してトランザクションを実行する。これらのチェーンコード相互作用を効率化するため、キーの最新値は、状態データベースに格納されていてもよい。状態データベースは単に、チェーンのトランザクション・ログへのインデックス付きビューであってもよいため、いつでもチェーンから再生可能である。状態データベースは、ピア・ノードの起動に際して、トランザクションが受け入れられる前に自動的に回復されるようになっていてもよい(または、必要に応じて生成されるようになっていてもよい)。
複数のスマート・コントラクトが生成され、データ・レコード「R」の特定の部分に割り当てられるようになっていてもよく、これらのデータ部分は、スマート・コントラクトごとに異なっていてもよいし、同じであってもよい。たとえば、別個のチャネルおよびデータ・レコード「R」のフィールドの特定の部分集合に対応する別個のスマート・コントラクトが生成され、一組のデータ消費者と共有される。2つの異なるスマート・コントラクトがデータ・フィールドの2つの異なる部分集合に対応するのでなければ、データ・レコード「R」の同じ部分を識別する特定のスマート・コントラクト同士が冗長となる。
図1Aは、例示的な実施形態に係る、ブロックチェーン・データ・レコード管理構成のネットワーク図である。この構成100Aにおいて、レコード「R」102は、ブロックチェーンの各ピア・ノード上で動作するデータ管理アプリケーションにより識別される。このアプリケーションは、レコードRを識別して、「i」ごとにR[S1]104、R[S2]106、およびR[S3]108等の投影R[Si]を演算する。トランザクション「提案」は、アプリケーションから承認ピアに送られるスマート・コントラクト実行呼び出しである。提案P1 110、P2 112、およびP3 114は、ピア116による承認プロセスに送られ、承認提案118、122、および124は、配列サービス126に転送されてブロックチェーンに関与する。ピアは、スマート・コントラクトの実行のシミュレーションによって、台帳に対する結果的な一組の変化(すなわち、読み書き集合)を生成するが、これは、承認トランザクション提案118〜124と称し、アプリケーションに送り返される。アプリケーションは、承認トランザクション提案118〜124を配列サービス126に送り、ここでトランザクションがブロックチェーンのブロックに追加されるが、これは、ピアがそれぞれの台帳への関与を受け入れることを前提に、他のトランザクションを含んでいてもよい。
チャネルは、当該チャネルに対応するとともにそのピアだけがアクセス可能な分散台帳を共有する一組のブロックチェーン・ピアである。チャネルは、共有台帳を修正する複数のスマート・コントラクトのインスタンスが作成されていてもよい。トランザクションの別個のブロックチェーンがそのピアによってチャネルごとに維持される。呼び出し提案は、スマート・コントラクト・トランザクション提案と同じである。また、スマート・コントラクトは、その状態の変化なく台帳への問い合わせのみを行うように実行可能であるが、これは、ピアによって単純に実行される問い合わせ提案となり、そのローカル台帳からの結果が呼び出し側アプリケーションに提供される。
図1Bは、例示的な実施形態に係る、スマート・コントラクト・グループを用いたブロックチェーン・データ・レコード管理構成のネットワーク図である。図1Bを参照して、構成100Bには、ピア116による承認によって承認グループ呼び出し提案P134を生成するグループ呼び出し提案[P]132を受ける投影R[S1]104〜R[S3]108を備えたレコードR102を含む。グループ呼び出しは、同じデータ・レコード上の複数のスマート・コントラクトの「グループ」の組み合わせ実行である。このグループ読み出し提案は、アプリケーションによって、すべての構成スマート・コントラクトの実行のシミュレーションを行い、承認グループ呼び出し提案として組み合わされる承認トランザクション提案を生成する承認ピアに送られる。このグループ呼び出し提案は、アプリケーションにより受信された後、配列サービス126に送られる。承認グループ呼び出し提案中の異なる承認トランザクション提案は、異なるチャネルに対応し得ることから、それぞれのチャネルのブロックに配布される。これには、承認トランザクション提案への承認グループ呼び出し提案の分解および異なるピアに対応するチャネル固有ブロックへの承認トランザクション提案の再構築を含む。
図1Cは、例示的な実施形態に係る、生成ピアによるデータ・レコードの挿入のためのブロックチェーン・データ・レコード管理構成のネットワーク図である。図1Cを参照して、例示的な構成100Cは、生成ピアによるレコードの挿入を可能とする。承認グループ呼び出し提案「P」142が受信されて分解144が行われると、結果は、複数の別個の承認提案P1 146〜P3 152である。配列サービス150は、承認グループ呼び出し提案をスマート・コントラクト・レベルの承認提案へと分解する。配列サービスは、ピア(生成者および消費者)ごとに、ブロックチェーンに関与するトランザクションとして、承認スマート・コントラクト提案の適当な再構築を送る。この手法は、配列サービス150により実行されるディスパッチ動作まで、グループ呼び出し動作の原子性を提供する。たとえば、スマート・コントラクト・グループを構成するスマート・コントラクトの個々のトランザクションはすべて、ピアにより承認され、配列サービスによりディスパッチされるか、あるいは、スマート・コントラクト/トランザクションは一切ディスパッチされない。この手法は、グループ呼び出し提案において実行されるバンドリングに起因するネットワーク輻輳の量を低下させる。
図1Dは、例示的な実施形態に係る、生成ピアによるデータ・レコードの挿入のための配列サービスのブロックチェーン・データ・レコード管理構成のネットワーク図である。図1Dを参照して、構成100Dは、生成ピアごとに配列/承認サービスにそのグループを登録することを可能にする。この登録は、当該グループにおけるスマート・コントラクト164、166、および168ごとに、生成ピアに固有の投影と併せて、当該グループにおける「グループID」169、レコード・フィールド162、およびスマート・コントラクトIDを与え得る。この情報は、登録中に確認される。ピアにより生成されたグループ呼び出し提案には、挿入されるグループIDおよびデータ・レコードを含む。このグループの登録情報を用いることにより、承認サービスは、提案を承認する。コードは、承認ポリシー・レベルで存在し、如何なるスマート・コントラクトの一部でもない。承認提案には、当該グループにおけるスマート・コントラクトごとに、グループIDおよび読み書き集合を含む。ピアに対して配列サービスにより生成される再構築トランザクションには、関連する読み書き集合を含む。
図1Dに関して上述した使用の場合、基本的なスマート・コントラクトは、同じ入力データ・レコードのフィールド部分集合への投影として、スマート・コントラクト自体の台帳を演算して格納するのに用いられる。用語「投影(projection)」は、スマート・コントラクト「1」、「2」、および「3」が投影であるものと定める。スマート・コントラクト・グループは、構成スマート・コントラクト、入力データ・レコードの一組のフィールド、および識別用のグループIDによって与えられる。この情報は、ピアおよび配列サービスに登録される。アプリケーションは単に、そのグループ呼び出し提案の一部として、入力データ・レコードおよびグループIDをピアに送る。ピアは、グループIDを用いて、入力データ・レコードに対する実行により承認グループ呼び出し提案を生成するスマート・コントラクト・グループを決定する。
上記例によれば、生成者は、互いに独立したスマート・コントラクト・グループを規定することができる。このグループは、同じデータ・レコードの部分集合を入力として受信し、当該グループの複数のメンバーに基づいて、「呼び出し」を組み合わせ提案または単一のグループ呼び出しとして処理する。この手法は、ネットワーク輻輳の排除により通信効率を向上させる。
医療データ共有ネットワークの一具体例においては、病院が医療データの生成者である一方、提携サービス(たとえば、保険、医薬研究)エンティティがデータの消費者である。生成者により生成される医療データは、さまざまなテスト結果と併せて患者の識別情報に対応するフィールドを有する患者ごとのレコードの形態であってもよい。これらのレコードは、プライバシまたは契約上のポリシー、あるいはその両方に従って適当にフィルタリングおよび投影された後、消費者との共有が意図される。ブロックチェーン実施態様は、グループ・スマート・コントラクト手法の実装によって、医療データ共有のための効率的で堅牢なソリューションを提供し得る。病院は生成ピアであり、提携サービス・エンティティは消費ピアである。スマート・コントラクト・チャネルは、ネットワーク上で適当に規定および登録されたスマート・コントラクト・グループと併せて、必要なデータ投影ごとに展開される。
図2Aは、例示的な実施形態に係る、ブロックチェーン・アーキテクチャ構成200を示している。図2Aを参照して、ブロックチェーン・アーキテクチャ200は、特定のブロックチェーン要素(たとえば、ブロックチェーン・ノード・グループ202)を含んでいてもよい。ブロックチェーン・ノード202には、1つまたは複数のノード204〜210を含んでいてもよい(4つのノードを示すが、これは一例に過ぎない)。これらのノードは、ブロックチェーン・トランザクションの追加および有効化プロセス(合意)等、多くのアクティビティに参加する。ブロックチェーン・ノード204〜210のうちの1つまたは複数は、トランザクションを承認するとともに、アーキテクチャ200中のすべてのブロックチェーン・ノードに対して配列サービスを提供するようにしてもよい。あるブロックチェーン・ノードがブロックチェーン認証を開始し、ブロックチェーン・レイヤ216に格納されたブロックチェーン不変台帳への書き込みを行うようにしてもよく、また、そのコピーが基盤となる物理的インフラ214に格納されるようになっていてもよい。ブロックチェーン構成には、参加者が求める専用構成に従って生成可能であり、それぞれの状態の維持、それぞれのアセットの制御、および外部情報の受信が可能な格納プログラム/アプリケーション・コード220(たとえば、チェーンコード、スマート・コントラクト等)へのアクセスおよび実行を行うアプリケーション・プログラミング・インターフェース(API)222にリンクされた1つまたは複数のアプリケーション224を含んでいてもよい。これは、トランザクションとして展開可能であるとともに、分散台帳への追加によって、すべてのブロックチェーン・ノード204〜210にインストール可能である。
ブロックチェーン・ベースまたはプラットフォーム212は、ブロックチェーン・データのさまざまなレイヤ、サービス(たとえば、暗号学的信頼サービス、仮想実行環境等)、ならびに新たなトランザクションの受信・格納およびデータ入力にアクセスしようとしている監査役へのアクセス提供に使用可能な基盤となる物理コンピュータ・インフラを具備していてもよい。ブロックチェーン・レイヤ216は、プログラム・コードの処理および物理的インフラ214の手配に必要な仮想実行環境へのアクセスを提供するインターフェースを提示していてもよい。暗号学的信頼サービス218は、アセット交換トランザクション等のトランザクションの確認および情報の秘匿に使用可能である。
図2Aのブロックチェーン・アーキテクチャ構成は、提示された1つまたは複数のインターフェースによるプログラム/アプリケーション・コード220の処理・実行およびブロックチェーン・プラットフォーム212により提供されたサービスの処理・実行を行うようにしてもよい。コード220は、ブロックチェーン・アセットを制御するようにしてもよい。たとえば、コード220は、データの格納および移動が可能であり、その実行の影響を受ける条件等のコード要素を有するスマート・コントラクトおよび関連するチェーンコードの形態でノード204〜210により実行されるようになっていてもよい。非限定的な一例としては、変更、更新等を受ける注意喚起、更新、または他の通知、あるいはその組み合わせを実行するスマート・コントラクトが生成されるようになっていてもよい。台帳の権限およびアクセス要件ならびに使用と関連付けられたルールの識別には、スマート・コントラクト自体を使用可能である。
チェーンコードにおいては、高レベルのアプリケーションおよびプログラミング言語によってスマート・コントラクトが生成された後、ブロックチェーンのブロックに書き込まれるようになっていてもよい。スマート・コントラクトは、ブロックチェーン(たとえば、ブロックチェーン・ピアの分散ネットワーク)により登録、格納、または複製、あるいはその組み合わせがなされた実行可能コードを含んでいてもよい。トランザクションは、満たすべきスマート・コントラクトと関連付けられた条件に応じて実行可能なスマート・コントラクト・コードの実行である。スマート・コントラクトの実行によって、デジタル・ブロックチェーン台帳の状態の信頼修正がトリガされるようになっていてもよい。スマート・コントラクトの実行によるブロックチェーン台帳の修正は、1つまたは複数の合意手順を通じて、ブロックチェーン・ピアの分散ネットワーク全体で自動的に複製されるようになっていてもよい。
スマート・コントラクトは、キー値ペアのフォーマットでデータをブロックチェーンに書き込むようにしてもよい。さらに、スマート・コントラクト・コードは、ブロックチェーンに格納された値を読み出して、それらをアプリケーションの動作において使用することができる。スマート・コントラクト・コードは、さまざまな論理演算の出力をブロックチェーンに書き込むことができる。コードは、仮想マシン等のコンピューティング・プラットフォームにおいて一時データ構造の生成に使用されるようになっていてもよい。ブロックチェーンに書き込まれるデータは、公開であることが可能であり、または非公開として暗号化および維持されることが可能であり、あるいはその両方である。スマート・コントラクトが使用/生成する一時データは、供給された実行環境によりメモリに保持された後、ブロックチェーンに必要なデータが識別された時点で消去される。
チェーンコードには、付加的な特徴とともに、スマート・コントラクトのコード解釈を含んでいてもよい。本明細書に記載の通り、チェーンコードは、合意プロセスにおいてチェーン実効者により一体的に実行および有効化が行われるコンピューティング・ネットワーク上に展開されたプログラム・コードであってもよい。チェーンコードは、ハッシュを受信し、格納済みの特徴抽出者の使用により生成されるデータ・テンプレートと関連付けられたハッシュをブロックチェーンから読み出す。ハッシュ識別子のハッシュと格納識別子テンプレート・データから生成されるハッシュとが一致する場合、チェーンコードは、要求されたサービスに権限付与キーを送る。チェーンコードは、暗号学的詳細と関連付けられたデータをブロックチェーンに書き込むようにしてもよい。図2Aにおいて、一例においては、グループ呼び出し提案の潜在的なデータ・セットとして、データ・レコードの特定の部分集合の識別226が行われるが、これは、ネットワーク性能を最適化し得るとともに、種々異なる関係者に対して最適なアクセスを提供し得る。異なるスマート・コントラクトの規定228によって、データ・レコードの異なる部分を表すことができる。スマート・コントラクトの集合は、ブロックチェーン・ピア・ノード201のうちの1つまたは複数により識別および承認されるスマート・コントラクト・グループ228としてセットアップされるようになっていてもよい。
図2Bは、例示的な一実施形態に係る、ブロックチェーンのノード間のトランザクション・フロー250の一例を示している。図2Bを参照して、このトランザクション・フローは、アプリケーション・クライアント・ノード260により承認ピア・ノード281に送られたトランザクション提案291を含んでいてもよい。承認ピア281は、クライアントのサインを確認するとともに、チェーンコード関数を実行して、トランザクションを開始するようにしてもよい。出力には、チェーンコード結果、チェーンコードに読み込まれた一組のキー/値バージョン(読み込み集合)、およびチェーンコードに書き込まれた一組のキー/値(書き込み集合)を含んでいてもよい。提案応答292は、承認された場合に、承認サインと併せてクライアント260に送り返される。クライアント260は、承認をトランザクション・ペイロード293として組み立て、配列サービス・ノード284にブロードキャストする。そして、配列サービス・ノード284は、配列されたトランザクションをブロックとして、チャネル上のすべてのピア281〜283に配送する。各ピア281〜283は、ブロックチェーンに関与する前に、トランザクションを有効化するようにしてもよい。たとえば、ピアは、承認ポリシーを確認して、指定ピアの正しい割り当てにより結果がサインされ、トランザクション・ペイロード293に対してサインが認証済みとなるようにしてもよい。
再び図2Bを参照して、クライアント・ノード260は、リクエストの構成および承認者であるピア・ノード281への送信によって、トランザクション291を開始する。クライアント260は、NODE、JAVA(R)、PYTHON等、利用可能なAPIを利用してトランザクション提案を生成するサポート付きのソフトウェア開発キット(SDK)を活用したアプリケーションを含んでいてもよい。この提案は、台帳に対するデータの読み出しまたは書き込み、あるいはその両方(すなわち、アセットの新たなキー値ペアの書き込み)が可能になるようにチェーンコード関数を呼び出すリクエストである。SDKは、適正に構成されたフォーマット(たとえば、リモート・プロシージャ・コール(RPC)上のプロトコル・バッファ)へとトランザクション提案をパッケージングするとともに、クライアントの暗号学的認証情報を取得して、トランザクション提案の一意のサインを生成するシムとして機能し得る。
これに応答して、承認ピア・ノード281は、(a)トランザクション提案が十分に形成されていること、(b)トランザクションが過去にまだ提出されていないこと(リプレイアタック保護)、(c)サインが有効であること、および(d)提案の動作を当該チャネル上で実行するように提出者(本例ではクライアント260)が適正に権限付与されていることを確認するようにしてもよい。承認ピア・ノード281は、呼び出されたチェーンコード関数に渡す引数としてトランザクション提案入力を見なすようにしてもよい。その後、現在状態データベースに対するチェーンコードの実行によって、応答値、読み込み集合、および書き込み集合を含むトランザクション結果を生成する。ただし、この時点では、台帳が更新されることはない。292においては、承認ピア・ノード281のサインと併せて、消費するアプリケーションのペイロードを構文解析するクライアント260のSDKに値集合が提案応答292として戻される。
これに応答して、クライアント260のアプリケーションは、承認ピアのサインを検査/確認するとともに、提案応答を比較して、提案応答が同じであるかを判定する。チェーンコードが台帳のみを問い合わせているのであれば、アプリケーションは、問い合わせ応答を検査し、通常は、トランザクションを配列サービス・ノード284に提出しない。クライアントのアプリケーションは、トランザクションを配列サービス・ノード284に提出して台帳を更新することを意図する場合、提出前に指定の承認ポリシーが満たされているか(すなわち、トランザクションに必要なすべてのピア・ノードが当該トランザクションを承認していたか)を判定する。ここで、クライアントは、トランザクションに対する複数の関係者のうちの1つだけを含んでいてもよい。この場合、各クライアントは、それ自体の承認ノードを有していてもよく、各承認ノードがトランザクションを承認することが必要となる。このアーキテクチャでは、アプリケーションが応答を検査しないことを選択するか、あるいは、未承認トランザクションを転送する場合であっても、承認ポリシーが依然としてピアにより強制され、関与有効化段階で支持されるようにする。
検査に成功した後、ステップ293において、クライアント260は、承認をトランザクションとして組み立て、トランザクション提案および応答をトランザクション・メッセージ内で配列ノード284にブロードキャストする。トランザクションには、読み書き集合、承認ピアのサイン、およびチャネルIDを含んでいてもよい。配列ノード284は、その動作の実行のためにトランザクションの全内容を検査する必要がなく、代替として単に、ネットワークのすべてのチャネルからトランザクションを受信し、チャネルによって時系列に配列し、チャネルごとにトランザクションのブロックを生成するようにしてもよい。
トランザクションのブロックは、配列ノード284からチャネル上のすべてのピア・ノード281〜283に配送される。ブロック内のトランザクション294の有効化によって、任意の承認ポリシーが満たされ、トランザクションの実行によって読み込み集合が生成されてから読み込み集合の変数に対して台帳の状態が変化していないものとする。ブロック中のトランザクションは、有効または無効としてタグ付けがなされる。さらに、ステップ295においては、各ピア・ノード281〜283がブロックをチャネルのチェーンに追加し、有効なトランザクションごとに、書き込み集合が現在状態データベースに関与する。イベントの発出によって、トランザクション(呼び出し)が変わりなくチェーンに追加されたことのほか、トランザクションが有効化されたか無効化されたかをクライアントのアプリケーションに通知する。
図3は、非集中的な分散ピアツーピア・アーキテクチャと、ユーザの役割および認可を管理する認証機関318とを特徴とする認可ブロックチェーン・ネットワーク300の一例を示している。本例において、ブロックチェーン・ユーザ302は、トランザクションを認可ブロックチェーン・ネットワーク310に提出するようにしてもよい。本例において、トランザクションとしては、展開、呼び出し、または問い合わせが可能であり、REST API等により直接SDKを活用するクライアント側アプリケーションを通じて発行されるようになっていてもよい。信頼できるビジネス・ネットワークが監査役(たとえば、米国株式市場における証券取引委員会)等の規制者システム314へのアクセスを提供するようにしてもよい。一方、ノード312のブロックチェーン・ネットワーク・オペレータ・システムは、規制者システム314の「監査役」としての登録およびブロックチェーン・ユーザ302の「クライアント」としての登録等、メンバーの認可を管理する。監査役が台帳への問い合わせのみに制限される一方、クライアントには、特定種類のチェーンコードの展開、呼び出し、および問い合わせの権限を付与することも可能である。
ブロックチェーン開発者システム316がチェーンコードおよびクライアント側アプリケーションを記述する。ブロックチェーン開発者システム316は、RESTインターフェースを通じて直接、チェーンコードをネットワークに展開可能である。従来のデータ源330からの認証情報をチェーンコードに取り込むため、開発者システム316は、帯域外接続を用いてデータにアクセスすることも可能である。本例において、ブロックチェーン・ユーザ302は、ピア・ノード308を通じてネットワークにつながる。任意のトランザクションを進める前に、ピア・ノード308は、認証機関318から、ユーザの登録およびトランザクション証明書を読み出す。場合によっては、認可ブロックチェーン・ネットワーク310上でのトランザクションのため、ブロックチェーン・ユーザがこれらのデジタル証明書を有する必要がある。一方、チェーンコードを駆動しようとするユーザは、従来のデータ源330上でそれぞれの認証情報を確認することが必要となり得る。ユーザの権限を確認するため、チェーンコードは、従来の処理プラットフォーム320を通じたこのデータへの帯域外接続を使用可能である。
図4は、例示的な実施形態に係る、データ・レコード管理を実行するシステム・メッセージング図である。図4を参照して、システム構成400は、ブロックチェーン・ピア・グループ410、ブロックチェーン・トランザクションを管理する配列サービス420、およびブロックチェーン430を提供する。一例において、ピアは、データ・レコードに関するデータ・レコード提案の受信412およびデータ・レコード提案の承認414を行うようにしてもよく、これは、ブロックチェーンにおいてスマート・コントラクト・グループにより表されることになる。承認提案416は、配列サービス420に転送されてもよく、提案は個々のスマート・コントラクト・レベルのブロックチェーン・トランザクションへの分解418が行われ、ブロックチェーン430に関与するトランザクションのブロックとしての再構築422が行われるようになっていてもよい。トランザクションのブロックは、ブロックチェーンへの転送424および関与426が行われる。
図5は、例示的な実施形態に係る、ブロックチェーンにおけるデータ・レコード管理の例示的な方法のフロー図である。図5を参照して、方法500は、ブロックチェーンに取り込まれるデータ・レコードの識別512と、ブロックチェーンにアクセス可能なデータ消費者に対してデータ・レコードへのアクセスを可能にするスマート・コントラクト・グループの生成514と、スマート・コントラクト・グループが1つまたは複数のブロックチェーン・ピアにより登録された旨の判定516と、スマート・コントラクト・グループのブロックチェーン上での格納518とを含む。また、この方法は、スマート・コントラクト・グループ中の各スマート・コントラクトにデータ・レコードの異なる部分が割り当てられるように、データ・レコードの異なる部分をスマート・コントラクト・グループに割り当てることを含む。この方法は、データ・レコードと関連付けられた複数のスマート・コントラクト・レベルのデータ・レコード・アクセス提案を含むグループ呼び出しトランザクション提案を識別することと、1つまたは複数のブロックチェーン・ピアによりグループ呼び出しトランザクション提案を承認することと、グループ呼び出しトランザクション提案を配列サービスに送信することと、承認したグループ呼び出しトランザクション提案を複数の個々の承認スマート・コントラクトに分解することと、配列サービスから、ブロックチェーンに関与するブロックチェーン・トランザクションとして、1つまたは複数のブロックチェーン・ピアに対応する複数の承認トランザクションを送信することと、配列サービスへの1つまたは複数のグループの登録を実行することであり、当該登録が、グループ識別子、レコード・フィールド、およびスマート・コントラクト・グループに対応するスマート・コントラクト識別子を含む、実行することとをさらに含んでいてもよい。
図6Aは、例示的な実施形態に係る、例示的な動作方法のうちの1つまたは複数に従って、さまざまな動作をブロックチェーン上で実行するように構成された例示的な物理的インフラを示している。図6Aを参照して、例示的な構成600は、ブロックチェーン620およびスマート・コントラクト640を備えた物理的インフラ610を含み、例示的な実施形態のいずれかに含まれる動作ステップ612のいずれかを実行するようにしてもよい。ステップ/動作612には、1つまたは複数のフロー図またはロジック図、あるいはその両方に記載または図示のステップのうちの1つまたは複数を含んでいてもよい。これらのステップは、コンピュータ・システム構成の物理的インフラ610上に存在する1つまたは複数のスマート・コントラクト640またはブロックチェーン620、あるいはその両方に対して読み書きされる出力または書き込み情報を表していてもよい。データは、実行されたスマート・コントラクト640またはブロックチェーン620、あるいはその両方から出力可能である。物理的インフラ610には、1つまたは複数のコンピュータ、サーバ、プロセッサ、メモリ、または無線通信デバイス、あるいはその組み合わせを含んでいてもよい。
図6Bは、例示的な実施形態に係る、契約関係者間の例示的なスマート・コントラクト構成およびスマート・コントラクト条件をブロックチェーン上で施行するように構成された仲介サーバを示している。図6Bを参照して、構成650は、通信セッション、アセット移動セッション、または1つもしくは複数のユーザ・デバイス652もしくは656、あるいはその両方を明確に識別するスマート・コントラクト640により駆動されるプロセスもしくは手順を表していてもよい。スマート・コントラクト実行の実行、動作、および結果は、サーバ654により管理されるようになっていてもよい。スマート・コントラクト640の内容には、スマート・コントラクト・トランザクションの関係者であるエンティティ652および656のうちの1つまたは複数によるデジタル・サインを要する場合がある。スマート・コントラクトの実行結果は、ブロックチェーン・トランザクションとしてブロックチェーンに書き込まれるようになっていてもよい。
上記実施形態は、ハードウェア、プロセッサにより実行されるコンピュータ・プログラム、ファームウェア、またはこれらの組み合わせにて実現されていてもよい。コンピュータ・プログラムは、記憶媒体等のコンピュータ可読媒体上で具現化されていてもよい。たとえば、コンピュータ・プログラムは、ランダム・アクセス・メモリ(「RAM」)、フラッシュ・メモリ、リードオンリー・メモリ(「ROM」)、消去・プログラム可能リードオンリー・メモリ(「EPROM」)、電気的消去・プログラム可能リードオンリー・メモリ(「EEPROM」)、レジスタ、ハード・ディスク、リムーバブル・ディスク、コンパクト・ディスク・リードオンリー・メモリ(「CD−ROM」)、または当技術分野において既知の記憶媒体のその他任意の形態に存在していてもよい。
プロセッサが記憶媒体に対する情報の読み書きを行えるように、例示的な記憶媒体がプロセッサに結合されていてもよい。この代替として、記憶媒体は、プロセッサに一体化されていてもよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(「ASIC」)中に存在していてもよい。この代替として、プロセッサおよび記憶媒体は、離散コンポーネントとして存在していてもよい。たとえば、図7は、例示的なコンピュータ・システム・アーキテクチャ700を示しており、上述の構成要素等のいずれかを表していてもよいし、いずれかに組み込まれていてもよい。
図7は、本明細書に記載の本願の実施形態の使用または機能の範囲に関する制限の示唆を何ら意図したものではない。いずれにしろ、コンピューティング・ノード700は、実装または上述の機能のいずれかの実行、あるいはその両方が可能である。
コンピューティング・ノード700には、他の多くの汎用または専用コンピュータ・システム環境または構成と作用するコンピュータ・システム/サーバ702が存在する。コンピュータ・システム/サーバ702との併用に適し得る周知のコンピュータ・システム、環境、または構成、あるいはその組み合わせの例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式もしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、ならびに上記システムもしくはデバイスのいずれかを含む分散クラウド・コンピューティング環境等が挙げられるが、これらに限定されない。
コンピュータ・システム/サーバ702は、プログラム・モジュール等、コンピュータ・システムにより実行されるコンピュータ・システム実行可能命令の一般的背景にて記述されていてもよい。一般的に、プログラム・モジュールとしては、特定のタスクの実行または特定の抽象データ型の実装を行うルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造等が挙げられる。コンピュータ・システム/サーバ702は、通信ネットワークを通じてつながったリモート処理機器によりタスクが実行される分散クラウド・コンピューティング環境において実現されるようになっていてもよい。分散クラウド・コンピューティング環境においては、メモリ記憶装置を含むローカルおよびリモートの両コンピュータ・システム記憶媒体にプログラム・モジュールが配置されていてもよい。
図7に示すように、クラウド・コンピューティング・ノード700におけるコンピュータ・システム/サーバ702は、汎用コンピュータ機器の形態で示している。コンピュータ・システム/サーバ702の構成要素としては、1つまたは複数のプロセッサまたは処理ユニット704、システム・メモリ706、およびシステム・メモリ706を含むさまざまなシステム構成要素をプロセッサ704に結合するバスが挙げられるが、これらに限定されない。
バスは、任意の複数種類のバス構造のうちの1つまたは複数を表し、多様なバス・アーキテクチャのいずれかを用いたメモリ・バスもしくはメモリ・コントローラ、周辺機器用バス、アクセラレイテッド・グラフィックス・ポート、ならびにプロセッサもしくはローカル・バスが挙げられる。非限定的な一例として、このようなアーキテクチャとしては、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス規格協会(VESA)ローカル・バス、および周辺機器相互接続(PCI)バスが挙げられる。
コンピュータ・システム/サーバ702は通常、多様なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ702によりアクセス可能な任意の利用可能な媒体であってもよく、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体の両者を含む。一実施形態において、システム・メモリ706は、その他の図面のフロー図を実装する。システム・メモリ706は、ランダム・アクセス・メモリ(RAM)710またはキャッシュ・メモリ712、あるいはその両方等、揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム/サーバ702は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含んでいてもよい。非リムーバブル不揮発性磁気媒体(図示しないが、通常は「ハード・ドライブ」と称する)に対する読み書き用として、ストレージ・システム714を設けることも可能であるが、一例に過ぎない。図示はしていないものの、リムーバブル不揮発性磁気ディスク(たとえば、「フロッピー・ディスク」)に対する読み書き用の磁気ディスク・ドライブならびにCD−ROM、DVD−ROM、もしくは他の光学媒体等のリムーバブル不揮発性光ディスクに対する読み書き用の光ディスク・ドライブを設けることも可能である。このような場合は、1つまたは複数のデータ媒体インターフェースによって、それぞれをバスに接続可能である。以下に別途図示および説明する通り、メモリ706は、本願の種々の実施形態の機能を実行するように構成された一組(たとえば、少なくとも一組)のプログラム・モジュールを有する少なくとも1つのプログラム製品を含んでいてもよい。
非限定的な一例として、一組(少なくとも一組)のプログラム・モジュール718を有するプログラム/ユーティリティ716のほか、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データがメモリ706に格納されていてもよい。オペレーティング・システム、1つもしく複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらの何らかの組み合わせはそれぞれ、ネットワーキング環境の一実施態様を含んでいてもよい。プログラム・モジュール718は一般的に、本明細書に記載の本願の種々実施形態の機能または方法、あるいはその両方を実行する。
当業者には当然のことながら、本願の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化されていてもよい。したがって、本願の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等)、またはソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態であってもよく、本明細書においては、これらすべてを全体的に「回路」、「モジュール」、または「システム」と総称する場合がある。さらに、本願の態様は、コンピュータ可読プログラム・コードが具現化された1つまたは複数のコンピュータ可読媒体において具現化されたコンピュータ・プログラム製品の形態であってもよい。
また、コンピュータ・システム/サーバ702は、キーボード、ポインティング・デバイス、ディスプレイ722等の1つもしくは複数の外部デバイス720、ユーザによる当該コンピュータ・システム/サーバ702との相互作用を可能にする1つもしくは複数のデバイス、または当該コンピュータ・システム/サーバ702による1つもしくは複数の他のコンピュータ機器との通信を可能にする任意のデバイス(たとえば、ネットワーク・カード、モデム等)、あるいはその組み合わせと通信するようになっていてもよい。このような通信は、入出力(I/O)インターフェース724を介して発生し得る。さらに、コンピュータ・システム/サーバ702は、ネットワーク・アダプタ726を介して、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(たとえば、インターネット)、あるいはその組み合わせ等の1つまたは複数のネットワークと通信可能である。図示のように、ネットワーク・アダプタ726は、バスを介して、コンピュータ・システム/サーバ702の他の構成要素と通信する。図示はしていないものの、コンピュータ・システム/サーバ702と併せて、他のハードウェアまたはソフトウェア構成要素、あるいはその両方を使用することも可能であることが了解されるものとする。その例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ記録ストレージ・システム等が挙げられるが、これらに限定されない。
システム、方法、および非一過性コンピュータ可読媒体のうちの少なくとも1つの例示的な一実施形態を添付の図面に示すとともに、上記詳細な説明に記載したが、本願は、開示の実施形態に限定されず、以下の特許請求の範囲により明記および規定される多くの再構成、改良、および代替が可能であることが了解される。たとえば、さまざまな図面のシステムの機能は、本明細書に記載のモジュールまたはコンポーネントのうちの1つまたは複数による実行も可能であるし、分散アーキテクチャにおける実行も可能であり、また、送信機、受信機、または両者のペアを具備していてもよい。たとえば、個々のモジュールが実行する機能の全部または一部がこれらモジュールのうちの1つまたは複数により実行されるようになっていてもよい。さらに、本明細書に記載の機能は、モジュールまたはコンポーネントの内部または外部のさまざまなイベントとの関連で何度も実行されるようになっていてもよい。また、さまざまなモジュール間で送られる情報は、データ・ネットワーク、インターネット、ボイス・ネットワーク、インターネット・プロトコル・ネットワーク、無線デバイス、有線デバイスのうちの少なくとも1つ、または複数のプロトコル、あるいはその組み合わせを介してモジュール間で送信可能である。また、モジュールのいずれかにより送受信されるメッセージは、直接的な送受信またはその他のモジュールのうちの1つもしくは複数を介した送受信、あるいはその両方が可能である。
当業者には当然のことながら、「システム」は、パソコン、サーバ、コンソール、個人用デジタル補助装置(PDA)、携帯電話、タブレット・コンピュータ機器、スマートフォン、もしくはその他任意の好適なコンピュータ機器、または機器の組み合わせとして具現化することも可能である。「システム」による実行として上述の機能を提示することに、本願の範囲を制限する意図は一切なく、多くの実施形態の一例を提供する意図しかない。実際、本明細書に開示の方法、システム、および装置は、コンピュータ技術と矛盾しないローカライズされた分散形態にて実装されていてもよい。
本明細書に記載のシステム機能の一部は、それぞれの実装独立性をより具体的に強調するため、モジュールとして提示されていることに留意するものとする。たとえば、カスタムの超大規模集積(VLSI)回路もしくはゲート・アレイ、論理チップ等の既製半導体、トランジスタ、または他の個別部品を含むハードウェア回路としてモジュールが実装されていてもよい。また、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、グラフィックス処理ユニット等のプログラム可能なハードウェア・デバイスにてモジュールが実装されていてもよい。
また、さまざまな種類のプロセッサにより実行されるソフトウェアにてモジュールの少なくとも一部が実装されていてもよい。たとえば、実行可能コードの識別ユニットは、オブジェクト、手続き、または関数として構造化可能なコンピュータ命令の1つまたは複数の物理的または論理的ブロックを含んでいてもよい。その一方で、識別モジュールの実行ファイルは、物理的に一体配置する必要がなく、論理的に一体結合された場合に当該モジュールを含むとともに当該モジュールの規定された目的を達成する異なる場所に格納された異種命令を含んでいてもよい。さらに、モジュールがコンピュータ可読媒体に格納されていてもよく、たとえば、ハード・ディスク・ドライブ、フラッシュ・デバイス、ランダム・アクセス・メモリ(RAM)、テープ、またはこのようなデータの格納に用いられるその他任意の媒体が考えられる。
実際、実行可能コードのモジュールとしては、単一の命令も多数の命令も可能であり、また、異なるプログラムの中で、複数のメモリ・デバイスにまたがって、複数の異なるコード・セグメントにわたって分散していてもよい。同様に、本明細書においては、演算データがモジュール内で識別および図示されるようになっていてもよく、任意好適な形態で具現化されるとともに、任意好適な種類のデータ構造において構造化されていてもよい。演算データは、単一のデータ・セットとして収集されるようになっていてもよいし、異なる記憶装置を含む異なる場所に分散していてもよく、少なくとも一部が単に電子信号として、システムまたはネットワーク上に存在していてもよい。
本明細書の図面に大略記載するとともに図示する本願の構成要素は、多種多様な異なる構成で配置および設計されていてもよいことが容易に了解される。このため、実施形態の詳細な説明は、特許請求の範囲に係る本願の範囲を制限する意図はなく、本願の選択的な実施形態を表しているに過ぎない。
当業者であれば、異なる順序のステップまたは本開示と異なる構成におけるハードウェア要素、あるいはその両方によって上記が実現され得ることが容易に了解されるであろう。したがって、上記好適な実施形態に基づいて本願を説明したが、当業者には、特定の改良、変更、および代替構成が明らかとなるであろう。
以上、本願の好適な実施形態を説明したが、上記実施形態は例示に過ぎず、本願の範囲は、添付の特許請求の範囲に対して、そのあらゆる同等物および改良物(たとえば、プロトコル、ハードウェア・デバイス、ソフトウェア・プラットフォーム等)を考慮する場合にのみ規定されるであろうことが了解されるものとする。

Claims (20)

  1. ブロックチェーンに取り込まれるデータ・レコードを識別することと、
    前記ブロックチェーンにアクセス可能なデータ消費者に対して前記データ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、
    前記スマート・コントラクト・グループが1つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、
    前記スマート・コントラクト・グループを前記ブロックチェーン上で格納することと、
    を含む方法。
  2. 前記スマート・コントラクト・グループ中の各スマート・コントラクトに前記データ・レコードの異なる部分が割り当てられるように、前記データ・レコードの異なる部分を前記スマート・コントラクト・グループに割り当てることをさらに含む、請求項1に記載の方法。
  3. 前記データ・レコードと関連付けられた複数のデータ・レコード・アクセス提案を含むグループ呼び出しトランザクション提案を識別することをさらに含む、請求項1に記載の方法。
  4. 前記1つまたは複数のブロックチェーン・ピアにより前記グループ呼び出しトランザクション提案を承認することと、
    前記グループ呼び出しトランザクション提案を配列サービスに送信することと、
    をさらに含む、請求項3に記載の方法。
  5. 前記承認したグループ呼び出しトランザクション提案を複数の個々の承認したスマート・コントラクトに分解することをさらに含む、請求項4に記載の方法。
  6. 前記配列サービスから、前記ブロックチェーンに関与するブロックチェーン・トランザクションとして、前記1つまたは複数のブロックチェーン・ピアに対応する複数の承認したトランザクションを送信することをさらに含む、請求項5に記載の方法。
  7. 前記配列サービスへの1つまたは複数のグループの登録を実行することであり、前記登録が、グループ識別子、レコード・フィールド、および前記スマート・コントラクト・グループに対応するスマート・コントラクト識別子を含む、前記実行することをさらに含む、請求項6に記載の方法。
  8. ブロックチェーンに取り込まれるデータ・レコードを識別することと、
    前記ブロックチェーンにアクセス可能なデータ消費者に対して前記データ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、
    前記スマート・コントラクト・グループが1つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、
    前記スマート・コントラクト・グループを前記ブロックチェーン上で格納することと、
    を行うように構成されたプロセッサを備えた装置。
  9. 前記プロセッサが、前記スマート・コントラクト・グループ中の各スマート・コントラクトに前記データ・レコードの異なる部分が割り当てられるように、前記データ・レコードの異なる部分を前記スマート・コントラクト・グループに割り当てるようにさらに構成された、請求項8に記載の装置。
  10. 前記プロセッサが、前記データ・レコードと関連付けられた複数のデータ・レコード・アクセス提案を含むグループ呼び出しトランザクション提案を識別するようにさらに構成された、請求項8に記載の装置。
  11. 前記プロセッサが、前記1つまたは複数のブロックチェーン・ピアにより前記グループ呼び出しトランザクション提案を承認するようにさらに構成され、
    前記装置が、前記グループ呼び出しトランザクション提案を配列サービスに送信するように構成された送信機をさらに備えた、請求項10に記載の装置。
  12. 前記プロセッサが、前記承認したグループ呼び出しトランザクション提案を複数の個々の承認したスマート・コントラクトに分解するようにさらに構成された、請求項11に記載の装置。
  13. 前記送信機が、前記配列サービスから、前記ブロックチェーンに関与するブロックチェーン・トランザクションとして、前記1つまたは複数のブロックチェーン・ピアに対応する複数の承認したトランザクションを送信するようにさらに構成された、請求項12に記載の装置。
  14. 前記プロセッサが、前記配列サービスへの1つまたは複数のグループの登録を実行することであり、前記登録が、グループ識別子、レコード・フィールド、および前記スマート・コントラクト・グループに対応するスマート・コントラクト識別子を含む、前記実行することを行うようにさらに構成された、請求項13に記載の装置。
  15. 非一過性コンピュータ可読記憶媒体であって、
    実行された場合に、
    ブロックチェーンに取り込まれるデータ・レコードを識別することと、
    前記ブロックチェーンにアクセス可能なデータ消費者に対して前記データ・レコードへのアクセスを可能にするスマート・コントラクト・グループを生成することと、
    前記スマート・コントラクト・グループが1つまたは複数のブロックチェーン・ピアにより登録されたものと判定することと、
    前記スマート・コントラクト・グループを前記ブロックチェーン上で格納することと、
    をプロセッサに実行させる命令を格納するように構成された非一過性コンピュータ可読記憶媒体。
  16. 前記プロセッサが、前記スマート・コントラクト・グループ中の各スマート・コントラクトに前記データ・レコードの異なる部分が割り当てられるように、前記データ・レコードの異なる部分を前記スマート・コントラクト・グループに割り当てることを実行するようにさらに構成された、請求項15に記載の非一過性コンピュータ可読記憶媒体。
  17. 前記プロセッサが、前記データ・レコードと関連付けられた複数のデータ・レコード・アクセス提案を含むグループ呼び出しトランザクション提案を識別することを実行するようにさらに構成された、請求項15に記載の非一過性コンピュータ可読記憶媒体。
  18. 前記プロセッサが、
    前記1つまたは複数のブロックチェーン・ピアにより前記グループ呼び出しトランザクション提案を承認することと、
    前記グループ呼び出しトランザクション提案を配列サービスに送信することと、
    を実行するようにさらに構成された、請求項17に記載の非一過性コンピュータ可読記憶媒体。
  19. 前記プロセッサが、前記承認したグループ呼び出しトランザクション提案を複数の個々の承認したスマート・コントラクトに分解することを実行するようにさらに構成された、請求項18に記載の非一過性コンピュータ可読記憶媒体。
  20. 前記プロセッサが、
    前記配列サービスから、前記ブロックチェーンに関与するブロックチェーン・トランザクションとして、前記1つまたは複数のブロックチェーン・ピアに対応する複数の承認したトランザクションを送信することと、
    前記配列サービスへの1つまたは複数のグループの登録を実行することであり、前記登録が、グループ識別子、レコード・フィールド、および前記スマート・コントラクト・グループに対応するスマート・コントラクト識別子を含む、前記実行することと、
    を実行するようにさらに構成された、請求項19に記載の非一過性コンピュータ可読記憶媒体。
JP2020563774A 2018-05-15 2019-04-17 ブロックチェーン上のスマート・コントラクト・グループに対する自動データ投影 Active JP7161273B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/980,394 US11769156B2 (en) 2018-05-15 2018-05-15 Automated data projection for smart contract groups on a blockchain
US15/980,394 2018-05-15
PCT/EP2019/060014 WO2019219324A1 (en) 2018-05-15 2019-04-17 Automated data projection for smart contract groups on a blockchain

Publications (2)

Publication Number Publication Date
JP2021524962A true JP2021524962A (ja) 2021-09-16
JP7161273B2 JP7161273B2 (ja) 2022-10-26

Family

ID=66240146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020563774A Active JP7161273B2 (ja) 2018-05-15 2019-04-17 ブロックチェーン上のスマート・コントラクト・グループに対する自動データ投影

Country Status (5)

Country Link
US (1) US11769156B2 (ja)
EP (1) EP3794471A1 (ja)
JP (1) JP7161273B2 (ja)
CN (1) CN112154434A (ja)
WO (1) WO2019219324A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10778412B2 (en) * 2017-12-28 2020-09-15 Intel Corporation Multi-domain convolutional neural network
CN111259438A (zh) * 2020-01-13 2020-06-09 北京工业大学 一种基于区块链的物联网数据溯源方法
CN110995521B (zh) * 2020-03-03 2021-02-19 支付宝(杭州)信息技术有限公司 服务提供方法、装置、设备及系统
US11397728B2 (en) * 2020-03-30 2022-07-26 Oracle lnternational Corporation Distributed and blockchain-based ledgers for data cloud services
CN112231404A (zh) * 2020-10-15 2021-01-15 深圳壹账通智能科技有限公司 基于区块链的数据共享方法、计算机设备和存储介质
WO2022114898A1 (ko) * 2020-11-27 2022-06-02 한국과학기술원 다중파일 트랜잭션의 파일 관리 기법 및 장치
CN112837157A (zh) * 2021-02-10 2021-05-25 中国人民银行数字货币研究所 区块链中定时智能合约的注册、执行方法、装置和系统
CN112819634B (zh) * 2021-02-25 2023-06-02 成都质数斯达克科技有限公司 交易处理方法、装置、电子设备及可读存储介质
CN113612809B (zh) * 2021-05-13 2023-11-14 南京欣网互联网络科技有限公司 一种基于PaaS平台的BaaS架构下fabric链码外部调用方法
CN113656405B (zh) * 2021-08-10 2023-08-18 湖南天河国云科技有限公司 基于区块链的链上雷达图共建共享方法及装置
CN115766616B (zh) * 2022-10-16 2024-04-26 昆明理工大学 一种基于HoneyBadgerBFT共识算法的数据共享方法
CN116383883B (zh) * 2023-04-14 2023-12-22 水发科技信息(山东)有限公司 一种基于大数据的数据管理权限处理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017011601A1 (en) * 2015-07-14 2017-01-19 Fmr Llc Computationally efficient transfer processing, auditing, and search apparatuses, methods and systems
US20170085545A1 (en) * 2015-07-14 2017-03-23 Fmr Llc Smart Rules and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20180123779A1 (en) * 2016-11-01 2018-05-03 Jiangang Zhang Flexible Blockchain Smart-Contract Deployment

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170017954A1 (en) * 2015-07-14 2017-01-19 Fmr Llc Point-to-Point Transaction Guidance Apparatuses, Methods and Systems
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
JP7128111B2 (ja) 2016-02-23 2022-08-30 エヌチェーン ホールディングス リミテッド ブロックチェーンを介して資産関連活動を制御するシステム及び方法
US10346406B2 (en) 2016-03-28 2019-07-09 International Business Machines Corporation Decentralized autonomous edge compute coordinated by smart contract on a blockchain
US11526938B2 (en) 2016-03-31 2022-12-13 Refinitiv Us Organization Llc Systems and methods for providing financial data to financial instruments in a distributed ledger system
US20170344988A1 (en) 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
US20180089758A1 (en) * 2016-09-26 2018-03-29 Shapeshift Ag System and method of providing a contract-creator application
CN107103473A (zh) * 2017-04-27 2017-08-29 电子科技大学 一种基于区块链的智能合约实现方法
US11238543B2 (en) * 2017-05-06 2022-02-01 Adp, Llc Payroll based blockchain identity
CN107968708B (zh) * 2017-11-10 2020-01-17 财付通支付科技有限公司 生成签名的方法、装置、终端及服务器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017011601A1 (en) * 2015-07-14 2017-01-19 Fmr Llc Computationally efficient transfer processing, auditing, and search apparatuses, methods and systems
US20170085545A1 (en) * 2015-07-14 2017-03-23 Fmr Llc Smart Rules and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20180123779A1 (en) * 2016-11-01 2018-05-03 Jiangang Zhang Flexible Blockchain Smart-Contract Deployment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
立石 孝彰: "ブロックチェーンアプリケーション開発の実践と今後の課題", 情報処理学会 シンポジウム ソフトウェアエンジニアリングシンポジウム 2017 [ONLINE], vol. 2017, JPN6022018818, 23 August 2017 (2017-08-23), JP, pages 204 - 211, ISSN: 0004774277 *

Also Published As

Publication number Publication date
WO2019219324A1 (en) 2019-11-21
JP7161273B2 (ja) 2022-10-26
EP3794471A1 (en) 2021-03-24
US20190354989A1 (en) 2019-11-21
CN112154434A (zh) 2020-12-29
US11769156B2 (en) 2023-09-26

Similar Documents

Publication Publication Date Title
JP7161273B2 (ja) ブロックチェーン上のスマート・コントラクト・グループに対する自動データ投影
CN111144881B (zh) 对资产转移数据的选择性访问
US10299113B1 (en) Switching mobile service provider using blockchain
US10834062B2 (en) Unlinking ownership of successive asset transfers on a blockchain
US11227057B2 (en) Membership access management of a database
US11972004B2 (en) Document redaction and reconciliation
US11741083B2 (en) Cross-shard private atomic commit
US20200119910A1 (en) Selective exchange of transaction data
JP2019160312A (ja) ブロックチェーン・ノード、ブロックチェーン・ノードの方法、およびブロックチェーン・ノードのコンピュータ・プログラム
US20190354614A1 (en) Configuration drift prevention across multiple systems using blockchain
US11270017B2 (en) Selective exchange of transaction data
CN111881099A (zh) 数据库私有文档共享
US11194911B2 (en) Blockchain technique for agile software development framework
US11301590B2 (en) Unfalsifiable audit logs for a blockchain
US11360946B2 (en) Tracking data transfers
US11568402B2 (en) Decentralized out-of-band accelerated blockchain transaction processing
US20200089509A1 (en) Collaborative model execution
US11157622B2 (en) Blockchain technique for agile software development framework
US20200081998A1 (en) Performing bilateral negotiations on a blockchain
CN111753002A (zh) 基于同意的数据管理
US11621858B2 (en) Anonymity mechanisms in permissioned blockchain networks
US20200082391A1 (en) Performing bilateral negotiations on a blockchain
CN115705571A (zh) 保护可审计的帐户的隐私
CN111698198A (zh) 秘密生成和份额分发
CN116583833A (zh) 自审计区块链

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201118

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20201111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220428

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220729

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20221006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221012

R150 Certificate of patent or registration of utility model

Ref document number: 7161273

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150