(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-05
(45)【発行日】2024-12-13
(54)【発明の名称】分散型台帳を使用した拡張現実のためのユーザデータ管理
(51)【国際特許分類】
H04L 9/32 20060101AFI20241206BHJP
G06F 21/62 20130101ALI20241206BHJP
G06F 21/60 20130101ALI20241206BHJP
【FI】
H04L9/32 200Z
G06F21/62 354
G06F21/60 320
(21)【出願番号】P 2022506148
(86)(22)【出願日】2020-07-29
(86)【国際出願番号】 US2020044086
(87)【国際公開番号】W WO2021021942
(87)【国際公開日】2021-02-04
【審査請求日】2023-07-28
(32)【優先日】2019-07-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100078282
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】キャンベル, ジョン
(72)【発明者】
【氏名】オルシャンスキー, ダニエル
(72)【発明者】
【氏名】カー, マイケル ロイヤル
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2004-192353(JP,A)
【文献】特開2000-156883(JP,A)
【文献】特表2018-522324(JP,A)
【文献】米国特許出願公開第2016/0335802(US,A1)
【文献】国際公開第2019/101225(WO,A2)
【文献】米国特許出願公開第2019/0028277(US,A1)
【文献】米国特許出願公開第2019/0166101(US,A1)
【文献】特開2007-134866(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/62
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
ユーザデバイスであって、
コンピュータ実行可能命令を記憶するように構成される1つ
以上のコンピュータ可読記憶デバイスと、
頭部搭載型ディスプレイと、
前記ユーザデバイスの周囲を検出するように構成されるセンサと、
ネットワークインターフェースと、
1つ
以上のハードウェアコンピュータプロセッサであって、前記1つ
以上のハードウェアコンピュータプロセッサは、前記1つ
以上のコンピュータ可読記憶デバイスと通信し、前記コンピュータ実行可能命令を実行し、前記ユーザデバイスに、
第1のユーザと関連付けられるプライバシ設定を受信することと、
前記ネットワークインターフェースを介して分散型台帳マネージャに、分散型台帳上への記憶のために、前記プライバシ設定を伝送することであって、前記分散型台帳マネージャは、分散型台帳と、前記分散型台帳を読み取り、前記分散型台帳に書き込むように構成されるソフトウェアとを備える、ことと、
前記ネットワークインターフェースを介して前記分散型台帳マネージャから、前記第1のユーザと関連付けられる第1のパブリック暗号化キーを受信することと、
前記センサを介して、前記ユーザデバイスと関連付けられる環境データを収集することであって、前記センサは、前記ユーザデバイスの周囲を検出するように構成される、ことと、
前記第1のパブリック暗号化キーに基づいて、前記環境データを暗号化することと、
前記暗号化された環境データにメタデータを意味論的にタグ付けすることであって、前記メタデータは、少なくとも、前記ユーザデバイスについての識別情報を示す、ことと、
前記ネットワークインターフェースを介してデータプラットフォームに、前記意味論的にタグ付けされ暗号化された環境データを伝送することであって、前記データプラットフォームは、1つ
以上のデータベースを備える、ことと
を行わせる、1つ
以上のハードウェアコンピュータプロセッサと
を備える、ユーザデバイス。
【請求項2】
前記データプラットフォームのオペレータは、前記オペレータが、前記環境データを解読するための適切なキーを有していないため、前記環境データへの直接アクセスを有さない、請求項1に記載のユーザデバイス。
【請求項3】
前記
第1のパブリック暗号化キーは、前記プライバシ設定に少なくとも部分的に基づいて、前記分散型台帳マネージャによって生成される、請求項1に記載のユーザデバイス。
【請求項4】
前記センサは、加速度計、カメラ、およびGPSセンサのうちの1つ
以上のものを含む、請求項1に記載のユーザデバイス。
【請求項5】
前記メタデータは、暗号化されない、請求項1に記載のユーザデバイス。
【請求項6】
ユーザデバイスであって、
コンピュータ実行可能命令を記憶するように構成される1つ
以上のコンピュータ可読記憶デバイスと、
頭部搭載型ディスプレイと、
1つ
以上のハードウェアコンピュータプロセッサであって、前記1つ
以上のハードウェアコンピュータプロセッサは、前記1つ
以上のコンピュータ可読記憶デバイスと通信し、前記コンピュータ実行可能命令を実行し、前記ユーザデバイスに、
第1のユーザと関連付けられるプライバシ設定を受信することと、
分散型台帳マネージャに、前記プライバシ設定を伝送することと、
前記分散型台帳マネージャから、前記第1のユーザと関連付けられる第1のパブリック暗号化キーを受信することと、
1つ
以上のセンサを介して、前記ユーザデバイスと関連付けられる環境データを収集することと、
前記第1のパブリック暗号化キーに基づいて、前記環境データを暗号化することと、
前記暗号化された環境データにメタデータを意味論的にタグ付けすることであって、前記メタデータは、少なくとも、前記ユーザデバイスについての識別情報を示す、ことと、
データプラットフォームに、前記意味論的にタグ付けされ暗号化された環境データを伝送することと
を行わせる、1つ
以上のハードウェアコンピュータプロセッサと
を備える、ユーザデバイス。
【請求項7】
前記
第1のパブリック暗号化キーは、前記プライバシ設定に少なくとも部分的に基づいて、前記分散型台帳マネージャによって生成される、請求項6に記載のユーザデバイス。
【請求項8】
前記1つ
以上のセンサは、前記ユーザデバイスの周囲を検出するように構成される、請求項6に記載のユーザデバイス。
【請求項9】
前記1つ
以上のセンサは、加速度計、カメラ、およびGPSセンサのうちの1つ
以上のものを含む、請求項6に記載のユーザデバイス。
【請求項10】
前記メタデータは、暗号化されない、請求項6に記載のユーザデバイス。
【請求項11】
前記分散型台帳マネージャは、分散型台帳と、前記分散型台帳を読み取り、前記分散型台帳に書き込むように構成されるソフトウェアとを備える、請求項6に記載のユーザデバイス。
【請求項12】
前記データプラットフォームは、1つ
以上のデータベースを備える、請求項6に記載のユーザデバイス。
【請求項13】
前記データプラットフォームのオペレータは、前記環境データを解読するための適切なキーを有していない、請求項6に記載のユーザデバイス。
【請求項14】
ユーザデバイスによって実施される方法であって、
前記ユーザデバイスが、第1のユーザと関連付けられるプライバシ設定を受信することと、
前記ユーザデバイスが、分散型台帳マネージャに、前記プライバシ設定を伝送することと、
前記ユーザデバイスが、前記分散型台帳マネージャから、前記第1のユーザと関連付けられる第1のパブリック暗号化キーを受信することと、
前記ユーザデバイスが、1つ
以上のセンサを介して、ユーザデバイスと関連付けられる環境データを収集することと、
前記ユーザデバイスが、前記第1のパブリック暗号化キーに基づいて、前記環境データを暗号化することと、
前記ユーザデバイスが、前記暗号化された環境データにメタデータを意味論的にタグ付けすることであって、前記メタデータは、少なくとも、前記ユーザデバイスについての識別情報を示す、ことと、
前記ユーザデバイスが、データプラットフォームに、前記意味論的にタグ付けされ暗号化された環境データを伝送することであって、前記データプラットフォームは、1つ
以上のデータベースを備える、ことと
を含む、方法。
【請求項15】
前記
第1のパブリック暗号化キーは、前記プライバシ設定に少なくとも部分的に基づいて、前記分散型台帳マネージャによって生成される、請求項14に記載の方法。
【請求項16】
前記1つ
以上のセンサは、前記ユーザデバイスの周囲を検出するように構成される、請求項14に記載の方法。
【請求項17】
前記1つ
以上のセンサは、加速度計、カメラ、およびGPSセンサのうちの1つ
以上のものを含む、請求項14に記載の方法。
【請求項18】
前記メタデータは、暗号化されない、請求項14に記載の方法。
【請求項19】
前記分散型台帳マネージャは、分散型台帳と、前記分散型台帳を読み取り、前記分散型台帳に書き込むように構成されるソフトウェアとを備える、請求項14に記載の方法。
【請求項20】
前記データプラットフォームのオペレータは、前記環境データを解読するための適切なキーを有していない、請求項14に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、参照することによってその全体として本明細書に組み込まれる、2019年7月31日に出願され、「USER DATA MANAGEMENT FOR AUGMENTED REALITY USING A DISTRIBUTED LEDGER」と題された、米国特許出願第62/881,025号の優先権の利益を主張する。
(限定著作権表示)
【0002】
本特許文書の開示の一部は、著作権保護の対象となる資料を含む。著作権者は、米国特許商標庁の特許ファイルまたは記録に見られるような、特許文書または特許開示の任意の者によるファクシミリ複製に異議を唱えないが、それ以外の場合は全ての著作権を留保する。
【0003】
本開示は、セキュアデータ記憶、転送、およびアクセスのためのシステムおよび方法に関し、特に、データのルールベースの記憶、転送、およびアクセスのためのシステムおよび方法に関する。本システムおよび方法は、拡張、複合、または仮想現実環境内で使用されることができる。
【背景技術】
【0004】
企業は、そのユーザまたは顧客に関する膨大な量のユーザデータを収集する。本ユーザデータは、例えば、標的化広告または統計的分析のために、コンピュータモデルを構築するために使用されることができる。企業は、本ユーザデータを利益のために収集および販売し、これは、ユーザのプライバシを犠牲にすることになり得、かつユーザの知識の及ばないところで行われ得る。最近、ユーザデータを収集および販売する、多くの企業が、誤った方法でデータを販売しているか、またはデータを盗難し、ブラックマーケットで後に販売している、サードパーティによって、セキュリティ侵害もしくはハッキングされているかのいずれかの状態にある。
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書に開示されるものは、分散型台帳を使用して、ユーザプライバシ設定を設定し、それにアクセスし、かつそれを修正するためのシステムおよび方法である。ある側面では、本システムは、ユーザと関連付けられる、プライバシ設定を受信し、少なくとも部分的に、プライバシ設定に基づいて、ソフトウエアコントラクトを作成することができる。本システムは、次いで、プライベートキーおよびパブリックキーを作成することができる。本システムは、ソフトウエアコントラクトおよびプライベートキーを分散型台帳内に記憶し、パブリックキーを、ユーザデータを収集し、ユーザデータにメタデータを意味論的にタグ付けするように構成される、デバイスに伝送することができる。
【0006】
別の側面では、本システムは、データ仮想化プラットフォームから、特定のユーザに関するユーザデータへのアクセスのための要求を受信することができる。次いで、本システムは、以前に記憶されたソフトウエアコントラクトを検索し、ユーザと関連付けられる、ソフトウエアコントラクトの最新バージョンを特定し、検索に基づいて、ユーザデータが共有されることが許可されることを決定することができる。本システムは、次いで、データ仮想化プラットフォームに、ユーザデータをデータプラットフォームから抽出する方法に関する命令を伝送することができる。次いで、本システムは、データプラットフォームから、ユーザデータがデータ仮想化プラットフォームに伝送されたことの確認を受信することができ、次いで、本システムは、ユーザと関連付けられる、プライベート暗号化キーおよびソフトウエアコントラクトにアクセスすることができる。本システムは、次いで、データ照合システムに、プライベート暗号化キーおよびソフトウエアコントラクトと関連付けられる詳細を伝送し、次いで、データ照合システムから、プライベート暗号化キーおよびユーザデータがマッチングすることのインジケーションを受信することができる。次いで、プライベート暗号化キーおよびユーザデータがマッチングすることの受信されたインジケーションに基づいて、データ仮想化プラットフォームに、データ仮想化プラットフォームがデータプラットフォームから受信された暗号化されたユーザデータを解読し得るように、プライベート暗号化キーを伝送する。
【0007】
さらに別の側面では、本システムは、データ仮想化プラットフォームから、特定のユーザと関連付けられる、ユーザデータへのアクセスのための要求を受信することができる。次いで、本システムは、以前に記憶されたソフトウエアコントラクトを検索し、ユーザと関連付けられる、ソフトウエアコントラクトを特定し、検索に基づいて、ユーザデータが共有されることが許可されることを決定することができる。いくつかの側面では、ユーザデータは、1つまたはそれを上回るサードパーティサービスからのサードパーティデータを含むことができる。本システムは、次いで、サードパーティデータを1つまたはそれを上回るサードパーティサービスから抽出する方法に関する命令を準備し、データ仮想化プラットフォームに伝送し、データ仮想化プラットフォームから、サードパーティデータがデータ仮想化プラットフォームによって正常に読み出されたことの通知を受信することができる。通知の受信に応じて、本システムは、パブリック暗号化キーをソフトウエアコントラクトから読み出し、データ仮想化プラットフォームに、データ仮想化プラットフォームが、サードパーティデータを暗号化し、データプラットフォームに、記憶のために、サードパーティデータを伝送し得るように、パブリック暗号化キーを伝送することができる。
【0008】
本明細書に説明される拡張現実、仮想現実、および複合現実システムは、単に、実施例であって、実施形態または側面を説明される特定の技術に限定するものとして解釈されるべきではない。したがって、拡張現実、仮想現実、および複合現実システムが、本明細書に説明されるが、実施形態および開示は、データを収集または生成する任意の消費者電子デバイスに適用されることができることを理解されたい。
【0009】
本明細書に説明される主題の1つまたはそれを上回る実装の詳細は、付随の図面および下記の説明に記載される。他の特徴、側面、および利点は、説明、図面、ならびに請求項から明白となるであろう。本概要または以下の詳細な説明のいずれも、本開示の主題の範囲を定義または限定することを主張するものではない。本開示の付加的実施形態は、本開示の付加的説明としての役割を果たし得る、添付の請求項を参照して下記に説明される。
本発明は、例えば、以下を提供する。
(項目1)
ユーザデバイスであって、
コンピュータ実行可能命令を記憶するように構成される1つまたはそれを上回るコンピュータ可読記憶デバイスと、
頭部搭載型ディスプレイと、
前記ユーザデバイスの周囲を検出するように構成されるセンサと、
分散型台帳マネージャであって、前記分散型台帳マネージャは、分散型台帳と、前記分散型台帳を読み取り、そこに書き込むように構成されるソフトウェアとを備える、分散型台帳マネージャと、
1つまたはそれを上回るデータベースを備えるデータプラットフォームと、
ネットワークインターフェースと、
1つまたはそれを上回るハードウェアコンピュータプロセッサであって、前記1つまたはそれを上回るハードウェアコンピュータプロセッサは、前記1つまたはそれを上回るコンピュータ可読記憶デバイスと通信し、前記コンピュータ実行可能命令を実行し、前記ユーザデバイスに、
前記第1のユーザと関連付けられるプライバシ設定を受信することと、
分散型台帳マネージャに、前記プライバシ設定を伝送することと、
前記分散型台帳マネージャから、前記第1のユーザと関連付けられる第1のパブリック暗号化キーを受信することと、
前記センサを介して、前記ユーザデバイスと関連付けられる環境データを収集することと、
前記第1のパブリック暗号化キーに基づいて、前記環境データを暗号化することと、
前記暗号化された環境データにメタデータを意味論的にタグ付けすることであって、前記メタデータは、少なくとも、前記ユーザデバイスについての識別情報を示す、ことと、
データプラットフォームに、前記意味論的にタグ付けされ暗号化された環境データを伝送することであって、前記データプラットフォームは、1つまたはそれを上回るデータベースを備える、ことと
を行わせる、1つまたはそれを上回るハードウェアコンピュータプロセッサと
を備える、ユーザデバイス。
(項目2)
前記パブリック暗号化キーは、少なくとも部分的に、前記プライバシ設定に基づいて、前記分散型台帳マネージャによって生成される、項目1に記載のユーザデバイス。
(項目3)
前記センサは、加速度計、カメラ、およびGPSセンサのうちの1つまたはそれを上回るものを含む、項目1-2のいずれか1項に記載のユーザデバイス。
(項目4)
前記メタデータは、暗号化されない、項目1-3のいずれか1項に記載のユーザデバイス。
(項目5)
ユーザデバイスであって、
コンピュータ実行可能命令を記憶するように構成される1つまたはそれを上回るコンピュータ可読記憶デバイスと、
頭部搭載型ディスプレイと、
ネットワークインターフェースと、
1つまたはそれを上回るハードウェアコンピュータプロセッサであって、前記1つまたはそれを上回るハードウェアコンピュータプロセッサは、前記1つまたはそれを上回るコンピュータ可読記憶デバイスと通信し、前記コンピュータ実行可能命令を実行し、前記ユーザデバイスに、
前記第1のユーザと関連付けられるプライバシ設定を受信することと、
前記分散型台帳マネージャに、前記ネットワークインターフェースを介して、分散型台帳上への記憶のために、前記プライバシ設定を伝送することと、
前記分散型台帳マネージャから、前記ネットワークインターフェースを介して、前記第1のユーザと関連付けられる第1のパブリック暗号化キーを受信することと、
前記センサを介して、前記ユーザデバイスと関連付けられる環境データを収集することであって、前記センサは、前記ユーザデバイスの周囲を検出するように構成される、ことと、
前記第1のパブリック暗号化キーに基づいて、前記環境データを暗号化することと、
前記暗号化された環境データにメタデータを意味論的にタグ付けすることであって、前記メタデータは、少なくとも、前記ユーザデバイスについての識別情報を示す、ことと、
データプラットフォームに、前記ネットワークインターフェースを介して、前記意味論的にタグ付けされ暗号化された環境データを伝送することであって、前記データプラットフォームは、1つまたはそれを上回るデータベースを備える、ことと
を行わせる、1つまたはそれを上回るハードウェアコンピュータプロセッサと
を備える、ユーザデバイス。
(項目6)
前記パブリック暗号化キーは、少なくとも部分的に、前記プライバシ設定に基づいて、前記分散型台帳マネージャによって生成される、項目5に記載のユーザデバイス。
(項目7)
前記センサは、加速度計、カメラ、およびGPSセンサのうちの1つまたはそれを上回るものを含む、項目5-6のいずれか1項に記載のユーザデバイス。
(項目8)
前記メタデータは、暗号化されない、項目5-7のいずれか1項に記載のユーザデバイス。
(項目9)
方法であって、
第1のユーザと関連付けられるプライバシ設定を受信するステップと、
分散型台帳マネージャに、前記プライバシ設定を伝送するステップであって、前記分散型台帳マネージャは、分散型台帳と、前記分散型台帳を読み取り、そこに書き込むように構成されるソフトウェアとを備える、ステップと、
前記分散型台帳マネージャから、前記第1のユーザと関連付けられる第1のパブリック暗号化キーを受信するステップと、
センサを介して、前記ユーザデバイスと関連付けられる環境データを収集するステップであって、前記センサは、前記ユーザデバイスの周囲を検出するように構成される、ステップと、
前記第1のパブリック暗号化キーに基づいて、前記環境データを暗号化するステップと、
前記暗号化された環境データにメタデータを意味論的にタグ付けするステップであって、前記メタデータは、少なくとも、前記ユーザデバイスについての識別情報を示す、ステップと、
データプラットフォームに、前記意味論的にタグ付けされ暗号化された環境データを伝送するステップであって、前記データプラットフォームは、1つまたはそれを上回るデータベースを備える、ステップと
を含む、方法。
(項目10)
前記パブリック暗号化キーは、少なくとも部分的に、前記プライバシ設定に基づいて、前記分散型台帳マネージャによって生成される、項目9に記載の方法。
(項目11)
前記センサは、加速度計、カメラ、およびGPSセンサのうちの1つまたはそれを上回るものを含む、項目9-10のいずれか1項に記載の方法。
(項目12)
前記メタデータは、暗号化されない、項目9-11のいずれか1項に記載の方法。
(項目13)
システムであって、
1つまたはそれを上回るコンピュータ可読記憶デバイスであって、前記1つまたはそれを上回るコンピュータ可読記憶デバイスは、
コンピュータ実行可能命令と、
ユーザと関連付けられるプライバシ設定と、
ソフトウエアコントラクトであって、前記ソフトウエアコントラクトは、少なくとも部分的に、前記プライバシ設定に基づく、ソフトウエアコントラクトと、
前記ユーザと関連付けられるプライベート暗号化キーであって、各ユーザは、1つのプライベート暗号化キーを割り当てられる、プライベート暗号化キーと、
前記ユーザと関連付けられるパブリック暗号化キーであって、各ユーザは、1つのパブリック暗号化キーを割り当てられる、パブリック暗号化キーと、
前記ユーザと関連付けられるユーザデータと、
を記憶するように構成される、1つまたはそれを上回るコンピュータ可読記憶デバイスと、
ネットワークインターフェースと、
1つまたはそれを上回るハードウェアコンピュータプロセッサであって、前記1つまたはそれを上回るハードウェアコンピュータプロセッサは、前記1つまたはそれを上回るコンピュータ可読記憶デバイスと通信し、前記コンピュータ実行可能命令を実行し、前記システムに、
第1のデバイスから、前記ネットワークインターフェースを介して、前記ユーザのうちの第1のユーザと関連付けられる第1のプライバシ設定を受信することと、
少なくとも部分的に、前記第1のプライバシ設定に基づいて、第1のソフトウエアコントラクトを作成することであって、前記第1のソフトウエアコントラクトは、前記第1のプライバシ設定を実装するように構成される、ことと、
前記第1のユーザと関連付けられる第1のプライベートキーを作成および暗号化することと、
第1のソフトウエアコントラクトおよび暗号化された第1のプライベートキーを記憶することと、
前記第1のユーザと関連付けられる第1のパブリックキーを作成することと、
前記第1のデバイスに、前記ネットワークインターフェースを介して、前記第1のパブリックキーを伝送することであって、前記第1のデバイスは、第1のユーザデータを収集し、前記第1のユーザデータに第1のメタデータを意味論的にタグ付けするように構成される、ことと
を行わせる、1つまたはそれを上回るハードウェアコンピュータプロセッサと
を備える、システム。
(項目14)
前記第1のソフトウエアコントラクトは、スマートコントラクトである、項目13に記載のシステム。
(項目15)
前記第1のソフトウエアコントラクトおよび暗号化された第1のプライベートキーは、分散型台帳内に記憶される、項目14に記載のシステム。
(項目16)
1つまたはそれを上回るデータベースを備えるデータプラットフォームをさらに備え、
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、前記システムに、
前記第1のデバイスから、第1のユーザデータを受信することであって、前記第1のユーザデータは、1つまたはそれを上回る意味論タグで意味論的にタグ付けされる、ことと、
第1のユーザデータを前記データプラットフォーム内に記憶することであって、前記データプラットフォームは、前記分散型台帳と別個である、ことと、
ハッシュ識別値を計算し、前記第1のユーザデータに割り当てることと、
前記1つまたはそれを上回る意味論タグおよびハッシュ識別値を分散型台帳内にエンコーディングすることと
を行わせるように構成される、項目13-15のいずれか1項に記載のシステム。
(項目17)
前記第1のプライバシ設定は、暗号化される、項目13-16のいずれか1項に記載のシステム。
(項目18)
前記第1のユーザデータは、少なくとも部分的に、前記第1のデバイスによって収集された環境データに基づく、項目13-17のいずれか1項に記載のシステム。
(項目19)
前記第1のユーザデータは、暗号化される、項目13-18のいずれか1項に記載のシステム。
(項目20)
前記第1のメタデータは、前記第1のユーザデータが収集された日付および時間を示すデータと、前記第1のユーザデータを収集したデバイスと、前記データが第1のユーザデータであることのインジケーションとを含む、項目13-19のいずれか1項に記載のシステム。
(項目21)
方法であって、
第1のデバイスから、複数のユーザのうちの第1のユーザと関連付けられる第1のプライバシ設定を受信するステップであって、前記複数のユーザの各ユーザは、プライバシ設定、パブリック暗号化キー、およびプライベート暗号化キーと関連付けられる、ステップと、
少なくとも部分的に、前記第1のプライバシ設定に基づいて、第1のソフトウエアコントラクトを作成するステップであって、前記第1のソフトウエアコントラクトは、前記第1のプライバシ設定を実装するように構成される、ステップと、
前記第1のユーザと関連付けられる第1のプライベートキーを作成および暗号化するステップと、
第1のソフトウエアコントラクトおよび暗号化された第1のプライベートキーを記憶するステップと、
前記第1のユーザと関連付けられる第1のパブリックキーを作成するステップと、
前記第1のデバイスに、前記第1のパブリックキーを伝送するステップであって、前記第1のデバイスは、第1のユーザデータを収集し、前記第1のユーザデータに第1のメタデータを意味論的にタグ付けするように構成される、ステップと
を含む、方法。
(項目22)
前記第1のソフトウエアコントラクトは、スマートコントラクトである、項目21に記載の方法。
(項目23)
前記第1のソフトウエアコントラクトおよび暗号化された第1のプライベートキーは、分散型台帳内に記憶される、項目22に記載の方法。
(項目24)
第1のユーザデータを受信するステップであって、前記第1のユーザデータは、1つまたはそれを上回る意味論タグで意味論的にタグ付けされる、ステップと、
第1のユーザデータをデータプラットフォーム内に記憶するステップであって、前記データプラットフォームは、前記分散型台帳と別個であり、1つまたはそれを上回るデータベースを備える、ステップと、
ハッシュ識別値を計算し、前記第1のユーザデータに割り当てるステップと、
前記1つまたはそれを上回る意味論タグおよびハッシュ識別値を分散型台帳内にエンコーディングするステップと
をさらに含む、項目21-23のいずれか1項に記載の方法。
(項目25)
前記第1のプライバシ設定は、暗号化される、項目21-24のいずれか1項に記載の方法。
(項目26)
前記第1のユーザデータは、少なくとも部分的に、前記第1のデバイスによって収集された環境データに基づく、項目21-25のいずれか1項に記載の方法。
(項目27)
前記第1のユーザデータは、暗号化される、項目21-26のいずれか1項に記載の方法。
(項目28)
前記第1のメタデータは、前記第1のユーザデータが収集された日付および時間を示すデータと、前記第1のユーザデータを収集したデバイスと、前記データが第1のユーザデータであることのインジケーションとを含む、項目21-27のいずれか1項に記載の方法。
(項目29)
システムであって、
1つまたはそれを上回るコンピュータ可読記憶デバイスであって、前記1つまたはそれを上回るコンピュータ可読記憶デバイスは、
コンピュータ実行可能命令と、
ユーザと関連付けられるプライバシ設定と、
ソフトウエアコントラクトであって、前記ソフトウエアコントラクトは、少なくとも部分的に、前記プライバシ設定に基づく、ソフトウエアコントラクトと、
前記ユーザと関連付けられるプライベート暗号化キーであって、各ユーザは、1つのプライベート暗号化キーを割り当てられる、プライベート暗号化キーと
を記憶するように構成される、1つまたはそれを上回るコンピュータ可読記憶デバイスと、
ユーザデータを表示するように構成されるユーザインターフェースを備えるデータ仮想化プラットフォームと、
前記ユーザと関連付けられるユーザデータを記憶するように構成されるデータプラットフォームと、
データ照合システムであって、前記データ照合システムは、前記ユーザデータが前記プライベート暗号化キーで解読され得るように、プライベート暗号化キーが暗号化されたユーザデータにマッチングするかどうかを決定するように構成される、データ照合システムと、
ネットワークインターフェースと、
1つまたはそれを上回るハードウェアコンピュータプロセッサであって、前記1つまたはそれを上回るハードウェアコンピュータプロセッサは、前記1つまたはそれを上回るコンピュータ可読記憶デバイスと通信し、前記コンピュータ実行可能命令を実行し、前記システムに、
前記データ仮想化プラットフォームから、前記ネットワークインターフェースを介して、第1のユーザデータへのアクセスのための要求を受信することであって、前記第1のユーザデータは、第1のユーザと関連付けられる、ことと、
前記ソフトウエアコントラクトを検索し、前記第1のユーザと関連付けられる前記ソフトウエアコントラクトの第1のソフトウエアコントラクトの最新バージョンを特定することと、
前記検索に基づいて、少なくとも部分的に、前記第1のソフトウエアコントラクトに基づいて、前記第1のユーザデータが共有されることが許可されることを決定することと、
前記第1のユーザデータを前記データプラットフォームから抽出するための命令を準備し、前記データ仮想化プラットフォームに、前記ネットワークインターフェースを介して伝送することと、
前記データプラットフォームから、前記ネットワークインターフェースを介して、前記第1のユーザデータが、暗号化されており、前記データ仮想化プラットフォームに伝送されたことの確認を受信することであって、前記確認は、伝送された前記第1のユーザデータの説明を含む、ことと、
前記確認の受信に応じて、前記第1のユーザと関連付けられる第1のプライベート暗号化キーおよび前記第1のソフトウエアコントラクトにアクセスすることと、
前記データ照合システムに、前記ネットワークインターフェースを介して、前記第1のソフトウエアコントラクトと関連付けられる前記第1のプライベート暗号化キーおよび詳細を伝送することと、
前記データ照合システムから、前記ネットワークインターフェースを介して、前記第1のプライベート暗号化キーおよび前記第1のユーザデータがマッチングすることのインジケーションを受信することと、
前記第1のプライベート暗号化キーおよび前記第1のユーザデータがマッチングすることの前記受信されたインジケーションに基づいて、前記データ仮想化プラットフォームに、前記ネットワークインターフェースを介して、前記データ仮想化プラットフォームが前記データプラットフォームから受信された前記暗号化された第1のユーザデータを解読し得るように、前記第1のプライベート暗号化キーを伝送することと
を行わせる、1つまたはそれを上回るハードウェアコンピュータプロセッサと
を備える、システム。
(項目30)
前記第1のプライベート暗号化キーを含む前記プライベート暗号化キーは、分散型台帳内に記憶される、項目29に記載のシステム。
(項目31)
前記第1のソフトウエアコントラクトを含む前記ソフトウエアコントラクトは、スマートコントラクトである、項目29-30のいずれか1項に記載のシステム。
(項目32)
前記第1のソフトウエアコントラクトを含む前記ソフトウエアコントラクトは、分散型台帳内に記憶される、項目29-31のいずれか1項に記載のシステム。
(項目33)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、前記システムに、
第2のプライベート暗号化キーを生成することと、
前記第2のプライベート暗号化キーを含む第2のソフトウエアコントラクトを生成および記憶することと、
前記データプラットフォームに、前記ネットワークインターフェースを介して、前記データプラットフォームが、前記第1のユーザデータを前記第1のプライベート暗号化キーで解読し、前記第1のユーザデータを前記第2のプライベート暗号化キーで再暗号化し得るように、前記第1のプライベート暗号化キーおよび前記第2のプライベート暗号化キーを伝送することと
を行わせるように構成される、項目29-32のいずれか1項に記載のシステム。
(項目34)
前記第2のソフトウエアコントラクトはまた、前記データ仮想化プラットフォームに伝送された前記第1のユーザデータの説明を記憶する、項目33に記載のシステム。
(項目35)
少なくとも部分的に、前記第1のソフトウエアコントラクトに基づいて、共有されることが許可されることが決定される前記第1のユーザデータはまた、少なくとも部分的に、前記データ仮想化プラットフォームにアクセスする購入者デバイスと関連付けられるアカウントに基づき、前記購入者デバイスは、第1のユーザデータへのアクセスのための要求と関連付けられる、項目29-34のいずれか1項に記載のシステム。
(項目36)
方法であって、
データ仮想化プラットフォームから、第1のユーザデータへのアクセスのための要求を受信するステップであって、前記第1のユーザデータは、第1のユーザと関連付けられ、前記データ仮想化プラットフォームは、前記ユーザデータを表示するように構成されるユーザインターフェースを備える、ステップと、
ソフトウエアコントラクトを検索し、前記第1のユーザと関連付けられる前記ソフトウエアコントラクトの第1のソフトウエアコントラクトの最新バージョンを特定するステップであって、前記ソフトウエアコントラクトは、少なくとも部分的に、前記プライバシ設定に基づく、ステップと、
前記検索に基づいて、少なくとも部分的に、前記第1のソフトウエアコントラクトに基づいて、前記第1のユーザデータが共有されることが許可されることを決定するステップと、
前記第1のユーザデータをデータプラットフォームから抽出するための命令を準備し、前記データ仮想化プラットフォームに伝送するステップであって、前記データプラットフォームは、前記ユーザと関連付けられるユーザデータを記憶するように構成される、ステップと、
前記データプラットフォームから、前記第1のユーザデータが、暗号化されており、前記データ仮想化プラットフォームに伝送されたことの確認を受信するステップであって、前記確認は、伝送された前記第1のユーザデータの説明を含む、ステップと、
前記確認の受信に応じて、前記第1のユーザと関連付けられる第1のプライベート暗号化キーおよび前記第1のソフトウエアコントラクトにアクセスするステップと、
データ照合システムに、前記第1のソフトウエアコントラクトと関連付けられる前記第1のプライベート暗号化キーおよび詳細を伝送するステップであって、前記データ照合システムは、前記ユーザデータが前記プライベート暗号化キーで解読され得るように、プライベート暗号化キーが暗号化されたユーザデータにマッチングするかどうかを決定するように構成される、ステップと、
前記データ照合システムから、前記第1のプライベート暗号化キーおよび前記第1のユーザデータがマッチングすることのインジケーションを受信するステップと、
前記第1のプライベート暗号化キーおよび前記第1のユーザデータがマッチングすることの前記受信されたインジケーションに基づいて、前記データ仮想化プラットフォームに、前記データ仮想化プラットフォームが前記データプラットフォームから受信された前記暗号化された第1のユーザデータを解読し得るように、前記第1のプライベート暗号化キーを伝送するステップと
を含む、方法。
(項目37)
前記第1のプライベート暗号化キーを含む前記プライベート暗号化キーは、分散型台帳内に記憶される、項目36に記載の方法。
(項目38)
前記第1のソフトウエアコントラクトを含む前記ソフトウエアコントラクトは、スマートコントラクトである、項目36-37のいずれか1項に記載の方法。
(項目39)
前記第1のソフトウエアコントラクトを含む前記ソフトウエアコントラクトは、分散型台帳内に記憶される、項目36-38のいずれか1項に記載の方法。
(項目40)
第2のプライベート暗号化キーを生成するステップと、
前記第2のプライベート暗号化キーを含む第2のソフトウエアコントラクトを生成および記憶するステップと、
前記データプラットフォームに、前記データプラットフォームが、前記第1のユーザデータを前記第1のプライベート暗号化キーで解読し、前記第1のユーザデータを前記第2のプライベート暗号化キーで再暗号化し得るように、前記第1のプライベート暗号化キーおよび前記第2のプライベート暗号化キーを伝送するステップと
をさらに含む、項目36-39のいずれか1項に記載の方法。
(項目41)
前記第2のソフトウエアコントラクトはまた、前記データ仮想化プラットフォームに伝送された前記第1のユーザデータの説明を記憶する、項目40に記載の方法。
(項目42)
少なくとも部分的に、前記第1のソフトウエアコントラクトに基づいて、共有されることが許可されることが決定される前記第1のユーザデータはまた、少なくとも部分的に、前記データ仮想化プラットフォームにアクセスする購入者デバイスと関連付けられるアカウントに基づき、前記購入者デバイスは、第1のユーザデータへのアクセスのための要求と関連付けられる、項目36-41のいずれか1項に記載の方法。
(項目43)
システムであって、
1つまたはそれを上回るコンピュータ可読記憶デバイスであって、前記1つまたはそれを上回るコンピュータ可読記憶デバイスは、
コンピュータ実行可能命令と、
ユーザと関連付けられるプライバシ設定と、
ソフトウエアコントラクトであって、前記ソフトウエアコントラクトは、少なくとも部分的に、前記プライバシ設定に基づく、ソフトウエアコントラクトと、
前記ユーザと関連付けられるパブリック暗号化キーであって、各ユーザは、1つのパブリック暗号化キーを割り当てられる、パブリック暗号化キーと
を記憶するように構成される、1つまたはそれを上回るコンピュータ可読記憶デバイスと、
ユーザデータを表示するように構成されるユーザインターフェースを備えるデータ仮想化プラットフォームと、
前記ユーザと関連付けられるユーザデータを記憶するように構成されるデータプラットフォームと、
ネットワークインターフェースと、
1つまたはそれを上回るハードウェアコンピュータプロセッサであって、前記1つまたはそれを上回るハードウェアコンピュータプロセッサは、前記1つまたはそれを上回るコンピュータ可読記憶デバイスと通信し、前記コンピュータ実行可能命令を実行し、前記システムに、
前記データ仮想化プラットフォームから、前記ネットワークインターフェースを介して、第1のユーザデータへのアクセスのための要求を受信することであって、前記第1のユーザデータは、第1のユーザと関連付けられる、ことと、
前記ソフトウエアコントラクトを検索し、前記第1のユーザと関連付けられる前記ソフトウエアコントラクトの第1のソフトウエアコントラクトを特定することであって、前記第1のソフトウエアコントラクトは、最新のバージョンである、ことと、
前記検索に基づいて、少なくとも部分的に、前記第1のソフトウエアコントラクトに基づいて、前記第1のユーザデータが共有されることが許可されることを決定することであって、前記第1のユーザデータは、1つまたはそれを上回るサードパーティサービスからの第1のサードパーティデータを含む、ことと、
前記第1のサードパーティデータを前記1つまたはそれを上回るサードパーティサービスから抽出するための命令を準備し、前記データ仮想化プラットフォームに、前記ネットワークインターフェースを介して、伝送することと、
前記データ仮想化プラットフォームから、前記ネットワークインターフェースを介して、前記第1のサードパーティデータが前記データ仮想化プラットフォームによって正常に読み出されたことの通知を受信することと、
前記通知の受信に応じて、第1のパブリック暗号化キーを前記第1のソフトウエアコントラクトから読み出すことと、
前記データ仮想化プラットフォームに、前記ネットワークインターフェースを介して、前記データ仮想化プラットフォームが、前記サードパーティデータを暗号化し、記憶のために、前記データプラットフォームに伝送し得るように、前記第1のパブリック暗号化キーを伝送することと
を行わせる、1つまたはそれを上回るハードウェアコンピュータプロセッサと
を備える、システム。
(項目44)
前記第1のパブリック暗号化キーを含む前記パブリック暗号化キーは、分散型台帳内に記憶される、項目43に記載のシステム。
(項目45)
前記第1のソフトウエアコントラクトを含む前記ソフトウエアコントラクトは、スマートコントラクトである、項目43-44のいずれか1項に記載のシステム。
(項目46)
前記第1のソフトウエアコントラクトを含む前記ソフトウエアコントラクトは、分散型台帳内に記憶される、項目43-45のいずれか1項に記載のシステム。
(項目47)
前記サードパーティデータは、ソーシャルメディアデータを含む、項目43-46のいずれか1項に記載のシステム。
(項目48)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、前記システムに、
前記通知の受信に応じて、前記サードパーティデータの読出と関連付けられる詳細を説明するデータを記憶させるように構成される、項目43-47のいずれか1項に記載のシステム。
(項目49)
前記サードパーティデータの読出と関連付けられる詳細を説明するデータは、前記サードパーティデータの抽出、処理、プロファイリングまたはタグ付け、および暗号化に関連する情報を含む、項目48に記載のシステム。
(項目50)
少なくとも部分的に、前記第1のソフトウエアコントラクトに基づいて、共有されることが許可されることが決定される前記第1のユーザデータはまた、少なくとも部分的に、前記データ仮想化プラットフォームにアクセスする購入者デバイスと関連付けられるアカウントに基づき、前記購入者デバイスは、第1のユーザデータへのアクセスのための要求と関連付けられる、項目43-49のいずれか1項に記載のシステム。
(項目51)
方法であって、
データ仮想化プラットフォームから、第1のユーザデータへのアクセスのための要求を受信するステップであって、前記第1のユーザデータは、第1のユーザと関連付けられ、前記データ仮想化プラットフォームは、ユーザデータを表示するように構成されるユーザインターフェースを備える、ステップと、
ソフトウエアコントラクトを検索し、前記第1のユーザと関連付けられる前記ソフトウエアコントラクトの第1のソフトウエアコントラクトを特定するステップであって、前記第1のソフトウエアコントラクトは、最新のバージョンである、ステップと、
前記検索に基づいて、少なくとも部分的に、前記第1のソフトウエアコントラクトに基づいて、前記第1のユーザデータが共有されることが許可されることを決定するステップであって、前記第1のユーザデータは、1つまたはそれを上回るサードパーティサービスからの第1のサードパーティデータを含む、ステップと、
前記第1のサードパーティデータを前記1つまたはそれを上回るサードパーティサービスから抽出するための命令を準備し、前記データ仮想化プラットフォームに伝送するステップと、
前記データ仮想化プラットフォームから、前記第1のサードパーティデータが前記データ仮想化プラットフォームによって正常に読み出されたことの通知を受信するステップと、
前記通知の受信に応じて、第1のパブリック暗号化キーを前記第1のソフトウエアコントラクトから読み出すステップと、
前記データ仮想化プラットフォームに、前記データ仮想化プラットフォームが、前記サードパーティデータを暗号化し、記憶のために、データプラットフォームに伝送し得るように、前記第1のパブリック暗号化キーを伝送するステップと
を含む、方法。
(項目52)
前記第1のパブリック暗号化キーを含む前記パブリック暗号化キーは、分散型台帳内に記憶される、項目51に記載の方法。
(項目53)
前記第1のソフトウエアコントラクトを含む前記ソフトウエアコントラクトは、スマートコントラクトである、項目51-52のいずれか1項に記載の方法。
(項目54)
前記第1のソフトウエアコントラクトを含む前記ソフトウエアコントラクトは、分散型台帳内に記憶される、項目51-53のいずれか1項に記載の方法。
(項目55)
前記サードパーティデータは、ソーシャルメディアデータを含む、項目51-54のいずれか1項に記載の方法。
(項目56)
前記通知の受信に応じて、前記サードパーティデータの読出と関連付けられる詳細を説明するデータを記憶するステップをさらに含む、項目51-55のいずれか1項に記載の方法。
(項目57)
前記サードパーティデータの読出と関連付けられる詳細を説明するデータは、前記サードパーティデータの抽出、処理、プロファイリングまたはタグ付け、および暗号化に関連する情報を含む、項目56に記載の方法。
(項目58)
少なくとも部分的に、前記第1のソフトウエアコントラクトに基づいて、共有されることが許可されることが決定される前記第1のユーザデータはまた、少なくとも部分的に、前記データ仮想化プラットフォームにアクセスする購入者デバイスと関連付けられるアカウントに基づき、前記購入者デバイスは、第1のユーザデータへのアクセスのための要求と関連付けられる、項目51-57のいずれか1項に記載の方法。
(項目59)
データプラットフォームであって、
1つまたはそれを上回るコンピュータ可読記憶デバイスであって、前記1つまたはそれを上回るコンピュータ可読記憶デバイスは、
コンピュータ実行可能命令と、
ユーザと関連付けられるパブリック暗号化キーであって、各ユーザは、1つのパブリック暗号化キーを割り当てられる、パブリック暗号化キーと、
前記ユーザと関連付けられるユーザデータと、
前記ユーザデータと関連付けられる識別値と
を記憶するように構成される、1つまたはそれを上回るコンピュータ可読記憶デバイスと、
分散型台帳マネージャであって、前記分散型台帳マネージャは、分散型台帳と、前記分散型台帳を読み取り、そこに書き込むように構成されるソフトウェアとを備える、分散型台帳マネージャと、
ネットワークインターフェースと、
1つまたはそれを上回るハードウェアコンピュータプロセッサであって、前記1つまたはそれを上回るハードウェアコンピュータプロセッサは、前記1つまたはそれを上回るコンピュータ可読記憶デバイスと通信し、前記コンピュータ実行可能命令を実行し、前記データプラットフォームに、
第1のデバイスから、前記ネットワークインターフェースを介して、前記ユーザデータのうちの第1のユーザデータを受信することであって、前記第1のユーザデータは、暗号化され、第1のメタデータで意味論的にタグ付けされるデータを含む、ことと、
前記1つまたはそれを上回るコンピュータ可読記憶デバイス内に、前記第1のユーザデータを記憶することと、
前記第1のユーザデータに関する識別値を計算することであって、前記識別値は、ハッシュアルゴリズムに基づく、ことと、
前記識別値を前記第1のユーザデータに割り当てることと、
前記1つまたはそれを上回るコンピュータ可読記憶デバイス内に、前記計算された識別値を記憶することと、
前記分散型台帳マネージャに、前記ネットワークインターフェースを介して、トランザクションデータを伝送することであって、前記トランザクションデータは、前記計算された識別値、前記第1のメタデータ、および前記第1のユーザデバイスから前記データプラットフォームへの第1のユーザデータの転送に関連する情報を含む、ことと
を行わせる、1つまたはそれを上回るハードウェアコンピュータプロセッサと
を備える、データプラットフォーム。
(項目60)
前記第1のメタデータは、前記第1のユーザデータが収集された日付および時間を示すデータと、前記第1のユーザデータを収集したデバイスと、前記データが第1のユーザデータであることのインジケーションとを含む、項目59に記載のデータプラットフォーム。
(項目61)
前記第1のユーザデータは、前記第1のユーザと関連付けられる第1のパブリック暗号化キーに基づいて暗号化される、項目59-6のいずれか1項に記載のデータプラットフォーム。
(項目62)
前記分散型台帳マネージャは、前記トランザクションデータを分散型台帳の中にエンコーディングするように構成される、項目59-61のいずれか1項に記載のデータプラットフォーム。
(項目63)
前記第1のユーザデータは、少なくとも部分的に、前記第1のデバイスによって収集された環境データに基づく、項目59-62のいずれか1項に記載のデータプラットフォーム。
(項目64)
方法であって、
第1のデバイスから、第1のユーザデータを受信するステップであって、前記第1のユーザデータは、暗号化され、第1のメタデータで意味論的にタグ付けされるデータを含む、ステップと、
前記1つまたはそれを上回るコンピュータ可読記憶デバイス内に、前記第1のユーザデータを記憶するステップと、
前記第1のユーザデータに関する識別値を計算するステップであって、前記識別値は、ハッシュアルゴリズムに基づく、ステップと、
前記識別値を前記第1のユーザデータに割り当てるステップと、
前記1つまたはそれを上回るコンピュータ可読記憶デバイス内に、前記計算された識別値を記憶するステップと、
分散型台帳マネージャに、前記ネットワークインターフェースを介して、トランザクションデータを伝送するステップであって、前記トランザクションデータは、前記計算された識別値、前記第1のメタデータ、および前記第1のユーザデバイスから前記データプラットフォームへの第1のユーザデータの転送に関連する情報を含み、前記分散型台帳マネージャは、分散型台帳と、前記分散型台帳を読み取り、そこに書き込むように構成されるソフトウェアとを備える、ステップと
を含む、方法。
(項目65)
前記第1のメタデータは、前記第1のユーザデータが収集された日付および時間を示すデータと、前記第1のユーザデータを収集したデバイスと、前記データが第1のユーザデータであることのインジケーションとを含む、項目64に記載の方法。
(項目66)
前記第1のユーザデータは、前記第1のユーザと関連付けられる第1のパブリック暗号化キーに基づいて暗号化される、項目64-65のいずれか1項に記載の方法。
(項目67)
前記分散型台帳マネージャは、前記トランザクションデータを分散型台帳の中にエンコーディングするように構成される、項目64-66のいずれか1項に記載の方法。
(項目68)
前記第1のユーザデータは、少なくとも部分的に、前記第1のデバイスによって収集された環境データに基づく、項目64-67のいずれか1項に記載の方法。
(項目69)
データプラットフォームであって、
1つまたはそれを上回るコンピュータ可読記憶デバイスであって、前記1つまたはそれを上回るコンピュータ可読記憶デバイスは、
実行可能命令と、
ユーザと関連付けられるユーザデータと、
を記憶するように構成される、1つまたはそれを上回るコンピュータ可読記憶デバイスと、
ユーザデータを表示するように構成されるユーザインターフェースを備えるデータ仮想化プラットフォームと、
データ照合システムであって、前記データ照合システムは、前記ユーザデータが前記プライベート暗号化キーで解読され得るように、プライベート暗号化キーが暗号化されたユーザデータにマッチングするかどうかを決定するように構成される、データ照合システムと、
ネットワークインターフェースと、
1つまたはそれを上回るハードウェアコンピュータプロセッサであって、前記1つまたはそれを上回るハードウェアコンピュータプロセッサは、前記1つまたはそれを上回るコンピュータ可読記憶デバイスと通信し、前記コンピュータ実行可能命令を実行し、前記データプラットフォームに、
前記データ仮想化プラットフォームから、前記ネットワークインターフェースを介して、第1のユーザデータの少なくとも一部へのアクセスのための第1の要求を受信することであって、前記第1のユーザデータは、第1のユーザと関連付けられる、ことと、
前記第1の要求の受信に応じて、前記1つまたはそれを上回るコンピュータ可読記憶デバイス内において、少なくとも部分的に、前記第1の要求に基づいて、前記第1のユーザデータを特定することであって、前記第1のユーザデータは、以前に、第1のデバイスから受信されており、受信に応じて、記憶されている、ことと、
前記データ仮想化プラットフォームに、前記ネットワークインターフェースを介して、前記第1のユーザデータの少なくとも一部を伝送することであって、前記第1のユーザデータは、暗号化され、第1のメタデータで意味論的にタグ付けされる、ことと、
データ照合システムに、前記ネットワークインターフェースを介して、前記データ仮想化プラットフォームへの前記第1のユーザデータの少なくとも一部の伝送の成功の確認と、伝送された前記第1のユーザデータの部分を説明する情報とを伝送することであって、前記データ照合システムは、前記第1のユーザと関連付けられる前記第1のユーザデータの少なくとも一部および第1のプライベート暗号化キーがマッチングすることを照合するように構成される、ことと
を行わせる、1つまたはそれを上回るハードウェアコンピュータプロセッサと
を備える、データプラットフォーム。
(項目70)
前記第1のメタデータは、前記第1のユーザデータが収集された日付および時間を示すデータと、前記第1のユーザデータを収集したデバイスと、前記データが第1のユーザデータであることのインジケーションとを含む、項目69に記載のデータプラットフォーム。
(項目71)
前記第1のユーザデータは、前記第1のユーザと関連付けられる第1のパブリック暗号化キーに基づいて暗号化される、項目69-70のいずれか1項に記載のデータプラットフォーム。
(項目72)
前記データ照合システムによって実施される照合されたマッチングは、前記第1のプライベート暗号化キーが前記第1のユーザデータの少なくとも一部を解読し得ることの決定を含む、項目69-71のいずれか1項に記載のデータプラットフォーム。
(項目73)
分散型台帳と、前記分散型台帳を読み取り、そこに書き込むように構成されるソフトウェアとを備える分散型台帳マネージャをさらに備え、
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、前記データプラットフォームに、
前記分散型台帳マネージャから、前記ネットワークインターフェースを介して、前記第1のプライベート暗号化キーおよび第2のプライベート暗号化キーを受信することであって、前記第1および第2のプライベート暗号化キーは、前記第1のユーザと関連付けられる、ことと、
前記1つまたはそれを上回るコンピュータ可読記憶デバイス内において、前記第1のユーザデータを特定することであって、前記第1のユーザデータは、以前に、第1のデバイスから受信されており、受信に応じて、記憶されている、ことと、
前記第1のユーザデータを前記第1のプライベート暗号化キーで解読することと、
前記解読された第1のユーザデータを前記第2のプライベート暗号化キーで暗号化することと、
前記1つまたはそれを上回るコンピュータ可読記憶デバイス内に、前記第2のプライベート暗号化キーで暗号化された前記第1のユーザデータを記憶することと
を行わせるように構成される、項目69-72のいずれか1項に記載のデータプラットフォーム。
(項目74)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、前記データプラットフォームに、
前記データ仮想化プラットフォームから、前記ネットワークインターフェースを介して、一般的ユーザデータへのアクセスのための第2の要求を受信することであって、前記一般的ユーザデータは、前記ユーザデータと関連付けられる匿名化および仮名化されたデータを含み、前記ユーザのうちの任意のユーザを識別するために使用されることができない、ことと、
前記1つまたはそれを上回るコンピュータ可読記憶デバイス内において、少なくとも部分的に、前記要求に基づいて、前記一般的ユーザデータを特定することと、
前記データ仮想化プラットフォームに、前記ネットワークインターフェースを介して、前記一般的ユーザデータの少なくとも一部を伝送することと
を行わせるように構成される、項目69-73のいずれか1項に記載のデータプラットフォーム。
(項目75)
前記データプラットフォームはさらに、前記データ照合システムを備える、項目69-74のいずれか1項に記載のデータプラットフォーム。
(項目76)
前記第1の要求は、少なくとも部分的に、前記第1のユーザと関連付けられる第1のソフトウエアコントラクトに基づく、項目69-75のいずれか1項に記載のデータプラットフォーム。
(項目77)
伝送される前記第1のユーザデータの少なくとも一部は、少なくとも部分的に、前記第1のユーザと関連付けられる第1のソフトウエアコントラクトに基づく、項目69-76のいずれか1項に記載のデータプラットフォーム。
(項目78)
伝送される前記第1のユーザデータの少なくとも一部は、少なくとも部分的に、前記データ仮想化プラットフォームにアクセスする購入者デバイスと関連付けられるアカウントに基づき、前記購入者デバイスは、第1のユーザデータへのアクセスのための要求と関連付けられる、項目69-77のいずれか1項に記載のデータプラットフォーム。
(項目79)
方法であって、
データ仮想化プラットフォームから、第1のユーザデータの少なくとも一部へのアクセスのための第1の要求を受信するステップであって、前記第1のユーザデータは、第1のユーザと関連付けられ、前記データ仮想化プラットフォームは、ユーザデータを表示するように構成されるユーザインターフェースを備える、ステップと、
前記第1の要求の受信に応じて、1つまたはそれを上回るコンピュータ可読記憶デバイス内において、少なくとも部分的に、前記第1の要求に基づいて、前記第1のユーザデータを特定するステップであって、前記第1のユーザデータは、以前に、第1のデバイスから受信されており、受信に応じて、記憶されている、ステップと、
前記データ仮想化プラットフォームに、前記第1のユーザデータの少なくとも一部を伝送するステップであって、前記第1のユーザデータは、暗号化され、第1のメタデータで意味論的にタグ付けされる、ステップと、
データ照合システムに、前記データ仮想化プラットフォームへの前記第1のユーザデータの少なくとも一部の伝送の成功の確認と、伝送された前記第1のユーザデータの部分を説明する情報とを伝送するステップであって、前記データ照合システムは、前記第1のユーザと関連付けられる前記第1のユーザデータの少なくとも一部および第1のプライベート暗号化キーがマッチングすることを照合するように構成され、前記データ照合システムはさらに、前記ユーザデータが前記プライベート暗号化キーで解読され得るように、プライベート暗号化キーが暗号化されたユーザデータにマッチングするかどうかを決定するように構成される、ステップと
を含む、方法。
(項目80)
前記第1のメタデータは、前記第1のユーザデータが収集された日付および時間を示すデータと、前記第1のユーザデータを収集したデバイスと、前記データが第1のユーザデータであることのインジケーションとを含む、項目79に記載の方法。
(項目81)
前記第1のユーザデータは、前記第1のユーザと関連付けられる第1のパブリック暗号化キーに基づいて暗号化される、項目79-80のいずれか1項に記載の方法。
(項目82)
前記データ照合システムによって実施される照合されたマッチングは、前記第1のプライベート暗号化キーが前記第1のユーザデータの少なくとも一部を解読し得ることの決定を含む、項目79-81のいずれか1項に記載の方法。
(項目83)
分散型台帳マネージャから、前記第1のプライベート暗号化キーおよび第2のプライベート暗号化キーを受信するステップであって、前記第1および第2のプライベート暗号化キーは、前記第1のユーザと関連付けられ、前記分散型台帳マネージャは、分散型台帳と、前記分散型台帳を読み取り、そこに書き込むように構成されるソフトウェアとを備える、ステップと、
前記1つまたはそれを上回るコンピュータ可読記憶デバイス内において、前記第1のユーザデータを特定するステップであって、前記第1のユーザデータは、以前に、第1のデバイスから受信されており、受信に応じて、記憶されている、ステップと、
前記第1のユーザデータを前記第1のプライベート暗号化キーで解読するステップと、
前記解読された第1のユーザデータを前記第2のプライベート暗号化キーで暗号化するステップと、
前記1つまたはそれを上回るコンピュータ可読記憶デバイス内に、前記第2のプライベート暗号化キーで暗号化された前記第1のユーザデータを記憶するステップと
をさらに含む、項目79-82のいずれか1項に記載の方法。
(項目84)
前記データ仮想化プラットフォームから、一般的ユーザデータへのアクセスのための第2の要求を受信するステップであって、前記一般的ユーザデータは、前記ユーザデータと関連付けられる匿名化および仮名化されたデータを含み、前記ユーザのうちの任意のユーザを識別するために使用されることができない、ステップと、
前記1つまたはそれを上回るコンピュータ可読記憶デバイス内において、少なくとも部分的に、前記要求に基づいて、前記一般的ユーザデータを特定するステップと、
前記データ仮想化プラットフォームに、前記一般的ユーザデータの少なくとも一部を伝送するステップと
をさらに含む、項目79-83のいずれか1項に記載の方法。
(項目85)
前記データプラットフォームはさらに、前記データ照合システムを備える、項目79-84のいずれか1項に記載の方法。
(項目86)
前記第1の要求は、少なくとも部分的に、前記第1のユーザと関連付けられる第1のソフトウエアコントラクトに基づく、項目79-85のいずれか1項に記載の方法。
(項目87)
伝送される前記第1のユーザデータの少なくとも一部は、少なくとも部分的に、前記第1のユーザと関連付けられる第1のソフトウエアコントラクトに基づく、項目79-86のいずれか1項に記載の方法。
(項目88)
伝送される前記第1のユーザデータの少なくとも一部は、少なくとも部分的に、前記データ仮想化プラットフォームにアクセスする購入者デバイスと関連付けられるアカウントに基づき、前記購入者デバイスは、第1のユーザデータへのアクセスのための要求と関連付けられる、項目79-87のいずれか1項に記載の方法。
(項目89)
データ仮想化プラットフォームであって、
1つまたはそれを上回るコンピュータ可読記憶デバイスであって、前記1つまたはそれを上回るコンピュータ可読記憶デバイスは、
コンピュータ実行可能命令と、
ユーザと関連付けられるプライベート暗号化キーであって、各ユーザは、1つのプライベート暗号化キーを割り当てられる、プライベート暗号化キーと、
前記ユーザと関連付けられるユーザデータと
を記憶するように構成される、1つまたはそれを上回るコンピュータ可読記憶デバイスと、
分散型台帳マネージャであって、前記分散型台帳マネージャは、分散型台帳と、前記分散型台帳を読み取り、そこに書き込むように構成されるソフトウェアとを備える、分散型台帳マネージャと、
1つまたはそれを上回るデータベースを備えるデータプラットフォームと、
ネットワークインターフェースと、
1つまたはそれを上回るハードウェアコンピュータプロセッサであって、前記1つまたはそれを上回るハードウェアコンピュータプロセッサは、前記1つまたはそれを上回るコンピュータ可読記憶デバイスと通信し、前記コンピュータ実行可能命令を実行し、前記データ仮想化プラットフォームに、
前記分散型台帳マネージャから、前記ネットワークインターフェースを介して、前記プライベート暗号化キーのうちの第1のプライベート暗号化キーを受信することであって、前記第1のプライベート暗号化キーは、第1のユーザと関連付けられる、ことと、
前記分散型台帳マネージャから、前記ネットワークインターフェースを介して、前記ユーザデータのうちの第1のユーザデータを前記データプラットフォームから読み出すための命令を受信することであって、前記第1のユーザデータは、第1のユーザと関連付けられる、ことと、
前記受信された命令に基づいて、前記第1のユーザデータのための第1の要求を準備し、前記データプラットフォームに、前記ネットワークインターフェースを介して、伝送することと、
前記データプラットフォームから、前記ネットワークインターフェースを介して、前記第1の要求に基づいて、前記第1のユーザデータを受信することであって、前記第1のユーザデータは、暗号化される、ことと、
前記第1のユーザデータを前記第1のプライベート暗号化キーで解読することであって、前記第1のユーザデータは、前記データプラットフォームから受信される、ことと、
前記解読された第1のユーザデータを処理し、前記第1のユーザデータを匿名化および仮名化することと、
前記匿名化および仮名化された第1のユーザデータに基づいて、前記第1のユーザを識別することが不可能であることを検証することによって、処理された第1のユーザデータを決定することと
を行わせる、1つまたはそれを上回るハードウェアコンピュータプロセッサと
を備える、データ仮想化プラットフォーム。
(項目90)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、
前記分散型台帳マネージャから、前記ネットワークインターフェースを介して、前記プライベート暗号化キーのうちの第2のプライベート暗号化キーを受信することであって、前記第2のプライベート暗号化キーは、第2のユーザと関連付けられる、ことと、
前記分散型台帳マネージャから、前記ネットワークインターフェースを介して、前記ユーザデータのうちの第2のユーザデータを前記データプラットフォームから読み出すための第1の命令を受信することであって、前記第2のユーザデータは、第2のユーザと関連付けられる、ことと、
前記第1の受信された命令に基づいて、前記第2のユーザデータのための第2の要求を準備し、前記データプラットフォームに、前記ネットワークインターフェースを介して、伝送することと、
前記データプラットフォームから、前記ネットワークインターフェースを介して、前記第2の要求に基づいて、前記第2のユーザデータを受信することであって、前記第2のユーザデータは、暗号化される、ことと、
前記第2のユーザデータを前記データプラットフォームから受信された前記第2のプライベート暗号化キーおよび前記第2のユーザデータで解読することと、
前記解読された第2のユーザデータを処理し、前記第2のユーザデータを匿名化および仮名化することと、
前記匿名化および仮名化された第2のユーザデータに基づいて、前記第2のユーザを識別することが不可能であることを検証することによって、処理された第2のユーザデータを決定することと
を行うように構成される、項目89に記載のデータ仮想化プラットフォーム。
(項目91)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、
前記匿名化および仮名化された第1のユーザデータに基づいて、前記第1のユーザを識別することが不可能であることを検証するように構成される、項目90に記載のデータ仮想化プラットフォーム。
(項目92)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、
処理された第1のユーザデータを電子ユーザインターフェース上に表示するように構成される、項目89-91のいずれか1項に記載のデータ仮想化プラットフォーム。
(項目93)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、
前記電子ユーザインターフェースを介して、前記処理された第1のユーザデータの使用を終了するための第2の命令を受信することと、
前記受信された第2の命令に基づいて、前記処理された第1のユーザデータおよび第1のプライベート暗号化キーを含む前記第1のユーザと関連付けられる任意のデータを削除することと
を行うように構成される、項目89-92のいずれか1項に記載のデータ仮想化プラットフォーム。
(項目94)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、
前記処理された第1のユーザデータをさらに処理し、分析された第1のユーザデータを作成することであって、前記分析された第1のユーザデータは、1つまたはそれを上回る分析ツールが前記データに適用された処理された第1のユーザデータを含み、前記1つまたはそれを上回る分析ツールは、集約、事前分析、およびコンテキスト化のうちの1つまたはそれを上回るものを含む、ことと、
前記分析された第1のユーザデータをメタデータでエンコーディングすることであって、前記メタデータは、少なくとも、前記分析された第1のユーザデータが第1のユーザと関連付けられることを示す、ことと、
前記分析された第1のユーザデータを監視し、前記データ仮想化プラットフォームからの前記分析された第1のユーザデータの一部または全ての非認可エクスポートを防止することと
を行うように構成される、項目89-93のいずれか1項に記載のデータ仮想化プラットフォーム。
(項目95)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、
前記データ仮想化プラットフォームからの分析データを伝送するための第3の要求を受信することであって、前記分析データは、前記データ仮想化プラットフォームによって起動された分析と関連付けられる結果と、前記第1のユーザと関連付けられるデータとを含む、ことと、
前記第3の要求に基づいて、前記データ仮想化プラットフォームによって起動される分析と関連付けられるデータを伝送し、前記第1のユーザと関連付けられるデータは伝送しないことと
を行うように構成される、項目94に記載のデータ仮想化プラットフォーム。
(項目96)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、
前記電子ユーザインターフェースを介して、前記処理された第1のユーザデータの使用を終了するための第3の命令を受信することと、
前記受信された第3の命令に基づいて、前記処理された第1のユーザデータおよび第1のプライベート暗号化キーを含む前記第1のユーザと関連付けられる任意のデータを削除することと
を行うように構成される、項目95に記載のデータ仮想化プラットフォーム。
(項目97)
第1のユーザデータを読み出すための命令は、少なくとも部分的に、前記第1のユーザと関連付けられる第1のソフトウエアコントラクトに基づく、項目89-96のいずれか1項に記載のデータ仮想化プラットフォーム。
(項目98)
第1のユーザデータを読み出すための命令は、少なくとも部分的に、前記データ仮想化プラットフォームにアクセスする購入者デバイスと関連付けられるアカウントに基づき、前記購入者デバイスは、第1のユーザデータへのアクセスのための要求と関連付けられる、項目89-97のいずれか1項に記載のデータ仮想化プラットフォーム。
(項目99)
方法であって、
分散型台帳マネージャから、前記プライベート暗号化キーのうちの第1のプライベート暗号化キーを受信するステップであって、前記第1のプライベート暗号化キーは、第1のユーザと関連付けられ、前記分散型台帳マネージャは、分散型台帳と、前記分散型台帳を読み取り、そこに書き込むように構成されるソフトウェアとを備える、ステップと、
前記分散型台帳マネージャから、前記ユーザデータのうちの第1のユーザデータをデータプラットフォームから読み出すための命令を受信するステップであって、前記第1のユーザデータは、第1のユーザと関連付けられ、前記データプラットフォームは、1つまたはそれを上回るデータベースを備える、ステップと、
前記受信された命令に基づいて、前記第1のユーザデータのための第1の要求を準備し、前記データプラットフォームに伝送するステップと、
前記データプラットフォームから、前記第1の要求に基づいて、前記第1のユーザデータを受信するステップであって、前記第1のユーザデータは、暗号化される、ステップと、
前記第1のユーザデータを前記第1のプライベート暗号化キーおよび前記データプラットフォームから受信された第1のユーザデータで解読するステップと、
前記解読された第1のユーザデータを処理し、前記第1のユーザデータを匿名化および仮名化するステップと、
前記匿名化および仮名化された第1のユーザデータに基づいて、前記第1のユーザを識別することが不可能であることを検証することによって、処理された第1のユーザデータを決定するステップと
を含む、方法。
(項目100)
前記分散型台帳マネージャから、前記プライベート暗号化キーのうちの第2のプライベート暗号化キーを受信するステップであって、前記第2のプライベート暗号化キーは、第2のユーザと関連付けられる、ステップと、
前記分散型台帳マネージャから、前記ユーザデータのうちの第2のユーザデータを前記データプラットフォームから読み出すための第1の命令を受信するステップであって、前記第2のユーザデータは、第2のユーザと関連付けられる、ステップと、
前記第1の受信された命令に基づいて、前記第2のユーザデータのための第2の要求を準備し、前記データプラットフォームに伝送するステップと、
前記データプラットフォームから、前記第2の要求に基づいて、前記第2のユーザデータを受信するステップであって、前記第2のユーザデータは、暗号化される、ステップと、
前記第2のユーザデータを前記データプラットフォームから受信された前記第2のプライベート暗号化キーおよび前記第2のユーザデータで解読するステップと、
前記解読された第2のユーザデータを処理し、前記第2のユーザデータを匿名化および仮名化するステップと、
前記匿名化および仮名化された第2のユーザデータに基づいて、前記第2のユーザを識別することが不可能であることを検証することによって、処理された第2のユーザデータを決定するステップと
をさらに含む、項目99に記載の方法。
(項目101)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、
前記匿名化および仮名化された第1のユーザデータに基づいて、前記第1のユーザを識別することが不可能であることを検証するように構成される、項目100に記載の方法。
(項目102)
処理された第1のユーザデータを電子ユーザインターフェース上に表示するステップをさらに含む、項目99-101のいずれか1項に記載の方法。
(項目103)
前記電子ユーザインターフェースを介して、前記処理された第1のユーザデータの使用を終了するための第2の命令を受信するステップと、
前記受信された第2の命令に基づいて、前記処理された第1のユーザデータおよび第1のプライベート暗号化キーを含む前記第1のユーザと関連付けられる任意のデータを削除するステップと
をさらに含む、項目99-102のいずれか1項に記載の方法。
(項目104)
前記処理された第1のユーザデータをさらに処理し、分析された第1のユーザデータを作成するステップであって、前記分析された第1のユーザデータは、1つまたはそれを上回る分析ツールが前記データに適用された処理された第1のユーザデータを含み、前記1つまたはそれを上回る分析ツールは、集約、事前分析、およびコンテキスト化のうちの1つまたはそれを上回るものを含む、ステップと、
前記分析された第1のユーザデータをメタデータでエンコーディングするステップであって、前記メタデータは、少なくとも、前記分析された第1のユーザデータが第1のユーザと関連付けられることを示す、ステップと、
前記分析された第1のユーザデータを監視し、前記データ仮想化プラットフォームからの前記分析された第1のユーザデータの一部または全ての非認可エクスポートを防止するステップと
をさらに含む、項目99-103のいずれか1項に記載の方法。
(項目105)
前記データ仮想化プラットフォームからの分析データを伝送するための第3の要求を受信するステップであって、前記分析データは、前記データ仮想化プラットフォームによって起動された分析と関連付けられる結果と、前記第1のユーザと関連付けられるデータとを含む、ステップと、
前記第3の要求に基づいて、前記データ仮想化プラットフォームによって起動される分析と関連付けられるデータを伝送し、前記第1のユーザと関連付けられるデータは伝送しないステップと
をさらに含む、項目104に記載の方法。
(項目106)
前記電子ユーザインターフェースを介して、前記処理された第1のユーザデータの使用を終了するための第3の命令を受信するステップと、
前記受信された第3の命令に基づいて、前記処理された第1のユーザデータおよび第1のプライベート暗号化キーを含む前記第1のユーザと関連付けられる任意のデータを削除するステップと
をさらに含む、項目105に記載の方法。
(項目107)
第1のユーザデータを読み出すための命令は、少なくとも部分的に、前記第1のユーザと関連付けられる第1のソフトウエアコントラクトに基づく、項目99-106のいずれか1項に記載の方法。
(項目108)
第1のユーザデータを読み出すための命令は、少なくとも部分的に、前記データ仮想化プラットフォームにアクセスする購入者デバイスと関連付けられるアカウントに基づき、前記購入者デバイスは、第1のユーザデータへのアクセスのための要求と関連付けられる、項目99-107のいずれか1項に記載の方法。
(項目109)
データ仮想化プラットフォームであって、
1つまたはそれを上回るコンピュータ可読記憶デバイスであって、前記1つまたはそれを上回るコンピュータ可読記憶デバイスは、
コンピュータ実行可能命令と、
ユーザと関連付けられるユーザデータと
を記憶するように構成される、1つまたはそれを上回るコンピュータ可読記憶デバイスと、
分散型台帳マネージャであって、前記分散型台帳マネージャは、分散型台帳と、前記分散型台帳を読み取り、そこに書き込むように構成されるソフトウェアとを備える、分散型台帳マネージャと、
ネットワークインターフェースと、
1つまたはそれを上回るハードウェアコンピュータプロセッサであって、前記1つまたはそれを上回るハードウェアコンピュータプロセッサは、前記1つまたはそれを上回るコンピュータ可読記憶デバイスと通信し、前記コンピュータ実行可能命令を実行し、前記データ仮想化プラットフォームに、
前記分散型台帳マネージャから、前記ネットワークインターフェースを介して、サードパーティデータを1つまたはそれを上回るサードパーティサービスのうちの第1のサードパーティサービスから読み出すための第1の命令を受信することであって、前記サードパーティデータは、第1のユーザと関連付けられる、ことと、
前記命令に基づいて、前記第1のユーザと関連付けられる前記第1のサードパーティサービスからサードパーティデータを読み出すことと、
前記サードパーティデータを処理し、前記サードパーティデータをメタデータでエンコーディングすることであって、前記メタデータは、前記サードパーティデータが読み出されたサードパーティサービスと、前記サードパーティデータが前記第1のユーザと関連付けられることとを示す、ことと、
サードパーティデータと、前記第1のユーザと関連付けられる以前に読み出されたデータを組み合わせることと、
前記分散型台帳マネージャに、前記ネットワークインターフェースを介して、読み出されたサードパーティデータの通知を伝送することであって、前記通知は、前記サードパーティデータが読み出された時間と、前記サードパーティデータが読み出されたサービスとを含む、ことと
を行わせる、1つまたはそれを上回るハードウェアコンピュータプロセッサと
を備える、データ仮想化プラットフォーム。
(項目110)
前記1つまたはそれを上回るサードパーティサービスは、ソーシャルメディアサービスを含む、項目109に記載のデータ仮想化プラットフォーム。
(項目111)
前記サードパーティデータを読み出すための命令は、前記第1のサードパーティサービスと関連付けられる第1のユーザアカウント情報を含む、項目109-110のいずれか1項に記載のデータ仮想化プラットフォーム。
(項目112)
前記サードパーティデータを読み出すための命令は、少なくとも1つのAPIコールを前記第1のサードパーティサービスに実施する方法に関する命令を含む、項目109-111のいずれか1項に記載のデータ仮想化プラットフォーム。
(項目113)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、
前記サードパーティデータを処理し、前記データ仮想化プラットフォームによって必要とされない任意の余剰情報を除去するように構成される、項目109-112のいずれか1項に記載のデータ仮想化プラットフォーム。
(項目114)
前記1つまたはそれを上回るハードウェアコンピュータプロセッサはさらに、
前記サードパーティデータを処理し、前記データを前記データ仮想化プラットフォームによって好まれる構成にフォーマット化するように構成される、項目109-113のいずれか1項に記載のデータ仮想化プラットフォーム。
(項目115)
データ仮想化プラットフォームであって、
分散型台帳マネージャから、サードパーティデータを1つまたはそれを上回るサードパーティサービスのうちの第1のサードパーティサービスから読み出すための第1の命令を受信するステップであって、前記サードパーティデータは、第1のユーザと関連付けられ、前記分散型台帳マネージャは、分散型台帳と、前記分散型台帳を読み取り、そこに書き込むように構成されるソフトウェアとを備える、ステップと、
前記命令に基づいて、前記第1のユーザと関連付けられる前記第1のサードパーティサービスからサードパーティデータを読み出すステップと、
前記サードパーティデータを処理し、前記サードパーティデータをメタデータでエンコーディングするステップであって、前記メタデータは、前記サードパーティデータが読み出されたサードパーティサービスと、前記サードパーティデータが前記第1のユーザと関連付けられることとを示す、ステップと、
サードパーティデータと、前記第1のユーザと関連付けられる以前に読み出されたデータを組み合わせるステップと、
前記分散型台帳マネージャに、読み出されたサードパーティデータの通知を伝送するステップであって、前記通知は、前記サードパーティデータが読み出された時間と、前記サードパーティデータが読み出されたサービスとを含む、ステップと
を含む、データ仮想化プラットフォーム。
(項目116)
前記1つまたはそれを上回るサードパーティサービスは、ソーシャルメディアサービスを含む、項目115に記載の方法。
(項目117)
前記サードパーティデータを読み出すための命令は、前記第1のサードパーティサービスと関連付けられる第1のユーザアカウント情報を含む、項目115-116のいずれか1項に記載の方法。
(項目118)
前記サードパーティデータを読み出すための命令は、少なくとも1つのAPIコールを前記第1のサードパーティサービスに実施する方法に関する命令を含む、項目115-117のいずれか1項に記載の方法。
(項目119)
前記サードパーティデータを処理し、前記データ仮想化プラットフォームによって必要とされない任意の余剰情報を除去するステップをさらに含む、項目115-118のいずれか1項に記載の方法。
(項目120)
前記サードパーティデータを処理し、前記データを前記データ仮想化プラットフォームによって好まれる構成にフォーマット化するステップをさらに含む、項目115-119のいずれか1項に記載の方法。
【図面の簡単な説明】
【0010】
【
図1】
図1は、ユーザデータトランザクションシステムの実施例を図示し、本システムのコンポーネント間の相互作用およびデータ転送の実施例を含む。
【0011】
【
図2A】
図2Aは、ユーザのためのプライバシ設定を作成または更新するための例示的方法のフロー図を示す。
【0012】
【
図2B】
図2B-2Cは、ユーザのためのプライバシ設定を作成または更新するための例示的方法のスイムレーンフロー図を示す。
【
図2C】
図2B-2Cは、ユーザのためのプライバシ設定を作成または更新するための例示的方法のスイムレーンフロー図を示す。
【0013】
【
図3】
図3は、ユーザデータを特定、伝送、および解読するための例示的方法のフロー図を示す。ある付加的または代替ブロックが、
図4、6A、および6Bに描写される。
【0014】
【
図4】
図4は、新しいプライベート暗号化キーを生成し、ユーザデータを新しいプライベート暗号化キーで再暗号化するための方法のフロー図を示す。ある付加的または代替ステップが、
図3に描写される。
【0015】
【
図5】
図5は、ユーザデータに1つまたはそれを上回るサードパーティサービスから読み出されたソーシャルメディアデータを付加するための方法のフロー図を示す。ある付加的または代替ステップが、
図6Bに描写される。
【0016】
【
図6A】
図6Aは、ユーザデータを検証、処理、および監視するための方法のフロー図を示す。ある付加的または代替ステップが、
図3に描写される。
【0017】
【
図6B】
図6Bは、匿名化および仮名化されたユーザデータのための要求を処理するための方法の実施例のフロー図を示す。ある付加的または代替ステップが、
図3および5に描写される。
【0018】
【
図7A】
図7Aは、空間コンピューティングデバイスまたはウェアラブルディスプレイシステムの実施例を図示する。
【0019】
【
図7B】
図7Bは、ユーザデータトランザクションシステムの一実施形態を図式的に図示する。
【0020】
【
図8】
図8は、それを用いて本明細書で議論されるある方法が実装され得る、コンピュータシステムを図示する。
【0021】
図面全体を通して、参照番号は、参照される要素間の対応を示すために再使用され得る。図面は、本明細書に説明される例示的実施形態を図示するために提供され、本開示の範囲を限定することを意図するものではない。
【発明を実施するための形態】
【0022】
詳細な説明
概要
空間コンピューティングデバイス、およびそのようなデバイスを企業のユーザまたは顧客に提供する、企業は、そのようなユーザに関連するユーザデータを収集することができ、これは、環境データ、すなわち、空間コンピューティングデバイスの周囲に基づくデータを含むことができる。ユーザが、空間コンピューティングデバイス上で生成し、それと相互作用するであろう、ユーザデータのタイプは、今日多くの他のプラットフォームまたはサービス上で利用可能なものよりはるかに取扱に注意を要し、かつ貴重であり得る。例えば、ユーザデータは、ユーザの環境(例えば、ユーザの自宅、寝室、オフィス、近隣の人々の顔および身体、または同等物)およびユーザの個人的識別(例えば、製品、人々、場所についてのユーザの個人的選好、ユーザの個人的識別データ、または同等物)についての情報を提供し得るため、より取扱に注意を要する。ユーザデータはまた、ユーザの物理的能力(例えば、ユーザが眼鏡を要求するかどうか、またはユーザが要求し得る処方箋、ユーザの身長、ユーザの体重、ユーザの歩幅、ユーザの身体の外観、または同等物)についての情報を提供し得る。いくつかの実施例では、ユーザデータは、ユーザの健康(例えば、心拍数、ユーザの皮膚を通したユーザの血液の分析、または同等物)についての情報を提供し得る。ユーザデータが使用される方法の制御を提供するように、本情報を保護することが望ましくあり得る。空間コンピューティングデバイスまたは関連付けられるシステムが、ユーザが、ユーザの個人的プライバシ選好に基づいて、ユーザのデータのデータ収集および/または共有を制御するように、ユーザが本情報に関する保護レベルを制御することを許可することが有利であり得る。例えば、いくつかの実施形態では、ユーザは、プライバシ設定の付加的変化が、新しい記憶場所に追加され得、以前のプライバシ設定もまた、精査され得る、不変の分散型台帳上に記憶され得る、更新可能プライバシ設定を提供することができる。
【0023】
パブリック-キー暗号法およびパブリック分散型台帳技術(例えば、ブロックチェーン、ビットコイン、イーサリアム、タングル、または同等物)とソフトウエアコントラクト(例えば、スマートコントラクトまたは同等物)のためのサポートの併用を通して、ユーザは、その独自のデータの制御およびプライバシを維持することができる。例えば、ユーザは、そのデータ(例えば、彼らから収集されたユーザデータ)が、少しでも利用可能である、または共有されるかどうかを制御し、それへのアクセスを有する人物を管理し、アクセス可能または共有されるデータの部分を管理し、データのどの部分が誰にアクセス可能であるかを管理することができ、ユーザは、データの一部または全てへのアクセスを提供することから利点を享受することができる。加えて、本明細書に説明されるシステムおよび方法はまた、そのようなサービスのプロバイダ(例えば、ユーザデータを収集する、または収集した企業、ユーザデータを管理するために雇用されたサードパーティ企業、または同等物)と、ユーザデータを収集するデバイスを使用することを選定する人物との間の信頼を促すことができる。
【0024】
ソフトウエアコントラクト(例えば、スマートコントラクト、イーサリアムスマートコントラクト、チューリング完全スマートコントラクト、または同等物)とキー暗号法の組み合わせは、最も豊富なデータセットを含むように調整され得る、ソリューションを提供することができる。本明細書に説明されるシステムおよび方法は、ユーザのユーザデータへのアクセス、すなわち、その制御を維持するためのユーザフレンドリーな方法を提供することができる。
【0025】
いくつかの実施形態では、キー暗号法(例えば、パブリックキー暗号法または同等物)は、プラットフォームのユーザ毎に、一対の暗号化キー、すなわち、パブリックキーおよびプライベートキーを生成するように構成されることができる。パブリックキーは、公的に共有されることができるが、プライベートキーは、ユーザの制御下にのみ留まるように意図される。キー暗号法の1つの利点は、ユーザデータがプライベートに保たれるように、データ機密性を含むことができる。例えば、ユーザは、その以前に生成されたパブリックキーを使用して、そのユーザデータを暗号化することができ、ユーザのみが、後の時点において、そのプライベートキーを使用して、ユーザデータを解読することが可能であろう。キー暗号法の別の利点は、データ真正性を含むことができ、ユーザは、彼らがそれを生み出したことを証明するために、そのプライベートキーを使用して、データのいくつかの断片にデジタル的に署名することができる。
【0026】
分散型台帳は、ソフトウエアコントラクトサポートと併せて、口座残高の状態を追跡し、1つの有効状態から別の状態へのスマートコントラクトの遷移を促進するように構成され得る、パーミッションレス、トラストレス、検閲耐性、かつ不変の台帳を提供することができる。時として、共有台帳または分散型台帳技術もしくはDLTとも称され、また、タングルおよび他の形態の分散型記憶装置も含み得る、分散型台帳は、複数の施設、国、または機関を横断して地理的に拡散される、複製、共有、および同期されたデジタルデータのコンセンサスであり得る。1つの形態の分散型台帳設計は、ブロックチェーンシステムであって、これは、パブリックまたはプライベートのいずれかであることができる。台帳は、ピアツーピアネットワーク内に分散されてもよく、いくつかのノード(デバイス)、有向非巡回グラフ(DAG)、または他のデータ構造を横断して拡散される、分散型データベースを備えてもよい。説明されるようなデータ機密性および真正性は、分散型台帳によって提供されることができ、また、キー暗号法を介して、分散型台帳のコンテキスト外でも使用されることができる。情報セキュリティのコンテキストにおいて、分散型台帳はまた、改良されたデータ完全性および否認防止を提供することができる。パブリック分散型台帳技術の1つの利点は、例えば、データが許可を伴わずに操作されないことを確実にすることによって、データ完全性を含むことができる。パブリック分散型台帳技術の別の利点は、例えば、ユーザが、インターネットの使用を通して、分散型台帳に関するデータに接続およびアクセスし得る、データ可用性およびアクセス性を含むことができる。例えば、中央組織は、分散型台帳に関する任意の当事者への特殊権限をブロックまたは付与することができない。パブリック分散型台帳技術の別の利点は、例えば、検閲耐性を含むことができる。例えば、中央組織は、誰がブロックチェーンに関するデータを記憶することができ、誰が記憶することができないかを制御することができない。
【0027】
現在、分散型台帳技術は、その限界を有する。例えば、本技術は、高価であって(例えば、トランザクション手数料が高くあり得る)、全体的にセキュアではなく(例えば、51%攻撃、チェーン分岐の可能性、または同等物)、全体的にスケーラブルではなく、およびデータベースを伴う従来的一元型サービスより低速であり得る。分散型台帳技術の改良が、進められており、本明細書に説明されるシステムおよび方法に影響を及ぼし得る。分散型台帳技術に関する現在の限界は、本明細書に説明されるシステムおよび方法に関する限界として解釈されるべきではない。
【0028】
分散型台帳技術の改良は、本明細書に説明されるシステムおよび方法の改良に変換されるであろう。例えば、いくつかの改良は、より低いトランザクション手数料、増加されたセキュリティ(例えば、ブロックチェーンの最終的状態を達成する、51%攻撃に対する耐性、分岐の可能性を限定する、または同等物)、増加されたスケーラビリティ(例えば、シャーディング、異なるコンセンサス機構、または同等物の使用および実装を通して)、または本明細書に説明されるシステムおよび方法を直接または間接的に改良し得る、他の新しい特徴もしくは利点を含み得る。
【0029】
現在、分散型台帳に関する大量のデータを記憶することは、高価または煩雑であり得るため、データベースを用いて、セキュアサーバに関するデータを記憶するが、ユーザのプライバシ設定を分散型台帳上に記憶し得る、ソリューションを実装することが所望される。しかしながら、分散型台帳技術が改良されるにつれて、ユーザのプライバシ設定およびユーザデータの両方が、分散型台帳を介して記憶およびアクセスされ得ることを理解されたい。
【0030】
加えて、ヒトによって使用可能かつ容易に学習される、コンピュータユーザインターフェースの設計は、困難であり得る。本開示の双方向かつ動的ユーザインターフェースの種々の実施形態は、有意な研究、開発、改良、反復、および試験の結果である。本簡単でない開発は、以前のシステムに優る有意な認知および人間工学的効率ならびに利点を提供し得る、本明細書に説明されるユーザインターフェースをもたらした。双方向かつ動的ユーザインターフェースは、ユーザのために、低減された頭脳的作業量、改良された意思決定、低減された作業ストレス、または同等物を提供し得る、改良されたヒトとコンピュータの相互作用を含む。例えば、本明細書に説明される双方向ユーザインターフェースとのユーザ相互作用は、リソース依存性、または、データ変換、関係の最適化された表示を提供し得、ユーザが、前のシステムより迅速に、そのような情報にアクセスし、それをナビゲートし、それを査定し、それを会得することを可能にし得る。
【0031】
本明細書に説明されるシステムおよび方法の1つの利点は、データプラットフォームのオペレータ、空間コンピューティングデバイスと関連付けられるサービス、およびユーザデータを収集する任意の関連サービスが、データが、暗号化され、オペレータが、ユーザデータを解読するための適切なキーを有しないであろうため、ユーザデータへの直接アクセスを有しないであろうことである。例えば、そのような実装の利点は、セキュリティ侵害の際、ユーザデータが、盗難される場合、暗号化に基づいて、ユーザデータが適切なキーを伴わずに解読されることが困難乃至ほぼ不可能であろうことである。加えて、政府機関が、オペレータからのユーザデータの提出を命じる場合、オペレータは、ユーザデータを解読し、そのような提出命令に準拠することが不可能であろう。これは、オペレータが、そのような取扱に注意を要するユーザデータを漏洩する公的な関係を回避することを可能にするであろう。
【0032】
いくつかの状況では、ユーザは、そのユーザデータをホストするどのような人物であっても、いかようにも、ユーザデータを修正または悪用することはないと信頼しなければならない。ユーザは、そのユーザデータをアップロードする前に、そのユーザデータのハッシュをブロックチェーンに記憶することができるため、そのユーザデータが不正開封されたかどうかを照合することが容易である。例えば、アップロードされたユーザデータの新しいハッシュが、決定され、記憶されたハッシュと比較されることができる。したがって、本明細書に説明されるシステムおよび方法の別の利点は、ユーザデータが修正されたかどうかを照合するための照合プロシージャが存在し得ることである。
【0033】
いくつかの実施形態では、万が一ユーザが、そのプライベートキーを紛失した、または忘れた場合、プライベートキー復元オプションが、利用可能であり得る。例えば、一連の2要素認証機構(例えば、電子メール、Facebook、SMS、電話、Phone-a-Friend、または同等物)を使用して、ユーザは、異なるデバイスを横断して、そのアカウントと関連付けられるそのプライベートキーへのアクセスを読み出すことが可能である。これは、同一ユーザが、異なるデバイスおよび異なるプラットフォーム上にログインされることを許可するであろう。
【0034】
いくつかの実施形態では、ユーザデータを支援またはホストするエンティティが、ユーザデータへのアクセスを一方的に破壊またはブロックするという問題点が存在し得る。しかしながら、いくつかの実施形態では、非一元型クラウド記憶ソリューションが、実装されることができる(例えば、Sia、Storj、Filecoin、および/またはIPFS)。暗号化されたユーザデータは、非一元型クラウド上に記憶され得、支援またはホストエンティティは、記憶されたユーザデータの制御を殆どまたは全く有しないであろう。
【0035】
加えて、いくつかの実施形態では、ユーザは、サードパーティによるユーザデータへのアクセスを許可し得、そのようなユーザデータは、一時的にのみアクセス可能であり得るが、サードパーティは、依然として、ユーザデータを不正使用し得る。いくつかの実施形態では、非一元型エスクロー状機構が、実装され、悪用されたユーザデータの紛争を解決することができる。ユーザが、サードパーティに、ユーザのユーザデータにアクセスするための許可を付与後、ユーザデータを受信する、またはそれにアクセスする、サードパーティは、ユーザデータを乱用(例えば、ユーザデータを他の非認可サードパーティと共有する、またはそれに販売する、ユーザデータのセキュリティ侵害または非認可アクセスからの不十分な保護または保護の怠慢、もしくは同等物)しないことの約束として、ある量のコイン、トークン、または資金を託すことを要求されるであろう。ユーザが、ユーザがアクセスを与えたサードパーティが、事前に構成されたプライバシ同意に違反したと訴える場合、例えば、自律分散型組織(DAO)が、誰に責任があるかを決定することができる(例えば、OpenZeppelinおよびAragonは、DAOがそのような決定を行うことを許可するためのプラットフォームを提供する)。プライバシのセキュリティ侵害があったことが決定される場合、例えば、サードパーティによって託されたトークンは、消滅または削除されるか、もしくはユーザに送信されるかのいずれかとなり得る。これは、サードパーティが、ユーザデータを悪用しないように動機付ける。代替として、任意のサードパーティは、彼らが所有する資金の非常に大きな割合を託すように義務付けられ得る。サードパーティが、サードパーティがトランザクションしているユーザのいずれかのプライバシを侵害する場合、DAOは、サードパーティに責任があるかどうかの決定を行うことができる。サードパーティに責任がある場合、全ての託された資金は、消滅または削除されるか、もしくは影響を受けたユーザ間で共有されるかのいずれかとなるであろう。これは、託された総額が、十分に高額である場合、サードパーティに害を及ぼし得るため、サードパーティが、ユーザのいずれかの信頼を侵害しないように動機付けるであろう。
【0036】
いくつかの実施形態では、分散されるシステムは、多くの場合、フォールトトレランスであるように設計される。したがって、クラスタ内のノードのうちの1つが、ダウンする場合でも、本システムは、エンドユーザの視点から、完全に機能したままである。しかしながら、ノードが、適切に機能し続け、正しく機能しているかのように作用するが、注意深く異なる機能を実施する場合、データの完全性に害を及ぼし、および/またはユーザの体験に影響を及ぼし得る。そのような不正挙動を考慮して、ノードは、例えば、ビザンチンフォールトトレランスと呼ばれる。多くの異なる形態のコンセンサスプロトコルが存在するが、プルーフ・オブ・ステーク(PoS)およびルーフ・オブ・ワーク(PoW)は、それらがビザンチンフォールトトレランスを考慮するため、最も一般的なもののうちの2つである。例えば、PoWは、不正挙動マイナが、それらがネットワークの残りより高速でブロックを算出することを所望する場合、非常に大量の算出リソースを費やすように強制することによって、ビザンチンフォールトトレランスを考慮する。ネットワークを攻撃しようとするのではなく、攻撃者(例えば、不正挙動マイナまたは同等物)は、正当なマイナとしてネットワークをサポートすることによって、より多くの金銭を儲け得る。別の実施例では、PoSは、マイナがブロックを生成することを所望する場合、マイナに多額の資金を託すように強制することによって、ビザンチンフォールトトレランスを考慮する。別のマイナまたは異なる完全ノードが、対応するブロックチェーンを照合しようとし、マイナのうちの1つが、不正挙動し、正しくないブロックを算出したことを確認する場合、それらは、ネットワークの残りに信号伝達するであろう。ネットワークを攻撃しようとするのではなく、攻撃者(例えば、不正挙動マイナまたは同等物)は、正当なマイナとしてネットワークをサポートすることによって、より多くの金銭を儲け得る。
【0037】
いくつかの実施形態では、本明細書に説明されるアーキテクチャは、ユーザのセンサデータに依存する、オブジェクト認識装置(OR)をサポートすることができる。いくつかの実施例では、空間コンピューティングデバイスプロバイダが、サードパーティORをプロバイダのサーバ上にホストする場合、プロバイダは、ユーザのデータをいくつかの時点で解読することが可能である必要がある。これは、プロバイダがユーザのデータへの直接アクセスを有することなく、外部ORが起動し得ないことを意味する。別の実施例では、プロバイダが、サードパーティにORをその独自のサーバ上で起動させ、ユーザのユーザデータへのアクセスを有するサードパーティに関するユーザ制御を与えるように選定する場合、ユーザは、プロバイダがそもそもユーザデータを解読することが可能ではなくても、ユーザのユーザデータへのサードパーティアクセスを許可するオプションを有する。
例示的ユーザデータトランザクションシステム
【0038】
図1は、ユーザデータトランザクションシステム100の実施例を図示し、本システムのコンポーネント間の相互作用およびデータ転送の実施例を含む。例えば、どのようにユーザデータトランザクションシステム100の内部コンポーネントまたはシステムが、相互作用するかと、どのデータが、コンポーネントまたはシステム間で転送されるかとである。エージェント106、分散型台帳108、およびソフトウエアコントラクト110は、ユーザデータトランザクションシステム100のコンポーネントまたはシステムである、(例えば、他の実施形態および実施例に関して)本明細書に説明されるエージェント、分散型台帳、およびソフトウエアコントラクトと同一であってもよい。また、説明されるシステムおよびコンポーネントは、1つのコンポーネントまたは多くのコンポーネントを含むことができる。本明細書に説明されるコンポーネントは、包括的であることを意味するものではなく、どのコンポーネントが実装され得るかのサンプルにすぎない。いくつかのコンポーネントは、組み合わせられてもよく、その他は、除去される、または類似コンポーネントで代用されてもよい。また、いくつかのコンポーネントは、1つのシステムの一部、または同一もしくは類似機能を達成するためにともに接続され、稼動する、複数のシステムの一部であることができる。
例示的エージェント
【0039】
いくつかの実施形態では、エージェント106は、分散型台帳108、データプラットフォーム112、データ仮想化システム111、およびユーザデバイス102(例えば、セルラー電話、タブレットコンピュータ、電子リーダ、スマートウォッチ、頭部搭載型拡張、仮想、または複合現実ディスプレイシステム、ウェアラブルディスプレイシステム、
図7Aのウェアラブルディスプレイシステム1000、もしくは同等物)を含み得る、種々のシステムと電子通信することができる。いくつかの実施形態では、エージェント106は、ローカルエリアネットワークを介して、またはインターネットを介して接続される、複数のシステムを備えることができる。また、いくつかの実施形態では、例えば、エージェント106、またはその一部は、ユーザデバイス102、データプラットフォーム112、データ仮想化システム111、もしくは購入者デバイス104上に位置することができる。例えば、エージェント106と、データプラットフォーム112とを含む、ユーザデータプライバシシステム103は、プライバシ中央データ記憶ソリューションを備えることができる。プライバシ中央データ記憶ソリューションは、プライベート、パブリック、またはプライベートコンポーネントとパブリックコンポーネントの組み合わせであることができる。いくつかの実施形態では、データまたは情報(例えば、ユーザデータまたは同等物)は、プライバシ中央データ記憶ソリューション(またはそのコンポーネント)から、アプリケーションプログラミングインターフェース(API)コールの使用を通して、アクセスされることができる。エージェント106は、種々のシステムから受信し、処理し、分散型台帳(例えば、ブロックチェーン、タングル、または同等物)内に記憶する、情報を決定することができる。
【0040】
いくつかの実施形態では、エージェント106は、ソフトウエアコントラクト110(例えば、スマートコントラクトまたは同等物)を生成し、ソフトウエアコントラクト110を分散型台帳108内に記憶するために使用し得る、データまたは命令を種々のシステムから受信することができる。例えば、エージェント106は、プライバシ設定命令をユーザデバイス102から受信することができ、エージェント106は、次いで、命令を処理し、プライバシ設定命令を捕捉する、スマートコントラクトを生成することができ、次いで、エージェント106は、スマートコントラクトをブロックチェーンに書き込むことができる。エージェント106を含む、種々のシステムによって伝送および受信される、データのタイプは、
図2-6におけるフローチャートに関してさらに詳細に説明される。
【0041】
ソフトウエアコントラクト110を生成し、分散型台帳108上に記憶することに加え、エージェント106はまた、プライベートキーおよびパブリックキーを生成することができる。本明細書に議論されるように、キー暗号法(例えば、パブリックキー暗号法または同等物)は、プラットフォームのユーザ毎に、対の暗号化キー、すなわち、パブリックキーおよびプライベートキーを生成するように構成されることができる。パブリックキーは、公的に共有されることができるが、プライベートキーは、ユーザの制御下にのみ留まるように意図される。キー暗号法の1つの利点は、ユーザデータがプライベートに保たれるように、データ機密性を含むことができる。例えば、ユーザは、その以前に生成されたパブリックキーを使用して、そのユーザデータを暗号化することができ、ユーザのみが、後の時点に、そのプライベートキーを使用して、ユーザデータを解読することが可能であろう。キー暗号法の別の利点は、データ真正性を含むことができ、ユーザは、彼らがそれを生み出したことを証明するために、そのプライベートキーを使用して、データのいくつかの断片にデジタル的に署名することができる。プライベートおよびパブリックキーは、分散型台帳108またはソフトウエアコントラクト110内に記憶され、キーが生成されたユーザと関連付けられることができる。プライベートおよびパブリックキーは、本明細書にさらに詳細に説明されるように、分散型台帳108またはソフトウエアコントラクト110から読み出され、種々のシステムに伝送されることができる。プライベートキーは、例えば、データ仮想化システム111、データプラットフォーム112、および/またはユーザデバイス102に伝送される、もしくはそこから受信されることができる。
【0042】
エージェント106は、分散型台帳108内に記憶されるソフトウエアコントラクト110を読み取り、そのユーザの関連付けられるソフトウエアコントラクト110内に反映された特定のユーザの共有設定に基づいて、データを抽出するための命令を生成することができる。そのような命令は、例えば、データ仮想化システム111が、関連データをデータプラットフォーム112から、または関連データが記憶される、1つまたはそれを上回るサードパーティサービスを介して読み出し得るように、データ仮想化システム111に伝送されることができる。
【0043】
いくつかの実施形態では、種々のシステムによってアクセスまたは転送されるデータに関するデータ転送もしくはトランザクション情報は、データ仮想化システム111またはデータプラットフォーム112によって、エージェント106に伝送されることができる。例えば、データ仮想化システム111またはデータプラットフォーム112は、それが1つまたはそれを上回るサードパーティサービス(例えば、ソーシャルネットワーク、ファイル記憶サービス、または同等物)もしくはデータプラットフォームから受信する、ユーザデータを読み出し/アクセスし、または修正し、そのような情報の読出/アクセスおよび修正は、追跡ならびに監視されることができる。読出/アクセスおよび修正情報もまた、要約ならびに説明され、次いで、任意のさらなる処理および分散型台帳108上への記憶のために、エージェント106に送信されることができる。本情報は、例えば、誰が、どのタイプのデータに、いつアクセスしたかを追跡または監視するために使用されることができる。
【0044】
ある実装では、エージェント106(またはエージェント106の1つまたはそれを上回る側面)は、「仮想コンピューティング環境」を含む、またはその中に実装されることができる。本明細書で使用されるように、用語「仮想コンピューティング環境」は、広義には、例えば、本明細書に説明されるモジュールまたは機能性の1つまたはそれを上回る側面を実装するために1つまたはそれを上回るプロセッサ(例えば、
図8の実施例において下記に説明されるように)によって実行される、コンピュータ可読プログラム命令を含むものと解釈されるべきである。さらに、本実装では、エージェント106の1つまたはそれを上回るモジュールもしくはエンジンは、仮想コンピューティング環境によって受信された入力に応答して、ルールまたは他のプログラム命令を実行し、仮想コンピューティング環境の動作を修正する、仮想コンピューティング環境の1つまたはそれを上回るルールエンジンを備えるものと理解され得る。例えば、ユーザデバイス102から受信された要求は、仮想コンピューティング環境の動作を修正し、エージェント106に、ソフトウエアコントラクト110、パブリックまたはプライベートキーを生成させる、もしくは他の動作を実施させるものと理解され得る。そのような機能性は、入力に応答して、かつ種々のルールに従って、仮想コンピューティング環境の動作の修正を備えてもよい。(本開示全体を通して説明されるような)仮想コンピューティング環境によって実装される他の機能性はさらに、仮想コンピューティング環境の動作の修正を備えてもよく、例えば、仮想コンピューティング環境の動作は、例えば、エージェント106によってデータプラットフォーム112から集められた情報に応じて、変化してもよい。仮想コンピューティング環境の初期動作は、仮想コンピューティング環境の確立として理解され得る。いくつかの実装では、仮想コンピューティング環境は、コンピューティングシステムの1つまたはそれを上回る仮想機械もしくは他のエミュレーションを備えてもよい。いくつかの実装では、仮想コンピューティング環境は、遠隔でアクセス可能であり得、必要に応じて、急速にプロビジョニングされ得る、物理的コンピューティングリソースの集合(一般に、「クラウド」コンピューティング環境と称される)を含む、ホストされたコンピューティング環境を備えてもよい。
分散型台帳
【0045】
分散型台帳108は、エージェント106または別個のシステムの一部であることができる。分散型台帳108は、1つまたはそれを上回るソフトウエアコントラクト110、複数のプライベートおよびパブリックキー、種々のシステムによってアクセスまたは転送されるデータに関するデータ転送またはトランザクション情報、および/または任意の他の関連情報(例えば、データがアクセスされた時間、アクセスと関連付けられるアカウント、アクセスされたデータが属する人物、データにアクセスするための適切な許可が適切であったかどうか、データにアクセスするために使用されたパブリックまたはプライベートキー、もしくは同等物)を記憶するように構成されることができる。
【0046】
分散型台帳は、ソフトウエアコントラクトサポートと併せて、口座残高の状態を追跡し、ソフトウエアコントラクト110の1つの有効状態から別の状態への遷移を促進するように構成され得る、パーミッションレス、トラストレス、検閲耐性、かつ不変の台帳を提供することができる。ソフトウエアコントラクト110(例えば、スマートコントラクト、イーサリアムスマートコントラクト、チューリング完全スマートコントラクト、または同等物)とキー暗号法の組み合わせは、最も豊富なデータセットを含むように調整され得る、ソリューションを提供することができる。本明細書に説明されるシステムおよび方法は、ユーザのユーザデータへのアクセスおよび/またはその制御を維持するためのユーザフレンドリーな方法を提供することができる。
【0047】
いくつかの実施形態では、種々のシステムによってアクセスまたは転送されるデータに関するデータ転送またはトランザクション情報は、分散型台帳108内に記憶されることができる。例えば、データ仮想化システム111は、それが1つまたはそれを上回るサードパーティサービス(例えば、ソーシャルネットワーク、ファイル記憶サービス、または同等物)もしくはデータプラットフォーム112から受信する、ユーザデータを読み出し/アクセスし、または修正してもよく、そのような読出/アクセスおよび修正情報は、追跡および監視されることができる。読出/アクセスおよび修正情報はまた、要約および説明され、次いで、任意のさらなる処理および分散型台帳108上への記憶のために、エージェント106に送信されることができる。本データ転送またはトランザクション情報は、例えば、誰が、どのタイプのユーザデータに、いつアクセスしたかを追跡または監視するために使用されることができる。
【0048】
最新技術における分散型台帳のある実装に関して、非効率性(例えば、ブロックチェーンの種々のブロックへのより低速の書込)が存在し得るが、本技術は、迅速に改良され、まもなく、非効率性は、従来的データベースまたは分散型データベースと比較して、最小限となる、または存在しなくなるであろう。したがって、本明細書における実施形態および実施例は、ユーザデータを処理および記憶するために使用される、データプラットフォーム112を開示するが、分散型台帳108は、データプラットフォーム112と併せて、またはデータプラットフォーム112の代わりに、そのようなユーザデータを記憶するために使用されることができることを理解されたい。
【0049】
いくつかの実施形態では、プライベートブロックチェーンまたは分散型台帳が、実装されることができる。プライベート分散型台帳は、完全性を保証する、企業間のセキュアサービスを構築するときに有用であり得る。例えば、3つの企業間の株式決済サービスが、プライベート分散型台帳を使用し、したがって、3つの企業は、同一情報へのアクセスを有し、相互に信頼する必要はない。代替として、銀行が、支払のよりセキュアかつより高速の転送のためにプライベート分散型台帳を有し得る。非一元型消費者対応製品を構築するとき、1つの目標は、ユーザがサービスプロバイダを信頼する必要がない、システムを構築することであり得る。エンドユーザは、そのデータにアクセスした人物および頻度を確認することが可能であるべきである。ユーザは、ライトまたはフルノードを同期させ、自らのトランザクションを照合する能力を有するべきである。別のアドレスとトランザクションを行うとき、ユーザは、そのトランザクション履歴を確認し、あるアドレスを信頼すべきかどうかに関して自ら決定を行うことが可能であるべきである。
ソフトウエアコントラクト
【0050】
いくつかの実施形態では、ソフトウエアコントラクト110は、コードのラインの中に直接書き込まれている2人の当事者間の同意の条件を用いた自己実行コントラクトである。コードおよびその中に含有される同意は、分散され、非一元化された、分散型台帳ネットワークを横断して存在する。例えば、ソフトウエアコントラクト110は、信頼されたトランザクションおよび同意が、中央当局、法的システム、または外部施行機構の必要なく、異種の匿名の当事者間で行われることを許可することができる。それらは、トランザクションを追跡可能、トランスペアレント、かつ不可逆的にする。標準的コントラクトは、関係の条件(通常、法律によって施行可能なもの)を概略するが、ソフトウエアコントラクト110は、暗号化コードとの関係を施行する。例えば、ソフトウエアコントラクト110は、それらがプログラムされる通り正確に実行する、プログラムである。
【0051】
いくつかの実施形態では、ユーザは、その個別のユーザデバイス102を通して、ユーザの個人的プライバシ設定を更新することができる。いったん更新が、受信/アクセスされると、エージェント106は、次いで、新しいソフトウエアコントラクト110を準備し、それを分散型台帳108に保存するであろう。分散型台帳(例えば、ブロックチェーン、または同等物)の技術に基づいて、ユーザのソフトウエアコントラクトの多くの古いバージョンが、存在し、種々の場所(例えば、ブロックチェーンのブロック)において視認可能/アクセス可能となり得ることを理解されたい。したがって、エージェント106は、最新バージョンである、ソフトウエアコントラクト110を区別することが可能であることが望ましい。例えば、エージェント106は、保存されているソフトウエアコントラクト110のバージョンを示す、英数字識別子を用いて、ソフトウエアコントラクト110を処理することができる。別の実施例では、日付が、各ソフトウエアコントラクト110とともに含まれることができる。別の実施例では、各ソフトウエアコントラクト110は、全てのソフトウエアコントラクトの精査に応じて、分散型台帳108上のある場所が精査または分析されないであろうように、以前のソフトウエアコントラクトへの参照を含むことができる(例えば、より古いブロックは、含まれる参照に基づいてか、またはソフトウエアコントラクトが、より新しいブロック内に見出され、本質的に、より最新であろうためかのいずれかにおいて、検索されることを必要としないであろう)。
【0052】
いくつかの実施形態では、ソフトウエアコントラクト110が、使用されることができ、ソフトウエアコントラクト110は、同意のネゴシエーションまたは実施をデジタル的に促進、照合、もしくは施行するように意図される、コンピュータプロトコルを含むことができる。ソフトウエアコントラクト110は、サードパーティを伴わずに、追跡可能かつ不可逆的であり得る、信用できるトランザクションの実施を可能にすることができる。多くの種類の契約上の条項が、部分的または完全に、自己実行する、自己施行する、もしくは両方であるようにされ得る。ソフトウエアコントラクト110は、従来的コントラクト法より優れ、コントラクトと関連付けられる、他のトランザクションコストを低減させる、セキュリティを提供することができる。ソフトウエアコントラクト110の一実施例は、スマートコントラクトである。スマートコントラクト110のためのSolidityプログラミング言語における擬似コードの実施例が、下記に提供される。
【0053】
【0054】
以下の例示的フローは、ユーザによって設定されたプライバシ設定に基づいて、データベースが暗号化されたデータで機能し得る方法を図示する。例示的フローは、それらが使用および動作されるにつれたシステムのいくつかの利点を示すことに役立つ。明示的に述べられない他のフローも、本明細書に記載される開示に基づいて、生成される、または存在し得ることを理解されたい。
【0055】
暗号化キーに関して、例示的フローは、以下を含むことができる。本実施例では、スマートコントラクトは、ユーザが、ユーザデータへのアクセスを有するであろう、認可された当事者のリストを追加または除去する度に継続的に更新される、スモールデータベースとして作用する。例えば、ユーザのプライベートキーは、認証プロセス後、対応するユーザデバイス(例えば、102)にセキュアに転送されることができる。次いで、サードパーティは、分散型台帳トランザクションを介して、ユーザの環境データへのアクセスを要求することができる。ユーザは、その環境データへのアクセスを拒否する、または無料もしくは有料で、アクセスを付与することができる。例えば、ユーザは、定額前払手数料、ユーザの環境データのサブスクリプションを要求し得る、またはユーザの環境データに関する入札プラットフォームが、導入されることができる。ここで、例えば、ユーザが、ユーザの環境データへのアクセスを許可し、サードパーティが、適切な支払または同意を行うと仮定する。ユーザが、空間コンピューティングデバイスの使用を通して、新しい環境データを生成すると、空間コンピューティングデバイスは、(例えば、暗号化されたデータデータベース116内の)暗号化されたデータをデータプラットフォーム(例えば、112)に記憶し、ソフトウエアコントラクト110の状態を更新し、新しいデータが生成または記憶されたことを示す。次いで、サードパーティが、ソフトウエアコントラクト110にクエリすると、解読キーおよびユーザの環境データを読み出すべきファイル場所のリストが読み出される。ユーザは、後に、サードパーティをソフトウエアコントラクトから除去(例えば、新しいソフトウエアコントラクトを作成し、古いソフトウエアコントラクトを置換すること、または同等物によって)し、ユーザの環境データへのアクセスを除去することができる。
【0056】
加えて、別の例示的フローでは、データプラットフォーム(例えば、112)上に記憶されるセンサデータが存在し得る場合でも、データプラットフォームのオペレータは、オペレータが必要なキーへのアクセスを有しないであろうため、データを解読することが可能であろう。例えば、非対称プライベートキーが、ユーザのために生成されることができ、ユーザの空間コンピューティングデバイスにセキュアに転送されることができる。一時的対称ファイル暗号化キーもまた、生成されることができる。空間コンピューティングデバイスによって生成されたユーザのセンサデータ(例えば、環境データまたは他のユーザデータ)は、一時的対称ファイルを使用して暗号化され、ユーザのセンサデータのハッシュも同様に、算出される。暗号化されたセンサデータは、データプラットフォーム(例えば、空間コンピューティングデバイスの販売者によって動作される)上に記憶され、統一資源識別子(URI)が、読み出される。空間コンピューティングデバイスは、分散型台帳上のソフトウエアコントラクトにクエリし、センサデータに関心がある全ての保留中のサードパーティのリストを読み出す。
【0057】
いくつかの実施形態では、空間コンピューティングデバイスは、周期的に、分散型台帳のライトノードとユーザデバイス102を同期させることができる。ライトノード、すなわち、軽量ノードは、完全分散型台帳をダウンロードしなくてもよい。代わりに、ライトノードは、ブロックヘッダのみをダウンロードし、トランザクションの真正性を検証する。ライトノードは、システムを維持し、その上で起動することが容易である。ユーザは、ユーザがそのセンサデータへの許可を付与することを所望する、サードパーティを選択する。許可を付与することと引き換えに、資金、ポイント、クレジット、または同等物の即座転送、もしくはサードパーティとユーザとの間のサブスクリプションモデルが、分散型台帳上で生じ得る。サードパーティに関して、空間コンピューティングデバイスは、提供されるパブリックキーを使用して、対称ファイル暗号化キーを暗号化する。暗号化されたキーは全て、サードパーティアドレスとともに、承認されたサードパーティに関して記憶される。ユーザは、センサデータのURI、ハッシュ、およびあるメタデータをソフトウエアコントラクトに追加する。本ステップのセットは、さらなるセンサデータが生成される度に繰り返されることができる。承認されたサードパーティは全て、ソフトウエアコントラクトにクエリし、そのプライベートキーを使用して、一時的対称ファイル暗号化キーを読み出し、次いで、センサデータをダウンロードし、それを解読することができる。随時、ユーザが、そのセンサデータへのアクセスを有する人物を変更することを所望すると、ユーザは、単に、ユーザのプライバシ設定を更新する。ユーザのプライバシ設定の更新は、ユーザデバイスが、ソフトウエアコントラクトを更新するとき、一時的対称ファイル暗号化キーを再算出し、他の当事者のパブリックキーを省略するようにトリガするであろう。選択された当事者は、以前に生成されたデータへのアクセスを有することができるが、任意の新しく生成されたセンサデータへのアクセスを有し得ない。加えて、一時的対称ファイル暗号化キーは、セキュリティ追加のために、周期的に、またはファイル毎ベースで、再算出されることができる。いくつかの実施形態では、ユーザのアドレスに対応する、ソフトウエアコントラクトの任意の修正は、非対称プライベートキーによって署名されなければならない。
【0058】
いくつかの実施形態では、ブロックチェーンは、分散型台帳として使用される。ブロックチェーントランザクションのコストは、選択されたソフトウエアコントラクトプラットフォームに基づく。例えば、イーサリアムプラットフォームが、選択および実装される場合、トランザクション時間およびコストは、ネットワーク使用量および最終ソフトウェアまたはスマートコントラクトの状態に大きく依存する。コストは、例えば、ソフトウエアコントラクトを公開する、サードパーティがユーザのデータへのアクセスを得るための要求を行う、ユーザが承認されたサードパーティのリストを更新する、およびユーザが新しいユーザデータのためのメタデータを追加することと関連付けられ得る。いくつかの実施形態では、ユーザが承認されたサードパーティのリストを更新することおよびユーザが新しいユーザデータのためのメタデータを追加することは、ソフトウエアコントラクトが、あまり頻繁ではなく、はるかに低いコストでユーザに更新されるように、バッチ化されることができる。加えて、イーサリアムはまた、ユーザの代わりに、トランザクションに対して支払われ得るように、ソフトウエアコントラクトを介した方法を模索しており、これは、説明されるシステムおよび方法を実装するために望ましいであろう。これは、ユーザがそのデータへのアクセスを許可することである程度の金銭またはポイントを稼ぐまで、新しいユーザが参加することに役立つ方法を提供し得、彼らのためのさらなるトランザクションをサポートすることができる。また、EOSは、委任されたプルーフ・オブ・ステークと呼ばれる、異なるコンセンサス機構を使用する、別のタイプのソフトウエアコントラクトプラットフォームである。より低いセキュリティおよび完全性を犠牲にして、全てのトランザクションは、全ての人に無料であって、コストは、完全に回避されることができ、他のスマートコントラクトプラットフォームの有用な代替であることができる。
例示的データプラットフォーム
【0059】
データプラットフォーム112は、例えば、匿名化および仮名化されたデータデータベース114と、暗号化されたデータデータベース116と、データ照合システム118とを備えることができる。データプラットフォーム112はまた、データを処理および記憶するために使用されることができる。例えば、データプラットフォーム112は、ユーザデータ、または、ユーザデバイス102がユーザデバイス102の環境について収集する、データ(例えば、人々の顔、部屋サイズ、芸術作品、またはプライベートもしくはパブリック空間内の人物の周囲にあるであろう任意のものを含む、部屋またはエリアについての周囲情報)を含む、環境データを記憶することができる。いくつかの実施形態では、データプラットフォーム112はまた、複数のプライベートおよびパブリックキー、種々のシステムによってアクセスまたは転送されるデータに関するデータ転送またはトランザクション情報、もしくは任意の他の関連情報(例えば、データがアクセスされた時間、アクセスと関連付けられるアカウント、属するデータにアクセスした人物、データにアクセスする適切な許可が適切であったかどうか、データにアクセスするために使用されたパブリックまたはプライベートキー、または同等物)を記憶することができる。いくつかの実施形態では、いくつかのデータは、分散型台帳108上への記憶のためにエージェント106に伝送されるまで、一時的に記憶される。いくつかの実施形態では、データの一部は、データプラットフォーム112内に記憶され、他の部分は、分散型台帳108内に記憶される。しかし、いくつかの実施形態では、データは、冗長性または効率性の形態として、両方のシステム内に記憶されることができる。
【0060】
空間コンピューティングデバイス上に生成されるユーザデータのタイプは、非常に個人的であって、ある場合には、機密である、専有である、または取扱に注意を要し得る。そのようなユーザデータは、ユーザの環境のモデルを構築し、コンテンツ持続性および共有体験を可能にするために使用されることができる。これを行うことは、ユーザの周囲内の実オブジェクトを検出し、意味論的に標識するためのオブジェクト認識装置パイプラインと、オクルージョンおよび衝突検出のための稠密メッシュを構築する、世界再構築パイプラインと、同一空間内のユーザが同一座標フレーム内で動作することを保証するためのマップマージパイプラインと、作成またはユーザと共有された仮想コンテンツをピン留めし、復元する能力とを伴う。例えば、単一ユーザのセッションは、上記の可能性として考えられるものの全てを行うために、数百メガバイトのユーザデータを生成し得る。本ユーザデータは、魅力的かつ没入型の体験を作成するために、セキュア化された様式で保存されるが、また、ユーザ、空間コンピューティングデバイスのプロバイダ、およびあるサードパーティに利用可能であることが所望される。分散型台帳の使用を伴わずに、そのようなデータを収集するための例示的フローは、以下の通りである。
【0061】
1. ユーザが、空間コンピューティングデバイスを用いて、未加工センサデータを捕捉する。
【0062】
2. ユーザが、空間コンピューティングデバイスに関するデータを暗号化する。
【0063】
3. ユーザが、暗号化されたデータを、空間コンピューティングデバイスを提供する、空間コンピューティング企業によって所有される、クラウド記憶装置(例えば、データプラットフォーム)に保存する。
【0064】
4. 空間コンピューティング企業が、製造プロセスの間にデバイス上に記憶されたユーザのキーのコピーを維持する。
【0065】
5. 空間コンピューティング企業が、ユーザのデータを解読し、ユーザの環境のモデルを構築する。
【0066】
6. 空間コンピューティング企業が、ユーザのデータを解読し、サードパーティと共有する。
【0067】
本明細書に説明されるシステムおよび方法は、ユーザに、ユーザのユーザデータへのアクセスを有する人物、アクセスするために利用可能なユーザのデータの部分、ユーザのデータのどの部分が誰に利用可能であるか、ユーザがそのユーザデータへのアクセスを提供することから利点を享受し得る、プラットフォーム、およびユーザのユーザデータの完全性を保証するための機構の個人化された制御を与えるであろう、ソリューションを提供する。例えば、ユーザは、そもそも空間コンピューティング企業をデータ自体を解読することが可能にさせずに、サードパーティにユーザのユーザデータへのアクセスを付与するためのオプションを有する。グローバル消費者データプライバシ法の絶えず変化する分野では、空間コンピューティング企業の取扱に注意を要するデータへのアクセスを限定する、実装は、セキュリティ侵害またはそのようなプライバシ法への非準拠の場合に有利である。
例示的匿名化および仮名化されたデータデータベース
【0068】
匿名化および仮名化されたデータデータベース114は、任意の参照またはデータの起源のインジケーションを除去するように処理されている、ユーザデータまたは環境データを含むことができる。例えば、匿名化および仮名化されたデータデータベース114上に記憶されるそのような情報にアクセスする、エンティティは、データと関連付けられる人物/ユーザまたは人々/複数のユーザを逆行分析することが不可能となるであろう。いくつかの状況(例えば、スモールデータセットまたは同等物)では、エンティティは、ある要因に基づいて、かつエンティティ独自の専有情報または他の公的にアクセス可能な情報に基づいて、可能性が高いユーザを統計的に絞り込むことが可能であり得ることを理解されたい。しかしながら、データ自体が、それ自体でデータが属する人物を示すべきではない。例えば、ある企業が、Montana州Butteにおける、ユーザデバイス102を使用する、任意のユーザに関する、匿名化および仮名化されたデータデータベース114からの匿名化および仮名化されたデータにアクセスし得るとすると、これは、10人に関する結果を提供し得る。企業は、次いで、結果のみに基づいて、または付加的専有もしくは公的に利用可能なデータを用いてのいずれかにおいて、ある閾値内において、10人のうちの何人かを決定し得る。しかしながら、データ匿名化および仮名化されたデータ自体は、そのようなインジケーションを提供せず、特に、結果のみに基づく、任意の逆行分析が、可能な限り限定されることが所望される。したがって、データを匿名化および仮名化するアルゴリズムが、適切に試験および実装されていることが証明され、匿名化および仮名化されたデータは、いくつかの実施形態では、サードパーティに提供される前に、照合されることが重要である。
【0069】
いくつかの実施形態では、データ仮想化システム111が、データプラットフォーム112からのデータを要求すると、データプラットフォーム112は、匿名化および仮名化されたデータデータベース114にアクセスし、関連する暗号化されたユーザデータを特定し、匿名化および仮名化されたデータをデータ仮想化システム111に伝送することができる。トランザクションについてのデータは、記録されることができ、トランザクションについての情報は、処理および分散型台帳108上への記憶のために、エージェント106に伝送されることができる。処理は、トランザクションデータと特定のユーザまたはユーザデバイス102もしくは分散型台帳上の場所を関連付けることを含むことができる。処理はまた、任意のエラーを伴わずに、かつ最適化または効率的読出もしくは精査のために、分散型台帳108内に適切に保存するように、データをフォーマット化することを含むことができる。
例示的な暗号化されたデータデータベース
【0070】
暗号化されたデータデータベース116は、ユーザデバイス102から受信された暗号化されたユーザデータまたは環境データを記憶することができる。いくつかの実施形態では、データプラットフォーム112は、記憶に先立って、データを暗号化することができる。いくつかの実施形態では、ユーザデバイス102は、記憶のために、データプラットフォーム112に伝送することに先立って、データを暗号化することができる(例えば、パブリックまたはプライベート暗号化キーを用いて)。いくつかの実装では、ユーザデバイス102が、例えば、セキュリティ侵害の場合、ユーザデバイス102独自のデータを暗号化し、全体的システムセキュリティを増加させることが所望され得る。セキュリティ侵害が、生じ、データプラットフォーム112が、危殆化される場合、暗号化されたデータは、暗号化されたデータが、暗号化解除されてデータプラットフォーム112に到着することが決してなく、かつ解読のために必要なキーが別個の場所(例えば、分散型台帳108またはユーザデバイス102)内に記憶され得るため、任意のセキュリティ侵害者にとって有用ではなくなるはずである。
【0071】
いくつかの実施形態では、データ仮想化システム111が、データプラットフォーム112からのデータを要求すると、データプラットフォーム112は、暗号化されたデータデータベース116にアクセスし、関連する暗号化されたユーザデータを特定し、暗号化されたデータをデータ仮想化システム111に伝送することができる。トランザクションについてのデータは、記録されることができ、トランザクションについての情報は、処理および分散型台帳108上への記憶のために、エージェント106に伝送されることができる。処理は、トランザクションデータと特定のユーザまたはユーザデバイス102もしくは分散型台帳108上の場所を関連付けることを含むことができる。処理はまた、任意の誤差を伴わずに、かつ最適化または効率的読出もしくは精査のために、分散型台帳108内に適切に保存するように、データをフォーマット化することを含むことができる。
例示的データ照合システム
【0072】
データ照合システム118は、種々のシステム間の伝送に先立って、種々の情報を照合することができる。例えば、
図3に関してさらに詳細に説明されるように、データ照合システム118は、プライベート暗号化キーおよびソフトウェアまたはスマートコントラクト基準もしくはルール、ならびに関連する暗号化されたユーザデータがデータ仮想化システム111に伝送されたことの確認を受信することができる(例えば、伝送の時間およびタイプを説明する情報ならびにユーザデータの説明、または関連し得る任意の他の情報を含む)。データ照合システム118は、次いで、暗号化されたユーザデータおよびプライベート暗号化キーがマッチングすることを照合し(例えば、データを解読することによって)、次いで、照合結果をエージェント106に伝送し、エージェントが、照合されたプライベート暗号化キーをデータ仮想化システム111に伝送し、すでに受信された暗号化されたユーザデータを解読することを可能にすることができる。
例示的データ仮想化システム
【0073】
データ仮想化システム111は、購入者デバイス104と、データプラットフォーム112と、エージェント106と通信することができる。データ仮想化システム111は、ある情報またはユーザデータにアクセスする、それを要求する、もしくはそれを読み出すための要求を購入者デバイス104から受信することができる。例えば、データ仮想化システム111は、ユーザデータをデータプラットフォーム112から要求し、許可される場合、要求されたユーザデータ(例えば、暗号化されたユーザデータ)を受信することができる。いくつかの実施形態では、(例えば、ソフトウエアコントラクトの条件に基づいて)データを抽出する方法または抽出すべきデータに関する命令が、データ仮想化システム111が要求をデータプラットフォーム112に送信することに先立って、データ仮想化システム111に伝送されることができる。加えて、例えば、データ仮想化システム111は、1つまたはそれを上回るユーザデバイスのユーザデータもしくはユーザと関連付けられる、プライベート暗号化キーを受信することができる。プライベート暗号化キーは、データプラットフォーム112から受信された暗号化されたユーザデータを解読するために使用されることができる。加えて、いくつかの実施形態では、データトランザクション情報(例えば、1つまたはそれを上回るサードパーティサービスまたはデータプラットフォームからのユーザの関連データのダウンロード、読出、アクセス、または受信、もしくは同等物に関する情報)が、記憶のために、エージェント106に伝送されることができる。
【0074】
データ仮想化システム111は、ユーザインターフェースを備え、購入者デバイス104による、データ仮想化システム111によって受信および解読された任意のユーザデータの相互作用ならびに操作を促進することができる。データ仮想化システム111はまた、購入者デバイス104が相互作用および操作するための統計的結果、チャート、グラフ、ならびにモデルを提供するように構成される、分析ツールを提供することができる。データ仮想化システム111はまた、分析の結果のダウンロードを可能にすることができる。しかしながら、いくつかの実施形態では、可能性として、例えば、ソフトウエアコントラクト110によって決定付けられるユーザプライバシ設定に基づいて、データ仮想化システム111は、解読されたユーザデータのダウンロードまたは伝送をブロックし、解読されたユーザデータの使用をアクティブ購入者デバイス104セッションのみに限定することができる。セッションの終了に応じて、データは、削除され、新しいプライベート暗号化キーが、ユーザデータを解読するために準備され、セキュリティを向上させるであろう(例えば、リリースされたプライベート暗号化キーが、もはや有用ではなくなるように)。本プロセスは、例えば、
図3および4に関してさらに詳細に説明される。
例示的ユーザデバイス
【0075】
ユーザデバイス102は、いくつかの実施形態では、エージェント106と、データプラットフォームと通信することができる。例えば、ユーザデバイス102は、パブリックまたはプライベート暗号化キーをエージェントから受信し、任意の収集または生成されたユーザデータもしくは環境データを暗号化することができる。暗号化されたユーザデータは、記憶のために、ある時間インターバル(例えば、データが生成されるにつれてリアルタイムで、毎日、毎時、またはネットワークへの接続に応じて、もしくは任意の他の所望の時間またはインターバル)において、データプラットフォームに伝送されることができる。いくつかの実施形態では、キーは、ユーザデバイス102に送信されず、収集または生成されたユーザデータは、暗号化、次いで、記憶のために、データプラットフォーム112に伝送されることができる。上記および本明細書に議論されるように、いくつかの実装では、ユーザデバイス102が、例えば、セキュリティ侵害の場合、ユーザデバイス102独自のデータを暗号化し、全体的システムセキュリティを増加させることが所望され得る。セキュリティ侵害が、生じ、データプラットフォーム112が、危殆化される場合、暗号化されたデータは、暗号化されたデータが、暗号化解除されてデータプラットフォーム112に到着することが決してなく、かつ解読のために必要なキーが別個の場所(例えば、分散型台帳108またはユーザデバイス102)内に記憶され得るため、任意のセキュリティ侵害者にとって有用ではなくなるはずである。
【0076】
ユーザデバイス102と関連付けられる、ユーザはまた、ユーザプライバシ設定またはプライバシ設定を提供することができる。ユーザは、ユーザ自身のユーザデータまたはそのデバイスによって生成された環境データの制御を有する。ユーザはまた、他のソース(例えば、(例えば、サードパーティ、他のデバイス、ユーザ自身、または利用可能な任意の他のデータ)からアクセス可能なユーザデータの制御を有する。例えば、ユーザは、ウェブブラウザまたは他の入力方法を介して、ユーザのユーザデータと関連付けられる、ユーザのプライバシ設定もしくはプライバシルールを示すことができる。プライバシ設定は、ユーザデータのアクセス性、共有、または販売に関する限定を示すことができる。例えば、プライバシ設定は、限定ではないが、以下、すなわち、ユーザデータにアクセスする、またはそれを購入することができる、もしくはそれらができない、購入者のタイプ、アクセス可能なデータのタイプに関する限定(例えば、環境データ、ユーザと関連付けられるサードパーティデータ、ユーザ提供データ、または同等物)、データがアクセス可能なときに関する限定(例えば、(例えば、時刻、週、または月)、データがアクセス可能な頻度に関する限定、アクセスの目的、アクセスのタイプ(例えば、接続またはアクセスする機械のタイプ)、アクセスの場所(例えば、(例えば、IPを介して決定されるような購入者システムの生産国)、外部データソースに関する許可(例えば、ソーシャルメディアデータがユーザデータを付加するためにインポートされ得るかどうか)、もしくは任意の他の関連要因を示すことができる。プライバシ設定はまた、ブラックリストまたはホワイトリスト、ユーザに特定の人物、エンティティ、企業へのアクセスをブロックまたは許可する能力をオファーすること、もしくは名前またはタイプによる同等物を含むことができる。例えば、ユーザは、全ての銀行または関連付けられる企業をブラックリストに追加し、全てのユーザデータを銀行および関連付けられる企業によってアクセスされないようにブロックすることができる。いくつかの実施形態では、ユーザプライバシ設定またはプライバシルールは、ユーザによって随時更新されることができる。ユーザが、ユーザのプライバシ設定を更新後、ユーザのユーザデータに関する全ての将来的トランザクションイベントは、新しく更新されたプライバシ設定によって制御されるであろう。
例示的購入者デバイス
【0077】
購入者デバイス104は、データ仮想化システム111と通信することができる。購入者デバイス104は、購入者によって動作される、またはそれと関連付けられることができる。購入者は、購入者デバイス104を使用して、データ仮想化システム111を通して、利用可能なユーザデータを購入する、それを閲覧する、それにアクセスする、それを精査する、それを分析する、またはそれと相互作用することができる。購入者が購入またはアクセスし得る、任意のユーザデータは、少なくとも部分的に、各ユーザの個別のソフトウエアコントラクトの中にプログラムされるような各ユーザのプライバシ設定に基づくことを理解されたい。いくつかの実施形態では、ソフトウエアコントラクトはまた、そのデータへのアクセスを有するべきである、または有するべきではない、購入者のタイプを定めることができる。例えば、特定のユーザは、その信用価値に影響を及ぼし得ることを恐れ得るため、全ての銀行または銀行販売員がそのデータにアクセスすることを禁止し得る。
【0078】
いくつかの実施形態では、データ仮想化システム111は、ユーザインターフェースを備え、購入者デバイス104による、データ仮想化システム111によって受信および解読された任意のユーザデータの相互作用ならびに操作を促進することができる。データ仮想化システム111はまた、購入者デバイス104が相互作用および操作するための統計的結果、チャート、グラフ、ならびにモデルを提供するように構成される、分析ツールを提供することができる。データ仮想化システム111はまた、分析の結果のダウンロードを可能にすることができる。しかしながら、いくつかの実施形態では、可能性として、例えば、ソフトウエアコントラクト110によって決定付けられる、ユーザプライバシ設定に基づいて、データ仮想化システム111は、解読されたユーザデータのダウンロードまたは伝送をブロックし、解読されたユーザデータの使用を限定することができる(例えば、使用は、アクティブ購入者デバイス104セッションのみに限定される、またはある分析ツールは、ブロックまたは限定され得る、もしくは同等物である)。例えば、アクティブ購入者デバイス104セッションの終了に応じて、データは、削除され、新しいプライベート暗号化キーが、ユーザデータを解読するために準備され、セキュリティを向上させるであろう(例えば、リリースされたプライベート暗号化キーがもはや有用ではないように)。本プロセスは、例えば、
図3および4に関してさらに詳細に説明される。
【0079】
ユーザデバイス102または購入者デバイス104は、例えば、
図7Aを参照して説明されるウェアラブルディスプレイシステム1000、または
図7Bを参照して説明されるデバイス702a-702c、もしくは
図8を参照して説明されるユーザデバイス824等の拡張、複合、または仮想現実ディスプレイデバイスを含んでもよい。
種々のシステム間の例示的データフローの説明
【0080】
図2-6は、種々のシステムおよびコンポーネントを横断して、ユーザデータまたは環境データと関連付けられる、ユーザプライバシ設定を受信および実装するための種々の方法のフロー図を示す。ある順序が、
図2-6に描写されるが、データは、任意の順序において、かつ任意の方向または組み合わせにおいて、種々のシステム間で往復してフローし得ることを理解されたい。例えば、1つのシステムのある能力は、別のシステムまたはシステムのセット上に実装されることができる。加えて、例えば、1つのシステムは、いくつかのシステムから成ることができる。
ユーザプライバシ設定の例示的処理
【0081】
図2Aは、ユーザのためのプライバシ設定を作成または更新するための例示的方法200のフロー図を示す。
【0082】
ブロック202では、ユーザデバイス102が、ユーザと関連付けられる、プライバシ設定を受信する。ユーザデバイス102は、新しいまたは更新されたプライバシ設定を暗号化することができる。プライバシ設定は、新しい設定または以前に受信された設定の更新を含むことができる。
【0083】
ブロック204では、エージェント106が、新しいまたは更新されたプライバシ設定を受信し、必要な場合、プライバシ設定を解読する。ブロック206では、エージェント106が、受信されたプライバシ設定に基づいて、ソフトウエアコントラクト(例えば、スマートコントラクトまたは同等物)を作成する。
【0084】
ブロック208では、エージェント106が、プライベート暗号化キーを作成する。ブロック210では、エージェント106が、プライベート暗号化キーを暗号化する。例えば、プライベート暗号化キーは、パブリック暗号化キーで暗号化されることができる。
【0085】
ブロック212では、エージェント106が、ソフトウエアコントラクトおよび暗号化されたプライベート暗号化キーを分散型台帳108内に記憶する。エージェント106は、分散型台帳108と通信し、種々のデバイス間の中間体として作用する。ある分散型台帳技術に関する限界に起因して、エージェントは、分散型台帳と相互作用し、それに保存するために使用される、要求されるコンポーネントであり得る。いくつかの実施形態では、エージェント106は、必要とされなくてもよく、分散型台帳108自体が、エージェント106の役割を充足させることが可能であり得る。
【0086】
ブロック214では、エージェント106が、パブリック暗号化キーを作成する。
図2-6に関して説明される全てのブロックと同様に、ブロック214は、ブロック206後に生じるが、ブロック214は、ブロック204直後に、ブロック204に先立って(例えば、ユーザが、最初に、アカウントを作成する、またはエージェント106に接続するとき)、ブロック208後、または本システムおよび方法の意図される目的を遂行するために十分な任意の順序において生じ得ることを理解されたい。
【0087】
ブロック216では、エージェント106が、パブリック暗号化キーをユーザデバイスに102に伝送する。ブロック218では、ユーザデバイス102が、パブリック暗号化キーをエージェント106から受信する。
【0088】
ブロック220では、ユーザデバイスが、環境データを収集し、これは、ユーザデータの少なくとも一部であって、例えば、ユーザデバイス102の周囲に基づく。
【0089】
ブロック222では、ユーザデバイス102が、パブリック暗号化キーを使用して、収集された環境データおよび任意の他のユーザデータを暗号化する。ブロック224では、暗号化された環境データは、メタデータで意味論的にタグ付けされる。いくつかの実施形態では、メタデータは、暗号化解除され、個人的に識別可能な情報を含有しない。例えば、意味論注釈またはタグ付けは、暗号化されたデータを精査する、コンピュータおよび/または管理者が、暗号化されたデータについての情報(例えば、それは誰のデータか、データと関連付けられるユーザデバイス、または同等物)を確認することが可能であり得るように、付加的情報を暗号化された環境データに加えることを含むことができる。いくつかの実施形態では、意味論タグ付けは、ユーザプライバシをさらに保護するような範囲内に限定されることができる。
【0090】
ブロック226では、意味論的にタグ付けおよび暗号化されたデータが、データプラットフォーム112への暗号化された接続によって、電子的に伝送される。いくつかの実施形態では、データプラットフォーム112は、データ記憶媒体(例えば、データレイク、NoSQLデータベース、または同等物)であることができる。いくつかの実施形態では、データプラットフォーム112は、一連またはセットのデータ記憶媒体であることができる。いくつかの実施形態では、データプラットフォーム112は、データ照合システム(例えば、118)を含み、データプラットフォーム112へおよびそこから伝送されるデータに関する処理および照合を実施することができる。ブロック228では、データプラットフォーム112が、意味論的にタグ付けおよび暗号化されたデータを受信する。
【0091】
ブロック230では、データプラットフォーム112が、意味論的にタグ付けおよび暗号化されたデータを記憶する。いくつかの実施形態では、ブロック232では、記憶されることに応じて、意味論的にタグ付けおよび暗号化されたデータが、ハッシュ識別(例えば、最小32バイト)を割り当てられる。いくつかの実施形態では、意味論的にタグ付けおよび暗号化されたデータは、別のタイプの識別値または参照番号を割り当てられることができる。
【0092】
ブロック234では、データプラットフォーム112が、データトランザクション(例えば、意味論的にタグ付けおよび暗号化されたデータまたはデータトランザクションに関する任意の他の関連情報の受信および処理)の通知をエージェント106に伝送する。データプラットフォーム112はまた、ハッシュ識別値(またはハッシュが使用されない場合、任意の他の識別値)および意味論タグ付け情報を伝送する。ブロック236では、エージェント106が、情報および/またはデータを受信する。
【0093】
ブロック238では、エージェント106が、ハッシュ識別値および/またはトランザクションデータを分散型台帳108の中にエンコーディングする。例えば、ハッシュ識別値およびトランザクションデータは、ブロック212内に記憶されたソフトウエアコントラクトおよび暗号化されたプライベート暗号化キーへの参照とともに、またはそのコピーとともに、記憶されることができる。ハッシュ識別値、トランザクションデータ、ソフトウエアコントラクト、およびプライベート暗号化キー間の関係を追跡する利点は、ユーザが、ユーザのプライバシ設定を精査し、トランザクションデータに基づいて、プライバシ設定が意図される通りに機能している、または該当する場合、変更が、例えば、プライバシ設定に行われるべきであることを照合し得ることである。
【0094】
図2B-2Cは、ユーザのためのプライバシ設定を作成または更新するための例示的方法のスイムレーンフロー図を示す。
図2Aと同様に、
図2B-2Cは、データ記憶媒体、ユーザのデバイス、Oracle、およびデータ仮想化アプリケーションによって実施される、種々のステップを示す。
プライバシ設定に基づく、ユーザデータの例示的特定、照合、および伝送の促進
【0095】
図3は、ユーザデータを特定、伝送、および解読するための例示的方法のフロー図を示す。ある付加的または代替ブロックが、図に示されるように、
図4、6A、および6Bに描写される。
【0096】
ブロック302では、エージェント106が、1人またはそれを上回るユーザと関連付けられ得る、ユーザデータのための要求を受信する。要求についてのさらなる詳細は、
図6Bのブロック622に関連して説明される。
【0097】
ブロック304では、エージェント106が、分散型台帳108、すなわち、1人またはそれを上回るユーザと関連付けられるソフトウエアコントラクトに関する分散型台帳を検索する。ユーザプライバシ設定に基づく、ソフトウエアコントラクトの作成の例示的説明は、
図2A-2Cに関して、かつ本明細書に提供される。
【0098】
ブロック306では、エージェント106が、関連ソフトウエアコントラクトを含む、分散型台帳108の最新セクションを特定する。ある場合には、あるユーザに関して、ユーザのそれぞれと関連付けられる、1つのみのソフトウエアコントラクトが存在し得る。ある場合には、他のユーザに関して、ユーザのそれぞれと関連付けられる、2つまたはそれを上回るソフトウエアコントラクトが存在し得る。これは、例えば、いくつかの分散型台帳技術では、データが、ブロック内に記憶され得るためである。いったんブロックが、分散型台帳に書き込まれると、ブロックは、改変または除去されることができない。したがって、ソフトウエアコントラクトの任意の更新は、新しいソフトウエアコントラクトとして、新しいブロックに書き込まれなければならない。ユーザが、複数の更新をそのプライバシ設定に提供する場合、分散型台帳の複数のブロックに保存される、複数のソフトウエアコントラクトが存在するであろう。分散型台帳内に記憶されるプライバシ設定の古いバージョンを有する利点は、ユーザ(または他のエンティティ)が、直接または間接的にのいずれかにおいて、対応するソフトウエアコントラクト内に表されるようなそのプライバシ設定の変更の履歴を閲覧することを可能にする。エージェント106にとって、特定のユーザに関して、新しいソフトウエアコントラクトを書き込むとき、ソフトウエアコントラクトが関連付けられる人物、ある場合には、ソフトウエアコントラクトのバージョンまたはそれが作成されたときの参照またはインジケーションを含むことは、有益である。いくつかの実施例では、エージェント106は、複数のソフトウエアコントラクトが特定のユーザに関して存在する場合、トランザクション情報(例えば、ブロックデータが特定のブロックに書き込まれた日付および時間またはブロックが分散型台帳に書き込まれた日付ならびに時間)に依拠して、最も最近のソフトウエアコントラクトを決定することができる。
【0099】
ブロック308では、エージェント106が、その最新ソフトウエアコントラクトのそれぞれに基づいて、そのユーザデータの共有を許可する、1人またはそれを上回るユーザを決定する。例えば、あるユーザは、任意の情報を、ユーザデータのための受信された要求と関連付けられる特定の購入者と共有することを所望しない場合があり、それらのユーザと関連付けられるデータは、共有またはアクセス可能にされるべきではない。要求され、ユーザが共有を許可する、ユーザデータのみが、要求と関連付けられる購入者と共有される、またはそれにアクセス可能にされるべきである。
【0100】
ブロック310では、エージェント106が、命令をデータ仮想化システム111に発行し、要求され、共有を許可したユーザと関連付けられる、ユーザデータを抽出する。ブロック312では、データ仮想化システム111が、命令をブロック310から受信する。
【0101】
ブロック314では、データ仮想化システム111が、エージェント106から受信された命令に基づいて、ユーザデータをデータプラットフォーム112から要求する。ブロック316では、データプラットフォーム112が、ユーザデータへのアクセスのための要求を受信する。
【0102】
ブロック318では、データプラットフォーム112が、1つまたはそれを上回るデータベース内の共有を許可した1人またはそれを上回るユーザに関する、関連する暗号化されたユーザデータを特定し、読み出す。データプラットフォーム112がユーザデータと相互作用する方法に関する付加的詳細は、
図2および4-6に関連して説明される。ブロック320では、データプラットフォーム112が、関連する暗号化されたユーザデータをデータ仮想化システム111に伝送または利用可能にする。ブロック321では、データ仮想化システムが、関連する暗号化されたユーザデータをブロック320から受信する、またはそれにアクセスする。
【0103】
ブロック322では、データプラットフォーム112が、データ照合システム118およびエージェント106に、関連する暗号化されたユーザデータが、ブロック320、321において、正常に伝送された、またはデータ仮想化システム111によって受信されたことの確認を伝送する。ブロック323では、エージェントが、確認を受信し、ブロック324では、データ照合システム118が、確認を受信する。
【0104】
ブロック325では、エージェント106が、プライベート暗号化キーを、共有を許可した1人またはそれを上回るユーザと関連付けられるソフトウエアコントラクトから読み出す、もしくはそれにアクセスする。ブロック327では、プライベート暗号化キーが、データ照合システム118に伝送され、ブロック331では、エージェントが、ブロック402において開始する、
図4に説明される付加的ステップを実施する。ブロック329では、データ照合システム118が、プライベート暗号化キーを受信する。
【0105】
ブロック326では、データ照合システム118が、例えば、各キーと関連付けられるユーザデータを正常に解読することによって、ユーザデータおよびプライベート暗号化キーがマッチングすることを照合する。
【0106】
ブロック328では、ユーザデータが正常に解読されたかどうかに基づいて、データ照合システム118が、照合結果をエージェント106に伝送する。いくつかの実施形態では、複数のユーザのユーザデータが、照合されるべきであって、一部のみが、成功し、残りの部分が、不成功である(例えば、プライベート暗号化キーが、ユーザの一部に関するデータを適切に解読し得ない)場合、結果全体が、処理のために、エージェント106に伝送されることができる。
【0107】
ブロック330では、エージェント106が、照合結果を受信する。いくつかの実施形態では、プライベート暗号化キーのうちのいくつかが、正常に照合され、その他が、そうではなかった場合、成功した部分は、データ仮想化システム111に伝送されることができる。いくつかの実施形態では、プライベート暗号化キーのうちのいくつかが、正常に照合され、その他が、そうではなかった場合、何も、データ仮想化システム111に伝送されず、エージェント106は、照合が成功するまで、他の潜在的プライベート暗号化キーを用いて、ブロック325-328におけるプロセスを繰り返し、次いで、全ての関連および照合されたプライベート暗号化キーをともに伝送する。全てのプライベート暗号化キーをともに伝送すること、または購入者が要求を調節もしくはキャンセルすることを所望する場合、任意のものを提示することに先立って、購入者に、データ仮想化システム111を使用して、全てのデータが利用可能ではないことをプロンプトすることが所望され得る。いくつかの実施形態では、プライベート暗号化キーのうちのいくつかが、ブロック326において、データ照合システム118によって、正常に照合され、その他が、そうではなかった場合、成功部分は、データ仮想化システムに伝送されることができ、ブロック325、327、329、326、および328におけるプロセスは、正しいプライベート暗号化キーが特定されるまで、不成功部分に関して繰り返され、次いで、データ仮想化システム111に伝送することができる。
【0108】
データ仮想化システム111を使用する、購入者が、遅延されず、ブロック332において、付加的新しいプライベート暗号化キーがブロック330から受信またはアクセスされるにつれて、付加されるデータを用いて、データをより迅速に精査し得るように、任意のプライベート暗号化キーを、いったん照合されると、データ仮想化システム111に伝送し、任意の付加的照合されたプライベート暗号化キーを、いったん照合されると、後に伝送ことが所望され得る。いくつかの実施形態では、プライベート暗号化キーが、データ照合システム118によるある試行回数(例えば、1、2、3等)後、照合されることができない場合、最終エラーが、エージェント106に出力され、次いで、照合されることができないプライベート暗号化キーと関連付けられる、その特定のユーザデータに関連するデータ仮想化システム111に出力され得る。ブロック332では、データ仮想化システム111が、照合されたプライベート暗号化キーを受信する、またはそれにアクセスする。
【0109】
ブロック334では、ブロック321からの関連する暗号化されたユーザデータおよびブロック332から受信されたマッチングならびに照合されたプライベート暗号化キーに基づいて、データ仮想化システム111は、データプラットフォームから受信された暗号化されたユーザデータのセット毎に、関連付けられるプライベート暗号化キーを使用して、ブロック332においてエージェント106から受信またはアクセスされるプライベート暗号化キーを用いて、暗号化されたユーザデータを解読することができる。
【0110】
ブロック336では、データ仮想化システム111が、データ仮想化システム111を使用する、購入者が、データが関連付けられる、ユーザを識別することができないように、解読されたユーザデータを匿名化および仮名化する。例えば、仮名化は、データ管理および匿名化プロシージャであって、それによってデータ記録内の個人的に識別可能な情報フィールドは、1つまたはそれを上回る人工識別子、すなわち、仮名によって置換される。置換されたフィールドまたは置換されたフィールドの集合毎の単一仮名が、残りがデータ分析およびデータ処理のために好適であるまま、データ記録を殆ど識別可能ではないものにする。いくつかの実施形態では、仮名化されたデータは、情報の追加を用いて、データのオリジナル状態に復元されることができ、これは、次いで、個人が再識別されることを可能にする一方、匿名化されたデータは、データのオリジナル状態に決して復元されることができない。いくつかの実施形態では、仮名化が、所望されるほど効果的ではない場合(例えば、ブロック338および事前構成または自動閾値参照)、断片化またはユーザデータを改変する他の方法も同様に、使用されることができる。
【0111】
ブロック338では、データ仮想化システム111が、ユーザデータのいずれかの再識別が、不可能である、すなわち、事前構成または自動閾値(例えば、データと特定の人物を関連付けることができないことの40%、50%、51%、80%、90%、95%、99%の可能性)内において統計的に不可能であることを検証および再検証するための試験を実行する。
【0112】
ブロック340では、いったんデータ仮想化システム111が、閉じられると(例えば、購入者からの終了するための命令の受信に応じて)、データ仮想化システム111は、セッションを閉じ、受信した任意のユーザデータおよびプライベート暗号化キーを消去する。また、ブロック342では、
図6Aが、購入者がデータ仮想化システム111と相互作用し得る方法、およびユーザデータがさらにブロック602においてデータ仮想化システム111からエクスポートされる、または取り出されないように保護される方法に関する付加的詳細を説明する。
新しいプライベート暗号化キーの例示的生成およびユーザデータへの適用
【0113】
図4は、新しいプライベート暗号化キーを生成し、ユーザデータを新しいプライベート暗号化キーで再暗号化するための方法400のフロー図を示す。ある付加的または代替ステップが、
図3に描写される。プライベート暗号化キーが、
図3におけるブロック330において、データ仮想化システム111に伝送された後、
図3におけるブロック331は、ブロック404において開始するプロセスを含むことができる。
【0114】
ブロック404では、エージェント106が、
図3におけるブロック330においてデータ仮想化システム111に伝送または利用可能にされるプライベート暗号化キーと関連付けられる、任意のユーザデータのための新しいプライベート暗号化キーを生成することができる。新しいプライベート暗号化キーを生成して、任意の分散型プライベート暗号化キーと関連付けられるユーザデータを再暗号化することが望ましい。例えば、購入者が、それがデータ仮想化システムを通して受信する、プライベート暗号化キーのいずれかを公開することになる場合、ユーザデータのセキュリティおよびプライバシは、危殆化され得る。いくつかの実施形態では、購入者は、データ仮想化システム111が受信またはアクセスする、任意のプライベートキーへの直接アクセスを有しないであろうが、新しいプライベート暗号化キーを生成することは、購入者が、例えば、認可を伴わずに、データ仮想化システムをハッキングし、キーを読み出す場合、依然として、よりセキュアである。
【0115】
ブロック406では、エージェント106が、新しいプライベート暗号化キーを、そのデータが、
図3において共有またはアクセスされた、ユーザと関連付けられる、更新されたソフトウエアコントラクト内に記憶する。データ仮想化システムへおよびそこからのデータトランザクションに関する任意の情報も同様に、いくつかの実施形態では、更新されたソフトウエアコントラクトとともに記憶されるであろう。例えば、
図3におけるブロック330でのプライベート暗号化キーの伝送に関連する伝送詳細は、更新されたソフトウエアコントラクト内に記憶されるであろう。
【0116】
ブロック408では、エージェント106が、新しいプライベート暗号化キーおよび古いプライベート暗号化キー(例えば、
図3におけるブロック330で伝送されたキー)をデータプラットフォーム112に伝送または利用可能にする。ブロック410では、データプラットフォームが、新しいプライベート暗号化キーをエージェント106から受信する。
【0117】
ブロック412では、データプラットフォーム112が、それがブロック410において受信したプライベート暗号化キーと関連付けられる、ユーザデータを特定する。ブロック414では、データプラットフォーム112が、ユーザデータを古いプライベート暗号化キーで解読し、次いで、ユーザデータを新しいプライベート暗号化キーで再暗号化する。次いで、ブロック416では、再暗号化されたユーザデータが、1つまたはそれを上回るデータベース内に記憶される。
ユーザデータにサードパーティデータを付加する実施例
【0118】
図5は、ユーザデータに1つまたはそれを上回るサードパーティサービスから読み出された、またはアクセスされたサードパーティデータを付加するための方法500のフロー図を示す。ある付加的または代替ステップが、
図6Bに描写される。任意のサードパーティデータが、読み出され、またはアクセスされ、ユーザデータに付加することができることを理解されたい。例えば、サードパーティデータは、(例えば、信用調査機関または信用格付サービスからの)財務上のデータ、ソーシャルメディアデータ(例えば、Facebook、MySpace、LinkedIn、Instagram、Snapchat等)、個人的データ(例えば、Dropbox、Box、GoogleDrive、AppleのiCloud等のファイル共有サイトにアップロードされた)、ビデオストリーミングサービス(例えば、Netflix、Amazon Prime Video、Hulu等)からの任意の閲覧習慣、電子メールまたはチャットサービス(例えば、Gmail、Yahoo Mail、Google Hangouts、Zoom Video、WhatsApp、Facebook Messenger、Outlook等)からのコンテンツ、またはユーザがアクセスを提供することを所望する、任意の他のサードパーティサービスを含むことができる。
【0119】
本明細書に説明される
図6Bにおけるブロック622からのプロセス後に開始し得る、ブロック504では、エージェント106が、データ仮想化システム111から受信されたユーザデータのための要求に基づいて、特定のユーザまたはユーザのセットと関連付けられる、分散型台帳108内の1つまたはそれを上回るソフトウエアコントラクトを検索することができる(要求に関するさらなる情報および詳細に関しては、
図6B参照)。
【0120】
ブロック506では、エージェント106が、1人またはそれを上回るユーザに関する関連ソフトウエアコントラクトを含む、分散型台帳の最新セクションを特定することができる。上記に説明されるように、ある場合には、あるユーザに関して、ユーザのそれぞれと関連付けられる、1つのみのソフトウエアコントラクトが存在し得る。ある場合には、他のユーザに関して、ユーザのそれぞれと関連付けられる、2つまたはそれを上回るソフトウエアコントラクトが存在し得る。これは、例えば、いくつかの分散型台帳技術では、データが、ブロック内に記憶され得るためである。いったんブロックが、分散型台帳に書き込まれると、ブロックは、改変または除去されることができない。したがって、ソフトウエアコントラクトの任意の更新は、新しいソフトウエアコントラクトとして、新しいブロックに書き込まれなければならない。ユーザが、複数の更新をそのプライバシ設定に提供する場合、分散型台帳の複数のブロックに保存される、複数のソフトウエアコントラクトが存在するであろう。分散型台帳内に記憶されるプライバシ設定の古いバージョンを有する利点は、ユーザ(または他のエンティティ)が、直接または間接的にのいずれかにおいて、対応するソフトウエアコントラクト内に表されるようなそのプライバシ設定の変更の履歴を閲覧することを可能にする。エージェント106にとって、特定のユーザに関して、新しいソフトウエアコントラクトを書き込むとき、ソフトウエアコントラクトが関連付けられる人物、ある場合には、ソフトウエアコントラクトのバージョンまたはそれが作成されたときの参照またはインジケーションを含むことは、有益である。いくつかの実施例では、エージェント106は、複数のソフトウエアコントラクトが特定のユーザに関して存在する場合、トランザクション情報(例えば、ブロックデータが特定のブロックに書き込まれた日付および時間またはブロックが分散型台帳に書き込まれた日付および時間)に依拠して、最も最近のソフトウエアコントラクトを決定することができる。
【0121】
ブロック508では、エージェント106が、分散型台帳内に記憶され、ソフトウエアコントラクトによって表される、ユーザプライバシ設定に基づいて、収集されたデータおよび1つまたはそれを上回るサードパーティサービスからのデータの共有を許可する、1人またはそれを上回るユーザを決定する。
【0122】
ブロック510では、エージェント106が、命令をデータ仮想化システム111に発行し、要求され、1つまたはそれを上回るサードパーティサービスからの共有を許可したユーザと関連付けられる、ユーザデータを抽出する。命令はまた、ソフトウエアコントラクトに関する詳細と、データ仮想化システム111にアクセスする購入者と共有されるべき、および共有されるべきではない、データのタイプと、データのための要求を開始した人物とを含むことができる。ブロック512では、データ仮想化システム111が、命令をブロック510から受信する、またはそれにアクセスする。
【0123】
ブロック514では、データ仮想化システム111が、1つまたはそれを上回るサードパーティサービスのうちの1つから許可される、サードパーティデータを読み出す、またはそれにアクセスする。例えば、読出は、APIコールの使用を通して、または任意の他の利用可能な手段によって、実施されることができる。
【0124】
ブロック516では、データ仮想化システム111が、サードパーティデータをプロファイリングし、それにメタデータをタグ付けする。いくつかの実施形態では、メタデータは、サードパーティデータが生じた場所、サードパーティデータが関連付けられるユーザ、データが読み出された時間、または任意の他の関連情報を説明することができる。
【0125】
ブロック518では、サードパーティデータが、クレンジングおよびフォーマット化されることができる。例えば、いくつかの実施形態では、データは、編集され、ユーザプライバシ設定またはソフトウエアコントラクトに基づいて共有されることが許可されない、任意の情報を除去することができる。いくつかの実施形態では、余剰または非関連情報が、読み出されてもよく(例えば、APIを通して)、データは、データ仮想化システム111要件または購入者もしくはシステムの表示選好に準拠するようにフォーマット化されなければならない。
【0126】
ブロック520では、データ仮想化システム111が、任意の以前に記憶されたユーザデータにサードパーティデータを付加し、コンテキスト化することができる。例えば、データ付加は、外部当局ソースからのサードパーティデータとファーストパーティ顧客データの既存のデータベースをマージすることを意味し得る。また、例えば、コンテキスト化は、エンティティのコンテキスト情報に基づいて、エンティティに関連するデータ(例えば、人物または都市)を識別するプロセスであり得る。例えば、コンテキストまたはコンテキスト情報は、(フィルタリング、集約、および推定を介して)具体的用途の範囲内において決定を行うために要求される推測の量を効果的に低減させるために使用され得る、任意のエンティティについての任意の情報であり得る。コンテキスト化は、次いで、エンティティのコンテキスト情報に基づいて、エンティティに関連するデータを識別するプロセスである。コンテキスト化は、非関連データを検討から除外することができ、大規模なデータ集約的用途において、量、速度、および多様性を含む、いくつかの側面から、データを低減させる潜在性を有する。コンテキスト化の利点は、用途/サービス/ユーザからの関心に基づいて、データの量を低減させる潜在性を含むことができる。加えて、コンテキスト化の別の利点は、非関連データを除外することによって、データプロセス、クエリ、および/または送達のスケーラビリティならびに効率性を改良することができることである。
【0127】
ブロック522では、データ仮想化システム111が、ブロック514において読み出された新しいサードパーティデータの通知およびトランザクション詳細をエージェント106に伝送することができる。ブロック524では、エージェント106が、新しいサードパーティデータの通知およびトランザクション詳細を受信することができる。
【0128】
ブロック526では、エージェント106が、データトランザクション情報(例えば、データ抽出、プロファイリングおよび処理、暗号化等)を分散型台帳108の中にエンコーディングすることができる。加えて、ブロック526では、エージェント106が、サードパーティデータが読み出された、ユーザ(または複数のユーザ)と関連付けられる、パブリック暗号化キーを読み出し、ブロック528では、パブリック暗号化キーをデータ仮想化システム111に伝送することができる。ブロック530では、データ仮想化システムが、パブリック暗号化キーを受信する。
【0129】
ブロック532では、データ仮想化システム111が、ブロック514においてサードパーティサービスから読み出される、またはアクセスされる、サードパーティデータを暗号化し、いくつかの実施形態では、サードパーティデータを任意の以前に記憶されたユーザデータで暗号化する。ブロック532における暗号化が、処理が、ブロック516、518、および520において、データ仮想化システム111によって、サードパーティデータに対して実施された後、生じるであろう。
【0130】
ブロック534では、データ仮想化システム111が、暗号化されたユーザデータをデータプラットフォーム112に伝送または利用可能にする。ブロック538では、データプラットフォーム112が、暗号化されたユーザデータを受信し、またはそれにアクセスし、ブロック540では、暗号化されたユーザデータを1つまたはそれを上回るデータベース内に記憶する。
【0131】
ブロック536では、いったんデータ仮想化システム111が、閉じられると(例えば、購入者からの終了するための命令の受信に応じて)、データ仮想化システム111は、セッションを閉じ、データ仮想化システム111が受信した任意のユーザデータ(任意のサードパーティデータを含む)および任意のプライベート暗号化キーを消去する。また、
図6Aおよび6Bは、購入者がデータ仮想化システム111と相互作用し得る方法、およびユーザデータがさらにブロック602においてデータ仮想化システム111からエクスポートされる、または取り出されないように保護される方法に関する付加的詳細を説明する。
ユーザデータのさらなる検証、処理、および監視
【0132】
図6Aは、ユーザデータを検証、処理、および監視するための方法600のフロー図を示す。ある付加的または代替ステップが、
図3に描写される。
【0133】
図3からのブロック342におけるプロセス後に開始し得る、ブロック604では、例えば、データ仮想化システム111が、ユーザデータに対して、集約、事前分析、および/またはコンテキスト化を実施する。例えば、集約は、集計関数または集約関数を含むことができ、これは、データの複数の行の値が、ともにグループ化され、単一記述値を形成し得る、関数である。いくつかの一般的集計関数は、average(すなわち、算術平均)、count、maximum、median、minimum、mode、range、sum、nanmean(「nil」または「null」としても知られる、NaN値を無視する平均)、またはstddevを含むことができる。事前分析は、例えば、任意のデータにアクセスすることに先立って構成されるであろう、購入者がユーザデータを分析する方法を説明するように構成されることができる。次いで、ブロック606では、データ仮想化システム111が、ユーザデータを、上記および本明細書に説明される、メタデータでエンコーディングする。
【0134】
ブロック608では、データ仮想化システム111が、機械学習または人工知能(AI)を用いて、ユーザデータを監視し、ユーザデータの非認可エクスポートを防止する。いくつかの実施形態では、データ仮想化システム111からのあるユーザデータの非認可エクスポートを防止し、ユーザデータのセキュリティおよびプライバシを潜在的に増加させることが望ましい。例えば、購入者が、ユーザデータをシステムから取り出すことになる場合、購入者は、次いで、データを販売する、またはそれを公開し得る。
【0135】
いくつかの実施形態では、機械学習が、ユーザデータおよびデータ仮想化システム111との購入者相互作用を監視し、ユーザデータの非認可エクスポートを防止するために使用されることができる。例えば、データ仮想化システム111(または、他の実施形態では、1つまたはそれを上回る他のシステム)は、機械学習アルゴリズムまたはAIを実装し、ユーザデータおよびユーザデータの操作を監視し、ユーザデータまたはユーザデータの一部がデータ仮想化システム111からエクスポートまたはコピーされないことを確実にすることができる。
【0136】
いくつかの異なるタイプのアルゴリズムも同様に、データ仮想化システム111によって使用されてもよい。例えば、本明細書におけるある実施形態は、ロジスティック回帰モデルを使用してもよい。しかしながら、線形回帰モデル、離散選択モデル、または一般化線形モデル等の他のモデルも、可能性として考えられる。機械学習アルゴリズムは、データ仮想化システム111によって受信された新しい入力に基づいて、経時的に、モデルを適応的に開発および更新するように構成されることができる。例えば、モデルは、新しいユーザ情報が、データ仮想化システム111によって受信される、または読み出されるにつれて、周期的ベースで再生成され、ユーザデータが更新されるにつれて、モデル内の予測をより正確に保つことに役立つことができる。データ仮想化システム111は、さらに本明細書に詳細に説明される。
【0137】
パラメータ関数または予測モデルを生成および更新するために使用され得る、機械学習アルゴリズムのいくつかの非限定的実施例は、回帰アルゴリズム(例えば、通常の最小二乗法回帰等)、インスタンスベースのアルゴリズム(例えば、学習ベクトル数値化等)、決定木アルゴリズム(例えば、分類および回帰ツリー等)、ベイズアルゴリズム(例えば、単純ベイズ等)、クラスタ化アルゴリズム(例えば、k-平均クラスタリング等)、関連付けルール学習アルゴリズム(例えば、アプリオリアルゴリズム等)、人工ニューラルネットワークアルゴリズム(例えば、パーセプトロン等)、深層学習アルゴリズム(例えば、深層ボルツマン機械等)、次元性低減アルゴリズム(例えば、主成分分析等)、アンサンブルアルゴリズム(例えば、スタックによる一般化等)、または他の機械学習アルゴリズムを含む、教師ありおよび教師なし機械学習アルゴリズムを含むことができる。
【0138】
これらの機械学習アルゴリズムは、k-平均アルゴリズム等の階層クラスタ化アルゴリズムおよびクラスタ分析アルゴリズムを含む、任意のタイプの機械学習アルゴリズムを含んでもよい。ある場合には、機械学習アルゴリズムの実施は、人工ニューラルネットワークの使用を含んでもよい。機械学習技法を使用することによって、膨大な量(テラバイトまたはペタバイト等)の関与者相互作用データが、ユーザ選好を識別するために分析されてもよい。これらのユーザ選好は、履歴データを使用して、オフラインで決定されてもよい。さらに、決定された選好は、次いで、本明細書に開示される技法を使用しない、他のマッチングを行うシステムと比較して、増加されたユーザ享受、その結果、関与を提供し得る、マッチングするプラン(下記にさらに詳細に説明されるように)を選択するためにリアルタイムで使用されてもよい。
【0139】
ブロック610では、購入者が、データ仮想化システム111の仮想環境内のユーザデータおよび任意の他の統計的データを分析し得る。購入者は、結果として生じる分析および認可されるデータのみを抽出することができる。例えば、あるユーザは、その個別のユーザデータのエクスポートを認可し得る一方、他のユーザは、任意のエクスポートまたはいくつかのエクスポート能力を認可しない場合がある(例えば、ユーザのユーザデータの一部のみが、エクスポート可能であり得、別の部分は、エクスポート不能であり得る)。
【0140】
ブロック612では、いったんデータ仮想化システム111が、閉じられると(例えば、購入者からの終了するための命令の受信に応じて)、データ仮想化システム111は、セッションを閉じ、データ仮想化システム111が受信した任意のユーザデータおよび任意のプライベート暗号化キーを消去する。
匿名化および仮名化されたユーザデータのための要求
【0141】
図6Bは、匿名化および仮名化されたユーザデータのための要求を処理するための方法650の実施例のフロー図を示す。ある付加的または代替ステップが、
図3および5に描写される。
【0142】
ブロック614では、データ仮想化システム111が、ユーザデータのアクセスまたは購入のための要求を購入者から受信する。要求は、関連付けられるソフトウエアコントラクトならびに任意のすでに処理および記憶された匿名化および仮名化されたユーザデータを用いたチェックを要求する、ユーザデータのための要求を含むことができる。例えば、いくつかの実施形態では、本システム(例えば、データプラットフォーム112、エージェント106等)は、ユーザデータを匿名化または匿名化し、処理されたデータをデータプラットフォーム112内に記憶することができる。いくつかの実施形態では、匿名化および仮名化されたユーザデータは、ユーザデータが十分に匿名化および仮名化されていることを確実にするためにチェックならびに照合されることができる。いくつかの実施形態では、ユーザは、そのプライバシ設定内に、彼らが、そのデータが匿名化および仮名化され、および/または購入者に提供されることを可能にするであろうかどうかを示さなければならない。いくつかの実施形態では、ユーザは、インジケーションを行う必要がない場合があり、代わりに、いくつかまたは全てのそのデータは、匿名化および仮名化され、購入者に提供されてもよい。いくつかの実施形態では、匿名化および仮名化されたユーザデータは、全体として、ユーザについての汎用の統計的情報のみを含む。あるフィルタリングオプションが、データ仮想化システム111を介して、匿名化および仮名化されたユーザデータの閲覧を精緻化するために利用可能であり得る。
【0143】
ブロック616では、データ仮想化システム111が、ソフトウエアコントラクトによって表され、施行されるようなプライバシ設定を介して、購入者と共有されるために利用可能かつ認可される、要求されるユーザデータの部分(例えば、匿名化および仮名化されたユーザデータ)と、ユーザから付加的承認を要求する、要求されるユーザデータの部分とを決定するための要求を処理する。
【0144】
ブロック618では、付加的承認をユーザから要求する、要求されるユーザデータの部分に関して、データ仮想化システム111が、エージェント106に、ユーザデータに関する要求を伝送する、または要求のバッチを利用可能にする。ブロック620では、エージェント106が、ユーザデータに関する要求を受信する。
【0145】
ブロック622では、エージェント106が、ブロック614において受信された要求に基づいて、分散型台帳108、すなわち、1人またはそれを上回るユーザと関連付けられる1つまたはそれを上回るソフトウエアコントラクトに関する分散型台帳を検索する。ユーザプライバシ設定に基づく、ソフトウエアコントラクトの作成の例示的説明は、
図2A-2Cに関して、かつ本明細書に提供される。付加的ステップが、
図3および5に関連して議論される。例えば、
図3におけるブロック302および
図5におけるブロック502において開始する、ブロック622から継続する、ステップが存在する。
【0146】
ブロック624では、付加的承認をユーザから要求せず、購入者と共有されるために利用可能かつ認可される、要求されるユーザデータの部分に関して、データ仮想化システム111が、匿名化および仮名化されたユーザデータのための要求をデータプラットフォーム112に伝送する。ブロック626では、データプラットフォーム112が、匿名化および仮名化されたユーザデータのための要求を受信する。
【0147】
ブロック628では、データプラットフォーム112が、任意の匿名化および仮名化されたユーザデータを特定し、データ仮想化システム111に伝送する。ブロック630では、データプラットフォーム112が、任意の匿名化および仮名化されたユーザデータを受信する。
【0148】
ブロック632では、いったんデータ仮想化システム111が、閉じられると(例えば、購入者からの終了するための命令の受信に応じて)、データ仮想化システム111は、セッションを閉じ、データ仮想化システム111が受信した任意の匿名化および仮名化されたユーザデータならびに任意のプライベート暗号化キーを含む、任意のユーザデータを消去する。
例示的空間コンピューティングデバイス
【0149】
空間コンピューティングデバイスまたは頭部搭載型ディスプレイ(HMD)等のウェアラブルディスプレイシステムは、ハンドヘルドユーザ入力デバイス等のコンパニオンデバイスと協働するように構成されてもよい。空間コンピューティングデバイスは、空間コンピューティングデバイスのユーザの環境を結像し得る、カメラ等の外向きに面した画像捕捉デバイスを含むことができる。画像捕捉デバイスは、共有情報またはデータ(例えば、共有キー、共有秘密、または署名キー)を空間コンピューティングデバイスとコンパニオンデバイスとの間に確立するために、コンパニオンデバイス上に表示される情報またはデータ(例えば、キーまたは秘密)を捕捉および取得するために使用されることができる。共有データは、ひいては、空間コンピューティングデバイスまたはコンパニオンデバイスによって使用され、セキュアデータ転送またはデータプラットフォームのため/からのデータを暗号化/解読することができる。
【0150】
図7Aは、仮想現実(VR)、拡張現実(AR)、または複合現実(MR)体験をディスプレイシステム装着者または視認者1004に提示するために使用され得る、空間コンピューティングデバイスまたはウェアラブルディスプレイシステム1000の実施例を図示する。ウェアラブルディスプレイシステム1000は、本明細書に説明される用途または実施形態のいずれかを実施するようにプログラムされてもよい。ディスプレイシステム1000は、ディスプレイ1008と、ディスプレイ1008の機能をサポートするための種々の機械的および電子的モジュールならびにシステムとを含む。ディスプレイ1008は、フレーム1012に結合されてもよく、これは、ディスプレイシステムユーザ、装着者、または視認者1004によって装着可能であって、ディスプレイ1008を装着者1004の眼の正面に位置させるように構成される。ディスプレイ1008は、ライトフィールドディスプレイであってもよい。いくつかの実施形態では、スピーカ1016が、フレーム1012に結合され、ユーザの外耳道に隣接して位置付けられる。いくつかの実施形態では、示されない、別のスピーカが、ユーザの他の外耳道に隣接して位置付けられ、ステレオ/調節可能音制御を提供する。ディスプレイ1008は、有線導線または無線コネクティビティ等によって、ローカルデータ処理モジュール1024に動作可能に結合1020され、これは、フレーム1012に固定して取り付けられる、ユーザによって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様に、ユーザ1004に除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において)等、種々の構成において搭載されてもよい。
【0151】
フレーム1012は、フレーム1012に取り付けられ、または搭載され、装着者の眼の画像を取得する、1つまたはそれを上回るカメラを有することができる。一実施形態では、カメラは、眼が直接結像され得るように、装着者の眼の正面のフレーム1012に搭載されてもよい。他の実施形態では、カメラは、フレーム1012のステムに沿って(例えば、装着者の耳の近くに)搭載されることができる。そのような実施形態では、ディスプレイ1008は、装着者の眼からの光をカメラに向かって反射させる、材料でコーティングされてもよい。光は、虹彩特徴が赤外線画像内で顕著であるため、赤外線光であってもよい。
【0152】
ローカル処理およびデータモジュール1024は、ハードウェアプロセッサと、不揮発性メモリ(例えば、フラッシュメモリ)等の非一過性デジタルメモリとを備えてもよく、その両方とも、データの処理、キャッシュ、および記憶を補助するために利用されてもよい。データは、(a)(例えば、フレーム1012に動作可能に結合される、または別様にユーザ1004に取り付けられてもよい)、画像捕捉デバイス(カメラ等)、マイクロホン、慣性測定ユニット、加速度計、コンパス、GPSユニット、無線デバイス、またはジャイロスコープ等のセンサから捕捉されるデータ、または(b)可能性として、処理もしくは読出後にディスプレイ1008への通過のために、遠隔処理モジュール1028または遠隔データリポジトリ1032を使用して入手ならびには処理されるデータを含んでもよい。ローカル処理およびデータモジュール1024は、これらの遠隔モジュール1028、1032が、ローカル処理およびデータモジュール1024へのリソースとして利用可能であるように、有線または無線通信リンク等を介して、通信リンク1036または1040によって、遠隔処理モジュール1028および遠隔データリポジトリ1032に動作可能に結合されてもよい。画像捕捉デバイスは、眼画像処理プロシージャにおいて使用される眼画像を捕捉するために使用されることができる。加えて、遠隔処理モジュール1028および遠隔データリポジトリ1032は、相互に動作可能に結合されてもよい。
【0153】
いくつかの実施形態では、遠隔処理モジュール1028は、画像捕捉デバイスによって捕捉されたビデオ情報等のデータまたは画像情報を分析および処理するように構成される、1つまたはそれを上回るプロセッサを備えてもよい。ビデオデータは、ローカル処理およびデータモジュール1024内にローカルで、または遠隔データリポジトリ1032内に記憶されてもよい。いくつかの実施形態では、遠隔データリポジトリ1032は、デジタルデータ記憶設備を備えてもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカル処理およびデータモジュール1024において実施され、遠隔モジュールからの完全に自律的な使用を可能にする。
【0154】
いくつかの実装では、ローカル処理およびデータモジュール1024または遠隔処理モジュール1028は、本明細書に説明されるようなシステムおよび方法の実施形態を実施するようにプログラムされる。画像捕捉デバイスは、特定の用途のためのビデオ(例えば、眼追跡用途のための装着者の眼のビデオまたはジェスチャ識別用途のための装着者の手もしくは指のビデオ)を捕捉することができる。ビデオは、処理モジュール1024、1028の一方または両方によって分析されることができる。ある場合には、虹彩コード生成のうちの少なくとも一部を(例えば、「クラウド」内の)遠隔処理モジュールにオフロードすることは、算出の効率または速度を改良し得る。本明細書に開示されるシステムおよび方法のパラメータは、データモジュール1024または1028内に記憶されることができる。
【0155】
分析の結果は、付加的動作または処理のために、処理モジュール1024、1028の一方または両方によって使用されることができる。例えば、種々の用途では、バイオメトリック識別、眼追跡、ジェスチャ、オブジェクト、姿勢の認識または分類等が、ウェアラブルディスプレイシステム1000によって使用されてもよい。例えば、ウェアラブルディスプレイシステム1000は、装着者1004の手の捕捉されたビデオを分析し、装着者の手およびウェアラブルディスプレイシステムによるジェスチャを認識してもよい(例えば、実または仮想オブジェクトを取り上げる、合意または不合意(例えば、「サムズアップ」または「サムズダウン」)をシグナリングする等)。
【0156】
ヒト視覚系は、複雑であって、深度の現実的知覚を提供することは、困難である。理論によって限定されるわけではないが、オブジェクトの視認者は、輻輳・開散運動と遠近調節の組み合わせに起因して、オブジェクトを3次元として知覚し得ると考えられる。相互に対する2つの眼の輻輳・開散運動移動(例えば、眼の視線を収束させ、オブジェクトを固視するための相互に向かった、またはそこから離れる瞳孔の回転移動)は、眼の水晶体の合焦(または「遠近調節」)と緊密に関連付けられる。通常条件下、焦点を1つのオブジェクトから異なる距離における別のオブジェクトに変化させるための眼の水晶体の焦点の変化または眼の遠近調節は、「遠近調節-輻輳・開散運動反射」として知られる関係下、同一距離への輻輳・開散運動の合致する変化を自動的に生じさせるであろう。同様に、輻輳・開散運動の変化は、通常条件下、遠近調節の合致する変化を誘起するであろう。遠近調節と輻輳・開散運動との間のより良好な合致を提供するディスプレイシステムが、3次元画像のより現実的かつ快適なシミュレーションを形成し得る。
別の例示的ユーザデータトランザクションシステム
【0157】
図7Bは、ユーザデータトランザクションシステムの一実施形態を図式的に図示する。ユーザデータトランザクションシステムは、
図1に説明されるユーザデータトランザクションシステム100に類似することができる。エージェント(例えば、
図1のエージェント106)および本開示の他のシステムおよびコンポーネントの使用を通して記憶ならびに実装される、プライバシ設定に基づいて、ユーザデータをセキュアに交換するためのシステムおよび方法は、1つまたはそれを上回るユーザデバイス702a-702c(例えば、
図1からのユーザデバイス102または購入者デバイス104もしくは
図7Aのウェアラブルディスプレイシステム1000)、1つまたはそれを上回るエージェント706(例えば、
図1からのエージェント106)、1つまたはそれを上回るデータプラットフォーム712(例えば、
図1からのデータプラットフォーム112)、およびデータ仮想化システム711(例えば、
図1からのデータ仮想化システム111)によって実装されることができる。
図7Bに示される非限定的例示的実施形態では、ユーザ701aは、ユーザデバイス702aおよび702b(例えば、ユーザデバイス102は、そのようなデバイスを含むことができる)を動作させ、そのユーザプライバシ設定を作成および修正することができる。
図7Bに示される非限定的例示的実施形態では、購入者701bは、ユーザデバイス702cを動作させ、ユーザ701aまたは他のユーザと関連付けられる、ユーザデータを閲覧する、それと相互作用する、それに付加的データを付加する、およびそれを分析することができる。
【0158】
ユーザデバイス702a-720cは、例えば、セルラー電話、タブレットコンピュータ、電子リーダ、スマートウォッチ、頭部搭載型拡張、仮想、または複合現実ディスプレイシステム、ウェアラブルディスプレイシステム、
図7Aのウェアラブルディスプレイシステム1000、または同等物を含むことができる。ユーザデバイス702a-cは、通信リンク120a、120b、例えば、セルラー通信リンクまたはインターネット接続を使用して、ネットワーク718上で他のデバイスと通信することができる。ネットワーク718は、有線または無線通信リンクによってアクセス可能なローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、またはインターネットであって、例えば、米国電気電子学会(IEEE)802.11規格を実装することができる。
【0159】
エージェント706は、通信リンク126を使用して、ネットワーク718上の他のデバイス、例えば、ユーザデバイス702aおよび702bと通信することができる。データプラットフォーム712は、ネットワーク718上の他のデバイス、例えば、エージェント706と通信することができる。データ仮想化システム711は、ネットワーク718上の他のデバイス、例えば、エージェント706またはユーザデバイス702cと通信することができる。通信リンク120a、120b、126、724、726、または728は、有線または無線通信、セルラー通信、Bluetooth(登録商標)、ローカルエリアネットワーク(LAN)、広域ローカルエリアネットワーク(WLAN)、無線周波数(RF)、赤外線(IR)、もしくは任意の他の通信方法またはシステムであることができる。
【0160】
ユーザデバイス702aおよび702bは、暗号化されたユーザデータをデータプラットフォーム712に伝送することができる。ユーザデバイス702aおよび702bはまた、ユーザ701aによって、分散型台帳(例えば、
図1の分散型台帳108)を含み得る、エージェント706を介して、ユーザ701aのプライバシ設定を構成または修正するために使用されることができる。購入者702bは、ユーザデバイス702c(例えば、
図1の購入者デバイス104)を使用して、データ仮想化システム711と通信し、データプラットフォーム上に記憶される暗号化されたユーザデータと相互作用することができる。
付加的実装詳細および実施形態
【0161】
本開示の種々の実施形態は、任意の可能性として考えられる技術的詳細レベルの統合における、システム、方法、またはコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本開示の側面を行わせるためのコンピュータ可読プログラム命令をその上に有する、コンピュータ可読記憶媒体(または複数の媒体)を含んでもよい。
【0162】
例えば、本明細書に説明される機能性は、ソフトウェア命令が、1つまたはそれを上回るハードウェアプロセッサもしくは任意の他の好適なコンピューティングデバイスによって実行される、ソフトウェア命令によって、またはそれに応答して実行されるにつれて、実施されてもよい。ソフトウェア命令または他の実行可能コードは、コンピュータ可読記憶媒体(または複数の媒体)から読み取られてもよい。
【0163】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のためのデータまたは命令を留保および記憶し得る、有形デバイスであることができる。コンピュータ可読記憶媒体は、例えば、限定ではないが、電子記憶デバイス(任意の揮発性または不揮発性電子記憶デバイスを含む)、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または前述の任意の好適な組み合わせであってもよい。コンピュータ可読記憶媒体のより具体的実施例の非包括的リストは、以下、すなわち、ポータブルコンピュータディスケット、ハードディスク、ソリッドステートドライブ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、消去可能プログラマブル読取専用メモリ(EPROMまたはフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読取専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピー(登録商標)ディスク、その上に記録される命令を有する、パンチカードまたは溝内の隆起構造等の機械的にエンコーディングされたデバイス、および前述の任意の好適な組み合わせを含む。本明細書で使用されるようなコンピュータ可読記憶媒体は、無線波または他の自由に伝搬する電磁波、導波管または他の伝送媒体を通して伝搬する電磁波、(例えば、光ファイバケーブルを通して通過する、光パルス)、もしくはワイヤを通して伝送される電気信号等、それ自体が、一過性信号であるものとして解釈されない。
【0164】
本明細書に説明されるコンピュータ可読プログラム命令は、個別のコンピューティング/処理デバイスに、コンピュータ可読記憶媒体または外部コンピュータもしくは外部記憶デバイスから、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク、または無線ネットワークを介して、ダウンロードされることができる。ネットワークは、銅伝送ケーブル、光学伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、またはエッジサーバを備えてもよい。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、個別のコンピューティング/処理デバイス内のコンピュータ可読記憶媒体の中への記憶のために、コンピュータ可読プログラム命令を転送する。
【0165】
本開示の動作を行うためのコンピュータ可読プログラム命令(本明細書では、例えば、「コード」、「命令」、「モジュール」、「アプリケーション」、「ソフトウェアアプリケーション」、または同等物とも称される)は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路網のための構成データ、またはSmalltalk、C++、もしくは同等物等のオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似プログラミング言語等の手続型プログラミング言語を含む、1つまたはそれを上回るプログラミング言語の任意の組み合わせにおいて書き込まれる、ソースコードもしくはオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、他の命令から、またはそれ自体から呼出可能であってもよい、もしくは検出されたイベントまたはインタラプトに応答して呼び出されてもよい。コンピューティングデバイス上での実行のために構成される、コンピュータ可読プログラム命令は、コンピュータ可読記憶媒体上に、または、次いで、コンピュータ可読記憶媒体上に記憶され得る、デジタルダウンロードとして提供されてもよい(かつ、元々、実行に先立って、インストール、解凍、または解読を要求する、圧縮またはインストール可能フォーマットで記憶されてもよい)。そのようなコンピュータ可読プログラム命令は、部分的または完全に、コンピューティングデバイスによる実行のために、実行コンピューティングデバイスのメモリデバイス(例えば、コンピュータ可読記憶媒体)上に記憶されてもよい。コンピュータ可読プログラム命令は、完全に、ユーザのコンピュータ(例えば、実行コンピューティングデバイス)上で、部分的に、ユーザのコンピュータ上で、独立型ソフトウェアパッケージとして、部分的に、ユーザのコンピュータ上で、かつ部分的に、遠隔コンピュータ上で、または完全に、遠隔コンピュータもしくはサーバ上で実行されてもよい。後者のシナリオでは、遠隔コンピュータは、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を含む、任意のタイプのネットワークを通して、ユーザのコンピュータに接続されてもよい、または接続は、外部コンピュータに行われてもよい(例えば、インターネットサービスプロバイダを使用して、インターネットを通して)。いくつかの実施形態では、例えば、プログラマブル論理回路網、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む、電子回路網は、本開示の側面を実施するために、コンピュータ可読プログラム命令の状態情報を利用して、電子回路網を個人化することによって、コンピュータ可読プログラム命令を実行してもよい。
【0166】
本開示の側面は、本開示の実施形態による、方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図またはブロック図を参照して本明細書に説明される。フローチャート図またはブロック図の各ブロックおよびフローチャート図またはブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されることができることを理解されたい。
【0167】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図ブロックもしくは複数のブロック内に規定された機能/行為を実装するための手段を作成するように、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供され、機械を生産してもよい。これらのコンピュータ可読プログラム命令はまた、その中に記憶される命令を有するコンピュータ可読記憶媒体が、フローチャートまたはブロック図ブロックもしくは複数のブロック内に規定された機能/行為の側面を実装する、命令を含む、製造品を備えるように、コンピュータ、プログラマブルデータ処理装置、または他のデバイスに、特定の様式において機能するように指示し得る、コンピュータ可読記憶媒体内に記憶されてもよい。
【0168】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロックもしくは複数のブロック内に規定された機能/行為を実装するように、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイス上にロードされ、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実施させ、コンピュータ実装プロセスを生産してもよい。例えば、命令は、最初に、遠隔コンピュータの磁気ディスクまたはソリッドステートドライブ上で搬送されてもよい。遠隔コンピュータは、命令またはモジュールを遠隔コンピュータの動的メモリの中にロードし、モデムを使用して、電話、ケーブル、または光学ラインを経由して、命令を送信してもよい。サーバコンピューティングシステムにローカルのモデムは、データを電話/ケーブル/光学ライン上で受信し、適切な回路網を含む、コンバータデバイスを使用して、データをバス上に設置してもよい。バスは、データをメモリに搬送してもよく、そこからプロセッサは、命令を読み出し、実行してもよい。メモリによって受信された命令は、随意に、コンピュータプロセッサによる実行の前または後のいずれかにおいて、記憶デバイス(例えば、ソリッドステートドライブ)上に記憶されてもよい。
【0169】
図中のフローチャートおよびブロック図は、本開示の種々の実施形態による、システム、方法、およびコンピュータプログラム製品の可能性として考えられる実装のアーキテクチャ、機能性、および動作を図示する。本点では、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたはそれを上回る実行可能命令を備える、命令のモジュール、セグメント、または一部を表し得る。いくつかの代替実装では、ブロック内に記載される機能は、図中に記載の順序外で生じてもよい。例えば、連続して示される2つのブロックは、実際は、実質的に並行して実行されてもよい、またはブロックは、時として、関わる機能性に応じて、逆順で実行されてもよい。加えて、あるブロックは、いくつかの実装では、省略されてもよい。本明細書に説明される方法およびプロセスは、また、いずれの特定のシーケンスにも限定されず、それに関連するブロックまたは状態は、適切な他のシーケンスで実施されることができる。
【0170】
したがって、動作は、特定の順序において図面に描写され得るが、そのような動作は、示される特定の順序または順次順序で実施される、または全ての図示される動作が、望ましい結果を達成するために実施される必要はないことを認識されたい。さらに、図面は、フローチャートの形態における1つまたはそれを上回る例示的プロセスを図式的に描写し得る。しかしながら、描写されない他の動作も、図式的に図示される、例示的方法およびプロセス内に組み込まれることができる。例えば、1つまたはそれを上回る付加的動作が、図示される動作のいずれかの前、後、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装では、再配列される、または並べ替えられてもよい。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、そのような分離を全ての実装において要求するものと理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一ソフトウェア製品内にともに統合される、または複数のソフトウェア製品の中にパッケージ化されることができることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。ある場合には、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。
【0171】
また、ブロック図またはフローチャート図の各ブロックおよびブロック図またはフローチャート図内のブロックの組み合わせは、規定された機能または行為を実施する、もしくは特殊目的ハードウェアおよびコンピュータ命令の組み合わせを行う、特殊目的ハードウェアベースのシステムによって実装されることができることに留意されたい。例えば、前節に説明されるプロセス、方法、アルゴリズム、要素、ブロック、アプリケーション、または他の機能性(または機能性の一部)のいずれかは、特定用途向けプロセッサ(例えば、特定用途向け集積回路(ASIC))、プログラマブルプロセッサ(例えば、フィールドプログラマブルゲートアレイ(FPGA))、特定用途向け回路網、または同等物(そのいずれかはまた、本技法を遂行するためのソフトウェア命令のカスタムプログラミング/実行を用いることで、カスタム有線論理、論理回路、ASIC、FPGA等を組み合わせ得る)等の電子ハードウェア内に具現化される、または完全もしくは部分的に、それを介して自動化されてもよい。
【0172】
上記に述べられたプロセッサまたはデバイスのいずれかは、本明細書では、例えば、「コンピュータ」、「コンピュータデバイス」、「コンピューティングデバイス」、「ハードウェアコンピューティングデバイス」、「ハードウェアプロセッサ」、「処理ユニット」、または同等物と称され得る、上記に述べられたプロセッサのいずれかを組み込む。上記に実施形態のコンピューティングデバイスは、概して(必ずしもではないが)、Mac OS、iOS、Android、Chrome OS、Windows(登録商標) OS(例えば、Windows(登録商標) XP、Windows(登録商標) Vista、Windows(登録商標)7、Windows(登録商標)8、Windows(登録商標)10、Windows(登録商標) Server等)、Windows(登録商標) CE、Unix(登録商標)、Linux(登録商標)、SunOS、Solaris、Blackberry OS、VxWorks、または他の好適なオペレーティングシステム等のオペレーティングシステムソフトウェアによって制御または協調されてもよい。他の実施形態では、コンピューティングデバイスは、専有オペレーティングシステムによって制御されてもよい。従来のオペレーティングシステムは、とりわけ、実行のためのコンピュータプロセスを制御およびスケジュールし、メモリ管理を実施し、ファイルシステム、ネットワーキング、I/Oサービスを提供し、グラフィカルユーザインターフェース(「GUI」)等のユーザインターフェース機能性を提供する。
【0173】
例えば、
図8は、その上に種々の実施形態が実装され得る、コンピュータシステム800を図示する、ブロック図である。そのようなコンピュータシステム800は、本明細書に説明されるようなエージェント、分散型台帳、ユーザデバイス、データプラットフォーム、またはデータ仮想化システムの一部を含むことができる。コンピュータシステム800は、
図7Bを参照して説明されるシステムを実装するために使用されることができる。コンピュータシステム800は、情報を通信するためのバス802または他の通信機構と、情報を処理するためにバス802と結合される、ハードウェアプロセッサまたは複数のプロセッサ804とを含む。ハードウェアプロセッサ804は、例えば、1つまたはそれを上回る汎用マイクロプロセッサであってもよい。
【0174】
コンピュータシステム800はまた、プロセッサ804によって実行されるための情報および命令を記憶するためにバス802に結合される、ランダムアクセスメモリ(RAM)、キャッシュ、または他の動的記憶デバイス等のメインメモリ806を含む。メインメモリ806はまた、プロセッサ804によって実行されるための命令の実行の間、一時的変数または他の中間情報を記憶するために使用されてもよい。そのような命令は、プロセッサ804にアクセス可能な記憶媒体内に記憶されると、コンピュータシステム800を、命令内に規定された動作を実施するようにカスタマイズされる、特殊目的機械の中にレンダリングする。
【0175】
コンピュータシステム800はさらに、プロセッサ804のための静的情報および命令を記憶するためにバス802に結合される、読取専用メモリ(ROM)808または他の静的記憶デバイスを含む。磁気ディスク、光ディスク、またはUSBサムドライブ(フラッシュドライブ)等の記憶デバイス810が、情報および命令を記憶するために提供され、バス802に結合される。
【0176】
コンピュータシステム800は、情報をコンピュータユーザに表示するために、バス802を介して、陰極線管(CRT)またはLCDディスプレイ(またはタッチスクリーン)等のディスプレイ812に結合されてもよい。コンピュータシステム800は、バス802またはネットワークリンク820を介して、例えば、ユーザデバイス102、104、702a-702c、1000等の拡張、複合、または仮想現実ディスプレイデバイスを含み得る、ユーザデバイス824に結合されてもよい。さらに、コンピュータシステム800自体もまた、例えば、ユーザデバイス102、104、702a-702c、1000等の拡張、複合、または仮想現実ディスプレイデバイスを含んでもよい。英数字および他のキーを含む、入力デバイス814が、情報およびコマンド選択をプロセッサ804に通信するために、バス802に結合される。別のタイプのユーザ入力デバイスは、方向情報およびコマンド選択をプロセッサ804に通信するための、かつディスプレイ812上のカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キー等のカーソル制御816である。本入力デバイスは、典型的には、デバイスが平面内の位置を規定することを可能にする、2つの軸、すなわち、第1の軸(例えば、x)および第2の軸(例えば、y)における2自由度を有する。いくつかの実施形態では、カーソル制御と同一方向情報およびコマンド選択は、カーソルを伴わずに、タッチスクリーン上でタッチを受信することを介して、実装されてもよい。
【0177】
コンピューティングシステム800は、ユーザインターフェースモジュールを含み、コンピューティングデバイスによって実行されるコンピュータ実行可能プログラム命令として、大容量記憶デバイス内に記憶され得る、GUIを実装してもよい。コンピュータシステム800はさらに、下記に説明されるように、コンピュータシステムと組み合わせて、プログラムコンピュータシステム800を特殊目的機械であるようにさせる、またはプログラムする、カスタマイズされた有線論理、1つまたはそれを上回るASICまたはFPGA、ファームウェアまたはプログラム論理を使用して、本明細書に説明される技法を実装してもよい。一実施形態によると、本明細書の技法は、プロセッサ804が、メインメモリ806内に含有される1つまたはそれを上回るコンピュータ可読プログラム命令の1つまたはそれを上回るシーケンスを実行することに応答して、コンピュータシステム800によって実施される。そのような命令は、メインメモリ806の中に、記憶デバイス810等の別の記憶媒体から読み込まれてもよい。メインメモリ806内に含有される命令のシーケンスの実行は、プロセッサ804に、本明細書に説明されるプロセスステップを実施させる。代替実施形態では、有線回路網が、ソフトウェア命令の代わりに、またはそれと組み合わせて、使用されてもよい。
【0178】
種々の形態のコンピュータ可読記憶媒体が、実行のために、1つまたはそれを上回るコンピュータ可読プログラム命令の1つまたはそれを上回るシーケンスをプロセッサ804に搬送する際に関わってもよい。例えば、命令は、最初に、遠隔コンピュータの磁気ディスクまたはソリッドステートドライブ上で搬送されてもよい。遠隔コンピュータは、命令を遠隔コンピュータの動的メモリの中にロードし、モデムを使用して、電話回線を経由して、命令を送信することができる。コンピュータシステム800にローカルのモデムは、データを電話回線上で受信し、赤外線伝送機を使用して、データを赤外線信号に変換することができる。赤外線検出器は、赤外線信号内で搬送されるデータを受信することができ、適切な回路網は、データをバス802上に設置することができる。バス802は、データをメインメモリ806に搬送し、そこからプロセッサ804は、命令を読み出し、実行する。メインメモリ806によって受信された命令は、随意に、プロセッサ804による実行の前または後のいずれかにおいて、記憶デバイス810上に記憶されてもよい。
【0179】
コンピュータシステム800はまた、バス802に結合される、通信インターフェース818を含む。通信インターフェース818は、ローカルネットワーク822に接続される、ネットワークリンク820に結合する、双方向データ通信を提供する。例えば、通信インターフェース818は、統合されたサービスデジタルネットワーク(ISDN)カード、ケーブルモデム、衛星モデム、またはモデムであって、データ通信接続を対応するタイプの電話回線に提供してもよい。別の実施例として、通信インターフェース818は、ローカルエリアネットワーク(LAN)カードであって、データ通信接続を互換性があるLAN(またはWANと通信するためのWANコンポーネント)に提供してもよい。無線リンクもまた、実装されてもよい。任意のそのような実装では、通信インターフェース818は、種々のタイプの情報を表す、デジタルデータストリームを搬送する、電気、電磁、または光学信号を送信および受信する。
【0180】
ネットワークリンク820は、典型的には、データ通信を、1つまたはそれを上回るネットワークを通して、他のデータデバイスに提供する。例えば、ネットワークリンク820はローカルネットワーク822を通して、インターネットサービスプロバイダ(ISP)826によって動作される、ユーザデバイス824またはデータ機器への接続を提供してもよい。ISP826は、ひいては、本明細書では、一般に、「インターネット」828と称される、世界中のパケットデータ通信ネットワークを通して、データ通信サービスを提供する。ローカルネットワーク822およびインターネット828は両方とも、デジタルデータストリームを搬送する、電気、電磁、または光学信号を使用する。デジタルデータをコンピュータシステム800におよびそこから搬送する、種々のネットワークを通した信号ならびにネットワークリンク820上および通信インターフェース818を通した信号は、伝送媒体の例示的形態である。
【0181】
コンピュータシステム800は、ネットワーク、ネットワークリンク820、および通信インターフェース818を通して、メッセージを送信し、プログラムコードを含む、データを受信することができる。インターネット実施例では、サーバ830は、インターネット828、P826、ローカルネットワーク822、および通信インターフェース818を通して、アプリケーションプログラムのために要求されるコードを伝送し得る。例えば、サーバ830は、ユーザのデータトランザクションシステム100、データ可視化システム111、エージェント106、データプラットフォーム112、またはユーザデータプライバシシステム103のうちのいくつかまたは全てを含んでもよい。
【0182】
受信されたコードは、受信されるにつれて、プロセッサ804によって実行される、または後の実行のために、記憶デバイス810または他の不揮発性記憶装置内に記憶されてもよい。
付加的考慮点
【0183】
上記に説明されるように、種々の実施形態では、ある機能性は、ウェブベースのビューア(ウェブブラウザ等)または他の好適なソフトウェアプログラムを通して、ユーザによってアクセス可能であってもよい。そのような実装では、ユーザインターフェースは、サーバコンピューティングシステムによって生成され、(例えば、ユーザのコンピューティングシステム上で起動する)ユーザのウェブブラウザに伝送されてもよい。代替として、ユーザインターフェースを生成するために必要なデータ(例えば、ユーザインターフェースデータ)は、サーバコンピューティングシステムによって、ユーザインターフェースが生成され得る、ブラウザに提供されてもよい(例えば、ユーザインターフェースデータは、ブラウザがウェブサービスにアクセスすることによって実行されてもよく、ユーザインターフェースデータに基づいて、ユーザインターフェースをレンダリングするように構成されてもよい)。ユーザは、次いで、ウェブ-ブラウザを通して、ユーザインターフェースと相互作用してもよい。ある実装のユーザインターフェースは、1つまたはそれを上回る専用ソフトウェアアプリケーションを通してアクセス可能であってもよい。ある実施形態では、本開示のコンピューティングデバイスまたはシステムのうちの1つまたはそれを上回るものは、モバイルコンピューティングデバイスを含んでもよく、ユーザインターフェースは、そのようなモバイルコンピューティングデバイス(例えば、スマートフォンまたはタブレット)を通してアクセス可能であってもよい。
【0184】
いくつかの実施形態では、データは、必要に応じて、チャートおよびグラフ等の視覚的表現等のグラフィカル表現内に提示され、ユーザが、大量のデータを快適に精査し、視覚的刺激に関連するヒトの特に高いパターン認識能力を利用することを可能にしてもよい。いくつかの実施形態では、本システムは、合計、計数、および平均等の集計量を提示してもよい。本システムはまた、情報を利用して、将来的展開を補間または外挿、例えば、予想してもよい。
【0185】
さらに、本明細書に説明される双方向かつ動的ユーザインターフェースは、ユーザインターフェースと下層システムおよびコンポーネントとの間の効率的相互作用における革新によって可能にされる。例えば、本明細書に開示されるものは、ユーザ入力の受信、種々のシステムコンポーネントへのそれらの入力の変換および送達、入力送達に応答した複雑なプロセスの自動および動的実行、本システムの種々のコンポーネントおよびプロセス間の自動相互作用、ならびにユーザインターフェースの自動および動的更新の改良された方法である。本明細書に説明される双方向ユーザインターフェースを介したデータの相互作用および提示は、故に、以前のシステムに優る認知および人間工学的効率ならびに利点を提供し得る。
【0186】
本開示の種々の実施形態は、改良を種々の技術および技術分野に提供する。例えば、上記に説明されるように、既存のデータ記憶装置および処理技術(例えば、メモリデータベース内を含む)は、種々の点において限定され(例えば、手動データ精査は、低速であって、コストがかかり、かつあまり詳細ではない、データは、非常に膨大である等)、本開示の種々の実施形態は、そのような技術に優る有意な改良を提供する。加えて、本開示の種々の実施形態は、コンピュータ技術に分離不可能に結び付けられる。特に、種々の実施形態は、グラフィカルユーザインターフェースを介したユーザ入力の検出、それらのユーザ入力に基づく表示される電子データの更新の計算、関連電子データの自動処理、および双方向グラフィカルユーザインターフェースを介した表示される画像の更新の提示に依拠する。そのような特徴およびその他(例えば、大量の電子データの処理および分析)は、コンピュータ技術に密接に結び付けられ、それによって可能にされ、コンピュータ技術がなければ、存在しないであろう。例えば、種々の実施形態を参照して下記に説明される表示されるデータとの相互作用は、その上にそれらが実装される、コンピュータ技術を伴わずに、ヒト単独によっては、合理的に実施されることができない。さらに、コンピュータ技術を介した本開示の種々の実施形態の実装は、種々のタイプの電子データとのより効率的相互作用およびその提示を含む、本明細書に説明される利点の多くを可能にする。
【0187】
種々の実施形態では、それを用いて具現化されるプログラム命令を有する、コンピュータ可読記憶媒体と、プログラム命令を実行し、1つまたはそれを上回るプロセッサに、上記または下記に説明される実施形態の1つまたはそれを上回る側面(添付の請求項の1つまたはそれを上回る側面を含む)を備える、動作を実施させるように構成される、1つまたはそれを上回るプロセッサとを備える、システムまたはコンピュータシステムが、開示される。
【0188】
種々の実施形態では、コンピュータ可読記憶媒体を備える、コンピュータプログラム製品が、開示され、コンピュータ可読記憶媒体は、それを用いて具現化される、プログラム命令を備え、プログラム命令は、1つまたはそれを上回るプロセッサに、上記および/または下記に説明される実施形態の1つまたはそれを上回る側面(添付の請求項の1つまたはそれを上回る側面を含む)を備える、動作を実施させるために1つまたはそれを上回るプロセッサによって実行可能である。
【0189】
多くの変形例および修正が、上記に説明される実施形態に行われてもよく、その要素は、他の容認可能実施例に該当すると理解される。全てのそのような修正および変形例は、本開示の範囲内の本明細書に含まれるように意図される。前述の説明は、ある実施形態を詳述する。しかしながら、文書中に現れる前述の詳細度にかかわらず、本システムおよび方法は、多くの方法において実践されることができることを理解されたい。また、上記に述べられるように、本システムおよび方法のある特徴または側面を説明するときの特定の専門用語の使用は、専門用語が、それとその専門用語が関連付けられる、本システムおよび方法の特徴または側面の任意の具体的特性を含むように制限されるように本明細書に再定義されることを含意すると捉えられるべきではないことに留意されたい。
【0190】
とりわけ、「~できる(can)」、「~し得る(could)」、「~し得る(might)」、または「~し得る(may)」等の条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態がある特徴、要素、および/またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、および/またはステップが、1つまたはそれを上回る実施形態に対していかようにも要求されること、もしくは1つまたはそれを上回る実施形態実施形態が、著者の入力もしくは促しの有無を問わず、これらの特徴、要素、および/またはステップが任意の特定の実施形態において含まれる、もしくは実施されるべきかどうかを決定するための論理を必然的に含むことを含意することを意図されない。
【0191】
本明細書で使用されるような用語「コンポーネント」、「エージェント」、「モジュール」、「デバイス」、「機構」、「ユニット」、「要素」、「部材」、「装置」、「機械」、「プロセッサ」、または「システム」は、手段プラス機能請求項用語を想定するものと解釈されるべきではない。例えば、そのような用語を用いて説明される要素は、特殊または特定のプログラミングの使用または適用を伴わずに、用語と関連付けられる任意の請求される動作を実施することが可能であるものとして解釈されるべきである。
【0192】
用語「実質的に」は、用語「リアルタイム」と併用されるとき、当業者によって容易に理解されるであろう、語句を形成する。例えば、そのような言語は、遅延または待機を全くもしくは殆ど判別可能ではない、またはそのような遅延が、混乱、苛立ち、もしくは別様に当惑をユーザにもたらないほど十分に短い、速度を含むであろうことが、容易に理解される。
【0193】
語句「X、Y、およびZのうちの少なくとも1つ」または「X、Y、またはZのうちの少なくとも1つ」等の接続的用語は、別様に具体的に述べられない限り、一般に、アイテム、用語等が、X、Y、またはZのいずれか、もしくはそれらの組み合わせであり得ることを伝達するために使用されるものとして、コンテキストとともに理解されるべきである。例えば、用語「または」は、例えば、要素のリストを接続するために使用されるとき、用語「または」が、リスト内の要素のうちの1つ、いくつか、または全てを意味するように、その包含的意味(かつその排他的意味ではなく)で使用される。したがって、そのような接続的用語は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つがそれぞれ存在することを要求することを含意するように意図するものではない。
【0194】
本明細書および添付の請求項で使用されるような用語「a」は、排他的解釈ではなく、包含的解釈を与えられるべきである。例えば、具体的に記載されない限り、用語「a」は、「正確に1つ」または「1つかつ1つのみ」を意味するものと理解されるべきではなく、代わりに、用語「a」は、請求項または本明細書のいずれかの場所内で使用されるかどうかにかかわらず、かつ請求項または本明細書内のいずれの場所の「少なくとも1つ」、「1つまたはそれを上回る」、または「複数の」等の数量詞請の使用にかかわらず、「1つまたはそれを上回る」もしくは「少なくとも1つ」を意味する。
【0195】
とりわけ、「~できる(can)」、「~し得る(could)」、「~し得る(might)」、「~し得る(may)」、「例えば(e.g.)」、および同等物等、本明細書で使用される条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態がある特徴、要素、および/またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、および/またはステップが、1つまたはそれを上回る実施形態に対していかようにも要求されること、もしくは1つまたはそれを上回る実施形態が、著者の入力または促しの有無を問わず、これらの特徴、要素、および/またはステップが任意の特定の実施形態において含まれる、もしくは実施されるべきかどうかを決定するための論理を必然的に含むことを含意することを意図されない。用語「~を備える(comprising)」、「~を含む(including)」、「~を有する(having)」、および同等物は、同義語であり、非限定的方式で包括的に使用され、付加的要素、特徴、行為、動作等を除外しない。例えば、1つまたはそれを上回るプロセッサを備える、汎用コンピュータは、他のコンピュータコンポーネントを除外するものとして解釈されるべきではなく、可能性として、とりわけ、メモリ、入/出力デバイス、および/またはネットワークインターフェース等のコンポーネントを含んでもよい。
【0196】
上記の詳細な説明は、種々の実施形態に適用されるような新規特徴を図示、説明、および指摘しているが、図示されるデバイスまたはプロセスの形態および詳細の種々の省略、代用、ならびに変更が、本開示の精神から逸脱することなく行われてもよいことを理解されたい。認識され得るように、本明細書に説明される本発明のある実施形態は、本明細書に記載される特徴および利点の全てを提供しない、形態内に具現化されてもよく、いくつかの特徴は、その他と別個に使用または実践されてもよい。本明細書に開示されるある発明の範囲は、前述の説明によってではなく、添付の請求項によって示される。請求項の等価性の意味および範囲内に該当する、全ての変更は、その範囲内に包含されるべきである。
【0197】
本明細書に説明される、ならびに/または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、1つまたはそれを上回る物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、特定用途向け回路、および/または電子ハードウェアによって実行される、コードモジュールにおいて具現化され、それによって完全もしくは部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令とともにプログラムされた汎用コンピュータ(例えば、サーバ)または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされる、動的リンクライブラリ内にインストールされ得る、またはインタープリタ型プログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特有の回路によって実施され得る。
【0198】
さらに、本開示の機能性のある実装は、十分に数学的、コンピュータ的、または技術的に複雑であるため、(適切な特殊化された実行可能命令を利用する)特定用途向けハードウェアもしくは1つまたはそれを上回る物理的コンピューティングデバイスは、例えば、関与する計算の量もしくは複雑性に起因して、または結果を実質的にリアルタイムで提供するために、機能性を実施する必要があり得る。例えば、ビデオは、多くのフレームを含み、各フレームは、数百万のピクセルを有し得、具体的にプログラムされたコンピュータハードウェアは、商業的に妥当な時間量において所望の画像処理タスクまたは用途を提供するようにビデオデータを処理する必要がある。
【0199】
コードモジュールまたは任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、揮発性もしくは不揮発性記憶装置、同一物の組み合わせ、および/または同等物を含む、物理的コンピュータ記憶装置等の任意のタイプの非一過性コンピュータ可読媒体上に記憶され得る。本方法およびモジュール(またはデータ)はまた、無線ベースおよび有線/ケーブルベースの媒体を含む、種々のコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波または他のアナログもしくはデジタル伝搬信号の一部として)伝送され得、種々の形態(例えば、単一もしくは多重化アナログ信号の一部として、または複数の離散デジタルパケットもしくはフレームとして)をとり得る。開示されるプロセスまたはプロセスステップの結果は、任意のタイプの非一過性有形コンピュータ記憶装置内に持続的もしくは別様に記憶され得る、またはコンピュータ可読伝送媒体を介して通信され得る。
【0200】
本明細書に説明される、および/または添付される図に描写されるフロー図における任意のプロセス、ブロック、状態、ステップ、もしくは機能性は、プロセスにおいて具体的機能(例えば、論理もしくは算術)またはステップを実装するための1つまたはそれを上回る実行可能命令を含む、コードモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されたい。種々のプロセス、ブロック、状態、ステップ、または機能性は、組み合わせられる、再配列される、本明細書に提供される例証的実施例に追加される、そこから削除される、修正される、または別様にそこから変更されることができる。いくつかの実施形態では、付加的または異なるコンピューティングシステムもしくはコードモジュールが、本明細書に説明される機能性のいくつかまたは全てを実施し得る。本明細書に説明される方法およびプロセスはまた、いずれの特定のシーケンスにも限定されず、それに関連するブロック、ステップ、または状態は、適切な他のシーケンスで、例えば、連続して、並行して、またはある他の様式で実施されることができる。タスクまたはイベントが、開示される例示的実施形態に追加される、またはそこから除去され得る。さらに、本明細書に説明される実装における種々のシステムコンポーネントの分離は、例証目的のためであり、全ての実装においてそのような分離を要求するものとして理解されるべきではない。説明されるプログラムコンポーネント、方法、およびシステムは、概して、単一のコンピュータ製品においてともに統合される、または複数のコンピュータ製品にパッケージ化され得ることを理解されたい。多くの実装変形例が、可能である。
【0201】
本プロセス、方法、およびシステムは、ネットワーク(または分散)コンピューティング環境において実装され得る。ネットワーク環境は、企業全体コンピュータネットワーク、イントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、クラウドコンピューティングネットワーク、クラウドソースコンピューティングネットワーク、インターネット、およびワールドワイドウェブを含む。ネットワークは、有線もしくは無線ネットワークまたは任意の他のタイプの通信ネットワークであり得る。
【0202】
本開示のシステムおよび方法は、それぞれ、いくつかの革新的側面を有し、そのうちのいかなるものも、本明細書に開示される望ましい属性に単独で関与しない、またはそのために要求されない。本明細書に説明される種々の特徴およびプロセスは、相互に独立して使用され得る、または種々の方法で組み合わせられ得る。全ての可能性として考えられる組み合わせおよび副次的組み合わせが、本開示の範囲内に該当することが意図される。本開示に説明される実装の種々の修正が、当業者に容易に明白であり得、本明細書に定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の実装に適用され得る。したがって、請求項は、本明細書に示される実装に限定されることを意図されず、本明細書に開示される本開示、原理、および新規の特徴と一貫する最も広い範囲を与えられるべきである。
【0203】
別個の実装の文脈において本明細書に説明されるある特徴はまた、単一の実装における組み合わせにおいて実装されることができる。逆に、単一の実装の文脈において説明される種々の特徴もまた、複数の実装において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴がある組み合わせにおいて作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの1つまたはそれを上回る特徴は、いくつかの場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。いかなる単一の特徴または特徴の群も、あらゆる実施形態に必要もしくは必須ではない。