(57)【要約】      （修正有）【課題】ブロックチェーンと連携し、チェーニングデータのために使用可能な検証システム及び方法を提供する。【解決手段】検証システム１０ｂは、セキュリティプロトコル装置１００、ブロックチェーン装置３００、複数の端末装置４００及びデータベース装置２００を含む。セキュリティプロトコル装置は、記録データを受信しバイナリーツリーに統合し、ルートハッシュをブロックチェーン装置に送信する。ブロックチェーン装置は、直列方式でチェーンされたデータセットを含むチェーンデータストリングを含む。各データセットのチェーンハッシュはルートハッシュ及び直前のデータセットのチェーンハッシュに関連付けられている。第１のデータセットのチェーンハッシュはイニシャルチェーンハッシュに関連付けられている。セキュリティプロトコル装置はさらに、バイナリーツリー及びイニシャルチェーンハッシュをデータベース装置に保存する。【選択図】図５
2020182215.tif 000002
【特許請求の範囲】
【請求項１】
セキュリティプロトコル装置によって実行される検証方法であって、
オフチェーン方式によりデータベースに複数のバイナリーツリーを保存する工程であって、それぞれの前記バイナリーツリーはルートおよび複数のリーフノードを含み、それぞれの前記リーフノードがルートハッシュを保存する、オフチェーン方式によりデータベースに複数のバイナリーツリーを保存する工程、
読み取り要求を受信する工程、
前記読み取り要求に応じて、前記データベースからの前記ルートハッシュおよびブロックチェーンからの固有のルートハッシュを読み取る工程、
計算されたルートハッシュを決定するために、前記データベースから読み出された前記ルートハッシュに対してハッシュ化およびチェーニング処理を実行する工程、および、
前記データベースにおける前記ルートハッシュの正確さを検証するために、前記固有のルートハッシュを、前記計算されたルートハッシュと比較する工程、
を含む、検証方法。
【請求項２】
ハッシュ化およびチェーニング処理を実行する前記工程は、
直列方式によりチェーンされた、複数のオフチェーンデータセットを生成する工程を含み、
それぞれの前記オフチェーンデータセットは、前記データベースから読み取られた前記ルートハッシュのそれぞれ１つと、対応する第１のチェーンハッシュとを含み、最初の前記オフチェーンデータセットの前記第１のチェーンハッシュは、イニシャルチェーンハッシュのハッシュ化により生成され、前記最初のオフチェーンデータセット以後のそれぞれのオフチェーンデータセットの第１のチェーンハッシュは、直前の前記オフチェーンデータセットのハッシュ化により生成され、最後の前記オフチェーンデータセットの前記ルートハッシュは、前記計算されたルートハッシュである、請求項１に記載の検証方法。
【請求項３】
複数の記録データの値を受け取る工程、および、
ハッシュ値が前記リーフノードにそれぞれ保存されている前記記録データの値を、前記バイナリーツリーにハッシュ関数に従って統合する工程、および
前記ブロックチェーンに前記バイナリーツリーの前記ルートハッシュを保存する工程、
をさらに含む
請求項２に記載の検証方法。
【請求項４】
前記ブロックチェーンに保存された前記ルートハッシュは、チェーンデータストリングに含まれ、前記チェーンデータストリングは直列方式によりチェーンされた複数のデータセットを含み、それぞれの前記データセットは、前記ブロックチェーンに保存されている前記ルートハッシュのそれぞれ１つおよび対応する第２のチェーンハッシュを含み、最初の前記データセットの前記第２のチェーンハッシュは前記イニシャルチェーンハッシュのハッシュ化により生成され、前記最初のデータセット以後のそれぞれのデータセットの第２のチェーンハッシュは、直前の前記データセットのハッシュ化により生成され、最後の前記データセットの前記ルートハッシュは、前記固有のルートハッシュである
請求項３に記載の検証方法。
【請求項５】
前記データセットが、それぞれ、識別シーケンス番号を含むように、複数の前記識別シーケンス番号を前記ブロックチェーンに送信する工程をさらに含み、
それぞれの前記識別シーケンス番号はタイムスタンプを含む、請求項４に記載の検証方法。
【請求項６】
それぞれの前記オフチェーンデータセットは、識別シーケンス番号および累積シーケンス番号をさらに含み、それぞれの前記累積シーケンス番号は、それぞれの前記オフチェーンデータセットの前記ルートハッシュにそれぞれ対応し、それぞれの前記オフチェーンデータセットの前記累積シーケンス番号は、直前の前記オフチェーンデータセットの前記累積シーケンス番号から導出された累積値であり、それぞれの前記オフチェーンデータセットの前記第１のチェーンハッシュは、前記直前のオフチェーンデータセットの前記ルートハッシュと、前記識別シーケンス番号と、前記累積シーケンス番号と、前記第１のチェーンハッシュとのハッシュ化により生成される、
請求項２に記載の検証方法。
【請求項７】
メモリと、
前記メモリに連結するように構成されたプロセッサであって、
オフチェーン方式によりデータベースに複数のバイナリーツリーを保存し、それぞれの前記バイナリーツリーはルートおよび複数のリーフノードを含み、それぞれの前記リーフノードはルートハッシュを保存し、
読み取り要求を受信し、
前記読み取り要求に応じて、前記データベースからの前記ルートハッシュおよびブロックチェーンからの固有のルートハッシュを読み取り、
計算されたルートハッシュを決定するために、前記データベースから読み取られた前記ルートハッシュに対してハッシュ化およびチェーニング処理を実行し、および、
前記データベースの前記ルートハッシュの正確さを検証するために前記固有のルートハッシュを、前記計算されたルートハッシュと比較するように構成されているプロセッサと、
を含むセキュリティプロトコル装置。
【請求項８】
前記プロセッサは、
直列方式によりチェーンされた複数のオフチェーンデータセットを生成し、それぞれの前記オフチェーンデータセットは、前記データベースから読み取られた前記ルートハッシュのそれぞれ１つと、対応する第１のチェーンハッシュとを含み、最初の前記オフチェーンデータセットの前記第１のチェーンハッシュはイニシャルチェーンハッシュをハッシュ化することによって生成され、前記最初のオフチェーンデータ以後のそれぞれのオフチェーンデータセットの第１のチェーンハッシュは直前の前記オフチェーンデータセットのハッシュ化により生成され、最後の前記オフチェーンデータセットの前記ルートハッシュは前記計算されたルートハッシュである、ようにさらに構成されている
請求項７に記載のセキュリティプロトコル装置。
【請求項９】
前記プロセッサは、
複数の記録データ値を受信し、
ハッシュ値が前記リーフノードにそれぞれ保存されている前記記録データ値をバイナリーツリーにハッシュ関数に従って統合し、
および、
前記ブロックチェーンに前記バイナリーツリーの前記ルートハッシュを保存する、
ようにさらに構成される、
請求項８に記載のセキュリティプロトコル装置。
【請求項１０】
前記ブロックチェーンに保存されている前記ルートハッシュがチェーンデータストリングに含まれ、前記チェーンデータストリングは直列方式によりチェーンされた複数のデータセットを含み、前記データセットのそれぞれは前記ブロックチェーンに保存されている前記ルートハッシュのそれぞれ１つと、対応する第２のチェーンハッシュとを含み、最初の前記データセットの前記第２のチェーンハッシュは、前記イニシャルチェーンハッシュのハッシュ化により生成され、前記最初のデータセット以後のそれぞれのデータセットの第２のチェーンハッシュは、直前の前記データセットのハッシュ化により生成され、最後の前記データセットの前記ルートハッシュは前記固有のルートハッシュである、請求項９に記載のセキュリティプロトコル装置。
【請求項１１】
それぞれの前記オフチェーンデータセットは、識別シーケンス番号および累積シーケンス番号をさらに含み、それぞれの前記累積シーケンス番号は、それぞれの前記オフチェーンデータセットの前記ルートハッシュにそれぞれ対応し、それぞれの前記オフチェーンデータセットの前記累積シーケンス番号は、直前の前記オフチェーンデータセットの前記累積シーケンス番号から導出された累積値であり、それぞれの前記オフチェーンデータセットの前記第１のチェーンハッシュは、前記直前のオフチェーンデータセットの前記ルートハッシュと、前記識別シーケンス番号と、前記累積シーケンス番号と、前記第１のチェーンハッシュとのハッシュ化により生成される、請求項８に記載のセキュリティプロトコル装置。
【請求項１２】
複数のルートハッシュをセキュリティプロトコル装置から受信する工程、
前記ルートハッシュに従ってチェーンデータストリングを生成する工程であって、前記チェーンデータストリングは、直列方式によりチェーンされた複数のデータセットを含み、それぞれの前記データセットは、前記ルートハッシュのそれぞれ１つおよび対応するチェーンハッシュを含み、最初の前記データセットの前記チェーンハッシュはイニシャルチェーンハッシュのハッシュ化により生成され、前記最初のデータセット以後のそれぞれのデータセットの前記チェーンハッシュは直前の前記データセットのハッシュ化により生成される工程、および、
固有のルートハッシュを前記セキュリティプロトコル装置に送信する工程であって、前記固有のルートハッシュはセキュリティプロトコル装置に、オフチェーン方式によりデータベースに保存されている複数のバイナリーツリーの正確さを検証するために提供される工程、を含み、
前記固有のルートハッシュは前記チェーンデータストリングのデータセクション中の最後の前記データセットの前記ルートハッシュであり、前記データセクションは前記セキュリティプロトコル装置に提供された読み取り要求により示されたデータ読み取り範囲に対応する、
ブロックチェーン装置により実行される方法。
【請求項１３】
前記データセットのそれぞれは、識別シーケンス番号をさらに含み、前記識別シーケンス番号のそれぞれは、それぞれの前記データセットの前記ルートハッシュにそれぞれ対応し、それぞれの前記データセットの前記チェーンハッシュは、直前の前記データセットの前記ルートハッシュと、前記識別シーケンス番号と、前記チェーンハッシュとに関連付けられている、請求項１２に記載の方法。
【請求項１４】
それぞれの前記データセットは累積シーケンス番号をさらに含み、それぞれの前記累積シーケンス番号がそれぞれの前記データセットの前記ルートハッシュにそれぞれ対応し、それぞれの前記データセットの前記累積シーケンス番号は、直前の前記データセットの前記累積シーケンス番号から導出された累積値であり、それぞれの前記データセットの前記チェーンハッシュは、前記直前のデータセットの前記ルートハッシュと、識別シーケンス番号と、前記累積シーケンス番号と、前記チェーンハッシュとに関連付けられている請求項１２に記載の方法。
【請求項１５】
メモリと、
前記メモリに連結するように構成されたプロセッサであって、
セキュリティプロトコル装置から複数のルートハッシュを受信し、
前記ルートハッシュに従って、チェーンデータストリングを生成し、
ここで前記チェーンデータストリングは、直列方式によりチェーンされた複数のデータセットを含み、それぞれの前記データセットは、前記ルートハッシュのそれぞれ１つおよび対応するチェーンハッシュを含み、最初の前記データセットの前記チェーンハッシュはイニシャルチェーンハッシュのハッシュ化により生成され、前記最初のデータセット以後のそれぞれのデータセットの前記チェーンハッシュは直前の前記データセットのハッシュ化により生成され、
オフチェーン方式によりデータベースに保存されている複数のバイナリーツリーの正確さの検証のために前記セキュリティプロトコル装置へ提供される固有のルートハッシュを、前記セキュリティプロトコル装置に送信する、
ように構成されているプロセッサと、
を備え、
前記固有のルートハッシュは、前記チェーンデータストリングのデータセクション中の最後の前記データセットの前記ルートハッシュであり、前記データセクションは前記セキュリティプロトコル装置に提供された読み取り要求に示されたデータ読み取り範囲に対応する、ブロックチェーン装置。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
〔関連出願の相互参照〕
本非仮出願は、米国特許法１１９（ａ）に基づいて、２０１９年４月２４日に台湾、中華民国に出願された特許出願第１０８１１４３８９号の優先権を主張し、その全内容は参照により本明細書に組み込まれる。
【０００２】
〔技術分野〕
本発明は検証システムに関し、特に、ブロックチェーンと連携し、チェーニングデータのために使用することができる検証システムおよび方法に関する。
【０００３】
〔背景技術〕
従来技術において、ブロックチェーンは中央分散を達成するために分散アーキテクチャを採用している。世界の端末コンピュータは、ブロックチェーンによって接続することができる。任意の端末コンピュータによってブロックチェーンに送信されたデータは、固有の処理モードによってブロックチェーン上の他の端末コンピュータに配信することができる。これらのデータはブロックチェーン上の多数の端末コンピュータに保存されるため、データの正確さは、ブロックチェーン上の多数の端末コンピュータによって相互に検証することができ、ブロックチェーンのデータを変更または改ざんすることを困難にする。
【０００４】
従来の端末の中央化されたアーキテクチャにおいて、端末コンピュータがサーバにデータをアップロードするか、またはサーバからデータをダウンロードする必要がある場合、このタスクは、端末コンピュータ、中央サーバ、およびこれら２つの間のネットワークサーバといった限定された装置の処理のみを呼び出す。このタスクは、現行のネットワーク速度およびコンピュータ計算能力の観点から極めて迅速に実行することができる。しかしながら、ブロックチェーンのアーキテクチャにおいて、端末コンピュータがブロックチェーンの特性に基づいて、ブロックチェーンにデータをアップロードするか、またはブロックチェーンからデータをダウンロードする必要があるとき、このタスクはブロックチェーン上の多数の他の端末コンピュータ（マイナーなど）の検証手順を呼び出す。その結果、膨大なネットワーク送信要件および処理金額が発生し、これは比較的時間がかかり、処理コスト（例えば、マイナーのための料金）が高くなる。
【０００５】
概して、ブロックチェーンは、バイナリーツリーまたはメルクルツリーを使用するツリー状のデータ構成である。全てのデータは、ハッシュ値を生成するためにハッシュ化される。バイナリーツリーは、最上層にルートを含み、最下層に複数のリーフノードを含む。リーフノードにはデータ毎のハッシュ値が保存されており、全てのリーフノードのハッシュ値は階層毎に処理されて、ツリーのルートにルートハッシュが生成される。すべてのバイナリーツリーは、ブロックチェーン上の端末コンピュータに保存される。バイナリーツリーのデータの正確さを検証するために、バイナリーツリーの正確さおよびそのデータは、端末コンピュータ上のバイナリーツリーのルートハッシュを比較することによって検証することができる。
【０００６】
〔概要〕
既存のブロックチェーンによれば、ブロックチェーン上の多数のデータを読み取るとき、負荷がブロックチェーン上の端末コンピュータに発生し、効率が良くはない。さらに、もし多数のデータの読み取り処理がブロックチェーン上の端末コンピュータにより悪意のある行為とみなされたならば、読み取り要求はブロックチェーン上の端末コンピュータによりブロックされ、データは読み取れない。さらに悪いことに、読み取り要求を発行するネットワークアドレスは、ブロックチェーン上の端末コンピュータによりブラックリスト化され、ブロックチェーンはもはや端末コンピュータによりアクセスすることができない。
【０００７】
この観点から、本発明は、ブロックチェーン上の多数のデータの読み取りにより引き起こされる非効率性の問題を解決し、多数の読み取りによって引き起こされるブロックチェーンの巨大なネットワーク送信要件およびブロックチェーンの処理負荷の問題を解決するために、チェーニングデータのための検証システムおよび方法を提供する。
【０００８】
本発明の実施形態は、ブロックチェーンおよびチェーニングデータの連携に適した検証システムを提供する。検証システムは、セキュリティプロトコル装置と、ブロックチェーン装置と、データベース装置とを含む。セキュリティプロトコル装置は、複数の記録データを受信し、記録データを複数のバイナリーツリーにハッシュ関数に従って統合する。それぞれのバイナリーツリーは、ルートおよびリーフノードを含む。ルートのそれぞれは、ルートハッシュを保存し、記録データのハッシュ値はそれぞれリーフノードに保存される。ブロックチェーン装置はブロックチェーンに位置し、セキュリティプロトコル装置と通信する。セキュリティプロトコル装置は、バイナリーツリーのルートハッシュをブロックチェーン装置に送信する。ブロックチェーン装置は、少なくとも１つのチェーンデータストリングを含む。チェーンデータストリングは、直列方式によりチェーンされた複数のデータセットを含む。それぞれのデータセットはルートハッシュおよび対応したチェーンハッシュをそれぞれ１つ含む。それぞれのデータセットのチェーンハッシュは、ルートハッシュおよび直前のデータセットのチェーンハッシュに関連付けする。第１のデータセットのチェーンハッシュはイニシャルチェーンハッシュに関連付けしている。データベース装置は、セキュリティプロトコル装置とオフチェーン方式により、ブロックチェーンを関与せずに通信する。セキュリティプロトコル装置は、バイナリーツリーおよびイニシャルチェーンハッシュをデータベース装置に保存する。
【０００９】
本発明の実施形態は、ブロックチェーンと連携するために適している検証方法を提供する。検証方法は、複数の記録データをオフチェーン方式により、ブロックチェーンを関与せずに受信する工程、記録データを複数のバイナリーツリーにハッシュ関数に従って統合する工程、ここでそれぞれのバイナリーツリーはルートおよび複数のリーフノードを含み、それぞれのルートはルートハッシュを保存し、バイナリーツリーのハッシュ値はリーフノードにそれぞれ保存されており、バイナリーツリーのルートハッシュをブロックチェーンに送信する工程、ここで、少なくとも１つのチェーンデータストリングはブロックチェーン上に設定され、チェーンデータストリングは直列方式によりチェーンされた複数のデータセットを含み、それぞれのデータセットはルートハッシュおよび対応するチェーンハッシュのそれぞれ１つを含み、それぞれのデータセットのチェーンハッシュはルートハッシュおよび直前のデータセットのチェーンハッシュに関連付けられ、最初のデータセットのチェーンハッシュはイニシャルチェーンハッシュに関連付けられ、およびブロックチェーンに関与しないオフチェーン方式によりバイナリーツリーおよびイニシャルチェーンハッシュを保存する工程を含む。
【００１０】
要するに、本発明の実施形態における検証システムおよび方法の手段により、バイナリーツリーの多数のルートハッシュを読みだす必要がある場合、ルートハッシュはオフチェーンデータベース装置によって読み出すことができ、オフチェーン方式により読み出されたルートハッシュの正確さは、ブロックチェーン上のチェーンデータストリングの後ろのデータセットのチェーンハッシュを使用することにより検証される。したがって、データの信頼性を維持することを前提として、ネットワーク送信要件およびブロックチェーンの処理負荷が軽減される。
【００１１】
本発明の詳細な特徴および利点は、以下の実施において詳細に記載される。その内容は、当業者が本発明の技術的内容を理解し、内容に応じて本発明の内容を実施するのに充分である。本発明の関連する目的および利点は、明細書に開示される内容、特許請求の範囲、および図面に従って、当業者によって容易に理解され得る。
【００１２】
〔図面の簡単な説明〕
図１は、本発明の一実施形態による検証システムの概略ブロック図である。
【００１３】
図２は、本発明の一実施形態によるバイナリーツリーの概略図である。
【００１４】
図３は、本発明の一実施形態によるチェーンデータストリングの概略図Ｉである。
【００１５】
図３ａは、本発明の一実施形態によるチェーンデータストリングの概略図ＩＩである。
【００１６】
図４は、本発明の別の実施形態による検証システムの概略ブロック図である。
【００１７】
図５は、本発明のさらに別の実施形態による検証システムの概略ブロック図である。
【００１８】
図６は、本発明の一実施形態によるバイナリーツリーのスライスの概略図である。
【００１９】
図７は、本発明の別の実施形態によるチェーンデータストリングの概略図である。
【００２０】
図８は本発明の一実施形態による検証方法のフローチャートである。
【００２１】
図９ａおよび９ｂは、本発明の別の実施形態による検証方法のフローチャートである。
【００２２】
〔詳細な説明〕
図１を参照すると、図１には、本発明の一実施形態による検証システム１０の概略ブロック図が示されている。本実施形態において、検証システム１０は、ブロックチェーンＢＣと連携するのに適している。ブロックチェーンＢＣは、パブリックブロックチェーン、プライベートブロックチェーン、またはそれらの組み合わせを含むことができる。検証システム１０は、例えばブロックチェーンＢＣに関与しない１つまたは複数のオフチェーン装置および／または１つまたは複数のオフチェーンチャンネルから成る、例えばオフチェーンフレームワークＯＣを介したオフチェーン方式により複数の端末装置４００と通信するように構成されている。また、検証システム１０は、オフチェーンフレームワークＯＣおよびブロックチェーンＢＣと連携する。それぞれの端末装置４００は、少なくとも１つの記録データＲＤを生成することができる。オフチェーンフレームワークＯＣは、ブロックチェーンＢＣとは独立した経路、すなわちブロックチェーンＢＣに関与しない経路を指す。オフチェーンフレームワークＯＣの通信とは、ブロックチェーンＢＣとは独立した経路上の通信関係、すなわちブロックチェーンＢＣに関与しない経路を通した通信の確立をいう。例えば、オフチェーンフレームワークＯＣを介した２つの装置間の通信は、２つの装置が直接的に接続され、ブロックチェーンＢＣを呼び出さずにネットワークを介して互いに信号を送信することができることを意味する。端末装置４００は、例えば、デスクトップコンピュータ、ノートブックコンピュータ、または各種センサである。記録データＲＤは、例えば、デスクトップコンピュータまたはノートブックコンピュータによって生成されたファイル情報やトランザクション情報、センサによって感知された数値情報であるが、これに限定されるものではない。
【００２３】
図１に示すように、本実施形態において、検証システム１０がセキュリティプロトコル装置１００と、データベース装置２００と、ブロックチェーン装置３００とを含む。セキュリティプロトコル装置１００は、ブロックチェーンＢＣに関与しないオフチェーンフレームワークＯＣを介してデータベース装置２００と通信し、セキュリティプロトコル装置１００は、ブロックチェーンＢＣ上に位置するブロックチェーン装置３００と通信する。データベース装置２００は、例えば、ブロックチェーンＢＣとは独立したデータ記憶サーバであり、ブロックチェーン装置３００は、例えば、ブロックチェーンＢＣに接続された複数のコンピュータの集合であるが、これに限定されるものではない。本実施形態について、セキュリティプロトコル装置１００は、ブロックチェーンＢＣとオフチェーンフレームワークＯＣの通信能力を組み合わせたサーバである。例えばセキュリティプロトコル装置１００は、オフチェーンフレームワークＯＣとブロックチェーンＢＣとの間を仲介するものであり、後述するように、端末装置４００とデータベース装置２００との間の橋渡しをブロックチェーン装置３００と同様に行うことができる。
【００２４】
図２を参照すると、図２には、本発明の一実施形態によるバイナリーツリーＢＴの概略図が示されている。図１および図２に示すように、本実施形態において、それぞれの端末装置４００が記録データＲＤを生成した後、それぞれの端末装置４００はオフチェーンフレームワークＯＣを介して記録データＲＤをセキュリティプロトコル装置１００に送信する。セキュリティプロトコル装置１００が、オフチェーンフレームワークＯＣを介してそれぞれの端末装置４００の記録データＲＤを受信した後、セキュリティプロトコル装置１００は、記録データＲＤを少なくとも１つのバイナリーツリーＢＴにハッシュ関数に従って統合する。
【００２５】
図２に示すように、本実施形態において、バイナリーツリーＢＴは、ルートＲと、複数のミドルノードＭＮと、複数のリーフノードＬＮとを含む。バイナリーツリーＢＴのツリーデータ構成において、ルートＲは最上層に位置し、リーフノードＬＮは最下層に位置し、ミドルノードＭＮは最上層と最下層との間の１つまたは複数の層に分布している。全ての２つの隣り合うリーフノードＬＮは、上位レイヤにおいて統合され、ミドルノードＭＮとなる。それぞれのレイヤにおける全ての２つの隣り合うミドルノードＭＮは、上位レイヤにおいて統合され、ミドルノードＭＮとなる。最上位レイヤにおける２つのミドルノードＭＮは、統合され、ルートＲになる。それぞれのリーフノードＬＮは、記録データＲＤのハッシュ値ＲＤＨのそれぞれ１つが保存されている。それぞれのミドルノードＭＮのハッシュ値と、ルートＲのルートハッシュＲＨとは、記録データＲＤのハッシュ値ＲＤＨに関連付けられている。
【００２６】
例えば、セキュリティプロトコル装置１００は、対応するハッシュ値ＲＤＨを生成するために、ＳＨＡ−２５６のハッシュ関数を用いて記録データＲＤをハッシュ化することがあり、セキュリティプロトコル装置１００は、それぞれのリーフノードＬＮに対して、記録データＲＤのハッシュ値ＲＤＨを保存する。さらに、２つの隣接するリーフノードＬＮのそれぞれの組に保存された２つのハッシュ値は接続され、次いで、ハッシュ化され、上位レイヤのミドルノードＭＮに保存され、それぞれのレイヤの２つの隣接するミドルノードＭＮのそれぞれの組に保存された２つのハッシュ値は接続され、次いで、ハッシュ化され、上位レイヤのミドルノードＭＮに保存され、以下同様である。本実施形態において、２つのハッシュ値は接続され、次に２つのハッシュ値が最初にコードのストリングに接続され、次にコードのストリングがハッシュ化されるように順次ハッシュ化されるが、これに限定されない。例えば、第１のハッシュ値が「ｘｘｘ」であり、第２のハッシュ値が「ｏｏｏ」である場合、２つのハッシュ値は最初に、「ｘｘｘｏｏｏ」のコードのストリングとして接続され、ストリングコード「ｘｘｘｏｏｏ」は、ハッシュ値を生成するために再度ハッシュ化される。最後に、最上位レイヤの２つのミドルノードＭＮに保存された２つのハッシュ値が接続され、ハッシュ化されて、ルートハッシュＲＨが生成される。すなわち、バイナリーツリーＢＴは、リーフノードＬＮに保存されている記録データＲＤのハッシュ値ＲＤＨと、ルートＲに保存されているルートハッシュＲＨとを含んでいる。その上、記録データＲＤは改竄することができない。これは、バイナリーツリーＢＴ内の記録データＲＤが改竄されている限り、記録データＲＤのハッシュ値ＲＤＨが変化するためである。いずれかのリーフノードＬＮの記録データＲＤのハッシュ値ＲＤＨが変化する限り、バイナリーツリーＢＴのルートハッシュＲＨもそれに応じて変化する。ルートハッシュＲＨが変化したか否かを判定することにより、バイナリーツリーＢＴに対応する記録データＲＤの正確さを検証することができる。別の実施形態において、１つのリーフノードＬには、２つ以上の記録データＲＤのハッシュ値ＲＤＨが保存されていてもよい。この場合、リーフノードＬＮに保存されるハッシュ値ＲＤＨは、２つ以上のレコードデータＲＤのハッシュ値ＲＤＨを連結してハッシュ化した値である。
【００２７】
図１および図２に示すように、本実施形態において、セキュリティプロトコル装置１００がバイナリーツリー処理ユニット１１０および検証ユニット１２０を含む。バイナリーツリー処理ユニット１１０および検証ユニット１２０は、例えば、ソフトウェア／ハードウェアによって形成された機能モジュールであり、これらに限定されないが、それぞれ特有の機能を実行する。バイナリーツリー処理ユニット１１０および検証ユニット１２０は独立したモジュールであってもよいし、統合されたモジュールであってもよい。
【００２８】
本実施形態において、セキュリティプロトコル装置１００のバイナリーツリー処理ユニット１１０は受信した記録データＲＤを自動的にハッシュ化して統合し、バイナリーツリーＢＴを生成する。セキュリティプロトコル装置１００はバイナリーツリーＢＴのルートハッシュＲＨを、ブロックチェーン装置３００に送信する。すなわち、これらのルートハッシュＲＨは、ブロックチェーンＢＣに保存される。また、セキュリティプロトコル装置１００は、バイナリーツリーＢＴをデータベース装置２００に保存する。すなわち、完全なバイナリーツリーＢＴはブロックチェーンＢＣに保存される代わりに、オフチェーンフレームワークＯＣを介して保存される。他の実施形態において、完全なバイナリーツリーＢＴがデータベース装置２００に保存され、ブロックチェーン装置３００に送信されてもよい。
【００２９】
本実施形態において、セキュリティプロトコル装置１００の検証ユニット１２０は、データベース装置２００に保存されているバイナリーツリーＢＴの正確さを検証する。セキュリティプロトコル装置１００が検証要求を受信し、検証要求がある記録データＲＤの正確さを検証するとき、検証ユニット１２０はブロックチェーン装置３００上の記録データＲＤに対応するバイナリーツリーＢＴのルートハッシュＲＨと、データベース装置２００に保存されたレコードデータＲＤに対応するバイナリーツリーＢＴのルートハッシュＲＨとを自動的に比較し、データベース装置２００に保存されたバイナリーツリーＢＴの正確さを検証する。ブロックチェーン装置３００上のルートハッシュＲＨが、データベース装置２００に保存されたバイナリーツリーＢＴのルートハッシュＲＨと一致する場合、ブロックチェーンＢＣの特性に基づいて、データベース装置２００に保存された記録データＲＤのバイナリーツリーＢＴが正しいことを示す。
【００３０】
完全なバイナリーツリーＢＴはオフチェーンフレームワークＯＣを介してデータベース装置２００内に配置されるため、記録データＲＤのハッシュ値ＲＤＨのアクセスおよび処理は主にオフチェーンフレームワークＯＣを介して実行され、ブロックチェーンＢＣ上で従来的に実行されるこのタスクのためのネットワーク送信要件、処理量、処理時間、および処理コストを節約することができる。また、ブロックチェーン装置３００上の対応するルートハッシュＲＨと比較することにより、データベース装置２００内のバイナリーツリーＢＴのルートハッシュＲＨを検証することができ、オフチェーンフレームワークＯＣを介したデータベース装置２００内のデータの正確さは確保され得る。
【００３１】
図３を参照すると、図３は、本発明の一実施形態によるチェーンデータストリングＣＤＳの概略図Ｉである。図１および図３に示すように、本実施形態において、ブロックチェーン装置３００は少なくも１つのチェーンデータストリングＣＤＳを含み、チェーンデータストリングＣＤＳは、直列方式によりチェーンされた複数のデータセットＤＳを含む。直列方式は、第１のデータ、第２のデータおよび第３のデータから、最後から２番目のデータおよび最後のデータへと順次に並び、それぞれのデータは直前のデータに関連付けられていることを意味する。例えば、第２のデータは第１のデータに関連付けられ、第３のデータは第２のデータに関連付けられ、最後のデータは、最後から２番目のデータに関連付けられる、等である。本実施形態において、それぞれのデータセットＤＳはルートハッシュＲＨおよび対応するチェーンハッシュＣＨをそれぞれ含む。それぞれのデータセットＤＳのチェーンハッシュＣＨは、ルートハッシュＲＨおよび直前のデータセットＤＳのチェーンハッシュＣＨに関連付けられている。第１のデータセットＤＳのチェーンハッシュＣＨはイニシャルチェーンハッシュＣＨ０に関連付けられている。
【００３２】
図１に示すように、本実施形態において、ブロックチェーン装置３００はチェーン処理ユニット３１１を含み、チェーン処理ユニット３１１はチェーンデータストリングＣＤＳを生成するために構成されている。図１および図３に示すように、本実施形態において、ブロックチェーン装置３００が複数のバイナリーツリーＢＴのルートハッシュＲＨを受信した後、チェーン処理ユニット３１１は、データセットＤＳを、受信したバイナリーツリーＢＴのルートハッシュＲＨの時間を生成するか、または、受信する順番に生成する。それぞれのデータセットＤＳのチェーンハッシュＣＨは直前のデータセットＤＳのハッシュ化により生成される。第１のデータセットＤＳのチェーンハッシュＣＨはイニシャルチェーンハッシュＣＨ０のハッシュ化により生成される。
【００３３】
本実施形態において、チェーン処理ユニット３１１は最初にイニシャルチェーンハッシュＣＨ０を生成することができる。イニシャルチェーンハッシュＣＨ０は任意の値または任意の文字もしくは数字の組み合わせであってよい。さらに、チェーン処理ユニット３１１は直列方式によりチェーンされた複数のデータセットＤＳをチェーンデータストリングＣＤＳに以下の２つの式に従って生成する。
ＣＨｉ＝ｈａｓｈ（ＲＨｉ−１｜ＣＨｉ−１）
ＣＨ１＝ｈａｓｈ（ＣＨ０）
ＲＨｉ−１はルートハッシュＲＨであり、ＣＨｉ−１はチェーンハッシュＣＨであり、ｉは２からｋの整数である。
【００３４】
図３に示すように、第１のデータセットＤＳはＲＨ１のルートハッシュと、ＣＨ１のチェーンハッシュＣＨを持ち、ＣＨ１はＣＨ０をハッシュ化することにより生成されるハッシュ値である。後ろの（第１のデータセットＤＳの後に配置される）第２のデータセットＤＳはＲＨ２のルートハッシュＲＨおよびＣＨ２のチェーンハッシュＣＨを持ち、ＣＨ２はＲＨ１およびＣＨ１を接続したものをハッシュ化することにより生成されるハッシュ値である。上述したように、ＲＨ１およびＣＨ１を接続したもののハッシュ化はＲＨ１およびＣＨ１を接続することにより実行され、その後ハッシュ化を実行されてもよく、これに限定されない。後ろの（第２のデータセットＤＳの後に配置される）第３のデータセットＤＳは、ＲＨ３のルートハッシュＲＨおよびＣＨ３のチェーンハッシュＣＨを持ち、ＣＨ３はＲＨ２およびＣＨ２を接続したものをハッシュ化して生成されるハッシュ値である。最後のデータセットＤＳはＲＨｋのルートハッシュＲＨおよびＣＨｋのチェーンハッシュＣＨを持ち、ＣＨｋはＲＨｋ−１およびＣＨｋ−１を接続したものをハッシュ化することにより生成されるハッシュ値である。ルートハッシュＲＨおよび残りのデータセットＤＳのチェーンハッシュＣＨは、類推により導かれる。また、直列方式によりチェーンされたこれらのデータセットＤＳはチェーンデータストリングＣＤＳを形成する。本実施形態において、セキュリティプロトコル装置１００はイニシャルチェーンハッシュＣＨ０をデータベース装置２００に保存してもよいが、これに限定されない。
【００３５】
図１および図３に示すように、本実施形態において、セキュリティプロトコル装置１００はさらに読み取りユニット１３０を含む。読み取りユニット１３０はブロックチェーン装置３００およびデータベース装置２００から対応するデータを読み出すように構成されている。端末装置４００は、１つまたはそれ以上のバイナリーツリーＢＴのルートハッシュＲＨを読み取るために読み取り要求ＲＲをセキュリティプロトコル装置１００に送信することができる。セキュリティプロトコル装置１００は、読み取り要求ＲＲを受信するとき、読み取り要求ＲＲは、チェーンデータストリングＣＤＳの複数のデータセットＤＳに属する複数のルートハッシュＲＨを読み取り、読み取りユニット１３０はチェーンデータストリングＣＤＳの後ろのデータセットＤＳのルートハッシュＲＨをブロックチェーン装置３００から読み取り、チェーンデータストリングＣＤＳの前のデータセットＤＳのルートハッシュＲＨの１つまたはそれ以上をデータベース装置２００から読み取り、セキュリティプロトコル装置１００は、ブロックチェーン装置３００の後ろのデータセットＤＳのチェーンハッシュＣＨを用いて、データベース装置２００の前のルートハッシュＲＨの正確さを検証する。
【００３６】
例えば、セキュリティプロトコル装置１００は読み取り要求ＲＲを受信し、読み取り要求ＲＲは図３のようにチェーンデータストリングＣＤＳのＲＨ１からＲＨｋへｋ個のルートハッシュＲＨを読み取るとき、読み取り部１３０はブロックチェーン装置３００からチェーンデータストリングＣＤＳのデータセットＤＳの最後のデータセットＤＳのルートハッシュＲＨおよびチェーンハッシュＣＨ（すなわちＲＨｋおよびＣＨｋ）を読み取る。また読み取りユニット１３０は前のデータセットＤＳのルートハッシュＲＨ（すなわちＲＨ１からＲＨｋ−１まで）をデータベース装置２００から読み取り、検証ユニット１２０は前のデータセットＤＳのＲＨｋを用いて、データベース装置２００の前半のデータセットＤＳのＲＨ１からＲＨｋ−１までの正確さを検証する。検証ユニット１２０は、前述した２つの公式およびデータベース装置２００に保存されたイニシャルチェーンハッシュＣＨ０およびＲＨ１からＲＨｋ−１を、ＣＨｋを計算するためのハッシュ化およびチェーニング処理を実行するために使用することができ、計算されたＣＨｋをブロックチェーン装置３００上のＣＨｋと比較する。もし計算されたＣＨｋがブロックチェーン上のＣＨｋと一致するならば、データベース装置２００に保存されたＲＨ１からＲＨｋ−１はブロックチェーン上のＲＨ１からＲＨｋ−１と一致していることを示す。ハッシュ化処理に基づいているため、データベース装置２００のＲＨ１からＲＨｋ−１の中の任意のルートハッシュＲＨが、ブロックチェーン装置３００のＲＨ１からＲＨｋ−１の中の対応するルートハッシュＲＨと一致しない限り、計算されたＣＨｋはブロックチェーン装置３００のＣＨｋとは異なる。
【００３７】
図３ａを参照すると、図３ａは、本発明の一実施形態によるチェーンデータストリングＣＤＳの概略図ＩＩである。図３ａのチェーンデータストリングＣＤＳは、図３のチェーンデータストリングＣＤＳと実質的に同じである。しかしながら、説明を容易にするため、図３ａのチェーンデータストリングＣＤＳは継続的なデータセットＤＳのデータセクションＳＥＣを示す。図３ａで示すように、本実施形態において、セキュリティプロトコル装置１００はさらに、チェーンデータストリングＣＤＳの任意のデータセクションＳＥＣのデータセットＤＳを読み取ることができ、データセクションＳＥＣの最後のデータセットＤＳを使用することにより、検証を実行する。例えば、セキュリティプロトコル装置１００は読み取り要求ＲＲを受信し、読み取り要求ＲＲは、図３のように、チェーンデータストリングＣＤＳのデータセクションＳＥＣのＲＨｘ−１０からＲＨｘまでの１１個のルートハッシュＲＨを読み取るとき（ここでｘはｋよりも小さく、１０よりも大きいか等しい）、読み取りユニット１３０は、データセクションＳＥＣのデータセットＤＳの最後のデータセットＤＳのルートハッシュＲＨおよびチェーンハッシュＣＨ（ＲＨｘおよびＣＨｘ）をブロックチェーン装置３００から読み取り、読み取りユニット１３０はデータセクションＳＥＣの前のデータセットＤＳのルートハッシュＲＨ（すなわちＲＨｘ−１０からＲＨｘ−１）をデータベース装置２００から読み取る。さらに検証ユニット１２０は、データベース装置２００のデータセクションＳＥＣの前のデータセットＤＳのＲＨｘ−１０からＲＨｘ−１の正確さを、データセクションＳＥＣの最後のデータセットＤＳのＲＨｘを使用することにより検証する。
【００３８】
いくつかの実施形態において、イニシャルチェーンハッシュＣＨ０は、データベース装置２００に保存されなくてもよい。その代わり、セキュリティプロトコル装置１００は読み取り要求ＲＲを受信するとき、読み取りユニット１３０はチェーンデータストリングＣＤＳのイニシャルチェーンハッシュＣＨ０およびデータセットＤＳの後ろのデータセットＤＳのルートハッシュＲＨをブロックチェーン装置３００から読み取り、チェーンデータストリングＣＤＳの前のデータセットＤＳの１つまたはそれ以上のルートハッシュＲＨをデータベース装置２００から読み取る。
【００３９】
図４を参照すると、図４は、本発明の別の実施形態による検証システム１０ａの概略のブロック図である。同一または類似の検証システム１０の構成要素、接続関係、および機能は再び説明しない。図４の検証システム１０ａと図１の検証システム１０の間の違いの一つは、図４の検証システム１０ａのセキュリティプロトコル装置１００は、チェーン処理ユニット１４０をさらに含み、ブロックチェーン装置３００はチェーン処理ユニットを備えていないことである。セキュリティプロトコル装置１００のバイナリーツリー処理ユニット１１０が複数のバイナリーツリーＢＴを生成した後、セキュリティプロトコル装置１００のチェーン処理ユニット１４０は、データセットＤＳをバイナリーツリーＢＴの複数のルートハッシュＲＨに従って生成し、チェーンデータストリングＣＤＳを上述した２つの式に従って生成し、セキュリティプロトコル装置１００は、チェーンデータストリングＣＤＳをブロックチェーン装置３００に送信する。すなわち、セキュリティプロトコル装置１００によってブロックチェーンＢＣに送信されたデータはチェーンデータストリングＣＤＳを保持しているデータ構造である。
【００４０】
図５を参照すると、図５は、本発明のさらに別の実施形態による検証システム１０ｂの概略ブロック図を示す。図１および図５における検証システム１０および１０ｂの同一または類似の構成要素、接続関係、および機能は再度説明しない。図５の検証システム１０ｂと図１の検証システム１０との差の１つは、図５の検証システム１０ｂがセキュリティプロトコル装置１００と、データベース装置２００と、ブロックチェーン装置３００と、複数の端末装置４００とを含むことである。セキュリティプロトコル装置１００はブロックチェーンＢＣに位置するブロックチェーン装置３００と通信し、オフチェーンフレームワークＯＣを介してデータベース装置２００および端末装置４００と通信する。さらに、端末装置４００は、ブロックチェーン装置３００と通信する。セキュリティプロトコル装置１００は、バイナリーツリー処理ユニット１１０と、検証ユニット１２０と、読み取りユニット１３０と、識別番号ユニット１５０と、位置検索ユニット１６０と、スライシングユニット１７０と、識別シーケンス番号ユニット１８０とを備える。例えば、バイナリーツリー処理ユニット１１０、検証ユニット１２０、読み取り部１３０、識別番号ユニット１５０、位置検索ユニット１６０、スライシングユニット１７０、および識別シーケンス番号ユニット１８０はソフトウェア／ハードウェアによって形成された機能モジュールであって、それぞれ固有の機能を実行する機能モジュールであってもよく、バイナリーツリー処理ユニット１１０、検証ユニット１２０、読み取りユニット１３０、識別番号ユニット１５０、位置検索ユニット１６０、スライシングユニット１７０、および識別シーケンス番号ユニット１８０は独立したモジュールであってもよいし、一体化されたモジュールであってもよい。
【００４１】
図５に示されるように、本実施形態において、ブロックチェーン装置３００が少なくとも１つのスマートコントラクト３１０を含み、セキュリティプロトコル装置１００によってブロックチェーン装置３００に送信されるルートハッシュＲＨは対応するスマートコントラクト３１０に保存される。異なる実施形態において、ブロックチェーン装置３００がスマートコントラクトとは異なるプログラムアーキテクチャまたはインターフェースを含むこともでき、ルートハッシュＲＨは異なるプログラムアーキテクチャまたはインターフェースに対応するブロックチェーン装置３００に保存されることができる。
【００４２】
図５に示すように、本実施形態において、それぞれの端末装置４００が記録データ生成ユニット４１０と、識別データ生成ユニット４２０と、スライス検証ユニット４３０とを備える。記録データ生成ユニット４１０、識別データ生成ユニット４２０、およびスライス検証ユニット４３０は、例えば、それぞれ特定の機能を実行するためにソフトウェア／ハードウェアによって形成される機能モジュールであるが、これらに限定されない。なお、記録データ生成ユニット４１０、識別データ生成ユニット４２０、スライス検証ユニット４３０は独立したモジュールであってもよいし、統合されたモジュールであってもよい。また、記録データ生成ユニット４１０は、上述した記録データＲＤを生成するように構成されている。また、それぞれの端末装置４００の記録データ生成ユニット４１０がレコードデータＲＤを生成するときに、それぞれの端末装置４００の識別データ生成ユニット４２０は、記録データＲＤのそれぞれが対応する識別データＩＤを有するように、記録データＲＤにそれぞれの対応する複数の識別データＩＤを生成する。端末装置４００は、記録データＲＤとそれに対応する識別データＩＤとを同時にセキュリティプロトコル装置１００に送信する。いくつかの実施形態において、端末装置４００は、記録データＲＤおよび対応する識別データＩＤを統合データに統合し、統合データをセキュリティプロトコル装置１００に送信することができる。いくつかの実施形態において、識別データＩＤは、プレーンコードである。
【００４３】
図５に示すように、本実施形態において、セキュリティプロトコル装置１００が記録データＲＤおよび対応する識別データＩＤを受信し、セキュリティプロトコル装置１００は識別データＩＤに従って、記録データＲＤのハッシュ値ＲＤＨを対応するリーフノードＬＮに保存する。例えば、セキュリティプロトコル装置１００が識別データＩＤを受信した後、セキュリティプロトコル装置１００の識別番号ユニット１５０は識別データＩＤに従ってリーフノードＬＮにそれぞれ対応する複数の識別番号ＩＮを生成し、セキュリティプロトコル装置１００は、識別番号ＩＮに従って記録データＲＤのハッシュ値ＲＤＨを対応するリーフノードＬＮに保存する。この場合、それぞれの識別番号ＩＮは任意のバイナリーツリーＢＴにおいて一意であり、それぞれの識別番号ＩＮは、バイナリーツリーＢＴにおけるリーフノードＬＮのそれぞれ１つに対応する。したがって、それぞれの記録データＲＤのハッシュ値ＲＤＨは後に詳述するように、対応する識別番号ＩＮを用いて、リーフノードＬＮにそれぞれ１つ配置することができる。
【００４４】
本実施形態において、セキュリティプロトコル装置１００の識別番号ユニット１５０は識別データＩＤのそれぞれ１つのハッシュ値から複数の所定のビットを抽出し、それぞれ１つの識別番号ＩＮを生成する。また、所定ビット数は、対応するバイナリーツリーＢＴの高さの値Ｈに関連付けられてもよい。バイナリーツリーＢＴが高さの値Ｈを有する場合、バイナリーツリーＢＴは、２（Ｈ−１）のリーフノードＬＮを有する。バイナリーツリーＢＴのリーフノードＬＮが対応する排他的な固有の識別番号ＩＮを有することを可能にするために、所定のビットは、識別データＩＤのハッシュ値のそれぞれ１つから抽出された少なくともＨ−１ビットである。このように、Ｈ−１ビットの配置はリーフノードＬＮの数を満たすため、リーフノードＬＮに対応する識別番号ＩＮは一意であり、繰り返されない。本実施形態において、Ｈ−１ビットが、例えば、識別データＩＤのハッシュ値のそれぞれ１つにおける最初のＨ−１ビットであるが、これに限定されない。他の実施形態において、Ｈ−１ビットが識別データＩＤのハッシュ値のそれぞれ１つから抽出された最後のＨ−１ビット、または任意の場所のＨ−１ビットとすることができる。
【００４５】
例えば、図２のバイナリーツリーＢＴの高さの値Ｈが５であり、バイナリーツリーＢＴが２（５−１）のリーフノードＬＮ、すなわちバイナリーツリーＢＴが１６のリーフノードＬＮとなる。ある記録データＲＤに対応する識別データＩＤが「Ｅ１５３４３９１」であるとすると、識別番号ユニット１５０はＳＨＡ−２５６ハッシュ関数を用いて識別データＩＤをハッシュ化し、ハッシュ値「ｄｂｂ９ｅｄ８ｂ６７７４６８ｂ４８３４ｄ２ｆ６３４ａ７７ｅａ１ｅ６６６３４３１ｂｆ１ｅｅ７５２３０４１４６７ｆｆ８０２３ｆａ６４」を生成する。次に、識別番号ユニット１５０はハッシュ値により変換された２進ビットシーケンスの最初の４ビット「１１０１」を抽出し、「１１０１」を１０進法の値「１３」に変換し、識別番号ＩＮを「１３」として生成する。識別番号ユニット１５０は、バイナリーツリーＢＴの１６番目のリーフノードＬＮの全てを１から１６番目のリーフノードＬＮに順次設定し、識別番号ＩＮが１３の記録データＲＤのハッシュ値ＲＤＨを１３のリーフノードＬＮ番号に保存する。いくつかの実施形態において、異なる識別データＩＤが同じ識別番号ＩＮを生成することができ、または異なる記録データＲＤは同じ識別データＩＤを有し、同じ識別番号ＩＮを生成することができる。ここで、複数の記録データＲＤのハッシュ値ＲＤＨは同一の識別番号ＩＮに対応し、同一のリーフノードＬＮに保存されていてもよい。いくつかの実施形態において、バイナリーツリーＢＴのそれぞれのリーフノードＬＮが２つ以上の記録データＲＤのハッシュ値ＲＤＨを保存することができ、特定のリーフノードＬＮに対応する２つ以上の記録データＲＤのハッシュ値ＲＤＨが接続され、次いでハッシュ値を生成するためにハッシュ化される。リーフノードＬＮには、複数の記録データＲＤに対応するハッシュ値が保存される。
【００４６】
図５に示すように、本実施形態において、セキュリティプロトコル装置１００の位置検索ユニット１６０は、識別番号ＩＮを用いてレコードデータＲＤのハッシュ値ＲＤＨを特定することができる。ユーザは、データベース装置２００内のあるバイナリーツリーＢＴ内のある記録データＲＤに対応するハッシュ値ＲＤＨを検索または検証する必要がある場合、ユーザはセキュリティプロトコル装置１００を用いて上記のタスクを行うことができる。このとき、セキュリティプロトコル装置１００の位置検索ユニット１６０は、識別番号ＩＮによって記録データＲＤ（すなわち、記録されたリーフノードＬＮ）のハッシュ値ＲＤＨを探し出し、ＩＤ番号ＩＮに対応するバイナリーツリーＢＴのリーフノードＬＮから直接的に記録データＲＤのハッシュ値ＲＤＨを抽出し、データを迅速に探し出して探索する。また、ある記録データＲＤが存在しないことを確認するために、識別番号ＩＮを用いて完了させることもできる。セキュリティプロトコル装置１００は、完全なバイナリーツリーＢＴ内の全てのハッシュ値を取得する必要はない。セキュリティプロトコル装置１００の位置検索ユニット１６０は記録データＲＤに対応する識別番号ＩＮを用いて、レコードデータＲＤのハッシュ値ＲＤＨ、すなわち、対応するリーフノードＬＮを探し出し、記録データＲＤのハッシュ値ＲＤＨがリーフノードＬＮに存在するか否かを直接的に確認することができる。リーフノードが記録データＲＤのハッシュ値ＲＤＨを有していない場合には、記録データＲＤが存在しないことを検証することができる。このようにして、確認タスク全体のネットワーク送信要件、処理量、処理時間、および処理コストは大幅に削減され得る。
【００４７】
上述したように、いくつかの実施形態において、異なった記録データＲＤの識別データＩＤが同じ識別番号ＩＮを生成することができる。この場合、ある記録データＲＤのハッシュ値ＲＤＨは、２つまたはそれ以上のリーフノードＬＮに位置していてもよい。記録データＲＤを検証する必要がある場合、セキュリティプロトコル装置１００は、データベース装置２００から２つまたはそれ以上のリーフノードＬＮのハッシュ値ＲＤＨを取得して検証することができる。本実施形態において、識別番号ＩＮが繰り返される可能性は比較的低くなる。ある記録データＲＤのハッシュ値ＲＤＨが２つまたはそれ以上のリーフノードＬＮに位置する場合であっても、位置するリーフノードＬＮの数は、全てのリーフノードＬＮの数よりも依然として少ないか、はるかに少ない。検証タスク全体のネットワーク送信要件、処理量、処理時間、および処理コストは、依然として大幅に低減することができる。
【００４８】
図５に示すように、本実施形態において、端末装置４００が識別番号ユニット４４０をさらに含む。端末装置４００の識別番号ユニット４４０は、セキュリティプロトコル装置１００の識別番号ユニット１５０と同様の機能を有する。また、識別番号ユニット４４０は、記録データＲＤの識別データＩＤに基づいて識別番号ＩＮを生成することができる。端末装置４００は、識別番号ユニット４４０を用いて、セキュリティプロトコル装置１００が正しいリーフノードＬＮからデータを取得したか否かを検証することができる。例えば、端末装置４００が、ある記録データＲＤを検証する必要があり、レコードデータＲＤの識別データＩＤが「Ｅ１５３４３９１」である場合（上記実施例参照）、端末装置４００が検証要求をセキュリティプロトコル装置１００に送信するとき、セキュリティプロトコル装置１００の位置検索ユニット１６０は記録データＲＤに対応する識別番号ＩＮを用いて、記録データＲＤのハッシュ値ＲＤＨを特定し、データベース装置２００のバイナリーツリーＢＴの１３番のリーフノードＬＮに位置することを発見し、１３番のリーフノードＬＮのハッシュ値ＲＤＨを端末装置４００に返して検証を行うことができる。同様に、端末装置４００の識別番号ユニット４４０は記録データＲＤの識別データＩＤ「Ｅ１５３４３９１」に基づいて識別番号ＩＮを生成し、識別番号ＩＮに基づいて、記録データＲＤのハッシュ値ＲＤＨを１３番目のリーフノードＬＮに保存すべきであると得られることもできる。これにより、端末装置４００は、セキュリティプロトコル装置１００から返信された記録データＲＤのハッシュ値ＲＤＨが正しい位置（リーフノード番号１３）にあるか否かを確認することができる。
【００４９】
図６を参照すると、図６には、本発明の一実施形態によるバイナリーツリーＢＴのスライスＢＴＳの概略図が示されている。図５および図６に示すように、本実施形態において、セキュリティプロトコル装置１００がバイナリーツリーＢＴのルートハッシュＲＨをブロックチェーン装置３００に送信するとき、セキュリティプロトコル装置１００のスライシングユニット１７０はバイナリーツリーＢＴを自動的に複数のスライスＢＴＳに切り、スライスＢＴＳを対応する端末装置４００に返し、それぞれの端末装置４００のスライス検証ユニット４３０は、受信したそれぞれのスライスＢＴＳの正確さを検証する。図２および図６に示すように、本実施形態において、それぞれのスライスＢＴＳは、ルートＲ、２つの対応するリーフノードＬＮ、および必要ならばバイナリーツリーＢＴの中央ノードＭＮによって形成される、メルクルプルーフである。リーフノードＬＮのセットに記憶される記録データＲＤのハッシュ値ＲＤＨは、前述の処理プロセスによって得られ、ルートＲに位置するルートハッシュＲＨを得ることができる。スライスＢＴＳのルートハッシュＲＨは、完全なバイナリーツリーＢＴのルートハッシュＲＨと一致している必要がある。例えば、ある端末装置４００からセキュリティプロトコル装置１００に所定の記録データＲＤおよび識別データＩＤが送信された後、セキュリティプロトコル装置１００は、記録データＲＤのハッシュ値ＲＤＨを所定のバイナリーツリーＢＴの所定のリーフノードＬＮに保存し、リーフノードＬＮに対応するスライスＢＴＳを端末装置４００に返す。端末装置４００は、スライスＢＴＳのリーフノードＬＮの記録データＲＤのハッシュ値ＲＤＨを、端末装置４００により生成した元の記録データＲＤの元のハッシュ値ＲＤＨと一致するか否かを比較する。それらが一致する場合、検証が正しいことを示す。それらが一致しない場合は、検証が正しくないことを示す。検証が正しくない場合、対応する端末装置４００は、後続のデータの訂正、無効化または他の手順のために、抗議（ｐｒｏｔｅｓｔ）メッセージをブロックチェーン装置３００に送信することができる。
【００５０】
本実施形態において、それぞれの端末装置４００は、ブロックチェーンチップを備える。ブロックチェーンチップは、例えば、ブロックチェーンＢＣと検証システム１０、１０ｂとの間で信号を自動的に送信することができる集積回路（ＩＣ）であるが、これに限定されない。このようなブロックチェーンチップによれば、端末装置４００を軽量化、薄型化、短縮化することができ、端末装置４００は、任意の物体に配置したり、任意の電子機器に組み込んだりすることが容易になる。例えば、端末装置４００は、バッテリ（例えば、電気バスやハイブリッドバス、自動車用の大型バッテリパック）、電気メータ、自動車ヘッドライト、自動車本体（例えば、５Ｇを介してネットワーク接続された自動車のドライブコンピュータ）、またはフレームに組み込むことができる。端末装置４００は、それぞれの対象物の記録データＲＤを自動的かつ継続的にアップロードする。レコードデータＲＤは、例えば、バッテリ、電気メータまたは自動車ヘッドライト、または自動車本体のセンサ情報（エンジン、走行距離計、始動回数など）の毎時または毎日の履歴検知データ、またはフレーム上のセンサによって検知される毎時または毎日の温度および湿度変化の履歴検知データ、および図の元のデータなどの、（スケジュールされたアップロードインターバルに応じた）毎時または毎日の履歴検知データであるが、これらに限定されない。セキュリティプロトコル装置１００は、記録データＲＤのハッシュ値ＲＤＨを、オフチェーンフレームワークＯＣを介してデータベース装置２００に保存し、ルートハッシュＲＨを、ブロックチェーン装置３００にアップロードすることができる。
【００５１】
検証システム１０、１０ａおよび１０ｂに基づいて、オフチェーンフレームワークＯＣを介したデータベース装置２００による様々なデータの迅速な探索および検索に加えて、ブロックチェーンＢＣの検証によってデータの否認防止を達成することもできる。また、端末装置４００のコロケーションの適用に基づいて、モノの状況を保証することができ、モノの価値を向上させることができる。例えば、長距離車両に使用される使用済みの大型バッテリパックは、ある程度使用後に短距離車両に移送することができ、一方、短距離車両に使用される使用済みの大型バッテリパックは、ある程度使用後に予備発電バッテリとして漁場などの場所に移送することができる。それぞれの変換は、使用されるモノのための取引プラットフォームといったプラットフォームを介して実行することができる。モノの状態は、それぞれの取引において検証システム１０、１０ａおよび１０ｂによって確認することができ、それによってモノの質の信頼性およびモノの価値を改善する。
【００５２】
図５に示すように、本実施形態において、ブロックチェーン装置３００のスマートコントラクト３１０がチェーン処理ユニット３１１および累積シーケンス番号ユニット３１２をさらに含む。セキュリティプロトコル装置１００の識別シーケンス番号ユニット１８０は、識別シーケンス番号ＩＳを生成するように構成される。ブロックチェーン装置３００の累積シーケンス番号ユニット３１２は、累積シーケンス番号ＡＳを生成するように構成される。チェーン処理ユニット３１１は、チェーンデータストリングＣＤＳを生成する。
【００５３】
図７を参照すると、図７は本発明の別の実施形態によるチェーンデータストリングＣＤＳの概略図を示す。図５および図７に示すように、本実施形態において、チェーンデータストリングＣＤＳのそれぞれのデータセットＤＳは、ルートハッシュＲＨと、識別シーケンス番号ＩＳと、累積シーケンス番号ＡＳと、チェーンハッシュＣＨとを含む。それぞれのデータセットＤＳのチェーンハッシュＣＨは、直前のデータセットＤＳのルートハッシュＲＨ、識別シーケンス番号ＩＳ、累積シーケンス番号ＡＳ、およびチェーンハッシュＣＨに関連する。第１のデータセットＤＳのチェーンハッシュＣＨは、イニシャルチェーンハッシュＣＨ０に関連する。いくつかの実施形態において、チェーンデータストリングＣＤＳのそれぞれのデータセットＤＳは、ルートハッシュＲＨと、識別シーケンス番号ＩＳと、チェーンハッシュＣＨとを含むが、累積シーケンス番号ＡＳを含まず、それぞれのデータセットＤＳのチェーンハッシュＣＨは、直前のデータセットＤＳのルートハッシュＲＨと、識別シーケンス番号ＩＳと、およびチェーンハッシュＣＨとに関連付けられている。本実施形態において、それぞれのデータセットＤＳのチェーンハッシュＣＨは直前のデータセットＤＳをハッシュ化することによって生成され、第１のデータセットＤＳのチェーンハッシュＣＨはイニシャルチェーンハッシュＣＨ０をハッシュ化することによって生成される。
【００５４】
図５および図７に示すように、本実施形態において、チェーンデータストリングＣＤＳのそれぞれのデータセットＤＳの識別シーケンス番号ＩＳがそれぞれルートハッシュＲＨに対応する。セキュリティプロトコル装置１００がルートハッシュＲＨをブロックチェーン装置３００に送信するとき、セキュリティプロトコル装置１００はさらに、それに応じて識別シーケンス番号ＩＳを生成し、識別シーケンス番号ＩＳをブロックチェーン装置３００に送信する。例えば、識別シーケンス番号ＩＳは、対応するルートハッシュＲＨに関連付けられているタイムスタンプを含む。セキュリティプロトコル装置１００が特定の時点において、あるルートハッシュＲＨを生成すると、識別シーケンス番号ユニット１８０は、特定の時点に対応する識別シーケンス番号ＩＳを生成する。識別シーケンス番号ＩＳは、特定の時点に対応するタイムスタンプを含む。言い換えれば、異なる時点において生成されるルートハッシュＲＨは、異なる識別シーケンス番号ＩＳに確実に対応する。時間が経過するにつれて、後に生成されるルートハッシュＲＨの識別シーケンス番号ＩＳのタイムスタンプに対応する時刻は、先に生成されるルートハッシュＲＨの識別シーケンス番号ＩＳのタイムスタンプに対応する時刻よりも確実に遅くなる。これに対応して、チェーンデータストリングＣＤＳにおいて、後ろのデータセットＤＳの識別シーケンス番号ＩＳのタイムスタンプに対応する時間が前のデータセットＤＳの識別シーケンス番号ＩＳのタイムスタンプに対応する時間よりも確実に遅い。このため、チェーンデータストリングＣＤＳのデータセットＤＳの非変更性を高めることができ、チェーンデータストリングＣＤＳのデータを改竄することが困難となる。
【００５５】
図５および図７に示すように、本実施形態において、チェーンデータストリングＣＤＳのそれぞれのデータセットＤＳの累積シーケンス番号ＡＳがそれぞれのルートハッシュＲＨにそれぞれ対応し、それぞれのデータセットＤＳの累積シーケンス番号ＡＳは直前のデータセットＤＳの累積シーケンス番号の累積値である。セキュリティプロトコル装置１００がルートハッシュＲＨおよび識別シーケンス番号ＩＳをブロックチェーン装置３００に送信するとき、ブロックチェーン装置３００の累積シーケンス番号ユニット３１２は、ルートハッシュＲＨおよび識別シーケンス番号ＩＳに対応する累積シーケンス番号ＡＳを順次生成する。例えば、ブロックチェーン装置３００が第１のルートハッシュＲＨおよび対応する識別シーケンス番号ＩＳを受信するとき、累積シーケンス番号ユニット３１２は整数１の値を有する累積シーケンス番号ＡＳを生成し、チェーン処理ユニット３１１は、第１のルートハッシュＲＨと、対応する識別シーケンス番号ＩＳと、整数１の値を有する累積シーケンス番号ＡＳと、対応するチェーンハッシュＣＨを含む第１のデータセットＤＳとを統合する。セキュリティプロトコル装置１００が第２のルートハッシュＲＨおよび対応する識別シーケンス番号ＩＳを受信するとき、累積シーケンス番号ユニット３１２は１を直前の累積シーケンス番号ＡＳに累積して、整数２の値を有する累積シーケンス番号ＡＳを生成し、チェーン処理ユニット３１１は、第２のルートハッシュＲＨを含む第２のデータセットＤＳと、対応する識別シーケンス番号ＩＳと、整数２の値を有する累積シーケンス番号ＡＳと、対応するチェーンハッシュＣＨとを統合する。言い換えると、累積シーケンス番号ＡＳは連続的に累積され、後に生成されるデータセットＤＳの累積シーケンス番号ＡＳは、先に生成されるデータセットＤＳの累積シーケンス番号ＡＳよりも確実に大きい。また、累積シーケンス番号ＡＳは、ブロックチェーン上のブロックチェーン装置３００によって生成され、否認防止を有する。このため、チェーンデータ列ＣＤＳのデータ集合ＤＳの非変更性を高めることができ、チェーンデータストリングＣＤＳのデータを改竄することが困難となる。
【００５６】
本実施形態において、チェーン処理ユニット３１１はチェーンデータストリングＣＤＳに、以下の２つの式に従って、直列方式によりチェーンされた複数のデータセットＤＳを生成する。
ＣＨｉ＝ｈａｓｈ（ＲＨｉ−１｜ＩＳｉ−１｜ｉ−１｜ＣＨｉ−１）
ＣＨ１＝ｈａｓｈ（ＣＨ０）
ＲＨｉ−１はルートハッシュＲＨであり、ＩＳｉ−１は識別シーケンス番号ＩＳであり、ｉ−１は蓄積シーケンス番号ＡＳであり、ＣＨｉ−１はチェーンハッシュＣＨであり、ｉは２からｋの整数である。
【００５７】
図７に示すように、第１データセットＤＳは、ＲＨ１のルートハッシュＲＨと、ＩＳ１の識別シーケンス番号ＩＳと、１の累積シーケンス番号ＡＳと、ＣＨ１のチェーンハッシュＣＨとを有し、ＣＨ１は、ＣＨ０をハッシュ化することによって生成されたハッシュ値である。後ろ（第１のデータセットＤＳの後に配置される）の第２のデータセットＤＳは、ＲＨ２のルートハッシュＲＨ、ＩＳ２の識別シーケンス番号ＩＳ、２の累積シーケンス番号ＡＳ、およびＣＨ２のチェーンハッシュＣＨを有し、ＣＨ２は、接続されたＲＨ１、ＩＳ１、１、およびＣＨ１をハッシュ化することによって生成されるハッシュ値である。後ろ（第２のデータセットＤＳの後に配置される）の第３のデータセットＤＳはＲＨ３のルートハッシュＲＨ、ＩＳ３の識別シーケンス番号ＩＳ、３の累積シーケンス番号ＡＳ、およびＣＨ３のチェーンハッシュＣＨを有し、ＣＨ３は、接続されたＲＨ２、ＩＳ２、２、およびＣＨ２をハッシュ化することによって生成されるハッシュ値である。最後のデータセットＤＳは、ＲＨｋのルートハッシュＲＨと、ＩＳｋの識別シーケンス番号ＩＳと、ｋの累積シーケンス番号ＡＳと、ＣＨｋのチェーンハッシュＣＨとを有し、ＣＨｋは、接続されたＲＨｋ−１、ＩＳｋ−１、ｋ−１およびＣＨｋ−１をハッシュ化することによって生成されるハッシュ値である。ルートハッシュＲＨ、識別シーケンス番号ＩＳ、累積シーケンス番号ＡＳ、および残りのデータセットＤＳのチェーンハッシュＣＨは、類推によって導き出される。さらに、これらのデータセットＤＳは、直列方式によりチェーンされて、チェーンデータストリングＣＤＳを形成する。
【００５８】
図５および図７に示すように、本実施形態において、セキュリティプロトコル装置１００はバイナリーツリーＢＴおよびイニシャルチェーンハッシュＣＨ０をデータベース装置２００に保存し、また、セキュリティプロトコル装置１００は識別シーケンス番号ＩＳおよびそのルートハッシュの累積シーケンス番号ＡＳがデータベース装置２００にバイナリーツリーＢＴに対応するＲＨ（またはデータがチェーンデータストリングＣＤＳに対応するＤＳを設定する）を保存する。セキュリティプロトコル装置１００は読み取り要求ＲＲを受信するとき、読み取り要求ＲＲが、チェーンデータストリングＣＤＳの複数のデータセットＤＳに属する複数のルートハッシュＲＨを読み取り、読み取りユニット１３０がチェーンデータストリングＣＤＳの後ろのデータセットＤＳのルートハッシュＲＨをブロックチェーン装置３００から読み取り、チェーンデータストリングＣＤＳの前のデータセットＤＳのルートハッシュＲＨの１つまたはそれ以上をデータベース装置２００から読み取り、セキュリティプロトコル装置１００は、ブロックチェーン装置３００の後ろのデータセットＤＳのチェーンハッシュＣＨを用いて、データベース装置２００の前のルートハッシュＲＨの正確さを検証する。
【００５９】
例えば、セキュリティプロトコル装置１００が読み取り要求ＲＲを受信し、読み取り要求ＲＲが図７のようにチェーンデータストリングＣＤＳのＲＨ１からＲＨｋへｋ個のルートハッシュＲＨを読み出すとき、読み取りユニット１３０はチェーンデータストリングＣＤＳのデータセットＤＳの最後のデータセットＤＳのルートハッシュＲＨおよびチェーンハッシュＣＨ（すなわち、ＲＨｋおよびＣＨｋ）をブロックチェーン装置３００から読み取り、読み取りユニット１３０は、ルートハッシュＲＨ（ＲＨ１からＲＨｋ−１）、識別シーケンス番号ＩＳ（ＩＳ１からＩＳｋ−１）、および前のデータセットの累積シーケンス番号ＡＳ（１からｋ−１）をデータベース装置２００から読み出す。検証ユニット１２０は、最終データセットＤＳのＲＨｋを用いて、データベース装置２００の前のデータセットＤＳのＲＨｋ−１に対するＲＨ１の正確さを検証する。検証ユニット１２０は、データベース装置２００に保存された上記２つの公式およびイニシャルチェーンハッシュＣＨ０、ＲＨ１からＲＨｋ−１、ＩＳ１からＩＳｋ−１、および１からｋ−１を用いて、ＣＨｋを算出するために、ハッシュ化およびチェーニング処理動作を行い、算出されたＣＨｋとブロックチェーン装置３００上のＣＨｋとを比較することができる。計算されたＣＨｋがブロックチェーン装置３００上のＣＨｋと一致する場合、それは、データベース装置２００に保存されたＲＨ１からＲＨｋ−１がブロックチェーン装置３００上のＲＨ１からＲＨｋ−１と一致することを表す。ハッシュ化処理動作に基づいているため、データベース装置２００に保存されたＲＨ１からＲＨｋ−１中のルートハッシュＲＨがブロックチェーン装置３００上のＲＨ１からＲＨｋ−１中の対応するルートハッシュＲＨと一致しない限り、計算されたＣＨｋはブロックチェーン装置３００上のＣＨｋとは異なっている。
【００６０】
別の実施形態において、検証システム１０、１０ａ、１０ｂ内の構成要素を任意に組み合わせることができる。例えば、検証システム１０ｂは端末装置４００を含まなくてもよく、検証システム１０、１０ａは検証システム１０ｂと同様の端末装置４００を含んでもよいが、これに限定されない。
【００６１】
図８を参照すると、図８は、本発明の一実施形態による検証方法のフローチャートを示している。本実施形態において、図１または図４を参照して説明した検証システム１０、１０ａによって検証方法を実現することができるが、これに限定されるものではない。検証方法は、ブロックチェーンＢＣと連携するのに適している。ステップＳ１０１において、セキュリティプロトコル装置１００は例えば、例としてブロックチェーンＢＣに関与しない１つ以上のオフチェーンデバイスおよび／または１つ以上のオフチェーンチャンネルからなるオフチェーンフレームワークＯＣを介して、オフチェーン方式により複数の端末装置４００から、複数のレコードデータＲＤを受信する。ステップＳ１０３において、セキュリティプロトコル装置１００は、ハッシュ関数に従って、レコードデータＲＤを少なくとも１つのバイナリーツリーＢＴに統合し、レコードデータＲＤのハッシュ値ＲＤＨは、バイナリーツリーＢＴのリーフノードＬＮにそれぞれ保存される。ステップＳ１０５において、セキュリティプロトコル装置１００は、バイナリーツリーＢＴのルートハッシュＲＨをブロックチェーンＢＣに送信し、ブロックチェーン装置３００は、ルートハッシュＲＨを保存する。ステップＳ１０７において、ブロックチェーン装置３００またはセキュリティプロトコル装置１００は、上述した式に従ってチェーンデータストリングＣＤＳを生成する。
【００６２】
ステップＳ１０９において、セキュリティプロトコル装置１００は、バイナリーツリーＢＴおよびイニシャルチェーンハッシュＣＨ０を、オフチェーンフレームワークＯＣを介して保存する。すなわち、セキュリティプロトコル装置１００は完全なバイナリーツリーＢＴおよびイニシャルチェーンハッシュＣＨ０を、オフチェーンフレームワークＯＣを介して、データベース装置２００に保存する。別の実施形態において、イニシャルチェーンハッシュＣＨ０はデータベース装置２００に格納されなくてもよい。セキュリティプロトコル装置１００は、必要に応じて、ブロックチェーン装置３００からイニシャルチェーンハッシュＣＨ０を読み出すことができる。
【００６３】
ステップＳ１１１において、セキュリティプロトコル装置１００が検証要求を受けたとき、セキュリティプロトコル装置１００は、オフチェーンフレームワークＯＣを介して保存されているバイナリーツリーＢＴの正当性を検証するために、ブロックチェーンＢＣに位置するブロックチェーン装置３００のルートハッシュＲＨと、オフチェーンフレームワークＯＣを介してデータベース装置２００に保存されているバイナリーツリーＢＴのルートハッシュＲＨとを比較する。ステップＳ１１３において、セキュリティプロトコル装置１００は読み取り要求ＲＲを受信し、読み取り要求ＲＲが、チェーンデータストリングＣＤＳにおいて、複数のデータセットのＤＳの複数のルートハッシュＲＨの読み取りを要求するとき、セキュリティプロトコル装置１００はブロックチェーンＢＣ上にある後ろのデータセットＤＳのルートハッシュＲＨを読み取り、オフチェーンフレームワークＯＣを介して保存される前のデータのルートハッシュＲＨの１つ以上のルートハッシュＲＨを読み取る。ステップＳ１１５において、セキュリティプロトコル装置１００は、ブロックチェーンＢＣ上の後ろのデータセットＤＳのチェーンハッシュＣＨを用いて、オフチェーンフレームワークＯＣを介して保存された前の１つ以上のルートハッシュＲＨの正当性を検証する。
【００６４】
図９ａおよび９ｂを参照すると、図９ａおよび９ｂは、本発明の別の実施形態による検証方法のフローチャートである。本実施形態において、検証方法は、図５に示した検証システム１０ｂによって実現することができるが、これに限定されるものではない。ステップＳ２０１において、セキュリティプロトコル装置１００は、複数の端末装置４００から複数の記録データＲＤおよび複数の識別データＩＤを、例えば、１つまたは複数のオフチェーン装置および／または、ブロックチェーンＢＣに関与しない１つまたは複数のチャンネル、および記録データＲＤにそれぞれ対応する識別番号ＩＤから構成される、例えばオフチェーンフレームワークを介して、オフチェーン方式により受信する。ステップＳ２０３において、セキュリティプロトコル装置１００が識別データＩＤを受信した後、セキュリティプロトコル装置１００は、識別データＩＤに従ったリーフノードＬＮに対応する複数の識別番号ＩＮをそれぞれ生成し、バイナリーツリーＢＴのそれぞれのリーフノードＬＮは固有の識別番号に対応する。例えば、セキュリティプロトコル装置１００はそれぞれの識別データＩＤのハッシュ値から複数の所定のビットを抽出し、それぞれの識別番号ＩＮを生成する。バイナリーツリーＢＴが高さの値Ｈを有する場合、所定のビットは、それぞれの識別データＩＤのハッシュ値の最初のＨ−１ビットである。ステップＳ２０５において、セキュリティプロトコル装置１００は、ハッシュ関数によって、記録データＲＤを少なくとも一つのバイナリーツリーＢＴに統合する。ステップＳ２０７において、セキュリティプロトコル装置１００は、識別番号ＩＮに従って、記録データＲＤのハッシュ値ＲＤＨを、対応するリーフノードＬＮに保存する。ステップＳ２０９において、セキュリティプロトコル装置１００は、バイナリーツリーＢＴのルートハッシュＲＨおよび対応する識別シーケンス番号ＩＳをブロックチェーンＢＣに送信し、ブロックチェーン装置３００は、ルートハッシュＲＨおよび対応する識別シーケンス番号ＩＳを保存する。ステップＳ２１１において、セキュリティプロトコル装置１００は、バイナリーツリーＢＴを複数のスライスＢＴＳに切る。ステップＳ２１３において、セキュリティプロトコル装置１００は、オフチェーンフレームワークＯＣを介して、スライスＢＴＳを対応する端末装置４００に返す。
【００６５】
次に、それぞれの端末装置４００は、受信したそれぞれのスライスＢＴＳの正当性を検証する。ステップＳ２１５において、スライスＢＴＳが不正であると検証されているとき、対応する端末装置４００は、ブロックチェーンＢＣに抗議メッセージを送信する。ステップＳ２１７において、スライスＢＴＳが正しいと検証されているとき、端末装置４００は、ブロックチェーンＢＣに抗議メッセージを送信する必要がない。
【００６６】
ステップＳ２１９において、ブロックチェーンＢＣのブロックチェーン装置３００は、識別シーケンス番号ＩＳに対応する累積シーケンス番号ＡＳおよび識別シーケンス番号ＩＳを順番に生成する。ステップＳ２２１において、ブロックチェーンＢＣのブロックチェーン装置３００は、ルートハッシュＲＨ、識別シーケンス番号ＩＳ、累積シーケンス番号ＡＳに従って、チェーンデータストリングＣＤＳを生成する。ステップＳ２２３において、セキュリティプロトコル装置１００は、バイナリーツリーＢＴ、イニシャルチェーンハッシュＣＨ０、識別シーケンス番号ＩＳ、累積シーケンス番号ＡＳをオフチェーンフレームワークＯＣを介してデータベース装置２００に保存する。
【００６７】
ステップＳ２２５において、セキュリティプロトコル装置１００が検証要求を受けた場合、セキュリティプロトコル装置１００は、ブロックチェーンＢＣに位置するブロックチェーン装置３００のルートハッシュＲＨと、オフチェーンフレームワークＯＣを介してデータベース装置２００に保存されているバイナリーツリーＢＴのルートハッシュＲＨを比較することにより、オフチェーンフレームワークＯＣを介して保存されているバイナリーツリーＢＴの正確さを検証する。ステップＳ２２７において、セキュリティプロトコル装置１００が検索要求を受信し、検索要求がある記録データＲＤに向けられると、セキュリティプロトコル装置１００は記録データＲＤに対応する識別番号ＩＮに従ってオフチェーンフレームワークＯＣを介して保存されているバイナリーツリーＢＴのリーフノードＬＮを見つけ、識別番号ＩＮに対応するリーフノードＬＮを検索し、リーフノードＬＮから記録データＲＤのハッシュ値ＲＤＨを取得するか、またはリーフノードＬＮに記録データＲＤのハッシュ値ＲＤＨが存在しないことを検証する。
【００６８】
ステップＳ２２５において、セキュリティプロトコル装置１００が読み取り要求ＲＲを受け、読み取り要求ＲＲは、チェーンデータストリングＣＤＳの複数のデータセットＤＳの複数のルートハッシュＲＨの読み取りを要求し、セキュリティプロトコル装置１００はブロックチェーンＢＣの上の後ろのデータセットＤＳのルートハッシュＲＨを読み取り、オフチェーンフレームワークＯＣを介して保存されている前のデータセットＤＳの１つまたはそれ以上のルートハッシュＲＨを読み取る。ステップＳ２３１において、セキュリティプロトコル装置１００は、ブロックチェーンＢＣ上の後ろのデータセットＤＳのチェーンハッシュＣＨを用いることによりオフチェーンフレームワークＯＣの前の１つまたはそれ以上のルートハッシュＲＨの正確さを検証する。
【００６９】
検証システム１０、１０ａ、１０ｂの手段によれば、多数のデータを読み取る必要があるとき、チェーンデータストリングＣＤＳのアーキテクチャの下において相対的に多数のデータはオフチェーンフレームワークを介して読み取られ、相対的に少数のデータがブロックチェーンＢＣにより読み出される必要がある。ブロックチェーンＢＣのデータはオフチェーン方式ＯＣを介してデータを検証するために採用され、そのため、効率および信頼性は同時に考慮されることができる。例えば、会社において、それぞれの被雇用者の毎日の通勤記録のハッシュ値はバイナリーツリーＢＴのそれぞれのリーフノードＬＮにそれぞれ保存され、それぞれのバイナリーツリーＢＴは会社の被雇用者の１日の通勤記録である。そして全ての被雇用者の年間の通勤記録は、何百ものデータ、何百ものバイナリーツリーＢＴに累積し、これらのデータは検証システム１０、１０ａ、１０ｂに基づいて保存され、使用される。もし、ある日、会社の内部統制部が数年間の被雇用者の通勤記録を呼び出す必要があるならば、検証システム１０、１０ａ、１０ｂはブロックチェーンＢＣ上の多数の読み取りを実行する必要がなく、ルートハッシュＲＨおよびブロックチェーンＢＣ上のそれぞれのデータストリングＣＤＳの最後のデータセットＤＳのチェーンハッシュＣＨを読み出すだけでよい。それぞれのチェーンデータストリングＣＤＳの残りのルートハッシュＲＨはデータベース装置２００からオフチェーンフレームワークＯＣを介して読み出すことができる。データベース装置２００の残りのルートハッシュＲＨの正確さは、ブロックチェーンＢＣ上の最後のデータセットＤＳのチェーンハッシュＣＨにより検証されることができる。この方法において、ブロックチェーンのネットワーク送信要求および処理負荷は著しく減少し、オフチェーンＯＣデータの正確さはまた検証される。
【００７０】
まとめると、従来のブロックチェーンアーキテクチャはすべてのデータをブロックチェーンに送信し、次いで、多数のブロックチェーン処理リソースを消費するブロックチェーンのマイナーを介してデータを検証する。本発明の実施形態の検証システムおよび検証方法によれば、データの信頼性（否認防止）を維持することを前提として、データの大部分をオフチェーンデータベース装置に設定することができ、オフチェーンデータベース装置のバイナリーツリーのルートハッシュと、セキュリティプロトコル装置によるブロックチェーンの対応するルートハッシュを比較することによって、バイナリーツリーの正確さを検証することができる。したがって、主な処理は、オフチェーンで実行されるように変換され、ブロックチェーン上の負荷を大幅に低減する。さらに、セキュリティプロトコル装置は識別番号に従って記録データを見つけることができ、それによって、データベース装置内の記録データのハッシュ値が保存されているリーフノードを迅速に検索し、記録データが存在するかどうかを迅速に検証することができる。本発明の実施形態の検証システムおよび手法により、システムのネットワーク送信要求、総処理量、処理時間、処理コストを低減することができる。また、ブロックチェーンチップを備えた端末装置は、様々なオブジェクトに設定又は統合することができ、実用上において、より簡素および便利であり、オブジェクト品質の信頼性およびオブジェクトの価値を向上させることができる。
【００７１】
また、検証システムのチェーンデータストリングおよび本発明の実施形態の手段により、バイナリーツリーのルートハッシュを多数読み取る必要がある場合にはオフチェーンデータベース装置によりルートハッシュを読み取ることができ、オフチェーン方式により読み出されたルートハッシュの正確さはブロックチェーン上のチェーンデータストリングの後ろのデータセットのチェーンハッシュにより検証される。したがって、データの信頼性を維持することを前提として、ネットワーク送信要件およびブロックチェーンの処理負荷が軽減される。
【００７２】
本発明を例として、好ましい実施形態に関して説明したが、本発明は開示された実施形態に限定される必要はないことを理解されたい。当業者にとって、本発明の趣旨内の様々な修正および改良は、本発明の範囲内に包含される。本発明の範囲は、添付の特許請求の範囲に基づく。
【図面の簡単な説明】
【００７３】
【図１】図１は、本発明の一実施形態による検証システムの概略ブロック図である。
【図２】図２は、本発明の一実施形態によるバイナリーツリーの概略図である。
【図３】図３は、本発明の一実施形態によるチェーンデータストリングの概略図Ｉである。
【図３ａ】図３ａは、本発明の一実施形態によるチェーンデータストリングの概略図ＩＩである。
【図４】図４は、本発明の別の実施形態による検証システムの概略ブロック図である。
【図５】図５は、本発明のさらに別の実施形態による検証システムの概略ブロック図である。
【図６】図６は、本発明の一実施形態によるバイナリーツリーのスライスの概略図である。
【図７】図７は、本発明の別の実施形態によるチェーンデータストリングの概略図である。
【図８】図８は本発明の一実施形態による検証方法のフローチャートである。
【図９ａ】図９ａは、本発明の別の実施形態による検証方法のフローチャートである。
【図９ｂ】図９ｂは、本発明の別の実施形態による検証方法のフローチャートである。
【符号の説明】
【００７４】
１０、１０ａ、１０ｂ  検証システム
１３  リーフノード番号
１００  セキュリティプロトコル装置
１１０  バイナリーツリー処理ユニット
１２０  検証ユニット
１３０  読み取りユニット
１４０、３１１  チェーン処理ユニット
１５０、４４０  識別番号ユニット
１６０  位置検索ユニット
１７０  スライシングユニット
１８０  識別シーケンス番号ユニット
２００  データベース装置
３００  ブロックチェーン装置
３１０  スマートコントラクト
３１２  累積シーケンス番号ユニット
４００  端末装置
４１０  記録データ生成ユニット
４２０  識別データ生成ユニット
４３０  スライス検証ユニット
【図１】
2020182215.tif 000003
【図２】
2020182215.tif 000004
【図３】
2020182215.tif 000005
【図３ａ】
2020182215.tif 000006
【図４】
2020182215.tif 000007
【図５】
2020182215.tif 000008
【図６】
2020182215.tif 000009
【図７】
2020182215.tif 000010
【図８】
2020182215.tif 000011
【図９ａ】
2020182215.tif 000012
【図９ｂ】
2020182215.tif 000013