(57)【要約】一部の実施形態では、方法は、分散型台帳のセットを確立することを含んでもよい。各分散型台帳（又はブロックチェーン）は、クライアントに固有の一意のルートキーを含んでもよい。データの処理及び／又は操作に関する一連のルールが生成されてもよく、データがそのようなルールに従って処理される。エントリが、トランザクションごとに台帳に追加されてもよく、台帳が、クライアントに関連付けられたエンドポイントに分散される。無効な（又は不正な）トランザクションが発生した場合、「サイドブランチ」（又は「障害分岐」）が台帳に追加されてもよく、このようにして、トランザクションをクライアントにとって無効であるとして簡単に識別する。【選択図】  図１
2019532419.tif 000002
【特許請求の範囲】
【請求項１】
統合クラウドコンピューティングネットワーク内で分散型台帳を使用してデータを処理するための方法であって、
前記統合クラウドコンピューティングネットワークのクライアントに関連付けられたトランザクションの分散型台帳のセットをネットワークノードにおいて作成するステップと、
一連の事前に定義されたルールに従って、前記トランザクションに対応するデータを格納して処理するステップと、
前記トランザクションが前記一連の事前に定義されたルールに準拠しているかどうかを確認するために前記トランザクションの妥当性を確認するステップと、
有効なトランザクションごとに、前記分散型台帳のセットのうちの台帳にエントリを追加するステップと、
無効なトランザクションごとに、前記分散型台帳のセットのうちの前記台帳にサイドブランチを追加するステップと、
前記分散型台帳のセットを前記クライアントに関連付けられたエンドポイントに分散するステップと、
を含んでいる、方法。
【請求項２】
前記分散型台帳のセットの各分散型台帳が、前記クライアントに固有の一意のルートキーを含んでいる、請求項１に記載の方法。
【請求項３】
前記一連の事前に定義されたルールが、暗号ルール、地理的ルール、寿命ルール、耐久性ルール、又は保持ルールを含んでいる、請求項１に記載の方法。
【請求項４】
前記クライアントの前記トランザクションに対応する前記データ、及び少なくとももう１つのクライアントの他のトランザクションに対応するデータを、別々の台帳で維持することを更に含んでいる、請求項１に記載の方法。
【請求項５】
オブジェクト照会言語モジュール、ハッシュツリーモジュール、及びブロックチェーンモジュールを実装することによって前記分散型台帳のセットを管理するステップを更に含んでいる、請求項１に記載の方法。
【請求項６】
前記オブジェクト照会言語モジュールが、前記データの処理に関する一連のルールを受信するように構成されており、
前記ハッシュツリーモジュールが、各トランザクションに関する情報を記録するハッシュツリー構造を生成するように構成されており、
前記ブロックチェーンモジュールが、各トランザクションを表すエントリを含む共有台帳を生成するように構成されている、請求項５に記載の方法。
【請求項７】
少なくとも１つのプロセッサと、
コンピュータプログラムコードを含んでいる少なくとも１つのメモリとを備えている装置であって、
前記少なくとも１つのメモリ及び前記コンピュータプログラムコードが、前記少なくとも１つのプロセッサと共に、前記装置に、
統合クラウドコンピューティングネットワークのクライアントに関連付けられたトランザクションの分散型台帳のセットをネットワークノードにおいて作成することと、
一連の事前に定義されたルールに従って、前記トランザクションに対応するデータを格納して処理することと、
前記トランザクションが前記一連の事前に定義されたルールに準拠しているかどうかを確認するために前記トランザクションの妥当性を確認することと、
有効なトランザクションごとに、前記分散型台帳のセットのうちの台帳にエントリを追加することと、
無効なトランザクションごとに、前記分散型台帳のセットのうちの前記台帳にサイドブランチを追加することと、
前記分散型台帳のセットを前記クライアントに関連付けられたエンドポイントに分散することと、
を少なくとも実行させるように構成されている、装置。
【請求項８】
前記分散型台帳のセットの各分散型台帳が、前記クライアントに固有の一意のルートキーを含んでいる、請求項７に記載の装置。
【請求項９】
前記一連の事前に定義されたルールが、暗号ルール、地理的ルール、寿命ルール、耐久性ルール、又は保持ルールを含んでいる、請求項７に記載の装置。
【請求項１０】
前記少なくとも１つのメモリ及び前記コンピュータプログラムコードが、前記少なくとも１つのプロセッサと共に、前記装置に、前記クライアントの前記トランザクションに対応する前記データ及び少なくとももう１つのクライアントの他のトランザクションに対応するデータを別々の台帳で少なくとも維持させるように、更に構成されている、請求項７に記載の装置。
【請求項１１】
前記少なくとも１つのメモリ及び前記コンピュータプログラムコードが、前記少なくとも１つのプロセッサと共に、前記装置に、オブジェクト照会言語モジュール、ハッシュツリーモジュール、及びブロックチェーンモジュールを実装することによって前記分散型台帳のセットを少なくとも管理することを実行させるように、更に構成されている、請求項７に記載の装置。
【請求項１２】
前記オブジェクト照会言語モジュールが、前記データの処理に関する一連のルールを受信するように構成されており、
前記ハッシュツリーモジュールが、各トランザクションに関する情報を記録するハッシュツリー構造を生成するように構成されており、
前記ブロックチェーンモジュールが、各トランザクションを表すエントリを含む共有台帳を生成するように構成されている、請求項１１に記載の方法。
【請求項１３】
非一時的コンピュータ可読媒体上で具現化されるコンピュータプログラムであって、前記コンピュータプログラムが、プロセッサによって実行されたときに、前記プロセッサに、
統合クラウドコンピューティングネットワークのクライアントに関連付けられたトランザクションの分散型台帳のセットをネットワークノードにおいて作成することと、
一連の事前に定義されたルールに従って、前記トランザクションに対応するデータを格納して処理することと、
前記トランザクションが前記一連の事前に定義されたルールに準拠しているかどうかを確認するために、前記トランザクションの妥当性を確認することと、
有効なトランザクションごとに、前記分散型台帳のセットのうちの台帳にエントリを追加することと、
無効なトランザクションごとに、前記分散型台帳のセットのうちの前記台帳にサイドブランチを追加することと、
前記分散型台帳のセットを前記クライアントに関連付けられたエンドポイントに分散することと、
を実行させる、コンピュータプログラム。
【請求項１４】
前記分散型台帳のセットの各分散型台帳が、前記クライアントに固有の一意のルートキーを含んでいる、請求項１３に記載のコンピュータプログラム。
【請求項１５】
前記一連の事前に定義されたルールが、暗号ルール、地理的ルール、寿命ルール、耐久性ルール、又は保持ルールを含んでいる、請求項１３に記載のコンピュータプログラム。
【請求項１６】
前記コンピュータプログラムが、プロセッサによって実行されたときに、前記プロセッサに、前記クライアントの前記トランザクションに対応する前記データ、及び少なくとももう１つのクライアントの他のトランザクションに対応するデータを、別々の台帳で維持することを更に実行させる、請求項１３に記載のコンピュータプログラム。
【請求項１７】
前記コンピュータプログラムが、プロセッサによって実行されたときに、前記プロセッサに、オブジェクト照会言語モジュール、ハッシュツリーモジュール、及びブロックチェーンモジュールを実装することによって前記分散型台帳のセットを管理することを更に実行させる、請求項１３に記載のコンピュータプログラム。
【請求項１８】
前記オブジェクト照会言語モジュールが、前記データの処理に関する一連のルールを受信するように構成されており、
前記ハッシュツリーモジュールが、各トランザクションに関する情報を記録するハッシュツリー構造を生成するように構成されており、
前記ブロックチェーンモジュールが、各トランザクションを表すエントリを含む共有台帳を生成するように構成されている、請求項１７に記載のコンピュータプログラム。
【発明の詳細な説明】
【関連出願への相互参照】
【０００１】
[1001]本出願は、２０１６年９月２１日に出願された米国特許仮出願第６２／３９７，９１１号に対する優先権を請求する。上記の仮出願の内容全体は、参照によって本明細書に組み込まれる。
【背景】
【０００２】
［技術分野］
[1002]本明細書に記載された特定の実施形態は、データ処理用の分散型台帳を使用するためのシステム及び方法に関連してもよい。より詳細には、本明細書に記載された特定の実施形態は、データトランザクションに関連付けられたメタデータの監査可能な可視の記録を可能にするためのブロックチェーンの使用に関連してもよい。
【関連技術の説明】
【０００３】
[1003]クラウドコンピューティングの進歩は、大量のデータを効率的に格納し、処理し、取り扱うことにおいて、飛躍的な改善につながった。クラウドコンピューティングの基本的思想の１つは、物理的境界又は地理的境界を考慮せずに、データを格納すること、及び／又は処理することができることである。したがって、企業は、専用サーバのセットをオンプレミスに所有する代わりに、世界中のデータセンターを含む「クラウド」にアクセスすることができる。クラウドコンピューティングの恩恵には、データストレージコストの減少、複数の地域のアクセス、及び生産性の向上などがある。
【０００４】
[1004]しかし、現在のクラウドインフラストラクチャの１つの欠点は、格納されたデータがデータセキュリティにおいて侵害を受ける可能性があることである。例えば、ハッカー（又は、不正なユーザ）がクラウド内の機密データ（例えば、クレジットカード番号、財務データなど）にアクセスした多くの事例があった。その他のセキュリティリスクには、許可されたユーザによるデータの不適切な使用（例えば、退職する前に競争力のあるデータをダウンロードする従業員）、クラウドストレージに侵入するマルウェア攻撃などがある。
【０００５】
[1005]現在のクラウドインフラストラクチャのもう１つの欠点は、特定の政府のデータ主権規制が特定の地域内で格納されたデータを損なう可能性があることである。このリスクを軽減するために、一部の国は、その国にあるサービスに関する特定のデータ（例えば、市民の個人データ）を維持することを要求する規制を課している。
【０００６】
[1006]セキュリティ又は妥当性確認の追加層を追加することによって、データセキュリティを改善できるが、そのような追加の測定はクラウドの効率を低下させる。同様に、場合によっては、クラウドサーバを特定の国でのみ維持することによって、データ主権の問題に対処できるが、これを行うには、新しい規制などに対する継続的な再検討が必要になる。更に、データを従来のクラウドインフラストラクチャに格納することは、監査が不可能になるため、ほとんどの企業及び政府にとって許容できない。例えば、Ａｍａｚｏｎは、この欠陥に対処するために、米国政府向けに「プライベートクラウド」を構築した。
【０００７】
[1007]したがって、データをクラウド内で処理して格納するための改善されたシステム及び方法に対する必要性が存在する。
【概要】
【０００８】
[1008]第１の実施形態によれば、統合クラウドコンピューティングネットワーク内で分散型台帳を使用してデータを処理するための方法が、ネットワークノードで、統合クラウドコンピューティングネットワークのクライアントに関連付けられたトランザクションの分散型台帳のセットを作成することを含んでもよい。この方法は、一連の事前に定義されたルールに従って、トランザクションに対応するデータを格納して処理することを含んでもよい。この方法は、トランザクションが一連の事前に定義されたルールに準拠しているかどうかを確認するためにトランザクションの妥当性を確認することを更に含んでもよい。加えて、この方法は、有効なトランザクションごとに分散型台帳のセットのうちの台帳にエントリを追加することと、無効なトランザクションごとに分散型台帳のセットのうちの台帳に側枝（side branch、サイドブランチ）を追加することとを含んでもよい。更に、この方法は、分散型台帳のセットをクライアントに関連付けられたエンドポイントに分散することを含んでもよい。
【０００９】
[1009]この方法の一実施形態では、分散型台帳のセットの各分散型台帳は、クライアントに固有の一意のルートキーを含む。この方法の別の実施形態では、一連の事前に定義されたルールは、暗号ルール、地理的ルール、寿命ルール、耐久性ルール、又は保持ルールを含んでもよい。この方法の更に別の実施形態では、この方法は、クライアントのトランザクションに対応するデータ、及び少なくとももう１つのクライアントの他のトランザクションに対応するデータを、別々の台帳で維持することを含んでもよい。この方法の別の実施形態によれば、この方法は、オブジェクト照会言語モジュール、ハッシュツリーモジュール、及びブロックチェーンモジュールを実装することによって分散型台帳のセットを管理することを含んでもよい。この方法の他の実施形態では、オブジェクト照会言語モジュールは、データ処理に関する一連のルールを受信するように構成されてもよく、ハッシュツリーモジュールは、各トランザクションに関する情報を記録するハッシュツリー構造を生成するように構成されてもよく、ブロックチェーンモジュールは、各トランザクションを表すエントリを含む共有台帳を生成するように構成されてもよい。
【００１０】
[1010]第２の実施形態は、装置を対象にしてもよい。この装置は、少なくとも１つのプロセッサ、コンピュータプログラムコードを含んでいる少なくとも１つのメモリを含んでもよい。少なくとも１つのメモリ及びコンピュータプログラムコードは、少なくとも１つのプロセッサと共に、この装置に、ネットワークノードで、統合クラウドコンピューティングネットワークのクライアントに関連付けられたトランザクションの分散型台帳のセットを作成することと、一連の事前に定義されたルールに従って、トランザクションに対応するデータを格納して処理することと、トランザクションが一連の事前に定義されたルールに準拠しているかどうかを確認するためにトランザクションの妥当性を確認することと、有効なトランザクションごとに分散型台帳のセットのうちの台帳にエントリを追加することと、無効なトランザクションごとに分散型台帳のセットのうちの台帳にサイドブランチを追加することと、分散型台帳のセットをクライアントに関連付けられたエンドポイントに分散することとを少なくとも実行させるように、構成される。
【００１１】
[1011]この装置の一実施形態では、分散型台帳のセットの各分散型台帳は、クライアントに固有の一意のルートキーを含んでもよい。この装置の別の実施形態では、一連の事前に定義されたルールは、暗号ルール、地理的ルール、寿命ルール、耐久性ルール、又は保持ルールを含む。この装置の更に別の実施形態では、少なくとも１つのメモリ及びコンピュータプログラムコードは、少なくとも１つのプロセッサと共に、この装置に、クライアントのトランザクションに対応するデータ及び少なくとももう１つのクライアントの他のトランザクションに対応するデータを別々の台帳で少なくとも維持させるように、更に構成されてもよい。
【００１２】
[1012]この装置の更に別の実施形態では、少なくとも１つのメモリ及びコンピュータプログラムコードは、少なくとも１つのプロセッサと共に、この装置に、オブジェクト照会言語モジュール、ハッシュツリーモジュール、及びブロックチェーンモジュールを実装することによって分散型台帳のセットを少なくとも管理させるように、更に構成されてもよい。この装置の別の実施形態によれば、オブジェクト照会言語モジュールは、データ処理に関する一連のルールを受信するように構成されてもよく、ハッシュツリーモジュールは、各トランザクションに関する情報を記録するハッシュツリー構造を生成するように構成されてもよく、ブロックチェーンモジュールは、各トランザクションを表すエントリを含む共有台帳を生成するように構成されてもよい。
【００１３】
[1013]第３の実施形態は、コンピュータプログラムを対象にする。このコンピュータプログラムは非一時的コンピュータ可読媒体上で具現化されてもよく、このコンピュータプログラムは、プロセッサによって実行されたときに、このプロセッサに、ネットワークノードで、統合クラウドコンピューティングネットワークのクライアントに関連付けられたトランザクションの分散型台帳のセットを作成することと、一連の事前に定義されたルールに従って、トランザクションに対応するデータを格納して処理することと、トランザクションが一連の事前に定義されたルールに準拠しているかどうかを確認するためにトランザクションの妥当性を確認することと、有効なトランザクションごとに分散型台帳のセットのうちの台帳にエントリを追加することと、無効なトランザクションごとに分散型台帳のセットのうちの台帳にサイドブランチを追加することと、分散型台帳のセットをクライアントに関連付けられたエンドポイントに分散することとを実行させる。
【００１４】
[1014]このコンピュータプログラムの一実施形態では、分散型台帳のセットの各分散型台帳は、クライアントに固有の一意のルートキーを含んでもよい。このコンピュータプログラムの別の実施形態では、一連の事前に定義されたルールは、暗号ルール、地理的ルール、寿命ルール、耐久性ルール、又は保持ルールを含んでもよい。このコンピュータプログラムの更に別の実施形態では、このコンピュータプログラムは、プロセッサによって実行されたときに、このプロセッサに、クライアントのトランザクションに対応するデータ、及び少なくとももう１つのクライアントの他のトランザクションに対応するデータを、別々の台帳で維持することを更に実行させてもよい。このコンピュータプログラムの別の実施形態によれば、このコンピュータプログラムは、プロセッサによって実行されたときに、このプロセッサに、オブジェクト照会言語モジュール、ハッシュツリーモジュール、及びブロックチェーンモジュールを実装することによって分散型台帳のセットを管理することを更に実行させてもよい。このコンピュータプログラムの別の実施形態では、オブジェクト照会言語モジュールは、データ処理に関する一連のルールを受信するように構成されてもよく、ハッシュツリーモジュールは、各トランザクションに関する情報を記録するハッシュツリー構造を生成するように構成されてもよく、ブロックチェーンモジュールは、各トランザクションを表すエントリを含む共有台帳を生成するように構成されてもよい。
【００１５】
[1015]本発明を適切に理解するために、添付の図面に対する参照が行われるべきである。
【図面の簡単な説明】
【００１６】
【図１】[1016]図１は、特定の実施形態に従う、ブロックチェーンクラウド統合のデプロイメントアーキテクチャを示す図である。
【００１７】
【図２】[1017]図２は、特定の実施形態に従う、ソフトウェアスタックを示す論理図である。
【００１８】
【図３】[1018]図３は、特定の実施形態に従う、データトランザクション用のブロックチェーンの実装の概略図である。
【００１９】
【図４】[1019]図４は、特定の実施形態に従う、ハッシュ（又はマークル）ツリーの概略図である。
【００２０】
【図５】[1020]図５は、特定の実施形態に従う、ハッシュ（又はマークル）ツリーの別の概略図である。
【００２１】
【図６】[1021]図６は、特定の実施形態に従う、オブジェクト照会言語モジュールのポリシー、動作、及びオペランドを示す図である。
【図７】[1021]図７は、特定の実施形態に従う、オブジェクト照会言語モジュールのポリシー、動作、及びオペランドを示す図である。
【図８】[1021]図８は、特定の実施形態に従う、オブジェクト照会言語モジュールのポリシー、動作、及びオペランドを示す図である。
【図９】[1021]図９は、特定の実施形態に従う、オブジェクト照会言語モジュールのポリシー、動作、及びオペランドを示す図である。
【図１０】[1021]図１０は、特定の実施形態に従う、オブジェクト照会言語モジュールのポリシー、動作、及びオペランドを示す図である。
【００２２】
【図１１】[1022]図１１は、特定の実施形態に従う、方法のフローチャートを示す図である。
【００２３】
【図１２】[1023]図１２は、特定の実施形態に従う装置を示す図である。
【詳細な説明】
【００２４】
[1024]本明細書全体を通して説明された本発明の特徴、構造、又は特性は、１つ又は複数の実施形態において、任意の適切な方法で組み合わせられてもよい。例えば、語句「特定の実施形態」、「一部の実施形態」、又はその他の同様の言葉の使用は、本明細書全体を通じて、実施形態に関連して説明された特定の特徴、構造、又は特性が本発明の少なくとも１つの実施形態に含まれてもよいということを指している。
【００２５】
[1025]以下の実施形態例の詳細な説明では、本明細書の一部を形成する添付の図面に対する参照が行われる。これらの実施形態は、当業者が本発明を実践できるように、十分詳細に説明されており、他の実施形態が使用されてもよく、本開示の思想又は範囲を逸脱することなく、本発明に対する論理的変更又は構造的変更が行われてもよいということが理解される。当業者が本明細書に記載された実施形態を実践できるようにするために必要のない詳細を回避するために、説明では、当業者にとって既知である特定の情報を省略することがある。したがって、以下の詳細な説明は、限定する意味で受け取られるべきではない。
【００２６】
[1026]本明細書において使用されるとき、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、文脈で特に示されない限り、複数形も含むことが意図されている。「含む（ｃｏｍｐｒｉｓｅｓ）」、「含む（ｉｎｃｌｕｄｅｓ）」、「含む（ｈａｓ）」、及び同様の用語は、記載された特徴、ステップ、動作、要素、構成要素などの存在を示すが、１つ又は複数のその他の特徴、ステップ、動作、要素、構成要素、又はグループの存在又は追加を除外しない。
【００２７】
[1027]本明細書に記載された実施形態は、システムがデータ主権規制を考慮してデータの完全性を維持する必要性に対処し、データの格納及び／又は処理を含むトランザクションを検証し、妥当性を確認するための単純で効率的な方法を提供する。特定の実施形態によれば、企業及び政府などの必要性を満たす方法で、データの信頼性、可用性、及び拡張性の問題に対処するための方法が提供されてもよい。適切なルールに基づく分散型台帳及びアプリケーションプログラミングインターフェイス（ＡＰＩ：ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅｓ）の実装は、このレベルのトランザクションの透明性及び監査可能性を獲得することができる。更に、クライアントごとの一意の個別に署名された台帳、及び台帳間の活動を追跡／有効化するための中央台帳を所有することによって、拡張性を実現することができる。
【００２８】
[1028]一部の実施形態では、方法は、分散型台帳のセットを確立することを含んでもよい。各分散型台帳（又はブロックチェーン）は、クライアントに固有の一意のルートキーを含んでもよい。データの処理及び／又は操作に関する一連のルールが生成されてもよく、データがそのようなルールに従って処理されてもよい。エントリが、トランザクションごとに台帳に追加されてもよく、台帳が、クライアントに関連付けられたエンドポイントに分散されてもよい。無効な（又は不正な）トランザクションが発生した場合、「サイドブランチ」（又は「障害分岐」）が台帳に追加されてもよく、このようにして、トランザクションをクライアントにとって無効であるとして簡単に識別する。
【００２９】
[1029]一部の実施形態では、装置は、本明細書に記載されているように、データトランザクション用の分散型台帳を管理するように構成されたブロックチェーンデータハンドラを含んでもよい。ブロックチェーンデータハンドラは、メモリ又はプロセッサのうちの少なくとも１つにおいて実装されてもよく、オブジェクト照会言語（ＯＱＬ：ｏｂｊｅｃｔ  ｑｕｅｒｙ  ｌａｎｇｕａｇｅ）モジュール、ハッシュ（又はマークル）ツリーモジュール、及びブロックチェーンモジュールを含んでもよい。オブジェクト照会言語モジュールは、データの処理に関する一連のルールを受信するように構成されてもよい。更に、ハッシュツリーモジュールは、各トランザクションに関する情報を記録するハッシュツリー構造を生成するように構成されてもよい。ハッシュツリーモジュールは、有効な各トランザクションに関連付けられたハッシュ（又は識別子）を生成することによって、各データトランザクションに関連して、「存在の証明」を可能にしてもよい。ハッシュツリーモジュールは、不正なトランザクション（又は障害）を分離及び／又は識別するために、チェーンからの「分岐」も生成する。特定の実施形態では、ブロックチェーンモジュールは、各トランザクションを表すエントリ又は「ブロック」を含む共有台帳を生成するように構成されてもよい。他の実施形態では、共有台帳は、すべてのトランザクションに関する変更不可能で監査可能な記録を提供する。
【００３０】
[1030]特定の実施形態によれば、ハッシュツリーモジュールは、装置のエラー又はハッカーなどの外部からの圧力によって台帳のブロックが破損したときに、ブロックのハッシュが有効でなくなった場合に、変更されてもよい。この時点で、無効な台帳のブロックを破棄し、有効なブロックに置き換えることを選択することが可能であってもよい。特定の実施形態では、この動作は、プログラムによって、又は台帳のブロックをオブジェクトリポジトリから取り出すことによって、達成されてもよい。代替として、この問題は、台帳のブロック用の新しい一意のルートを作成し、トランザクションを別のチェーンに分離することによって解決されてもよい。これらのトランザクションは、分離して保持されてもよく、データアクセス要求がハニーポットに送信されてもよい。そのような変更されたハッシュツリーモジュールを使用して、ハッカー又は脅威を識別して特定するための十分な時間を提供し、台帳のブロックの更なる破損を防ぐことができてもよい。
【００３１】
[1031]一部の実施形態では、プロセッサによって実行される命令を表すコードを格納する非一時的プロセッサ可読媒体が、プロセッサに、ユーザに関連しているデータトランザクションに関連付けられた受信情報を決定させるための、コードを含む。このコードは、トランザクションがルールのセットに一致しているかどうか、及び／又は適合しているかどうかを決定するためのコードを更に含む。トランザクションがルールのセットに適合していると決定されたときに、エントリ（又は「ブロック」）（特定の実施形態では、エントリの集合を含んでもよい）が、ユーザに関連付けられたチェーンに追加されてもよい。このコードは、トランザクションがルールのセットに準拠していないと決定されたときに、一次チェーンからサイドチェーンを生成するためのコードを更に含んでもよい。特定の実施形態では、ユーザが有効な許可されたユーザであるが、トランザクションが許可されない場合、トランザクション又はトランザクションの要求は拒否され、エラーメッセージが送信されてもよい。一実施形態では、エラーメッセージは、「許可されない」というエラーメッセージを含んでもよい。
【００３２】
[1032]特定の実施形態によれば、ブロックチェーンは、任意のオンラインのデジタルトランザクションに適用可能な方法である。ブロックチェーンの方法は、ネットワーク参加者間で分散されるデジタル台帳を作成することを含む。参加者は、暗号ルールに従って、トランザクションに関連する台帳を操作できる。このようにして、信頼できる第三者を必要とせずに、各トランザクションの妥当性を検証できる。金融トランザクション（例えば、ビットコイン）との関連において、ブロックチェーンの方法は、各トランザクションを検証するために、銀行又はペイパルなどの信頼できる第三者の必要性を取り除く。各トランザクションは、暗号（すなわち、デジタル署名）を介して保護され、及び／又は検証される。各トランザクションは、妥当性を確認された後に、台帳に記録され、その後、すべてのネットワーク参加者と共有される。言い換えると、各トランザクションの記録は、新しい「ブロック」として「チェーン」に追加され、その後、すべての参加者と共有される。
【００３３】
[1033]特定の実施形態によれば、台帳はメタデータを含んでもよい。セキュリティのために、メタデータは、別々のキーセットを使用して暗号化され、あるキー空間がどこで終了し、別のキー空間がどこで開始するかを知ることができないようにする方法で、格納されてもよい。特定の実施形態では、署名された各ブロック内のメタデータは、マスクが適用される場合を除き、データ自体と同程度に変更不可能であってもよい。例えば、特定の実施形態では、メタデータが更新される場合、非監査ユーザには、以前のすべての更新情報ではなく、最後の更新情報のみが表示されてもよい。他の実施形態では、メタデータは、複数のフィールド又はカテゴリに分類されてもよい。１つのカテゴリは、例えばサーバの喪失後の下位構成要素の回復などの、システムによって生成されたデータであってもよい。別のカテゴリは、ユーザによって生成されたメタデータであってもよい。ユーザによって生成されたメタデータは、特定のオブジェクトＩＤで、新しい記録のキーと値のペアに含まれて、台帳に格納されてもよい。したがって、特定の実施形態によれば、台帳は、書き込み（新しいデータ又はメタデータの更新）、及びデータへの任意のアクセス（ユーザの要求又は装置によって生成される）のため、という条件で、更新されてもよい。
【００３４】
[1034]特定の実施形態では、ハッシュツリーモジュール又はブロックチェーンモジュールを実装するサービスは、異なって分割されてもよい。例えば、特定の実施形態によれば、サービスは、データサービス及びメタデータサービスに分割されてもよい。データサービスは、ＯＱＬを使用して、レイアウトルール（例えば複製又は抹消符号などの、データ主権及び耐久性）を適用してもよい。その後、これらのレイアウトは、オブジェクトのトランザクションの一部としてコミットされてもよい。特定の実施形態によれば、メタデータがトランザクションに集められ、保留中のトランザクションのブロックにマージされてもよい。保留中のトランザクションのブロックが、台帳のブロックチェーンの現在の末尾で一緒にハッシュされ、台帳のブロックチェーンの新しい末尾を形成してもよい。更に、台帳の新しい各ブロックは、前のブロック及び保留中のトランザクションのブロックへのポインタを含んでもよい。加えて、特定の実施形態では、台帳のブロックは、作成されたときにマークルツリーに追加され、結合の証明の妥当性確認を作成してもよい。このようにして、ブロックが変更された場合に、マークルツリーが瞬時に変更されてもよい。そのため、エラーが検出されてもよい。
【００３５】
[1035]特定の実施形態によれば、エラーの正確な位置を見つけるために、マークルツリーがより小さいツリーに分割され得る。エラーの修正は、プログラムによって、又は（変更不可能な）データのように扱われる台帳のブロックとして実行されてもよく、置換ブロックがデータストアから取得されてもよい。
【００３６】
[1036]図１は、特定の実施形態に従う、ブロックチェーンクラウド統合システム（又はネットワーク）のデプロイメントアーキテクチャを示す概略図である。ブロックチェーンネットワークは、ブロックチェーンネットワーク上に示されているデバイス及び／又はモジュールを含んでもよい。特定の実施形態によれば、デプロイメントアーキテクチャは、クライアントＡＰＩ１００を含んでもよい。クライアントＡＰＩは、管理、メタデータ操作、及びデータ操作のためのアクセスを可能にしてもよい。更に、これらの動作のサブセットが特定のインスタンス化から許可されるように、ルールが図１のデプロイメントアーキテクチャの構成要素に適用されてもよい。これによって、アクセス位置を認識した制限又はプロトコルを認識した制限を作成してもよい。これによって、制限されたユーザ権限の作成を可能にしてもよい。例えば、特定の実施形態では、ユーザは、データを追加することのみが許可され、そのデータを読み取ることが許可されないことがある。更に他の実施形態では、ユーザはデータを使用する権限を持つが、管理構成の変更を行う権限を持たないことがある。
【００３７】
[1037]特定の実施形態では、図１のデプロイメントアーキテクチャは、１つ又は複数のブロックチェーンハンドラ１０５を含んでもよい。特定の実施形態によれば、ブロックチェーンハンドラ１０５は、ストレージが関連付けられた物理的装置であってもよい。他の実施形態では、ブロックチェーンハンドラ１０５は仮想装置であってもよい。特定の実施形態によれば、ブロックチェーンハンドラ１０５は、読み取りキャッシュとして機能し、オブジェクトの格納のためのデータのステージングに役立ってもよい。
【００３８】
[1038]図１のデプロイメントアーキテクチャは、ステージングユニット１１０を更に含んでもよい。特定の実施形態によれば、ステージングユニットは、待ち時間の少ない、地理的に分散された方法で利用できるコピーを作成することによって、オブジェクトストアにアクセスすることにおいて、及びステージングユニットとブロックチェーンハンドラ１０５の間の帯域幅を最適化することにおいて、ブロックチェーンハンドラを支援してもよい。ステージングユニット１１０は、互いに連動して、ネットワーク転送の負荷を軽減しながら、エンドポイントの操作性を向上させることができる。
【００３９】
[1039]図１では、１つ又は複数のデータストレージノード１１５も示されている。データストレージノード１１５は、長期間の耐久性に関して最適化された複数のカテゴリに分類されてもよい。例えば、それらのカテゴリの一部は、動作中のトランザクション用であってもよく、したがって高速であってもよく、一方、他のカテゴリは、記録のための格納用であってもよい。他の実施形態では、データストレージノード１１５は、外国のクラウド上にあってもよい。
【００４０】
[1040]図１のデプロイメントアーキテクチャは、認証及び同期サービスノード１２０を更に含んでもよい。認証及び同期サービスノード１２０は、台帳が正確且つ確実に更新されていることを確認する役割を担ってもよい。認証及び同期サービスノード１２０は、ホットブロックに関して複製の台帳が作成されること、及びユーザが、アクセスすることを許可された構成要素にアクセスしていることを、保証してもよい。例えば、台帳が複数の場所からアクセスされているか、又は１つの場所で多数のクライアントによってアクセスされている場合、ホットブロックは、ＩＯ要求にサービスを提供するために作成された複製を必要とすることがある。
【００４１】
[1041]一部の実施形態では、単一の実体（又はサービスプロバイダ）が、ネットワーク全体に対して所有権を維持すること及び／又は制御することができる。言い換えると、一部の実施形態では、単一の実体（また他はサービスプロバイダ）は、クライアントエンドポイント（例えば、図１では「クライアントＡＰＩ」として識別される）を除く、示されているデバイス及び／又はモジュールのすべてに対して、所有権を維持すること及び／又は制御することができる。このようにして、本明細書に記載されたデータ管理のプロセスは、不正な「仲介者」などからの侵害の影響を受けにくくなる。したがって、本明細書に記載されたシステム及び方法は、ピアツーピアファイル共有、パブリックな「未使用」の空間を使用する分散化されたストレージなどとは異なっている。
【００４２】
[1042]図に示されているように、特定の実施形態に従うシステムは、本明細書に記載された動作のいずれかを実行するように構成された１つ又は複数のブロックチェーンデータハンドラ１０５を含んでもよい。例えば、一部の実施形態では、ブロックチェーンデータハンドラ１０５（又はブロックチェーンシステム全体）は、オブジェクト照会言語（ＯＱＬ）モジュール、ハッシュ（又はマークル）ツリーモジュール、及びブロックチェーンモジュールを含むことができる。オブジェクト照会言語モジュールは、以下を含むさまざまな機能を実行してもよいが、これらに限定されない。
・オブジェクト、名前空間、集合、及びデータセットの動作に関するルールの格納、作成、及び／又は維持
・構成及び管理
・アプリケーション統合ポイント
・名前空間の定義
・ユーザの作成及び役割の割り当て
・ユーザによって定義されたメタデータの初期結合及び遅延結合の両方の有効化
【００４３】
[1043]特定の実施形態によれば、ハッシュ（又はマークル）ツリーモジュールは、以下を含むさまざまな機能を実行してもよいが、これらに限定されない。
・プリフェッチ／キャッシュの調整
・自動一貫性チェック／軽量一貫性チェック
・統合された能力監査
・ユーザによって定義されたメタデータのロギング
・きめ細かいアクセス制御
・柔軟な葉ノードリスト（柔軟な複製又はシャーディング戦略）
・自動データ局所性（データ主権、特定の地域内のストレージ、又は特定のエンドポイントのみからのアクセスのいずれかの種類に関する）
・過渡的な一貫性のある変更／報告／監査／テスト
・不変性の証明
【００４４】
[1044]他の実施形態では、ハッシュ（又はマークル）ツリーモジュールは、以下を含むさまざまな機能を実行してもよいが、これらに限定されない。
・保証された最終的な一貫性
・統合された監査能力
・セキュリティで保護された粒度の細かい共有
・自律的ノード間の保証された書き込み一貫性
・監査ルールを支援するための永続的な台帳のロギング
・アクセスの実施
・マルチテナントの分離
・利用者からのリスク及びトレードオフへの可視性
【００４５】
[1045]特定の実施形態によれば、図１〜５に示されたブロックチェーンハンドラ１０５及びその他のノードなどの、図１のデバイス及びモジュールは、任意の適切なネットワークによって相互接続され得る。ネットワークは、有線ネットワーク及び／又は無線ネットワークとして実装された任意の種類のネットワーク（例えば、ローカルエリアネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、仮想ネットワーク、及び通信ネットワーク）であり得る。本明細書において更に詳細に説明されているように、一部の実施形態では、例えばデバイス及び／又はモジュールは、イントラネット、インターネットサービスプロバイダ（ＩＳＰ：Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）及びインターネット、セルラーネットワーク、並びに／又は同様のものを介して互いに接続され得る。
【００４６】
[1046]図２は、特定の実施形態に従うソフトウェアアーキテクチャを示している。ソフトウェアアーキテクチャは、クライアントデータハンドラ２００を含んでもよい。特定の実施形態では、クライアントデータハンドラ２００は、独立してスケーリングされてもよく、クライアント接続を管理し、固有のライフサイクルのためのデータ及びメタデータを準備するために使用されてもよい。ソフトウェアアーキテクチャは、ルールエージェント２０５を含んでもよく、ルールエージェント２０５は、ユーザ、名前空間、及びデータパイプラインを確立するための別のインターフェイスであってもよい。
【００４７】
[1047]特定の実施形態によれば、ソフトウェアアーキテクチャは、セキュリティ層２１０を更に含んでもよい。セキュリティ層２１０は、セキュリティ及び認証をスケーリングできるようにする別の層であってもよく、不正なユーザがハニーポットにリダイレクトされる場所であってもよい。更に、ソフトウェアアーキテクチャは、ポリシー実施層２１５を含んでもよい。特定の実施形態では、ポリシー実施層は、トランザクションが有効であることを、及びトランザクションが、ブロックチェーンデータを処理するための既存のルールのいずれにも違反していないことを保証してもよい。図２には、配置エンジン２２０も示されている。特定の実施形態によれば、配置エンジン２２０は、トランザクションを適切なストレージノード（複数可）２２５にルーティングする役割を担ってもよい。更に、ポリシーが変更されたときに、配置エンジン２２０がデータを適切なストレージノード２２５上に再レイアウトしてもよい。
【００４８】
[1048]図２のソフトウェアアーキテクチャは、１つ又は複数のストレージノード２２５を含んでもよい。特定の実施形態によれば、ストレージノード２２５は、異なる設計点を有する物理ノードであってもよい。例えば、一部のストレージノード２２５は、長期間の耐久性のあるストレージ用に最適化されてもよく、他のストレージノード２２５は、動作中の処理用に最適化されてもよい。図２のソフトウェアアーキテクチャは、１つ又は複数の台帳２３０を含んでもよい。特定の実施形態によれば、台帳２３０は、すべてのトランザクションの状態をログに記録して監査できるようにする、独立したブロックチェーン層であってもよい。図２は、分析層２３５を更に示している。特定の実施形態によれば、分析層２３５は、許可されたユーザが、システムの現在の状態だけでなく、特定の名前空間のすべてのトランザクションを確認できるようにする報告層であってもよい。これによって、システムが世界中のさまざまな組織に従うことが、可能になってもよい。
【００４９】
[1049]図３は、特定の実施形態に従う、データトランザクション用のブロックチェーンの実装の概略図である。図３に示されたブロックチェーンは、有効なトランザクション状態３００を含んでもよい。有効なトランザクション状態は、すべてのトランザクションの妥当性が確認されており、暗号によって署名されたブロックが生成されている、ある時点の状態を表してもよい。有効なトランザクション状態は、台帳が最初にインスタンス化されるときに、台帳の初期状態に適用されてもよい。
【００５０】
[1050]図３は、ブロックチェーンが保留中のトランザクションのログ３０５を含んでもよいということを更に示している。保留中のトランザクションのログ３０５は、台帳への挿入を保留している未処理のトランザクションのすべてのログを含んでもよい。特定の実施形態では、使用頻度の低い台帳の場合、保留中のトランザクションは相対的に少なく、又は非常に多くのトランザクションを受信している台帳の場合、保留中のトランザクションは非常に多いことがある。更に、ブロックチェーンは、ハッシュ及び署名手順３１０を含んでもよい。特定の実施形態によれば、ハッシュ及び署名手順３１０は、すべての有効なトランザクションをハッシュして署名するプロセスを含んでもよい。このプロセスは、コミットされていない特定の台帳のすべてのメタデータトランザクションを受け取り、それらのトランザクションの妥当性を確認して暗号化し、それらの新しいトランザクションから新しい葉をマークルツリー内に作成し、最後のブロックのハッシュを台帳内に作成してもよい。
【００５１】
[1051]一部の実施形態によれば、本明細書に記載されたブロックチェーン又は台帳のいずれかは、ビットマスクを使用して生成され得る。図３に示された状態は、生成されたハッシュツリーに格納され得る。
【００５２】
[1052]図４は、特定の実施形態に従う、ハッシュ（又はマークル）ツリーの概略図である。マークルツリーは、２つの主要な目的を果たしてもよい。下で説明されているように、トランザクションに対するどのような攻撃又は変更も、プライベートノード／ツリーの生成を自動的に引き起こすため、「障害」が分離される。その他の機能は、有効ないずれかの場所で提供される名前空間に関して、その名前空間に関連付けられた葉ノードのみを使用可能にする必要があるということである。メタデータトランザクションをデータトランザクションから分離することによって、自動的で自由な重複排除が結果として起きてもよい。更に、データの完全性は自動的であり、隣り合うどの２つの葉も、欠けている姉妹又は親を再作成することができる。
【００５３】
[1053]図４に示されているように、マークルツリーはルートハッシュ４００を含んでもよい。特定の実施形態によれば、ルートハッシュ４００は、ルートに隣り合い、一緒にハッシュされる、マークルツリー内のすべての葉ノードで形成されてもよい。マークルツリーは、葉Ａ４０５及び葉Ｂ４１０を含んでもよい。標準的な左手−右手の表記法では、上位ハッシュの左のメンバーが葉Ａ４０５と呼ばれ、対の左手側が葉Ｂ４１０と呼ばれ、対は、下位の葉Ａ４０５及び葉Ｂ４１０を一緒にハッシュすることによって作成される。
【００５４】
[1054]図４に更に示されているように、マークルツリーは無効な葉４１５を含んでもよい。特定の実施形態によれば、無効な葉４１５は変更されて、もともとハッシュされていたのと同じ値にハッシュされなくなっていることがある。無効な葉４１５は、その値が正しくなくなったときに、親ノードによって検出可能であってもよい。次に、ルートハッシュも無効になる。そのような方法に従って、エラーを素早く検出し、エラーをそれが生じた場所から分離することが可能になってもよい。
【００５５】
[1055]図５は、特定の実施形態に従う、ハッシュ（又はマークル）ツリーの別の概略図である。これらのシステム及び／又はモジュールは、増加するデータ主権の問題を考慮してデータの完全性を維持することと、データトランザクションを追跡するためのセキュリティで保護されたシステムを提供することと、「存在の証明」をデータ及び／又はデータトランザクションに適用することとを含むが、これらに限定されない、本明細書に記載された機能を、集合的に及び／又は個別に実行する。
【００５６】
[1056]一部の実施形態では、システムは、複数の異なるクライアントアプリケーション（又はエンドポイント）に関連付けられ得る。具体的には、本明細書に記載されたシステム及び方法は、複数の異なるクライアントにサービスを提供するように動作することができる。そのような実施形態では、ブロックチェーンモジュールは、異なるクライアントごとに一意である「チェーン」の異なるルートキーを生成することができる。
【００５７】
[1057]例えば、特定の実施形態では、実体はメイン台帳を所有してもよい。実体がクライアントＡを引き受ける場合、クライアントＡ用の一意のエントリが作成される。このエントリが、最初に設定されたＯＱＬルールと共に使用されて、クライアント台帳の基礎になる一意のルートキー（又は、ルート付きサイドチェーンとも呼ばれる）を作成してもよい。これらのサイドチェーンの通常の使用（ハッカーの分離又は新しい台帳のルールをテストすること）ではなく、サイドチェーンが永続的に存続することを許可することが可能であってもよい。更に、一意の各台帳は、それ自身のマークルハッシュを含んでもよく、ルートから台帳の最新のブロックまで有効である。台帳のメタデータに対して変更（新規又は変更）を行うには、ツリー全体を再計算し、検証しなければならない。このようにして、多くのより小さいツリーを作成することによって、待ち時間を減らし、並列化及び拡張性を向上することができてもよい。
【００５８】
[1058]このようにして、クライアントごとのデータトランザクションが、別々のチェーン及び／又は他のクライアントごとに生成されたデータトランザクションから共有された台帳で、維持されてもよい。クライアントごとに別々の台帳又はブロックチェーンを生成することによって、チェーンの全体的長さを（すべてのクライアントに関連付けられた単一のチェーンと比較して）最小限に抑えることができ、ブロックチェーン（例えば、トランザクションの妥当性を確認するための作業の証明、トランザクションごとの存在の証明など）を実装するために必要な計算リソースを最小限に抑えることができる。
【００５９】
[1059]一部の実施形態では、本明細書に記載されたブロックチェーンの方法及びシステムは、トランザクションごとに「存在の証明」を実装することができる。存在の証明は、データトランザクションに関連付けられた「ハッシュ」（例えば、ハッシュツリーモジュールによって生成されたハッシュ及び／又はハッシュツリーモジュール内に含まれたハッシュ）を識別すること、及びそのハッシュをブロックチェーンに格納することを含んでもよい。ブロックチェーンは確認されたすべての有効なトランザクションを格納し、すべてのハッシュが一意であるため、そのトランザクションが有効であることが確認された後に、特定のドキュメントが存在することを証明するために、後でそのトランザクションが参照され得る。
【００６０】
[1060]一部の実施形態では、本明細書に記載された方法及びシステムは、有効なトランザクションごとに、エントリを台帳（又はブロックチェーン）に追加してもよい。台帳は、クライアントに関連付けられたエンドポイントに分散されてもよい。無効な（又は不正な）トランザクションが発生した場合、サイドブランチ（又は「障害分岐」）が台帳に追加されてもよく、したがって、トランザクションをクライアントにとって無効であるとして簡単に識別する。
【００６１】
[1061]以下では、一流企業であるクライアントの必要性に役立つことに関して、使用事例が説明される。それらの必要性を効果的に満たすために、監査可能な記録又はデータの完全性及びデータの配置を保つためのシステム及び方法が使用されてもよい。一部の実施形態では、この方法は、本明細書に記載されたブロックチェーンの方法を含んでもよい。
【００６２】
[1062]特定の実施形態に従う使用では、名前空間は、ユーザ（例えば、クライアント）が、データブロックなどのすべてのオブジェクトが最初に従う必要がある何らかのルールを、他の入力が元に戻らないということを前提として、作成することを可能にするための構造である。例えば、そのような１つのルールは、記録用媒体に「５０年間格納する」ことである。しかし、前述の名前空間内のいずれかのオブジェクトに関して、より新しいポリシーが現れて、そのオブジェクトをホット層又はオンプレミスに移動するよう要求する可能性がある。５０年間格納するという元のポリシーに違反してはならないため、複製のみがエッジに送信されるであろう。ユーザがエッジでデータの使用を完了したときに、そのデータを安全に削除することができ、名前空間は静的状態に戻る。これらの各移行は、ブロックチェーン台帳内のエントリによって表されてもよい。特定の実施形態では、ブロックチェーンとしてのメタデータ台帳は、アクセスを更新すること及びメタデータを複製することよりも大きい分岐を含んでもよい。別の例として、より新しいポリシーは、特定の国で可決されたデータ主権規制に関連する可能性がある。やはり、初期ルールは効力を維持し、システムは、そのような規制によって損なわれないようにデータを保護する。
【００６３】
[1063]上記の例では、主権のレイアウトルールが変更された場合、データの一部が新しいルールの外に存在するようになることがある。ルールに準拠しなくなった部分は、ルールに適合する記録用媒体に再レイアウトされてもよい。代替として、ルールに準拠しなくなった部分は、破棄されてもよい。更に、ルールの変更が、システムによって順守できない変更である場合、報告のためのメカニズムがトリガーされてもよく、データの一部がこの新しいポリシーに関して危険にさらされているということが、ユーザに知らされる。
【００６４】
[1064]本明細書に記載されているように、一部の実施形態では、システム内のすべてのアイテム（例えば、データブロック）が、エンドユーザが（例えば、ＯＱＬモジュールを介して）最初に示したルールに従っていることを、ユーザが検証して妥当性を確認するために、透明な台帳（又はブロックチェーン）が生成される。ブロックチェーン台帳の生成において、システムは、（実際のトランザクションの追跡の観点から言えば）「買い手」であると考えることができる。したがって、アップロード時のオブジェクト（又はデータ）は、デフォルトのポリシーで動作し、アップロードが完了した後に、オフプレミスの複製を作成し、第２の複製を使用して、そのオフプレミスの複製を保護する。この時点で、名前空間のルールは、作業を開始するための保護されたオブジェクトを含んでいる。特定の実施形態では、名前空間のルールは、広範囲且つ多様であってもよい。
【００６５】
[1065]特定の実施形態によれば、買い手であると考えられるシステム、及び売り手であると考えられるすべてのクライアントは、トランザクションの妥当性確認を容易にする。エンドユーザがオブジェクトをシステムに追加したい場合、エンドユーザが「売ろうとする意図」をポストする、と言うことができる。システムが帯域幅を持っている場合、システムはその販売を選択し、契約の条件（５０年間の格納、又は自国内での維持など）を適用してもよく、普遍的に一意であるオブジェクトＩＤを返信することによって、トランザクションを完了する。加えて、この一意のＩＤに違反するその他のトランザクションが、同じ方法でログに記録されてもよく、最新の表示、又は完全な履歴の監査を可能にする。
【００６６】
[1066]一例として、名前空間が、データが変更不可能な媒体に５０年間格納される、というルールを持っている場合について考える。この例では、オンプレミスに１つのコピー、オフプレミスに１つのミラーが存在すると考える。更に、オフプレミスから記録用媒体へのネットワークが好ましいと見なされていると考える。その場合、オフプレミスからの１つのコピーが、記録用媒体上に作成される。この作成の完了後に、３つのコピーがすべて削除されてもよく、クライアントに（例えば、分散型台帳を介して）完了が通知される。
【００６７】
[1067]そのような例では、クライアントが（例えば、アップロードなどのデータトランザクションを実行するために）「販売の要求」を挿入する場合、システムは、その販売を実現させるステップを完了するたびに、台帳を更新してもよい。本明細書に記載されたような、台帳システム（又はブロックチェーンシステム）の使用は、透明で、ハッキングに対する耐性を持ち、信頼性があり、極めて大きな拡張性を有する、データ「販売」要求を処理するための方法を提供する。オブジェクトが最初に作成されるときに、クライアントは、オリジナルを削除せず（すなわち、オリジナルのバイトを消去せず）、代わりに第１の台帳のエントリが作成されるのを待つはずである。第１の台帳のエントリは、例えば、ブロックチェーンモジュール又は任意のその他の適切なモジュールによって作成され得る。この時点で、オフプレミスの複製が完了する。この手順を使用するとき、データが喪失の危険にさらされる時間は存在しない。一部の実施形態では、クライアントは、次のエントリ（作成されたリモートミラー）又は最後のエントリのいずれかを待つことができる。クライアントは、粒度を使用して、独自のリスク許容度を選択することができ、データが望ましいポリシーに従って保護される、時間又はその他の盲目的な仮定への依存を行わないことが可能になる。
【００６８】
[1068]別の例として、例えばキャッシュのコピーを生成するために、ルールのオーバーライドがシステムに提供され得る。そのようなオーバーライドトランザクションも台帳内のエントリであり、システムは、保存されたデータを忠実に呼び戻し、コピーを、クライアントがアクセスするのに適した媒体上に作成する。コピーの動作が完了した後に、トランザクションが完了し、台帳に登録される。
【００６９】
[1069]しかし、不正なユーザが、データを削除するための要求を発行した場合、そのような要求が台帳に入力される。検査時に（５０年が経過していなことを仮定する）、この要求は、違反していることが検出されて、拒否される。ユーザ（例えば、ユーザの管理者）は、この要求、及びシステムがこの要求に従うことができないこと、並びにこの要求を発行した人の指紋を確認する。このようにして、ユーザ管理者は、不正なユーザを発見する監査可能な方法を持つようになる。
【００７０】
[1070]透明な分散型台帳を生成することには、例えば請求書作成及び内部監査などの、他の用途もあり得る。一例として、異なる場所でのオブジェクトに対して、次の任意のコスト値を考える：最初のオンプレミスのバージョンは、単位当たり１０ドル、オフプレミスは、単位当たり５ドル、及び記録用は、単位当たり１ドル。したがって、ユーザが１単位のデータをアップロードすると、１０ドルかかり、５ドルかかるリモートの複製が作成され、５ドルのミラーバージョンが生成される。この仮定を用いると、これまでにクライアントは、この単位のデータに、２０ドルを費やした。ここで、記録用のコピーが作成され、元のデータが削除される。したがって、この単位のコストが１ドルに低下する。次に、データを取得することを許可されたユーザが、データをオンプレミスに呼び戻し、３つのコピーを作成するための要求を行う。呼び戻されて複製される単位に関して、単位当たりの請求金額が、１ドルから３０ドルに急に跳ね上がる。ユーザ管理者は、この金額を分散型台帳を介して確認し、社内の再請求システムを使用するか、或いはこの金額が過剰であると見なされる場合は、この要求を行ったエンドユーザのところへ行き、このポリシー要求を取り消させるか、又は少なくともコピーの数を減らさせることができる。
【００７１】
[1071]共有台帳システムに関して、これらの極めて批判に耐えられる外部の使用事例の他に、信じられないほど簡略化されたその他の内部の特徴がいくつか存在する。その１つが請求書作成、もう１つがデータの妥当性確認／検証（データの完全性の証明）であり、更にもう１つがデータのプリフェッチング／ステージングである。
【００７２】
[1072]ハッシュツリーモジュール（図４及び５のハッシュツリーの概略図にも示されている）は、データ処理のための多くの改良された方法を容易にすることができる。例えば、データのすべての単位に対して１つのハッシュツリーを維持することによって、ハッシュのサイズのシンプルな計算を可能にする。更に、オブジェクトの中程度のハッシュ値から強力なハッシュ値までの使用は、飛行中の検証を可能にし、強力なメカニズムが使用された場合は、無効なデータの飛行中の修正さえシンプルなプロセスになる。
【００７３】
[1073]図４及び５を参照すると、インテリジェントな方法でこれらのツリーを編成することによって、要求パターンの迅速な検出を可能にし、したがって、従来よりも高確率の精度で、キャッシュにデータをより迅速に入力することができる。したがって、データを使用したいユーザは、オブジェクト全体が新しく要求された場所に返される前に、そのデータを使用することができる。他のすべてのシステムは、Ｉ／Ｏが開始する前に、オブジェクト全体が再構築されることを必要とする。
【００７４】
[1074]また、公開キー−秘密キー構造を伴う、名前空間又は名前空間内のオブジェクトのその他の実施可能要件が、本明細書に記載されたシステム及び方法によって可能にされる。具体的には、ユーザは、タグを追加して、キーを使用した場合にのみデータにアクセスできるようにすることができる。このキーは、台帳に登録される。その後、キーの所有者がオブジェクトに対する権限を別のユーザに付与したい場合、キーの所有者は、他のユーザに対して公開キー（public key、パブリックキー）を要求し、その公開キーを秘密キー（privatekey、プライベートキー）と共に台帳に追加し、このようにして、オブジェクトにアクセスする能力を他のユーザに付与する。その後、他のユーザは、名前空間内のオブジェクトのコピー又はキャッシュされたコピーなどを作成するための要求を行うことができ、その分岐が元の名前空間の台帳に記入され、コピーが作成される。このコピーが管理される方法に関するルールの例としては、無料サンプル（第２のユーザが永続的に権限を有する）、制限されたアクセス、又は時間制限のあるアクセス（つまり、第２のユーザは、特定の時間の間、又は所有者によって自由に取り消し可能であるなどの、読み取り権限を有する）、及び多くのその他の組み合わせが挙げられる。取り消し可能なオブジェクトの場合、新しいユーザは、元の台帳への参照を含むエントリを取得する。元の台帳が、第２のユーザの公開キーを削除するトランザクションを受信した後に、このオブジェクトへのアクセスが終了される。
【００７５】
[1075]科学界には、変更不可能なデータの大きいコーパスが存在しており、このコーパスは、プライベートである期間を含み、その後、共同機関を追加し、最終的に世界的アクセスを提供するという、ライフサイクルを持っている。例えば、このコーパスは、時間と共に変化するデータフローに関連することがある。したがって、台帳システムの特定の実施形態は、前述したように、このデータフロー及び多くのその他のデータフローに最適であることがある。更に、アクセス制限を完全に取り除くことは、独立した公開キーを公表すること、又はキーに空のフィールドとしてタグ付けすることを含んでもよい。これらの状態の変化は、すべて台帳に記録することができ、監査可能であり、可視であり、反駁を許さない。
【００７６】
[1076]上の例では、公開キー−秘密キー構造は、暗号化されていないデータへのアクセスのことを指していてもよい。ユーザがデータを暗号化してからアップロードした場合でも、暗号化されたデータへのアクセス権限が付与されてもよい。したがって、暗号解読を完了することがまだできないことがある。しかし、他の実施形態によれば、データは、メタデータ台帳とは別に暗号化されてもよい。例えば、台帳は、ユーザが他のユーザ台帳を覗くことができないように、ユーザ台帳ごとに一意のキーを含む。
【００７７】
[1077]本明細書に記載されたブロックチェーンシステム及び方法の別の例として、ユーザ（又はクライアント）は、３０年間データを格納し、最後に、格納されたデータを自動的に除去するための場所を、作成したいことがある。更に、ユーザは、格納及び除去の準拠を保証するために、トランザクションが監査可能であることを必要とすることがある。一部の実施形態では、この機能を可能にするように、ＯＱＬモジュールが構成され得る。図６〜１０は、特定の実施形態に従う、ＯＱＬモジュールのポリシー、動作、及びオペランドを示している。そのような実施形態では、ＯＱＬモジュールは、ルール、動作、及び論理という３つの構文を含んでもよい。１つの例として、ＯＱＬは次を含んでもよいが、これに限定されない。
・ｃｒｅａｔｅ  ｎａｍｅｓｐａｃｅ  ａｌｉａｓ＝３０ｙｅａｒ＿ｒｅｔｅｎｔｉｏｎ  ｐｏｌｉｃｉｅｓ：  ｒｅｔａｉｎ＝３０  ｐｕｒｇｅ＝ｔｒｕｅ
・・上記の戻り値は、名前ＩＤ及びそのエイリアスである。
【００７８】
[1078]ユーザがデータを名前空間に格納したい場合は、次のようになる。
・Ｏｐｅｎ  ３０ｙｅａｒ＿ｒｅｔｅｎｔｉｏｎ；  ｐｕｔ  ＜追加されているオブジェクトのパス＞；  ｃｌｏｓｅ  ３０ｙｅａｒ＿ｒｅｔｅｎｔｉｏｎ
・・戻り値は、オブジェクトの寿命以上の期間の間、ユーザが維持する、耐久性のあるＯＩＤである。
・・ｏｐｅｎステートメント及びｃｌｏｓｅステートメントを追加する目的は、数百万個のオブジェクトをすべて１回の実行で一括処理し、それらのオブジェクトを囲むコンテナを追加することである。
【００７９】
[1079]ユーザが、ポリシーが機能していることを確認したい場合は、次のようになる。
・ｏｐｅｎ  ３０ｙｅａｒ＿ｒｅｔｅｎｔｉｏｎ；  ｄｅｌｅｔｅ  ＜ＯＩＤ＞
・・この時点で、削除コマンドが特定のオブジェクトに送信される。
・・システムはメタデータを調べ、オブジェクトが今書き込まれたばかりであり、３０年の不変性フラグを有していることを確認する。したがって、システムは、オブジェクトを削除する代わりに、違反の通知をアカウント所有者に送信し、ユーザにエラーを返信する。
【００８０】
[1080]ユーザが、データが期待通りに格納されていることを監査したい場合は、次のようになる。
・ｏｐｅｎ  ３０ｙｅａｒ＿ｒｅｔｅｎｔｉｏｎ；  ｔｅｓｔ  ＜ＯＩＤ＞
・・応答は、ポリシー設定を探し、オブジェクトのシャードを検索し、ポリシー設定が実行されていることを検証することである。
・・＜ＯＩＤ＞は、３０年の不変性のポリシーを有しており、現在、このルールに準拠していないアクセスノード上にある。具体的には、データは、今書き込まれたため、保管層にまだ渡されていない。したがって、初期テスト後に、第２のテストが設定時間に実行された場合、結果は次のようになる。＜ＯＩＤ＞は、３０年の不変性のポリシーを有しており、（一例として）指定された故障率を十分下回る１．２＾−３６の予想故障率を有する７つの媒体ライブラリにまたがってシャーディングされている。
【００８１】
[1081]ユーザが、オブジェクトを年末のデータの実行に使用したい場合は、次のようになる。
・Ｏｐｅｎ  ３０ｙｅａｒ＿ｒｅｔｅｎｔｉｏｎ；  ｃｏｐｙ  ＜ＯＩＤ＞  ｔｏ  ＜オブジェクトを配置するパス＞；  ｃｌｏｓｅ  ３０ｙｅａｒ＿ｒｅｔｅｎｔｉｏｎ
・・応答は、オブジェクトを取得して、指定された場所に配置することである。この例は、非常にユーザ対話的であってもよい。実際、照会が、関連するデータを検索し、そのデータを検査のためにアクセスボックスにステージングすることである、ということがあり得る。
・・Ｏｐｅｎ  ３０ｙｅａｒ＿ｒｅｔｅｎｔｉｏｎ；  ｍｉｇｒａｔｅ  ＜データセット＞  ｔｏ  ＜サイトＩＤ＞；  ｃｌｏｓｅ。不変性フラグを前提として、この動作はワーキングコピーを生成するが、オリジナルを削除しない。
【００８２】
[1082]３０年の期間の最後に、次を実行する。
・Ｏｐｅｎ  ３０ｙｅａｒ＿ｒｅｔｅｎｔｉｏｎ；  ｇｅｔ  ＜ｏｉｄ＞。応答は、ＯＩＤが有効でなくなったことを示すエラーである。
【００８３】
[1083]上記は、特定の実施形態に従うＯＱＬモジュールの構造及び機能の一例にすぎない。一部の実施形態では、ＯＱＬモジュールは、望ましいビジネスロジックの可能性を実現するための十分な量及び種類のプリミティブを含んでもよい。例えば、一部の実施形態では、ＯＱＬモジュールは、２１個以上のプリミティブを含むことができる。他の実施形態では、ＯＱＬモジュールは、２６個以上のプリミティブを含むことができる。更に、特定の実施形態では、プリミティブは、この言語の基礎構造であることができ、更に小さい構成要素に分解できず、代わりに、ルールを構成するより大きく複雑な文の作成に使用することができる。言い換えると、プリミティブは、ＡＰＩの最小の原子単位を表すことができる。
【００８４】
[1084]本明細書に記載された一部の実施形態は、本明細書に記載され、図１〜１２に示された動作のいずれかを含む、コンピュータに実装されるさまざまな動作を実行するための命令又はコンピュータコードを含んでいる非一時的コンピュータ可読媒体（非一時的プロセッサ可読媒体と呼ぶこともできる）を備える、コンピュータストレージ製品に関連している。図１〜１１に示された信号又はブロックが、ハードウェア、ソフトウェア、ファームウェア、１つ又は複数のプロセッサ、及び／又は回路などのさまざまな手段、或いはこれらの組み合わせによって実装されてもよいということが、理解されるべきである。コンピュータ可読媒体（又はプロセッサ可読媒体）は、それ自体が一時的な伝搬信号（例えば、空間又はケーブルなどの伝送媒体で情報を搬送する、伝搬する電磁波）を含んでいないという意味で、非一時的である。媒体及びコンピュータコード（コードと呼ぶこともできる）は、特定の１つ又は複数の目的のために設計されて構築されたものであってもよい。非一時的コンピュータ可読媒体の例としては、ハードディスク、フロッピーディスク、及び磁気テープなどの磁気ストレージ媒体、コンパクトディスク／デジタルビデオディスク（ＣＤ／ＤＶＤ：Ｃｏｍｐａｃｔ  Ｄｉｓｃ／Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｃｓ）、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｉｅｓ）、及びホログラフィックデバイスなどの光ストレージ媒体、光ディスクなどの光磁気ストレージ媒体、搬送波信号処理モジュール、並びに特定用途向け集積回路（ＡＳＩＣ：Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ）デバイス、プログラマブル論理デバイス（ＰＬＤ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅｓ）、読み取り専用メモリ（ＲＯＭ：Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）デバイス、及びランダムアクセスメモリ（ＲＡＭ：Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）デバイスなどの、プログラムコードを格納して実行するように特別に構成されたハードウェアデバイスなどが挙げられるが、これらに限定されない。本明細書に記載された他の実施形態は、例えば本明細書に記載された命令及び／又はコンピュータコードを含むことができる、コンピュータプログラム製品に関連している。
【００８５】
[1085]図１１は、特定の実施形態に従う、方法のフローチャートを示している。図１１に示された方法は、５０１で、統合クラウドコンピューティングネットワークのクライアントに関連付けられたトランザクションの分散型台帳のセットをネットワークノードにおいて作成することを含む。この方法は、５０５で、一連の事前に定義されたルールに従って、トランザクションに対応するデータを格納して処理することも含む。この方法は、５１０で、トランザクションが一連の事前に定義されたルールに準拠しているかどうかを確認するためにトランザクションの妥当性を確認することを含んでもよい。この方法は、５１５で、有効なトランザクションごとに、分散型台帳のセットのうちの台帳にエントリを追加することを更に含んでもよい。加えて、この方法は、５２０で、無効なトランザクションごとに、分散型台帳のセットのうちの台帳にサイドブランチを追加することを含んでもよい。更に、この方法は、５２５で、台帳のセットをクライアントに関連付けられたエンドポイントに分散することを含んでもよい。
【００８６】
[1086]図１１に更に示されているように、この方法は、５３０で、クライアントのトランザクションに対応するデータ、及び少なくとももう１つのクライアントの他のトランザクションに対応するデータを、別々の台帳で維持することを含む。この方法は、５３５で、オブジェクト照会言語モジュール、ハッシュツリーモジュール、及びブロックチェーンモジュールを実装することによって分散型台帳のセットを管理することを更に含む。特定の実施形態によれば、分散型台帳のセットの各分散型台帳は、クライアントに固有の一意のルートキーを含んでもよい。他の実施形態では、一連の事前に定義されたルールは、暗号ルール、地理的ルール、寿命ルール、耐久性ルール、又は保持ルールを含んでもよい。更に他の実施形態では、オブジェクト照会言語モジュールは、データ処理に関する一連のルールを受信するように構成されてもよく、ハッシュツリーモジュールは、各トランザクションに関する情報を記録するハッシュツリー構造を生成するように構成されてもよく、ブロックチェーンモジュールは、各トランザクションを表すエントリを含む共有台帳を生成するように構成されてもよい。
【００８７】
[1087]図１２は、特定の実施形態に従う装置１０を示している。一実施形態では、装置１０は、例えば、ブロックチェーンハンドラ、クライアントＡＰ、或いはサーバ、コンピュータ、又は電子モバイルデバイス若しくは電子モバイルコンピュータなどのネットワークノードなどの、複数のデバイスを含んでもよい。他の実施形態では、装置１０は、図１〜４のブロックに示された任意の構成要素又はユニットであってもよく、互いに独立して、又は互いに任意の組み合わせで、動作してもよい。図１２では１つの装置１０のみが示されているが、他の実施形態では、前述したように、２つ以上の装置１０が、システムとしてさまざまな組み合わせで一緒に、又は独立して、実装されてもよい。
【００８８】
[1088]装置１０は、情報を処理して命令又は動作を実行するためのプロセッサ２２を含んでもよい。プロセッサ２２は、中央処理装置（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、デジタル信号プロセッサ（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理デバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙｓ）、デジタル的に強化された回路、又は同等のデバイス、或いはこれらの組み合わせなどの、任意の計算処理デバイス又はデータ処理デバイスによって具現化されてもよい。プロセッサ２２は、単一のコントローラ、或いは複数のコントローラ又はプロセッサとして実装されてもよい。
【００８９】
[1089]ファームウェア又はソフトウェアの場合、実装は、少なくとも１つのチップセットのモジュール又はユニット（例えば、手順、機能など）を含んでもよい。メモリ１４は、前述したストレージデバイスなどの、独立している任意の適切なストレージデバイスであってもよい。メモリ及びコンピュータプログラム命令は、特定のデバイスのプロセッサと共に、装置１０などのハードウェア装置に、前述したプロセスのいずれかを実行させるように、構成されてもよい（例えば、図１〜１１を参照）。したがって、前述したように、特定の実施形態では、非一時的コンピュータ可読媒体は、コンピュータ命令又は１つ又は複数のコンピュータプログラム（追加又は更新されたソフトウェアルーチン、アプレット、又はマクロなど）を使用してエンコードされてもよく、これらのコンピュータ命令又は１つ又は複数のコンピュータプログラムは、ハードウェアにおいて実行されたときに、本明細書に記載されたプロセスのうちの１つなどのプロセスを実行してもよい。代替として、特定の実施形態は、ハードウェアにおいて全体的に実行されてもよい。
【００９０】
[1090]特定の実施形態によれば、メモリ１４は、プロセッサ２２によって実行できる情報及び命令を格納するために、プロセッサ２２に結合されてもよい。メモリ１４は、１つ又は複数のメモリであってもよく、ローカルな適用環境に適した任意の種類であってもよく、半導体ベースのメモリデバイス、磁気メモリデバイス若しくはシステム、光メモリデバイス若しくはシステム、固定メモリ、及び取り外し可能メモリなどの、任意の適切な揮発性又は不揮発性データストレージ技術を使用して実装されてもよい。そのようなメモリの例としては、前述したメモリが挙げられる。
【００９１】
[1091]装置１０は、信号及び／又はデータを装置１０との間で送信及び受信するための１つ又は複数のアンテナ（図示されていない）を含んでもよい。装置１０は、トランシーバ２８を更に含んでもよく、トランシーバ２８は、情報をアンテナ（複数可）による送信用の搬送波形に変調し、アンテナ（複数可）を介して受信された情報を、装置１０の他の要素によって更に処理するために復調する。他の実施形態では、トランシーバ２８は、信号又はデータを直接送信及び受信することができてもよい。
【００９２】
[1092]特定の実施形態によれば、プロセッサ２２は、上で説明され、図に示された手順のいずれかを含むが、これらに限定されない、装置１０の動作に関連付けられた機能を実行してもよい。
【００９３】
[1093]他の実施形態では、メモリ１４は、プロセッサ２２によって実行されたときに機能を提供するソフトウェアモジュールを格納してもよい。これらのモジュールは、オペレーティングシステム機能を装置１０に提供するオペレーティングシステム１５を含んでもよい。メモリ１４は、追加機能を装置１０に提供するために、アプリケーション又はプログラムなどの１つ又は複数の機能モジュール１８を格納してもよい。装置１０の構成要素は、ハードウェア、又はハードウェア及びソフトウェアの任意の適切な組み合わせにおいて実装されてもよい。
【００９４】
[1094]コンピュータコードの例としては、マイクロコード又はマイクロ命令、コンパイラによって生成される機械命令などの機械命令、Ｗｅｂサービスを生成するために使用されるコード、及びインタープリタを使用してコンピュータによって実行される、より高レベルな命令を含んでいるファイルなどが挙げられるが、これらに限定されない。例えば、実施形態は、命令型プログラミング言語（例えば、Ｃ、Ｆｏｒｔｒａｎなど）、関数型プログラミング言語（Ｈａｓｋｅｌｌ、Ｅｒｌａｎｇなど）、論理型プログラミング言語（例えば、Ｐｒｏｌｏｇ）、オブジェクト指向プログラミング言語（例えば、Ｊａｖａ［登録商標］、Ｃ＋＋など）、又はその他の適切なプログラミング言語、及び／或いは開発ツールを使用して実装されてもよい。コンピュータコードのその他の例としては、制御信号、暗号化されたコード、及び圧縮されたコードが挙げられるが、これらに限定されない。
【００９５】
[1095]一部の実施形態では、ブロックチェーンシステム及び／又は方法は、ユーザに関連付けられた名前空間を自由に提供するためのデータマスキングを含む。
【００９６】
[1096]一部の実施形態では、ブロックチェーンシステム及び／又は方法は、本明細書に記載されているように、メタデータを保管するように構成される。
【００９７】
[1097]説明された本発明の特徴、優位性、及び特性は、１つ又は複数の実施形態において、任意の適切な方法で組み合わせられ得る。当業者は、特定の実施形態の特定の特徴又は優位性のうちの１つ又は複数がなくても、本発明が実践され得るということを、認識するであろう。他の例では、本発明のすべての実施形態に存在しないことがある追加の特徴及び優位性が、特定の実施形態において認識され得る。当業者は、開示された順序とは異なる順序でステップを使用して、及び／又は開示された構成におけるハードウェア要素とは異なるハードウェア要素を使用して、前述したように本発明を実践できるということを、容易に理解するであろう。したがって、本発明は、これらの好ましい実施形態に基づいて説明されたが、本発明の思想及び範囲内に留まりながら、特定の変更、変形、及び代替の構造が明白であるということは、当業者にとって明らかであろう。
【図１】
2019532419.tif 000003
【図２】
2019532419.tif 000004
【図３】
2019532419.tif 000005
【図４】
2019532419.tif 000006
【図５】
2019532419.tif 000007
【図６】
2019532419.tif 000008
【図７】
2019532419.tif 000009
【図８】
2019532419.tif 000010
【図９】
2019532419.tif 000011
【図１０】
2019532419.tif 000012
【図１１】
2019532419.tif 000013
【図１２】
2019532419.tif 000014
【国際調査報告】
2019532419.tif 000015
2019532419.tif 000016
2019532419.tif 000017