JP2024509666A - ブロックチェーンデータセグリゲーション - Google Patents
ブロックチェーンデータセグリゲーション Download PDFInfo
- Publication number
- JP2024509666A JP2024509666A JP2023541790A JP2023541790A JP2024509666A JP 2024509666 A JP2024509666 A JP 2024509666A JP 2023541790 A JP2023541790 A JP 2023541790A JP 2023541790 A JP2023541790 A JP 2023541790A JP 2024509666 A JP2024509666 A JP 2024509666A
- Authority
- JP
- Japan
- Prior art keywords
- key
- node
- data
- blockchain
- block
- 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.)
- Pending
Links
- 238000005204 segregation Methods 0.000 title description 6
- 230000008520 organization Effects 0.000 claims abstract description 79
- 238000000034 method Methods 0.000 claims description 55
- 238000003860 storage Methods 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 18
- 230000006854 communication Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 32
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 23
- 238000013480 data collection Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 15
- 238000013475 authorization Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 7
- 238000010200 validation analysis Methods 0.000 description 7
- 238000005065 mining Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic 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)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
ブロックチェーンネットワークにおけるノードは、第1リングについてのキーを生成し得、ここで、キーはデータの第1コレクションをアンロックし、第2組織の第2ノードを含む第2リングを定義し、データの第2コレクションについての第2キーを導出し、ここで、第1キー及び第2キーは、データの第2コレクションにアクセスし、第2キーを第2ノードに分散する。
Description
本開示は、ブロックチェーンネットワーク上のオペレーションの処理、より具体的には、ブロックチェーンネットワーク上の組織間でデータをセキュアに共有することに関する。
ブロックチェーンは、ブロックと呼ばれる、暗号的にリンクされたレコードのリストである。ブロックチェーンは、データの様々なコレクションへのアクセスを制御するために使用され得る。データは、暗号化プロトコルを通じてブロックチェーンネットワーク上でセキュアに共有され得る。
本開示の実施形態は、ブロックチェーンネットワークにおけるブロックチェーンデータセグリゲーションのための方法、システム、及びコンピュータプログラム製品を含む。
本開示の実施形態は、第1リングにおける第1組織の第1ノードによって、第1リングについての第1キーを生成する段階、ここで、第1キーは、データの第1コレクションをアンロックし、第1ノードによって、第2組織の第2ノードを含む第2リングを定義する段階、ノードによって、第1キーに基づいて、データの第2コレクションについての第2キーを導出する段階、ここで、第1キー及び第2キーは、データの第2コレクションにアクセスする、及び、第2キーを第2ノードに分散する段階を備える方法を含む。
本開示の追加の実施形態は、メモリを含むシステム、並びに、メモリと通信するプロセッサを備え、プロセッサは、オペレーションを実行するよう構成され、当該オペレーションは、第1リングにおける第1組織の第1ノードによって、第1リングについてのキーを生成すること、ここで、キーはデータの第1コレクションをアンロックし、第1ノードによって、第2組織の第2ノードを含む第2リングを定義すること、ノードによって、第1キーに基づいて、データの第2コレクションについての第2キーを導出すること、ここで、第1キー及び第2キーは、データの第2コレクションにアクセスし、第2キーを第2ノードに分散することを含む。
本開示の更なる実施形態は、それに具現化されたプログラム命令を有するコンピュータ可読記憶媒体を備えるコンピュータプログラム製品を含み、プログラム命令は、プロセッサによって実行可能であり、プロセッサに方法を実行させ、方法は、第1リングにおける第1組織の第1ノードによって、第1リングについてのキーを生成する段階、ここで、キーはデータの第1コレクションをアンロックし、第1ノードによって、第2組織の第2ノードを含む第2リングを定義する段階、ノードによって、第1キーに基づいて、データの第2コレクションについての第2キーを導出する段階、ここで、第1キー及び第2キーは、データの第2コレクションをアクセスし、第2キーを第2ノードに分散する段階を含む。
上記の概要は、例示された各実施形態又は本開示のすべての実装を説明することを意図したものではない。
本開示に含まれる図面は、本明細書に組み込まれ、その一部を形成する。それらは、本開示の実施形態を例示し、説明とともに、本開示の原理を説明するのに役立つ。図面は、特定の実施形態を単に例示するものであり、本開示を限定するものではない。
本明細書で説明される実施形態は、様々な修正及び代替形態が可能であるが、それらの具体的な内容は、例として図面に示されており、詳細に説明される。しかしながら、説明される特定の実施形態は、限定的な意味に解釈されるべきではないことを理解されるべきである。むしろ、本発明は、本開示の範囲に含まれる全ての修正形態、均等物、及び、代替物を対象とするものである。
本開示の態様は、ブロックチェーンネットワーク上のオペレーションの処理、より具体的には、ブロックチェーンネットワーク上の組織間でデータをセキュアに共有することに関する。
本明細書において概して説明され、図示されるような本コンポーネントは、多種多様な異なる構成で配置及び設計され得ることが容易に理解されるであろう。したがって、添付図面に表されるような、方法、装置、非一時的コンピュータ可読媒体、及びシステムのうちの少なくとも1つの実施形態の以下の詳細な説明は、特許請求される本願の範囲を限定することを意図するものではなく、単に選択された実施形態を表わすものである。
本明細書を通して説明される本特徴、構造、又は特性は、1又は複数の実施形態において任意の適切な方法で組み合わせ又は除去し得る。例えば、「例示的な実施形態」、「いくつかの実施形態」という語句、又は他の同様の文言の使用は、本明細書を通して、実施形態に関連して説明される特定の特徴、構造、又は特性が、少なくとも1つの実施形態において含まれ得ることを指す。したがって、「例示的な実施形態」、「いくつかの実施形態において」、「他の実施形態において」という語句、又は他の同様の文言の出現は、本明細書を通して、必ずしもすべてが同じ実施形態のグループを指すわけではなく、説明される特徴、構造、又は特性は、1又は複数の実施形態において任意の適切な方法で組み合わせ又は除去し得る。さらに、図において、要素間の任意の接続は、図示されている接続が一方向又は双方向矢印であっても、一方向及び/又は双方向通信を許容できる。また、図面に示された任意のデバイスは、別のデバイスであってもよい。例えば、モバイルデバイスが情報を送信するものとして示されている場合でも、有線デバイスもまた情報を送信するのに用いられ得る。
また、「メッセージ」という用語が実施形態の説明において用いられている場合があるが、本願は、多くのタイプのネットワーク及びデータに適用され得る。さらに、例示的な実施形態において、特定のタイプの接続、メッセージ、及びシグナリングが示されている場合があるが、本願は、特定のタイプの接続、メッセージ、及びシグナリングに限定されるものではない。
いくつかの実施形態では、方法、システム、及び/又は、コンピュータプログラム製品は、互いに通信する複数のノードを含む分散記憶システムである分散データベース(ブロックチェーンなど)を利用する。分散データベースは、相互に信頼されていない当事者間の記録を維持することができる分散型台帳に似た、アペンド専用の不変データ構造を含む。信頼されていない当事者は、本明細書において、ピア又はピアノードと呼ばれる。各ピアは、データベースレコードのコピーを維持しており、分散されたピア間でコンセンサスが達成されないと、単独のピアはデータベースレコードを修正できない。例えば、ピアはコンセンサスプロトコルを実行して、ブロックチェーンストレージトランザクションをバリデートし、ストレージトランザクションをブロックにグループ化し、ブロックにわたってハッシュチェーンを構築し得る。この処理では、一貫性を保つために、必要に応じてストレージトランザクションを順序付けすることによって、台帳が形成される。
様々な実施形態において、許可型及び/又は無許可型ブロックチェーンを使用することが可能である。パブリックの又は無許可型のブロックチェーンは、特定の身元なく(例えば、匿名性を保持しながら)、誰でもが参加可能である。パブリックブロックチェーンは、ネイティブ暗号通貨を関与させることができ、プルーフオブワークなどの様々なプロトコルに基づくコンセンサスを用いることができる。一方、許可制ブロックチェーンデータベースは、資金、品物、情報などを交換するビジネスなどの、共通の目的を共有するが、互いに十分には信頼していないエンティティのグループ内での安全なインタラクションを提供する。
さらに、いくつかの実施形態では、本方法、システム、及び/又は、コンピュータプログラム製品は、非集中型記憶スキームに適合され、「スマートコントラクト」又は「チェーンコード」と称される任意のプログラマブルロジックを動作させるブロックチェーンを利用できる。いくつかのケースでは、管理機能及びパラメータのために専用のチェーンコードが存在し得、これらは、システムチェーンコードと称される。本方法、システム、及び/又は、コンピュータプログラム製品は、ブロックチェーンデータベースのタンパー防止特性、及び、ノード間での基礎合意を活用する、信用された分散アプリケーションであるスマートコントラクトをさらに利用可能であり、これらは、エンドースメント又はエンドースメントポリシと称される。本願に関連付けられるブロックチェーントランザクションは、ブロックチェーンにコミットする前に「承認(endorsed)」でき、承認されていないトランザクションは無視される。
エンドースメントポリシーにより、チェーンコードは、エンドースメントに必要なピアノードのセットの形式でトランザクションのエンドーサを指定できる。クライアントがトランザクションをエンドースメントポリシーで指定されたピアに送信すると、トランザクションが実行され、トランザクションがバリデートされる。バリデーション後、トランザクションは順序付けフェーズに入り、ここでは、コンセンサスプロトコルを使用して、ブロックにグループ化されたエンドースされたトランザクションの順序付けられたシーケンスが生成される。
いくつかの実施形態では、本方法、システム、及び/又は、コンピュータプログラム製品は、ブロックチェーンシステムの通信エンティティであるノードを利用可能である。「ノード」は、同じ物理サーバ上で異なるタイプの複数のノードが動作できるという意味で、論理機能を実行し得る。ノードはトラストドメインにグループ化され、様々な方法でこれらを制御する論理エンティティに関連付けられる。ノードは、トランザクション呼び出しをエンドーサ(例えば、ピア)にサブミットし、トランザクションプロポーザルを順序付けサービス(例えば、順序付けノード)にブロードキャストする、クライアント又はサブミッティングクライアントノード等の、異なるタイプのものを含んでよい。
別のタイプのノードは、クライアントがサブミットしたトランザクションを受信し、トランザクションをコミットし、ブロックチェーントランザクションの台帳の状態及びコピーを保持することができるピアノードである。ピアは、エンドーサの役割を持つこともできるが、必須ではない。順序付けサービスノード又はオーダラは、すべてのノードについて通信サービスを実行するノードである。いくつかの場合において、順序付けサービスノードは、トランザクションをコミット/確認し、ブロックチェーンのワールドステートを修正するときの、システムにおけるピアノードの各々へのブロードキャストなど、デリバリ保証を実装する。ワールドステートとは、通常はコントロール及びセットアップ情報を含む初期ブロックチェーントランザクションについての別の名前である。
いくつかの実施形態において、方法、システム、及び/又はコンピュータプログラム製品は、シーケンス化された、ブロックチェーンのすべての状態遷移の耐タンパー性のレコードである台帳を利用できる。状態遷移は、参加者(例えば、クライアントノード、順序付けノード、エンドーサノード、ピアノードなど)によってサブミットされたチェーンコード呼び出し(例えば、トランザクション)によってもたらされ得る。各参加者(ピアノードなど)は、台帳のコピーを保持できる。トランザクションの結果、資産キー値対のセットが、作成、更新、削除などの1又は複数のオペランドとして台帳にコミットされ得る。台帳は、不変シーケンス化レコードをブロックに格納するために用いられるブロックチェーン(チェーンとも呼ばれる)を含む。台帳は、ブロックチェーンの現在の状態を保持する状態データベースも含む。
いくつかの実施形態において、本明細書に記載の方法、システム、及び/又はコンピュータプログラム製品は、ハッシュでリンク付けられたブロックとして構築されているトランザクションログであるチェーンを利用でき、各ブロックは、一連のNのトランザクションを含み、ここで、Nは1以上である。ブロックヘッダは、ブロックのトランザクションのハッシュ、ならびに前のブロックのヘッダのハッシュを含む。このようにして、台帳上のすべてのトランザクションをシーケンス化し、暗号的にリンクし得る。したがって、ハッシュリンクを破壊せずに台帳データを改ざんすることは不可能である。直近で追加されたブロックチェーンブロックのハッシュは、その前に発生したチェーン上のすべてのトランザクションを表し、すべてのピアノードが一貫性のある信頼できる状態にあることを保証することを可能にする。チェーンはピアノードファイルシステム(例えば、ローカル、アタッチトストレージ、クラウドなど)に格納され、ブロックチェーンワークロードのアペンド専用の性質を効率的にサポートする。
不変台帳の現在の状態は、チェーントランザクションログに含まれるすべてのキーの最新の値を表す。現在の状態はチャネルに既知の最新のキー値を表すため、ワールドステートと呼ばれることもある。チェーンコード呼び出しは、台帳の現在の状態データに対してトランザクションを実行する。これらのチェーンコードインタラクションを効率的にするために、キーの最新の値を状態データベースに格納し得る。状態データベースは、単に、チェーンのトランザクションログ内へのインデックス付きビューであってよく、したがって、任意の時間においてチェーンから再生成できる。状態データベースは、ピアノードのスタートアップ時であって、トランザクションが受け入れられる前に、自動でリカバー(又は必要であれば生成)されてよい。
ブロックチェーンは、ブロックチェーンが中央ストレージではなく、むしろノードがストレージ内の記録に対する変更を共有し得る、非集中型で不変かつ安全なストレージである点で、従来のデータベースとは異なる。ブロックチェーンに固有の、ブロックチェーンの実装を助けるいくつかの性質としては、限定されるものではないが、不変台帳、スマートコントラクト、セキュリティ、プライバシー、非集中化、コンセンサス、承認、アクセシビリティ、及び同様のものが挙げられ、これらは本明細書においてさらに説明される。
特に、ブロックチェーン台帳データは、不変であり、ブロックチェーンネットワーク内の処理オペレーションコンプライアンスメカニズムのための効率的な方法を提供する。また、ブロックチェーンで暗号化を用いることで、セキュリティが提供され、信頼が構築される。スマートコントラクトは、ライフサイクルを完了するように資産の状態を管理し、ひいては、特化されたノードは、匿名の要件を有するブロックチェーンオペレーションが、ブロックチェーンネットワークへオペレーションをセキュアにサブミットできることを確実にする。例示的なブロックチェーンは、許可制非集中型である。したがって、各エンドユーザは、アクセスするための自身の台帳コピーを有し得る。複数の組織(及びピア)が、ブロックチェーンネットワーク上にオンボードされ得る。主要な組織は、スマートコントラクトの実行結果、読み取りセット及び書き込みセットをバリデートするための承認ピアとして機能し得る。換言すれば、ブロックチェーン固有の特徴により、ブロックチェーンネットワークにおけるプライベートトランザクションの処理が効率的に実装される。
例示的な実施形態の利益のうちの1つは、それが、ブロックチェーンネットワーク内でプライベートトランザクションを処理する方法を実装することによって、コンピューティングシステムの機能を向上させることである。本明細書で説明するブロックチェーンシステムを通して、コンピューティングシステム(又はコンピューティングシステム内のプロセッサ)は、分散型台帳、ピア、暗号化技術、MSP、イベント処理などのような機能へのアクセスを提供することにより、ブロックチェーンネットワークを利用するプライベートトランザクション処理のための機能を実行できる。また、ブロックチェーンは、ビジネスネットワークを生成し、参加のために任意のユーザ又は組織をオンボードさせることを可能にする。そのため、ブロックチェーンは単なるデータベースではない。ブロックチェーンは、共同してスマートコントラクトの形態のサービス処理を実行するユーザとオンボード/オフボード組織とのネットワークを生成する能力を有する。
一方、従来のデータベースは、例示的な実施形態を実装するのに有用でない場合がある。なぜなら、従来のデータベースは、すべての当事者をネットワーク上に持ってこず、従来のデータベースは、信頼された共同を生み出さず、従来のデータベースは、オペレーションをセキュアかつ効率的にサブミットするための効率的な方法を提供しない。従来のデータベースは、改ざん防止ストレージを提供せず、保証された有効なトランザクションを提供しない。したがって、例示的な実施形態は、ブロックチェーンネットワークにおけるオペレーションの匿名サブミットの分野/フィールドにおける問題に対する特有の解決手段を提供する。
図1は、例示的な実施形態に係る、ブロックチェーンネットワーク内のスマートデータアノテーションのためのロジックネットワーク図100を示している。
図1を参照すると、例示的なネットワーク100は、ドキュメントオーナー組織を表す他のブロックチェーン(BC)ノード105に接続されているノード102を備える。ノード102は、ノード105間で共有されることになるデータ(110)を記憶するための台帳108を有するブロックチェーン106に接続されてよい。この例は、1つのみのノード102を詳細に説明しているが、複数のこのようなノードがブロックチェーン106に接続されてもよい。ノード102は、さらなるコンポーネントを含んでよく、本明細書に記載されるコンポーネントのいくつかは、本明細書に開示されているノード102の範囲から逸脱することなく除去及び/又は修正されるか、又はその両方であってよいことを理解すべきである。ノード102は、コンピューティングデバイスもしくはサーバコンピュータ、又は同様のものとしてよく、半導体ベースのマイクロプロセッサ、中央処理ユニット(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ、(FPGA)、及び/又は別のハードウェアデバイスとしてよいプロセッサ104を備えてよい。単一のプロセッサ104が示されているが、ノード102は、ノード102システムの範囲から逸脱することなく、複数のプロセッサ、複数のコア、又は同様のものを含んでよいことを理解すべきである。分散型ファイルストレージ150は、プロセッサノード102及び他のBCノード105がアクセス可能としてよい。分散型ファイルストレージ150は、台帳108において識別されるドキュメントを記憶するのに用いてよい。
また、ノード102は、プロセッサ104によって実行可能な機械可読命令を記憶していてよい非一時的コンピュータ可読媒体112を備えてよい。機械可読命令の例は、114~118で示されており、以下でさらに説明される。非一時的コンピュータ可読媒体112の例としては、実行可能命令を含むか又は記憶する、電子、磁気、光学、又は他の物理ストレージデバイスが挙げられ得る。例えば、非一時的コンピュータ可読媒体112は、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、ハードディスク、光ディスク、又は他のタイプのストレージデバイスとしてよい。
プロセッサ104は機械可読命令114を実行し、データの暗黙的コレクションのためのキーを生成し得る。上述したように、ブロックチェーン台帳108は、ノード105間で共有されることになるデータ110を記憶してよい。ブロックチェーン106ネットワークは、複数の参加ノードのためのトランザクションを管理する、1又は複数のスマートコントラクトを用いて構成されてよい。アノテーション情報にリンクされたドキュメントは、分散型ファイルストレージ150内に記憶されてよい。プロセッサ104は、機械可読命令116を実行して、追加的なデータの暗黙的コレクションのための追加のキーを生成し得る。プロセッサ104は、機械可読命令118を実行して追加のキーを分散し得る。
図2Aは、例示的な実施形態に係る、ブロックチェーンアーキテクチャ構成200を示している。図2Aを参照すると、ブロックチェーンアーキテクチャ200は、特定のブロックチェーン要素、例えば、ブロックチェーンノード202の群を含んでよい。ブロックチェーンノード202は、1又は複数のピアノード204~210(これらの4つのノードは、単に例として示されている)を含んでよい。これらのノードは、ブロックチェーントランザクション追加及びバリデーションプロセス(コンセンサス)等の複数のアクティビティに参加する。ブロックチェーンノード204~210のうちの1又は複数は、エンドースメントポリシに基づいてトランザクションを承認してよく、アーキテクチャ200内のすべてのブロックチェーンノード202のための順序付けサービスを提供してよい。ブロックチェーンノード204-210は、ブロックチェーン認証を開始し、ブロックチェーンレイヤ216に記憶されているブロックチェーン不変台帳への書き込みを試みてよく、そのコピーは、基礎となる物理的インフラストラクチャ214上に記憶されてもよい。ブロックチェーン構成200は、記憶されているプログラム/アプリケーションコード220(例えば、チェーンコード、スマートコントラクト等)にアクセスして実行するためにアプリケーションプログラミングインタフェース(API)222にリンクされている1又は複数のアプリケーション224を含んでよく、記憶されているプログラム/アプリケーションコード220は、参加者によって求められるカスタマイズされた構成に従って作成でき、参加者自体の状態を維持し、参加者自体の資産をコントロールし、外部情報を受信できる。これは、分散型台帳へのアペンディングを介して、すべてのブロックチェーンノード204~210上にトランザクションとしてデプロイしてインストールできる。
ブロックチェーン基又はプラットフォーム212は、ブロックチェーンデータと、サービス(例えば、暗号トラストサービス、仮想実行環境等)と、新たなトランザクションを受信するとともに記憶し、データエントリへのアクセスを試みるオーディタにアクセスを提供するのに用いられ得る、基礎となる物理的コンピュータインフラストラクチャ214との様々なレイヤを備えてよい。ブロックチェーンレイヤ216は、プログラムコード220を処理して物理的インフラストラクチャ214にエンゲージするのに必要な仮想実行環境へのアクセスを提供するインタフェースを呈してよい。暗号トラストサービス218は、資産交換トランザクションなどのトランザクションを検証し、情報をプライベートに保つのに用いられ得る。
図2Aのブロックチェーンアーキテクチャ構成200は、ブロックチェーンプラットフォーム212によって呈される1又は複数のインタフェース及び提供されるサービスを介してプログラム/アプリケーションコード220を処理及び実行してよい。コード220は、ブロックチェーン資産を制御し得る。例えば、コード220は、データを記憶して移転でき、条件又は実行対象となる他のコード要素を伴うスマートコントラクト及び関連付けられたチェーンコードの形態で、ノード204~210によって実行されてよい。非限定的な例として、スマートコントラクトは、リマインダ、更新、及び/又は、変更、更新等の対象となる他の通知を実行するように作成されてよい。認可及びアクセス要件ならびに台帳の使用に関連するルールを識別するためにスマートコントラクト自体を用いることができる。例えば、ドキュメント属性情報226は、ブロックチェーンレイヤ216に含まれる1又は複数の処理エンティティ(例えば、仮想マシン)によって処理されてよい。この処理の結果228は、複数のリンクされた共有ドキュメントを含んでよい。物理的インフラストラクチャ214は、本明細書で説明するデータ又は情報のいずれかを取得するために利用され得る。
スマートコントラクトは、ハイレベルアプリケーション及びプログラミング言語を介して作成され、そして、ブロックチェーン内のブロックに書き込まれ得る。スマートコントラクトは、ブロックチェーン(例えば、ブロックチェーンピアの分散型ネットワーク)で登録、格納、及び/又は複製がされた実行可能なコードを含み得る。トランザクションは、スマートコントラクトに関連する条件が満たされることに応じて実行することができる、スマートコントラクトコードの実行である。スマートコントラクトの実行は、デジタルブロックチェーン台帳の状態に対する信頼された修正をトリガーし得る。スマートコントラクトの実行によって引き起こされたブロックチェーン台帳に対する修正は、1又は複数のコンセンサスプロトコルを通じて、ブロックチェーンピアの分散型ネットワーク全体にわたって自動で複製され得る。
スマートコントラクトは、キー値対のフォーマットでデータをブロックチェーンに書き込み得る。さらに、スマートコントラクトコードは、ブロックチェーンに格納された値を読み取り、これらをアプリケーション動作において用いることができる。スマートコントラクトコードは、様々なロジック動作の出力をブロックチェーンに書き込むことができる。コードは、仮想マシンや他のコンピューティングプラットフォームにおいて、一時的なデータ構造を作成するために用いられ得る。ブロックチェーンに書き込まれたデータは、公開することができる、及び/又は暗号化してプライベートに維持することができる。スマートコントラクトによって使用/生成された一時的なデータは、提供された実行環境によってメモリに保持され、そして、ブロックチェーンに必要なデータが識別されると削除される。
チェーンコードは、追加の特徴を伴って、スマートコントラクトのコード解釈を含み得る。本明細書で説明するように、チェーンコードは、コンピューティングネットワーク上に展開されたプログラムコードであり得、それは、コンセンサス処理中に一緒にチェーンバリデータによって実行されバリデートされる。チェーンコードは、ハッシュを受信し、ブロックチェーンから、事前に格納された特徴エクストラクタを用いて作成されたデータテンプレートに関連するハッシュを取得する。ハッシュ識別子のハッシュと、格納された識別子テンプレートデータから作成されたハッシュがマッチする場合、チェーンコードは要求されたサービスに認可キーを送信する。チェーンコードは、暗号ディテールに関連付けられているブロックチェーンデータに書き込まれてよい。
図2Bは、例示的な実施形態に係る、ブロックチェーン(例えば、図1に示されるブロックチェーン106)のノード間のブロックチェーントランザクションフロー250の一例を示している。図2Bを参照すると、トランザクションフロー250の一般的な説明が与えられ、それに続いて、より具体的な例が与えられる。トランザクションフロー250は、アプリケーションクライアントノード260によって第1承認ピアノード281に送信されるトランザクションプロポーザル291を含んでよい。第1承認ピア281は、クライアントシグネチャを検証し、トランザクションを開始するようにチェーンコード関数を実行してよい。出力は、チェーンコードの結果、チェーンコードで読み取られたキー/値バージョンのセット(読み取りセット)、及びチェーンコードに書き込まれたキー/値のセット(書き込みセット)を含み得る。プロポーザル応答292は、認められれば、承認シグネチャとともにクライアント260に送信し戻される。クライアント260は、承認をトランザクションペイロード293にアセンブルし、それを順序付けサービス(第4ピア)ノード284にブロードキャストする。順序付けサービスノード284は、次に、順序付けられたトランザクションを、ブロックとして同一チャネル上のすべての追加ピア281~283に配信する。ブロックチェーンへのコミットの前に、各追加ピア281~283は、トランザクションをバリデートしてよい。例えば、トランザクションプロポーザル291において指定されたピアの正しい割り当てが、結果にサインし、トランザクションペイロード293に対するシグネチャを認証したことを保証するように、ピア281~283はエンドースメントポリシをチェックしてよい。いくつかの実施形態において、ピアのうちの1又は複数は、マネージャノードとしてよい。
より具体的な例によって、トランザクションフロー250のより具体的な説明が理解され得る。初めに、クライアントノード260は、リクエストを構築して、エンドーサである第1ピアノード281に送信することによって、トランザクションプロポーザル291を開始する。クライアント260は、利用可能なAPI用いてトランザクションプロポーザルを生成する、サポートされたソフトウェア開発キット(SDK)を利用するアプリケーション含んでよい。プロポーザルは、データを台帳から読み取り、及び/又は書き込む(すなわち、資産のための新たなキー値対を書き込む)ことができるように、チェーンコード関数を呼び出すリクエストである。SDKは、トランザクションプロポーザルを適切に設計されたフォーマット(例えば、リモートプロシージャコール(RPC)に対するプロトコルバッファ)にパッケージ化し、トランザクションプロポーザルのためのユニークなシグネチャを生成するために、クライアントの暗号証明書を取得するシムとして機能してよい。
これに応じて、承認ピアノード281は、(a)トランザクションプロポーザルが整形式であること、(b)トランザクションが、過去にまだサブミットされていないこと(リプレイアタック保護)、(c)シグネチャが有効であること、(d)サブミッタ(本例では、クライアント260)がそのチャネル上で提案されるオペレーションを実行するように適切に認可されていることを検証してよい。承認ピアノード281は、トランザクションプロポーザル入力を、呼び出されるチェーンコード関数に対する引数として取得してよい。そして、チェーンコードは、現在の状態データベースに対して実行され、応答値、読み取りセット、及び書き込みセットを含むトランザクション結果を生成する。しかしながら、この時点では台帳は更新されない。トランザクション結果のセットは、承認ピアノード281のシグネチャとともに、アプリケーションがコンシュームするペイロードをパースするクライアント260のSDKにプロポーザル応答292として戻される。
応答して、クライアント260のアプリケーションは、承認ピア281のシグネチャを検査/検証し、プロポーザル応答292を比較して、プロポーザル応答292が有効であるかどうかを判定する。チェーンコードが台帳を照会しただけである場合、アプリケーションは、照会応答を検査し、典型的には、トランザクションを順序付けサービスノード284へサブミットしない。クライアントアプリケーションが、台帳を更新するために、トランザクションを順序付けサービスノード284にサブミットすることを意図する場合、アプリケーションは、サブミットすることの前に、指定されたエンドースメントポリシが満たされているかどうか(すなわち、トランザクションに必要なすべてのピアノードがトランザクションを承認したか)を判断する。ここで、クライアント260は、トランザクションに対する複数の当事者のうちの1つのみを含んでよい。この場合、各クライアントは、それら自身の承認ノードを有してよく、各承認ノードは、トランザクションを承認することが必要としてよい。アーキテクチャは、アプリケーションが応答を検査しないことを選択するか、又はさもなければ承認されていないトランザクションを転送しても、エンドースメントポリシが、ピアによって依然として施行され、コミットバリデーションフェーズに維持され得るようになっている。
検査の成功後、クライアント260は、承認をトランザクション293にアセンブルし、トランザクションプロポーザル及びトランザクションメッセージ内の応答を順序付けノード284にブロードキャストする。トランザクション293は、読み取り/書き込みセット、承認ピアシグネチャ、及びチャネルIDを含んでよい。順序付けノード284は、そのオペレーションを実行するために、トランザクションのコンテンツ全体を検査する必要はない。その代わりに、順序付けノード284は、単に、ネットワーク内のすべてのチャネルからトランザクションを受信し、チャネルによってこれらを時系列で順序付けて、チャネル毎のトランザクションのブロックを作成してよい。
トランザクション293のブロックは、順序付けノード284からチャネル上のすべての他のピアノード281~283に配信される。ブロック内のトランザクション294は、任意のエンドースメントポリシが満たされていることを保証するように、また、トランザクション実行によって読み取りセットが生成されてから、読み取りセット変数に関して台帳状態に対する変更が無かったことを保証するように、バリデートされる。ブロック内のトランザクション294は、有効又は無効としてタグ付けされる。さらに、オペレーション295において、各ピアノード281~283は、ブロックをチャネルのチェーンにアペンドし、各有効なトランザクションについて、現在の状態データベースに書き込みセットがコミットされる。クライアントアプリケーションに、トランザクション293が有効にされたか又は無効にされたかを通知するだけでなく、トランザクション(呼び出し)293がチェーンに不変にアペンドされていることを通知するよう、イベントが発せられる。
図3Aは、分散型の非集中型ピアツーピアアーキテクチャを特徴とする、例示的な実施形態による許可制ブロックチェーンネットワーク300の一例を示している。この例では、ブロックチェーンユーザ302は、許可制ブロックチェーン304に対するトランザクションを開始してよい。この例では、トランザクションをデプロイ、呼び出し、又は照会でき、API等を直接通して、SDKを利用してクライアント側アプリケーションを通じて発行してよい。ネットワーク300は、オーディタ等のレギュレータ306へのアクセスを提供してよい。ブロックチェーンネットワークオペレータ308は、「オーディタ」としてのレギュレータ306及び「クライアント」としてのブロックチェーンユーザ302をエンロールする等、メンバ許可を管理する。オーディタは、台帳の照会だけに制限されてよく、クライアントは、特定のタイプのチェーンコードをデプロイ、呼び出し、及び照会するように認可されてよい。
ブロックチェーンデベロッパ310は、チェーンコード及びクライアント側アプリケーションを書き込むことができる。ブロックチェーンデベロッパ310は、インタフェースを通してネットワーク300に直接チェーンコードをデプロイできる。従来のデータソース312からの証明書をチェーンコードに含めるために、デベロッパ310は、データにアクセスするのにアウトオブバンド接続を用いてよい。この例では、ブロックチェーンユーザ302は、ピアノード314のうちの1つ(ノード314a~eのうちのいずれか1つを参照)を通して、許可制ブロックチェーン304に接続する。任意のトランザクションを進める前に、ピアノード314(例えば、ノード314a)は、ユーザ役割及び許可を管理する認証局316から、ユーザ302のエンロールメントと、トランザクション証明書を取得する。いくつかの場合において、ブロックチェーンユーザは、許可制ブロックチェーン304上でトランザクトするべく、これらのデジタル証明書を所有していなければならない。一方、チェーンコードを用いることを試みるユーザは、自身の証明書を従来のデータソース312上で検証する必要があり得る。ユーザ302の認可を確認するために、チェーンコードは、従来の処理プラットフォーム318を通したこのデータへのアウトオブバンド接続を使用できる。
図3Bは、分散型の非集中型ピアツーピアアーキテクチャを特徴とする、例示的な実施形態による許可制ブロックチェーンネットワーク320の別の例を示している。この例では、ブロックチェーンユーザ322は、トランザクションを許可制ブロックチェーン324にサブミットしてよい。この例では、トランザクションをデプロイ、呼び出し、又は照会でき、API等を直接通して、SDKを利用してクライアント側アプリケーションを通じて発行してよい。ネットワークは、オーディタ等のレギュレータ326へのアクセスを提供してよい。ブロックチェーンネットワークオペレータ328は、「オーディタ」としてのレギュレータ326及び「クライアント」としてのブロックチェーンユーザ322をエンロールする等、メンバ許可を管理する。オーディタは、台帳の照会だけに制限されてよく、クライアントは、特定のタイプのチェーンコードをデプロイ、呼び出し、及び照会するように認可されてよい。
ブロックチェーンデベロッパ330は、チェーンコード及びクライアント側アプリケーションを書き込んでよい。ブロックチェーンデベロッパ330は、インタフェースを通してネットワークに直接チェーンコードをデプロイできる。従来のデータソース332からの証明書をチェーンコードに含めるために、デベロッパ330は、データにアクセスするのにアウトオブバンド接続を用いてよい。この例では、ブロックチェーンユーザ322は、ピアノード334(ノード334a~eの1つを指す)を通じてネットワークに接続する。任意のトランザクションを進める前に、ピアノード334(例えば、ノード334a)は、認証局336から、ユーザのエンロールメントと、トランザクション証明書を取得する。いくつかの場合において、ブロックチェーンユーザは、許可制ブロックチェーン324上でトランザクトするべく、これらのデジタル証明書を所有していなければならない。一方、チェーンコードを用いることを試みるユーザは、自身の証明書を従来のデータソース332上で検証する必要があり得る。ユーザの認可を確認するために、チェーンコードは、従来の処理プラットフォーム338を通したこのデータへのアウトオブバンド接続を使用できる。
本開示のいくつかの実施形態において、本明細書におけるブロックチェーンは、無許可制ブロックチェーンとしてよい。加入するための許可を必要とする許可制ブロックチェーン(例えばブロックチェーン304及び324)とは対照的に、誰でも無許可制ブロックチェーンに加入できる。例えば、無許可制ブロックチェーンに加入するために、ユーザは、パーソナルアドレスを作成し、トランザクションをサブミットするとともに、ひいては台帳にエントリを追加することによって、ネットワークとのインタラクトを開始してよい。さらに、すべての当事者は、システム上のノードを実行することと、トランザクションの検証を助けるマイニングプロトコルを利用することとの選択を有する。
図3Cは、例示的な実施形態による、複数のノード354を含む無許可制ブロックチェーン352によって処理されるトランザクションを有するネットワーク350を示す。送信者356は、無許可制ブロックチェーン352を介して、支払い、又は何らかの他の価値の形態(例えば、行為、病歴、契約、品物、サービス、もしくは、デジタルレコードにカプセル化できる任意の他の資産)を受信者358に送信することを望む。いくつかの実施形態において、送信者デバイス356及び受信デバイス358のそれぞれは、ユーザインタフェースコントロール及びトランザクションパラメータの表示を提供する(ブロックチェーン352に関連付けられている)デジタルウォレットを有してよい。これに応じて、トランザクションは、ブロックチェーン352全体を通してノード354(ノード354a~eのいずれか1つを指す)にブロードキャストされる。
ブロックチェーン352のネットワークパラメータに応じて、ノードは、無許可制ブロックチェーン352クリエータによって確立されたルール(事前定義されるか又は動的に割り当てられてよい)に基づいて、トランザクションを検証するために、検証モジュール360を使用する。例えば、これは、関与する当事者のアイデンティティ等を検証することを含んでよい。トランザクションは、即座に検証されてよく、又は、他のトランザクションとキューに入れられてよく、ノード354は、ネットワークルールのセットに基づいて、トランザクションが有効であるかどうかを判断する。
構造362において、有効なトランザクションは、ブロックにして形成され、ロック(ハッシュ)でシールされる。この処理は、ノード354の中のマイニングノードによって実行されてよい。マイニングノードは、特に無許可制ブロックチェーン352のためのブロックをマイニング及び生成するためのさらなるソフトウェアを使用してよい。各ブロックは、ネットワーク350によって合意されたアルゴリズムを用いて作成されたハッシュ(例えば、256ビット数等)によって識別されてよい。各ブロックは、ヘッダと、チェーン内の先行ブロックのヘッダのハッシュに対するポインタ又はリファレンスと、有効なトランザクションの群とを含んでよい。先行ブロックのハッシュへのリファレンスは、ブロックのセキュアな独立したチェーンの生成に関連付けられている。
ブロックをブロックチェーン352に追加できるようになる前に、ブロックがバリデートされなければならない。無許可制ブロックチェーン352のバリデーションは、ブロックのヘッダから得られるパズルへの解答であるプルーフオブワーク(PoW)を含んでよい。図3Cの例には示していないが、ブロックをバリデートするための別の処理は、プルーフオブステークである。アルゴリズムが、数学的問題を解くマイナに報酬を与えるプルーフオブワークとは異なり、プルーフオブステークでは、新たなブロックのクリエータが、「ステーク」とも定義されるその財産に応じて、決定論的な方法で選択される。次に、同様の証明が、セレクト/選択されたノードによって行われる。
マイニングモジュール364では、ノードは、解答がネットワークワイドターゲットを満たすまで、1つの変数にインクリメンタルな変更を加えることによって、ブロックを解こうとする。これにより、PoWが生成され、それにより正しい答えが保証される。換言すれば、ポテンシャル解は、コンピューティングリソースが問題を解くのに使い果たされたことを証明しなければならない。いくつかのタイプの無許可制ブロックチェーンにおいて、マイナには、ブロックを正しくマイニングしたことに対して、報酬として値(例えば、コイン等)を与えてよい。
ここで、PoW処理は、ブロックをチェーンにしながら、攻撃者が1つのブロックの修正が受け入れられるようにするためにすべての後続ブロックを修正しなければならないことで、ブロックチェーン352の修正を極めて困難にする。さらに、新たなブロックがマイニングされると、ブロックを修正することの困難さが高まり、後続ブロックの数が増加する。分散モジュール366では、バリデートが成功したブロックは、無許可制ブロックチェーン352を通して配布され、すべてのノード354は、無許可制ブロックチェーン352の監査可能な台帳であるマジョリティチェーンに、そのブロックを追加する。さらに、送信者356によってサブミットされたトランザクションの値は、受信デバイス358のデジタルウォレットにデポジット又はさもなければ移転される。
図4Aは、例示的な実施形態に係る、新たなブロックが分散型台帳420に追加されるブロックチェーンシステム実行処理400を示しており、図4Bは、例示的な実施形態に係る、ブロックチェーンのための新たなデータブロック構造430のコンテンツを示している。新たなデータブロック430は、ドキュメントリンク付けデータを含んでよい。
図4Aを参照すると、クライアント(図示せず)は、処理400において、ブロックチェーンノード411、412及び/又は413にトランザクションをサブミットしてよい。クライアントは、任意のソースから受信される、ブロックチェーン422上でアクティビティを施行する命令としてよい。一例といて、クライアントは、ブロックチェーン422にトランザクションを提案するように、デバイス、人物、又はエンティティ等のリクエスタを代理して役割を果たすアプリケーションとしてよい。複数のブロックチェーンピア(例えば、ブロックチェーンノード411、412及び413)は、ブロックチェーンネットワークの状態及び分散型台帳420のコピーを維持してよい。クライアントによって提案されたトランザクションをシミュレートして承認する承認ピアと、承認を検証し、トランザクションをバリデートし、トランザクションを分散型台帳420にコミットするコミッティングピアとを含む、異なるタイプのブロックチェーンノード/ピアが、ブロックチェーンネットワーク内に存在してよい。この例では、ブロックチェーンノード411、412及び413の各々は、又はエンドーサノード、コミッタノード、又はその両方の役割を果たしてよい。
分散型台帳420は、不変シーケンス化レコードをブロック(例えば、データブロック423~430)に記憶するブロックチェーンと、ブロックチェーン422の現在の状態を維持する状態データベース424(現在のワールドステート)とを備える。分散型台帳420がチャネル毎に1つ存在してよく、各ピアは、それらのピアが各チャネルのメンバである分散型台帳420の固有コピーを維持する。ブロックチェーン422は、各ブロックが一連のNのトランザクションを含む、ハッシュでリンク付けられたブロックとして構築されているトランザクションログである。ブロックは、図4Bに示すもの等の様々なコンポーネントを備えてよい。ブロック(例えば、データブロック423~430)のリンク付け(図4Aに矢印で示す)は、先行ブロックのヘッダのハッシュを現在のブロックのブロックヘッダ内に追加することによって生成されてよい。このように、ブロックチェーン422上のすべてのトランザクションは、シーケンス化されて一緒に暗号的にリンクされ、ハッシュリンクを破壊することなくブロックチェーンデータを改ざんすることを防止する。さらに、これらのリンクがあるので、ブロックチェーン422内の最新ブロック(例えば、データブロック430)は、その前に来るすべてのトランザクションを表す。ブロックチェーン422は、アペンド専用ブロックチェーンワークロードをサポートするピアファイルシステム(ローカル又はアタッチトストレージ)上に記憶されてよい。
ブロックチェーン422及び分散型台帳420の現在の状態は、状態データベース424に記憶されてよい。ここで、現在の状態データは、ブロックチェーン422のチェーントランザクションログにこれまでに含まれているすべてのキーの最新の値を表す。チェーンコード呼び出しは、状態データベース424内の現在の状態に対してトランザクションを実行する。これらのチェーンコードインタラクションを極めて効率的にするために、すべてのキーの最新の値は、状態データベース424に記憶されてよい。状態データベース424は、ブロックチェーン422のトランザクションログ内にインデックス付きビューを含んでよい。したがって、それは、任意の時間にチェーンから再生成できる。状態データベース424は、ピアのスタートアップ時であって、トランザクションが受け入れられる前に、自動でリカバー(又は必要であれば生成)されてよい。
承認ノード(411、412、及び/又は413)は、クライアントからトランザクションを受信し、シミュレート結果に基づいてトランザクションを承認する。承認ノードは、トランザクションプロポーザルをシミュレートするスマートコントラクトを保持する。承認ノードがトランザクションを承認するとき、承認ノードは、シミュレートされたトランザクションの承認を示す、承認ノードからクライアントアプリケーションへのサイン付き応答である、トランザクション承認を生成する。トランザクションを承認する方法は、チェーンコード内で指定され得るエンドースメントポリシに応じて決まる。エンドースメントポリシの一例は、「承認ピアの大部分がトランザクションを承認しなければならない」である。異なるチャネルは、異なるエンドースメントポリシを有してよい。承認されたトランザクションは、クライアントアプリケーションによって順序付けサービス410に転送される。
順序付けサービス410は、承認されたトランザクションを受け入れて、これらをブロック内へと順序付けて、ブロックをコミッティングピアに配信する。例えば、順序付けサービス410は、トランザクションの閾値に達した、タイマがタイムアウトした、又は別の条件となった場合、新たなブロックを開始してよい。図4Aの例では、ブロックチェーンノード412は、ブロックチェーン422に記憶される新たなデータの新たなデータブロック430を受信するコミッティングピアである。ブロックチェーン422内の第1のブロック423は、ブロックチェーン、そのメンバ、その中に記憶されているデータ等に関する情報を含むジェネシスブロックと称され得る。
順序付けサービス410は、オーダラのクラスタで構成されてよい。順序付けサービス410は、トランザクション、スマートコントラクトを処理、又は共有台帳を維持しない。むしろ、順序付けサービス410は、承認されたトランザクションを受け入れて、これらのトランザクションが分散型台帳420にコミットされる順序を指定してよい。ブロックチェーンネットワークのアーキテクチャは、「順序付け」の具体的な実装(例えば、Solo、Kafka、Byzantine fault-tolerant等)がプラグ可能なコンポーネントとなるように設計されてよい。
トランザクションは、一貫した順序で分散型台帳420に書き込まれる。トランザクションの順序は、状態データベース424に対する更新がネットワークにコミットされるときにそれらの更新が有効であることを保証するために確立される。順序付けが暗号パズルを解くこと又はマイニングによって行われる暗号通貨ブロックチェーンシステム(例えば、ビットコイン等)とは異なり、この例では、分散型台帳420の当事者は、ネットワークに最も良く適合する順序付けメカニズムを選択してよい。
順序付けサービス410が新たなデータブロック430をイニシャライズする際、新たなデータブロック430は、コミッティングピア(例えば、ブロックチェーンノード411、412及び413)にブロードキャストされてよい。これに応じて、各コミッティングピアは、読み取りセット及び書き込みセットが状態データベース424内の現在のワールドステートを依然として合致することを確実にするようにチェックすることによって、新たなデータブロック430内のトランザクションをバリデートする。具体的には、コミッティングピアは、エンドーサがトランザクションをシミュレートしたときに存在していた読み取りデータが、状態データベース424内の現在のワールドステートと同一であるか否かを判断できる。コミッティングピアがトランザクションをバリデートする際、トランザクションは、分散型台帳420上のブロックチェーン422に書き込まれ、状態データベース424は、読み取り書きセットからの書き込みデータで更新される。トランザクションが不合格になった場合、すなわち、読み取り書きセットが状態データベース424内の現在のワールドステートと合致しないとコミッティングピアが判断した場合、ブロック内へと順序付けられたトランザクションは、依然としてそのブロックに含まれてよくが、無効としてマークされてよく、状態データベース424は、更新されなくてよい。
図4Bを参照すると、分散型台帳420のブロックチェーン422上に記憶されている新たなデータブロック430(データブロックとも称される)は、ブロックヘッダ440、ブロックデータ450、及びブロックメタデータ460等の、複数のデータセグメントを含んでよい。新たなデータブロック430及びそのコンテンツ等の、様々な図示されているブロック及びそれらのコンテンツは、理解すべきである。図4Bに示されているのは、単に例であり、例示的な実施形態の範囲を限定することを意図していない。新たなデータブロック430は、Nのトランザクション(例えば、1、10、100、500、1000、2000、3000等)のトランザクション情報をブロックデータ450内に記憶してよい。また、新たなデータブロック430は、(例えば、図4Aのブロックチェーン422上にある)先行ブロックへのリンクをブロックヘッダ440内に含んでよい。特に、ブロックヘッダ440は、先行ブロックのヘッダのハッシュを含んでよい。また、ブロックヘッダ440は、ユニークブロック番号(例えば、データブロック423~430)、新たなデータブロック430のブロックデータ450のハッシュ、及び同様のものを含んでよい。新たなデータブロック430のブロック番号は、ユニークであり、0から開始するインクリメンタル/シーケンシャル順序等の様々な順序でアサインされてよい。
ブロックデータ450は、新たなデータブロック430内に記録されている各トランザクションのトランザクション情報を記憶してよい。例えば、トランザクションデータは、トランザクションのタイプ、バージョン、タイムスタンプ、分散型台帳420のチャネルID、トランザクションID、エポック、ペイロードビジビリティ、チェーンコード経路(デプロイトランザクション)、チェーンコード名、チェーンコードバージョン、入力(チェーンコード及び機能)、パブリックキー及び証明書等のクライアント(クリエータ)アイデンティティ、エンドーサのクライアントアイデンティティのシグネチャ、エンドーサシグネチャ、プロポーザルハッシュ、チェーンコードイベント、応答ステータス、名前空間、読み取りセット(トランザクションによって読み取られたキー及びバージョンのリスト等)、書き込みセット(キー及び値のリスト等)、スタートキー、エンドキー、キーのリスト、マークルツリークエリ概要、並びに同様のもののうちの1又は複数を含んでよい。トランザクションデータは、Nのトランザクションのそれぞれについて記憶されてよい。
また、いくつかの実施形態において、ブロックデータ450は、ブロックチェーン422内のブロックのハッシュでリンク付けられたチェーンに追加の情報を追加する新たなデータ462を記憶していてよい。追加の情報としては、本明細書に記載又は図示されているステップ、特徴、プロセス、及び/又は行為のうちの1又は複数が挙げられる。したがって、新たなデータ462は、分散型台帳420上のブロックの不変ログ内に記憶できる。このような新たなデータ462を記憶する利益のうちのいくつかが、本明細書に開示及び図示されている様々な実施形態に反映されている。図4Bでは、新たなデータ462はブロックデータ450内に示されているが、ブロックヘッダ440又はブロックメタデータ460内に位置してもよい。新たなデータ462は、組織内のドキュメントをリンク付けるのに用いられるドキュメント複合キーを含んでよい。
ブロックメタデータ460は、メタデータの複数のフィールドを(例えば、バイト配列等として)記憶してよい。メタデータフィールドは、ブロック生成につけたシグネチャ、最後の構成ブロックへのリファレンス、ブロック内の有効トランザクション及び無効トランザクションを識別するトランザクションフィルタ、ブロックを順序付けた順序付けサービスの最後の持続したオフセット、及び同様のものを含んでよい。シグネチャ、最後の構成ブロック、及びオーダラメタデータは、順序付けサービス410によって追加されてよい。一方、ブロックのコミッタ(ブロックチェーンノード412等)は、エンドースメントポリシ、読み取り/書き込みセットの検証、及び同様のものに基づいて、有効性/無効性情報を追加してよい。トランザクションフィルタは、ブロックデータ450内のトランザクションの数に等しいサイズのバイト配列と、トランザクションが有効であったか/無効であったかを識別するバリデーションコードとを含んでよい。
図4Cは、本明細書に記載のいくつかの実施形態に係る、デジタルコンテンツのためのブロックチェーン470を示している。デジタルコンテンツは、1又は複数のファイル及び関連情報を含んでよい。ファイルは、メディア、イメージ、ビデオ、オーディオ、テキスト、リンク、グラフィック、アニメーション、ウェブページ、ドキュメント、又は他のデジタルコンテンツの形式を含んでよい。ブロックチェーンの不変アペンド専用の態様は、デジタルコンテンツの完全性、有効性、及び真正性を保護するセーフガードとしての役割を果たし、このことにより、許容性ルールが適用される法的手続き、又は、エビデンスが考慮されるもしくはデジタル情報の提示及び使用が別様に関心を得る他の状況における使用に好適となる。この場合、デジタルコンテンツは、デジタルエビデンスと称され得る。
ブロックチェーンは、様々な方式で形成されてよい。いくつかの実施形態において、デジタルコンテンツは、ブロックチェーン自体に含まれ、そこからアクセスされてよい。例えば、ブロックチェーンの各ブロックは、関連付けられているデジタルコンテンツに沿って、リファレンス情報(例えば、ヘッダ、値等)のハッシュ値を記憶してよい。次に、ハッシュ値及び関連付けられているデジタルコンテンツは、一緒に暗号化されてよい。したがって、各ブロックのデジタルコンテンツは、ブロックチェーン内の各ブロックを解読することによってアクセスされてよく、各ブロックのハッシュ値は、先行ブロックを参照するための基礎として使用されてよい。これは、以下のとおりに示され得る。
ブロック1 ブロック2 ....... ブロックN
ハッシュ値1 ハッシュ値2 ハッシュ値N
デジタルコンテンツ1 デジタルコンテンツ2 デジタルコンテンツN
いくつかの実施形態において、デジタルコンテンツは、ブロックチェーンに含まれなくてよい。例えば、ブロックチェーンは、デジタルコンテンツのいずれも伴うことなく、各ブロックのコンテンツの暗号化されたハッシュを記憶してよい。デジタルコンテンツは、元のファイルのハッシュ値に関連付けて別のストレージエリア又はメモリアドレスに記憶されてよい。他のストレージエリアは、ブロックチェーンを記憶するのに用いられるものと同じストレージデバイスとしてもよいし、又は、異なるストレージエリアもしくはさらには別個の関係データベースとしてもよい。各ブロックのデジタルコンテンツは、関心のあるブロックのハッシュ値を取得もしくは照会し、次に、実際のデジタルコンテンツに対応付けて記憶されているストレージエリア内の値を有するものをルックアップすることによって、参照又はアクセスされてよい。この動作は、例えば、データベースゲートキーパによって実行されてよい。これは、以下のとおりに示され得る。
ブロックチェーン ストレージエリア
ブロック1ハッシュ値 ブロック1ハッシュ値 ... コンテンツ
・ ・
ブロックNハッシュ値 ブロックNハッシュ値 ... コンテンツ
ブロックチェーン ストレージエリア
ブロック1ハッシュ値 ブロック1ハッシュ値 ... コンテンツ
・ ・
ブロックNハッシュ値 ブロックNハッシュ値 ... コンテンツ
図4Cの例示的な実施形態において、ブロックチェーン470は、順序付けられたシーケンスにして暗号的にリンク付けられた複数のブロック4781、4782...478Nを含み、ここでNは1以上である。ブロック4781、4782...478Nをリンク付けるのに用いられる暗号化は、複数の鍵付き又は鍵付きでないハッシュ関数のいずれかとしてよい。いくつかの実施形態において、ブロック4781、4782...478Nは、ブロック内の情報に基づく入力からのnビットの英字数字出力(nは256又は別の数)を生成するハッシュ関数の対象である。このようなハッシュ関数の例としては、限定されるものではないが、SHAタイプ(SHAはセキュアハッシュアルゴリズムを表す)アルゴリズム、マークルダンガードアルゴリズム、HAIFAアルゴリズム、マークルツリーアルゴリズム、ノンスベースのアルゴリズム、及び非衝突困難疑似ランダム関数(PRF)が挙げられる。別の実施形態では、ブロック4781、4782、...、478Nは、ハッシュ関数とは異なる関数によって暗号的にリンクされてよい。図示のために、以下の説明は、ハッシュ関数、例えば、SHA-2に関して行われる。
ブロックチェーン内のブロック4781、4782...478Nのそれぞれは、ヘッダと、ファイルのバージョンと、値とを含む。ヘッダ及び値は、ブロックチェーン内のハッシュ化の結果として、各ブロックについて異なる。いくつかの実施形態において、値は、ヘッダに含まれてよい。以下でさらに詳細に記載するように、ファイルのバージョンは、元のファイルとしてもよいし、又は元のファイルの異なるバージョンとしてもよい。
ブロックチェーン内の第1のブロック4781は、ジェネシスブロックと称され、ヘッダ4721と、元のファイル4741と、初期値4761とを含む。ジェネシスブロック及び実際すべての後続ブロックに用いられるハッシュ化スキームは、異なってよい。例えば、第1のブロック4781内のすべての情報が一緒に一度でハッシュ化されてもよいし、又は、第1のブロック4781内の情報の一部が別個にハッシュ化されてよく、次に別個にハッシュ化された一部のハッシュを実行してもよい。
第2ヘッダ4721は、1又は複数の初期パラメータを含んでよく、初期パラメータとしては、例えば、バージョン番号、タイムスタンプ、ノンス、ルート情報、難易度、コンセンサスプロトコル、継続時間、メディアフォーマット、ソース、記述キーワード、及び/又は、元のファイル4741及び/又はブロックチェーンに関連付けられている他の情報が挙げられ得る。第1ヘッダ4721は、(例えば、ソフトウェアを管理するブロックチェーンネットワークによって)自動で、又は、ブロックチェーン参加者によって手動で生成されてよい。ブロックチェーン内の他のブロック4782~478N内のヘッダとは異なり、ジェネシスブロック4781内のヘッダ4721は、単純に先行ブロックが存在しないので、先行ブロックを参照しない。
ジェネシスブロック内の元のファイル4741は、例えば、ブロックチェーンに含める前に処理をしたか又はしていない、デバイスによって捕捉されたデータとしてよい。元のファイル4741は、デバイス、メディアソース、又はノードから、システムのインタフェースを通して受信される。元のファイル4741は、メタデータと関連付けられ、メタデータは、例えば、手動又は自動のいずれかで、ユーザ、デバイス、及び/又はシステムプロセッサによって生成されてよい。メタデータは、元のファイル4741に関連付けて第1のブロック4781内に含められてよい。
ジェネシスブロック内の値4761は、元のファイル4741の1又は複数のユニークな属性に基づいて生成される初期値である。いくつかの実施形態において、1又は複数のユニークな属性としては、元のファイル4741のためのハッシュ値、元のファイル4741のためのメタデータ、及びファイルに関連付けられている他の情報が挙げられ得る。1つの実装において、初期値4761は、以下のユニークな属性に基づいてよい:
1)元のファイルのためのSHA-2計算ハッシュ値、
2)オリジネーティングデバイスID、
3)元のファイルのための開始タイムスタンプ、
4)元のファイルの初期ストレージ位置、
5)元のファイル及び関連付けられているメタデータを現在コントロールするソフトウェアのためのブロックチェーンネットワークメンバID。
1)元のファイルのためのSHA-2計算ハッシュ値、
2)オリジネーティングデバイスID、
3)元のファイルのための開始タイムスタンプ、
4)元のファイルの初期ストレージ位置、
5)元のファイル及び関連付けられているメタデータを現在コントロールするソフトウェアのためのブロックチェーンネットワークメンバID。
ブロックチェーン内の他のブロック4782~478Nもまた、ヘッダと、ファイルと、値とを有する。しかしながら、第1のブロックのヘッダ4721とは異なり、他のブロック内のヘッダ4722~472Nのそれぞれは、直前のブロックのハッシュ値を含む。直前のブロックのハッシュ値は、単に先行ブロックのヘッダのハッシュであってもよいし、又は、先行ブロック全体のハッシュ値であってもよい。先行するブロックのハッシュ値を残りのブロックのそれぞれに含むことにより、監査可能で不変な証拠保全を確立するために、矢印480で示されているようにN番目のブロックからジェネシスブロック(及び関連付けられている元のファイル)まで戻るトレースをブロック単位で実行できる。
また、他のブロック内のヘッダ4722~472Nのそれぞれは、他の情報、例えば、バージョン番号、タイムスタンプ、ノンス、ルート情報、難易度、コンセンサスプロトコル、及び/又は、対応するファイル及び/又は一般にブロックチェーンに関連付けられている他のパラメータもしくは情報を含んでよい。
他のブロック内のファイル4742~474Nは、例えば、実行される処理のタイプに応じて、元のファイルに等しくてもよいし、又は、ジェネシスブロック内の元のファイルの修正されたバージョンであってもよい。実行された処理のタイプは、ブロックによって異なってよい。処理は、例えば、情報の編集又はさもなければコンテンツの変更、情報の除去、又は、ファイルへの情報の追加もしくはアペンド等の、先行するブロック内のファイルの任意の修正を伴い得る。
さらに、又は代替的に、処理は、先行するブロックからのファイルの単なるコピー、ファイルのストレージ位置の変更、1又は複数の先行するブロックからのファイルの分析、1つのストレージもしくはメモリ位置から別の位置へのファイルの移動、又はブロックチェーン及び/又はその関連付けられているメタデータのファイルに対する行為の実行を伴い得る。ファイルの分析を伴う処理としては、例えば、様々なアナリティクス、統計、又はファイルに関連付られている他の情報のアペンド、包含、又はさもなければ関連付けが挙げられ得る。
他のブロックにおける他のブロック4762~476Nのそれぞれにおける値は、ユニークな値であり、実行された処理の結果としてすべて異なる。例えば、いずれか1つのブロックにおける値は、先行ブロックにおける値の更新されたバージョンに対応する。更新は、値がアサインされるブロックのハッシュに反映される。したがって、ブロックの値は、ブロックにおいてどのような処理が実行されたかの指示を提供し、また、ブロックチェーンを通して元のファイルまで戻るトレーシングを可能にする。このトラッキングにより、ブロックチェーン全体を通してファイルの証拠保全が確認される。
例えば、ファイル内に示されている人物のアイデンティティを保護するべく、先行ブロック内のファイルの一部が編集、ブロックアウト、又はピクセル化されている場合を検討する。この場合、編集されたファイルを含むブロックは、例えば、編集がどのように実行されたか、誰が編集を実行したか、タイムスタンプ、どこで編集が発生したか等、編集されたファイルに関連付けられているメタデータを含んでよい。メタデータは、値を形成するようにハッシュ化されてよい。ブロックのためのメタデータは、先行ブロックにおける値を形成するようにハッシュ化された情報とは異なるので、これらの値は、互いに異なり、解読されるときにリカバーされてよい。
いくつかの実施形態において、先行ブロックの値は、以下のうちのいずれか1又は複数が生じた場合に、現在のブロックの値を形成するように更新されてよい(例えば、計算された新たなハッシュ値)。新たなハッシュ値は、この例示的な実施形態では、以下に示されている情報のすべて又は一部をハッシュ化することによって計算されてよい。
a)ファイルが任意の方法で処理されている場合(例えば、ファイルが編集、コピー、変更、アクセスされたか、又は何らの他の動作が行われた場合)、新たなSHA-2計算ハッシュ値、
b)ファイルのための新たなストレージ位置、
c)ファイルに関連付けられている識別された新たなメタデータ、
d)1のブロックチェーン参加者から別のブロックチェーン参加者への、ファイルのアクセス又はコントロールの移転。
a)ファイルが任意の方法で処理されている場合(例えば、ファイルが編集、コピー、変更、アクセスされたか、又は何らの他の動作が行われた場合)、新たなSHA-2計算ハッシュ値、
b)ファイルのための新たなストレージ位置、
c)ファイルに関連付けられている識別された新たなメタデータ、
d)1のブロックチェーン参加者から別のブロックチェーン参加者への、ファイルのアクセス又はコントロールの移転。
図4Dは、いくつかの実施形態による、ブロックチェーン(例えば470)におけるブロックの構造を表し得るブロック490を示す。ブロック、例えばBlockiは、ヘッダ472iと、ファイル474iと、値476iとを含む。
ヘッダ472iは、先行ブロックBlocki-1のハッシュ値と、例えば、本明細書で説明される情報(例えば、リファレンス、特性、パラメータ等を含むヘッダ情報)のいずれのタイプであってよい、さらなるリファレンス情報とを含む。すべてのブロックは、もちろんジェネシスブロックを除いて、先行ブロックのハッシュを参照する。先行ブロックのハッシュ値は、単に、先行ブロック内のヘッダのハッシュ、又は、ファイル及びメタデータを含む、先行ブロック内の情報のすべてもしくは一部のハッシュとしてよい。
ファイル474iは、順になったデータ1、データ2、...、データN等の複数のデータを含む。データは、データに関連付けられているコンテンツ及び/又は特性を記述するメタデータ1、メタデータ2、...、メタデータNでタグ付けされている。例えば、各データのためのメタデータは、データのタイムスタンプ、データのプロセス、データ内に示されている人物もしくは他のコンテンツを示すキーワード、及び/又は、ファイルの全体としての有効性及びコンテンツを確立するのに有用であり得る他の特徴、並びに、特にその使用、例えば、以下に記載される実施形態に関連して記載されるようなデジタルエビデンスを示す情報を含んでよい。メタデータに加えて、各データは、改ざん、ファイル内のギャップ、及びファイルを通したシーケンシャルリファレンスを防止するために、先行データへのリファレンスREF 1、REF 2、...、REF Nでタグ付けされてよい。
メタデータが(例えば、スマートコントラクトを通して)データにアサインされたら、メタデータは、無効化のために容易に識別できるハッシュの変化を伴わずには変更できない。したがって、メタデータは、ブロックチェーン内の参加者によって使用のためにアクセスされ得る情報のデータログを生成する。
値476iは、ハッシュ値、又は、前述した情報のタイプのいずれかに基づいて計算される他の値である。例えば、任意の所与のブロックBlockiについて、そのブロックのための値は、そのブロックについて実行された処理、例えば、新たなハッシュ値、新たなストレージ位置、関連付けられているファイルのための新たなメタデータ、コントロール又はアクセスの移転、識別子、又は追加される他の動作もしくは情報を反映するように更新されてよい。各ブロック内の値は、ファイルのデータのためのメタデータ及びヘッダとは別個であるように示されているが、別の実施形態において、値は、部分的に又は全体的にこのメタデータに基づいてよい。
ブロック490が形成されたら、任意の時点で、ブロックにわたる値のトランザクション履歴をブロックチェーンに照会することによって、ファイルのための不変な証拠保全を得てよい。この照会、又はトラッキング手順は、直近に含められたブロック(例えば、最後(N番目)のブロック)の値を解読し、次に、ジェネシスブロックに達するとともに元のファイルがリカバーされるまで他のブロックの値の解読を続けることで始まってよい。解読は、各ブロックにおけるヘッダ並びにファイル及び関連付けられているメタデータの解読も伴ってよい。
解読は、各ブロックで行われた暗号化のタイプに基づいて実行される。これは、プライベートキー、パブリックキー、又はパブリックキーとプライベートキーとの対の使用を伴ってよい。例えば、非対称暗号化が用いられる場合、ネットワーク内のブロックチェーン参加者又はプロセッサは、所定のアルゴリズムを用いて、パブリックキーとプライベートキーとの対を生成してよい。パブリックキー及びプライベートキーは、いくつかの数学的関係を通して互いに関連付けられている。パブリックキーは、他ユーザ、例えばIPアドレス又はホームアドレスからメッセージを受信するためのアドレスとして機能するように、パブリックに分散されてよい。プライベートキーは、秘密に保たれ、他のブロックチェーン参加者に送信されたデジタルサインメッセージに対して用いられる。シグネチャは、受信者が送信者のパブリックキーを用いて検証できるように、メッセージ内に含まれる。このようにして、受信者は、送信者のみがこのメッセージを送信した可能性があることを確認できる。
キー対の生成は、ブロックチェーン上でのアカウントの作成と類似であってよいが、実際にどこにも登録する必要はない。また、ブロックチェーン上で実行されるすべてのトランザクションは、それらのプライベートキーを用いて送信者によってデジタルサインされている。このシグネチャは、アカウントのオーナーのみが、(スマートコントラクトによって判断される許可の範囲内であれば)ブロックチェーンのファイルを追跡及び処理できることを保証する。
本明細書においてより詳細に記述されるように、本明細書で説明される方法のいくつかの実施形態の動作のうちの一部又はすべては、代替的な順序で実行されてもよく、全く実行されなくてもよいことが企図され、さらに、複数の動作が同時に、又はより大きな処理の内部部分として発生してもよい。
図5は、本開示の実施形態に係る、方法、ツール、及びモジュール、ならびに本明細書で説明する任意の関連機能のうちの1又は複数を(例えば、コンピュータの1又は複数のプロセッサ回路又はコンピュータプロセッサを用いて)実施するのに用いられ得る、例示的なコンピュータシステム501の上位ブロック図が示されている。いくつかの実施形態において、コンピュータシステム501の主要なコンポーネントは、1又は複数のCPU502と、メモリサブシステム504と、端末インタフェース512と、ストレージインタフェース516と、I/O(入出力)デバイスインタフェース514と、ネットワークインタフェース518とを含み得る。これらのすべては、メモリバス503、I/Oバス508、及びI/Oバスインタフェースユニット510を介してコンポーネント間通信のために直接的又は間接的に通信可能に結合され得る。
コンピュータシステム501は、本明細書ではCPU502と総称される、1又は複数の汎用プログラマブル中央処理装置(CPU)502A、502B、502C、及び502Dを含み得る。いくつかの実施形態において、コンピュータシステム501は、比較的大きなシステムに典型的な複数のプロセッサを含み得るが、他の実施形態においては、コンピュータシステム501は、代わりに、単一CPUシステムであり得る。各CPU502は、メモリサブシステム504に格納された命令を実行し得、1又は複数のレベルのオンボードキャッシュを含み得る。
システムメモリ504は、ランダムアクセスメモリ(RAM)522又はキャッシュメモリ524などの揮発性メモリの形態のコンピュータシステム可読媒体を含み得る。コンピュータシステム501は、さらに、他の取り外し可能/取り外し不可能、揮発性/不揮発性コンピュータシステム記憶媒体を含み得る。例としてのみであるが、ストレージシステム526は、「ハードドライブ」のような、取り外し不可能な不揮発性磁気媒体から読み出したり、それに書き込んだりするために設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピーディスク」)から読み出したり、それに書き込んだりするための磁気ディスクドライブ、又はCD-ROM、DVD-ROM、もしくは他の光学媒体などの取り外し可能な不揮発性光ディスクから読み出したり、それに書き込んだりするための光ディスクドライブを設けることができる。さらに、メモリ504は、フラッシュメモリ、例えばフラッシュメモリスティックドライブ又はフラッシュドライブを含むことができる。メモリデバイスは、1又は複数のデータ媒体インタフェースによってメモリバス503に接続することができる。メモリ504は、様々な実施形態の機能を実行するように構成されたプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
プログラムモジュール530の少なくとも1つのセットをそれぞれ有する、1又は複数のプログラム/ユーティリティ528が、メモリ504内に格納され得る。プログラム/ユーティリティ528は、ハイパーバイザ(仮想マシンモニタとも呼ばれる)、1又は複数のオペレーティングシステム、1又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータを含み得る。これらのオペレーティングシステム、1又は複数のアプリケーションプログラム、他のプログラムモジュール、及び、プログラムデータのそれぞれ、又は、これらの何らかの組み合わせは、ネットワーキング環境の実装形態を含み得る。プログラム528及び/又はプログラムモジュール530は、一般に、様々な実施形態の機能又は方法を実行する。
メモリバス503は、CPU502、メモリサブシステム504、及びI/Oバスインタフェース510間の直接通信経路を提供する単一バス構造として図5に示されているが、メモリバス503は、いくつかの実施形態において、階層、星形、もしくはウェブ構成のポイントツーポイントリンク、複数の階層バス、並列冗長経路、又は任意の他の適切なタイプの構成のような、様々な形態のいずれかで構成され得る複数の異なるバス又は通信経路を含み得る。さらに、I/Oバスインタフェース510及びI/Oバス508はそれぞれ単一のユニットとして示されているが、コンピュータシステム501は、いくつかの実施形態において、複数のI/Oバスインタフェースユニット510、複数のI/Oバス508、又はその両方を含み得る。さらに、様々なI/Oデバイスに伸びる様々な通信経路からI/Oバス508を分離する複数のI/Oインタフェースユニットが示されているが、他の実施形態において、I/Oデバイスの一部又は全部を、1又は複数のシステムI/Oバスに直接接続し得る。
いくつかの実施形態において、コンピュータシステム501は、マルチユーザメインフレームコンピュータシステム、シングルユーザシステム、もしくは直接的なユーザインタフェースをほとんど又は全く有しないが、他のコンピュータシステム(クライアント)からの要求を受信するサーバコンピュータ又は同様のデバイスであり得る。さらに、いくつかの実施形態において、コンピュータシステム501は、デスクトップコンピュータ、ポータブルコンピュータ、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、ポケットコンピュータ、電話、スマートフォン、ネットワークスイッチもしくはルータ、又は任意の他の適切なタイプの電子デバイスとして実施され得る。
図5は、例示的なコンピュータシステム501の代表的な主要コンポーネントを示すことを意図していることに留意されたい。しかしながら、いくつかの実施形態において、個々のコンポーネントは、図5に表されているよりもより複雑であってもより複雑でなくてもよく、図5に示されているもの以外の、又はそれらに追加されたコンポーネントが存在してよく、このようなコンポーネントの数、タイプ、及び構成は様々であり得る。
本明細書においてより詳細に記述されるように、本明細書で説明される方法のいくつかの実施形態の動作のうちの一部又はすべては、代替的な順序で実行されてもよく、全く実行されなくてもよいことが企図され、さらに、複数の動作が同時に、又はより大きな処理の内部部分として発生してもよい。
本発明は、任意の可能な技術的詳細レベルで統合化されたシステム、方法及び/又はコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(又は複数の媒体)を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスにより使用される命令を保持及び記憶することのできる有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又は上述したものの任意の好適な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下、すなわち、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカード又は命令が記録された溝内の***構造などの機械的にエンコードされたデバイス、及び上述したものの任意の好適な組み合わせを含む。本明細書では、コンピュータ可読記憶媒体自体は、電波又は自由伝搬する他の電磁波、導波路又は他の伝送媒体を介して伝搬する電磁波(例えば、ファイバオプティックケーブルを通過する光パルス)、又は、ワイヤを介して伝送される電気信号などの一時的な信号とみなされるものではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング/処理デバイスに、或いは、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークを介して、外部コンピュータ又は外部ストレージデバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び/又は、エッジサーバを備え得る。各コンピューティング/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を行うためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、及び、「C」プログラミング言語などの手続き型プログラミング言語もしくは同様のプログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで書かれたソースコードもしくはオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェアパッケージとして、ユーザのコンピュータ上で全体を実行すること、ユーザのコンピュータ上で一部分を実行することができ、ユーザのコンピュータ上で一部分を、リモートコンピュータ上で一部分を実行すること、又は、リモートコンピュータ又はサーバ上で全体を実行することができる。後者のシナリオでは、リモートコンピュータが、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてよく、又はその接続が、(例えば、インターネットサービスプロバイダを用いたインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明されている。フローチャート図及び/又はブロック図の各々のブロックと、フローチャート図及び/又はブロック図におけるブロックの組み合わせとが、コンピュータ可読プログラム命令によって実装できることが理解されよう。
これらのコンピュータ可読プログラム命令をコンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供してマシンを生み出してよく、それにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の1又は複数のブロックで指定された機能/動作を実装するための手段を作成する。また、これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブルデータ処理装置、及び/又は、他のデバイスに特定の様式で機能するように指示することが可能なコンピュータ可読記憶媒体にも記憶することができ、これにより、命令を記憶したコンピュータ可読記憶媒体が、フローチャート及び/又はブロック図の1又は複数のブロックで指定される機能/動作の態様を実装する命令を有する製品を備えるようになる。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードして、一連の動作段階をコンピュータ、他のプログラマブル装置又は他のデバイス上で実行させ、コンピュータ実装プロセスを生成してよく、それにより、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令は、フローチャート及び/又はブロック図の1又は複数のブロックで指定された機能/動作を実装する。
図におけるフローチャート及びブロック図は、本発明の様々な実施形態に係る、システム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図における各ブロックは、指定された論理機能を実装するための1又は複数の実行可能命令を含む命令のモジュール、セグメント、又は一部を表し得る。いくつかの代替的な実装形態において、ブロックに記されている機能は、図面に記されている順序とは異なる順序で行われ得る。例えば、連続して示されている2つのブロックが、実際には、1つの段階として実現されてよく、同時に、実質的に同時に、部分的に又は全体的に時間が重複する方式で実行されてよく、又は、ブロックは、場合によっては、関与する機能に応じて逆の順序で実行されてよい。ブロック図及び/又はフローチャート図の各ブロック、及び、ブロック図及び/又はフローチャート図におけるブロックの組み合わせは、指定された機能又は動作を実行する、又は専用ハードウェア及びコンピュータ命令の組み合わせを実行する、専用ハードウェアベースシステムにより実装され得ることにも留意されたい。
本開示の様々な実施形態の説明は、例示の目的で提示されてきたが、網羅的であること、又は開示された実施形態に限定されることを意図していない。説明された実施形態の範囲から逸脱することなく、多くの修正及び変形が、当業者には明らかになるであろう。本明細書において用いられる専門用語は、実施形態の原理、市場で見られる技術の実際の適用又は技術的改善を最も良く説明するように、又は、本明細書において開示された実施形態を他の当業者が理解することを可能にするように選ばれている。
本開示は、具体的な実施形態に関して説明されているが、当業者には、その変更及び修正が明らかとなることが予想される。したがって、以下の特許請求の範囲は、本開示の範囲内にあるすべてのこのような変更及び修正を包含するものとして解釈されることが意図されている。
ブロックチェーンネットワークは、計算的にビジーな環境であり、リソースを消費しネットワーク間通信及び複製に起因する重いIO(入力/出力)需要を有する多くの処理(例えば、スマートコントラクト、暗号化、バリデーション等)を有する。
ブロックチェーンネットワークにおけるプライバシーは現在、ブロック内にデータのハッシュを置き、アウトオブバンドで(例えば、ブロックチェーンネットワークの外側)、ハッシュ原像を適格なノードに配布することによって達成される。配布は、承認中に、又は、ブロックをコミットする前に行われ得る。コレクションを定義するトランザクションは、エンドースメントポリシ及び配布ポリシを含み得る。しかしながら、この方式でプライバシーを取得することには複数の欠点がある。システムは、高いチャーンでスケールしない。計算時に存在しなかったか、又は、到達できなかったかのいずれかであるノードは、コミットメントにおいてデータを引き出す必要があり、データ処理が遅くなる。十分に高いネットワークチャーンの下で、プライベートデータは喪失しさえし得る。この方法はまた、完全メッシュ接続を想定する。いくつかの場合において、組織のいくつかのピアは、エンドーサから到達可能でないことがあり得るので、いくつかの場合においてワイドエリアネットワーク(WAN)を介してリモート組織からデータを引き出すことに依存する。
いくつかの実施形態において、プライベートデータコレクションを暗号化と組み合わせるハイブリッドデータセグリゲーション機構が提案される。方法は、プライベートデータコレクションのハイブリッド手法及び階層型キー導出からの対称暗号化を利用して、ブロックチェーンにおけるデータセグリゲーションを達成する。いくつかの実施形態において、暗黙的コレクションが、対称暗号化キーを定義するために使用され、次に、階層型コレクション(本明細書においてリング)が、これらの暗号化キーを保有する当事者によって定義される。一例において、キー導出の機構は本質的に、対応する一連のキーを有する一連のリングのセットにおける当事者間の新規キー交換プロトコルである。シーケンスにおける各新たなキーは、前のキーから生成され、階層型キー構造を形成する。例えば、新たなキーの系統における前のキーのすべては、新たなキーによって暗号化されたデータにアクセスしてよいが、新たなキーは、前のキーによって暗号化されたデータにアクセスすることはできない。
データコレクションは、選択データパーティション、ファイルのグループ、エントリのリスト、1又は複数のドキュメント、又は別の形式のデータであり得る。いくつかの実施形態において、データコレクションは、組織特有のデータコレクションであり得る。例えば、第1組織は、第2組織と共有されるデータコレクションを有し得、又は、第1組織は、キーを作成し得、その結果、第2組織は、データコレクションを第1組織と共有できる。いくつかの実施形態において、本明細書に記載の機能は、組織のノードによって実行される。「ノード」によって実行されると記載される機能は、組織に属する複数のノードによって実行され得るか、又は、組織の単一ノードによって実行され得ると理解される。
いくつかの実施形態において、キーは、データを暗号化し、データを解読し、又はトランザクションにサインするために使用され得る。データを暗号化し、データを解読し、及び/又は、トランザクションにサインするキーの能力は、本明細書において、データのコレクションへのアクセスと総称される。例えば、データの第2コレクションにアクセスするために第1キー及び第2キーが使用されてよいと記述される場合、本明細書に記載されるように、第2コレクションについてのデータを暗号化し、第2コレクションについてのデータを解読し、及び/又は、データの第2コレクションに関するトランザクションにサインするために、第1キー又は第2キーのいずれかが使用され得る。
ここで図6を参照すると、本開示の実施形態に係る、ブロックチェーンネットワークにおけるデータコレクションについてのアクセスリングの可視化600が示されている。いくつかの実施形態において、各リングに対応するキーは、異なるレベルのデータ、又は、データの階層型暗黙的コレクションへのアクセスを与える。
暗黙的コレクションは、組織についてのプライベートデータコレクションに対応する、ピアにおいて事前定義されるデータのコレクションである。コレクションは、暗黙的コレクションを使用する、又は、それへのアクセスを与える前に明示的に定義される必要はない。例えば、暗黙的コレクションは、「インカムドキュメント」であり得る。ドキュメントが変化する、又は、追加されるたびに新たなコレクションを定義する代わりに、「インカムドキュメント」のクラスが暗黙的に定義されてよく、その結果、コレクション「インカムドキュメント」に変化があるたびに新たなアクセスは必要ない。階層型暗黙的コレクションは、様々なあり得るサイズで、当事者のサブセットについて暗号化キーを定義する単調なアクセス構造である。階層型暗黙的コレクションは、オーディタがすべてのレベルのすべての暗黙的コレクションへのアクセスを有し、異なるアクセスを他の組織に与えることができる認可レベルベースのアクセスコントロールを有する。
図6の例において、リング605における組織620は、組織1のいくつかのピアで生成される、その組織の暗黙的コレクションについての対称暗号化第1キー(K1)(図示せず)を有する。例えば、組織620についてのノード又は管理者は、第1暗黙的コレクションについての第1キーを生成する。いくつかの実施形態において第1組織のノードのみがK1へのアクセスを有し、したがって、第1組織のノードのみがデータにアクセスし得る。
いくつかの実施形態において、組織620の管理者は、第2暗黙的コレクションについて、キーK1に基づいて、リング606(例えば第2リング)を定義し、対称暗号化キーK2(図示せず)を導出する。いくつかの実施形態において、リング606を定義することは、組織、及び、その組織についてのデータの暗黙的コレクションを識別することを含み得る。キーK2は組織625に分散される。いくつかの実施形態において、リングを定義することは、キーによってアクセス(例えば、暗号化、解読、又はサイン)されるデータの暗黙的コレクションを指定し、何の組織がデータへのアクセスを有するかを判定することを意味する。いくつかの実施形態において、キーK1及びキーK2の両方は、データの第2暗黙的コレクションへのアクセスを提供する。そうして、組織620は、第1リングについてのキーK1から導出されたキーを有するすべての後続リング(例えばリング606~608)へのアクセスを有する。この例では、組織620のみがK1へのアクセスを有し、組織625及び620のみがK2へのアクセスを有する。
いくつかの実施形態において、リング607(例えば第3リング)が定義され、キーK3(図示せず)が導出され、データの第3暗黙的コレクションへのアクセスを与える。いくつかの実施形態において、第3キーは、第1組織のノード又は第2組織のノードによって第3組織のノードに分散される。いくつかの実施形態において、キーK3は、組織620又は625によって導出され、組織630に提供され得る。いくつかの実施形態において、キーK1、キーK2、及びキーK3は、データの第3暗黙的コレクションへのアクセスを提供する。そうして、キーK1又はK2へのアクセスを有する任意の組織は、キーK3に対応するデータにアクセスすることが可能である。
いくつかの実施形態において、リング608(例えば、リング4)がイニシャライズされ、キーK4(図示せず)がキーK3から導出され、データの第4暗黙的コレクションへのアクセスを与える。いくつかの実施形態において、キーK4は、組織620、625、及び/又は630によって導出され組織635に提供され得る。いくつかの実施形態において、キーK1、キーK2、キーK3、及びキーK4は、データの第4暗黙的コレクションへのアクセスを提供する。そうして、キーK1、K2、及び/又はK3へのアクセスを有する任意の組織は、キーK4に対応するデータにアクセスすることが可能である。
いくつかの実施形態において、最終リング(例えば、階層における最後のあり得るリング)についての暗黙的データコレクションは、ブロックチェーンネットワーク上の任意の組織によってアクセスされてよく、最終キーの前にあった任意のキーによってアクセスが可能であってよい。いくつかの実施形態において、最後のリングは、ブロックチェーンネットワーク上のすべての組織によてアクセス可能であり、単一コレクションを有し、順序付けノードからのコレクションにおける情報を暗号化することを目的とする。
いくつかの実施形態において、キーK1は、他のデータの暗黙的コレクションについての他のリング階層を生成するために使用され得る。例えば、組織620は、キーK1を使用して、リング609についてのキーK2Bを生成できる。この例では、K2Bは、第5暗黙的データコレクションを暗号化するために使用されるであろう新たなキー、及び、組織630など、625以外の別の組織に提供されるキーK2Bである。同様に、キーK2、K3、及びK4は、キーK2Bによって暗号化されたデータにアクセスできないが、キーK1は、キーK2Bによって暗号化されたデータにアクセスできる。いくつかの実施形態において、上のリング606から導出される後続リング(リング607及び608)と同様に、リングの階層はまた、リング609から導出されてよい。
ここで図7を参照すると、本開示の実施形態に係る、ブロックチェーンネットワークについてのデータセグリゲーションの処理700のフローチャートが示される。
処理700は、データの暗黙的コレクション又は第1リングについてキーが生成されるオペレーション702から始まる。例えば、第1組織のノードは、その組織についてのデータの暗黙的コレクションについて対称暗号化キーK1を生成する。
処理700は、追加の組織についてのデータの追加のコレクションについての追加のキーが第1キーに基づいて導出されるオペレーション704に続く。例えば、第1組織は、第2組織に関連付けられたデータの第2コレクションについて、第1キーに基づいて第2キーを生成する。より詳細な例において、第1組織の管理者は、例の式を使用して、第2リングを定義する(例えば、イニシャライズする)。
i∈{2,...n}:K1i = PRFK1 (i)2 (式1)
例の式1において、iは追加の組織(例えば、組織{2,...n})であり、Kはキーを表し(例えば、K1は、第1組織を有する第1リングについてのキーであり、K1iは、第2リングにおける第2組織についてのキーである)、PRFは、疑似ランダム関数である。iの例は非常に単純であるが、iは、多種多様な数から選択され得、単に、PRFを用いるキーの生成について各組織を指定する方式である。例えば、それは、組織についての指定コード(例えば2)、組織について使用されるランダム番号、又は、シリアル番号であってよい。いくつかの実施形態において、iは、キーを生成した後にブロックチェーン台帳上で利用可能になる。いくつかの実施形態において、各キーは、すべての後続のキーについてのすべての暗黙的データコレクションを解読することが可能である。例えば、K1は、K1iを用いて暗号化されるデータにアクセスするために使用され得る。
オペレーション706において、追加のキーは追加の組織に分散される。例えば、第1組織は第2キーを第2組織に提供する。
オペレーション704~706は、複数の組織について複数回繰り返されてよい。
上の例に続いて、オペレーション704が繰り返されてよく、第3リングにおける第3暗黙的データコレクションについての第3キーを導出し、ここで、第3キーは、(第1キーに基づく)第2キーから導出される。上の例に続いて、キーは、第2組織又は第1組織によって導出されてよい。上の式1を基礎として、第2リングからのすべての当事者(例えば、第1組織及び組織i)は、K1iを有し、ここで、jは次の当事者である(例えば、i,j∈{2,...n})。組織iからの管理者(リングの観点においてi<j)は、K1ij=PRFK1i(j)として定義される第3組織(例えば組織j)についてのコレクションのキー(例えば、第3キー)を導出する。
キーK1ijは組織jの暗黙的データコレクションに関連付けられる。K1ijは組織jの暗黙的コレクションに関連付けられる一方で、組織i及び第1組織の両方は、K1ijが導出された前のキー(例えば、K1、K1i)を有するので、キーを計算できる。同様に、K1、K1j、及びK1ijは、K1ijから導出される任意のキーを計算するために使用できる。
Claims (20)
- メモリ;及び
前記メモリと通信するプロセッサ、
を備え、前記プロセッサは、
第1リングにおける第1組織の第1ノードによって、前記第1リングについての第1キーを生成する手順、ここで、前記第1キーは、データの第1コレクションをアンロックする;
前記第1ノードによって、第2組織の第2ノードを含む第2リングを定義する手順;
前記第1ノードによって、前記第1キーに基づいて、データの第2コレクションについての第2キーを導出する手順、ここで、前記第1キー及び前記第2キーは、データの前記第2コレクションにアクセスする、及び;
前記第2キーを前記第2ノードに分散する手順
を含む処理を実行するよう構成される、
システム。 - 第3組織の第3ノードを含む第3リングを定義する手順;
前記第2キーに基づいて、データの第3コレクションについての第3キーを導出する手順;及び
前記第3キーを前記第3ノードに分散する手順
を更に備える、請求項1に記載のシステム。 - 第3ノードを定義し、前記第3キーを導出する前記手順は、前記第2ノードによって実行される、請求項2に記載のシステム。
- 第3ノードを定義し、前記第3キーを導出する前記手順は、前記第1ノードによって実行される、請求項2に記載のシステム。
- 前記第3キー、前記第1キー、及び前記第2キーは、データの前記第3コレクションにアクセスする、請求項2に記載のシステム。
- 追加の組織の追加のノードを含む追加のリングを定義する手順;
データの追加のコレクションについて、前記第3キーに基づいて追加のキーを導出する手順;及び
前記追加のキーを前記追加のノードに分散する手順
を更に備える、請求項2に記載のシステム。 - 追加のリングを定義する前記手順、前記追加のキーを導出する前記手順、及び、前記追加のキーを分散する前記手順は、複数の組織の複数のノードについて複数回実行される、請求項6に記載のシステム。
- 第1リングにおける第1組織の第1ノードによって、前記第1リングについての第1キーを生成する段階、ここで、前記第1キーはデータの第1コレクションをアンロックする;
前記第1ノードによって、第2組織の第2ノードを含む第2リングを定義する手順;
前記第1ノードによって、前記第1キーに基づいて、データの第2コレクションについての第2キーを導出する手順、ここで、前記第1キー及び前記第2キーは、データの前記第2コレクションにアクセスする;及び
前記第2キーを前記第2ノードに分散する段階
を備える方法。 - 第3組織の第3ノードを含む第3リングを定義する段階;
前記第2キーに基づいて、データの第3コレクションについての第3キーを導出する段階;及び
前記第3キーを前記第3ノードに分散する段階
を更に備える、請求項8に記載の方法。 - 第3ノードを定義し、前記第3キーを導出する前記段階は、前記第2ノードによって実行される、請求項9に記載の方法。
- 第3ノードを定義し、前記第3キーを導出する前記段階は、前記第1ノードによって実行される、請求項9に記載の方法。
- 前記第3キー、前記第1キー、及び前記第2キーは、データの前記第3コレクションにアクセスする、請求項9に記載の方法。
- 追加の組織の追加のノードを含む追加のリングを定義する段階;
前記第3キーに基づいて、データの追加のコレクションについて、追加のキーを導出する段階;及び
前記追加のキーを前記追加のノードに分散する段階
を更に備える、請求項9に記載の方法。 - 追加のリングを定義する前記手順、前記追加のキーを導出する前記手順、及び、前記追加のキーを分散する前記手順は、複数の組織の複数のノードについて複数回実行される、請求項13に記載の方法。
- 具現化されたプログラム命令を有するコンピュータ可読記憶媒体を備えるコンピュータプログラム製品であって、前記プログラム命令は、プロセッサによって実行可能であり、前記プロセッサに方法を実行させ、前記方法は、
第1リングにおける第1組織の第1ノードによって、前記第1リングについての第1キーを生成する手順、ここで、前記第1キーはデータの第1コレクションをアンロックする;
前記第1ノードによって、第2組織の第2ノードを含む第2リングを定義する手順;
前記第1ノードによって、前記第1キーに基づいて、データの第2コレクションについての第2キーを導出する手順、ここで、前記第1キー及び前記第2キーは、データの前記第2コレクションにアクセスする;及び
前記第2キーを前記第2ノードに分散する手順
を備える、コンピュータプログラム製品。 - 第3組織の第3ノードを含む第3リングを定義する手順;
前記第2キーに基づいて、データの第3コレクションについての第3キーを導出する手順;及び
前記第3キーを前記第3ノードに分散する手順
を更に備える、請求項15に記載のコンピュータプログラム製品。 - 第3ノードを定義し、前記第3キーを導出する前記手順は、前記第2ノードによって実行される、請求項16に記載のコンピュータプログラム製品。
- 第3ノードを定義し、前記第3キーを導出する前記手順は、前記第1ノードによって実行される、請求項16に記載のコンピュータプログラム製品。
- 前記第3キー、前記第1キー、及び前記第2キーは、データの前記第3コレクションにアクセスする、請求項16に記載のコンピュータプログラム製品。
- 追加の組織の追加のノードを含む追加のリングを定義する手順;
前記第3キーに基づいて、データの追加のコレクションについての追加のキーを導出する手順;及び
前記追加のキーを前記追加のノードに分散する手順
を更に備える、請求項16に記載のコンピュータプログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/204,827 | 2021-03-17 | ||
US17/204,827 US12010226B2 (en) | 2021-03-17 | 2021-03-17 | Blockchain data segregation |
PCT/CN2022/077444 WO2022193920A1 (en) | 2021-03-17 | 2022-02-23 | Blockchain data segregation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024509666A true JP2024509666A (ja) | 2024-03-05 |
Family
ID=83284811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023541790A Pending JP2024509666A (ja) | 2021-03-17 | 2022-02-23 | ブロックチェーンデータセグリゲーション |
Country Status (6)
Country | Link |
---|---|
US (1) | US12010226B2 (ja) |
JP (1) | JP2024509666A (ja) |
CN (1) | CN117043772A (ja) |
DE (1) | DE112022000906T5 (ja) |
GB (1) | GB2619665A (ja) |
WO (1) | WO2022193920A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475575B (zh) * | 2020-04-09 | 2021-08-10 | 腾讯科技(深圳)有限公司 | 基于区块链的数据同步方法、装置及计算机可读存储介质 |
CN115840787B (zh) * | 2023-02-20 | 2023-05-02 | 塔比星信息技术(深圳)有限公司 | 基于区块链的供应链数据共享方法、装置、设备及介质 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8837718B2 (en) * | 2009-03-27 | 2014-09-16 | Microsoft Corporation | User-specified sharing of data via policy and/or inference from a hierarchical cryptographic store |
US8352741B2 (en) * | 2009-06-11 | 2013-01-08 | Microsoft Corporation | Discovery of secure network enclaves |
US11290261B2 (en) * | 2011-10-31 | 2022-03-29 | Reid Consulting Group, Inc. | System and method for securely storing and sharing information |
CN109074562B (zh) * | 2016-02-23 | 2023-07-25 | 区块链控股有限公司 | 基于区块链的合并式数据传输控制方法和*** |
US10776502B2 (en) * | 2016-06-12 | 2020-09-15 | Apple Inc. | Diversification of public keys |
CN106779704A (zh) | 2016-12-06 | 2017-05-31 | 杭州趣链科技有限公司 | 一种基于环签名的区块链匿名交易方法 |
WO2018223042A1 (en) | 2017-06-01 | 2018-12-06 | Schvey, Inc. d/b/a/ Axoni | Distributed privately subspaced blockchain data structures with secure access restriction management |
CN107222482A (zh) | 2017-06-01 | 2017-09-29 | 黑龙江卓亚科技有限公司 | 一种基于复合区块链网络的数据管理***及方法 |
CN107807984A (zh) | 2017-10-31 | 2018-03-16 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区共识的方法 |
US10567168B2 (en) | 2017-11-16 | 2020-02-18 | International Business Machines Corporation | Blockchain transaction privacy enhancement through broadcast encryption |
US10958417B2 (en) | 2017-12-18 | 2021-03-23 | International Business Machines Corporation | Protecting sensitive data in a distributed ledger system using blockchain hierarchies |
US10958628B2 (en) | 2017-12-18 | 2021-03-23 | International Business Machines Corporation | Protecting sensitive data in a distributed ledger system using a blockchain channel hierarchy |
CN108111540B (zh) | 2018-01-30 | 2020-08-28 | 西安电子科技大学 | 一种云存储中支持数据共享的分层访问控制***及方法 |
EP3605377A1 (de) | 2018-08-01 | 2020-02-05 | Siemens Aktiengesellschaft | Computerimplementiertes verfahren und system zum bereitstellen einer aus blockchains zusammengesetzten hierarchischen blockchain |
US10764039B2 (en) * | 2018-08-01 | 2020-09-01 | The Toronto-Dominion Bank | Dynamic generation and management of asymmetric cryptographic keys using distributed ledgers |
US10853353B2 (en) * | 2018-08-03 | 2020-12-01 | American Express Travel Related Services Company, Inc. | Blockchain-enabled datasets shared across different database systems |
CN110088793B (zh) | 2018-12-19 | 2023-10-20 | 创新先进技术有限公司 | 区块链网络中的数据隔离 |
CN110300112B (zh) | 2019-07-02 | 2022-05-10 | 石家庄铁道大学 | 区块链密钥分层管理方法 |
AU2020331404A1 (en) * | 2019-08-13 | 2022-02-24 | Db Results Pty Ltd | Secure information sharing systems and methods |
-
2021
- 2021-03-17 US US17/204,827 patent/US12010226B2/en active Active
-
2022
- 2022-02-23 WO PCT/CN2022/077444 patent/WO2022193920A1/en active Application Filing
- 2022-02-23 JP JP2023541790A patent/JP2024509666A/ja active Pending
- 2022-02-23 GB GB2314809.1A patent/GB2619665A/en active Pending
- 2022-02-23 CN CN202280021970.2A patent/CN117043772A/zh active Pending
- 2022-02-23 DE DE112022000906.3T patent/DE112022000906T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US12010226B2 (en) | 2024-06-11 |
GB202314809D0 (en) | 2023-11-08 |
CN117043772A (zh) | 2023-11-10 |
DE112022000906T5 (de) | 2023-11-16 |
US20220303121A1 (en) | 2022-09-22 |
GB2619665A (en) | 2023-12-13 |
WO2022193920A1 (en) | 2022-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111800268B (zh) | 用于区块链背书的零知识证明 | |
US11741083B2 (en) | Cross-shard private atomic commit | |
CN111144881A (zh) | 对资产转移数据的选择性访问 | |
US20200267002A1 (en) | Blinded endorsement for blockchain | |
US11240003B2 (en) | Consent-based data management | |
US11621858B2 (en) | Anonymity mechanisms in permissioned blockchain networks | |
JP2023524715A (ja) | ネットワーク間の識別情報プロビジョニング | |
WO2022193920A1 (en) | Blockchain data segregation | |
KR20230005353A (ko) | 탈중앙화된 데이터베이스에서 허가된 이벤팅 | |
CN111698198A (zh) | 秘密生成和份额分发 | |
US11856092B2 (en) | Limiting data availability on distributed ledger | |
US20220292202A1 (en) | Verifiable training of model in untrusted environment | |
JP2023551458A (ja) | Oprfを介したブロックチェーンネットワークにおける鍵再生 | |
US11374755B1 (en) | Entangled token structure for blockchain networks | |
JP2023087665A (ja) | システム、方法、およびコンピュータプログラム製品(許可型ブロックチェーンのためのマルチ発行者匿名クレデンシャル) | |
US20230412402A1 (en) | Endorsement policy consolidation in blockchain networks | |
WO2023099357A1 (en) | Compressible blockchains | |
US20230308276A1 (en) | Creating non-fungible token shards | |
US20230081416A1 (en) | Anonymous private shared partitions in blockchain networks | |
US11956360B2 (en) | Provable trade secrets on blockchain networks | |
US20220399988A1 (en) | Linking blockchain operations | |
US11632237B2 (en) | Configuration override in a blockchain network | |
US11968307B2 (en) | Private ledger partitions in blockchain networks | |
US20230412403A1 (en) | Secret smart operations in blockchain | |
US20230403161A1 (en) | Aggregate anonymous credentials for decentralized identity in blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230925 |