(57)【要約】  暗号学的に保護された台帳に記憶されている情報及びその情報に関連する状態を提示するために、非リレーショナルデータベースによって実施され得るようなデータベーステーブルが提供される。データベーステーブル要素の意味規則、ならびにその中の様々なオブジェクト間の関係は、スキーマ、データベースエンジン、及び／またはアプリケーション層によって定義され、及び／または実施され得る。例えば、開示された方法及びシステムは、システムの内容の検証のために実装システムの信頼を必要としない資産追跡ツールを実装するために使用することができる。
2019535076.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行方法であって、
実行可能命令で構成される１つまたは複数のコンピュータシステムの制御下で、
ブロックチェーン台帳への第１の参照をコミットすることであって、前記第１の参照が少なくとも資産参照を含み、前記ブロックチェーン台帳にコミットされた前記第１の参照が変更できないようにする、前記第１の参照をコミットすること、
要求元に、データベーステーブル内のレコードとして前記第１の参照へのアクセスを提供すること、
前記ブロックチェーン台帳のインタフェースを介して、前記第１の参照に関連する所有権情報を更新する要求を受信すること、
前記第１の参照が前記所有権情報に関連付けられた鍵を含むと判断し、前記要求に関連付けられた１つまたは複数の許可を検証すること、
前記１つまたは複数の許可を検証し、前記資産参照を含む第２の参照と、要求に応じて更新された所有権情報を反映する第２の鍵とを生成すること、
前記ブロックチェーン台帳への前記第２の参照をコミットし、前記ブロックチェーン台帳にコミットされた前記第２の参照が変更できないようにする、前記第２の参照をコミットすること、及び
前記レコードが前記第２の参照内の少なくとも前記更新された所有権情報を反映するように、前記レコードへのアクセスを前記要求元に提供することを含むコンピュータ実行方法。
【請求項２】
前記ブロックチェーン台帳が、少なくとも部分的に前記１つまたは複数の許可を検証することに基づいて前記第２の参照を受け入れる、請求項１に記載のコンピュータ実行方法。
【請求項３】
資産が、前記第１の参照の一部として前記ブロックチェーン台帳に含まれるデジタル資産である、請求項１または２に記載のコンピュータ実行方法。
【請求項４】
前記データベーステーブルの１つ以上のフィールドが、前記ブロックチェーン台帳にコミットされたスキーマによって定義される、請求項１〜３いずれか一項に記載のコンピュータ実行方法。
【請求項５】
１つまたは複数のサービスを実装する少なくとも１つのコンピューティング装置であって、前記１つまたは複数のサービスが、
資産に関連する取引を取消不能に受け入れる暗号学的に保護された台帳を生成すること、
前記暗号学的に保護された台帳にコミットされた前記取引に関連して前記資産の状態を反映するデータベーステーブルを生成すること、ならびに
前記資産に関連する更新要求を少なくとも
前記更新要求に関連する許可を確認すること、
前記暗号学的に保護された台帳に、前記更新要求に関連付けられた１つまたは複数の取引をコミットすること、及び
前記１つまたは複数の取引に関連して前記資産の新しい状態を反映するように前記データベーステーブルを更新することによって処理することを行う前記コンピューティング装置を含むシステム。
【請求項６】
前記１つまたは複数のサービスが、スキーマに関連して前記データベーステーブルをさらに生成する、請求項５に記載のシステム。
【請求項７】
前記スキーマが、前記資産に接続された取引として前記暗号学的に保護された台帳に格納される、請求項６に記載のシステム。
【請求項８】
前記スキーマが前記更新要求によって更新される、請求項６に記載のシステム。
【請求項９】
前記更新要求が、前記暗号学的に保護された台帳に関連付けられたインタフェースを介して、前記１つまたは複数のサービスによって受信される、請求項５に記載のシステム。
【請求項１０】
前記更新要求が、前記データベーステーブルへの書き込み操作の結果として受信される、請求項５に記載のシステム。
【請求項１１】
前記１つまたは複数のサービスが、前記資産が鍵に関連付けられるという結果として前記更新要求に関連付けられる前記許可を確認し、前記鍵が前記資産の所有者に関連付けられている、請求項５に記載のシステム。
【請求項１２】
前記資産が、物理的資産またはデジタル資産である、請求項５に記載のシステム。
【請求項１３】
コンピュータシステムに
資産に関連する取引を受け入れる暗号学的に保護された台帳を生成する手順、
前記暗号学的に保護された台帳にコミットされた前記取引に関連して前記資産の状態を反映するデータベーステーブルを生成する手順、ならびに
資産に関連する取引を少なくとも
前記取引に関連する許可を確認する手順、
暗号学的に保護された台帳に前記取引をコミットする手順、及び
前記暗号学的に保護された台帳の状態に基づいて、前記取引から生じた前記資産の新しい状態を反映するようにデータベーステーブルを更新する手順、を実行させるためのプログラム。
【請求項１４】
前記取引が前記資産の所有者の更新に関連付けられた、請求項１３に記載のプログラム。
【請求項１５】
前記取引が前記許可の更新に関連付けられた、請求項１３または１４に記載のプログラム。
【請求項１６】
前記コンピュータシステムに前記許可を確認させる命令がさらに、前記取引に関連する署名を前記コンピュータシステムに検証させる命令を含む、請求項１３〜１５のいずれか一項に記載のプログラム。
【請求項１７】
前記取引が、前記暗号学的に保護された台帳内の前記資産に関連する第１の取引セットに関連する第１のスキーマの、前記資産に関連する第２のスキーマへの更新に関連し、
前記コンピュータシステムに
前記第２のスキーマに関連付けられた新しい状態を反映するように前記データベーステーブルを更新して前記取引を処理する手順、及び
前記資産に関連付けられた第２の取引セットを前記第２のスキーマに関連付け、前記第２の取引セットが、前記第２のスキーマに関連付けられた前記取引が前記台帳に書き込まれた後の時点で前記コンピュータシステムによって処理される手順をさらに行わせる、請求項１３〜１６のいずれか一項に記載のプログラム。
【請求項１８】
前記署名が、前記取引に関連付けられている要求元によって提供される、請求項１６に記載のプログラム。
【請求項１９】
前記署名が、前記取引に関連付けられている要求元以外のエンティティによって提供される、請求項１６に記載のプログラム。
【請求項２０】
前記取引が、前記コンピュータシステムによって実行されるプログラム的インタフェースを介して受信される、請求項１３〜１９のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１６年９月３０日提出の「ＩＭＭＵＴＡＢＬＥ  ＣＲＹＰＴＯＧＲＡＰＨＩＣＡＬＬＹ  ＳＥＣＵＲＥＤ  ＬＥＤＧＥＲ−ＢＡＣＫＥＤ  ＤＡＴＡＢＡＳＥＳ」と題した、出願番号第１５／２８３，０１７号米国特許出願に対する優先権を主張し、この米国特許出願に開示された全記載内容を参照によって本明細書に援用するものである。
【背景技術】
【０００２】
分散コンピューティングシステム、分散コンピューティングサービス、分散ストレージシステム及び分散ストレージサービス（（例えば、インターネット上の）コンピューティングリソースサービスプロバイダによって提供されるサービス等）は、オンプレミスコンピューティングリソースを増強し、場合によってはこれを置き換えるためと、資産（個別的な資産及び代替可能な資産の両方）を追跡するために、企業及び個別のユーザによってますます利用されるようになっている。しかし、そのような分散システム及び分散サービスは、実行ユーザまたは実行企業の完全な管理下にあるとは限らないので、それを用いて行われた取引の整合性は、（ユーザの観点から）確認することが困難であり、（サービスプロバイダの観点から）これに保証を与えることも困難である可能性がある。
【０００３】
図面を参照しつつ様々な技法を述べる。
【図面の簡単な説明】
【０００４】
【図１】いくつかの実施形態に従って、暗号学的に保護された台帳の内容が処理され、データベーステーブルの１つまたは複数のフィールドとして要求元に公開される環境の例を示す。
【図２】いくつかの実施形態に従って、暗号学的に保護された台帳によって追跡される資産の所有権取引がコミットされ、データベースを介して利用可能にされる環境の例を示す。
【図３】いくつかの実施形態に従って、資産のデータベース表現をさらに更新するように、資産に関連付けられた１つまたは複数のデータベースフォーマット（例えば、フィールド）を定義するスキーマが更新される環境の例を示す。
【図４】いくつかの実施形態に従って、暗号学的に保護された台帳によって支援されるデータベースの１つまたは複数のフィールドを定義するために、スキーマが実装された環境の例を示す。
【図５】いくつかの実施形態に従って、暗号学的に保護された台帳が支援するデータベース内の取引を処理するプロセスの例を示す。
【図６】いくつかの実施形態に従って、暗号学的に保護された台帳によって追跡される資産に関連する１つまたは複数のプロパティを定義するために使用されるスキーマを更新するためのプロセスの例を示す。
【図７】いくつかの実施形態に従って、暗号学的に保護された台帳によって保有または追跡されている資産についての所有権取引の有効性を判断するプロセスの例を示す。
【図８】少なくとも１つの実施形態に従って、コンピューティングリソースサービスプロバイダに接続された顧客の一例を示す。
【図９】様々な実施形態を実装することができる環境を示す。
【発明を実施するための形態】
【０００５】
一例において、リレーショナルデータベースまたは非リレーショナル（例えば、ＮｏＳＱＬ）データベースなどのデータベースへのアクセス権が要求元に提供され、このデータベースは、ブロックチェーンなどの暗号学的に保護された台帳のうちに含まれた内容、状態、及び他の情報を反映している。いくつかの実施形態において、本データベースは読み取り専用である。つまり、（例えば、データベーステーブルのフィールドまたは他の内容に対する）書き込み取引は無視されるか、または破棄される。暗号学的に保護された台帳に書き込まれた取引の不変性は完全に保持され、暗号学的に保護された台帳によって表される（したがって関連した本データベースを通じて公開される）オブジェクトに対するあらゆる変更は、例えば、新しい取引を書き込むための暗号学的に保護された台帳との直接のやり取りなど、別途の種類のインタラクションを通じて行われる。本関連データベーステーブルは、所与の暗号学的に保護された台帳の更新に関連して、同期的に（または場合によっては非同期的に）更新されてもよい。
【０００６】
いくつかの例では、本データベーステーブルは、行、列等に対する更新など、読み取りと書き込みの両方を受け付ける。このような例では、この書き込みを実装システムに処理させ、本実装システムが、更新されたデータベーステーブルを反映するために、関連している１つの取引または一連の取引を決定して、暗号学的に保護された台帳に書き込むようにすることができる。
【０００７】
この暗号学的に保護された台帳自体は、実装に応じて様々な方法で新しい取引を受け付けることができる。例えば、暗号学的に保護された台帳は、暗示的または明示的な信頼を用いて更新することができる（例えば、更新エンティティを識別及び／または認証／承認する証明書、暗号署名等、エンティティが、暗号学的に保護された台帳の権限によって、台帳に取引を追加する権限があるものと識別されている限り、例えばデータベースエンジン、実装されたスキーマ、実装されているアプリケーション等によって、取引自体に指定されるもの以外の制約または障害なしに、エンティティが取引を追加することができる）。本開示では、例えば公開されたサービスを介して、要求元に台帳更新を提供することに焦点が当てられるが、台帳更新によってその権限に応じた暗号的証拠または他の認証が提供される限り、他の例では、１つまたは複数の提出エンティティが敵対的であり得る環境などにおける、プルーフオブワークによる分散型の合意を含むことができる。いくつかの実施形態では、暗号学的に保護された台帳自体も台帳として公開され、この場合、例えば台帳を走査し、連結されたブロックのハッシュ値、及び／または既知の「正しい」値に対する現在の連鎖したハッシュ値を検証することによって、この台帳は要求元によって検証することができる。
【０００８】
例えば、特定のキー、フィールド、行、列などの存在に対する更新依存性、及び許可などの前述の制約は、いくつかの層の１つ（またはその組み合わせ）で実装されてもよい。例えば、スキーマを使用して、種々の列及び／またはフィールド間の関係と同様に、暗号学的に保護された台帳に含まれるデータ及び／またはメタデータが、関連するデータベーステーブル内でどのように表現されるべきかも規定することができる。例えば、元のスキーマでは、一定数のフィールドと、それらのフィールドに対する規制または制約とが必要な場合がある。例えば、フィールドの数、それらの特性、及びそれらのフィールドに対する規制または制約を変更する、新しいスキーマを提出することができる。スキーマ、及びそれに関連する取引／変更は、暗号学的に保護された台帳にコミットされ、暗号学的に保護された台帳内の他のデータに同じ方法で反映されてもよい。
【０００９】
暗号学的に保護された台帳に書き込まれたデータ及び取引がデータベーステーブルに表現される方法、ならびに暗号学的に保護された台帳内の他のオブジェクトに対してどのように作用するかなどの他の制約条件及び／または定義は、実装アプリケーションによって規定されてもよい。そのような実施形態では、暗号学的に保護された台帳と同様に、暗号学的に保護された台帳データを公開するデータベーステーブルも、本来の意味論的枠組みなしで単にデータを扱い、その代わりに、そのような解釈、制約、プレゼンテーション層表現等をアプリケーション層に残す。
【００１０】
あるいは（または加えて）、意味規則のいくつかまたは全てを、例えば、関連するデータベーステーブルを通じて公開するために、暗号学的に保護された台帳データを解釈するデータベースエンジンに実装してもよい。例えば、実装サービスプロバイダは、資産所有権の追跡や監査などの特定の目的のために、暗号学的に保護された台帳が支援するデータベースを提供することができる。そのような例では、意味規則及び／または取引上の制約の一部または全部を、データベースエンジンによって実装することができる。残りは、実装アプリケーション及び／または適用可能なスキーマによって、定義及び／または制御されてもよい。
【００１１】
資産追跡については、１つまたは一組の所与の資産を対象にした所有権取引などの様々な取引を暗号学的に保護された台帳に記録することにより、それらの取引にイミュータブルな監査証跡が提供されることになり、暗号学的に保護された台帳が本質的に「信頼できない」検証をもたらすことが理解され得る（すなわち、チェーン内のコミットされたデータブロックごとに計算される鎖状の強力な暗号学的ハッシュ結果のため、暗号学的に保護された台帳またはそこに含まれるデータの整合性を検証するために、実装される分散コンピューティングリソースプロバイダの権限など、特別な権限は必要ない）。
【００１２】
資産は、様々な利害関係者、所有者、または資産に関連する他の概念を表す１つまたは複数の鍵に関連付けられ得る。所与の資産に関連付けられた鍵を所有することによって、実装システムは、その鍵の持主のみが所有権を別の所有者に譲渡する権限を持つことを理解し、そのような譲渡を、単調に進められる暗号学的に保護された台帳に記録することで、所有権の変更が一旦コミットされた後は、攻撃者がそれを逆伝播させることができないことになる。さらなる制約は、例えば、実装アプリケーション、スキーマ、またはデータベースエンジンによって、実装され、またはその他の方法で規定され得る。例えば、譲渡の譲受人は、（例えばそれぞれの鍵を提供することによって）署名し、または承認することを要求される場合もある。監督者または管理当局などの他の当事者は、承認される所有権取引に署名するように要求される場合もある。上記の通り、係る当事者による署名が必要とされるスキーマは変更され、例えば、より多くのまたはより少ない当事者が、承認される所有権取引に署名するように要求されてもよい。
【００１３】
資産は、個別的なもの（デジタル作品、不動産などの物理的資産へのリンクまたは表現など）であるか、または代替可能なもの（例えば、通貨、普通株、または他の可算資産、統一資産）であってもよく、そのような資産の存在を証明するためのあらゆる関連データは、暗号学的に保護された台帳に資産に関連して含めることができる。前述のように、所与の資産の出所、または所有権を解明することを容易かつ簡単にするために、関連するデータベーステーブルをそのようなクエリに対して利用可能にすることができ、一方所有権の移転要求は、暗号学的に保護された台帳の直接更新要求に関連して実行することができる。
【００１４】
先行の記述及び以下の記述において、各種の技法について説明する。説明の目的で、本技法を実施する可能な方法の理解の徹底を期すために、具体的構成と詳細をにわたって明らかにする。しかしながら、以下に説明される技法が、その具体的な細部を欠いた種々の構成で実施し得ることも明らかであろう。なお、説明される技法を不明瞭にしないようにするために、周知の特徴事項を省略するかまたは簡略化することがある。
【００１５】
図１は、いくつかの実施形態に従って、暗号学的に保護された台帳の内容が処理され、データベーステーブル内の１つまたは複数のフィールドまたはレコードとして要求元に公開される環境１００の例を示す。
【００１６】
例えば、クライアント装置１０２は、リレーショナルデータベースまたは非リレーショナル（例えば、ＮｏＳＱＬ）データベースなどのデータベース１０４にアクセスする。一実施形態では、管理され、分散された非リレーショナルデータベースが、暗号学的に保護された台帳１０６へのアクセスも（例えば、サービスとして）提供する同一のコンピューティングリソースサービスプロバイダによってサービスとして提供され、ＮｏＳＱＬデータベースが（非リレーショナルデータベースによって可能にされる柔軟なデータのモデル化／スキーマ定義のために）両者間の統合が容易となるように使用される。さらに、このような非リレーショナルデータベースは、従来のリレーショナルデータベースと比較して、その改善された待ち時間、スループット、及び／またはスケーラビリティのために選択され得る。しかしながら、いくつかの実施形態では、例えば絶対的な関係の整合性が望まれる実装において、リレーショナルデータベースを使用することもできる。
【００１７】
暗号学的に保護された台帳１０６は、いくつかの実施形態では、ブロックチェーンなど、データの複数の連結した、または「連鎖した」ブロックを含む分散型データベースである。少なくとも暗号学的に保護された台帳１０６の場合、ブロックは、資産または資産へのリンク／参照、取引情報（所有権の移転など）、取引及び／または資産自体に関する記述データ、（例えば、資産レコードを介して）資産を表すための枠組みに関連するスキーマ情報、暗号学的に保護された台帳に表示される資産に対するアクセス、変更、及び／または移転の権限を与えられたアクター及び／またはエンティティを識別する許可情報を含み得る。ブロック及び／または個々の記録されたオブジェクト及び取引は、（例えば、ブロックまたは関連する取引／オブジェクトの生成または追加の）タイムスタンプ、及びこれを暗号学的に保護された台帳内の先行のブロックまたはオブジェクトに結びつける情報を含むこともできる。この情報は、いくつかの実施形態では、整合性データ及び／または例えば、特定の期間に取引のブロックを暗号学的に保護された台帳に追加することによって、そのようなデータを暗号学的に保護された台帳に追加しようと試みる任意のエンティティによって実行される計算を反映するプルーフオブワークまたは他の計算的な証拠を含み得る。
【００１８】
プルーフオブワークは、いくつかの実施形態では、コミットされる推定ブロックの内容に対して暗号学的ハッシュ関数を実行することによって出力されるハッシュダイジェストであり、そこで結果として生じるハッシュダイジェストが、暗号学的に保護された台帳への新しいブロックの受け入れについて設定された特定の基準を満たすまで、ブロック内のデータの一部（例えば、カウンタ、乱数など）が繰り返し変更される。例えば、暗号学的に保護された台帳（または実装システム）は、暗号学的に保護された台帳に特定のブロックを追加するための条件として、推定ブロックのハッシュダイジェストが、その結果の先頭に、指定された数の２進数もしくは１６進数のゼロを含むこと、または指定された難易度の値より低い値を有することを要求し得る。このような基準は、提出エンティティに要求される反復の数が提出を行うのに十分に大きいかまたは難解であり、したがって逆伝播する変更が十分に困難であることを保証するように調整されるか、または別の方法で設定され得る（例えば、暗号学的に保護された台帳の特性として、特定のブロックのヘッダには前のブロックのプルーフオブワークの結果が含まれ、したがって、基本データが事後に変更された場合には、次のブロックの計算結果値が異なることになるので、特定のブロックの後の全てのブロックに対するプルーフオブワークを順番に再計算する必要がある）。
【００１９】
特定の実施形態では、台帳へのデータの信頼できる追加のためにプロキシとしてプルーフオブワークを使用するのではなく、台帳をサービスとしてクライアントエンティティ１０２などの要求元に公開することができる。そのような実施形態では、要求元エンティティは、新しい情報で台帳を直接更新するというその要求に関連するその権限の証拠を提供する。例えば、要求は、暗号学的に保護された台帳１０６によって、またはその代わりに提供されるプログラム的インタフェースなどのインタフェースを介して行われてもよく、場合によっては、暗号証明書、デジタル署名、暗号鍵、または他の何らかの識別情報もしくは権限の認証を含んでもよい。台帳更新要求に関連する認証が、要求された更新を実行するのに十分である限り、台帳は信頼を示し、更新を実行する。
【００２０】
「デジタル署名」という用語は、ＲＳＡベースのデジタル方式（ＲＳＡ−ＰＳＳなど）、デジタル署名アルゴリズム（ＤＳＡ）及び楕円曲線デジタル署名アルゴリズム、ＥｌＧａｍａｌ署名方式、Ｓｃｈｎｏｒｒ署名方式、Ｐｏｉｎｔｃｈｅｖａｌ−Ｓｔｅｒｎ署名アルゴリズム、Ｒａｂｉｎ署名アルゴリズム、ペアリングベースのデジタル署名方式（Ｂｏｎｅｈ−Ｌｙｎｎ−Ｓｃｈａｃｈａｍ署名方式など）、否認不可デジタル署名方式などを使用して生成された情報を含む、メッセージの真正性を暗号によって検証するために使用可能な任意の情報を含むことに留意されたい。さらに、メッセージ認証コード（ハッシュ法によるメッセージ認証コード（ＨＭＡＣ）など）、鍵付き暗号学的ハッシュ関数、及び他の種類の情報を、デジタル署名として使用することもできる。
【００２１】
さらに、システムを動作させるように構成された論理が、公開暗号鍵でデジタル署名を検証する試みが成功したかどうかに依存する場合、システムは公開暗号鍵を信頼するように構成されていると言われることに留意されたい。同様に、システムを動作させるように構成された論理が、対称暗号鍵でデジタル署名を検証する試みが成功したかどうかに依存する場合、システムは対称暗号鍵を信頼するように構成されていると言われる。
【００２２】
先に述べたように、多くのバリエーションは、対称及び／または非対称の暗号プリミティブを利用する。対称鍵アルゴリズムには、ブロック暗号、ストリーム暗号及びデジタル署名方式を含む、データに対して暗号操作を実行するための様々な方式が含まれ得る。対称鍵アルゴリズムの例には、高度暗号化規格（ＡＥＳ）、データ暗号化規格（ＤＥＳ）、トリプルＤＥＳ（３ＤＥＳ）、Ｓｅｒｐｅｎｔ、Ｔｗｏｆｉｓｈ、Ｂｌｏｗｆｉｓｈ、ＣＡＳＴ５、ＲＣ４、及び国際データ暗号化アルゴリズム（ＩＤＥＡ）が挙げられる。対称鍵アルゴリズムにはまた、一方向性関数の出力を生成するために使用されるものが含まれ、ハッシュ法によるメッセージ認証コード（ＨＭＡＣ）、メッセージ認証コード（ＭＡＣ）全般、ＰＢＫＤＦ２及びＢｃｒｙｐｔを利用するアルゴリズムが含まれ得る。非対称鍵アルゴリズムにはまた、データに対して暗号操作を実行する様々な方式が含まれ得る。アルゴリズムの例としては、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換プロトコル、デジタル署名規格（ＤＳＳ）、デジタル署名アルゴリズム、ＥｌＧａｍａｌアルゴリズム、種々の楕円曲線アルゴリズム、パスワード認証鍵合意技法、Ｐａｉｌｌｉｅｒ暗号システム、ＲＳＡ暗号化アルゴリズム（ＰＫＣＳ＃１）、Ｃｒａｍｅｒ−Ｓｈｏｕｐ暗号システム、ＹＡＫ認証鍵合意プロトコル、ＮＴＲＵＥｎｃｒｙｐｔ暗号システム、ＭｃＥｌｉｅｃｅ暗号システムなどを利用するものが挙げられる。楕円曲線アルゴリズムには、楕円曲線Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＥＣＤＨ）鍵合意方式、楕円曲線統合暗号化方式（ＥＣＩＥＳ）、楕円曲線デジタル署名アルゴリズム（ＥＣＤＳＡ）、ＥＣＭＱＶ鍵合意方式、及びＥＣＱＶ暗黙証明書方式が含まれる。他のアルゴリズム及びアルゴリズムの組み合わせはまた、本開示の範囲内にあると見なされ、上記は網羅的なリストであることを意図しない。
【００２３】
暗号学的に保護された台帳１０６のブロックは、本明細書で既に述べたような１つまたは複数のデータセットのグループ、ならびに取引のブロック内の他のデータの暗号学的ハッシュの結果など、イベントデータに関連する他のデータ及びメタデータを含み、場合によっては、直前のデータブロックまたは取引に対して実行された暗号学的ハッシュへの参照（またはその結果）が含まれる。したがって、強力な一方向性暗号学的ハッシュ関数の使用を想定すると、前のブロック（例えば、チェーンのさらに下のブロック）内のデータに対する事後的な変更は、後続の各ブロックのハッシュ結果に対する変更というドミノ効果をもたらすであろうことが理解され得る。
【００２４】
「一方向性関数」という語句は、厳密な数学的意味において必ずしも一方向性である必要はないが、本開示の様々な技法が適用される状況においてその機能を有用にする特性（衝突耐性、原像計算困難性、第２原像計算困難性など）を発揮する関数を含むことに留意すべきである。このようにして、関数の出力を有するが、対応する入力にアクセスできないエンティティは、例えば、暗号（例えばブルートフォース）攻撃に必要な計算リソースの異常な消費なしには入力を決定することができない。一方向性関数（「実質上一方向性の関数」とも呼ばれる）には、メッセージ認証コードなどの暗号学的ハッシュ関数、（例えば、ハッシュ法によるメッセージ認証コード（ＨＭＡＣ））、（例えば、パスワードが平文及び暗号鍵に少なくとも部分的に基づいた）ＰＢＫＤＦ２やｂｃｒｙｐｔなどの鍵導出関数、及び他の安全なランダム化関数（ランダム化関数は、必ずしもそうとは限らないが、これらの変域（可能な出力）よりも大きい定義域（可能な入力セット）を持ち得る）が含まれるが、これらに限定されない。様々な実施形態のための他の好適な関数（「ｆ」と称する）には、少なくとも平文及び暗号鍵を入力とし、原像計算困難性（値ｙが与えられたとき、ｆ（ｘ）＝ｙが、指定された閾値よりも小さくなるような入力ｘをランダムに生成する確率）、第２原像計算困難性（入力ｘ１が与えられたとき、ｆ（ｘ１）＝ｆ（ｘ２）が、指定された閾値よりも小さくなるような、ｘ１とは異なる別の入力ｘ２をランダムに生成する確率）及び／または衝突耐性（２つの異なる入力が同じ出力をもたらす確率は、指定された閾値よりも小さい）の特性を有する関数が含まれるが、これらに限定されない。各確率に対する正確な閾値は状況依存的であり得、低い確率が高安全性状況に対応する。本開示の技法に従って一方向性関数として使用できるハッシュ関数には、Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄａｒｄｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ（ＮＩＳＴ）  Ｓｐｅｃｉａｌ  Ｐｕｂｌｉｃａｔｉｏｎ  ８００−１０７，  Ｒｅｖｉｓｉｏｎ  １  "Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  ｆｏｒ  Ａｐｐｌｉｃａｔｉｏｎｓ  Ｕｓｉｎｇ  Ａｐｐｒｏｖｅｄ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍｓ"（これは参照により本明細書に援用される）に記載されている関数が含まれるが、これに限定されるものではない。
【００２５】
前述のように、ブロックチェーンなど、暗号学的に保護された台帳は、分散型データベースであってもよく、いくつかの実施形態では、暗号学的に保護された台帳の維持に関与する複数のエンティティ／リソースのそれぞれは、任意の特定箇所（例えば、全てのブロックがその箇所に追加される）において暗号学的に保護された台帳全体のコピーを有する。個々の取引及び／またはブロックが暗号学的に保護された台帳１０６に追加されると、それらの取引に関する情報（追加されたデータ自体であり得る）が全てのノード／エンティティ／リソースにブロードキャストされる。所与のリソース（暗号学的に保護された台帳を管理しているものと同じか、または異なっていてもよい）が、ブロックに関連したある期間にわたって取引を網羅する／含むそのブロックを追加するとき、新しいブロックの内容は、暗号学的に保護された台帳の各ノード／エンティティ／リソースに配布され、したがって最終的に暗号学的に保護された台帳は一貫した状態を反映する。
【００２６】
企図され得るように、暗号学的に保護された台帳を維持し、及び／またはその台帳に寄与するエンティティ／リソースの集合は、本質的に異種であってもよい。例えば、サービスに関連する顧客装置（クライアント装置１０２を含む）及びリソースの両方が、暗号学的に保護された台帳の維持に参加できるだけでなく、暗号学的に保護された台帳にブロックを追加する計算活動（例えば、署名照合）にも参加することができる。なぜなら、他の全ての参加ノードが、ブロックの内容（例えば、暗号学的に保護された台帳全体の場合、最新のブロック）に対して暗号学的ハッシュ関数を実行することを単にチェックして、結果が期待されるものに合致するかどうかを確かめることによって（例えば、前の時点における同じブロックまたはブロックのセットに対する結果）、新たに追加される任意のブロックの整合性及び／または正確度、ならびに実際には暗号学的に保護された台帳全体の整合性を確認できることを考えると、維持または追加を実行するアクターの識別情報はほとんど無関係であるからである。したがって、全ての要求元は、暗号学的に保護された台帳の整合性を要求元が望む程度にまで検証するために、比較的安価な計算を自ら実行することができるので、暗号学的に保護された台帳の整合性に関する権威として単一のアクターまたは一組のアクターを信頼する必要はない。
【００２７】
上に述べたように、データベース１０４は、暗号学的に保護された台帳と相互作用して、暗号学的に保護された台帳１０６内に含まれる内容、状態、及び他の情報を反映する。いくつかの実施形態では、暗号学的に保護された台帳１０６は、そのプログラム的インタフェースを介して、更新がデータベースに発生したときに、またそのそれぞれのプログラム的インタフェースを介して、更新を「プッシュ」する。他の実施形態では、データベース１０４は、最後の更新以降の更新について、暗号学的に保護された台帳１０６を手動で（例えば要求に応じて）または自動的に（例えば指定された間隔で）ポーリングすることができる。さらに、データベースエンジンなどの介在性エンティティ、あるいはデータベース１０４及び／またはブロックチェーン１０６の一方または両方に関連する他のエンティティを使用して、ブロックチェーンに表されているように、関連付けられている取引からの、資産、オブジェクト、または他の「ファーストクラス」データ型など、所与のデータ片の状態を経時的にデータベーステーブルに変換するか、または別の方法で表すことができる。例えば、本明細書の他の箇所に記載されるように、データベーステーブルは、所与のデータ、資産、オブジェクトなどの現在の状態のみを反映するように構造化されてもよい。別の例として、データベースエンジンまたは他の介在性エンティティは、所与のデータ、資産、オブジェクトなどに関連する一部または全部の取引を変換し、それらを、データベーステーブルを介して個別に可視化することができる。いくつかの実施形態では、データベーステーブルは、取引がブロックチェーンにコミットされる指定された期間の長さ、指定された種類のデータ（例えば、フィールドまたはデータ型）、指定された数の更新（例えば、取引）などに制約され得る。
【００２８】
データベース１０４が暗号学的に保護された台帳１０６内の情報を反映するフォーマットは、１つまたは複数のメカニズムによって定義され得る。例えば、暗号学的に保護された台帳１０６内に存続する未処理の取引データを、資産または他のオブジェクト、及びそれらのオブジェクトに関連するメタデータと関連付けるために、スキーマを実装することができる。スキーマは、関連付けられたデータ及びメタデータの特定のフィールド、列、または行を定義することができ、前述のように、暗号学的に保護された台帳の別のオブジェクトとして単純に処理することができる（例えば、更新及び／または所有権取引、ならびにそれらの取引に関連する制約を、スキーマオブジェクトに適用することもできる）。本例では、スキーマで定義されているように、所与のレコードは、資産に関連付けることができ、現在の所有者、関連する資産へのリンク、作成者情報など、資産に関連付けられたメタデータを含むこともでき、レコードをデータベーステーブル１０４に表すことができる。したがって、要求元１０２は、本質的にシリアルの暗号学的に保護された台帳１０６に直接問い合わせるのではなく、暗号学的に保護された台帳１０６に保持され、または別の方法で表される資産に関連した情報を迅速かつ効率的に取り出すために、生成されたデータベーステーブル１０４に使い慣れたフォーマットで、単に問い合わせるだけでよい。
【００２９】
いくつかの実施形態において、本データベース１０４は読み取り専用である。つまり、（例えば、データベーステーブルのフィールドまたは他の内容に対する）書き込み取引は無視されるか、または破棄される。本例では、暗号学的に保護された台帳によって表される（したがって関連した本データベースを通じて公開される）オブジェクトに対するあらゆる変更は、例えば、新しい取引を書き込むための暗号学的に保護された台帳との、それぞれのインタフェースを介した直接のやり取りなど、別途の種類のインタラクションを通じて行われる。前述のように、本関連データベーステーブルは、所与の暗号学的に保護された台帳の更新に関連して、同期的に（または場合によっては非同期的に）更新されてもよい。他の例では、本データベーステーブル１０４は、クライアントエンティティ１０２が資産に関連する１つまたは複数の所有権鍵を更新しようと試みる場合と同様に、行、列等に対する更新など、読み取りと書き込みの両方を受け付ける。これらの場合、この書き込みを実装システムに処理させ、本実装システムが、更新されたデータベーステーブルを反映するために、関連している１つの取引または一連の取引を決定して、暗号学的に保護された台帳１０６に書き込むようにすることができ、このような台帳への書き込みは、それを行う要求元の権限の検証を受けることになる。
【００３０】
図２は、いくつかの実施形態に従って、暗号学的に保護された台帳によって追跡される資産の所有権取引がコミットされ、データベースを介して利用可能にされる環境２００の例を示す。
【００３１】
すでに述べたように、この暗号学的に保護された台帳２１０は、実装に応じて様々な方法で新しい取引を受け付けることができる。例えば、暗号学的に保護された台帳２１０は、暗示的または明示的な信頼を用いて更新することができる（例えば、更新エンティティを識別及び／または認証／承認する証明書、暗号署名等、エンティティが、暗号学的に保護された台帳の権限によって、台帳に取引を追加する権限があるものと識別されている限り、例えばデータベースエンジン、実装されたスキーマ、実装されているアプリケーション等によって、取引自体に指定されるもの以外の制約または障害なしに、エンティティが取引を追加することができる）。本開示では、例えば、そのプログラム的インタフェース（例えば、ＡＰＩ）を通じて公開されたサービスを介して、要求元に台帳更新を提供することに焦点が当てられるが、すでに述べたように、台帳更新によってその権限に応じた暗号的証拠または他の認証が提供される限り、他の例では、１つまたは複数の提出エンティティが敵対的であり得る環境などにおける、プルーフオブワークによる分散型の合意を含むことができる。
【００３２】
図示の例では、暗号学的に保護された台帳２１０は、フロントエンドインタフェース２１２を介して台帳としてクライアントエンティティ２０２または他の要求元に公開されている。フロントエンドインタフェース２１２は（データベース２０４用のフロントエンドインタフェース２０６と同様に）、グラフィカルユーザインタフェースもしくはコマンドラインユーザインタフェース、プログラム的インタフェース（アプリケーションプログラミングインタフェース（ＡＰＩ）またはＷｅｂサービスの呼び出しなど）、または任意の適切なインタフェースであり得る。例として、クライアント装置２０２は、例えば、暗号学的に保護された台帳２１０に表される特定の資産についての所有権移転要求２０８を提出することができる。所有権移転要求２０８は、例えば、要求２０８に含まれる（か、またはそれとは別の）デジタル署名または暗号鍵の整合性及び／または出所、ならびに要求された所有権移転２０８を行うための署名または鍵に関連する識別情報の権限を検証することによって検証される。検証は、第三者の暗号サービス、暗号学的に保護された台帳２１０に関連付けられたエンティティ、クライアントエンティティ２０２自体（自己認証証明書の場合）、または他の何らかのエンティティを含む任意の適切なエンティティによって行われ得る。
【００３３】
実際の信頼証拠または認証は、第三者機関または他の暗号化サービスによって発行された、クライアントエンティティの暗号装置またはサービス（例えば、ローカルハードウェアセキュリティモジュールまたは信頼できるプラットフォームモジュール）、あるいは発行エンティティ及び／または要求エンティティの識別情報及び整合性を確認するための他の適切な検証可能な方法から供給され得る。例えば、ラップされた鍵などの暗号鍵は、暗号学的に保護された台帳２１０のフロントエンドインタフェース２１２に提出するために、コンピューティングリソースサービスプロバイダのサービスによってクライアントエンティティ２０２に発行することができる。
【００３４】
フロントエンドインタフェース２１２は、暗号学的に保護された台帳２１０に関連付けられたエンティティに要求２０８を渡して、要求２０８が有効であり、及び例えば他の資産に対する制約、または関連する変更を行うための要求元の権限を制限する任意の制約が適用されるかどうかを判断する。例えば、所与の資産が鍵に関連付けられている場合、定義スキーマまたはデータベースエンジンは、その資産に関連付けられている変更がその鍵の持主によって開始されることを自動的に要求することがある。その結果、本例では、所有権移転要求２０８が、所与の資産に現在関連付けられている鍵の所有者以外の何らかの他のエンティティによってもたらされる場合、それは拒否される。
【００３５】
また一方、何らかの制約及び／または要件が満たされているとすれば、暗号学的に保護された台帳２１０は所有権取引をコミットする。前述したように、このような書き込みは、一度実行されると、監査証跡を保持するためにイミュータブルである。所有権取引が誤って実行された場合、「新しい」鍵の持主は、所有権を元の持主に戻すために新しい取引を提出し、これは暗号学的に保護された台帳２１０に新しい取引として書き込まれる。
【００３６】
前述のように、データベース２０４は、データベースの実装の詳細、及び（例えば、図１に関連して上に述べたように）それが更新される方法に応じて、暗号学的に保護された台帳の新しい状態を表形式または他の形式で反映する。したがって、クライアント装置２０２がそのフロントエンドインタフェース２０６を介してデータベース２０４に要求２１４を発行し、特定の資産の現在の所有権に関して問い合わせる場合、データベース２０４は、そのフロントエンドインタフェース２０６を介して、新しい所有者を示す応答２１６を返す。データベースが、暗号学的に保護された台帳の現在の状態だけを反映するのではなく、台帳２１０にコミットされた全ての取引も含む他の実施態様は、本開示の範囲内であると企図される。例えば、そのような実施態様では、所有権取引の、特定の期間にわたって、または暗号学的に保護された台帳２１０に表示されている全ての期間にわたって、または資産自体が出現してからの履歴を要求するデータベース検索要求は、暗号学的に保護された台帳２１０に直接宛てられる同じような要求よりも効率的な方法でサービスを受けることができる。
【００３７】
図３は、いくつかの実施形態に従って、資産のデータベース表現をさらに更新するように、資産に関連付けられた１つまたは複数のデータベースフォーマット（例えば、フィールド）を定義するスキーマが更新される環境３００の例を示す。
【００３８】
先に述べたように、例えば、特定のキー、フィールド、行、列などの存在及び相互関連に対する更新依存性、ならびにそれを変更するための所与の識別情報の権限に関連した許可などの、本明細書で述べた制約及び条件は、いくつかの層の１つ（またはその組み合わせ）で実装されてもよい。例えば、すでに述べたように、スキーマを使用して、データベーステーブルの種々の行、列及び／またはフィールド間の関係と同様に、暗号学的に保護された台帳に含まれるデータ及び／またはメタデータが、関連するデータベーステーブル内でどのように表現されるべきかも規定することができる。スキーマ、及びそれに関連する取引／変更は、暗号学的に保護された台帳にコミットされ、暗号学的に保護された台帳内の他のデータに同じ方法で反映されてもよい。
【００３９】
したがって、クライアント装置３０２は、少なくとも図２に関連して説明したのと同様の方法で、暗号学的に保護された台帳３１０に追加するために、フロントエンドインタフェース３１２を介してスキーマ更新３０８を提出することができる。企図され得るように、場合によっては、暗号学的に保護された台帳に保管されている１つまたは複数の資産の所有者であり得る管理者エンティティは、スキーマを定義及び更新する権限を持つことがあり、そのような場合のいくつかでは、同じエンティティが以前のスキーマの創始者であり、それに関連付けられた鍵で署名されている。したがって、いくつかの実施形態では、既存のスキーマを置換または更新する要求は、スキーマの現在のバージョンに関連付けられるものと同じ鍵に関連付けられることが要求され得る。特定の実施形態では、データベースエンジン、暗号学的に保護された台帳３１０に関連するエンティティなどによって要件が強制される。また、いくつかの実施形態では、暗号学的に保護された台帳またはデータベースエンジンはまた、所与のスキーマ更新要求が、管理者の署名だけではなく、そのスキーマが関係する資産の所有者の一部または全部（または他の利害関係者）の署名を伴うという要件を強制し得ることが企図される。
【００４０】
暗号学的に保護された台帳が、追加される新しいスキーマを受け入れると仮定すると、データベース３０４はそのマッピングを新しいスキーマに適合するように調整する。例えば、新しいキー列を一部または全部のレコードに追加し、または追加の説明フィールドを一部または全部のレコードに関連付けることができる。その後は、（例えば、フロントエンドインタフェース３０６を介した）データベース３０４に対するクエリ３１４は、新しいスキーマによって定義されたデータベーステーブルに関係する。
【００４１】
図４は、いくつかの実施形態に従って、暗号学的に保護された台帳によって支援されるデータベースの１つまたは複数のフィールドを定義するために、スキーマが実装された環境４００の例を示す。
【００４２】
暗号学的に保護された台帳に書き込まれたデータ及び取引がデータベーステーブルに表現される方法、暗号学的に保護された台帳内の他のオブジェクトに対してどのように作用するか、及び／または所与の行、列、フィールド、もしくはオブジェクトの意味論的意味などの制約条件及び／または定義は、スキーマ、実装アプリケーション、及び実装データベースエンジン（例えば、データベースを管理するもの）のうちの１つまたは複数によって実装され得るレコード定義４０２によって規定されてもよい。例えば、データベースエンジンは、資産追跡体制の場合、資産識別子、資産に関連付けられた所有者、及び１つまたは複数の台帳取引への参照に関する基本的なフィールド定義を強制することができる。そのような例では、（権限を与えられたエンティティによって更新され得る）スキーマは、二次所有者、支援文書、または資産に関連する他の情報などのさらなるフィールドを定義することができる。最後に、本例では、アプリケーション層は、どのエンティティが全体的な制約及び／または定義のセットを見ることが許可されるかを定義することができる。いくつかの実施形態では、暗号学的に保護された台帳と同様に、暗号学的に保護された台帳データを公開するデータベーステーブルも、本来の意味論的枠組みなしで単にデータを扱い、その代わりに、そのような解釈、制約、プレゼンテーション層表現等を、アプリケーション層、スキーマ、データベースエンジン、またはそれらの組み合わせに残す。
【００４３】
あるいは（または加えて）、意味規則のいくつかまたは全てをレコード定義に実装することができ、レコード定義は、関連するデータベーステーブルを通じて公開するために、暗号学的に保護された台帳データを抽象化する。例えば、実装サービスプロバイダは、資産所有権の追跡や監査などの特定の目的のために、暗号学的に保護された台帳が支援するデータベースを提供することができる。そのような例では、意味規則及び／または取引上の制約（例えば、必要な鍵フィールド及び資産フィールド）の一部または全部を、データベースエンジンによって実装することができる。残りは、実装アプリケーション及び／または適用可能なスキーマによって、定義及び／または制御されてもよい。特定の実施形態では、制約／意味規則の１つまたは複数は、変更することを許可されていないエンティティ（ただし、アプリケーション層など、他の場所で定義されている他の制約／意味規則を変更する権限を与えられている者）によって、悪意を持って、または誤って変更されることからそれらを保護するために、データベースエンジンによって実装される。そのような実施形態では、システムの管理者は、そのような制約／意味規則をシステム全体のイミュータブルな制約／意味規則の基本セットとして実装することができる。
【００４４】
資産追跡については、本明細書の他の箇所に記載されている理論的根拠のために、１つまたは一組の所与の資産を対象にした所有権取引などの様々な取引を暗号学的に保護された台帳に記録することにより、それらの取引にイミュータブルな監査証跡が提供されることになり、暗号学的に保護された台帳が本質的に「信頼できない」検証をもたらすことが理解され得る（すなわち、チェーン内のコミットされたデータブロックごとに計算される鎖状の強力な暗号学的ハッシュ結果のため、暗号学的に保護された台帳またはそこに含まれるデータの整合性を検証するために、実装される分散コンピューティングリソースプロバイダの権限など、特別な権限は必要ない）。
【００４５】
レコード定義４０２は、資産４０６が、様々な利害関係者、所有者、または資産に関連する他の概念を表す１つまたは複数の鍵４０８、４１０に関連付けられることを規定する。所与の資産に関連付けられた鍵を所有することによって、実装システムは、その鍵の持主のみが所有権を別の所有者に譲渡する権限を持つことを理解し、そのような譲渡を、単調に進められる暗号学的に保護された台帳４１２に記録することで、所有権の変更が一旦コミットされた後は、攻撃者がそれを逆伝播させることができないことになる。一実施形態では、取引が暗号学的に保護された台帳に書き込まれるとき、各関連レコード（例えば、図示の例では行）は、暗号学的に保護された台帳４１２のどこに関連取引が書き込まれたかを識別する台帳識別子４０４に関連付けられる。この台帳識別子４０４は、関連する暗号学的に保護された台帳ブロックのハッシュ値、ディスク上の位置（例えば、暗号学的に保護された台帳の開始オフセットに対するオフセット）、カウンタ、または要求元が暗号学的に保護された台帳４１２内で関連する取引を見つけることを可能にする他の何らかの一意の識別子であり得る。いくつかの実施形態では、データベースは、所与のデータセット、オブジェクト、資産などの状態（これは、その情報に関連している暗号学的に保護された台帳４１２内の複数の取引を指すことができる）を反映することが企図されている。したがって、台帳４０４フィールドは、そのような複数の暗号学的に保護された台帳の場所、最新の取引の場所などを指すことができる。
【００４６】
鍵４０８、４１０、及び資産４０６が本明細書に記載されるが、さらなる制約は、例えば実装アプリケーション、スキーマ、またはデータベースエンジンによって、レコード定義４０２の内部または外部で実装され、またはその他の方法で規定され得る。例えば、譲渡の譲受人は、（例えばそれぞれの鍵を提供することによって）署名し、または承認することを要求される場合もある。監督者または管理当局などの他の当事者は、承認される所有権取引に署名するように要求される場合もある。資産４０６に関連付けられているが、その実際の所有権に必ずしも関連しないメタデータは、任意に定義された任意の数のフィールドに存在し得る。
【００４７】
資産４０６は、個別的なもの（デジタル作品、不動産などの物理的資産へのリンクまたは表現など）であるか、または代替可能なもの（例えば、通貨、普通株、または他の可算資産、統一資産）であってもよく、そのような資産の存在を証明するためのあらゆる関連データは、資産に関連して、暗号学的に保護された台帳に含める（したがってデータベーステーブルに表される）ことができる。前述のように、所与の資産の出所、所有権を解明することを容易かつ簡単にするために、関連するデータベーステーブルをそのようなクエリに対して利用可能にすることができ、一方所有権の移転要求は、台帳の直接更新要求に関連して実行することができる。
【００４８】
例えば、レコード定義４０２は、個別のリソースが、所与の資産（例えば、不動産、車両または他の私有財産への所有権、契約などのための記録された行為などの、物理オブジェクトの存在を検証及び／または検証する文書、メディア、記事へのＵＲＩ、及び／または参照などのデジタルオブジェクト）への参照を含む「ロット」と、１つまたは複数の「ロット」を参照し、ロット間の意味関係を記述する「作品」とに分離され得ることを規定し得る。
【００４９】
別の例として、レコード定義４０２は、代替可能なリソースが「コイン」及び「資金」などの単位のないオブジェクトに分割されることを規定してもよく、このことは「コイン」の量と、その量（またはコイン自体）が表すことの意味論的意味とを記述し、特定の所有者（関連した鍵の持主）にその権利が与えられている。
【００５０】
図５は、いくつかの実施形態に従って、暗号学的に保護された台帳が支援するデータベース内の取引を処理するプロセス５００の例を示す。
【００５１】
ステップ５０２において、クライアント装置などのエンティティは、図１〜図４に関連して上に述べたように、暗号学的に保護された台帳に取消不能にコミットされる取引または他のデータを提出する。例えば、取引は、資産に関連する所有権取引であり得、暗号学的に保護された台帳のフロントエンドインタフェースを介してクライアントエンティティによって提出され得る。
【００５２】
ステップ５０４において、非リレーショナルデータベースなどのデータベーステーブルは、暗号学的に保護された台帳に含まれるデータから更新及び／または生成され、いくつかの実施形態では、関連データの現在の状態及び／またはそのデータに関連する履歴取引の一方または両方を反映する。データベーステーブルは、例えば、実装データベースエンジン（例えば、データベース管理システム）によって提供されるプログラム的インタフェースなどの標準インタフェースを介して利用可能にされる。
【００５３】
ステップ５０６において、所有権移転要求などの追加の書き込み取引が、例えば暗号学的に保護された台帳インタフェースを介して受信され、そのような要求が有効かつ許可されているかどうかを判断するために処理される。例えば、要求に関連付けられた非対称暗号鍵ペアの公開鍵は、それが資産に関連付けられた現在のエンティティによって使用されているのと同じ鍵であるかどうかを判断するために評価される。別の例として、第三者の鍵管理サービスによって管理されている対称鍵も同様に評価することができる。
【００５４】
ステップ５０８において、ステップ５０６での処理及び検証が成功したと仮定すると、取引は暗号学的に保護された台帳にコミットされ、関連する読み取り専用データベースが、その取引の決済を反映するように更新される。このようなデータベーステーブルの更新は、暗号学的に保護された台帳の追加に関連して、非同期的または同期的に実行されてもよい。
【００５５】
図６は、いくつかの実施形態に従って、暗号学的に保護された台帳によって追跡される資産に関連する１つまたは複数のプロパティを定義するために使用されるスキーマを更新するためのプロセス６００の例を示す。
【００５６】
ステップ６０２において、暗号学的に保護された台帳に関連付けられたインタフェースまたは他のエンティティは、暗号学的に保護された台帳に関連付けられた（例えば、支援された）データベーステーブルのフィールド定義に関連付けられた新しいスキーマを受信する。要求に応答して、決定点６０４において、図１〜５で上に述べたように要求元の権限が検証され、場合によっては、スキーマによって影響を受ける資産に関連付けられた資産所有者に関連付けられた他の鍵の有効性が、スキーマ更新を受け入れる前提条件として肯定的に評価される。ステップ６０６において、新しいスキーマは暗号学的に保護された台帳にコミットされ、ステップ６０８においてデータベーステーブルが新しいスキーマと一致するように設定される。さらに、台帳内の所与の取引に使用される特定のスキーマを、その取引で参照することができ、したがって、新しいスキーマがコミットされた時点を過ぎた、以降の任意の取引は、台帳内で新しいスキーマを参照することができる。しかしながら、決定点６０４において、要求元の許可が十分であると判断されない場合、または他の制約が満たされない場合、スキーマ更新要求はステップ６１０において拒否される。
【００５７】
図７は、いくつかの実施形態に従って、暗号学的に保護された台帳によって保有または追跡されている資産についての所有権取引の有効性を判断するプロセス７００の例を示す。
【００５８】
ステップ７０２において、前述の通り、暗号学的に保護された台帳に格納されているか、または別の方法で表されている資産に関連するレコードを更新する要求が、例えばクライアントエンティティから受信される。ステップ７０４において、資産がレコード内の１つまたは複数の署名鍵と関連付けられている場合、受信システム（または他のエンティティ）は、例えば要求の一部として、または要求に関連して提出された鍵を評価することによって、要求元の識別情報を判定する。先に述べたように、この要件はデータベースエンジンまたはアプリケーション層によって強制される場合がある。
【００５９】
決定点７０６において、ステップ７０４に関連して決定された識別情報が、現在、資産に関連付けられている識別情報（例えば、現在の所有権）と照合され、それらが一致する場合、ステップ７０８において、レコード変更が台帳にコミットされる。その後、台帳の更新に対して同期的または非同期的のいずれかで、ステップ７１０において、データベーステーブルが新しい所有権を反映するように更新される。しかしながら、決定点７０６において、要求元識別が必要な許可を有していない場合、要求はステップ７１２において拒否される。
【００６０】
図８は、少なくとも１つの実施形態に従って、コンピューティングリソースサービスプロバイダに接続された顧客の一例を示す。コンピューティングリソースサービスプロバイダ８０２は、顧客８０４に様々なサービスを提供することができ、顧客８０４は、インタフェース８２６を介してコンピューティングリソースサービスプロバイダ８０２と通信することができ、インタフェース８２６は、ウェブサービスインタフェースまたは他の任意のタイプのカスタマインタフェースであってよい。図８では、コンピューティングリソースサービスプロバイダ８０２のサービスのための１つのインタフェース８２６を示しているが、各サービスはそれ自体のインタフェースを有し得、全般に、サービスのサブセットはインタフェース８２６に加えて、または代替として、対応するインタフェースを有し得る。顧客８０４は、コンピューティングリソースサービスプロバイダ８０２によって提供されるサービスのうちの１つまたは複数を利用して、様々な地理的場所に配置され得るその従業員に情報を保持し配信することができる組織であり得る。さらに、顧客８０４は、コンピューティングリソースサービスプロバイダ８０２のサービスを利用して、遠隔に位置する作業グループにコンテンツを配信する個人であってもよい。図８に示すように、顧客８０４は、ネットワーク８０６を介してコンピューティングリソースサービスプロバイダ８０２と通信することができ、それによってネットワーク８０６は、インターネット、イントラネット、またはインターネットサービスプロバイダ（ＩＳＰ）ネットワークなどの通信ネットワークとすることができる。顧客８０４からコンピューティングリソースサービスプロバイダ８０２へのいくつかの通信によって、コンピューティングリソースサービスプロバイダ８０２は、説明した１つまたは複数の実施形態またはその変形形態に従って動作することができる。
【００６１】
コンピューティングリソースサービスプロバイダ８０２は、その顧客に様々なコンピューティングリソースサービスを提供することができる。本例では、コンピューティングリソースサービスプロバイダ８０２によって提供されるサービスは、バーチャルコンピュータシステムサービス８０８、ブロックレベルデータ記憶サービス８１０、暗号化サービス８１２、オンデマンドデータ記憶サービス８１４、通知サービス８１６、認証システム８１８、ポリシー管理サービス８２０、タスクサービス８２２、及び１つまたは複数の他のサービス８２４を含む。記載される全ての実施形態が、図８を参照して説明されたサービス８０８〜８２４を含むわけではなく、明示的に説明されたサービスに加えて、または代替として、追加のサービスが提供されてもよいことに留意されたい。説明したように、８０８〜８２４のそれぞれは、顧客８０４が適切に構成されたＡＰＩ呼び出しを、ウェブサービス要求を介して様々なサービスに提出することを可能にする１つまたは複数のウェブサービスインタフェースを含むことができる。さらに、サービスのそれぞれは、（例えば、バーチャルコンピュータシステムサービス８０８のバーチャルコンピュータシステムを有効にするために、オンデマンドデータ記憶サービス８１４にデータを記憶し、またはそこからデータを取り出すために、及び／またはブロックレベルデータ記憶サービス８１０によって提供される１つまたは複数のブロックレベルデータ記憶装置にアクセスするために）サービスが互いにアクセスすることを可能にする１つまたは複数のサービスインタフェースを含むことができる。
【００６２】
バーチャルコンピュータシステムサービス８０８は、顧客８０４に代わってバーチャルマシンインスタンスをインスタンス化するように構成されたコンピューティングリソースの集まりであり得る。顧客８０４は、（適切に構成され認証されたＡＰＩ呼び出しを介して）バーチャルコンピュータシステムサービス８０８とインタラクトして、コンピューティングリソースサービスプロバイダ８０２によってホストされ、操作される物理コンピューティング装置上でインスタンス化されるバーチャルコンピュータシステムを供給し、操作することができる。バーチャルコンピュータシステムは、ウェブサイトをサポートするサーバとして動作するため、ビジネスアプリケーションを動作させるため、または一般に顧客のためのコンピューティングパワーとして機能するためなど、様々な目的に使用することができる。バーチャルコンピュータシステムの他のアプリケーションは、データベースアプリケーション、電子商取引アプリケーション、ビジネスアプリケーション、及び／または他のアプリケーションをサポートすることであり得る。図８にバーチャルコンピュータシステムサービス８０８が示されるが、仮想化もインスタンス化も使用せず、代わりに専用または共有のコンピュータ／サーバ及び／または他の物理装置上にコンピューティングリソースを供給するコンピュータシステムまたはコンピュータシステムサービスなど、コンピューティングリソースサービスプロバイダ８０２では、他の任意のコンピュータシステムまたはコンピュータシステムサービスを利用することができる。
【００６３】
ブロックレベルデータ記憶サービス８１０は、ブロックレベル記憶装置（及び／またはその仮想化）を使用して顧客８０４のためにデータを記憶するように集合的に動作する１つまたは複数のコンピューティングリソースを含むことができる。ブロックレベルデータ記憶サービス８１０のブロックレベル記憶装置は、例えば、バーチャルコンピュータシステムサービス８０８によって提供されるバーチャルコンピュータシステムに動作上接続されて、コンピュータシステムの論理ユニット（例えば、バーチャルドライブなど）として機能することができる。ブロックレベル記憶装置は、バーチャルコンピュータシステムサービス８０８が一時的なデータ記憶を提供するだけの場合、対応するバーチャルコンピュータシステムによって使用／生成されるデータの持続的記憶を可能にすることができる。
【００６４】
コンピューティングリソースサービスプロバイダ８０２はまた、暗号化サービス８１２を含む。暗号化サービス８１２は、コンピューティングリソースサービスプロバイダ８０２の１つまたは複数の記憶サービスを利用して、顧客の鍵を暗号化形式で記憶することができ、それによって、鍵は、暗号化サービス８１２の特定の装置のみにアクセス可能な顧客８０４の鍵を復号化するために使用することができる。
【００６５】
コンピューティングリソースサービスプロバイダ８０２は、オンデマンドデータ記憶サービス８１４をさらに含む。オンデマンドデータ記憶サービス８１４は、データを記憶及び／またはアクセスする要求を同期的に処理するように構成されたコンピューティングリソースの集まりであってもよい。オンデマンドデータ記憶サービス８１４は、オンデマンドデータ記憶サービス８１４がデータを迅速に見つけて検索することを可能にするコンピューティングリソース（例えばデータベース）を使用して動作して、データに対する要求に応答してデータを提供できるようにする。例えば、オンデマンドデータ記憶サービス８１４は、データオブジェクトに対する要求が検索されたときに、その要求に応答してデータオブジェクトを提供することができる（またはデータオブジェクトのストリーミングを開始することができる）ような方法で記憶データを維持することができる。上記のように、オンデマンドデータ記憶サービス８１４に記憶されたデータはデータオブジェクトに編成されてもよい。データオブジェクトは、あるいはサイズに関する特定の制約を別にすれば、任意のサイズを有することができる。したがって、オンデマンドデータ記憶サービス８１４は、様々なサイズの多数のデータオブジェクトを記憶することができる。オンデマンドデータ記憶サービス８１４は、オンデマンドデータ記憶サービス８１４によって格納されたデータオブジェクトに関連する他の操作を検索または実行するために顧客８０４によって使用され得るデータオブジェクトの識別子とデータオブジェクトを関連付けるキー値ストアとして動作し得る。
【００６６】
図８に示す環境には、通知サービス８１６が含まれる。通知サービス８１６は、ウェブサービスまたは他のインタフェース及びブラウザベースの管理コンソールを提供するように集合的に構成されたコンピューティングリソースの集合を備えることができる。管理コンソールを使用して、顧客が通知を受信しようとするトピックの設定、アプリケーション（またはユーザ）の設定、トピックへのクライアントの登録、メッセージの発行、またはクライアントの選択したプロトコルによるメッセージの配信の設定を行うことができる（すなわち、とりわけ、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、電子メール及びショートメッセージサービス（ＳＭＳ））。通知サービス８１６は、新しい情報及び更新について定期的にチェックまたは「ポーリング」する必要がなく、「プッシュ」メカニズムを使用してクライアントに通知を提供することができる。通知サービス８１６はさらに、バーチャルコンピュータシステムサービス８０８、ワークフローシステム、時間に敏感な情報の更新、モバイルアプリケーション、及び他の多くにおいて実行されているアプリケーションの監視など、様々な目的に使用することができる。
【００６７】
図８に示すように、コンピューティングリソースサービスプロバイダ８０２は、様々な実施形態において、認証システム８１８及びポリシー管理サービス８２０を含む。一実施形態において、認証システム８１８は、顧客であるユーザの認証に伴う動作を実行するように構成されたコンピュータシステム（すなわち、コンピューティングリソースの集まり）である。例えば、サービス８０８〜８１６及び８２０〜８２４のうちの１つは、ユーザからの要求が本物であるかどうかを示す情報を受信するために、ユーザからの情報を認証システム８１８に提供することができる。
【００６８】
一実施形態において、ポリシー管理サービス８２０は、コンピューティングリソースサービスプロバイダ８０２の顧客（顧客８０４など）の代わりにポリシーを管理するように構成されたコンピュータシステムである。ポリシー管理サービス８２０は、顧客がポリシー管理に関連する要求を提出することを可能にするインタフェースを含むことができる。そのような要求は、例えば、顧客に対するポリシー、または既存のポリシーの目録の提供などの他の管理行為に対するポリシーを追加、削除、変更、または他の方法で修正するための要求であり得る。
【００６９】
コンピューティングリソースサービスプロバイダ８０２はまた、様々な実施形態において、タスクサービス８２２を備えている。タスクサービス８２２は、顧客８０４からタスクパッケージを受信し、タスクパッケージによって指示される通りにタスクを実行することを可能にする構成となっている。タスクサービス８２２は、タスクを実行するために、１つまたは複数のインスタンス化されたバーチャルマシンまたはバーチャルホストなど、コンピューティングリソースサービスプロバイダ８０２の任意のリソースを使用するように構成され得る。タスクサービス８２２は、顧客８０４の要件に従って、選択されたオペレーティングシステム及び／または選択された実行アプリケーションを使用して動作するように、１つまたは複数のインスタンス化されたバーチャルマシンまたはバーチャルホストを構成することができる。
【００７０】
コンピューティングリソースサービスプロバイダ８０２は、その顧客８０４のニーズに少なくとも部分的に基づいて、１つまたは複数の他のサービス８２４をさらに維持する。例えば、コンピューティングリソースサービスプロバイダ８０２は、その顧客８０４のためにデータベースサービスを維持することができる。データベースサービスは、１人または複数人の顧客８０４向けに１つまたは複数のデータベースを実行するように集合的に動作するコンピューティングリソースの集まりであり得る。顧客８０４は、適切に構成されたＡＰＩ呼び出しを利用することによって、データベースサービスからデータベースを操作し、管理することができる。これにより、顧客８０４は、データベース内のオペレーションを維持し、場合によっては拡大縮小することが可能になる。他のサービスには、オブジェクトレベルのアーカイブデータストレージサービス、他のサービスを管理及び／または監視するサービスが含まれるが、これらに限定されない。
【００７１】
図９は、様々な実施形態による態様を実装するための環境９００の例の態様を示す。理解されるように、ウェブベースの環境が説明の目的のために使用されるが、多様な実施形態を実装するために異なる環境が必要に応じて使用され得る。環境は電子クライアント装置９０２を含み、この電子クライアント装置は、要求、メッセージ、または情報を適切なネットワーク９０４を介して送信及び／または受信するように、ならびに装置のユーザに情報を伝達して返すように作動する、任意の適切な装置を含み得る。係るクライアント装置の例には、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージング装置、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、埋込式コンピュータシステム、電子ブックリーダ等が挙げられる。ネットワークには、イントラネット、インターネット、セルラネットワーク、ローカルエリアネットワーク、衛星ネットワーク、もしくは任意の他の係るネットワーク及び／またはそれらの組み合わせを含む、任意の適切なネットワークが含まれ得る。そのようなシステムに使用されるコンポーネントは、選択されるネットワーク及び／または環境の種類に少なくとも部分的に依存することがある。係るネットワークを介して通信するためのプロトコル及びコンポーネントは周知であり、本明細書において詳細に説明されない。ネットワーク上の通信は、有線接続または無線接続及びそれらの組み合わせによって可能にすることができる。この例では、環境が要求を受信し、要求に応えてコンテンツを提供するためのウェブサーバ９０６を含むので、ネットワークはインターネット及び／または他の公衆通信ネットワークを含む。ただし、他のネットワークの場合、当業者に明白であるように、同様の目的を果たす代替の装置を使用できる。
【００７２】
例示的な環境は、少なくとも１つのアプリケーションサーバ９０８とデータストア９１０とを含む。いくつかのアプリケーションサーバ、層、もしくは他の素子、プロセス、またはコンポーネントが存在することがあり、これらはチェーン接続されるか、または別様で構成され得、適切なデータストアからデータを取得するなどのタスクを行うために影響し合うことがあり得ることが理解されるべきである。本明細書で用いられるようなサーバは、ハードウェア装置またはバーチャルコンピュータシステムなどの様々な方法で実装され得る。状況によっては、サーバとは、コンピュータシステム上で実行されているプログラミングモジュールを指し得る。本明細書で使用される「データストア」という用語は、データを記憶し、データにアクセスし、かつデータを読み出すことができる任意の装置または装置の組み合わせを指し、任意の標準、分散型、バーチャル、またはクラスタ化環境において、任意の組み合わせ及び任意の数のデータサーバ、データベース、データ記憶装置、及びデータ記憶媒体を含み得る。アプリケーションサーバは、必要に応じてデータストアと統合してクライアント装置のための１つまたは複数のアプリケーションの態様を実行し、データアクセス及びアプリケーションのためのビジネスロジックの大多数を処理するために任意の適切なハードウェア及びソフトウェアを含むことがある。アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供し、ユーザに転送されるテキスト、グラフィックス、音声、ビデオ、及び／またはユーザに提供するのに利用できる他のコンテンツを含むがこれに限定されないコンテンツを生成することができ、このコンテンツは、この例ではハイパーテキストマークアップ言語（「ＨＴＭＬ」）、拡張マークアップ言語（「ＸＭＬ」）、ＪａｖａＳｃｒｉｐｔ（登録商標）、カスケーディングスタイルシート（「ＣＳＳ」）、ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）、及び／または別の適切なクライアントサイド構造化言語の形でウェブサーバによってユーザに提供され得る。クライアント装置に転送されるコンテンツは、クライアント装置によって処理されて、以下に限定されるものではないが、ユーザに聴覚的に、視覚的に、及び／または他の感覚を通して知覚される形式を含む１つまたは複数の形式でコンテンツを提供し得る。全ての要求及び応答の処理、ならびにクライアント装置９０２とアプリケーションサーバ９０８との間のコンテンツの受け渡しは、この例では、ＰＨＰ：Ｈｙｐｅｒｔｅｘｔ  Ｐｒｅｐｒｏｃｅｓｓｏｒ（「ＰＨＰ」）、Ｐｙｔｈｏｎ、Ｒｕｂｙ、Ｐｅｒｌ、Ｊａｖａ（登録商標）、ＨＴＭＬ、ＸＭＬ、ＪＳＯＮ、及び／または別の適切なサーバサイド構造化言語を用いて、ウェブサーバ９０６によって処理することができる。さらに、本明細書で単一の装置によって実行されるものとして説明されている動作は、文脈から明らかでない限り、分散型及び／またはバーチャルシステムを形成することができる複数の装置によって集合的に実行することができる。
【００７３】
データストア９１０は、いくつかの別々のデータテーブル、データベース、データ文書、動的データ記憶方式、及び／または他のデータ記憶メカニズム、ならびに本開示の特定の態様に関するデータを記憶するための媒体を含むことができる。例えば、図示されたデータストアは、制作側にコンテンツを提供するために使用することができる生産データ９１２及びユーザ情報９１６を格納するためのメカニズムを含むことができる。データストアは、報告、分析、または他のそのような目的のために使用することができるログデータ９１４を格納するためのメカニズムも含むように示されている。ページ画像情報及びアクセス権情報など、データストアに格納する必要がある他の多くの態様があり得、これらは、必要に応じて上記のメカニズムのいずれかに格納され得るか、またはデータストア９１０の追加のメカニズムに格納され得ることが理解されるべきである。データストア９１０は、それに関連付けられた論理を通じて、アプリケーションサーバ９０８から命令を受信し、それに応答してデータを取得、更新、または他の方法で処理するように動作可能である。アプリケーションサーバ９０８は、受信した命令に応答して、静的データ、動的データ、または静的データと動的データとの組み合わせを提供することができる。ウェブログ（ブログ）、ショッピングアプリケーション、ニュースサービス、及び他のそのようなアプリケーションで使用されるデータなどの動的データは、本明細書で説明するようにサーバ側構造化言語によって生成することができ、または、アプリケーションサーバ上で、もしくはアプリケーションサーバの制御下で動作しているコンテンツ管理システム（「ＣＭＳ」）によって提供することができる。一例では、ユーザは、ユーザによって操作される装置を介して、特定の種類の品目についての検索要求を提出することができる。この場合、データストアはユーザ情報にアクセスしてユーザの識別情報を確認し、カタログ詳細情報にアクセスしてそのタイプの項目に関する情報を取得できる。次に情報は、ユーザがユーザ装置９０２上のブラウザを介して閲覧することができるウェブページ上の結果リストなどで、ユーザに返すことができる。関心のある特定の項目に関する情報は、ブラウザの専用ページまたはウィンドウに表示することができる。しかしながら、本開示の実施形態は、必ずしもウェブページのコンテキストに限定されるものではなく、リクエストが必ずしもコンテンツに対するリクエストではない場合、一般的なリクエストの処理によって一般的に適用可能であり得ることに着目すべきである。
【００７４】
各サーバは、通常、そのサーバの一般的な管理及び動作のための実行可能プログラム命令を提供するオペレーティングシステムを含み、通常は、サーバのプロセッサによって実行されるとき（すなわち、実行された結果として）、サーバがその意図された機能を実行することを可能にする命令を格納したコンピュータ可読記憶媒体（例えば、ハードディスク、ランダムアクセスメモリ、リードオンリーメモリ等）を含む。
【００７５】
一実施形態では、環境は、１つまたは複数のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続されたいくつかのコンピュータシステム及びコンポーネントを利用する分散型及び／またはバーチャルコンピューティング環境である。しかし、このようなシステムは、図９に示されているよりも少ない数、または多い数のコンポーネントを有するシステムにおいて、同等に良好に動作し得ることが当業者によって理解されるであろう。したがって、図９のシステム９００の記述は、本質的に例示的であり、本開示の範囲を限定するものではないと解釈されるべきである。
【００７６】
本開示の実施形態は、以下の条項を考慮したうえで記述することができる。
【００７７】
１．コンピュータ実行方法であって、
実行可能命令で構成される１つまたは複数のコンピュータシステムの制御下で、
ブロックチェーン台帳への第１の参照をコミットすることであって、前記第１の参照が少なくとも資産参照を含み、前記ブロックチェーン台帳にコミットされた前記第１の参照が変更できないようにする、前記第１の参照をコミットすること、
要求元に、データベーステーブル内のレコードとして前記第１の参照へのアクセスを提供すること、
前記ブロックチェーン台帳のインタフェースを介して、前記第１の参照に関連する所有権情報を更新する要求を受信すること、
前記第１の参照が前記所有権情報に関連付けられた鍵を含むと判断し、前記要求に関連付けられた１つまたは複数の許可を検証すること、
前記１つまたは複数の許可を検証し、前記資産参照を含む第２の参照と、要求に応じて更新された所有権情報を反映する第２の鍵とを生成すること、
前記ブロックチェーン台帳への前記第２の参照をコミットし、前記ブロックチェーン台帳にコミットされた前記第２の参照が変更できないようにする、前記第２の参照をコミットすること、及び
前記レコードが前記第２の参照内の少なくとも前記更新された所有権情報を反映するように、前記レコードへのアクセスを前記要求元に提供することを含む前記コンピュータ実行方法。
【００７８】
２．前記ブロックチェーン台帳が、少なくとも部分的に前記１つまたは複数の許可を検証することに基づいて前記第２の参照を受け入れる、条項１に記載のコンピュータ実行方法。
【００７９】
３．前記資産が、前記第１の参照の一部として前記ブロックチェーン台帳に含まれるデジタル資産である、条項１または２に記載のコンピュータ実行方法。
【００８０】
４．前記データベーステーブルの１つ以上のフィールドが、前記ブロックチェーン台帳にコミットされたスキーマによって定義される、条項１〜３のいずれかに記載のコンピュータ実行方法。
【００８１】
５．１つまたは複数のサービスを実装する少なくとも１つのコンピューティング装置であって、前記１つまたは複数のサービスが、
資産に関連する取引を取消不能に受け入れる暗号学的に保護された台帳を生成すること、
前記暗号学的に保護された台帳にコミットされた前記取引に関連して前記資産の状態を反映するデータベーステーブルを生成すること、ならびに
前記資産に関連する更新要求を少なくとも
前記更新要求に関連する許可を確認すること、
前記暗号学的に保護された台帳に、前記更新要求に関連付けられた１つまたは複数の取引をコミットすること、及び
前記１つまたは複数の取引に関連して前記資産の新しい状態を反映するように前記データベーステーブルを更新することによって処理することを行う前記コンピューティング装置を含むシステム。
【００８２】
６．前記１つまたは複数のサービスが、スキーマに関連して前記データベーステーブルをさらに生成する、条項５に記載のシステム。
【００８３】
７．前記スキーマが、前記資産に接続された取引として前記暗号学的に保護された台帳に格納される、条項６に記載のシステム。
【００８４】
８．前記スキーマが前記更新要求によって更新される、条項６または７に記載のシステム。
【００８５】
９．前記更新要求が、前記暗号学的に保護された台帳に関連付けられたインタフェースを介して、前記１つまたは複数のサービスによって受信される、条項５〜８のいずれかに記載のシステム。
【００８６】
１０．前記更新要求が、前記データベーステーブルへの書き込み操作の結果として受信される、条項５〜９のいずれかに記載のシステム。
【００８７】
１１．前記１つまたは複数のサービスが、前記資産が鍵に関連付けられるという結果として前記更新要求に関連付けられる前記許可を確認し、前記鍵が前記資産の所有者に関連付けられている、条項５〜１０のいずれかに記載のシステム。
【００８８】
１２．前記資産が、物理的資産またはデジタル資産である、条項５〜１１のいずれかに記載のシステム。
【００８９】
１３．コンピュータシステムの１つまたは複数のプロセッサによって実行された結果として、前記コンピュータシステムに
資産に関連する取引を受け入れる暗号学的に保護された台帳を生成すること、
前記暗号学的に保護された台帳にコミットされた前記取引に関連して前記資産の状態を反映するデータベーステーブルを生成すること、ならびに
資産に関連する取引を少なくとも
前記取引に関連する許可を確認すること、
暗号学的に保護された台帳に前記取引をコミットすること、及び
前記暗号学的に保護された台帳の状態に基づいて、前記取引から生じた前記資産の新しい状態を反映するようにデータベーステーブルを更新することによって処理すること、を少なくとも行わせる実行可能命令を格納した非一時的コンピュータ可読記憶媒体。
【００９０】
１４．前記取引が前記資産の所有者の更新に関連付けられた、条項１３に記載の非一時的コンピュータ可読記憶媒体。
【００９１】
１５．前記取引が前記許可の更新に関連付けられた、条項１３または１４に記載の非一時的コンピュータ可読記憶媒体。
【００９２】
１６．前記コンピュータシステムに前記許可を確認させる前記命令がさらに、前記取引に関連する署名を前記コンピュータシステムに検証させる命令を含む、条項１３〜１５のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【００９３】
１７．前記取引が、前記暗号学的に保護された台帳内の前記資産に関連する第１の取引セットに関連する第１のスキーマの、前記資産に関連する第２のスキーマへの更新に関連し、
前記命令が、前記１つまたは複数のプロセッサによって実行された結果として、前記コンピュータシステムに
前記第２のスキーマに関連付けられた新しい状態を反映するように前記データベーステーブルを更新して前記取引を処理すること、及び
前記資産に関連付けられた第２の取引セットを前記第２のスキーマに関連付け、前記第２の取引セットが、前記第２のスキーマに関連付けられた前記取引が前記台帳に書き込まれた後の時点で前記コンピュータシステムによって処理されることをさらに行わせる、条項１３〜１６のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【００９４】
１８．前記署名が、前記取引に関連付けられている要求元によって提供される、条項１６または１７に記載の非一時的コンピュータ可読記憶媒体。
【００９５】
１９．前記署名が、前記取引に関連付けられている要求元以外のエンティティによって提供される、条項１６〜１８のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【００９６】
２０．前記取引が、前記コンピュータシステムによって実行されるプログラム的インタフェースを介して受信される、条項１３〜１９のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【００９７】
様々な実施形態は、多種多様な動作環境でさらに実装することができ、場合によっては、多数のアプリケーションのうちの任意のものを動作させるために使用することができる１つまたは複数のユーザコンピュータ、コンピューティング装置または処理装置を含むことができる。ユーザ装置またはクライアント装置は、標準的なオペレーティングシステムを実行するデスクトップコンピュータ、ラップトップコンピュータ、またはタブレットコンピュータ、ならびにモバイルソフトウェアを実行し、多数のネットワーク及びメッセージングプロトコルをサポートすることができるセルラ装置、ワイヤレス装置、及びハンドヘルド装置など、任意の多数のコンピュータを含むことができる。そのようなシステムは、開発及びデータベース管理などの目的のために、様々な市販のオペレーティングシステム及び他の既知のアプリケーションのいずれかを実行している多数のワークステーションを含むこともできる。これらの装置は、ダミー端末、シンクライアント、ゲームシステム、及びネットワークを介して通信することができる他の装置などの他の電子装置を含むこともできる。これらの装置は、バーチャルマシン、ハイパーバイザ、及びネットワークを介して通信することができる他のバーチャル装置などのバーチャル装置を含むこともできる。
【００９８】
本開示の様々な実施形態は、伝送制御プロトコル／インターネットプロトコル（「ＴＣＰ／ＩＰ」）、ユーザーデータグラムプロトコル（「ＵＤＰ」）、開放型システム間相互接続（「ＯＳＩ」）モデルの様々な層で動作するプロトコル、ファイル転送プロトコル（「ＦＴＰ」）、ユニバーサルプラグアンドプレイ（「ＵｐｎＰ」）、ネットワークファイルシステム（「ＮＦＳ」）、共通インターネットファイルシステム（「ＣＩＦＳ」）、及びＡｐｐｌｅＴａｌｋ等の様々な市販のプロトコルのいずれかを使用した通信をサポートするために、当業者によく知られているであろう少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、バーチャルプライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク、及びそれらの任意の組み合わせとすることができる。いくつかの実施形態では、コネクション型のプロトコルを使用して、ネットワークエンドポイント間で通信することができる。コネクション型のプロトコル（コネクションベースのプロトコルと呼ばれることもある）は、順序付きストリームでデータを送信できる。コネクション型のプロトコルは、信頼性が高いものと低いものとがある。例えば、ＴＣＰプロトコルは信頼性の高いコネクション型のプロトコルである。非同期転送モード（「ＡＴＭ」）及びフレームリレーは、信頼性の低いコネクション型のプロトコルである。コネクション型のプロトコルは、保証された順序付けなしでパケットを送信するＵＤＰなどのパケット型のプロトコルとは対照的である。
【００９９】
ウェブサーバを利用する実施形態では、ウェブサーバは、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）サーバ、ＦＴＰサーバ、共通ゲートウェイインタフェース（「ＣＧＩ」）サーバ、データサーバ、Ｊａｖａ（登録商標）サーバ、Ａｐａｃｈｅサーバ、及びビジネスアプリケーションサーバを含む様々なサーバまたは中間層アプリケーションのうちのいずれかを実行することができる。サーバ（複数可）は、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、もしくはＣ＋＋などの任意のプログラミング言語、またはＲｕｂｙ、ＰＨＰ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、もしくはＴＣＬなどの任意のスクリプト言語、ならびにそれらの組み合わせで記述された１つまたは複数のスクリプトまたはプログラムとして実装され得る１つまたは複数のウェブアプリケーションを実行することによってなど、ユーザ装置からの要求に応じてプログラムまたはスクリプトを実行することもできる。サーバ（複数可）は、データベースサーバを含むこともでき、これには、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、及びＩＢＭ（登録商標）から市販されているサーバ、ならびにＭｙＳＱＬ、Ｐｏｓｔｇｒｅｓ、ＳＱＬｉｔｅ、ＭｏｎｇｏＤＢなどのオープンソースのサーバ、ならびに構造化または非構造化データを格納、検索、及びアクセスすることができる任意の他のサーバが含まれるが、これらに限定されない。データベースサーバは、テーブルベースのサーバ、ドキュメントベースのサーバ、非構造化サーバ、リレーショナルサーバ、非リレーショナルサーバ、あるいはこれら及び／または他のデータベースサーバの組み合わせを含み得る。
【０１００】
環境は、上記の通り、様々なデータ記憶装置ならびに他のメモリ及び記憶媒体を含むことができる。これらは、１つまたは複数のコンピュータに対してローカルな（及び／またはそこに常駐する）記憶媒体上、あるいはネットワークを介して、任意のまたは全てのコンピュータから離れた記憶媒体上など、様々な場所に存在することができる。実施形態の特定のセットでは、情報は当業者によく知られているストレージエリアネットワーク（「ＳＡＮ」）に存在し得る。同様に、コンピュータ、サーバまたは他のネットワーク装置にあるとする機能を実行するために必要なファイルは、必要に応じてローカル及び／またはリモートに格納することができる。システムがコンピュータ化された装置を含む場合、そのような装置の各々は、バスを介して電気的に結合され得るハードウェア要素を含むことができ、その要素は、例えば、少なくとも１つの中央演算処理装置（「ＣＰＵ」または「プロセッサ」）、少なくとも１つの入力装置（例えば、マウス、キーボード、コントローラ、タッチスクリーンまたはキーパッド）、及び少なくとも１つの出力装置（例えば、表示装置、プリンタ、またはスピーカ）を含む。また、このようなシステムは、例えば、ディスクドライブ、光学式記憶装置などの１つ以上の記憶装置、及びランダムアクセスメモリ（「ＲＡＭ」）または読出し専用メモリ（「ＲＯＭ」）などのソリッドステート記憶装置、ならびに取り外し可能な媒体デバイス、メモリカード、フラッシュカードを含んでもよい。
【０１０１】
そのような装置は、コンピュータ可読記憶媒体リーダ、通信装置（例えば、モデム、ネットワークカード（無線または有線）、赤外線通信装置など）、及び上記のように作業メモリを含むこともできる。コンピュータ可読記憶媒体リーダは、リモート記憶装置、ローカル記憶装置、固定記憶装置及び／または取り外し可能な記憶装置を表すコンピュータ可読記憶媒体、ならびにコンピュータ可読情報を一時的に及び／またはより恒久的に含む、記憶する、送信する及び取り出すための記憶媒体と接続できる、またはそれらを受信するように構成できる。システム及び様々な装置はまた、典型的には、オペレーティングシステム及びクライアントアプリケーションまたはウェブブラウザ等のアプリケーションプログラムを含む、少なくとも１つのワーキングメモリ装置内に配置された、いくつかのソフトウェアアプリケーション、モジュール、サービス、または他の要素を含む。加えて、カスタマイズされたハードウェアを使用したり、及び／または特定の要素をハードウェア、ソフトウェア（アプレットなどの携帯用ソフトウェアを含む）、またはその両方に実装したりすることもできる。さらに、ネットワーク入力／出力装置などの他のコンピューティング装置への接続を使用することができる。
【０１０２】
コードまたはコードの一部を格納するための記憶媒体及びコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、電気的消去可能プログラマブル読み出し専用メモリ（「ＥＥＰＲＯＭ」）、フラッシュメモリもしくは他のメモリ技術、コンパクトディスク読み出し専用メモリ（「ＣＤ−ＲＯＭ］）、デジタルバーサタイルディスク（ＤＶＤ）、もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶装置、または所望の情報を記憶するために使用することができ、かつシステム装置によってアクセスできる任意の他の媒体を含む、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータ等の情報の記憶及び／または送信のために任意の方法または技術で実装される揮発性及び不揮発性の媒体、取り外し可能及び取り外し不可能な媒体等であるが、これに限定されるものではない記憶媒体及び通信媒体を含む当技術分野において既知の、または使用される任意の適切な媒体を含むことがある。本明細書に提供される開示及び教示に基づいて、当業者は様々な実施形態を実施するための他の方法及び／または手法を理解するであろう。
【０１０３】
したがって、明細書及び図面は、限定的な意味ではなく、例示的なものと見なされるべきである。しかしながら、特許請求の範囲に記載された本発明のより広い趣旨及び範囲から逸脱することなく、様々な修正及び変更がなされてもよいことは明らかであろう。
【０１０４】
他の変形は、本開示の趣旨の範囲内である。したがって、開示された技術は様々な修正及び代替的な構成を受け入れる余地があるが、その特定の例示された実施形態が図面に示されており、上で詳細に説明されている。また一方、本発明を特定の形態または開示された形態に限定する意図はなくて、それどころか、その意図は、添付の特許請求の範囲で定義されるように、本発明の趣旨及び範囲内にある全ての修正形態、代替構造、及び等価物を網羅することであるということが理解されるべきである。
【０１０５】
開示された実施形態を説明する文脈における（特に特許請求の範囲の文脈における）用語「ａ」及び「ａｎ」及び「ｔｈｅ」及び類似の指示対象の使用は、本明細書で別段の指示がない限り、または文脈によって明らかに矛盾しない限り、単数及び複数の両方を含むものと解釈される。用語「含む（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、及び「含有する（ｃｏｎｔａｉｎｉｎｇ）」は、特に断りのない限り、非制限型の用語（すなわち、「含むが、限定されない」という意味）として解釈されるべきである。「接続される」という用語は、変更されずに物理的な接続を指す場合、たとえ介在するものがあっても、部分的にまたは全体的にその中に含まれる、取り付けられる、または一緒に結合されると解釈される。本明細書における値の範囲の記載は、本明細書において別段の指示がない限り、その範囲内にある各個別の値を個別に参照するための簡潔な方法としての役割を果たすことのみを意図しており、各個別の値は、本明細書において個別に列挙されているものとして明細書に組み込まれる。特に明記しない限り、または文脈によって矛盾しない限り、用語「セット」（例えば、「アイテムのセット」）または「サブセット」の使用は、１つ以上のメンバーを含む空でない集合として解釈されるべきである。さらに、文脈によって特に指摘または矛盾がない限り、対応するセットの用語「サブセット」は、対応するセットの適切なサブセットを必ずしも意味しないが、サブセット及び対応するセットは等しくてもよい。
【０１０６】
特に明記しない限り、または文脈によって明らかに矛盾しない限り、「Ａ、Ｂ、及びＣのうちの少なくとも１つ」または「Ａ、Ｂ及びＣのうち少なくとも１つは」の形式の句などの接続語は、他の点では一般に使用される文脈で理解され、項目、用語などは、ＡまたはＢまたはＣ、あるいはＡ及びＢ及びＣのセットの任意の空でないサブセットであり得ることを示す。例えば、３つのメンバーを有するセットの例示的な例では、接続句「Ａ、Ｂ、及びＣのうちの少なくとも１つ」及び「Ａ、Ｂ及びＣのうちの少なくとも１つ」は、以下のセットのいずれかを指す。すなわち、｛Ａ｝、｛Ｂ｝、｛Ｃ｝、｛Ａ，Ｂ｝、｛Ａ，Ｃ｝、｛Ｂ，Ｃ｝、｛Ａ，Ｂ，Ｃ｝である。したがって、そのような接続語は一般に、特定の実施形態が、少なくとも１つのＡ、少なくとも１つのＢ、及び少なくとも１つのＣがそれぞれ存在することを必要とすることを意味することを意図するものではない。
【０１０７】
本明細書に記載の方法の操作は、本明細書に別段の指示がない限り、または文脈によって明らかに矛盾しない限り、任意の適切な順序で実行することができる。本明細書に記載のプロセス（またはその変形及び／または組み合わせ）は、実行可能な命令で構成された１つまたは複数のコンピュータシステムの制御下で実行することができ、１つまたは複数のプロセッサ上で集合的に実行するコード（例えば、実行可能命令、１つもしくは複数のコンピュータプログラムまたは１つもしくは複数のアプリケーション）として、ハードウェアまたはそれらの組み合わせによって実装することができる。コードは、例えば、１つまたは複数のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形で、コンピュータ可読記憶媒体に記憶することができる。コンピュータ可読記憶媒体は、非一時的であり得る。いくつかの実施形態において、コードは、コンピュータシステムの１つまたは複数のプロセッサによって実行されたときに（すなわち、実行された結果として）、コンピュータシステムに本明細書で説明される動作を実行させる実行可能命令を記憶した１つまたは複数の非一時的コンピュータ可読記憶媒体のセットに記憶される。１組の非一時的コンピュータ可読記憶媒体は複数の非一時的コンピュータ可読記憶媒体を含むことができ、複数の非一時的コンピュータ可読記憶媒体のうちの１つまたは複数の個々の非一時的記憶媒体は全てのコードを欠いていてもよい一方、複数の非一時的コンピュータ可読記憶媒体は、全てのコードを集合的に格納する。さらに、いくつかの例では、実行可能命令は、異なる命令が異なるプロセッサによって実行されるように実行される。実例として、非一時的コンピュータ可読記憶媒体は命令を格納することができる。メインＣＰＵが命令の一部を実行することができ、グラフィックプロセッサユニットが他の命令を実行することができる。一般に、コンピュータシステムの異なるコンポーネントは、別々のプロセッサを有することができ、それぞれのプロセッサが、命令の異なるサブセットを実行することができる。
【０１０８】
したがって、いくつかの例では、コンピュータシステムは、本明細書で説明されるプロセスの動作を単独でまたは集合的に実行する１つまたは複数のサービスを実装するように構成される。そのようなコンピュータシステムは、例えば、動作の実行を可能にする適用可能なハードウェア及び／またはソフトウェアを用いて構成することができる。さらに、本開示の様々な実施形態を実現するコンピュータシステムは、いくつかの例では、単一の装置であってもよく、他の例では、分散型コンピュータシステムが本明細書に記載の動作を実行するように、及び単一の装置が全ての動作を実行しないように、異なる動作をする複数の装置を含む分散型コンピュータシステムであってもよい。
【０１０９】
本明細書で提供されるありとあらゆる例、または例示的な言語（例えば、「など」）の使用は、単に本発明の実施形態をさらに明らかにすることを意図しており、別段の請求がない限り、本発明の範囲を限定するものではない。本明細書中のいかなる文言も、特許請求されていない要素を本発明の実施に必須であると示すものと解釈すべきではない。
【０１１０】
本発明を実施するために本発明者らが知っている最良の形態を含め、本開示の実施形態を本明細書に記載する。これらの実施形態の変形は、前述の説明を読めば当業者には明らかになるであろう。本発明者らは、当業者がそのような変形形態を適切に採用することを期待しており、本発明者らは、本開示の実施形態が本明細書に具体的に記載されたものとは異なる方法で実施されることを意図している。したがって、本開示の範囲は、適用法によって許容されるように、本明細書に添付された特許請求の範囲に記載される主題の全ての修正形態及び均等物を含む。さらに、上記の要素の全ての可能な変形形態における任意の組み合わせは、本明細書で別段の指示がない限り、または文脈によって明らかに矛盾しない限り、本開示の範囲に包含される。
【０１１１】
本明細書に引用されている刊行物、特許出願、及び特許を含む全ての参考文献は、各参考文献が個々に具体的に参照によって組み込まれるように示され、その全体が本明細書に記載されているのと同じ程度に、参照により本明細書に組み込まれる。
【図１】
2019535076.tif 000003
【図２】
2019535076.tif 000004
【図３】
2019535076.tif 000005
【図４】
2019535076.tif 000006
【図５】
2019535076.tif 000007
【図６】
2019535076.tif 000008
【図７】
2019535076.tif 000009
【図８】
2019535076.tif 000010
【図９】
2019535076.tif 000011
【国際調査報告】
2019535076.tif 000012