(57)【要約】  本出願の実現形態は、データ項目をブロックチェーンネットワークにおいて記憶するための要求を受信することと、応答して、データ項目を複数のデータパーティションに分割すること、各々のデータパーティションをブロックチェーンネットワーク内の異なるノードに割り当てることであって、各々のノードは、割り当てられたデータパーティションを、プライベートで維持される分散型ハッシュテーブル内に記憶する、割り当てること、および、各々のデータパーティションと関連付けられる情報を、ブロックチェーンネットワークにより維持されるブロックチェーンにおいて記憶することであって、情報は、各々のデータパーティションの記憶位置を含む、記憶することとを含む。
2020511808.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンネットワーク内の分散型データ記憶のためのコンピュータによって実施される方法であって、
データ項目を前記ブロックチェーンネットワークにおいて記憶するための要求を受信するステップと、
前記要求の受信に応答して、
前記データ項目を複数のデータパーティションに分割するステップと、
各々のデータパーティションを前記ブロックチェーンネットワーク内の異なるノードに割り当てるステップであって、各々のノードは、前記割り当てられたデータパーティションを、プライベートで維持される分散型ハッシュテーブル内に記憶する、ステップと、
各々のデータパーティションと関連付けられる情報を、前記ブロックチェーンネットワークにより維持されるブロックチェーンにおいて記憶するステップであって、前記情報は、各々のデータパーティションの記憶位置を含む、ステップと
を含む、コンピュータによって実施される方法。
【請求項２】
前記記憶されたデータ項目を取得するための要求を受信するステップと、
前記記憶されたデータ項目を取得するための前記要求の受信に応答して、
各々の記憶されたデータパーティションを、前記割り当てられたノードから、前記ブロックチェーンにおいて記憶された各々のデータパーティションの前記記憶位置を含む前記情報に基づいて取得するステップと、
前記記憶されたデータ項目を、前記記憶されたデータパーティションから再構築するステップと、
前記記憶されたデータ項目を取得するための前記要求への応答を送信するステップであって、前記応答は、前記再構築されたデータ項目を含む、ステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記データ項目を、前記記憶されたデータパーティションから復元するために、命令を、前記ブロックチェーンにおいて記憶するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記記憶されたデータ項目を再構築するステップは、前記取得されたデータパーティションを連結して、前記データ項目のコピーを生成するステップを含む、請求項2に記載の方法。
【請求項５】
前記記憶されたデータ項目を取得するための前記要求の記録を、前記ブロックチェーンにおいて記憶するステップをさらに含む、請求項2に記載の方法。
【請求項６】
各々の記憶されたデータパーティションを取得するステップ、前記記憶されたデータ項目を、前記記憶されたデータパーティションから再構築するステップ、および、取得するための前記要求への前記応答を送信するステップは、前記ブロックチェーンにおいて記憶され、前記ブロックチェーンネットワーク上で実行する、スマートコントラクトにより遂行される、請求項2に記載の方法。
【請求項７】
各々の分散型ハッシュテーブルは、前記データパーティションへのファイルパス、前記データパーティションの値、および、前記関連付けられるノードの識別情報を記憶する、請求項1に記載の方法。
【請求項８】
各々のデータパーティションと関連付けられる情報を前記ブロックチェーンにおいて記憶するステップは、各々のデータパーティションへのパスを前記ブロックチェーン上に記憶するステップを含む、請求項1に記載の方法。
【請求項９】
1つまたは複数のコンピュータに結合され、
データ項目をブロックチェーンネットワークにおいて記憶するための要求を受信することと、
前記要求の受信に応答して、
前記データ項目を複数のデータパーティションに分割すること、
各々のデータパーティションを前記ブロックチェーンネットワーク内の異なるノードに割り当てることであって、各々のノードは、前記割り当てられたデータパーティションを、プライベートで維持される分散型ハッシュテーブル内に記憶する、割り当てること、および、
各々のデータパーティションと関連付けられる情報を、前記ブロックチェーンネットワークにより維持されるブロックチェーンにおいて記憶することであって、前記情報は、各々のデータパーティションの記憶位置を含む、記憶することと
を行うための、前記1つまたは複数のコンピュータにより実行可能な命令によって構成される、非一時的コンピュータ可読記憶媒体。
【請求項１０】
前記記憶されたデータ項目を取得するための要求を受信することと、
前記記憶されたデータ項目を取得するための前記要求の受信に応答して、
各々の記憶されたデータパーティションを、前記割り当てられるノードから、前記ブロックチェーンにおいて記憶された各々のデータパーティションの前記記憶位置を含む前記情報に基づいて取得すること、
前記記憶されたデータ項目を、前記記憶されたデータパーティションから再構築すること、および、
前記記憶されたデータ項目を取得するための前記要求への応答を送信することであって、前記応答は、前記再構築されたデータ項目を含む、送信することと
のための、前記1つまたは複数のコンピュータにより実行可能な命令によってさらに構成される、請求項9に記載の非一時的コンピュータ可読記憶媒体。
【請求項１１】
前記データ項目を、前記記憶されたデータパーティションから復元するために、命令を、前記ブロックチェーンにおいて記憶することのための、前記1つまたは複数のコンピュータにより実行可能な命令によって構成される、請求項9に記載の非一時的コンピュータ可読記憶媒体。
【請求項１２】
前記記憶されたデータ項目を再構築することは、前記取得されたデータパーティションを連結して、前記データ項目のコピーを生成することを含む、請求項10に記載の非一時的コンピュータ可読記憶媒体。
【請求項１３】
前記記憶されたデータ項目を取得するための前記要求の記録を、前記ブロックチェーンにおいて記憶することのための、前記1つまたは複数のコンピュータにより実行可能な命令によって構成される、請求項10に記載の非一時的コンピュータ可読記憶媒体。
【請求項１４】
各々の記憶されたデータパーティションを取得すること、前記記憶されたデータ項目を、前記記憶されたデータパーティションから再構築すること、および、取得するための前記要求への前記応答を送信することは、前記ブロックチェーンにおいて記憶され、前記ブロックチェーンネットワーク上で実行する、スマートコントラクトにより遂行される、請求項10に記載の非一時的コンピュータ可読記憶媒体。
【請求項１５】
各々の分散型ハッシュテーブルは、前記データパーティションへのファイルパス、前記データパーティションの値、および、前記関連付けられるノードの識別情報を記憶する、請求項9に記載の非一時的コンピュータ可読記憶媒体。
【請求項１６】
各々のデータパーティションと関連付けられる情報を前記ブロックチェーンにおいて記憶することは、各々のデータパーティションへのパスを前記ブロックチェーン上に記憶することを含む、請求項9に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
1つまたは複数のコンピュータ、ならびに、
前記1つまたは複数のコンピュータに結合され、
データ項目をブロックチェーンネットワークにおいて記憶するための要求を受信することと、
前記要求の受信に応答して、
前記データ項目を複数のデータパーティションに分割すること、
各々のデータパーティションを前記ブロックチェーンネットワーク内の異なるノードに割り当てることであって、各々のノードは、前記割り当てられたデータパーティションを、プライベートで維持される分散型ハッシュテーブル内に記憶する、割り当てること、および、
各々のデータパーティションと関連付けられる情報を、前記ブロックチェーンネットワークにより維持されるブロックチェーンにおいて記憶することであって、前記情報は、各々のデータパーティションの記憶位置を含む、記憶することと
を行うための、前記1つまたは複数のコンピュータにより実行可能な命令によって構成される、1つまたは複数のコンピュータ可読メモリ
を備える、システム。
【請求項１８】
前記記憶されたデータ項目を取得するための要求を受信することと、
前記記憶されたデータ項目を取得するための前記要求の受信に応答して、
各々の記憶されたデータパーティションを、前記割り当てられるノードから、前記ブロックチェーンにおいて記憶された各々のデータパーティションの前記記憶位置を含む前記情報に基づいて取得すること、
前記記憶されたデータ項目を、前記記憶されたデータパーティションから再構築すること、および、
前記記憶されたデータ項目を取得するための前記要求への応答を送信することであって、前記応答は、前記再構築されたデータ項目を含む、送信することと
のための、前記1つまたは複数のコンピュータにより実行可能な命令によってさらに構成される、請求項17に記載のシステム。
【請求項１９】
前記データ項目を、前記記憶されたデータパーティションから復元するために、命令を、前記ブロックチェーンにおいて記憶することのための、前記1つまたは複数のコンピュータにより実行可能な命令によって構成される、請求項17に記載のシステム。
【請求項２０】
前記記憶されたデータ項目を再構築することは、前記取得されたデータパーティションを連結して、前記データ項目のコピーを生成することを含む、請求項18に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
さらにはコンセンサスネットワークおよび/またはブロックチェーンネットワークと呼称され得る、分散型台帳システム(DLS)は、参加するエンティティが、セキュアに、および不変に、データを記憶することを可能にする。DLSは、何らの個別の使用事例(例えば、暗号通貨)にも言及することなく、ブロックチェーンネットワークと普通は呼称される。ブロックチェーンネットワークの例タイプは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、およびコンソーシアムブロックチェーンネットワークを含み得る。パブリックブロックチェーンネットワークは、DLSを使用し、コンセンサスプロセスに参加するすべてのエンティティに対してオープンである。プライベートブロックチェーンネットワークは、読み出しおよび書き込み許可を中央で制御する、個別のエンティティに対して提供される。コンソーシアムブロックチェーンネットワークは、コンセンサスプロセスを制御するエンティティの選択群に対して提供され、アクセス制御層を含む。
【０００２】
一部の状況において、ブロックチェーンの、各々のエンティティは、それ自体のデータを、例えばプライベートハッシュテーブル内で記憶および制御する。そのようなデータ記憶体系は、データセキュリティおよびプライバシーを増大するが、その体系は、データ共有およびエンティティ協調を困難にする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本出願の実現形態は、ブロックチェーン上の分散型データ記憶のためのコンピュータによって実施される方法を含む。より詳しくは、本出願の実現形態は、分散型ハッシュテーブルおよびマルチパーティ計算を使用して、ブロックチェーン上のデータセキュリティおよびデータ共有を改善することに向けられる。
【課題を解決するための手段】
【０００４】
一部の実現形態において、アクションは、データ項目をブロックチェーンネットワークにおいて記憶するための要求を受信することと、応答して、データ項目を複数のデータパーティションに分割すること、各々のデータパーティションをブロックチェーンネットワーク内の異なるノードに割り当てることであって、各々のノードは、割り当てられたデータパーティションを、プライベートで維持される分散型ハッシュテーブル内に記憶する、割り当てること、および、各々のデータパーティションと関連付けられる情報を、ブロックチェーンネットワークにより維持されるブロックチェーンにおいて記憶することであって、情報は、各々のデータパーティションの記憶位置を含む、記憶することと、記憶されたデータ項目を取得するための要求を受信することと、応答して、各々の記憶されたデータパーティションを、割り当てられるノードから、ブロックチェーンにおいて記憶された各々のデータパーティションの位置を含む情報に基づいて取得すること、記憶されたデータ項目を、記憶されたデータパーティションから再構築すること、および、記憶されたデータ項目を取得するための要求への応答を送信することであって、応答は、再構築されたデータ項目を含む、送信することとを含む。他の実現形態は、コンピュータ記憶デバイス上で符号化される方法のアクションを遂行するように構成される、対応するシステム、装置、およびコンピュータプログラムを含む。
【０００５】
これらおよび他の実現形態は、各々任意選択で、後に続く特徴的機能のうちの1つまたは複数を含み得る。
【０００６】
一部の事例において、各々のデータパーティションと関連付けられる情報をブロックチェーンにおいて記憶することは、各々のデータパーティションへのパスをブロックチェーン上に記憶することを含む。
【０００７】
一部の実現形態において、データ項目を、記憶されたデータパーティションから復元するために、命令が、ブロックチェーンにおいて記憶され得る。
【０００８】
一部の事例において、記憶されたデータ項目を再構築することは、取得されたデータパーティションを連結して、データ項目のコピーを生成することを含む。
【０００９】
一部の事例において、記憶されたデータ項目を取得するための要求の記録が、ブロックチェーンにおいて記憶される。
【００１０】
一部の実現形態において、各々の記憶されたデータパーティションを取得すること、記憶されたデータ項目を、記憶されたデータパーティションから再構築すること、および、取得するための要求への応答を送信することは、ブロックチェーンにおいて記憶され、ブロックチェーンネットワーク上で実行する、スマートコントラクトにより遂行される。
【００１１】
一部の事例において、各々の分散型ハッシュテーブルは、データパーティションへのファイルパス、データパーティションの値、および、関連付けられるノードの識別情報を記憶する。
【００１２】
一部の実現形態は、非一時的コンピュータ可読記憶媒体であって、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサにより実行されるときに、1つまたは複数のプロセッサが、上記で説明されたアクションによる動作を遂行することを引き起こす、その記憶媒体上に記憶された命令を有する、非一時的コンピュータ可読記憶媒体を含み得る。
【００１３】
一部の実現形態は、コンピューティングデバイスと、コンピュータ可読記憶デバイスであって、コンピューティングデバイスに結合され、コンピューティングデバイスにより実行されるときに、コンピューティングデバイスが、上記で説明されたアクションによる動作を遂行することを引き起こす、その記憶デバイス上に記憶された命令を有する、コンピュータ可読記憶デバイスとを備えるシステムを含み得る。
【００１４】
本出願は、さらには、1つまたは複数の非一時的コンピュータ可読記憶媒体であって、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサにより実行されるときに、1つまたは複数のプロセッサが、本明細書において提供される方法の実現形態による動作を遂行することを引き起こす、それらの記憶媒体上に記憶された命令を有する、1つまたは複数の非一時的コンピュータ可読記憶媒体を提供する。
【００１５】
本出願は、本明細書において提供される方法を実現するためのシステムをさらに提供する。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合されるコンピュータ可読記憶媒体であって、1つまたは複数のプロセッサにより実行されるときに、1つまたは複数のプロセッサが、本明細書において提供される方法の実現形態による動作を遂行することを引き起こす、その記憶媒体上に記憶された命令を有する、コンピュータ可読記憶媒体とを含む。
【００１６】
本出願による方法は、本明細書において説明される態様および特徴的機能の任意の組み合わせを含み得るということが察知される。すなわち、本出願による方法は、本明細書において具体的に説明される態様および特徴的機能の組み合わせに制限されるのではなく、さらには、提供される態様および特徴的機能の任意の組み合わせを含む。
【００１７】
本出願の1つまたは複数の実現形態の詳細が、付随する図面、および、下記の説明において論述される。本出願の他の特徴的機能および利点は、説明および図面から、ならびに、特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１８】
【図１】本出願の実現形態を実行するために使用され得る例環境を図示する図である。
【図２】本出願の実現形態による例概念アーキテクチャを図示する図である。
【図３】ブロックチェーン上の分散型データ記憶体系を実現する例システムを図示する図である。
【図４】本出願の実現形態によって実行され得る例プロセスを図示する図である。
【発明を実施するための形態】
【００１９】
様々な図面においての同類の参照符号は、同類の要素を指示する。
【００２０】
本出願の実現形態は、ブロックチェーン上の分散型データ記憶のためのコンピュータによって実施される方法を含む。より詳しくは、本出願の実現形態は、分散型ハッシュテーブルおよびマルチパーティ計算を使用して、ブロックチェーン上のデータセキュリティおよびデータ共有を改善することに向けられる。一部の実現形態において、アクションは、データ項目をブロックチェーンネットワークにおいて記憶するための要求を受信することと、応答して、データ項目を複数のデータパーティションに分割すること、各々のデータパーティションをブロックチェーンネットワーク内の異なるノードに割り当てることであって、各々のノードは、割り当てられたデータパーティションを、プライベートで維持される分散型ハッシュテーブル内に記憶する、割り当てること、および、各々のデータパーティションと関連付けられる情報を、ブロックチェーンネットワークにより維持されるブロックチェーンにおいて記憶することであって、情報は、各々のデータパーティションの記憶位置を含む、記憶することと、記憶されたデータ項目を取得するための要求を受信することと、応答して、各々の記憶されたデータパーティションを、割り当てられるノードから、ブロックチェーンにおいて記憶された各々のデータパーティションの位置を含む情報に基づいて取得すること、記憶されたデータ項目を、記憶されたデータパーティションから再構築すること、および、記憶されたデータ項目を取得するための要求への応答を送信することであって、応答は、再構築されたデータ項目を含む、送信することとを含む。
【００２１】
本出願の実現形態に対するさらなる背景状況を提供すると、および、上記で紹介されたように、さらにはコンセンサスネットワーク(例えば、ピアツーピアノードから編成される)およびブロックチェーンネットワークと呼称され得る、分散型台帳システム(DLS)は、参加するエンティティが、セキュアに、および不変に、トランザクションを履行し、データを記憶することを可能にする。用語ブロックチェーンは、一般的にはビットコイン暗号通貨ネットワークと関連付けられるが、ブロックチェーンは、本明細書において、何らの個別の使用事例にも言及なしに、DLSを一般的に指すように使用される。上記で紹介されたように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。
【００２２】
パブリックブロックチェーンネットワークにおいて、コンセンサスプロセスは、コンセンサスネットワークのノードにより制御される。例えば、数百の、数千の、数百万でさえあるエンティティが、パブリックブロックチェーンネットワークと協調することができ、それらのエンティティの各々は、パブリックブロックチェーンネットワーク内の少なくとも1つのノードを動作させる。よって、パブリックブロックチェーンネットワークは、参加するエンティティに関してパブリックネットワークと考えられ得る。一部の例において、エンティティ(ノード)の大多数は、ブロックが、有効であり、ブロックチェーンネットワークのブロックチェーン(分散型台帳)に追加されるために、あらゆるブロックに署名しなければならない。例パブリックブロックチェーンネットワークは、ピアツーピア決済ネットワークであるビットコインネットワークを含む。ビットコインネットワークは、ブロックチェーンと呼称される分散型台帳を活用する。上記で特記されたように、用語ブロックチェーンは、しかしながら、ビットコインネットワークへの個別の言及なしに、分散型台帳を一般的に指すように使用される。
【００２３】
一般的に、パブリックブロックチェーンネットワークは、パブリックトランザクションをサポートする。パブリックトランザクションは、パブリックブロックチェーンネットワークの中のノードのすべてと共有され、グローバルブロックチェーンにおいて記憶される。グローバルブロックチェーンは、すべてのノードにわたって複製されるブロックチェーンである。すなわち、すべてのノードは、グローバルブロックチェーンに関して完全状態コンセンサスにある。コンセンサス(例えば、ブロックチェーンへのブロックの追加に対する合意)を達成するために、コンセンサスプロトコルが、パブリックブロックチェーンネットワークの中で実現される。例コンセンサスプロトコルは、制限なしに、ビットコインネットワークにおいて実現されるプルーフオブワーク(POW)を含む。
【００２４】
一般的に、プライベートブロックチェーンネットワークは、読み出しおよび書き込み許可を中央で制御する、個別のエンティティに対して提供される。エンティティは、どのノードがブロックチェーンネットワークに参加することができるかを制御する。その結果、プライベートブロックチェーンネットワークは、誰がネットワークに参加することを可能とされるかに関して、および、その誰かの参加のレベル(例えば、所定のトランザクションにおいてのみ)に関して制約をかける許可ネットワークと一般的に呼称される。様々なタイプのアクセス制御機構が使用され得る(例えば、新しいエンティティを加えることに関する既存の参加者投票、規制の権限をもつものが、受け入れを制御することができる)。
【００２５】
一般的に、コンソーシアムブロックチェーンネットワークは、参加するエンティティの間でプライベートである。コンソーシアムブロックチェーンネットワークにおいて、コンセンサスプロセスは、ノードの、権限を与えられたセットにより制御され、1つまたは複数のノードは、それぞれのエンティティ(例えば、金融機関、保険会社)により動作させられる。例えば、十(10)のエンティティ(例えば、金融機関、保険会社)のコンソーシアムが、コンソーシアムブロックチェーンネットワークを動作させることができ、それらのエンティティの各々は、コンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを動作させる。よって、コンソーシアムブロックチェーンネットワークは、参加するエンティティに関してプライベートネットワークと考えられ得る。一部の例において、各々のエンティティ(ノード)は、ブロックが、有効であり、ブロックチェーンに追加されるために、あらゆるブロックに署名しなければならない。一部の例において、エンティティ(ノード)の少なくともサブセット(例えば、少なくとも7つのエンティティ)は、ブロックが、有効であり、ブロックチェーンに追加されるために、あらゆるブロックに署名しなければならない。
【００２６】
本出願の実現形態は、本明細書において、参加するエンティティの間でパブリックであるパブリックブロックチェーンネットワークを参照して、さらに詳細に説明される。しかしながら、本出願の実現形態は、任意の適切なタイプのブロックチェーンネットワークにおいて現実化され得るということが思索される。
【００２７】
本出願の実現形態は、本明細書において、上記の背景状況に鑑みて、さらに詳細に説明される。より詳しくは、および、上記で紹介されたように、本出願の実現形態は、分散型ハッシュテーブルおよびマルチパーティ計算を使用して、ブロックチェーン上のデータセキュリティおよびデータ共有を改善することに向けられる。
【００２８】
一部の実現形態において、データ項目が、異なる部分に分割され、各々の部分が、ブロックチェーンネットワークに参加するエンティティのハッシュテーブル内に記憶される。各々のエンティティ、または、外側のサービスは、ブロックチェーン上に展開されるプログラム、例えばスマートコントラクトを使用して、データをビューし、データに関する動作を遂行することができる。結果として、データ全体へのアクセス権を有するエンティティはただの1つもないが、各々のエンティティは、それでも、データの所定の測定値を得ることができる。
【００２９】
図1は、本出願の実現形態を実行するために使用され得る例環境100を図示する。一部の例において、例環境100は、エンティティがブロックチェーンネットワーク102に参加することを可能にする。ブロックチェーンネットワーク102は、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークであり得る。例環境100は、コンピューティングデバイス106、108、およびネットワーク110を含む。一部の例において、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、または、それらの組み合わせを含み、ウェブサイト、ユーザデバイス(例えば、コンピューティングデバイス)、およびバックエンドシステムを接続する。一部の例において、ネットワーク110は、ワイヤードおよび/またはワイヤレス通信リンクを介してアクセスされ得る。
【００３０】
図示される例において、コンピューティングシステム106および108は、各々、ブロックチェーンネットワーク102内のノードとしての参加を可能にする、任意の適切なコンピューティングシステムを含み得る。例コンピューティングデバイスは、制限なしに、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含む。一部の例において、コンピューティングシステム106および108は、各々、ブロックチェーンネットワーク102と相互作用するための、1つまたは複数のコンピュータ実現サービスをホストする。例えば、コンピューティングシステム106は、第1のエンティティ(例えば、ユーザA)のコンピュータ実現サービス、例えるなら、第1のエンティティが、1つまたは複数の他のエンティティ(例えば、他のユーザ)との、その第1のエンティティのトランザクションを管理するために使用するトランザクション管理システムをホストすることができる。コンピューティングシステム108は、第2のエンティティ(例えば、ユーザB)のコンピュータ実現サービス、例えるなら、第2のエンティティが、1つまたは複数の他のエンティティ(例えば、他のユーザ)との、その第2のエンティティのトランザクションを管理するために使用するトランザクション管理システムをホストすることができる。図1の例において、ブロックチェーンネットワーク102は、ノードのピアツーピアネットワークとして表され、コンピューティングシステム106および108は、それぞれ、ブロックチェーンネットワーク102に参加する、第1のエンティティおよび第2のエンティティのノードを提供する。
【００３１】
図2は、本出願の実現形態による例概念アーキテクチャ200を図示する。例概念アーキテクチャ200は、エンティティ層202、ホストされるサービス層204、およびブロックチェーンネットワーク層206を含む。図示される例において、エンティティ層202は、3つのエンティティ、Entity_1(E1)、Entity_2(E2)、およびEntity_3(E3)を含み、各々のエンティティは、それぞれのトランザクション管理システム208を有する。
【００３２】
図示される例において、ホストされるサービス層204は、各々のトランザクション管理システム208に対するインターフェイス210を含む。一部の例において、それぞれのトランザクション管理システム208は、それぞれのインターフェイス210と、ネットワーク(例えば、図1のネットワーク110)を介して、プロトコル(例えば、ハイパーテキスト転送プロトコルセキュア(HTTPS))を使用して通信する。一部の例において、各々のインターフェイス210は、それぞれのトランザクション管理システム208と、ブロックチェーンネットワーク層206との間の通信接続を提供する。より詳しくは、インターフェイス210は、ブロックチェーンネットワーク層206のブロックチェーンネットワーク212と通信する。一部の例において、インターフェイス210とブロックチェーンネットワーク層206との間の通信は、リモートプロシージャコール(RPC)を使用して履行される。一部の例において、インターフェイス210は、それぞれのトランザクション管理システム208に対して、ブロックチェーンネットワークノードを「ホストする」。例えば、インターフェイス210は、ブロックチェーンネットワーク212へのアクセスのためのアプリケーションプログラミングインターフェイス(API)を提供する。
【００３３】
本明細書において説明されるように、ブロックチェーンネットワーク212は、不変に情報をブロックチェーン216内に記録する複数のノード214を含むピアツーピアネットワークとして提供される。単一のブロックチェーン216が概略的に図示されるが、ブロックチェーン216の複数個のコピーが提供され、ブロックチェーンネットワーク212にわたって維持される。例えば、各々のノード214が、ブロックチェーンのコピーを記憶する。一部の実現形態において、ブロックチェーン216は、ブロックチェーンネットワークに参加する2つ以上のエンティティの間で遂行されるトランザクションと関連付けられる情報を記憶する。
【００３４】
図3は、ブロックチェーンネットワークにおいての分散型データ記憶体系を実現する例システム300を図示する。システム300は、データをアプリケーション308に提供するための、ブロックチェーンネットワーク、例えば、図2のブロックチェーンネットワーク212を含む。ブロックチェーンネットワーク内の各々のエンティティ、例えばノード214a〜214cは、ブロックチェーン216上で公開されないプライベートデータを記憶するための分散型ハッシュテーブル(DHT)を維持する。例えば、ノード214bは、DHT304bと関連付けられ、ノード214cは、異なるDHT304cと関連付けられる。
【００３５】
一部の実現形態において、データA 302をブロックチェーンネットワーク212において記憶することを望むユーザは、最初に、データA 302を2つ以上の断片、例えば、A1 302a、A2 302b、およびA3 302cにパーティション化する。パーティション化されたデータの各々は、異なるノードに送信され、ノードのDHT内で維持される。例えば、A1 302aは、ノード214aと関連付けられるDHT304a内に記憶され、A2 302bは、ノード214bと関連付けられるDHT304b内に記憶され、A3 302cは、ノード214cと関連付けられるDHT304c内に記憶される。それゆえに、ユーザのデータは、非中央集権型の様式で記憶され、セキュアなままであり、なぜならば、個々の記憶ノードのうちのどれもユーザのデータへのフルアクセス権を有さないからである。ユーザのデータは、下記で、および、図4に関して説明されるように、信頼されるサービスがそれぞれの記憶ノードからの個々のデータパーティションを要求および受信するときに復元されるのみである。
【００３６】
各々のノードは、記憶されたパーティション化されたデータへのパスをブロックチェーン上で公開することができる。例えば、データAが、パーティション化され、ブロックチェーンネットワーク212において記憶された後、ブロックチェーン216において記憶されたブロックチェーントランザクションが、パーティション化されたデータの、各々の部分の位置を記録することができ、位置は、データを記憶するノード、および、ノードと関連付けられるDHT内の内部ファイルパスを含む。一部の実現形態において、ファイルパスは、ユニフォームリソースロケータ(URL)、または、ネットワーク上のデータ位置を識別するための他の文字列である。このブロックチェーントランザクションは、次いで、ブロックチェーン216の最新のブロック内に、そのブロックチェーントランザクションをブロックチェーンネットワーク212内のすべてのノードにビュー可能にするように含められる。データAの記憶することをサマリ化する(summarize)例ブロックチェーントランザクションが、下記のtable 1(表1)において示される。
【００３７】
【表１】
2020511808.tif 000003
【００３８】
データA 302を使用するために、サービス310が、アプリケーション308に、パーティション化されたデータをブロックチェーンネットワーク212から集めるように要求する。例えば、アプリケーション308は、ブロックチェーン216において記憶され、ブロックチェーンネットワーク212上で実行する、スマートコントラクトプログラムであり得る。アプリケーション308は、最初に、ブロックチェーン216を探索して、どこにパーティション化されたデータの各々が記憶されたかを突き止めることができ、次いで、データA 302のコピーを取得および生成する。1つの例において、アプリケーション308は、パーティション化されたデータA1 302a、A2 302b、およびA3 302cを連結して、データA 302のコピーを生成することができる。別の例において、アプリケーション308は、パーティション化されたデータに関するサマリ動作を遂行して、データA 302を復元することができる。一部の事例において、サービス310は、データA 302の生成されたコピーをアプリケーション308から受信するが、サービス310は、何らの個々のデータパーティションへもアクセス権を有さない。結果として、このアクセス体系は、個々のノードに関するデータセキュリティおよびデータプライバシーを保護する。1つの例において、各々のノードは、個別の銀行においてのユーザの金融トランザクションを記憶する銀行を表すことができる。サービスは、ユーザに対する住宅担保貸付を、ユーザの過去の金融トランザクションに基づいて決定することを試行する。サービスは、ユーザの集約された金融トランザクション、例えばデータA 302へのアクセス権を有するが、サービスは、任意の個別の銀行においてのユーザの金融トランザクション、例えば、パーティション化されたデータA1 302a、A2 302b、およびA3 302cを調べない。
【００３９】
一部の事例において、データAの記憶することをサマリ化するブロックチェーントランザクションは、データの、各々のパーティションのハッシュを含み得る。アプリケーション308、または、パーティション化されたデータを処理する別のアプリケーションは、これらのハッシュを使用して、各々のパーティションが、それが最初に記憶されて以来変化させられなかったということを検証することができる。データAの記憶することをサマリ化するブロックチェーントランザクションは、さらには、すべてのパーティションを結び付けることにより形成される、データのフルセットのハッシュを含み得るものであり、そのハッシュは、データが、それが元々パーティション化および記憶されて以来変化させられなかったということを検証するために使用され得る。
【００４０】
一部の事例において、アプリケーション308は、ブロックチェーン216に関する動作を記録することができる。例えば、アプリケーション308は、データを要求したサービス310の識別情報、データ取得動作の成功もしくは失敗、動作の時間、または、動作に関わる他の情報を記録することができる。この情報は、個別のデータ項目が取得される毎に記録するためのアクセスログとして役立つことがある。
【００４１】
一部の実現形態において、アプリケーション308がデータを取得することを終え、トランザクションがブロックチェーンネットワーク212により検証されると、記憶するノードの各々は、ブロックチェーンネットワーク212によりサポートされる、指定された額のデジタル通貨の報酬を与えられ得る。この報酬は、ブロックチェーンネットワーク212内のノードが分散型データ記憶体系に参加するための奨励金として役立つことがある。取得されたデータは、次いで、さらなる動作のためにサービス310に返される。
【００４２】
一部の事例において、データに対する要求は、認証を前提とすることがある。例えば、サービス310は、そのサービス310の識別情報、または他の証明書を、データに対するそのサービス310の要求とともに提供することを要されることがある。システムは、ブロックチェーンネットワークにおいて記憶された各々のデータ項目に対する許可を含み得るものであり、サービス310がデータ項目をビューすることの権限を与えられているということを、証明書に基づいて、パーティション化された断片からデータ項目を再構築するより前に検証することがある。一部の実現形態において、(上記でTable 1(表1)において示される)データAの記憶することをサマリ化するブロックチェーントランザクションは、各々のデータパーティションに対する、または、全部のデータ項目に対する許可情報を含み得る。
【００４３】
一部の事例において、データAの記憶することをサマリ化するブロックチェーントランザクションは、サービス310が、記憶されたデータ項目にアクセスする権限をそのサービス310が与えられているということを証明するために正しく解読しなければならない、データ項目に対する暗号化されたハッシュ値を含み得る。例えば、データ項目を記憶したユーザが、そのデータ項目にアクセスするための許可を伴うただ1つのものであることを望む事例において、ハッシュは、ユーザのパブリックキーによって暗号化され、かくして、ユーザのプライベートキーを使用して解読されるのみであり得る。一部の実現形態において、データ項目それ自体は、パーティション化されブロックチェーンネットワークにおいて記憶されるより前に暗号化され、以て、パーティションが再組立てされ、返されると、正しいキーを伴うエンティティのみが内容を解読することを可能とすることがある。
【００４４】
図4は、本出願の実現形態によって実行され得る例プロセス400を図示する。一部の実現形態において、プロセス400は、1つまたは複数のコンピューティングデバイスを使用して実行される、1つまたは複数のコンピュータ実行可能プログラムを使用して遂行され得る。便宜上、プロセス400を、システム、例えば、図3のシステム300により遂行されているように説明することになる。
【００４５】
システムは、最初に、データ項目をブロックチェーンネットワークにおいて記憶するための要求を受信する(402)。例えば、ユーザは、ブロックチェーンネットワーク内の記憶のために銀行トランザクションデータを発信することができる。本明細書において説明される技法を使用してデータを記憶することは、ブロックチェーンネットワークのセキュリティを改善し得るものであり、なぜならば、データは、非中央集権型の様式で記憶され、データ全体を記憶するブロックチェーンネットワーク内のノードはただの1つもないからである。
【００４６】
要求に応答して、システムは、データ項目を受信し、そのデータ項目を複数のデータパーティションに分割する(404)。例えば、システムは、プログラムを使用して、データを等しいサイズのチャンクにパーティション化する、または、基づくデータを、ユーザにより指定されるいくつかのチャンクにパーティション化することができる。一部の事例において、システムは、どのようにデータがパーティション化されたかを記録し、パーティション化方法を、個々のデータパーティションとともに、または、ブロックチェーンの中のエントリ内に記憶することができる。
【００４７】
システムは、次に、各々のデータパーティションをブロックチェーンネットワーク内の異なるノードに割り当て、各々のデータパーティションと関連付けられる情報をブロックチェーンにおいて記憶する(406)。異なるノードは、割り当てられたデータを共有せず、割り当てられたデータを、プライベートで維持される分散型ハッシュテーブル(DHT)内に記憶する。例えば、分散型ハッシュテーブルは、データパーティションへのファイルパス、ノードの識別情報、および、データパーティションの値、または、値のハッシュを記憶することができる。システムは、次いで、各々のデータパーティションと関連付けられる情報をブロックチェーンにおいて記憶する(408)。例えば、システムは、ブロックチェーン上で、各々のデータパーティションへのファイルパスを公開する。結果として、データパーティションの位置は、ブロックチェーンと相互作用する任意のプログラムに対してパブリックとなる。システムは、記憶するノードをランダムな様式で選択して、すべてのデータパーティションへのアクセス権を有し得るノードがただの1つもないということを確実にすることができる。一部の実現形態において、システムは、データの所定の数のパーティションより多くのものを記憶するノードがないように、記憶するノードを選択することができる。結果として、データ項目は、非中央集権型の方式で記憶され、セキュアなままであり、なぜならば、記憶ノードのうちのどれもすべてのデータパーティションへのフルアクセス権を有さないからである。データ項目は、信頼されるサービスがデータパーティションを要求および受信するときに復元されるのみである。
【００４８】
システムは、次いで、記憶されたデータ項目を取得するための要求を受信する(410)。例えば、サードパーティサービスが、ユーザのバンキングトランザクションを調べて、ユーザの信用度を決定するために要求することができる。サービスは、システムによりサポートされるアプリケーションプログラミングインターフェイス(API)を使用して、システムに要求を発信することができる。例えば、要求は、JSONファイルフォーマットの形であり得る。この時点において、データは、パーティション化され、ブロックチェーンネットワークにわたって散在させられる。
【００４９】
パーティション化され、ブロックチェーンネットワーク内の異なるノード上に記憶された、要求されたデータを返すために、システムは、アプリケーション、および、公表されたファイルパスを使用して、各々の記憶されたデータパーティションを、ブロックチェーンネットワーク内の割り当てられるノードから取得する(412)。例えば、アプリケーションは、各々のノードの分散型ハッシュテーブルへのアクセスを認められているスマートコントラクトであり得る。アプリケーションは、指定された命令を遂行して、データをデータパーティションから再構築することができる。一部の事例において、命令は、データが最初にパーティション化されたときにブロックチェーン上に書き込まれる。システムは、次いで、記憶されたデータ項目を、記憶されたデータパーティションから再構築する。例えば、システムは、データパーティションを連結することができ、または、データ値のハッシュを返すことによってなどで、データ値に関する加算を遂行することができる(414)。別の例において、システムは、各々のデータパーティションがデータ項目からのデータの不連続のビットを含むとき、データパーティションをインターレースして、記憶されたデータ項目を再構築することができる。一部の事例において、システムは、さらには、サービスによるデータ要求をブロックチェーン内に記録する。この情報は、記憶するノードを、データパーティションのサイズ、および、記憶域の長さに基づいて補整するために使用され得る。
【００５０】
最後のステップとして、システムは、記憶されたデータ項目を取得するための要求への応答を送信することであって、応答は、再構築されたデータ項目を含む、送信することを行う(416)。例えば、システムは、応答をアプリケーション308に送信することができる。一部の実現形態において、システムは、データパーティション、および、再構築されたデータ項目を、応答を送信する前に監査する。例えば、システムは、データ項目、または、個々のデータパーティションを、ハッシュ値をチェックすることにより監査することができる。
【００５１】
説明される特徴的機能は、デジタル電子回路網の形で、または、コンピュータハードウェア、ファームウェア、ソフトウェアの形で、または、それらの組み合わせの形で実現され得る。装置は、プログラマブルプロセッサによる実行のために、情報担体の形で(例えば、機械可読記憶デバイスの形で)有形に実施される、コンピュータプログラム製品の形で実現され得るものであり、方法ステップは、命令のプログラムを実行して、入力データを基に動作し、出力を生成することにより、説明される実現形態の機能を遂行する、プログラマブルプロセッサにより遂行され得る。説明される特徴的機能は、有利には、データ記憶システム、少なくとも1つの入力デバイス、および、少なくとも1つの出力デバイスから、データおよび命令を受信するために、ならびに、それらのデータ記憶システム、少なくとも1つの入力デバイス、および、少なくとも1つの出力デバイスに、データおよび命令を送信するために結合される少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能である、1つまたは複数のコンピュータプログラムの形で実現され得る。コンピュータプログラムは、直接的または間接的に、所定の活動を遂行する、または、所定の結果をもたらすためにコンピュータにおいて使用され得る、命令のセットである。コンピュータプログラムは、コンパイラ型またはインタプリタ型言語を含む、任意の形式のプログラミング言語の形で書き記され得るものであり、そのコンピュータプログラムは、コンピューティング環境においての使用に適した、スタンドアローンプログラムとして、または、モジュール、コンポーネント、サブルーチン、もしくは別のユニットとしてということを含めて、任意の形式で展開され得る。
【００５２】
命令のプログラムの実行のための適したプロセッサは、例として、汎用および専用の両方のマイクロプロセッサ、ならびに、任意の種類のコンピュータの、唯一のプロセッサ、または、複数個のプロセッサのうちの1つを含む。一般的には、プロセッサは、命令およびデータを、読み出し専用メモリ、またはランダムアクセスメモリ、または両方から受信することになる。コンピュータの要素は、命令を実行するためのプロセッサ、ならびに、命令およびデータを記憶するための1つまたは複数のメモリを含み得る。一般的には、コンピュータは、さらには、データファイルを記憶するための1つもしくは複数の大容量記憶デバイスを含み得る、または、それらの大容量記憶デバイスと通信するように動作可能に結合され得るものであり、そのようなデバイスは、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびに、光学ディスクを含む。コンピュータプログラム命令およびデータを有形に実施するのに適した記憶デバイスは、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびに、CD-ROMおよびDVD-ROMディスクを含む、すべての形式の不揮発性メモリを含む。プロセッサおよびメモリは、特定用途向け集積回路(ASIC)により補完される、または、ASIC内に組み込まれることがある。
【００５３】
ユーザとの相互作用に対する備えを行うために、特徴的機能がコンピュータ上で実現され得るものであり、そのコンピュータは、情報をユーザに表示するための陰極線管(CRT)または液晶ディスプレイ(LCD)モニタなどのディスプレイデバイスと、キーボード、および、マウスまたはトラックボールなどのポインティングデバイスとを有し、それらのキーボードおよびポインティングデバイスにより、ユーザは入力をコンピュータに提供することができる。
【００５４】
特徴的機能は、データサーバなどのバックエンド構成要素を含む、または、アプリケーションサーバもしくはインターネットサーバなどのミドルウェア構成要素を含む、または、グラフィカルユーザインターフェイスもしくはインターネットブラウザを有するクライアントコンピュータなどのフロントエンド構成要素を含む、または、それらの任意の組み合わせである、コンピュータシステムの形で実現され得る。システムの構成要素は、通信ネットワークなどの、任意の形式または媒体のデジタルデータ通信により接続され得る。通信ネットワークの例は、例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ならびに、インターネットを形成するコンピュータおよびネットワークを含む。
【００５５】
コンピュータシステムは、クライアントと、サーバとを含み得る。クライアントおよびサーバは、一般的には、互いから遠隔にあり、典型的には、説明されたものなどのネットワークを通して相互作用する。クライアントおよびサーバの関係性は、それぞれのコンピュータ上で走り、互いとのクライアント-サーバ関係性を有する、コンピュータプログラムによって生起する。
【００５６】
加えて、図において図示される論理フローは、望ましい結果を達成するために、示される個別の順序、または、逐次的な順序を要さない。加えて、他のステップが提供されることがあり、または、ステップが、説明されたフローから除かれることがあり、他の構成要素が、説明されたシステムに追加される、もしくは、説明されたシステムから除去されることがある。よって、他の実現形態が、後に続く特許請求の範囲の範囲内にある。
【００５７】
本出願のいくつかの実現形態を説明した。それでも、様々な修正が、本出願の趣旨および範囲から逸脱することなく行われ得るということが理解されるであろう。よって、他の実現形態が、後に続く特許請求の範囲の範囲内にある。
【符号の説明】
【００５８】
100  例環境
102  ブロックチェーンネットワーク
106  コンピューティングデバイス、コンピューティングシステム
108  コンピューティングデバイス、コンピューティングシステム
110  ネットワーク
200  例概念アーキテクチャ
202  エンティティ層
204  ホストされるサービス層
206  ブロックチェーンネットワーク層
208  トランザクション管理システム
210  インターフェイス
212  ブロックチェーンネットワーク
214  ノード
214a  ノード
214b  ノード
214c  ノード
216  ブロックチェーン
300  例システム、システム
302  データA
302a  A1
302b  A2
302c  A3
304a  DHT
304b  DHT
304c  DHT
308  アプリケーション
310  サービス
400  例プロセス、プロセス
【図１】
2020511808.tif 000004
【図２】
2020511808.tif 000005
【図３】
2020511808.tif 000006
【図４】
2020511808.tif 000007
【国際調査報告】
2020511808.tif 000008
2020511808.tif 000009