JP2023532959A - 許可制ブロックチェーンのためのプライバシー保護アーキテクチャ - Google Patents
許可制ブロックチェーンのためのプライバシー保護アーキテクチャ Download PDFInfo
- Publication number
- JP2023532959A JP2023532959A JP2023500056A JP2023500056A JP2023532959A JP 2023532959 A JP2023532959 A JP 2023532959A JP 2023500056 A JP2023500056 A JP 2023500056A JP 2023500056 A JP2023500056 A JP 2023500056A JP 2023532959 A JP2023532959 A JP 2023532959A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- shards
- shard
- blockchain
- request
- 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
- 238000000034 method Methods 0.000 claims description 69
- 238000012545 processing Methods 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 11
- 230000009471 action Effects 0.000 claims description 6
- 230000007704 transition Effects 0.000 abstract description 12
- 230000004044 response Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 18
- 238000012546 transfer Methods 0.000 description 13
- 238000012795 verification Methods 0.000 description 11
- 230000008520 organization Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 101100278307 Caenorhabditis elegans dohh-1 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 108010078791 Carrier Proteins Proteins 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 102100032467 Transmembrane protease serine 13 Human genes 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 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
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000000765 microspectrophotometry Methods 0.000 description 1
- 235000019799 monosodium phosphate Nutrition 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
Images
Classifications
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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
-
- 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/604—Tools and structures for managing or administering access control systems
-
- 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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/42—Anonymization, e.g. involving pseudonyms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Automation & Control Theory (AREA)
- Medical Informatics (AREA)
- Power Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
プロセッサは、トランザクションに関連する要求を生成し得る。プロセッサは、要求に関連するアンカーを収集し得る。プロセッサは、トランザクションを2つ以上のハッシュの集合に遷移し得る。プロセッサは、順序付けサービスにトランザクションをサブミットし得る。プロセッサは、トランザクションに関連する要求を受信し得る。プロセッサは、第1のハッシュに関連する第1のプレイメージが第1のシャードに既知であることを識別し得る。プロセッサは、トランザクションに関連する第1の識別タグを生成し得る。プロセッサは、トランザクションに関連する要求を受信し得る。プロセッサは、第1のシャードに第1のタスクを割り当て得る。プロセッサは、第1のハッシュに関連する第1のプレイメージが第1のシャードに既知であることを識別し得る。プロセッサは、タスクを実行し得る。
Description
本開示は、一般に、ブロックチェーントランザクションコミットメントの分野に関し、より具体的には、許可制ブロックチェーンにおいてトランザクションのプライバシーを保護することに関する。
ブロックチェーンは、ネットワークのすべてのノードにわたってデータを複製することによって、データの不変性を提供する。ブロックチェーンの検証を可能とするため、ノードは、チェーン上のいかなるデータもすべての参加者が見ることができる、トランザクションの完全な履歴にアクセスできなければならない。
本開示の実施形態は、ブロックチェーンネットワークにおいてプライベートトランザクションを処理するための方法、システム、およびコンピュータプログラム製品を含む。プロセッサは、トランザクションに関連する要求を生成し得る。プロセッサは、要求に関連するアンカーを収集し得る。プロセッサは、トランザクションを2つ以上のハッシュの集合に遷移し得る。プロセッサは、トランザクションを順序付けサービスにサブミットし得る。
本開示のさらなる実施形態は、ブロックチェーンネットワークにおいてプライベートトランザクションを処理する方法を含む。プロセッサは、トランザクションに関連する要求を受信し得る。プロセッサは、第1のハッシュに関連する第1のプレイメージが第1のシャードに既知であることを識別し得る。プロセッサは、トランザクションに関連する第1の識別タグを生成し得る。
本開示のさらなる実施形態は、ブロックチェーンネットワークにおいてプライベートトランザクションを処理する方法を含む。プロセッサは、トランザクションに関連する要求を受信し得る。プロセッサは、第1のシャードに第1のタスクを割り当て得る。プロセッサは、第1のハッシュに関連する第1のプレイメージが第1のシャードに既知であることを識別し得る。プロセッサは、タスクを実行し得る。
上記の概要は、例示された各実施形態または本開示のすべての実施を説明することを意図したものではない。
本開示に含まれる図面は、本明細書に組み込まれ、その一部を形成する。それらは、本開示の実施形態を例示し、説明とともに、本開示の原理を説明するのに役立つ。図面は、特定の実施形態を単に例示するものであり、本開示を限定するものではない。
本明細書で説明される実施形態は、様々な修正および代替形態が可能であるが、それらの具体的な内容は、例として図面に示されており、詳細に説明される。しかしながら、説明される特定の実施形態は、限定的な意味に解釈されるべきではないことを理解されるべきである。これに対して、本開示の趣旨および範囲内のすべての修正、均等物、および代替物を包含することを意図している。
本開示の態様は、概して、ブロックチェーントランザクションコミットメントの分野に関し、より具体的には、許可制ブロックチェーンにおいてトランザクションのプライバシーを保護することに関する。説明される実施形態は、高価な(例えば、コンピューティングコスト、リソースコストなど)暗号プリミティブに依存しないプライバシー第一のアプローチを中心にブロックチェーンフレームワークを再設計することによって、ブロックチェーンのプライバシーについての懸念に対処する。モジュール式トランザクション実行環境、順序付けサービス、および内部データストレージを可能にする方法、システム、およびコンピュータプログラム製品が本明細書において開示される。記述されるブロックチェーンの技術/分野への重要な貢献は、高速なアトミックシャード間トランザクションを備えた新規なシャードベースのブロックチェーンフレームワーク、基礎となるデータ管理システムから独立したドメイン主導のトランザクション作成、およびプライバシーを保護するノンブロッキングのアトミックコミットメントプロトコルである。
本明細書において概して説明され、図示されるような本コンポーネントは、多種多様な異なる構成で配置および設計され得ることが容易に理解されるであろう。したがって、添付図面に表されるような、方法、装置、非一時的コンピュータ可読媒体、およびシステムのうちの少なくとも1つの実施形態の以下の詳細な説明は、特許請求される本願の範囲を限定することを意図するものではなく、単に選択された実施形態を表すものである。
本明細書を通して説明される本特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせまたは除去し得る。例えば、「例示的な実施形態」、「いくつかの実施形態」という語句、または他の同様の文言の使用は、本明細書を通して、実施形態に関連して説明される特定の特徴、構造、または特性が、少なくとも1つの実施形態において含まれ得ることを指す。したがって、「例示的な実施形態」、「いくつかの実施形態において」、「他の実施形態において」という語句、または他の同様の文言の出現は、本明細書を通して、必ずしもすべてが同じ実施形態のグループを指すわけではなく、説明される特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせまたは除去し得る。さらに、図において、要素間の任意の接続は、図示されている接続が一方向または双方向矢印であっても、一方向もしくは双方向通信またはその組み合わせを許容できる。また、図面に示された任意のデバイスは、別のデバイスであってもよい。例えば、モバイルデバイスが情報を送信していることが示されている場合、情報を送信するために有線デバイスが用いられてもよい。
また、「メッセージ」という用語が実施形態の説明において用いられている場合があるが、本願は、多くのタイプのネットワークおよびデータに適用され得る。さらに、例示的な実施形態において、特定のタイプの接続、メッセージ、およびシグナリングが示されている場合があるが、本願は、特定のタイプの接続、メッセージ、およびシグナリングに限定されるものではない。
例示的な実施形態は、ブロックチェーンネットワークにおけるプライバシーを保護した属性ベースのドキュメント共有を提供する、方法、システム、コンポーネント、非一時的コンピュータ可読媒体、デバイス、もしくはネットワーク、またはその組み合わせを提供する。
一実施形態において、本願は、互いに通信する複数のノードを含む分散ストレージシステムである非集中データベース(ブロックチェーンなど)を利用する。非集中データベースは、相互に信頼されていない当事者間の記録を維持することができる分散型台帳に似た、追加専用の不変データ構造を含む。信頼されていない当事者は、本明細書において、ピアまたはピアノードと呼ばれる。各ピアはデータベース記録のコピーを保持し、分散されたピア間でコンセンサスに達しない限り、どの単一のピアもデータベース記録を修正できない。例えば、ピアはコンセンサスプロトコルを実行して、ブロックチェーンストレージトランザクションを検証し、ストレージトランザクションをブロックにグループ化し、ブロックにわたってハッシュチェーンを構築し得る。この処理では、一貫性を保つために、必要に応じてストレージトランザクションを順序付けすることによって、台帳が形成される。
様々な実施形態において、許可制ブロックチェーンもしくは無許可制ブロックチェーン、またはその組み合わせを用いることができる。パブリックまたは無許可性ブロックチェーンでは、特定の識別情報なしに誰でも参加できる。パブリックブロックチェーンは、ネイティブ暗号通貨を関与させることができ、プルーフオブワークなどの様々なプロトコルに基づくコンセンサスを用いることができる。一方、許可制ブロックチェーンデータベースは、資金、品物、情報などを交換するビジネスなどの、共通の目的を共有するが、互いに十分には信頼していないエンティティのグループ内での安全なインタラクションを提供する。
様々な実施形態において、許可制ブロックチェーンもしくは無許可制ブロックチェーン、またはその組み合わせを用いることができる。パブリックまたは無許可性ブロックチェーンでは、特定の識別情報なしに誰でも参加できる。パブリックブロックチェーンは、ネイティブ暗号通貨を関与させることができ、プルーフオブワークなどの様々なプロトコルに基づくコンセンサスを用いることができる。一方、許可制ブロックチェーンデータベースは、資金、品物、情報などを交換するビジネスなどの、共通の目的を共有するが、互いに十分には信頼していないエンティティのグループ内での安全なインタラクションを提供する。
本願は、非集中型ストレージ方式に合わせて調整され、「スマートコントラクト」または「チェーンコード」と呼ばれる、任意のプログラマブルロジックを動作させるブロックチェーンを利用できる。場合によっては、システムチェーンコードと呼ばれる、管理機能およびパラメータに特化したチェーンコードが存在し得る。本願はさらに、ブロックチェーンデータベースの改ざん防止特性と、エンドースメントまたはエンドースメントポリシーと呼ばれる、ノード間の基礎となる合意とを活用する、信頼された分散アプリケーションであるスマートコントラクトを利用できる。このアプリケーションに関連するブロックチェーントランザクションは、ブロックチェーンにコミットされる前に「エンドース」でき、エンドースされていないトランザクションは無視される。エンドースメントポリシーにより、チェーンコードは、エンドースメントに必要なピアノードのセットの形式でトランザクションのエンドーサを指定できる。クライアントがトランザクションをエンドースメントポリシーで指定されたピアに送信すると、トランザクションが実行され、トランザクションが検証される。検証後、トランザクションは順序付けフェーズに入り、ここでは、コンセンサスプロトコルを使用して、ブロックにグループ化されたエンドースされたトランザクションの順序付けられたシーケンスが生成される。
本願は、ブロックチェーンシステムの通信エンティティであるノードを利用することができる。「ノード」は、同じ物理サーバ上で異なるタイプの複数のノードが動作できるという意味で、論理機能を実行し得る。ノードはトラストドメインにグループ化され、様々な方法でこれらを制御する論理エンティティに関連付けられる。ノードは、エンドーサ(例えば、ピア)にトランザクション呼び出しをサブミットし、順序付けサービス(例えば、順序付けノード)にトランザクション提案をブロードキャストするクライアントまたはサブミッティングクライアントノードのような様々なタイプを含み得る。
別のタイプのノードは、クライアントがサブミットしたトランザクションを受信し、トランザクションをコミットし、ブロックチェーントランザクションの台帳の状態およびコピーを保持することができるピアノードである。ピアは、エンドーサの役割を持つこともできるが、必須ではない。順序付けサービスノードまたはオーダラは、すべてのノードに対する通信サービスを実行するノードであり、トランザクションをコミットし、通常は制御およびセットアップ情報を含む初期ブロックチェーントランザクションの別名であるブロックチェーンのワールド状態を修正する際に、システム内のピアノードのそれぞれへのブロードキャストなどの配信保証を実施する。
別のタイプのノードは、クライアントがサブミットしたトランザクションを受信し、トランザクションをコミットし、ブロックチェーントランザクションの台帳の状態およびコピーを保持することができるピアノードである。ピアは、エンドーサの役割を持つこともできるが、必須ではない。順序付けサービスノードまたはオーダラは、すべてのノードに対する通信サービスを実行するノードであり、トランザクションをコミットし、通常は制御およびセットアップ情報を含む初期ブロックチェーントランザクションの別名であるブロックチェーンのワールド状態を修正する際に、システム内のピアノードのそれぞれへのブロードキャストなどの配信保証を実施する。
本願は、ブロックチェーンのすべての状態遷移のシーケンス化された改ざん耐性のある記録である台帳を利用できる。状態遷移は、参加者(例えば、クライアントノード、順序付けノード、エンドーサノード、ピアノードなど)によってサブミットされたチェーンコード呼び出し(例えば、トランザクション)によってもたらされ得る。各参加者(ピアノードなど)は、台帳のコピーを保持できる。トランザクションの結果、資産キー値対のセットが、作成、更新、削除などの1つまたは複数のオペランドとして台帳にコミットされ得る。台帳は、不変でシーケンス化された記録をブロックに格納するために用いられるブロックチェーン(チェーンとも呼ばれる)を含む。台帳は、ブロックチェーンの現在の状態を保持する状態データベースも含む。
本願は、ハッシュでリンクされたブロックとして構成されたトランザクションログであるチェーンを利用することができ、各ブロックは、Nが1以上であるN個のトランザクションのシーケンスを含む。ブロックヘッダは、ブロックのトランザクションのハッシュ、ならびに前のブロックのヘッダのハッシュを含む。このようにして、台帳上のすべてのトランザクションをシーケンス化し、暗号的にリンクし得る。したがって、ハッシュリンクを破壊せずに台帳データを改ざんすることは不可能である。直近で追加されたブロックチェーンブロックのハッシュは、その前に発生したチェーン上のすべてのトランザクションを表し、すべてのピアノードが一貫性のある信頼できる状態にあることを保証することを可能にする。チェーンはピアノードファイルシステム(例えば、ローカル、接続ストレージ、クラウドなど)に格納され、ブロックチェーンワークロードの追加専用の性質を効率的にサポートする。
不変台帳の現在の状態は、チェーントランザクションログに含まれるすべてのキーの最新の値を表す。現在の状態はチャネルに既知の最新のキー値を表すため、ワールド状態と呼ばれることもある。チェーンコード呼び出しは、台帳の現在の状態データに対してトランザクションを実行する。これらのチェーンコードインタラクションを効率的にするために、キーの最新の値を状態データベースに格納し得る。状態データベースは、単にチェーンのトランザクションログへのインデックス付きビューであり得、したがって、いつでもチェーンから再生成できる。状態データベースは、ピアノードの起動時、およびトランザクションが受け入れられる前に、自動的に回復され(または必要に応じて生成され)得る。
本明細書で説明され、図示された本解決策のいくつかの利点は、ブロックチェーンネットワークにおけるプライバシーを保護した属性ベースのドキュメント共有のための方法およびシステムを含む。例示的な実施形態は、不変性、デジタル署名、および唯一の真のソースであることなどのデータベースの特徴を拡張することによって、時間および信頼の問題を解決する。例示的な実施形態は、ブロックチェーンネットワークにおけるプライバシーを保護した属性ベースのドキュメント共有のための解決策を提供する。ブロックチェーンネットワークは、資産タイプと、スマートコントラクトに基づいて資産を管理するルールに基づいて、均質であり得る。
ブロックチェーンは、ブロックチェーンが中央ストレージではなく、むしろノードがストレージ内の記録に対する変更を共有し得る、非集中型で不変かつ安全なストレージである点で、従来のデータベースとは異なる。ブロックチェーンに固有の、ブロックチェーンの実施を助けるいくつかの性質としては、限定されるものではないが、不変台帳、スマートコントラクト、セキュリティ、プライバシー、非集中化、コンセンサス、エンドースメント、アクセシビリティなどが挙げられ、これらは本明細書においてさらに説明される。様々な態様によれば、ブロックチェーンネットワークにおけるプライバシーを保護した属性ベースのドキュメント共有のためのシステムは、不変アカウンタビリティ、セキュリティ、プライバシー、許可性非集中化、スマートコントラクトの利用可能性、ブロックチェーンに固有でユニークなエンドースメントおよびアクセシビリティのおかげで実施される。
特に、ブロックチェーン台帳データは不変であり、ブロックチェーンネットワークにおけるプライバシーを保護した属性ベースのドキュメント共有の効率的な方法を提供する。また、ブロックチェーンで暗号化を用いることで、セキュリティが提供され、信頼が構築される。スマートコントラクトは、資産の状態を管理し、ライフサイクルを完成させる。例示的なブロックチェーンは、許可制非集中型である。したがって、各エンドユーザは、アクセスするための自身の台帳コピーを有し得る。複数の組織(およびピア)が、ブロックチェーンネットワーク上にオンボードされ得る。主要な組織は、スマートコントラクトの実行結果、読み取りセットおよび書き込みセット、を検証するためのエンドーシングピアとして機能し得る。換言すれば、ブロックチェーン固有の特徴により、ブロックチェーンネットワークにおけるプライベートトランザクションの処理が効率的に実施される。
特に、ブロックチェーン台帳データは不変であり、ブロックチェーンネットワークにおけるプライバシーを保護した属性ベースのドキュメント共有の効率的な方法を提供する。また、ブロックチェーンで暗号化を用いることで、セキュリティが提供され、信頼が構築される。スマートコントラクトは、資産の状態を管理し、ライフサイクルを完成させる。例示的なブロックチェーンは、許可制非集中型である。したがって、各エンドユーザは、アクセスするための自身の台帳コピーを有し得る。複数の組織(およびピア)が、ブロックチェーンネットワーク上にオンボードされ得る。主要な組織は、スマートコントラクトの実行結果、読み取りセットおよび書き込みセット、を検証するためのエンドーシングピアとして機能し得る。換言すれば、ブロックチェーン固有の特徴により、ブロックチェーンネットワークにおけるプライベートトランザクションの処理が効率的に実施される。
例示的な実施形態の利点の1つは、ブロックチェーンネットワークにおいてプライベートトランザクションを処理する方法を実施することによって、コンピューティングシステムの機能性を向上させることである。本明細書で説明するブロックチェーンシステムを通して、コンピューティングシステム(またはコンピューティングシステム内のプロセッサ)は、分散型台帳、ピア、暗号化技術、MSP、イベント処理などのような機能へのアクセスを提供することにより、ブロックチェーンネットワークを利用するプライベートトランザクション処理のための機能を実行できる。また、ブロックチェーンは、ビジネスネットワークを生成し、参加のために任意のユーザまたは組織をオンボードさせることを可能にする。そのため、ブロックチェーンは単なるデータベースではない。ブロックチェーンは、ユーザとオンボード/オフボード組織とのビジネスネットワークを作成し、スマートコントラクトの形式でサービス処理を協力して実行する機能を備えている。
例示的な実施形態は、従来のデータベースに対して多くの利点を提供する。例えば、ブロックチェーンを通して、実施形態は、不変アカウンタビリティ、セキュリティ、プライバシー、許可制分散化、スマートコントラクトの利用可能性、ブロックチェーンに固有かつユニークなエンドースメントおよびアクセシビリティを提供する。
一方、従来のデータベースは、すべての当事者をビジネスネットワーク上に集めるわけではなく、信頼できる提携を生成せず、デジタル資産を効率的に格納しないため、例示的な実施形態を実施するために用いることができない。従来のデータベースは、改ざん防止ストレージを提供せず、格納されているデジタル資産を保護しない。したがって、ブロックチェーンネットワークを利用する本明細書で説明する提案された実施形態は、従来のデータベースでは実施することができない。
一方、従来のデータベースが例示的な実施形態を実施するために使用された場合、例示的な実施形態は、検索機能、セキュリティの欠如、およびトランザクション速度の遅さのような不必要な欠点に悩まされたであろう。したがって、例示的な実施形態は、プライバシーを保護する処理の技術/分野における問題に対する具体的な解決策を提供する。
例示的な実施形態は、ブロックチェーンのブロック構造内にデータが格納され得る方法も変更する。例えば、デジタル資産データは、データブロックの特定の部分内(例えば、ヘッダ、データセグメント、またはメタデータ内)に安全に格納し得る。デジタル資産データをブロックチェーンのデータブロック内に格納することによって、デジタル資産データは、ブロックのハッシュでリンクされたチェーンを通じて、不変ブロックチェーン台帳に追加され得る。いくつかの実施形態において、データブロックは、ブロックチェーンの従来のブロック構造内の資産と一緒に格納されないデジタル資産に関連する個人データを有することによって、従来のデータブロックと異なり得る。デジタル資産に関連する個人データを除去することによって、ブロックチェーンは不変アカウンタビリティおよびセキュリティに基づく匿名性の利点を提供できる。
続いて、ブロックチェーンドキュメントプロセッサは、2つのコンポーネントを有し得る。1つは、参加者に関するプライベート情報の安全な処理を管理するプライベートオフチェーンプロセッサであり、もう1つは、ネットワークのコンセンサスアルゴリズムを用いて、ブロックチェーンネットワークのすべての参加者と共有される共通情報の処理を管理する台帳プロセッサである。
例示的な実施形態によれば、他の組織とドキュメントを共有しようとする組織のそれぞれは、ブロックチェーンネットワークに接続されたブロックチェーンドキュメントプロセッサを用いる。ドキュメントプロセッサを用いて、組織は、ドキュメントテンプレートのリスト(アーカイブされたクラウドストレージ提案など)、台帳上でハッシュ形式で共有される各ドキュメントテンプレートの属性、ドキュメントのマッチングおよび共有のための異なるテンプレートからのキー属性の組み合わせ、およびパートナーシップマークルツリー(各パートナーシップマークルツリーは、パートナー組織の(例えば、提案エンティティの)識別子(ID)に基づいて構築し得る)を、台帳に設定し得る。
いくつかの実施形態において、すべてのドキュメント(例えば、ファイルなど)は、オフチェーンデータストア(例えば、クラウドサーバ、データセンタなど)に格納される。プレイメージ、属性ハッシュ、もしくはドキュメント識別子(ID)、またはその組み合わせのみが、ブロックチェーントランザクションの一部としてサブミットされる。例えば、本開示で提案されるように、ハッシュのプレイメージは、プライベートにトランザクションを検証し、他のシャードが情報を見ることを防止するブロックチェーン内の特定のシャードに格納される。
図1Aは、本開示の実施形態に係るブロックチェーンアーキテクチャ100を示す。いくつかの実施形態において、ブロックチェーンアーキテクチャ100は、特定のブロックチェーン要素、例えばブロックチェーンノード102のグループを含み得る。ブロックチェーンノード102は、1つまたは複数のブロックチェーンノード、例えばピア104~110(これら4つのノードは一例としてのみ示される)を含み得る。これらのノードは、ブロックチェーントランザクションの追加や検証処理(コンセンサス)など、多くの活動に参加する。ピア104~110のうちの1つまたは複数は、エンドースメントポリシーに基づいてトランザクションをエンドースもしくは推薦またはその両方を行い得、ブロックチェーンアーキテクチャ100内のすべてのブロックチェーンノード102に対して順序付けサービスを提供し得る。ブロックチェーンノードは、ブロックチェーン認証を開始し、ブロックチェーン層116に記憶されたブロックチェーン不変台帳への書き込みを試み得、そのコピーは、基礎となる物理的インフラストラクチャ114上に格納され得る。ブロックチェーン構成は、格納されたプログラム/アプリケーションコード120(例えば、チェーンコード、スマートコントラクトなど)にアクセスして実行するためにアプリケーションプログラミングインタフェース(API)122にリンクされている1つまたは複数のアプリケーション124を含み得、格納されたプログラム/アプリケーションコード120は、参加者が求めるカスタマイズされた構成に従って作成でき、それら自体の状態を保持し、それら自体の資産を制御し、外部情報を受信することができる。これをトランザクションとして展開し、分散型台帳への追加を通じて、すべてのブロックチェーンノード104~110にインストールすることができる。
ブロックチェーンベースまたはプラットフォーム112は、ブロックチェーンデータ、サービス(例えば、暗号トラストサービス、仮想実行環境など)、および新たなトランザクションを受信および格納し、データエントリへのアクセスを試みる監査人にアクセスを提供するのに用いられ得る、基礎となる物理的コンピュータインフラストラクチャの様々な層を含み得る。ブロックチェーン層116は、プログラムコードを処理し、物理的インフラストラクチャ114に関わるために必要な仮想実行環境へのアクセスを提供するインターフェースを公開し得る。暗号トラストサービス118は、資産交換トランザクションなどのトランザクションを確認し、情報をプライベートに保つのに用いられ得る。
図1Aのブロックチェーンアーキテクチャ100は、ブロックチェーンプラットフォーム112によって公開される1つまたは複数のインターフェースおよび提供されるサービスを介して、プログラム/アプリケーションコード120を処理および実行し得る。コード120は、ブロックチェーン資産を制御し得る。例えば、コード120は、データを格納および転送でき、条件または実行の対象となる他のコード要素を伴うスマートコントラクトおよび関連するチェーンコードの形式で、ピア104~110によって実行され得る。非限定的な例として、ストレージ空間の生成、ストレージ空間の予約、現在の提案への更新などを実行するためにスマートコントラクトを作成し得る。認証およびアクセス要件ならびに台帳の使用に関連するルールを識別するためにスマートコントラクト自体を用いることができる。例えば、ドキュメント属性情報126は、ブロックチェーン層116に含まれる1つまたは複数の処理エンティティ(例えば、仮想マシン)によって処理され得る。結果128は、複数のリンクされた共有ドキュメント(例えば、各リンクされた共有ドキュメントがスマートコントラクトの発行などを記録している)を含み得る。物理的インフラストラクチャ114は、本明細書で説明するデータまたは情報のいずれかを取得するために利用され得る。
スマートコントラクトは、ハイレベルアプリケーションおよびプログラミング言語を介して作成され、そして、ブロックチェーン内のブロックに書き込まれ得る。スマートコントラクトは、ブロックチェーン(例えば、ブロックチェーンピアの分散型ネットワーク)で登録、格納、もしくは複製、またはその組み合わせがされた実行可能なコードを含み得る。トランザクションは、スマートコントラクトに関連する条件が満たされることに応じて実行することができる、スマートコントラクトコードの実行である。スマートコントラクトの実行は、デジタルブロックチェーン台帳の状態に対する信頼された修正をトリガーし得る。スマートコントラクトの実行によって引き起こされたブロックチェーン台帳に対する修正は、1つまたは複数のコンセンサスプロトコルを通じて、ブロックチェーンピアの分散型ネットワーク全体にわたって自動で複製され得る。
スマートコントラクトは、キー値対のフォーマットでデータをブロックチェーンに書き込み得る。さらに、スマートコントラクトコードは、ブロックチェーンに格納された値を読み取り、これらをアプリケーション動作において用いることができる。スマートコントラクトコードは、様々なロジック動作の出力をブロックチェーンに書き込むことができる。コードは、仮想マシンや他のコンピューティングプラットフォームにおいて、一時的なデータ構造を作成するために用いられ得る。ブロックチェーンに書き込まれたデータは、公開することができる、もしくは暗号化してプライベートに維持することができる、またはその両方である。スマートコントラクトによって使用/生成された一時的なデータは、提供された実行環境によってメモリに保持され、そして、ブロックチェーンに必要なデータが識別されると削除される。
チェーンコードは、追加の特徴を伴って、スマートコントラクトのコード解釈を含み得る。本明細書で説明するように、チェーンコードは、コンピューティングネットワーク上に展開されたプログラムコードであり得、それは、コンセンサス処理中に一緒にチェーンバリデータによって実行され検証される。チェーンコードは、ハッシュを受信し、ブロックチェーンから、事前に格納された特徴エクストラクタを用いて作成されたデータテンプレートに関連するハッシュを取得する。ハッシュ識別子のハッシュと、格納された識別子テンプレートデータから作成されたハッシュがマッチする場合、チェーンコードは要求されたサービスに認証キーを送信する。チェーンコードは、暗号の詳細に関連するブロックチェーンデータに書き込み得る(例えば、これにより、トランザクションをブロックチェーンにアトミックにコミットする)。
図1Bは、例示的な実施形態に係る、ブロックチェーンのノード間のブロックチェーントランザクションフロー150の一例を示す。図1Bを参照すると、トランザクションフローは、アプリケーションクライアントノード160によってエンドーシングピアノード181に送信されるトランザクション提案191を含み得る(例えば、いくつかの実施形態において、トランザクション提案191は、トランザクション提案191に関連するハッシュのプレイメージが特定のシャード内の保存されたプレイメージとマッチすると判断したときに、エンドースメントのために送信され得る)。エンドーシングピア181は、クライアント署名を確認し、チェーンコード関数を実行してトランザクションを開始し得る。出力は、チェーンコードの結果、チェーンコードで読み取られたキー/値バージョンのセット(読み取りセット)、およびチェーンコードに書き込まれたキー/値のセット(書き込みセット)を含み得る。提案応答192は、承認された場合、エンドースメント署名と共にクライアント160に返送される。クライアント160は、エンドースメントをトランザクションペイロード193にアセンブルし、それを順序付けサービスノード184にブロードキャストする。そして、順序付けサービスノード184は、順序付けされたトランザクションをブロックとしてチャネル上のすべてのピア181~183に配信する。ブロックチェーンにコミットする前に、各ピア181~183はトランザクションを検証し得る。例えば、ピアは、エンドースメントポリシーをチェックして、指定されたピアの正しい割り当てが結果に署名し、トランザクションペイロード193に対して署名を認証したことを保証し得る。
再び図1Bを参照すると、クライアントノード160は、エンドーサであるピアノード181に要求を構築して送信することにより、トランザクション191を開始する。クライアント160は、利用可能なAPIを利用してトランザクション提案191を生成する、サポートされたソフトウェア開発キット(SDK)を活用するアプリケーションを含み得る。提案は、データを台帳から読み取むこと、もしくは書き込むこと(例えば、資産の新たなキー値対を書き込むこと)、またはその両方ができるように、チェーンコード関数を呼び出す要求である。SDKは、トランザクション提案191を適切に設計されたフォーマット(例えば、遠隔手続き呼び出し(RPC)上のプロトコルバッファ)にパッケージ化し、クライアントの暗号クレデンシャルを取得して、トランザクション提案191に対するユニークな署名を生成するシムとして機能し得る。
これに応じて、エンドーシングピアノード181は、(a)トランザクション提案191がうまく形成されていること、(b)トランザクションが、過去に既にサブミットされていないこと(リプレイ攻撃保護)、(c)署名が有効であること、(d)サブミッタ(この例では、クライアント160)がそのチャネル上で提案された動作を実行することを適切に認可されていることを確認し得る。エンドーシングピアノード181は、呼び出されたチェーンコード関数への引数としてトランザクション提案191の入力を受け取り得る。そして、チェーンコードは、現在の状態データベースに対して実行され、応答値、読み取りセット、および書き込みセットを含むトランザクション結果を生成する。しかしながら、この時点では台帳は更新されない。192において、値のセットは、エンドーシングピアノード181の署名とともに、アプリケーションが消費するペイロードを解析するクライアント160のSDKに提案応答192として返される。
これに応じて、クライアント160のアプリケーションは、エンドーシングピアの署名を検査/確認し、提案応答を比較して、提案応答が同じであるかどうかを判断する。チェーンコードが台帳のみを照会した場合、アプリケーションは照会応答を検査し、通常はトランザクションを順序付けノードサービス184にサブミットしない。クライアントアプリケーションが、台帳を更新するために、トランザクションを順序付けノードサービス184にサブミットしようとする場合、アプリケーションは、サブミット前に、指定されたエンドースメントポリシーが満たされているかどうか(例えば、トランザクションに必要な特定のシャードを有するすべてのピアノードがトランザクションをエンドースしたか)を判断する。ここで、クライアントは、トランザクションに対する複数の当事者のうちの1つのみを含み得る。この場合、各クライアントは独自のエンドーシングノードを有し得、各エンドーシングノードはトランザクションをエンドースする必要がある。アーキテクチャでは、アプリケーションが応答を検査しないことを選択する場合、またはエンドースされていないトランザクションを転送することを選択する場合でも、エンドースメントポリシーは依然としてピアによって実施され、コミット検証フェーズで確認される。
検査の成功後、ステップ193において、クライアント160は、エンドースメントをトランザクションにアセンブルし、トランザクション提案191およびトランザクションメッセージ内の応答を順序付けノード184にブロードキャストする。トランザクションは、読み取り/書き込みセット、エンドーシングピア署名、およびチャネルIDを含み得る。順序付けノード184は、その動作を実行するためにトランザクションの全内容を検査する必要はなく、その代わりに、順序付けノード184は、単にネットワーク内のすべてのチャネルからトランザクションを受信し、チャネルごとに時系列的にそれらを順序付けし、チャネルあたりのトランザクションのブロックを作成し得る。
トランザクションのブロックは、順序付けノード184からチャネル上のすべてのピアノード181~183に配信される。ブロック内のトランザクション194は、任意のエンドースメントポリシーが満たされていることを保証するために、また、トランザクション実行によって読み取りセットが生成されてから、読み取りセット変数に関して台帳状態に変化がないことを保証するために、検証される。ブロック内のトランザクションには、有効または無効のタグが付けられる。さらに、ステップ195において、各ピアノード181~183は、チャネルのチェーンにブロックを追加し、有効なトランザクションごとに、書き込みセットが現在の状態データベースにコミットされる。イベントが発行され、トランザクション(呼び出し)がチェーンに不変に追加されたことをクライアントアプリケーションに通知するとともに、トランザクションが有効化されたか無効化されたかを通知する。
ここで図2Aを参照すると、本開示の実施形態に係る、トランザクションをブロックチェーンネットワークにアトミックにコミットするための例示的なシステム200のブロック図が示されている。いくつかの実施形態において、システム200は、第1のハッシュ204および第2のハッシュ206を含むトランザクション202を含む。システム200はさらに、第1のシャード208と、第2のシャード210と、第3のシャード212とを含む。システムは引き続き、第1の検証214、第2の検証216、未知のプレイメージ218、アトミックコミット(例えば、コマンド、動作、モジュール、ノードなど)220、および無視(例えば、コマンド、動作、モジュール、ノードなど)222を含む。いくつかの実施形態において、トランザクション202は、システム200に送信され、検証され、ブロックチェーンネットワークによって/に対してコミットされる。トランザクション202は、それに関連するプレイメージ(例えば、図示せず)を有する第1のハッシュ204と第2のハッシュ206とに分割される。そして、ハッシュ204、206のプレイメージは、第1のハッシュ204または第2のハッシュ206に関連するいずれかのプレイメージのコピーを有するシャード208~210のすべて、1つ、または任意の組み合わせに送信される。
図示されるように、第1のシャード208は第1のハッシュ204に関連するプレイメージのコピーを含み、第2のシャード210は第2のハッシュ206に関連するプレイメージのコピーを含み、第3のシャード212はいずれのプレイメージのコピーも含まない。いくつかの実施形態において、第1のシャード208は、第1のシャード208を収容/利用するノード/ピアが第1の検証214を実行することを可能にし、第2のシャード210は、第2のシャード210を収容/利用するノード/ピアが第2の検証216を実行することを可能にする。いくつかの実施形態において、検証214、216の際に、アトミックコミット220が実行され、トランザクションがブロックチェーンネットワークにコミットされる。
いくつかの実施形態において、第3のシャード212を収容/利用するノード/ピアは、未知のプレイメージ218が第3のシャード212のノード/ピアに送信され、未知のプレイメージ218が無視222によって無視されたことを識別する。いくつかの実施形態において、アトミックコミット220および無視222は同時に実行される。システム200に図示されていることにより、ブロックチェーンネットワーク全体に情報を公開することなく、ブロックチェーンネットワークへのトランザクション(例えば、トランザクション202)のコミットが可能になることに留意されたい。
さらに、システム200(および図2B~Cのシステム230、250)に関して特定の仮定が用いられることに留意されたい。その仮定は以下に詳述される。
ネットワーク参加者上で実行されているすべての処理とネットワークノード間の通信は、部分的に同期している。より具体的には、通信ラウンドごとに、2つの正しいノード間で送信されるメッセージごとに、ラウンド数で測定されるレイテンシΔε[1、∞)の上限がある。
ハッシュ関数および公開鍵基盤(PKI)を、意図的に破ることはできない。本明細書で記述する提示されたネットワークセットアップは許可制であり、例えば、すべての参加者は既知であり、(Hyperledger)Fabricの現在の実施と同様の方法で割り当てられた役割を有することに留意されたい。そのため、例えば、トランスポート層セキュリティ(TLS)を用いて、通信がポイントツーポイントで認証されることがさらに想定される。
ネットワーク内の各ノード(Fabric内のピアに大まかに対応)は、少なくとも1つのプライバシーシャードに属している。すべてのノードは同じ台帳を複製するが、ワールド状態についての見解は同じプライバシーシャード内の他のノードとしか共有しない。すべてのローカルシャード状態を統合することにより、完全なワールド見解が作成される。したがって、すべてのノードおよびそれらのシャードメンバーシップは、ネットワーク内のすべての他のノードに既知であることがさらに想定される。しかしながら、ノードは、そのローカル状態または本明細書で説明するプロトコルで指定されていない情報を漏らさない。さらに、ノードの動作に問題がある可能性があるが、シャードは全体として正直であり、好奇心が強く、失敗しないと想定する。
クライアントは、台帳とインタラクトするエンティティである。これらはトランザクションを開始する役割を担っている。複数のクライアントが協力して一緒にトランザクションを作成できる。これらのクライアントのそれぞれは、ビザンチン欠陥である可能性がある。特に、関与するクライアントの一部またはすべてが、ネットワークの残りの部分に対して共謀する可能性がある。
資産とは、台帳上の物理的オブジェクトまたは仮想概念のいずれかを表すデータの集合である。本明細書で開示されているように、資産は第一級の市民であり、ブロックチェーンとのインタラクションの主要なポイントとなる。オブジェクト指向プログラミングのオブジェクトのように、それらをモデル化することで、このようなスマート資産は自身のデータを管理する。それらは自身の内部状態を追跡し、公開APIのみをインタラクションに利用可能にする。これにより、従来のスマートコントラクトは、1つまたは複数のスマート資産間のインタラクションに基づいて、資産定義およびビジネスロジックの2つの部分に分割される。それぞれを異なる分野の専門家が処理できるため、アプリケーションの開発、相互運用性、および資産の構成が容易になる。資産定義、例えばその内部動作や公開APIはプライバシーシャードにインストールされる。これにより、銀行が様々な金融商品の選択肢を提供するのと同様に、異なるシャードは異なるスマート資産定義を提供することができる。すべてのAPI呼び出しが、要求された状態遷移に必要なすべてのデータを含むデータ転送オブジェクト(DTO)を取り込むことがさらに想定される。すべてのDTOおよび資産自体は、インターフェースGetID()およびGetStakeholders()を実装し得る。前者は、台帳が以前に作成された資産を見つけられることを保証し、後者は、後述するように、ステークホルダポリシーを検証するために必要である。本明細書に開示される方法、システム、およびコンピュータプログラム製品は、資産に限定されるものではなく、反対に、トランザクション内容に依存しないことに留意されたい。
さらに、すべての資産には、定義されたステークホルダのセットが存在する必要があることが前提となっている。例えば、IOU資産は、ステークホルダとして借り手と貸し手を必要とする。資産定義をインストールする場合、各APIはステークホルダポリシーを登録し得る。クライアントがAPIを呼び出すたびに、それらは関数呼び出しのポリシーを満たす1つまたは複数のステークホルダ署名を提供する場合がある。例えば、共同銀行口座からの引き出し要求のポリシーでは、2人のステークホルダのうち1人の署名が必要になる場合がある。ステークホルダは資産の内部状態の一部であり、経時的に変化する可能性がある。
概念的な観点から、ステークホルダの存在は、本明細書に示すようなフォークのない台帳での二重支出を防ぐ。ステークホルダが資産の所有権を新しいステークホルダに譲渡するたびに、資産は古いステークホルダの署名を受け入れなくなる。悪意のあるステークホルダが同じ資産に対して2つの送金を作成しようとした場合、最終的にはグローバル台帳に完全に順序付けられて表示される。そして、最初のトランザクションがステークホルダを変更するため、2番目のトランザクションが検証されると、それは資産のステークホルダポリシーに違反し、破棄される。
トランザクションは同時状態遷移の意味単位であり、クライアントによって台帳にサブミットされる。これには、複数のプライバシーシャードと、異なる部分間の複雑な依存関係が関与する場合がある。例えば、トランザクションは3つの状態遷移で構成され得る。シャードAの第1の遷移とシャードBの第2の遷移は互いに依存してコミットし、それによってアトミックなインタラクションが保証される。第3の遷移にはシャードCが関与するが、他の2つの部分とは独立している。これにより、AとBがトランザクションを破棄し、Cがそれをコミットする状況がもたらされる可能性がある。これは、各シャードのローカル状態の正確性が保護され、トランザクションのアトミック部分も一貫しているため、許される動作である。シャードCの部分が本当にAとBから独立しているのであれば、それらが破棄されても問題ないはずである。そうでない場合、第3の部分は依存関係を受信する必要があり、アトミック性保証の対象となる。
順序付けサービスは、トランザクションのグローバルな順序を作成する役割を果たす。プライバシーシャードと同様に、順序付けサービスは、説明されているシナリオでは「ブラックボックス」と見なされる。そのため、順序付けサービスは正直に、しかし好奇心旺盛に動作する。さらに、クライアントからサブミットされたトランザクションの全体順序を作成し、この順序をブロックに分割して、ネットワーク内のすべてのプライバシーシャードにブロックを配布する。本明細書で説明し、以下により詳細に記述するように、どのシャードが単一のトランザクションに関与するかは、構造上、不明である。したがって、グローバル順序付けサービスが、関与するシャードにのみトランザクションを配布することは不可能である。
図2Aを再び参照すると、簡略化された例が説明されており、例えば、あるクライアント、ボブは、別のクライアント、アリスから100ドルを借りたいと思っている。この目的のために、彼らは、その資産定義がインストールされているプライバシーシャードsiouで、借りた金額を示すIOUスマート資産を作成する。これと引き換えに、アリスは、プライバシーシャードstokenに格納されている100ドル相当の既存資産をボブに送金する。これらの2つの動作は同じトランザクションに属し、アトミックに実行され得る。
別の例では、アリスとボブがCreateIOU呼び出しのDTOの内容を交渉する。前述したように、GetID()とGetStakeholders()は既に実装されているため、両者が公開鍵を追加してステークホルダとしてマークし、正しい値に合意することを徹底するだけでよい。この交渉は、シャードや順序付けサービスの関与なしに、完全に関与するクライアント間で行われる。
ボブとアリスの両方がIOU作成のDTOに満足すると、シャードsiouへの要求を準備する。この要求は、一意に指定された関数呼び出しの名前(この場合はCreateIOU)、対応するDTO、任意の要求ID、およびこの要求が依存するシャードのセットで構成される。要求IDは、この要求を受信したシャードが、同じ要求の悪意ある/偶然のリプレイと、偶然にも同じパラメータを持つ本当の2番目の要求とを区別できることを保証する。{stoken}を依存関係セットとして要求に追加することで、アリスとボブは、stokenがトランザクションの別の部分を検証する必要があることをsiouに伝えることができる。この場合、siouは、stokenもその変更をコミットする場合にのみ、変更をコミットする(これについては、以下で詳しく説明する)。
要求内の関数呼び出しのステークホルダポリシーを満たすクライアントのセットは、ステークホルダ公開鍵に属する同じ秘密鍵を使用して、要求の4つの部分のマークルルートハッシュに署名する必要がある。受信シャードは後に、これらの署名がステークホルダポリシーに準拠しているかどうかをチェックする。CreateIOUの場合、siouに登録されたポリシーでは、借り手と貸し手の両方が要求に署名する必要があるため、アリスとボブの両方が署名を追加する。これらの署名のために、どのクライアントも、必要な数のステークホルダによって確認されていない有効な要求を作成できない。
最後に、シャードに要求を送信するボブは、ネットワーク内での彼の役割に関連する署名をメッセージ(表2)に追加して、彼がシャードへの要求行うことを許可されていることを確認する。このような役割の一例としては、要求とトランザクションの作成を許可されている人、ライターがある。この最後の署名はメッセージの一部とは見なされず、確認後にシャードによって破棄されるため、要求の送信者に関する情報がネットワークの残りの部分に漏れることはない。要求IDにより、各クライアント署名は特定の要求に関連付けられ、悪意のあるクライアントは、要求全体をリプレイしないと署名を再利用できない。これは、シャードでの重複防止によって対処できる。
シャードsiouはボブから要求を受信すると、最初に要求の重複をチェックし、次にペイロードをアンパックし、必要な公開鍵を受信するためにDTOのGetStakeholders()インターフェースを用いてCreateIOUのステークホルダポリシーに対して署名を検証する。この検証が失敗した場合、シャードは単にエラーメッセージで応答する。それ以外の場合、次のステップはシャードの構成によって異なる。
いくつかの実施形態において、ブロックチェーンの実行エンジンはトランザクションフローから完全に切り離されているため、シャードは、事前順位付け、事後順位付けの実行、またはこれら2つの何らかの混合のいずれかを行うように構成し得る。シャードが事前順序付けの実行を行う場合、CreateIOUをシミュレートし、結果をローカルの一時ストアに格納する。シャードが事後順序付けの実行を行うように構成されている場合、結果のペイロードは空である。いずれにしても、次に、シャードは要求のマークルルートハッシュ(σroleなし)と結果ペイロードに署名する。これは、将来のトランザクションの部分的なプレイメージとして機能するため、シャードは、クライアントに応答を返す前に、これをローカルで格納し得る。そして、シャードは、プレイメージのハッシュとその署名のみを返す。クライアントは、要求の結果を知る必要がないことに留意されたい。応答内のハッシュは、単にトランザクションに対するプレイメージのアンカーとして機能する。
いくつかの実施形態において、上記のステップは、完全なトランザクションのすべての部分に対して繰り返され得る。したがって、アリスとボブは、どの資産をアリスがボブに送金するかについても合意しなければならない。彼らは、{siou}を依存関係セットとして、TransferTokenへの要求を作成する。このように、トークン転送は、siouがトランザクションのその部分もコミットした場合にのみ実行される。そして、アリスは要求をstokenに送信し、そこで特定の資産が保持される。その後、stokenは、TransferToken要求のDTOのGetIDインターフェースを用いて、データベースから資産をロードする。このように、要求のステークホルダと既存の資産の両方を一緒に検証することができる。この場合、資産の所有者も送金のステークホルダでなければならない。これをポリシーに変換すると、次のようになる。「1つの署名は、既存の資産の単一ステークホルダと送金の一方のステークホルダの両方にマッチしなければならない。もう1つの署名は、送金の他方のステークホルダにのみマッチしなければならない。」
一般に、異なるシャードへの複数の要求は同時に処理することができる。なぜなら、それらの間の唯一のリンクは依存関係セットであり、トランザクションがサブミットされた後の検証中にのみ使用されるからである。関与するシャードのいずれも、他のシャードへの要求が何であるかを知らないことに留意されたい。
いくつかの実施形態において、アリスおよびボブがシャードsiouおよびstokenからの応答を受信した後、それらを収集しハッシュ化してから、個々の要求に用いたのと同じ秘密鍵でマークルルートハッシュに署名する。以前の単一の要求と同様に、アリスは彼女のネットワーク上の役割に関連する署名を付け、トランザクション全体を順序付けサービスに送信する。
トランザクションは、そのトランザクションに関与するすべてのシャード応答のハッシュおよび関与するすべてのステークホルダのマークルルートの署名で構成されている。ここでは、ステークホルダとクライアントを区別する。なぜなら、単一のクライアントがシャードへの各要求に対して異なるキー対を用いる可能性があるからである。その場合、このクライアントは、関与するすべての秘密鍵を使用してトランザクションに署名する必要がある。クライアントは応答のプレイメージを正確に知る必要なく、マークルルートに署名するということを指摘するのは重要である。これにより、部分的に不透明なトランザクションが可能になる。
別の例では、3人のクライアント、アリス、ボブ、およびセリーズ間で循環的に互いに10ドルの借りがあるネッティングシナリオを取り上げる。アリスは、セリーズが彼女とのIOUを同時にキャンセルするのであれば、ボブとのIOUをキャンセルする意思がある。同様に、ボブとセリーズも同じことをする意思がある。しかしながら、どのクライアントも、自分たちのためにネッティングが機能すると確信するために、他の2人のクライアント間の合意を知る必要はない。したがって、彼らは、3つの部分を有するトランザクションを作成し、各クライアントはハッシュ化されたシャード応答のうち2つのみを知ることになる。アトミック性を保証するためには、ネッティング送金の3つの部分を単一のトランザクションに結合する必要がある。それでもクライアントはすべて、トランザクションの不透明な部分が自分の資産のいずれにも関与しないことを確信しているため、トランザクションのマークルルートに署名できる。そうでなければ、彼らは、トランザクション内での不透明なハッシュの作成につながる要求に署名しなければならなかったであろう。トランザクションは、同じシャードからの複数のハッシュ化された応答を暗黙的に含むことができることに留意されたい。
いくつかの実施形態において、順序付けサービスは新しいトランザクションを受信すると、クライアントの役割を確認し、その署名を破棄してトランザクションを新しいブロックに入れ、そのブロックはネットワーク全体に配布される。順序付けサービスは未知の公開鍵に関連するハッシュおよび署名しか参照しないため、クライアント(送信者を除く)の識別情報や、どのプライバシーシャードが関係しているかさえ、何も知ることができない。ただし、関与するシャードとクライアントの数を知ることはできる。この漏洩が問題である場合、クライアントは、前のステップのトランザクションに任意の数の偽(例えば、フォールス、フェイクなど)のハッシュおよびフェイク署名を追加して、本当の参加者数を不明瞭にすることができる。さらに、本当の送信者の識別情報を秘密にしておく必要がある場合は、プロキシクライアントを用いて、トランザクションを順序付けサービスにブロードキャストできる。
いくつかの実施形態において、IOUの場合、シャードsiouとstokenの両方が、受信する各新しいブロック内のすべてのトランザクションをスキャンする。これらは、トランザクションの各マークルリーフを、以前に作成したがまだ検証されていないプレイメージのハッシュと比較する。したがって、ある時点で、siouはCreateIOU要求への応答のハッシュを認識する。既知のハッシュが有効なトランザクションの一部であることをチェックするために、siouは、プレイメージのすべてのステークホルダが完全なトランザクションにも署名していることを確認する。そうでない場合、トランザクションは要求のステークホルダのうちの1人が知らずに作成された可能性がある。
siouが事前順序付けの実行を行うように設定されているとすると、シミュレートされた要求の結果を既に格納している。その結果は今では古くなっている可能性があるため、結果がまだ有効であることを確認する必要がある。代わりに、siouが事後順序付けの実行を行うように設定されているとすると、前述のように結果をシミュレートして有効性をチェックする。いずれの場合も、結果が無効であれば、トランザクションを破棄して先に進む。結果が有効であれば、トランザクションのその部分も有効であったかどうかをstokenに問い合わせる。この目的のために、問題のトランザクションのマークルルートをstokenに送信する。
その間、stokenも同じことを行っていたので、それぞれが他のシャードの問い合わせに対して成功または失敗のメッセージで応答する。シャードが失敗のメッセージを受信すると、たとえそれが有効であったとしても、ローカル結果を破棄する。そうでなければ、結果はローカル台帳の状態にコミットされる。これにより、IOUの作成とトークンの転送の両方が行われるか、どちらも行われないかのいずれかが保証される。
さらなる一例として、2つ以上のシャードがあるシナリオでは、コミットプロトコルがより複雑になる。4つのシャードs0、s1、s2、s3があるシナリオを想像されたい。各シャードsiは、2つのシャードsi-1 mod 4およびsi+1 mod 4の結果に依存する。s1が有効で、s0およびs2からの応答も有効である場合、先に進み、コミットする。しかし、他のシャードのいずれかがs3からの応答を取得する前にs1が問い合わせた場合である可能性もある。s3が無効な場合は、s0とs2の両方ともその結果を無効に変更する。したがって、s1はトランザクションのその部分にコミットすべきではなかった。つまり、関与するすべてのシャードにわたったアトミックコミット(AC)の変形を実施するべきであることを意味する。
さらに、あいまいなコーナーケースを扱う場合、トランザクションには同じシャードに対する複数の要求が含まれる可能性がある。このような場合、関連するハッシュがトランザクションに表示されるのと同じ順序で、コンピューティング結果の検証が実施される。この順序は、トランザクションの署名付きマークルルートによって固定されるため、すべての検証の結果が確定的である限り、結果は確定的である。次に、複数の要求を有するシャードsmultiが任意の依存するシャードsdepに対して与える応答が定義される。いくつかの事例では、トランザクション内のハッシュを特定のシャードに結びつけることができないため、sdepは要求を区別できない。さらなる事例では、smultiは、依存関係セットが必ずしも双方向の依存関係を生成するわけではないため、sdepがどの要求に対して応答が欲しいかを知らない。したがって、smultiはsdepに対して単一の回答しかできない。単一の応答が依存する検証のアトミック性を損なわない唯一の方法は、すべての要求結果をすべてか無かの方法で集約することである。したがって、どのシャードからの応答も、検証する要求の数とは関係なく、他のシャードによって照会されたトランザクションハッシュおよび単一の成功または失敗である。
一般に、確定性を保証するためには、トランザクションを順次検証する必要があることに留意されたい。しかし、シャードはトランザクションの依存関係を推論することができるかもしれない。特に、シャードが事前順序付けの実行を用いる場合、はっきりした状態にしか触れないトランザクションを見つけることができる。このような場合、検証するシャードは、別のシャードからの応答を待っている単一のトランザクションによって完全にブロックされることを回避するために、並行して独立したトランザクションを検証することができる。ただし、トランザクションの依存関係分析が不可能であっても、永久的なネットワークパーティションが存在しないという前提のもと、すべてのシャードが最終的に進行することが保証されている。トランザクションが順序付けサービスにサブミットされるまでに、関与するすべてのシャードは、それぞれ自身の関連するプレイメージを見ている。そうでなければ、シャードはクライアントの要求に対する応答に署名することができなかったはずである。シャードがトランザクション内のハッシュを認識しない場合、このハッシュは別のシャードに属しているか無効なハッシュであるため、いずれの場合も無視できる。したがって、シャードが特定のトランザクションに対してアトミックコミットプロトコルを開始すると、関与する各シャードは自身の開始値を確実に決定できる。コミットメントの遅延は、ブロックを受信した最新のシャードとアトミックコミットプロトコルのレイテンシによって決定される。すべてのシャードが正常に動作するという前提で、最終的にはすべてが決定される。
本開示は、トランザクションの完全なコミットメントまたは破棄を保証するものではなく、依存した部分のアトミック性のみを保証するものであることを強調しておく。トランザクションが2つの独立した部分から構成されているとする。そして、対応する各シャードは、その部分のステークホルダがトランザクション署名の完全なセットのサブセットであることを確認するとする。この場合、第1のシャードは、第2のシャードが署名を確認できたかどうかを判断できないし、判断してはならない。したがって、第1のシャードが変更をコミットし、第2のシャードがそれを却下することが可能である。しかしながら、定義上、両方の部分は意味的に独立しているため、これが台帳のグローバルな状態に対する矛盾や攻撃につながる可能性はない。
ここで図2Bを参照すると、本開示の実施形態に係る、水平カットトランザクションをブロックチェーンネットワークにアトミックにコミットするための例示的なシステム230のブロック図が示されている。システム230の様々な説明は、図2Aのシステム200に関して上述したシナリオまたは説明を利用してもよいことに留意されたい。
いくつかの実施形態において、システム230は、第1のハッシュ234および第2のハッシュ236に分割されるトランザクション232を含み得る。いくつかの実施形態において、ハッシュ234、236のそれぞれのプレイメージ(図示せず)は、第1のシャード238、第2のシャード240、または両方のシャード238、240のいずれかに送信し得る。図示したように、第1のシャード238は、送信された第1のハッシュ234のマッチする(同じ)プレイメージを既に保持していることを識別するが、これに限定されない。さらに、第2のシャード240は、第2のハッシュ236のマッチするプレイメージを既に保持していることを識別する。
いくつかの実施形態において、シャード238、240が、ハッシュ234、236のそれぞれのプレイメージを有することを識別すると、第1のシャード238は第1の識別(ID)タグ242を生成し、第2シャード240は第2のIDタグ244を生成する。いくつかの実施形態において、タグ242、244は、アトミックコミット252を介してブロックチェーンにコミットされる。いくつかの実施形態において、アトミックコミット252の前、後、または同時に、第1のIDタグ242が第1のユーザ246および第2のユーザ248に提示される。さらに、第2のIDタグ244は、第1のユーザ246および第3のユーザ250に提示される。
例えば、農家が販売業者に作物を配送するためのトランザクションは、2つのハッシュに分割し得る。1つのハッシュは、作物を販売業者に配送する輸送業者に関し、別のハッシュは、販売業者に配送される作物に関し得る。トランザクションが開始される前に、ブロックチェーン内の第1のシャードには輸送業者に関するハッシュのプレイメージが送信され、ブロックチェーン内の第2のシャードには作物に関するハッシュのプレイメージが送信される。
農家が販売業者に対してトランザクションを開始すると、両方のハッシュのプレイメージが各シャードに送信され、マッチするプレイメージを有するそれぞれのシャードが、農家および輸送業者または販売業者のいずれかに対して透過的な識別情報を生成する。すなわち、農家は、用いられている輸送業者と配送されている作物の両方を知っているが、販売業者は配送されている作物しか知らない(販売業者は使用されている運送業者を知る必要がないため)。
ここで図2Cを参照すると、本開示の実施形態に係る、垂直カットトランザクションをブロックチェーンネットワークにアトミックにコミットするための例示的なシステム260のブロック図が示されている。システム260の様々な説明は、図2Aのシステム200に関して上述したシナリオまたは説明を利用してもよいことに留意されたい。
いくつかの実施形態において、システム260は、第1のハッシュ264および第2のハッシュ266に分割されるトランザクション262を含み得る。いくつかの実施形態において、ハッシュ264、266のそれぞれのプレイメージ(図示せず)は、第1のシャード268、第2のシャード270、または両方のシャード268、270のいずれかに送信し得る。図示したように、第1のシャード268は、送信された第1のハッシュ264のマッチする(同じ)プレイメージを既に保持していることを識別するが、これに限定されない。さらに、第2のシャード270は、第2のハッシュ266のマッチするプレイメージを既に保持していることを識別する。
いくつかの実施形態において、第1のシャード268が、第1のハッシュ264に関するマッチするプレイメージを有することを識別すると、第1のシャード268は第1のタスク272を実行する。さらに、第2のシャード270が第2のハッシュ266に関するマッチするプレイメージを有することを識別すると、第2のシャード270は第2のタスク274を実行する。いくつかの実施形態において、第1のタスク272および第2のタスク274が実行されると、アトミックコミット276が実行され得る。
例えば、ボブがアリスから10万ドルで家を購入するトランザクションが、ブロックチェーンネットワークにサブミットされ得る。トランザクションは、2つのハッシュに分割し得、第1のハッシュは、アリスからボブへの家の所有権の譲渡に関し、第2のハッシュは、ボブからアリスへの10万ドルの送金に関する。いくつかの実施形態において、トランザクションが開始される前に、各ハッシュのそれぞれのプレイメージが、第1のシャードおよび第2のシャードにそれぞれ送信され得る。遷移が開始されると、両方のプレイメージが第1のシャードと第2のシャードの両方に送信され、各シャードは、マッチするそれぞれのプレイメージを有することを識別する。いくつかの実施形態において、第1のシャードは、第1のハッシュに関連するプレイメージを含み、第1のシャードは、家の所有者をアリスからボブに譲渡するタスクを実行し、さらに、第2のシャードは、第2のハッシュに関連するプレイメージを含み、第2のシャードは、10万ドルをボブからアリスに送金するタスクを実行する。
ここで図3Aを参照すると、本開示の実施形態に係る、ブロックチェーンネットワークにおけるプライベートトランザクションを処理するための例示的な方法300のフローチャートが示されている。いくつかの実施形態において、方法300は、ブロックチェーンネットワーク内のプロセッサ(例えば、ノード、コンピュータシステムなど)によって実行され得る。
いくつかの実施形態において、方法300は、プロセッサがトランザクションに関連する要求を生成する動作302で開始する。方法300は、プロセッサが要求に関連するアンカーを収集する動作304に進む。いくつかの実施形態において、方法300は、プロセッサがトランザクションを2つ以上のハッシュの集合に遷移する動作306に進む。方法300は、プロセッサがトランザクションを順序付けサービスにサブミットする動作308に進む。いくつかの実施形態において、方法300は終了する。
以下に、方法300によって実施することができるが、図3Aには示されていないさらなる動作をより十分に記述する。したがって、いくつかの実施形態において、要求は、ブロックチェーン台帳を修正する処理可能なアクションであり得る。いくつかの実施形態において、方法300は、プロセッサが、(プロセッサ内/上に収容され得る)ブロックチェーンネットワーク内の2つ以上のシャードによってトランザクションを検証する動作にさらに進む。トランザクションは、2つ以上のシャードによってローカルで(例えば、ブロックチェーン内の他のシャードによる可視性なしに)検証され得る。
いくつかの実施形態において、2つ以上のシャードは、方法300が、プロセッサに、2つ以上のシャードのそれぞれによって、2つ以上のハッシュに関連するそれぞれの既知のプレイメージを受信させることにさらに進むことによって、トランザクションを検証する。プロセッサは、2つ以上のシャードのそれぞれによって、それぞれの既知のプレイメージを2つ以上のハッシュにマッチさせる。
いくつかの実施形態において、方法300は、プロセッサが2つ以上の(プロセッサ内/上の)シャードによって要求のアトミックコミットを実行する動作にさらに進む。いくつかの実施形態において、アトミックコミットは、それぞれの既知のプレイメージが他の2つ以上のシャードのいずれとも共有されることなく実行され得る。
ここで図3Bを参照すると、本開示の実施形態に係る、ブロックチェーンネットワークにおけるプライベートトランザクションを処理するためのさらなる例示的な方法330のフローチャートが示されている。いくつかの実施形態において、方法330は、ブロックチェーンネットワーク内のプロセッサ(例えば、ノード、コンピュータシステムなど)によって実行され得る。
いくつかの実施形態において、方法330は、プロセッサがトランザクションに関連する要求を受信する動作332で開始する。方法330は、プロセッサが第1のハッシュに関連する第1のプレイメージが第1のシャードに既知であることを識別する動作334に進む。方法330は、プロセッサがトランザクションに関連する第1の識別タグを生成する動作336に進む。いくつかの実施形態において、方法330は終了する。
以下に、方法330によって実施することができるが、図3Bには示されていないさらなる動作をより十分に記述する。したがって、いくつかの実施形態において、方法330は、プロセッサが第2のハッシュに関連する第2のプレイメージが第2のシャードに既知であることを識別する動作にさらに進む。プロセッサは、トランザクションに関連する第2の識別タグを生成する。
いくつかの実施形態において、第1の識別タグは第1のユーザおよび第2のユーザに対して表示され、第2の識別タグは第1のユーザおよび第3のユーザに対して表示される。いくつかの実施形態において、方法330は、プロセッサがトランザクションを検証する動作にさらに進む。そして、プロセッサはトランザクションをブロックチェーンネットワークにアトミックにコミットする。
ここで図3Cを参照すると、本開示の実施形態に係る、ブロックチェーンネットワークにおけるプライベートトランザクションを処理するための例示的な方法のフローチャートが示されている。いくつかの実施形態において、方法350は、ブロックチェーンネットワーク内のプロセッサ(例えば、ノード、コンピュータシステムなど)によって実行され得る。
いくつかの実施形態において、方法350は、プロセッサがトランザクションに関連する要求を受信する動作352で開始する。方法350は、プロセッサが第1のシャードに第1のタスクを割り当てる動作354に進む。方法350は、プロセッサが第1のハッシュに関連する第1のプレイメージが第1のシャードに既知であることを識別する動作356に進む。方法350は、プロセッサが第1のタスクを実行する動作358に進む。いくつかの実施形態において、方法350は終了する。
以下に、方法350によって実施することができるが、図3Cには示されていないさらなる動作をより十分に記述する。したがって、いくつかの実施形態において、方法350は、プロセッサが第2のシャードに第2のタスクを割り当てる動作にさらに進む。プロセッサは、第2のハッシュに関連する第2のプレイメージが第2のシャードに既知であることを識別する。プロセッサは、第2のタスクを実行する。いくつかの実施形態において、第1のタスクおよび第2のタスクは、トランザクションのアトミックコミットの一部として実行される。
本開示はクラウドコンピューティングについての詳細な説明を含むが、本明細書で記載される教示内容の実施は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本開示の実施形態は、現在既知の、または今後開発される任意の他のタイプのコンピューティング環境と併せて実施することができる。
クラウドコンピューティングは、管理作業またはサービスのプロバイダとのインタラクションを最小限に抑えながら迅速にプロビジョニングおよびリリースできる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするためのサービス提供モデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含み得る。
特性は以下のとおりである。
オンデマンドセルフサービス:クラウドの利用者は、サービスのプロバイダとの人的なインタラクションを必要とすることなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
幅広いネットワークアクセス:機能はネットワークを介して利用可能であり、異種混合のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準メカニズムを通じてアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを用いて複数の利用者にサービスを提供するためにプールされ、様々な物理リソースと仮想リソースが需要に応じて動的に割り当てられ、再割り当てされる。利用者は一般に、提供されたリソースの正確な部分を制御しない、または知らないが、より高い抽象化レベル(例えば、国、州、またはデータセンター)で部分を指定することができる場合がある点で、部分独立の感覚がある。
迅速な弾力性:機能を迅速かつ弾力的にプロビジョニングでき、場合によっては、自動的にプロビジョニングして迅速にスケールアウトし、迅速にリリースして迅速にスケールインすることもできる。利用者にとって、プロビジョニングに利用可能な機能は多くの場合無制限に見え、いつでも任意の数量を購入できる。
測定サービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザーアカウント)に適した何らかの抽象化レベルで測定機能を活用することにより、リソースの使用を自動的に制御および最適化する。リソースの使用状況を監視、制御、およびレポートすることができ、利用されるサービスのプロバイダと利用者の両方に透明性を提供する。
サービスモデルは以下のとおりである。
サービスとしてのソフトウェア(SaaS):利用者に提供される能力は、クラウドインフラストラクチャ上で動作しているプロバイダのアプリケーションを用いることである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインタフェースを通じて、様々なクライアントデバイスからアクセス可能である。利用者は、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または個々のアプリケーション機能を含む基礎となるクラウドインフラストラクチャを管理も制御もしないが、限定されたユーザ固有のアプリケーション構成設定は例外となる場合がある。
サービスとしてのプラットフォーム(PaaS):利用者に提供される機能は、プロバイダによりサポートされるプログラミング言語およびツールを用いて作成される、利用者が作成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。利用者は、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基礎となるクラウドインフラストラクチャを管理も制御もしないが、展開されたアプリケーションや、場合によっては環境設定をホストするアプリケーションを制御する。
サービスとしてのインフラストラクチャ(IaaS):利用者に提供される機能は、処理、ストレージ、ネットワーク、およびその他の基本的なコンピューティングリソースをプロビジョニングすることであり、そこで利用者は、オペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアを展開して動作させることができる。利用者は、基礎となるクラウドインフラストラクチャを管理も制御もしないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御し、場合によっては選ばれたネットワーキングコンポーネント(例えば、ホストファイアウォール)を限定的に制御する。
展開モデルは以下のとおりである。
プライベートクラウド:クラウドインフラストラクチャは、一組織のためだけに運用される。これは、組織または第三者によって管理され得、オンプレミスまたはオフプレミスで存在し得る。
コミュニティクラウド:クラウドインフラストラクチャはいくつかの組織で共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、コンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。これは、組織または第三者によって管理され得、オンプレミスまたはオフプレミスで存在し得る。
パブリッククラウド:クラウドインフラストラクチャは、一般大衆または大きな業界団体に利用可能とされ、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の混合であり、これらのクラウドは固有のエンティティのままであるが、データとアプリケーションの移植性を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷分散のためのクラウドバースト)によって一緒に結びつけられている。
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、およびセマンティック相互運用性を重視したサービス指向型である。クラウドコンピューティングの中心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
図4Aには、クラウドコンピューティング環境410が示されている。図示されているように、クラウドコンピューティング環境410は、1つまたは複数のクラウドコンピューティングノード400を含み、例えば、パーソナルデジタルアシスタント(PDA)や携帯電話400A、デスクトップコンピュータ400B、ラップトップコンピュータ400C、もしくは自動車コンピュータシステム400N、またはその組み合わせなどのクラウド利用者が用いるローカルコンピューティングデバイスがそのノードと通信し得る。ノード400は、互いに通信し得る。それらは、本明細書で上述されたようなプライベートクラウド、コミュニティクラウド、パブリッククラウド、もしくはハイブリッドクラウド、またはこれらの組み合わせなどの、1つまたは複数のネットワーク内で物理的にまたは仮想的にグループ化され得る(図示せず)。
これにより、クラウドコンピューティング環境410は、クラウド利用者がローカルコンピューティングデバイス上のリソースを保持する必要のないサービスとして、インフラストラクチャ、プラットフォーム、もしくはソフトウェア、またはその組み合わせを提供することが可能となる。図4Aに示されているコンピューティングデバイス400A~Nのタイプは、例示のみを意図したものであり、コンピューティングノード400およびクラウドコンピューティング環境410は、任意のタイプのネットワークもしくはネットワークアドレス指定可能接続またはその両方を介して(例えば、ウェブブラウザを用いて)、任意のタイプのコンピュータ化されたデバイスと通信できることが理解される。
図4Bには、クラウドコンピューティング環境410(図4A)によって提供される機能抽象化層のセットが示されている。図4Bに示されたコンポーネント、層、および機能は、単に例示を意図したものであり、本開示の実施形態はこれに限定されないことを予め理解されるべきである。以下に示すように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層415は、ハードウェアおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム402、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ404、サーバ406、ブレードサーバ408、ストレージデバイス411、ネットワーク、ならびにネットワークおよびネットワーキングコンポーネント412が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア414およびデータベースソフトウェア416を含む。
仮想化層420は、仮想エンティティの以下の例が提供され得る抽象化層を提供する。例としては、仮想サーバ422、仮想ストレージ424、仮想プライベートネットワークを含む仮想ネットワーク426、仮想アプリケーションおよびオペレーティングシステム428、ならびに仮想クライアント430が挙げられる。
一例では、管理層440は、以下に説明する機能を提供し得る。リソースプロビジョニング442は、クラウドコンピューティング環境内でタスクを実行するのに利用されるコンピューティングリソースおよび他のリソースの動的な調達を提供する。測定および価格設定444は、クラウドコンピューティング環境内でリソースが利用されるときのコスト追跡、およびこれらのリソースの消費に対する伝票または請求書を提供する。一例では、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウドの利用者とタスクの識別情報確認、ならびにデータおよび他のリソースの保護を提供する。ユーザポータル446は、利用者およびシステム管理者に対してクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理448は、必要なサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を提供する。サービスレベル合意書(SLA)の計画および履行450は、SLAに従って将来の必要性が予想されるクラウドコンピューティングリソースの事前準備および調達を提供する。
ワークロード層460は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例には、マッピングおよびナビゲーション462、ソフトウェア開発およびライフサイクル管理464、バーチャルクラスルームでの教育配信466、データ分析処理468、トランザクション処理470、およびアトミックコミット472が含まれる。
図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)を含む電子回路は、本開示の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行し得る。
本開示の態様は、本開示の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して、本明細書で説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実施することができることは理解されよう。
これらのコンピュータ可読プログラム命令は、マシンを作成するためにコンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供され得、それにより、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令は、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実施するための手段を生成する。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置、もしくは他のデバイス、またはその組み合わせに特定の方法で機能するように指示することができるコンピュータ可読記憶媒体に格納され得、それにより、命令を格納したコンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作の態様を実施する命令を含む製品を含む。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイスにロードされて、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実行させて、コンピュータ実施処理を生成し得、それにより、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令は、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実施する。
図中のフローチャートもおよびブロック図は、本開示の様々な実施形態に係るシステム、方法、およびコンピュータプログラム製品の可能な実施のアーキテクチャ、機能、および動作を例示する。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表し得る。いくつかの代替的な実施において、ブロックに記載された機能は、図に記載された順序以外で発生し得る。例えば、連続して示されている2つのブロックが、実際には、1つのステップとして実現されてもよく、同時に、実質的に同時に、部分的にもしくは全体的に時間重複する方式で実行されてもよく、または、ブロックは、場合によっては、関与する機能に依存して逆の順序で実行されてもよい。また、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組合せは、指定された機能を実行する、または特定の目的のハードウェアおよびコンピュータ命令の組合せを行動または実行する特殊目的ハードウェアベースシステムによって実施することができることに留意されたい。
本開示の様々な実施形態の説明は、例示の目的で提示されてきたが、網羅的であること、または開示された実施形態に限定されることを意図していない。説明された実施形態の範囲および精神から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で用いられる術語は、実施形態の原理、市場で見出される技術に対する実際の適用または技術的改善を最もよく説明するため、または他の当業者が本明細書に開示される実施形態を理解できるようにするために選択された。
本開示は、具体的な実施形態に関して説明されているが、当業者には、その変更および修正が明らかとなることが予想される。したがって、以下の特許請求の範囲は、本開示の真の趣旨および範囲内にあるようなすべてのそのような変更および修正を包含すると解釈されることが意図される。
Claims (25)
- ブロックチェーンネットワークにおいてプライベートトランザクションを処理するための方法であって、
トランザクションに関連する要求を生成する段階と、
前記要求に関連するアンカーを収集する段階と、
前記トランザクションを2つ以上のハッシュの集合に遷移する段階と、
順序付けサービスに前記トランザクションをサブミットする段階と
を備える方法。 - 前記要求は、ブロックチェーン台帳を修正する処理可能なアクションである、請求項1に記載の方法。
- 前記ブロックチェーンネットワーク内の2つ以上のシャードによって前記トランザクションを検証する段階をさらに備え、前記トランザクションは前記2つ以上のシャードによってローカルで検証される、請求項1または2に記載の方法。
- 前記2つ以上のシャードが前記トランザクションを検証する段階は、
前記2つ以上のシャードのそれぞれによって、前記2つ以上のハッシュに関連するそれぞれの既知のプレイメージを受信する段階と、
前記2つ以上のシャードのそれぞれによって、前記それぞれの既知のプレイメージを前記2つ以上のハッシュにマッチする段階と
を含む、請求項3に記載の方法。 - 前記2つ以上のシャードによって、前記要求のアトミックコミットを実行することをさらに備える、請求項4に記載の方法。
- 前記アトミックコミットは、前記それぞれの既知のプレイメージのいずれもが他の前記2つ以上のシャードのいずれとも共有されることなく実行される、請求項5に記載の方法。
- ブロックチェーンネットワークにおいてプライベートトランザクションを処理するためのシステムであって、
メモリと、
前記メモリと通信するプロセッサであって、
トランザクションに関連する要求を生成することと、
前記要求に関連するアンカーを収集することと、
前記トランザクションを2つ以上のハッシュの集合に遷移することと、
順序付けサービスに前記トランザクションをサブミットすることと
を含む動作を実行するように構成されたプロセッサと
を備えるシステム。 - 前記要求は、ブロックチェーン台帳を修正する処理可能なアクションである、請求項7に記載のシステム。
- 前記動作は
前記ブロックチェーンネットワーク内の2つ以上のシャードによって前記トランザクションを検証することをさらに含み、前記トランザクションは前記2つ以上のシャードによってローカルで検証される、請求項7または8に記載のシステム。 - 前記2つ以上のシャードが前記トランザクションを検証することは、
前記2つ以上のシャードのそれぞれによって、前記2つ以上のハッシュに関連するそれぞれの既知のプレイメージを受信することと、
前記2つ以上のシャードのそれぞれによって、前記それぞれの既知のプレイメージを前記2つ以上のハッシュにマッチすることと
を含む、請求項9に記載のシステム。 - 前記動作は
前記2つ以上のシャードによって、前記要求にアトミックコミットを実行することをさらに含む、請求項10に記載のシステム。 - 前記アトミックコミットは、前記それぞれの既知のプレイメージのいずれもが他の前記2つ以上のシャードのいずれとも共有されることなく実行される、請求項11に記載のシステム。
- ブロックチェーンネットワークにおけるプライベートトランザクションを処理するためのコンピュータプログラムであって、プロセッサに、
トランザクションに関連する要求を生成する手順と、
前記要求に関連するアンカーを収集する手順と、
前記トランザクションを2つ以上のハッシュの集合に遷移する手順と、
順序付けサービスに前記トランザクションをサブミットする手順と
を実行させるためのコンピュータプログラム。 - 前記要求は、ブロックチェーン台帳を修正する処理可能なアクションである、請求項13に記載のコンピュータプログラム。
- 前記プロセッサに、
前記ブロックチェーンネットワーク内の2つ以上のシャードによって前記トランザクションを検証する手順をさらに実行させ、前記トランザクションは前記2つ以上のシャードによってローカルで検証される、請求項13または14に記載のコンピュータプログラム。 - 前記2つ以上のシャードが前記トランザクションを検証する手順は、
前記2つ以上のシャードのそれぞれによって、前記2つ以上のハッシュに関連するそれぞれの既知のプレイメージを受信する手順と、
前記2つ以上のシャードのそれぞれによって、前記それぞれの既知のプレイメージを前記2つ以上のハッシュにマッチする手順と
を含む、請求項15に記載のコンピュータプログラム。 - 前記プロセッサに、
前記2つ以上のシャードによって、前記要求にアトミックコミットを実行する手順をさらに実行させる、請求項16に記載のコンピュータプログラム。 - 前記アトミックコミットは、前記それぞれの既知のプレイメージのいずれもが他の前記2つ以上のシャードのいずれとも共有されることなく実行される、請求項17に記載のコンピュータプログラム。
- ブロックチェーンネットワークにおいてプライベートトランザクションを処理するための方法であって、
トランザクションに関連する要求を受信する段階と、
第1のハッシュに関連する第1のプレイメージが第1のシャードに既知であることを識別する段階と、
前記トランザクションに関連する第1の識別タグを生成する段階と
を備える方法。 - 第2のハッシュに関連する第2のプレイメージが第2のシャードに既知であることを識別する段階と、
前記トランザクションに関連する第2の識別タグを生成する段階と
をさらに備える、請求項19に記載の方法。 - 前記第1の識別タグは第1のユーザおよび第2のユーザに対して表示され、前記第2の識別タグは前記第1のユーザおよび第3のユーザに対して表示される、請求項20に記載の方法。
- 前記トランザクションを検証する段階と、
前記トランザクションを前記ブロックチェーンネットワークにアトミックにコミットする段階と
をさらに備える、請求項21に記載の方法。 - ブロックチェーンネットワークにおいてプライベートトランザクションを処理するための方法であって、
トランザクションに関連する要求を受信する段階と、
第1のシャードに第1のタスクを割り当てる段階と、
第1のハッシュに関連する第1のプレイメージが前記第1のシャードに既知であることを識別する段階と、
前記第1のタスクを実行する段階と
を備える方法。 - 第2のシャードに第2のタスクを割り当てる段階と、
第2のハッシュに関連する第2のプレイメージが第2のシャードに既知であることを識別する段階と、
前記第2のタスクを実行する段階と
をさらに備える、請求項23に記載の方法。 - 前記第1のタスクおよび前記第2のタスクは、前記トランザクションのアトミックコミットの一部として実行される、請求項24に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/920,844 US11853291B2 (en) | 2020-07-06 | 2020-07-06 | Privacy preserving architecture for permissioned blockchains |
US16/920,844 | 2020-07-06 | ||
PCT/IB2021/055197 WO2022008996A1 (en) | 2020-07-06 | 2021-06-14 | Privacy preserving architecture for permissioned blockchains |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023532959A true JP2023532959A (ja) | 2023-08-01 |
Family
ID=79166984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023500056A Pending JP2023532959A (ja) | 2020-07-06 | 2021-06-14 | 許可制ブロックチェーンのためのプライバシー保護アーキテクチャ |
Country Status (6)
Country | Link |
---|---|
US (1) | US11853291B2 (ja) |
JP (1) | JP2023532959A (ja) |
CN (1) | CN115769241A (ja) |
DE (1) | DE112021002797T5 (ja) |
GB (1) | GB2612243A (ja) |
WO (1) | WO2022008996A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3642774B1 (en) * | 2017-06-20 | 2023-05-10 | nChain Licensing AG | System and method of multi-round token distribution using a blockchain network |
US10887090B2 (en) * | 2017-09-22 | 2021-01-05 | Nec Corporation | Scalable byzantine fault-tolerant protocol with partial tee support |
US11853291B2 (en) | 2020-07-06 | 2023-12-26 | International Business Machines Corporation | Privacy preserving architecture for permissioned blockchains |
US11914616B1 (en) | 2022-12-16 | 2024-02-27 | Alchemy Insights, Inc. | Systems and methods for creating a consistent blockchain including block commitment determinations |
US11769143B1 (en) | 2022-12-22 | 2023-09-26 | Alchemy Insights, Inc. | System and method for high performance providing fresh NFT metadata |
US11728976B1 (en) | 2022-12-22 | 2023-08-15 | Alchemy Insights, Inc. | Systems and methods for efficiently serving blockchain requests using an optimized cache |
US11750711B1 (en) | 2022-12-22 | 2023-09-05 | Alchemy Insights, Inc. | Systems and methods for adaptively rate limiting client service requests at a blockchain service provider platform |
US11816021B1 (en) | 2022-12-22 | 2023-11-14 | Alchemy Insights, Inc. | System and method for intelligent testing of blockchain applications using a shadow system |
US11811955B1 (en) * | 2022-12-23 | 2023-11-07 | Alchemy Insights, Inc. | Systems and methods for improving reliability in blockchain networks using sharding |
US11941053B1 (en) | 2023-03-09 | 2024-03-26 | Bank Of America Corporation | Secure data interactions performed by an internet of things (IoT) device |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408584B (zh) | 2014-12-18 | 2017-11-03 | 中国农业银行股份有限公司 | 一种交易关联性的分析方法及*** |
US10269012B2 (en) * | 2015-11-06 | 2019-04-23 | Swfl, Inc. | Systems and methods for secure and private communications |
AU2017216289A1 (en) * | 2016-02-04 | 2018-09-27 | Nasdaq Technology Ab | Systems and methods for storing and sharing transactional data using distributed computer systems |
US10747744B2 (en) * | 2016-10-10 | 2020-08-18 | AlphaPoint | Distributed ledger comprising snapshots |
US11146535B2 (en) | 2016-10-12 | 2021-10-12 | Bank Of America Corporation | System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network |
US11281805B2 (en) * | 2016-12-22 | 2022-03-22 | Itext Group Nv | Distributed blockchain-based method for saving the location of a file |
CN107103054B (zh) | 2017-04-12 | 2019-03-26 | 北京航空航天大学 | 一种私有区块链的智能合约异步执行存储***与实现方法 |
US10102265B1 (en) * | 2017-04-12 | 2018-10-16 | Vijay K. Madisetti | Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing |
US10740733B2 (en) * | 2017-05-25 | 2020-08-11 | Oracle International Corporaton | Sharded permissioned distributed ledgers |
WO2019207503A1 (en) | 2018-04-27 | 2019-10-31 | nChain Holdings Limited | Partitioning a blockchain network |
WO2020010159A1 (en) * | 2018-07-02 | 2020-01-09 | A7 Core, Inc. | Enterprise consumer safety system |
WO2020033216A2 (en) * | 2018-07-31 | 2020-02-13 | Oded Wertheim | Scaling and accelerating decentralized execution of transactions |
JP6830530B2 (ja) * | 2018-11-07 | 2021-02-17 | アドバンスド ニュー テクノロジーズ カンパニー リミテッド | アカウントモデルの下でパブリックおよびプライベートトランザクションをサポートするブロックチェーンシステム |
CN110088793B (zh) * | 2018-12-19 | 2023-10-20 | 创新先进技术有限公司 | 区块链网络中的数据隔离 |
US10878415B1 (en) * | 2019-05-14 | 2020-12-29 | Captain Capital Management Llc | Configurable robots for network based processes |
CN112148728A (zh) * | 2019-06-28 | 2020-12-29 | 伊姆西Ip控股有限责任公司 | 用于信息处理的方法、设备和计算机程序产品 |
WO2020098818A2 (en) * | 2019-11-29 | 2020-05-22 | Alipay (Hangzhou) Information Technology Co., Ltd. | Taking snapshots of blockchain data |
US11853291B2 (en) | 2020-07-06 | 2023-12-26 | International Business Machines Corporation | Privacy preserving architecture for permissioned blockchains |
-
2020
- 2020-07-06 US US16/920,844 patent/US11853291B2/en active Active
-
2021
- 2021-06-14 JP JP2023500056A patent/JP2023532959A/ja active Pending
- 2021-06-14 CN CN202180047807.9A patent/CN115769241A/zh active Pending
- 2021-06-14 DE DE112021002797.2T patent/DE112021002797T5/de active Pending
- 2021-06-14 GB GB2301504.3A patent/GB2612243A/en active Pending
- 2021-06-14 WO PCT/IB2021/055197 patent/WO2022008996A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
DE112021002797T5 (de) | 2023-04-06 |
US20220004539A1 (en) | 2022-01-06 |
CN115769241A (zh) | 2023-03-07 |
GB2612243A (en) | 2023-04-26 |
WO2022008996A1 (en) | 2022-01-13 |
US11853291B2 (en) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853291B2 (en) | Privacy preserving architecture for permissioned blockchains | |
US11169985B2 (en) | System and method for supporting SQL-based rich queries in hyperledger fabric blockchains | |
JP2021534512A (ja) | 分散型元帳におけるdagベースのトランザクション処理方法およびシステム | |
Bozic et al. | Securing virtual machine orchestration with blockchains | |
US11431503B2 (en) | Self-sovereign data access via bot-chain | |
WO2022007548A1 (en) | Blockchain implementation to securely store information off-chain | |
US11888981B2 (en) | Privacy preserving auditable accounts | |
JP2023542681A (ja) | ブロックチェーンの許可フレームワークへのデバイスアイデンティティの統合 | |
US11943360B2 (en) | Generative cryptogram for blockchain data management | |
JP2023538497A (ja) | 編集可能なブロックチェーン | |
US11573952B2 (en) | Private shared resource confirmations on blockchain | |
Yewale | Study of blockchain-as-a-service systems with a case study of hyperledger fabric implementation on Kubernetes | |
JP2024512256A (ja) | 実行-順序付け-有効化ブロックチェーンモデル内でのトランザクションアボートの削減 | |
JP2022088326A (ja) | ブロックチェーン・ネットワークにおけるワールドステート・データベースを選択的に更新するための方法、システム、およびコンピュータ・プログラム | |
US11755562B2 (en) | Score based endorsement in a blockchain network | |
US11683173B2 (en) | Consensus algorithm for distributed ledger technology | |
US20230267220A1 (en) | Privacy preserving asset token exchange | |
US20230267457A1 (en) | Privacy preserving asset transfer between networks | |
US12015715B2 (en) | Trusted aggregation with data privacy based on zero-knowledge-proofs | |
US20220255990A1 (en) | Topological ordering of blockchain associated proposals |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231114 |