(57)【要約】  本明細書で説明されたシステムおよび方法は、一般に、データを格納および検証することに関する。いくつかの実施形態において、基準レベルは時間間隔に従って生成され、第１の基準レベルは所定の数の時間間隔を含み、残る基準レベルの時間間隔のそれぞれは以前の基準レベルの所定の数の時間間隔で構成される。データのハッシュは、時間で並べられた手法でデータに対してハッシュ関数を実行することによって、第１の基準レベルで作成されてよい。第１の基準レベル時間間隔ハッシュは、第１の基準レベルの時間間隔のそれぞれで、データのハッシュに対してハッシュ関数を実行することによって生成されることがある。残る基準レベルの時間間隔に対するハッシュは、以前の基準レベルの時間間隔のそれぞれのハッシュに対してハッシュ関数を実行することによって生成されてよい。
2018533320.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]イベントの順序を認証することによって、イベントを再配列することが発生することはなく、検証データを無効にすることはない。比較データはデータが変化しなかったことを立証するために、検査人に提供されることがある。このように現代のデータフローの高速かつ高容量の性質は、規制による要求に応じて、月ごとの、四半期ごとの、または１年ごとの従来の検査間隔で適合されてよい。
【００５５】
[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]要するに本開示は、データを格納および検証するための斬新なシステム、方法、および配置を提供する。本開示の１つまたは複数の実施形態の詳細な説明が上記に与えられてきたが、様々な代替形態、変更形態、および均等物は、本開示の趣旨から変わることなく当業者には明白であろう。例えば上記で説明された実施形態は特定の特性を指すが、本開示の範囲は特性の異なる組合せを有する実施形態、および説明された特性のすべてを含まない実施形態も含む。それに応じて本開示の範囲は、そのすべての均等物と一緒に特許請求の範囲のうちに入るように、このような代替形態、変更形態、および変形形態すべてを受容することが意図される。したがって上記の説明は限定的であると取られるべきではない。
【図１】
2018533320.tif 000003
【図２】
2018533320.tif 000004
【図３】
2018533320.tif 000005
【図４】
2018533320.tif 000006
【図５】
2018533320.tif 000007
【図６】
2018533320.tif 000008
【図７】
2018533320.tif 000009
【国際調査報告】
2018533320.tif 000010