(57)【要約】  本明細書で記載される主題の実装形態において、複数のパーティーにまたがってオブジェクトを制御およびトレースするための新しい手法が提案される。ルールセットは、複数のパーティーの確認によって有効化され得る。ルールセットはオブジェクトに関連する操作に対する制約を定義することができる。オブジェクトに関連する操作についての要求を受信すると、要求された操作は複数のパーティーによって合意されたルールセットに基づいて検証され得る。要求された操作が有効であると検証することに応答して、要求された操作は実施されることができ、操作についてのレコードが作成され、複数のパーティーにアクセス可能であるブロックチェーンデータベースに記憶されることができる。
2019533229.tif 000002
【特許請求の範囲】
【請求項１】
複数のパーティーの中の第１のパーティーからオブジェクトに関連する操作についての要求を受信するステップと、
要求された前記操作を前記複数のパーティーによって合意されたルールセットに基づいて検証するステップであって、前記ルールセットは前記オブジェクトに関連する１つまたは複数の操作に対する１つまたは複数の制約を定義する、検証するステップと、
要求された操作が有効であるとの検証に応答して、
前記操作を実施させるステップと、
前記操作についてのレコードを作成するステップであって、該レコードは前記ルールセットに固有である、作成するステップと、
前記レコードを前記複数のパーティーにアクセス可能であるブロックチェーンデータベースに記憶するステップと
を含む方法。
【請求項２】
請求項１に記載の方法であって、さらに、前記複数のパーティーについて前記ルールセットを、
前記複数のパーティーの中の第２のパーティーから、前記ルールセットを設定するための要求を受信するステップと、
前記複数のパーティーに前記ルールセットをブロードキャストするステップと、
前記複数のパーティーのうちの少なくとも１つからの前記ルールセットに対する確認の受信に応答して、前記ルールセットを有効化するステップと
によって設定するステップを含む方法。
【請求項３】
請求項２に記載の方法であって、前記ルールセットを有効化する前記ステップは、
前記複数のパーティーの中の第３のパーティーからの前記ルールセットに対する確認の受信に応答して、前記確認についてのレコードを作成するステップであって、該レコードは、前記第３のパーティーのシグネチャを含む、作成するステップと、
前記確認についての前記レコードを前記ブロックチェーンデータベースに記憶するステップと
を含む、方法。
【請求項４】
請求項１に記載の方法であって、さらに、
前記複数のパーティーの中の第４のパーティーから、前記オブジェクトをトレースする要求を受信するステップと、
前記オブジェクトをトレースする前記要求の受信に応答して、前記オブジェクトに関連する操作についての１つまたは複数のレコードを前記ブロックチェーンデータベースから検索するステップと、
検索された前記レコードを前記第４のパーティーに提供するステップと
を含む方法。
【請求項５】
請求項１に記載の方法であって、要求された前記操作を検証する前記ステップは、さらに、
前記操作についての前記要求の受信に応答して、前記操作に関連する通知を前記複数のパーティーにブロードキャストするステップ
を含む、方法。
【請求項６】
請求項１に記載の方法であって、要求された前記操作を検証する前記ステップは、
前記要求から前記ルールセットへの参照を抽出するステップと、
検証する前記ステップのために、前記参照に基づいて前記ルールセットをアドレス指定するステップと
を含む、方法。
【請求項７】
請求項１に記載の方法であって、前記ルールセットは実行可能コードを含み、要求された前記操作を検証する前記ステップは、
前記コードを実行させることによって、要求された前記操作を検証するステップ
を含む、方法。
【請求項８】
請求項１に記載の方法であって、前記レコードは、さらに、
前記ルールセットに固有のイベント識別情報（ＩＤ）と、
前記ルールセットへの参照と、
前記操作についてのＩＤと、
前記操作の記載と、
前記第１のパーティーのシグネチャと、
前記第１のパーティーの前記シグネチャを復号するための公開鍵と、
前記要求が送信された時間ポイントを示すタイムスタンプと
のうちの少なくとも１つを含む、方法。
【請求項９】
請求項１に記載の方法であって、さらに、
前記操作の状態であって、前記操作が成功裏に実施されたかどうかを示す状態についての問い合わせを受信するステップと、
前記問い合わせに応答して、前記ブロックチェーンデータベースにおける前記操作についての前記レコードに追加される後続のレコードの数を決定するステップと、
後続のレコードの数に基づいて、前記操作の状態を決定するステップと
を含む方法。
【請求項１０】
処理ユニットと、
前記処理ユニットに接続され、前記処理ユニットによる実行のための命令を記憶したメモリと
を含むデバイスであって、前記命令は、前記処理ユニットによって実行されると、前記デバイスに、
複数のパーティーの中の第１のパーティーからオブジェクトに関連する操作についての要求を受信するステップと、
要求された前記操作を前記複数のパーティーによって合意されたルールセットに基づいて検証するステップであって、前記ルールセットは前記オブジェクトに関連する１つまたは複数の操作に対する１つまたは複数の制約を定義する、検証するステップと、
要求された操作が有効であるとの検証に応答して
前記操作を実施させるステップと、
前記操作についてのレコードを作成するステップであって、前記レコードは前記ルールセットに固有である、作成するステップと、
前記レコードを前記複数のパーティーにアクセス可能であるブロックチェーンデータベースに記憶するステップと
を含む動作を実施させる、デバイス。
【請求項１１】
請求項１０に記載のデバイスであって、前記命令は、前記処理ユニットによって実行されると、前記デバイスに、さらに、前記複数のパーティーについて前記ルールセットを、
前記複数のパーティーの中の第２のパーティーから、前記ルールセットを設定する要求を受信するステップと、
前記複数のパーティーに前記ルールセットをブロードキャストするステップと、
前記複数のパーティーの少なくとも１つからの前記ルールセットに対する確認の受信に応答して、前記ルールセットを有効化するステップと
によって設定させる、デバイス。
【請求項１２】
請求項１１に記載のデバイスであって、前記ルールセットを有効化する前記ステップは、
前記複数のパーティーの中の第３のパーティーからの前記ルールセットに対する確認の受信に応答して、前記確認についてのレコードを作成するステップであって、該レコードは前記第３のパーティーのシグネチャを含む、作成するステップと、
前記確認についての前記レコードを前記ブロックチェーンデータベースに記憶するステップと
を含む、デバイス。
【請求項１３】
請求項１０に記載のデバイスであって、前記動作は、さらに、
前記複数のパーティーの中の第４のパーティーから前記オブジェクトをトレースする要求を受信するステップと、
前記オブジェクトをトレースする前記要求の受信に応答して、前記オブジェクトに関連する操作についての１つまたは複数のレコードを前記ブロックチェーンデータベースから検索するステップと、
検索された前記レコードを前記第４のパーティーに提供するステップと
を含む、デバイス。
【請求項１４】
請求項１０に記載のデバイスであって、要求された前記操作を検証する前記ステップは、さらに、
前記操作についての前記要求の受信に応答して、前記操作に関連する通知を前記複数のパーティーにブロードキャストするステップ
を含む、デバイス。
【請求項１５】
請求項１０に記載のデバイスであって、要求された前記操作を検証する前記ステップは、
前記要求から前記ルールセットへの参照を抽出するステップと、
検証する前記ステップのために、前記参照に基づいて前記ルールセットをアドレス指定するステップと
を含む、デバイス。
【請求項１６】
請求項１０に記載のデバイスであって、前記ルールセットは実行可能コードを含み、要求された前記操作を検証する前記ステップは、
前記コードを実行させることによって要求された前記操作を検証するステップ
を含む、デバイス。
【請求項１７】
請求項１０に記載のデバイスであって、前記レコードは、さらに、
前記ルールセットに固有のイベントＩＤと、
前記ルールセットへの参照と、
前記操作についてのＩＤと、
前記操作の記載と、
前記第１のパーティーのシグネチャと、
前記第１のパーティーの前記シグネチャを復号するための公開鍵と、
前記要求が送信された時間ポイントを示すタイムスタンプと
のうちの少なくとも１つを含む、デバイス。
【請求項１８】
請求項１０に記載のデバイスであって、前記動作は、さらに、
前記操作の状態であって、前記操作が成功裏に実施されたかどうかを示す状態についての問い合わせを受信するステップと、
前記問い合わせに応答して、前記ブロックチェーンデータベースにおける前記操作についての前記レコードに追加される後続のレコードの数を決定するステップと、
後続のレコードの数に基づいて、前記操作の状態を決定するステップと
を含む、デバイス。
【請求項１９】
非一時的な機械読み取り可能媒体に有形に記憶され、機械実行可能命令を含むコンピュータプログラム製品であって、前記命令は、デバイス上で実行されると、前記デバイスに、
複数のパーティーの中の第１のパーティーからオブジェクトに関連する操作についての要求を受信するステップと、
要求された前記操作を前記複数のパーティーによって合意されたルールセットに基づいて検証するステップであって、前記ルールセットは前記オブジェクトに関連する１つまたは複数の操作に対する１つまたは複数の制約を定義する、検証するステップと、
要求された操作が有効であるとの検証に応答して、
前記操作を実施させるステップと、
前記操作についてのレコードを作成するステップであって、前記レコードは前記ルールセットに固有である、作成するステップと、
前記レコードを前記複数のパーティーにアクセス可能であるブロックチェーンデータベースに記憶するステップと
をさせる、コンピュータプログラム製品。
【請求項２０】
請求項１９に記載のコンピュータプログラム製品であって、前記命令は、前記デバイス上で実行されると、前記デバイスに、さらに、前記複数のパーティーについて前記ルールセットを、
前記複数のパーティーの中の第２のパーティーから、前記ルールセットを設定する要求を受信するステップと、
前記複数のパーティーに前記ルールセットをブロードキャストするステップと、
前記複数のパーティーの少なくとも１つからの前記ルールセットに対する確認の受信に応答して、前記ルールセットを有効化するステップと
によって設定させる、コンピュータプログラム製品。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]個人、会社、組織または他のエンティティなどの異なるパーティーは、例えば資産、文書、品物などの対象のオブジェクトを記録するために、パーティーの中でたいてい自身のデータベースを有する。各パーティーは自身のレコードを保持し、レコードに互いに一貫性があるかどうかを定期的に互いにチェックする。異なるデータフォーマット、スキーマ、同期の頻度さらにはエラーのため、常に一致に到達することは全てのパーティーにとって、厳しい要求である。組織横断的なアクティビティを系統立てる別のやり方は、全てのレコードを保持するために複数のパーティーの中の１つのパーティーを選択すること、または全てのレコードを記憶するために独立したサードパーティーを探すことを必要とする。しかし、これらの集中型のソリューションでは、中央管理的なパーティーとして活動するパーティーが攻撃に曝されやすい。したがって、異なるパーティーにまたがってオブジェクトの流れまたは分散を確実に制御およびトレースすることは難しいものである。
【発明の概要】
【０００２】
[0002]本明細書で記載される主題の実装形態にしたがって、異なるパーティーにまたがってオブジェクトを制御およびトレースするための新しい手法が提案される。これらのパーティーの１つまたは複数が、これらの異なるパーティーにまたがってオブジェクトの流れを制御およびトレースできるように、ルールセットが複数のパーティーに有効化される。ルールセットは、オブジェクトに関連する１つまたは複数の操作に対する制約を定義する。パーティーからオブジェクトに関連する操作についての要求を受信すると、ルールセットに基づいて要求された操作は検証され得る。要求された操作が有効である場合、操作が実施され、ルールセットに固有の操作についてのレコードが作成される。次いで、レコードは複数のパーティーにアクセス可能であるブロックチェーンデータベースに記憶される。ブロックチェーン台帳またはブロックチェーン分散データベースとも称され得るブロックチェーンデータベースは、絶え間なく増加するデータレコードの一覧を改竄および改版からセキュリティ保護するよう維持する分散データベースである。このように、オブジェクトの分散および流れは異なるパーティー間で効果的および効率的に制御されおよびトレースされることができる。
【０００３】
[0003]発明の概要は、本明細書で記載される主題の実装形態の主要なまたは本質的な特徴を特定することを意図されておらず、本明細書で記載される主題の範囲を限定するために使用されることも意図されていないことを理解されたい。本明細書で記載される主題の他の特徴は以下の記載を通して容易に理解できるであろう。
【０００４】
[0004]本明細書で記載される主題の１つまたは複数の実装形態の詳細が、添付の図面および以下の記載において説明される。本開示の他の特徴、態様、および利点は発明の詳細な説明、図面、および特許請求の範囲より明らかになるであろう。
【図面の簡単な説明】
【０００５】
【図１】[0005]本明細書で記載される主題の実装形態にしたがってシステムを説明する概略図である。
【図２】[0006]本明細書で記載される主題の例示の実装形態にしたがってルールセットを設定するための方法を説明するフローチャートである。
【図３】[0007]本明細書で記載される主題の例示の実装形態にしたがってオブジェクトに関連する操作を実施する方法を説明するフローチャートである。
【図４】[0008]本明細書で記載される主題の例示の実装形態にしたがってオブジェクトに関連する操作を検証する方法を説明するフローチャートである。
【図５】[0009]本明細書で記載される主題の例示の実装形態にしたがってオブジェクトをトレースする方法を説明するフローチャートである。
【図６】[0010]本明細書で記載される主題の例示の実装形態にしたがって操作の状態を問い合わせる方法を説明するフローチャートである。
【図７】[0011]本明細書で記載される主題の１つまたは複数の実装形態を実装するために適切なデバイスのブロック図である。
【図８】[0012]本明細書で記載される主題の例示の実装形態にしたがって、オブジェクトをトレースすることの例示の視覚化を説明する概略図である。
【発明を実施するための形態】
【０００６】
[0013]図面を通して、同一または類似の参照符号は常に同一または類似の要素を指す。
[0014]次に、本明細書で記載される主題の原理がいくつかの例示の実装形態を参照して記載される。これらの実装形態は、本開示の範囲に関していかなる限定も示唆することなく、当業者が本明細書で記載される主題を理解して実装することを助ける説明のためだけに記載されることを理解されたい。本明細書で記載される本開示は以下に記載されるもの以外の様々なやり方で実装され得る。
【０００７】
[0015]本明細書で使用されるように、用語「含む（ｉｎｃｌｕｄｅ）」およびその変形は「それに限定はされないが、含む」を意味する広い意味の用語として読み取られる。用語「基づいて（ｂａｓｅｄ  ｏｎ）」は「少なくとも一部基づいて」として読み取られる。用語「１つの（ａ）」は、そうでないと特定されない限り「１つまたは複数の」として読み取られる。用語「１つの実装形態（ｏｎｅ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎ）および（ａｎ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎ）」は「少なくとも１つの実装形態」として読み取られる。用語「別の実装形態（ａｎｏｔｈｅｒ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎ）」は「少なくとも１つの他の実装形態」として読み取られる。
【０００８】
[0016]さらに、本明細書で記載される主題の文脈においては、用語「第１の」、「第２の」、「第３の」などは、要素の順番に関していかなる限定も示唆することなく、これらの個々の要素または構成要素を指すために使用されることを理解されたい。さらに、そうでないと指定されない限り、第１の要素は第２の要素と同一であってもよく、同一でなくてもよい。他の明示的および暗示的な定義が、以下に含まれてよい。
【０００９】
[0017]上で言及したように、従来、組織、会社、個人などのパーティーはオブジェクトを別のパーティーに転送した後、そのパーティーのオブジェクトを他のパーティーの間で、どのように転送するかを、確実に制御およびトレースすることができないことがある。本明細書で使用されるように、オブジェクトは、文書、品物、資産などを表現する任意のデジタル情報を指してよい。言い換えると、オブジェクトがパーティーの境界を離れた後、それは制御から外れ得る。例えば、慈善組織への寄贈者が、慈善組織に寄付を寄贈した後、自身の寄付の流れを制御およびトレースしたいと思う。このように寄贈者は寄付が意図されたように実際に使用されることを保証したいと思う。別の例として、自身の写真をソーシャルネットワーク上で共有するユーザーはまた、プライバシー目的でその写真の流れを制御およびトレースしたいと思う。しかし、従前のデータベース管理システムでは、各パーティーはそれ自身のデータベースシステムを維持および制御するので、一般にパーティーは自身のオブジェクトの流れを確実におよび容易に制御およびトレースできるようになっていない。
【００１０】
[0018]本明細書で記載される主題の実装形態にしたがって上記および他の潜在的な問題を少なくとも一部解決するために、異なるパーティーにまたがってオブジェクトを制御およびトレースするための新しい手法が提案される。
例示のシステム
[0019]まず、本明細書で記載される主題の例示の実装形態が実装され得る環境１００を説明する概略図を示す図１を参照する。
【００１１】
[0020]示されるように、個人、組織、または任意の他のエンティティなどの複数のパーティー１０１から１０５がある。５つのパーティー１０１〜１０５が示されているが、システム１００は任意の適切な数のパーティーを含むことができることを理解されたい。各パーティーは、例えばラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、サーバー、モバイルデバイス、ウェアラブルデバイスなどのデバイスを有することができる。パーティー１０１〜１０５はネットワークを介して互いに通信可能に接続されていてよい。ネットワークの例としては、限定はされないが、ローカルエリアネットワーク（「ＬＡＮ」）、メトロポリタンエリアネットワーク（「ＭＡＮ」）、ワイドエリアネットワーク（「ＷＡＮ」）、などの有線または無線ネットワークまたはインターネット、通信ネットワーク、近接場通信接続またはその任意の組み合わせが挙げられる。
【００１２】
[0021]環境１００はまた、ブロックチェーンデータベース１１０および管理モジュール１２０を含む。管理モジュール１２０はパーティー１０１から１０５と通信しており、ブロックチェーンデータベース１１０を制御する。すなわち、管理モジュール１２０はデータベース管理システム（ＤＢＭＳ）として考えられてよい。別個の構成要素として示されているが、ブロックチェーンデータベース１１０および管理モジュール１２０は互いに一体化され得ることを理解されたい。具体的には、いくつかの実装形態では、管理モジュール１２０は分散モジュールであってもよい。
【００１３】
[0022]ブロックチェーンデータベース１１０はパーティー１０１から１０５にアクセス可能である。ブロックチェーンデータベース１１０はデータレコードの一覧を改竄および改版からセキュリティ保護するよう維持する分散データベースであってもよい。レコードはデータブロックに編成されており、各ブロックは個々のレコードのまとまりを保有する。例えば、示されるように、レコード１〜６はブロック１３０１、１３０２および１３０Ｎに記憶される。いくつかの実装形態では、ブロックは１つずつ、暗号法によって接続されていてもよい。ブロックはシグネチャを含んでもよく、あるブロックのシグネチャは先行ブロックのシグネチャおよびレコードに依存する。例えば、あるブロックのシグネチャは、先行ブロックのシグネチャおよびレコードのハッシュ値から計算され得る。以下の記載を通して、このデータベース管理システムにおいてオブジェクトの全ての操作は不変であり、制御可能およびトレース可能であることを諒解されたい。
【００１４】
[0023]上述のように、１つまたは複数のオブジェクトは転送され、共有されてよく、またはそうでなければ、パーティー１０１から１０５の間を流れてもよい。オブジェクトの例としては、限定はされないが、電子文書、写真、動画、音声、資産などが挙げられる。各パーティーはオブジェクトに対する操作、例えば、転送すること、共有すること、消費すること、削除することなどを実施することができる。
【００１５】
[0024]本明細書で記載される主題の実装形態にしたがって、パーティーは対象のオブジェクトに関連する１つまたは複数の操作に関する１つまたは複数の制約を記載するためにルールセット１５０を定義することができる。議論を容易にするために、以下の記載では用語「ルール」と「ルールセット」は互換的に使用され得る。
【００１６】
[0025]一般的に言うと、ルールセット１５０はオブジェクトの１つまたは複数の操作に関する任意の態様および／または属性に関連していてもよい。例示のルールセット１５０は以下の段落でさらに記載される。いくつかの実装形態では、ルールセット１５０は例えばオブジェクトの所有者によって開始されてよい。もちろん、任意の他の関連性のあるパーティーが同様にルールセット１５０を提案してもよい。議論を容易にするために、以下の議論ではパーティー１０１がルールセット１５０を開始すると仮定する。
【００１７】
[0026]ルールセット１５０は任意の適切なフォーマットで実装されてもよい。例えば、いくつかの実装形態では、ルールセット１５０は任意の適切なプログラミング言語および／またはスクリプト言語で書かれた実行可能なコードを含むことができる。代替としてまたは追加で、ルールセット１５０は拡張マークアップ言語（ＸＭＬ）テキスト、またはプレーンテキストなどのフォーマットされたテキストで記載されてもよい。ルールセット１５０は管理モジュール１２０によってブロックチェーンデータベース１１０に、または任意の他の適切な記憶装置に記憶されてもよい。
【００１８】
[0027]パーティー１０１からルールセット１５０を設定する要求を受信した後（１６０）、管理モジュール１２０はルールセット１５０をパーティー１０２から１０５にブロードキャストする。パーティーがルールセット１５０を受け入れる場合、パーティーは確認メッセージを管理モジュール１２０に送信し返すことができる。いくつかの実装形態では、システム内の所定の数のパーティーがルールセット１５０を確認する場合、次いで、ルールセット１５０が有効化される。いくつかの実装形態では、管理モジュール１２０は直接または問い合わせがあった時、提案されたルールセット１５０が他のパーティーによって受け入れられたかどうか、したがって有効化されたかどうかに関してパーティー１０１に通知を送信することができる（１６５）。この態様における例示の処理が図２を参照して以下に記載される。
【００１９】
[0028]次いで、パーティーはオブジェクトの操作を開始するための要求を送信することができる。例えば、図１に示される例において、管理モジュール１２０はパーティー１０２からパーティー１０４にオブジェクトを転送する要求を受信する（１７０）。管理モジュール１２０は前もって記憶されていたルールセット１５０に基づいて要求された操作を検証する（１７２）。
【００２０】
[0029]要求された操作が有効であると判断される場合、管理モジュール１２０は操作を実施させる。このイベントでは、管理モジュール１２０は操作についてのレコードを作成し、そのレコードをブロックチェーン１１０に記憶する（１７４）。とりわけこのレコードはルールセット１５０に固有のイベント識別情報（ＩＤ）を含むことができる。すなわち、ルールセット１５０の下でパーティー１０１から１０５によってオブジェクトに対して実施される全ての操作またはアクションは同一のイベントに属し、このイベントに属する全ての操作またはアクションは同一のイベントＩＤでブロックチェーンに記録されることができる。
【００２１】
[0030]分散ブロックチェーンデータベース１１０は複数の記憶装置を含む。１つの記憶装置デバイスに記憶されるレコードは他の記憶装置と同期される。例えば、記憶装置は、それ自身に記憶されるレコードが所定の数の隣接する記憶装置に記憶されるレコードと同一かどうか、チェックする。レコードが同一でない場合、この記憶装置は隣接する記憶装置に記憶されるレコードにしたがって自身に記憶されるレコードを改版する。このように、オブジェクトの流れはトレース可能および不変であり、そのことを以下に議論する。
【００２２】
[0031]いくつかの実装形態では、管理モジュール１２０のインスタンスは、パーティーが任意のインスタンスまたは管理モジュール１２０の全てのインスタンスと対話できるように、分散ブロックチェーンデータベース１１０に実装されてよい。代替として管理モジュール１２０のインスタンスは、個々のパーティーが管理モジュール１２０のそれぞれのインスタンスと対話できるようにそのパーティーに実装されてよい。したがって、ブロックチェーンデータベース１１０の複数の記憶装置に記憶されるレコードは、オブジェクトの流れが制御されおよびトレースされ得るように同期される。
【００２３】
[0032]いくつかの実装形態では、異なるパーティーはそのオブジェクトに関連する１つまたは複数の操作に対する同一の制約を設定することができる。この場合、例えば、異なるパーティーを差別化するために、グローバルに制御されランダムに生成される数がそれぞれのイベントＩＤの生成に考慮されることができる。
【００２４】
[0033]一方、要求された操作が無効である場合、管理モジュール１２０は要求を拒否してもよい。例えば、管理モジュール１２０は直接または問い合わせがあった時、操作が実施されたかどうかを知らせるためノード１０２に通知を送信することができる（１７５）。例示の実装形態が、図３を参照して記載され、およびデジタルコンテンツ分散における例示の実装形態が以下の段落で議論される。
【００２５】
[0034]パーティー１０１などのパーティーが異なるパーティーにまたがってオブジェクトの流れをトレースしたい時、パーティーはトレース要求を送信することができる。要求を受信すると（１８０）、管理モジュール１２０はオブジェクトに関連する操作についての１つまたは複数のレコードをブロックチェーンデータベース１１０から検索する（１８２）。いくつかの実装形態では、トレース要求はイベントＩＤを含むことができ、オブジェクトに関連する操作についてのレコードはイベントＩＤに基づいて検索されることができる。次いで、管理モジュール１２０はパーティー１０１に検索されたレコードを返す（１８５）。したがって、パーティー１０１はそのイベントにおけるオブジェクトの流れまたは分散を通知されることができる。レコードをチェックすることによっていかなる違反も発見されない場合、パーティー１０１はそれにしたがった反応をしてもよい。例示の実装形態が図５を参照して記載される。
例示の処理
[0035]次に、上記の処理のいくつかの例示の実装形態を詳細に議論する。図２は本明細書で記載される主題の例示の実装形態にしたがってルールセット１５０を設定するための方法２００を説明するフローチャートである。２１０において、管理モジュール１２０はルールセット１５０を設定する要求をパーティー１０１から受信する。ルールセット１５０は前もって、例えば、ブロックチェーン１１０に記憶されてもよい。
【００２６】
[0036]上で言及したように、ルールセット１５０はオブジェクトの操作に関する任意の態様および／または属性に関連していてもよい。例えば、ルールセット１５０はパーティーがオブジェクトまたはオブジェクトが転送もしくは共有され得るターゲットを転送し得る最大の回数を特定することができる。別の例として、ルールセット１５０はパーティーがオブジェクトを消費することができる条件を特定することができる。代替としてまたは追加で、ルールセット１５０は異なるパーティーに、オブジェクトのトレースを制御する許可のそれぞれのレベルを特定することができる。例えば、ルールセット１５０はパーティー１０２がパーティー１０１のオブジェクトをトレースすることを妨げることができる。さらになお他の実装形態では、ルールセット１５０はオブジェクトの１つまたは複数の操作に関連して時間制限を設定するためのタイマーを特定することができる。
【００２７】
[0037]例えば、パーティー１０１がオブジェクトをパーティー１０２に転送すること、およびルールセット１５０がそのオブジェクトに関連して時間制限を設定するタイマーを特定することを仮定する。例えば、オブジェクトがパーティーに転送されるまたは提供される場合、タイマーは受信側のパーティーがそのオブジェクトを使用または消費することができる時間期間を特定することができる。受信側のパーティーがこの時間期間内にオブジェクトを消費しない場合、オブジェクトは回収されるか除去されることができる。この場合、まずオブジェクトはパーティー１０２に転送され、その転送に関するレコードが作成されて記憶される。管理モジュール１２０が、パーティー１０２がオブジェクトをルールセット１５０によって設定された所定の時間内にパーティー１０４に転送しないことを検出する場合、管理モジュール１２０はオブジェクトをパーティー１０１に返す操作をトリガーする。
【００２８】
[0038]２２０において、管理モジュール１２０は、他のパーティー１０２から１０５がそれぞれパーティー１０１によって提案されるルールセット１５０を受け入れるかどうかについて決定できるように、ルールセット１５０を複数のパーティーにブロードキャストする。
【００２９】
[0039]２３０において、ルールセット１５０についての確認がパーティー１０２から１０５のうちの少なくとも１つから受信される場合、管理モジュール１２０はルールセット１５０を有効化することができる。さらに、受信された確認のそれぞれについてレコードが作成されて記憶されることができる。例えば、パーティー１０２、１０３および１０５が、それらの確認を管理モジュール１２０に送信することを仮定する。確認はそれぞれパーティー１０２、１０３および１０５のシグネチャを含んでもよい。それぞれの確認について、管理モジュール１２０は例えば、次のうちの少なくとも１つを含むレコードを作成する：ルールセット１５０に固有のイベントＩＤ、確認についての記載、および確認が送信された時間ポイントを示すタイムスタンプ。
【００３０】
[0040]いくつかの実装形態では、確認レコードはルールセット１５０への参照を含んでもよい。参照はポインターまたはｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｉｎｄｉｃａｔｏｒ（ＵＲＩ）として実装されてもよい。代替としてまたは追加で、確認はそれぞれのパーティーのシグネチャおよびシグネチャを復号するための公開鍵を含むことができる。シグネチャは、例えば、イベントＩＤ、公開鍵の暗号化によって、および／または秘密鍵を使用したルールセット１５０への参照によって計算されることができる。
【００３１】
[0041]上述のように、パーティー１０１などの元々のパーティーはそのオブジェクトに関するルールセット１５０を開始することができ、したがってオブジェクトが別のパーティーに転送された後、他のパーティーの間でどのようにオブジェクトが転送されるかを制御することができる。例えば、自身の写真をソーシャルネットワーク上で共有するユーザーは、オブジェクトがある特定されたネットワークのみに転送されることができることを特定するルールセット１５０を開始することができる。そうでない場合、共有する操作は拒否される。このように、写真の分散が制御されることができる。
【００３２】
[0042]図３は本明細書で記載される主題の例示の実装形態にしたがってオブジェクトに対する操作を実施する方法３００を説明するフローチャートである。３１０において、管理モジュール１２０はパーティー１０２などのパーティーからオブジェクトに関連する操作について要求を受信する。例えば、要求された操作は、オブジェクトの少なくとも一部をパーティー１０４などの別のパーティーに転送することか、またはパーティー１０４などの別のパーティーと共有することである。
【００３３】
[0043]要求は、要求された操作の記載またはＩＤ、およびオブジェクトを含むことができる。追加で、いくつかの実装形態では、要求はさらに次のうちの少なくとも１つを含むことができる：パーティー１０１から１０５によって合意されたルールセット１５０に固有のイベントＩＤ、ルールセット１５０への参照、パーティーのシグネチャ、開始する側のパーティー（この例では、パーティー１０２）のシグネチャを復号するための公開鍵、および要求が送信された時間ポイントを示すタイムスタンプ。いくつかの実装形態では、操作についてのＩＤはイベントＩＤ、操作の記載、公開鍵およびルールセット１５０への参照のハッシュ値として計算され得る。
【００３４】
[0044]３２０において、管理モジュール１２０は複数のパーティーによって合意されたルールセット１５０に基づいて要求された操作を検証する。この点に関する例示の実装形態が図４に示される。まず、管理モジュール１２０はブロックチェーンデータベース１１０をチェックして、確認するレコードが存在するか、レコードがパーティー１０２のシグネチャを含むかどうかを判断する。次いで４１０において、管理モジュール１２０は要求からルールセット１５０への参照を抽出することができる。４２０において、管理モジュール１２０はその参照に基づいてルールセット１５０をアドレス指定して検索する。４３０において、管理モジュール１２０は、要求された操作の記載がルールセット１５０に従っているかどうかをチェックすることによって、要求された操作を検証する。例えば、ルールセット１５０が実行可能なコードを含んでいる場合、管理モジュール１２０は、何らかの違反があるかどうかをチェックすることをコードに実行させることができる。
【００３５】
[0045]任意選択で、いくつかの実装形態では、４４０において、管理モジュール１２０は操作に関連する通知を複数のパーティーにブロードキャストすることができる。例えば、管理モジュール１２０は、操作が検証または実施されることを通知するためのルールセット１５０に合意したパーティー１０１から１０５の全てに通知をブロードキャストすることができる。代替として管理モジュール１２０はルールセット１５０において特定されるようなある１つまたは複数のパーティーに通知を送信するだけであってもよい。
【００３６】
[0046]なお図３を参照すると、３２０において要求された操作が有効であると判断される場合、管理モジュール１２０は３３０において操作を実行させ、３４０において操作についてのレコードを作成する。レコードは少なくとも使用されたルールセット１５０に固有のイベントＩＤを含む。追加で、いくつかの実装形態では、操作レコードはさらに次のうちの１つまたは複数を含むことができる：ルールセット１５０への参照、操作についてのＩＤ、操作の記載、関連するパーティーのシグネチャ、シグネチャの復号のための公開鍵、および要求が送信された時間ポイントを示すタイムスタンプ。いくつかの実装形態では、レコードに含まれることになる情報のいくつかまたは全ては、例えば操作要求から得られることができる。
【００３７】
[0047]次いで３５０において、作成されたレコードはブロックチェーンデータベース１１０に記憶される。このように、オブジェクトの全ての操作は一意のイベントＩＤとともに記録される。以下で議論するように、後に、パーティーはそのオブジェクトの流れを、ブロックチェーン１１０でそれぞれのイベントＩＤを有するレコードを探すことによってトレースすることができる。
【００３８】
[0048]一方、３２０においてルールセット１５０が違反されていると判断された場合、管理モジュール１２０は３６０において要求を拒否することができる。このイベントにおいて、操作についてのレコードは作成されない。代替として、他の実装形態において、管理モジュール１２０はなお操作についてのレコードを作成し記憶することができ、このレコードに操作が拒絶されたというインジケーターを割り当てる。
【００３９】
[0049]パーティー１０１などの元々のパーティーからのオブジェクトを受信するパーティー１０２などのパーティーは、ルールセット１５０に基づいて検証される操作を実施できるだけなので、元々のパーティーは、オブジェクトが別のパーティーに転送された後、他のパーティーの間でどのように転送されるかを制御することができる。例えば、ソーシャルネットワークにおいて、共有される写真はその後、その写真の元々の所有者によって特定された他のユーザーだけと共有され得る。別の例として、慈善組織への寄贈者は自身の寄付がある目的によってのみ使用され得ることを特定できる。
【００４０】
[0050]図５は本明細書で記載される主題の例示の実装形態にしたがってオブジェクトをトレースする方法５００を説明するフローチャートである。５１０において、管理モジュール１２０は、複数のパーティー１０１から１０５の中の任意のパーティーからオブジェクトをトレースする要求を受信する。それに応じて、５２０において、管理モジュール１２０はオブジェクトに関連する操作についての１つまたは複数のレコードをブロックチェーンデータベース１１０から検索する。５３０において、管理モジュール１２０は検索されたレコードを問い合わせ側のパーティーに提供する。上述のように、ルールセット１５０に基づいて検証されたオブジェクトの操作は同一のイベントＩＤを共有することができる。すなわち、同一のイベントに属する操作についてのレコードはイベントＩＤによって検索されることができる。これらのレコードに基づいて、問い合わせ側のパーティーは、例えば、オブジェクトはまずパーティー１０１からパーティー１０２に転送され、次いで、パーティー１０２からパーティー１０４に転送されたということなどを知ることができる。いくつかの実装形態では、検索された操作はオブジェクトの流れまたは分散を明確に表すために視覚化されることができる。したがって、パーティーは確実におよび容易にそのオブジェクトの流れをトレースすることができる。図８を参照して視覚化の例を記載する。
【００４１】
[0051]図６は、本明細書で記載される主題の例示の実装形態にしたがって操作の状態を問い合わせる方法６００を説明するフローチャートである。６１０において、管理モジュール１２０は操作の状態についての問い合わせを受信する。本明細書で使用されるように、用語「状態」は操作が成功裏に（正常に；ｓｕｃｃｅｓｓｆｕｌｌｙ）実施されたかどうかを示す。
【００４２】
[0052]６２０において、問い合わせに応答して管理モジュール１２０はブロックチェーンデータベース１１０におけるターゲット操作についてのレコードに追加された後続のレコードの数を決定する。
【００４３】
[0053]６３０において、管理モジュール１２０は後続のレコードの数に基づいて操作の状態を決定（判断；ｄｅｔｅｒｍｉｎｅｓ）する。ブロックチェーンデータベース１１０のメカニズムから、後続の追加されたレコードの数が所定の数を超える場合、そのシステムに関与するパーティーの十分多数によって、操作についてのレコードが受け入れられたことを意味する、ことが知られ得る。この場合、操作は正常であると考えてよい。そうでなければ、追加されたレコードの比較的少数が、操作レコードが他のパーティーによって、例えば、通信遅延および／または他の要因に起因して、恐らく認識されないことを示すことがある。結果として、後続のレコードの数は操作の状態を判断するために使用され得る。いくつかの実装形態では、管理モジュール１２０はそれ自身によって操作の状態を判断することができる。代替として管理モジュール１２０は、パーティー１０２が後続のレコードの数に基づいて操作の状態を判断することができるように、そのレコードに追加される後続のレコードのブロックを問い合わせ側のパーティー１０２に返すことができる。
【００４４】
[0054]結果として、問い合わせ側のパーティーは操作の現在の状態を得ることができ、その状態に基づいてさらなる操作を行うかどうかを判断することができる。例えば、パーティー１０２がその要求された操作が拒否されたことを見つけた場合、パーティー１０２は再度操作に対する別の要求を送信することができる。
【００４５】
[0055]図７は、本明細書で記載される主題の１つまたは複数の実装形態を実装するために適切なデバイス７００のブロック図である。例えば、デバイス７００は図２を参照して上記で議論したように管理モジュール１２０として機能してもよい。デバイス７００は、様々な実装形態が多様な汎用または専用のコンピューティング環境において実装され得るように、本明細書で記載される主題の使用または機能性の範囲に関していかなる限定も示唆することを意図されていないことを理解されたい。
【００４６】
[0056]示されるように、デバイス７００は少なくとも１つの処理ユニット（またはプロセッサ）７１０およびメモリ７２０を含む。処理ユニット７１０はコンピュータ実行可能命令を実行し、現実のまたは仮想のプロセッサであってもよい。マルチプロセッシングシステムにおいては、複数の処理ユニットがコンピュータ実行可能命令を実行して処理能力を向上させる。メモリ７２０は、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）、非揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ）、またはそのいくつかの組み合わせであってもよい。
【００４７】
[0057]図７に示される例において、デバイス７００はさらに記憶装置７３０、１つまたは複数の入力デバイス７４０、１つまたは複数の出力デバイス７５０、および１つまたは複数の通信接続７６０を含む。バス、コントローラ、またはネットワークなどの相互接続メカニズム（図示せず）はデバイス７００の構成要素を相互接続する。典型的には、オペレーティングシステムソフトウェア（図示せず）はデバイス７００で実行する他のソフトウェアに動作環境を提供し、デバイス７００の構成要素のアクティビティを調和させる。
【００４８】
[0058]記憶装置７３０はリムーバブルであってもよく、またはリムーバブルでなくてもよく、フラッシュドライブ、磁気ディスクまたは情報を記憶するために使用され得、かつデバイス７００内でアクセスされ得る任意の他の媒体などの、コンピュータ読み取り可能記憶装置媒体を含むことができる。入力デバイス７４０は様々な異なる入力デバイスのうちの１つまたは複数であってよい。例えば、入力デバイス７４０はマウス、キーボード、トラックボール等、などのユーザーデバイスを含んでもよい。入力デバイス７４０は、会話認識またはタッチおよびスタイラス認識などの１つまたは複数の自然なユーザーインターフェース技法を実装することができる。他の例として、入力デバイス７４０はスキャンデバイス、ネットワークアダプター、またはデバイス７００に入力を提供する別のデバイスを含んでもよい。出力デバイス７５０はディスプレイ、プリンター、スピーカー、ネットワークアダプター、またはデバイス７００からの出力を提供する別のデバイスであってもよい。入力デバイス７４０および出力デバイス７５０はタッチスクリーンまたは仮想現実システムなどの単一のシステムまたはデバイスに組み込まれてもよい。
【００４９】
[0059]通信接続７６０は通信媒体を介して別のコンピューティングエンティティへの通信を可能にする。追加で、デバイス７００の構成要素の機能性は、単一のコンピューティングマシンまたは通信接続を介して通信することができる複数のコンピューティングマシンに実装されてもよい。したがって、デバイス７００は１つまたは複数の他のサーバー、ネットワークＰＣ、または別の共通ネットワークノードへの論理接続を使用して、ネットワーク化された環境（例えば、環境１００）において動作することができる。例として、また限定ではなく、通信媒体は、有線または無線ネットワーク技法を含む。
【００５０】
[0060]本明細書で記載される主題の実装形態にしたがって、管理モジュール１２０はデバイス７００で実行され、オブジェクトに関するイベントに関連する操作を制御およびトレースすることができる。処理ユニット７６０によって実行される時、管理モジュール１２０の少なくとも一部はメモリ７２０にロードされる。管理モジュール１２０の他の部分（もしあれば）は記憶装置７３０または任意の他の非揮発性記憶装置媒体に記憶されてもよい。操作において、管理モジュール１２０は上述のように１つまたは複数の方法／処理を実行することができる。
例示のシナリオ
[0061]次に、デジタル著作権管理（ＣＲＭ）の文脈において本明細書で記載される主題の例示の実装形態を記載する。例えば、パーティー（例えば、パブリッシャー）は、容易におよび確実にそのデジタルコンテンツの流れを制御およびトレースしたいと思い、デジタルコンテンツが意図されたパーティー（例えば、視聴者）によって特定の時間制限内にまたは特定の回数、使用されることを保証したいと思う。デジタルコンテンツの例としては、限定はされないが、動画、音声、画像、レビュー、または任意の他の適切なデジタルコンテンツが挙げられる。
【００５１】
[0062]この目的のため、パブリッシャーはデジタルコンテンツのためのルールセット１５０を規定することができ、管理モジュール１２０を介してルールセット１５０をブロックチェーン１１０に記憶することができる。例えば、ルールセット１５０はパブリッシャーからデジタルコンテンツを受信する任意の視聴者が、デジタルコンテンツを１５日間以内だけ消費してよいことを特定することができる。デジタルコンテンツはこの期間の間だけ、視聴者によってアクセスされまたは消費されることができる。ルールセット１５０は視聴者がデジタルコンテンツを他の視聴者と１０回以下共有することができることを特定することもできる。
【００５２】
[0063]１つの実装形態において、ルールセット１５０を設定および検証することは、実行可能コードとして実装され得る。例示のコードの抜粋を以下に示す：
【００５３】
【数１】
2019533229.tif 000003
【００５４】
[0064]パブリッシャーはコードを設定するための要求を管理モジュール１２０に送信する。管理モジュール１２０は他のパーティーの確認についてのコードをブロードキャストする。次いで、パブリッシャーはデジタルコンテンツを第１の視聴者へ転送するための要求を送信することができる。管理モジュール１２０はブロックチェーンデータベース１１０をチェックして、第１の視聴者がルールセット１５０を受け入れるかどうかを判断する。受け入れる場合、管理モジュール１２０は要求からコードへの参照を抽出し、コードにアクセスし、コードを実行させて何らかの違反があるかどうかをチェックする。
【００５５】
[0065]要求された操作が有効であると判断された場合、管理モジュール１２０はデジタルコンテンツを第１の視聴者に分散させることを許可する。この分散操作についてのレコードが作成され、ブロックチェーン１１０に記憶される。このレコードはルールセット１５０に固有である。上述のように、ルールセット１５０の下でデジタルコンテンツに対してパブリッシャーおよび第１の視聴者によって実施される全ての操作またはアクションは、同一のイベントに属する。結果として、ブロックチェーン１２０内のそれらのレコードは同一のイベントＩＤを有する。
【００５６】
[0066]第１の視聴者がデジタルコンテンツを第２の視聴者と共有したいと仮定する。そのような要求を受信すると、管理モジュール１２０はルールセット１５０に基づいて要求された操作を検証する。より具体的には、この例において、コードを実行することによって管理モジュール１２０は第１の視聴者がすでにそのデジタルコンテンツを他の視聴者と共有した回数をチェックすることができる。回数が１０と等しい場合、管理モジュール１２０はデジタルコンテンツを共有することに対する要求を拒否する。
【００５７】
[0067]追加で、ルールセット１５０によって規定されるように、いかなる視聴者も１５日間だけデジタルコンテンツを消費できる。したがって、デジタルコンテンツを第１の視聴者に分散すると、管理モジュール１２０は第１の視聴者がデジタルコンテンツを所有する時間の長さを監視するためのタイマーを設定することができる。１５日間が過ぎると、管理モジュール１２０はデジタルコンテンツを第１の視聴者から除去する操作をトリガーする。
【００５８】
[0068]さらに、パブリッシャーおよび／または視聴者は彼らが開始した操作の状態をチェックすることができる。例えば、パブリッシャーが異なるパーティーにまたがってデジタルコンテンツの流れをトレースしたい場合、イベントＩＤを含むトレース要求を送信することができる。それに応じて、管理モジュール１２０はそのイベントＩＤを含む１つまたは複数のレコードをブロックチェーンデータベース１１０から検索し、検索されたレコードをパブリッシャーに返す。いくつかの実装形態では、これらのレコードはデジタルコンテンツの流れを表すために視覚化されることができる。例えば、図８はデジタルコンテンツの流れを示すユーザーインターフェース（ＵＩ）８００の概略図を示している。
【００５９】
[0069]ＵＩ８００の示される状態において、パブリッシャー８１０は、デジタルコンテンツがまず第１の視聴者８０２に転送されるデジタルコンテンツの分散経路を明確に見ることができる。そしてパーティー８０２はデジタルコンテンツを視聴者８０３および８０４と共有し、視聴者８０４はさらにそのコンテンツをさらなる視聴者８０５と共有する。ＵＩ８００は本明細書で記載される主題の範囲に関していかなる限定も示唆することなく例示のためだけであることを理解されたい。任意の他の適切な形態のＵＩがエンドユーザーにデジタルコンテンツの流れを提示するために使用することができる。
【００６０】
[0070]このように、パブリッシャーが、デジタルコンテンツが違法にいくつかのパーティー（例えば、競争相手）に分散されることを見つける場合、パブリッシャーはその著作権を保護するためのアクションを取ることができる。したがって、パブリッシャーはそのデジタルコンテンツの流れを効果的および効率的に制御およびトレースすることができる。
【００６１】
[0071]本明細書で記載される主題の精神および原理を説明する目的のため、そのいくつかの具体的な実装形態を上で記載してきた。オブジェクトに関連する１つまたは複数の操作に対する１つまたは複数の制約を定義するルールセットを設定することによって、およびイベントＩＤに基づいてオブジェクトをトレースすることによって、あるパーティーは元々所有していたオブジェクトの流れまたは分散を他のパーティーを越えて、簡易で、確実でかつ信頼できるやり方で、制御およびトレースすることができるようになり得る。
【００６２】
[0072]一般に、様々な例示の実装形態がハードウェアまたは特殊目的の回路、ソフトウェア、論理またはその任意の組み合わせにおいて実装され得る。いくつかの態様はハードウェアに実装されてもよく、一方で他の態様は、コントローラ、マイクロプロセッサまたは他のコンピューティングデバイスによって実行され得るファームウェアまたはソフトウェアに実装されてもよい。本明細書で記載される主題の例示の実装形態の様々な態様がブロック図、フローチャートまたはいくつかの他の図的表現を使用して説明され、記載されるが、本明細書で記載されるブロック、装置、システム、技法または方法は非限定的な例として、ハードウェア、ソフトウェア、ファームウェア、特殊目的の回路もしくは論理、汎用ハードウェアまたはコントローラまたは他のコンピューティングデバイス、またはそのいくつかの組み合わせにおいて実装されてもよいことを諒解されたい。
【００６３】
[0073]本明細書で記載される主題の文脈において、機械読み取り可能媒体は、命令実行システム、装置、またはデバイスによって、またはそれらと関連して使用するためのプログラムを含む、または記憶することができる任意の有形な媒体であってもよい。機械読み取り可能媒体は機械読み取り可能信号媒体または機械読み取り可能記憶装置媒体であってもよい。機械読み取り可能媒体は、限定はされないが、電子的、磁気的、光学的、電磁的、赤外または半導体のシステム、装置、またはデバイス、または上記の任意の適切な組み合わせを含むことができる。機械読み取り可能記憶装置媒体のより具体的な例としては、１つまたは複数のワイヤを有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光学記憶装置デバイス、磁気記憶装置デバイス、または上記の任意の適切な組み合わせが挙げられる。
【００６４】
[0074]本明細書で記載される主題の方法を実行するコンピュータプログラムコードは１つまたは複数のプログラミング言語の任意の組み合わせで記述されることができる。これらのコンピュータプログラムコードは、プログラムコードがコンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行されると、フローチャートおよび／またはブロック図において特定される機能または操作を実装させるように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてよい。プログラムコードは、全体的にコンピュータ上で、部分的にコンピュータ上で、スタンドアロンのソフトウェアパッケージとして、部分的にコンピュータ上でおよび部分的にリモートコンピュータ上で、または全体的にリモートコンピュータ上もしくはサーバー上で実行することもできる。
【００６５】
[0075]さらに、操作は特定の順序で描かれるが、これは、望ましい結果を達成するために、そのような操作が示される特定の順序でもしくは順次に実施されること、または全ての説明した操作が実施されること、を要求するものとして理解されるべきではない。ある状況において、マルチタスキングおよび並列処理は有利であり得る。同様に、いくつかの具体的な実装形態の詳細が上記の議論に含まれるが、これらはいかなる開示の範囲または特許請求され得ることに対する限定と解釈されるべきではなく、むしろ特定の開示の特定の実装形態に固有であり得る特徴の記載として解釈されるべきである。別個の実装形態の文脈において本明細書で記載されるある特徴はまた、単一の実装形態において組み合わせて実装されてもよい。逆に、単一の実装形態の文脈において記載される様々な特徴はまた、別個にまたは任意の適切な部分組み合わせとして複数の実装形態に実装されてもよい。
【００６６】
[0076]次に、説明の目的だけのために、いくつかの例示の実装形態を以下に列挙する。
[0077]いくつかの実装形態では、本明細書で記載される主題は方法として具体化されることができる。方法は、複数のパーティーの中の第１のパーティーからオブジェクトに関連する操作について要求を受信することと、要求された操作を複数のパーティーによって合意されたルールセットに基づいて検証することであって、ルールセットはオブジェクトに関連する１つまたは複数の操作に対する１つまたは複数の制約を定義する、検証することと、要求された操作が有効であると検証することに応答して操作を実施させることと、操作についてのレコードを作成することであって、レコードはルールセットに固有である、作成することと、レコードを複数のパーティーにアクセス可能であるブロックチェーンデータベースに記憶することと、を含む。
【００６７】
[0078]いくつかの実装形態では、方法はさらに、複数のパーティーの中の第２のパーティーからルールセットを設定するための要求を受信することによって、複数のパーティーにルールセットをブロードキャストすることによって、および複数のパーティーのうちの少なくとも１つからルールセットに対する確認を受信することに応答して、ルールセットを有効化することによって、複数のパーティーについてルールセットを設定することを含む。
【００６８】
[0079]いくつかの実装形態では、ルールセットを有効化することは、複数のパーティーの中の第３のパーティーからルールセットに対する確認を受信することに応答して確認についてのレコードを作成することであって、レコードは、第３のパーティーのシグネチャを含む、作成することと、確認についてのレコードをブロックチェーンデータベースに記憶することと、を含む。
【００６９】
[0080]いくつかの実装形態では、方法はさらに、複数のパーティーの中の第４のパーティーから、オブジェクトをトレースする要求を受信することと、オブジェクトをトレースする要求を受信することに応答して、オブジェクトに関連する操作についての１つまたは複数のレコードをブロックチェーンデータベースから検索することと、検索されたレコードを第４のパーティーに提供することと、を含む。
【００７０】
[0081]いくつかの実装形態では、要求された操作を検証することはさらに、操作についての要求を受信することに応答して、操作に関連する通知を複数のパーティーにブロードキャストすることを含む。
【００７１】
[0082]いくつかの実装形態では、要求された操作を検証することは、要求からルールセットへの参照を抽出することと、検証することについての参照に基づいてルールセットをアドレス指定することを含む。
【００７２】
[0083]いくつかの実装形態では、ルールセットは実行可能コードを含み、要求された操作を検証することは、コードを実行させることによって、要求された操作を検証することを含む。
【００７３】
[0084]いくつかの実装形態では、第１のレコードはさらに、次のうちの少なくとも１つを含む：ルールセットに固有のイベント識別情報（ＩＤ）、ルールセットへの参照、操作についてのＩＤ、操作の記載、第１のパーティーのシグネチャ、第１のパーティーのシグネチャを復号するための公開鍵、および第１の要求が送信された時間ポイントを示すタイムスタンプ。
【００７４】
[0085]いくつかの実装形態では、方法はさらに、操作の状態、操作が成功裏に実施されたかどうかを示す状態についての問い合わせを受信することと、問い合わせに応答して、ブロックチェーンデータベースにおける操作についてのレコードに追加される後続のレコードの数を決定することと、後続のレコードの数に基づいて操作の状態を判断することと、を含む。
【００７５】
[0086]いくつかの実装形態では、本明細書で記載される主題はデバイスとして具体化されることができる。デバイスは、処理ユニットおよびメモリを備える。メモリは処理ユニットに接続され、処理ユニットによる実行のための命令を記憶する。命令は、処理ユニットによって実行される時、デバイスに、複数のパーティーの中の第１のパーティーからオブジェクトに関連する操作についての要求を受信することと、複数のパーティーによって合意されたルールセットに基づいて要求された操作を検証することであって、ルールセットはオブジェクトに関連する１つまたは複数の操作に対する１つまたは複数の制約を定義する、検証することと、要求された操作が有効であると検証することに応答して操作を実施させることと、操作についてのレコードを作成することであって、レコードはルールセットに固有である、作成することと、レコードを複数のパーティーにアクセス可能であるブロックチェーンデータベースに記憶することと、をさせる。
【００７６】
[0087]いくつかの実装形態では、命令は、処理ユニットによって実行される時、さらにデバイスに、複数のパーティーの中の第２のパーティーから、ルールセットを設定する要求を受信することによって、複数のパーティーにルールセットをブロードキャストすることによって、および複数のパーティーの少なくともいくつかからルールセットに対する確認を受信することに応答して、ルールセットを有効化することによって、複数のパーティーについてルールセットを設定すること、をさせる。
【００７７】
[0088]いくつかの実装形態では、ルールセットを有効化することは、複数のパーティーの中の第３のパーティーからルールセットに対する確認を受信することに応答して、確認についてのレコードを作成することであって、レコードは第３のパーティーのシグネチャを含む、作成することと、確認についてのレコードをブロックチェーンデータベースに記憶することと、を含む。
【００７８】
[0089]いくつかの実装形態では、命令は、処理ユニットによって実行される時、さらにデバイスに、複数のパーティーの中の第４のパーティーからオブジェクトをトレースする要求を受信することと、オブジェクトをトレースする要求を受信することに応答して、オブジェクトに関連する操作についての１つまたは複数のレコードをブロックチェーンデータベースから検索することと、検索されたレコードを第４のパーティーに提供することと、をさせる。
【００７９】
[0090]いくつかの実装形態では、要求された操作を検証することはさらに、操作についての要求を受信することに応答して、操作に関連する通知を複数のパーティーにブロードキャストすることを含む。
【００８０】
[0091]いくつかの実装形態では、要求された操作を検証することは、要求からルールセットへの参照を抽出することと、検証することについての参照に基づいてルールセットをアドレス指定することと、を含む。
【００８１】
[0092]いくつかの実装形態では、ルールセットは実行可能コードを含み、要求された操作を検証することは、コードを実行させることによって要求された操作を検証することを含む。
【００８２】
[0093]いくつかの実装形態では、レコードはさらに、次のうちの少なくとも１つを含む：ルールセットに固有のイベントＩＤ、ルールセットへの参照、操作についてのＩＤ、操作の記載、第１のパーティーのシグネチャ、第１のパーティーのシグネチャを復号するための公開鍵、および要求が送信された時間ポイントを示すタイムスタンプ。
【００８３】
[0094]いくつかの実装形態では、命令は、処理ユニットによって実行される時、さらにデバイスに：操作の状態、操作が成功裏に実施されたかどうかを示す状態についての問い合わせを受信することと、問い合わせに応答して、ブロックチェーンデータベースにおける操作についてのレコードに追加される後続のレコードの数を決定することと、後続のレコードの数に基づいて操作の状態を判断することと、をさせる。
【００８４】
[0095]いくつかの実装形態では、本明細書で記載される主題はコンピュータプログラム製品として具体化されることができる。コンピュータプログラム製品は有形に非一時的な機械読み取り可能媒体に記憶され、機械実行可能命令を含む。命令はデバイス上で実行される時、デバイスに複数のパーティーの中の第１のパーティーからオブジェクトに関連する操作についての要求を受信することと、複数のパーティーによって合意されたルールセットに基づいて要求された操作を検証することであって、ルールセットはオブジェクトに関連する１つまたは複数の操作に対する１つまたは複数の制約を定義する、検証することと、要求された操作が有効であると検証することに応答して操作を実施させることと、操作についてのレコードを作成することであって、レコードはルールセットに固有である、作成することと、レコードを複数のパーティーにアクセス可能であるブロックチェーンデータベースに記憶することと、をさせる。
【００８５】
[0096]いくつかの実装形態では、命令はデバイス上で実行される時、さらにデバイスに、複数のパーティーの中の第２のパーティーから、ルールセットを設定する要求を受信することによって、複数のパーティーにルールセットをブロードキャストすることによって、および複数のパーティーの少なくともいくつかからルールセットに対する確認を受信することに応答して、ルールセットを有効化することによって、複数のパーティーについてルールセットを設定すること、をさせる。
【００８６】
[0097]いくつかの実装形態では、ルールセットを有効化することは、複数のパーティーの中の第３のパーティーからルールセットに対する確認を受信することに応答して、確認についてのレコードを作成することであって、レコードは第３のパーティーのシグネチャを含む、作成することと、確認についてのレコードをブロックチェーンデータベースに記憶することと、を含む。
【００８７】
[0098]いくつかの実装形態では、命令はデバイス上で実行される時、さらにデバイスに、複数のパーティーの中の第４のパーティーからオブジェクトをトレースする要求を受信することと、オブジェクトをトレースする要求を受信することに応答して、オブジェクトに関連する操作についての１つまたは複数のレコードをブロックチェーンデータベースから検索することと、検索されたレコードを第４のパーティーに提供することと、をさせる。
【００８８】
[0099]いくつかの実装形態では、要求された操作を検証することはさらに、操作についての要求を受信することに応答して、操作に関連する通知を複数のパーティーにブロードキャストすることを含む。
【００８９】
[00100]いくつかの実装形態では、要求された操作を検証することは、要求からルールセットへの参照を抽出することと、検証することについての参照に基づいてルールセットをアドレス指定することとを含む。
【００９０】
[00101]いくつかの実装形態では、ルールセットは実行可能コードを含み、要求された操作を検証することは、コードを実行させることによって要求された操作を検証することを含む。
【００９１】
[00102]いくつかの実装形態では、レコードはさらに、次のうちの少なくとも１つを含む：ルールセットに固有のイベントＩＤ、ルールセットへの参照、操作についてのＩＤ、操作の記載、第１のパーティーのシグネチャ、第１のパーティーのシグネチャを復号するための公開鍵、および要求が送信された時間ポイントを示すタイムスタンプ。
【００９２】
[00103]いくつかの実装形態では、命令はデバイス上で実行される時、さらにデバイスに：操作の状態、操作が成功裏に実施されたかどうかを示す状態についての問い合わせを受信することと、問い合わせに応答して、ブロックチェーンデータベースにおける操作についてのレコードに追加される後続のレコードの数を決定することと、後続のレコードの数に基づいて操作の状態を判断することと、をさせる。
【００９３】
[00104]本開示の前述の例示の実装形態に対する様々な修正、適合が、添付の図面と併せて読む時、前述の記載に照らして関連分野の当業者にとって明らかになるであろう。任意のおよび全ての修正は、なお本開示の非限定的なおよび例示の実装形態の範囲内に入るであろう。さらに、本明細書において説明される本開示の他の実装形態は、本開示のこれらの実装形態の関連する分野の当業者にとって想到されるであろうことであり、前述の記載および図面において提示される教示の利益を有する。
【００９４】
[00105]したがって、本開示の実装形態は開示される具体的な実装形態に限定されるものではないこと、および修正および他の実装形態は添付の特許請求の範囲に含まれることを意図されていることを諒解されたい。本明細書においては特定の用語が使用されているが、それらは一般的および説明的な意味において使用されるのみであって、限定の目的はない。
【図１】
2019533229.tif 000004
【図２】
2019533229.tif 000005
【図３】
2019533229.tif 000006
【図４】
2019533229.tif 000007
【図５】
2019533229.tif 000008
【図６】
2019533229.tif 000009
【図７】
2019533229.tif 000010
【図８】
2019533229.tif 000011
【手続補正書】
【提出日】令和1年9月9日(2019.9.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のパーティーの中の第１のパーティーからオブジェクトに関連する操作についての要求を受信するステップと、
要求された前記操作を前記複数のパーティーによって合意されたルールセットに基づいて検証するステップであって、前記ルールセットは前記オブジェクトに関連する１つまたは複数の操作に対する１つまたは複数の制約を定義する、検証するステップと、
要求された操作が有効であるとの検証に応答して、
前記操作を実施させるステップと、
前記操作についてのレコードを作成するステップであって、該レコードは前記ルールセットに固有である、作成するステップと、
前記レコードを前記複数のパーティーにアクセス可能であるブロックチェーンデータベースに記憶するステップと
を含む方法。
【請求項２】
請求項１に記載の方法であって、さらに、前記複数のパーティーについて前記ルールセットを、
前記複数のパーティーの中の第２のパーティーから、前記ルールセットを設定するための要求を受信するステップと、
前記複数のパーティーに前記ルールセットをブロードキャストするステップと、
前記複数のパーティーのうちの少なくとも１つからの前記ルールセットに対する確認の受信に応答して、前記ルールセットを有効化するステップと
によって設定するステップを含む方法。
【請求項３】
請求項２に記載の方法であって、前記ルールセットを有効化する前記ステップは、
前記複数のパーティーの中の第３のパーティーからの前記ルールセットに対する確認の受信に応答して、前記確認についてのレコードを作成するステップであって、該レコードは、前記第３のパーティーのシグネチャを含む、作成するステップと、
前記確認についての前記レコードを前記ブロックチェーンデータベースに記憶するステップと
を含む、方法。
【請求項４】
請求項１に記載の方法であって、さらに、
前記複数のパーティーの中の第４のパーティーから、前記オブジェクトをトレースする要求を受信するステップと、
前記オブジェクトをトレースする前記要求の受信に応答して、前記オブジェクトに関連する操作についての１つまたは複数のレコードを前記ブロックチェーンデータベースから検索するステップと、
検索された前記レコードを前記第４のパーティーに提供するステップと
を含む方法。
【請求項５】
請求項１に記載の方法であって、要求された前記操作を検証する前記ステップは、さらに、
前記操作についての前記要求の受信に応答して、前記操作に関連する通知を前記複数のパーティーにブロードキャストするステップ
を含む、方法。
【請求項６】
請求項１に記載の方法であって、要求された前記操作を検証する前記ステップは、
前記要求から前記ルールセットへの参照を抽出するステップと、
検証する前記ステップのために、前記参照に基づいて前記ルールセットをアドレス指定するステップと
を含む、方法。
【請求項７】
請求項１に記載の方法であって、前記ルールセットは実行可能コードを含み、要求された前記操作を検証する前記ステップは、
前記コードを実行させることによって、要求された前記操作を検証するステップ
を含む、方法。
【請求項８】
請求項１に記載の方法であって、前記レコードは、さらに、
前記ルールセットに固有のイベント識別情報（ＩＤ）と、
前記ルールセットへの参照と、
前記操作についてのＩＤと、
前記操作の記載と、
前記第１のパーティーのシグネチャと、
前記第１のパーティーの前記シグネチャを復号するための公開鍵と、
前記要求が送信された時間ポイントを示すタイムスタンプと
のうちの少なくとも１つを含む、方法。
【請求項９】
請求項１に記載の方法であって、さらに、
前記操作の状態であって、前記操作が成功裏に実施されたかどうかを示す状態についての問い合わせを受信するステップと、
前記問い合わせに応答して、前記ブロックチェーンデータベースにおける前記操作についての前記レコードに追加される後続のレコードの数を決定するステップと、
後続のレコードの数に基づいて、前記操作の状態を決定するステップと
を含む方法。
【請求項１０】
処理ユニットと、
前記処理ユニットに接続され、前記処理ユニットによる実行のための命令を記憶したメモリと
を含むデバイスであって、前記命令は、前記処理ユニットによって実行されると、前記デバイスに、
複数のパーティーの中の第１のパーティーからオブジェクトに関連する操作についての要求を受信するステップと、
要求された前記操作を前記複数のパーティーによって合意されたルールセットに基づいて検証するステップであって、前記ルールセットは前記オブジェクトに関連する１つまたは複数の操作に対する１つまたは複数の制約を定義する、検証するステップと、
要求された操作が有効であるとの検証に応答して
前記操作を実施させるステップと、
前記操作についてのレコードを作成するステップであって、前記レコードは前記ルールセットに固有である、作成するステップと、
前記レコードを前記複数のパーティーにアクセス可能であるブロックチェーンデータベースに記憶するステップと
を含む動作を実施させる、デバイス。
【請求項１１】
請求項１０に記載のデバイスであって、前記命令は、前記処理ユニットによって実行されると、前記デバイスに、さらに、前記複数のパーティーについて前記ルールセットを、
前記複数のパーティーの中の第２のパーティーから、前記ルールセットを設定する要求を受信するステップと、
前記複数のパーティーに前記ルールセットをブロードキャストするステップと、
前記複数のパーティーの少なくとも１つからの前記ルールセットに対する確認の受信に応答して、前記ルールセットを有効化するステップと
によって設定させる、デバイス。
【請求項１２】
請求項１１に記載のデバイスであって、前記ルールセットを有効化する前記ステップは、
前記複数のパーティーの中の第３のパーティーからの前記ルールセットに対する確認の受信に応答して、前記確認についてのレコードを作成するステップであって、該レコードは前記第３のパーティーのシグネチャを含む、作成するステップと、
前記確認についての前記レコードを前記ブロックチェーンデータベースに記憶するステップと
を含む、デバイス。
【請求項１３】
請求項１０に記載のデバイスであって、前記動作は、さらに、
前記複数のパーティーの中の第４のパーティーから前記オブジェクトをトレースする要求を受信するステップと、
前記オブジェクトをトレースする前記要求の受信に応答して、前記オブジェクトに関連する操作についての１つまたは複数のレコードを前記ブロックチェーンデータベースから検索するステップと、
検索された前記レコードを前記第４のパーティーに提供するステップと
を含む、デバイス。
【請求項１４】
請求項１０に記載のデバイスであって、要求された前記操作を検証する前記ステップは、さらに、
前記操作についての前記要求の受信に応答して、前記操作に関連する通知を前記複数のパーティーにブロードキャストするステップ
を含む、デバイス。
【請求項１５】
請求項１０に記載のデバイスであって、要求された前記操作を検証する前記ステップは、
前記要求から前記ルールセットへの参照を抽出するステップと、
検証する前記ステップのために、前記参照に基づいて前記ルールセットをアドレス指定するステップと
を含む、デバイス。
【請求項１６】
請求項１０に記載のデバイスであって、前記ルールセットは実行可能コードを含み、要求された前記操作を検証する前記ステップは、
前記コードを実行させることによって要求された前記操作を検証するステップ
を含む、デバイス。
【請求項１７】
請求項１０に記載のデバイスであって、前記レコードは、さらに、
前記ルールセットに固有のイベントＩＤと、
前記ルールセットへの参照と、
前記操作についてのＩＤと、
前記操作の記載と、
前記第１のパーティーのシグネチャと、
前記第１のパーティーの前記シグネチャを復号するための公開鍵と、
前記要求が送信された時間ポイントを示すタイムスタンプと
のうちの少なくとも１つを含む、デバイス。
【請求項１８】
請求項１０に記載のデバイスであって、前記動作は、さらに、
前記操作の状態であって、前記操作が成功裏に実施されたかどうかを示す状態についての問い合わせを受信するステップと、
前記問い合わせに応答して、前記ブロックチェーンデータベースにおける前記操作についての前記レコードに追加される後続のレコードの数を決定するステップと、
後続のレコードの数に基づいて、前記操作の状態を決定するステップと
を含む、デバイス。
【請求項１９】
非一時的な機械読み取り可能媒体に有形に記憶され、機械実行可能命令を含むコンピュータプログラムであって、前記命令は、デバイス上で実行されると、前記デバイスに、
複数のパーティーの中の第１のパーティーからオブジェクトに関連する操作についての要求を受信するステップと、
要求された前記操作を前記複数のパーティーによって合意されたルールセットに基づいて検証するステップであって、前記ルールセットは前記オブジェクトに関連する１つまたは複数の操作に対する１つまたは複数の制約を定義する、検証するステップと、
要求された操作が有効であるとの検証に応答して、
前記操作を実施させるステップと、
前記操作についてのレコードを作成するステップであって、前記レコードは前記ルールセットに固有である、作成するステップと、
前記レコードを前記複数のパーティーにアクセス可能であるブロックチェーンデータベースに記憶するステップと
をさせる、コンピュータプログラム。
【請求項２０】
請求項１９に記載のコンピュータプログラムであって、前記命令は、前記デバイス上で実行されると、前記デバイスに、さらに、前記複数のパーティーについて前記ルールセットを、
前記複数のパーティーの中の第２のパーティーから、前記ルールセットを設定する要求を受信するステップと、
前記複数のパーティーに前記ルールセットをブロードキャストするステップと、
前記複数のパーティーの少なくとも１つからの前記ルールセットに対する確認の受信に応答して、前記ルールセットを有効化するステップと
によって設定させる、コンピュータプログラム。
【国際調査報告】
2019533229.tif 000012
2019533229.tif 000013