(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-18
(45)【発行日】2022-08-26
(54)【発明の名称】ブロックチェーンおよびオフチェーン装置の連携のための検証システムおよび方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20220819BHJP
G06F 21/64 20130101ALI20220819BHJP
【FI】
H04L9/32 200Z
G06F21/64
(21)【出願番号】P 2020076038
(22)【出願日】2020-04-22
【審査請求日】2020-04-22
(32)【優先日】2019-04-24
(33)【優先権主張国・地域又は機関】TW
【前置審査】
(73)【特許権者】
【識別番号】520143100
【氏名又は名称】國際信任機器股▲ふん▼有限公司
(74)【代理人】
【識別番号】110000338
【氏名又は名称】特許業務法人HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】黄冠寰
【審査官】中里 裕正
(56)【参考文献】
【文献】米国特許出願公開第2017/0364552(US,A1)
【文献】GIPP, B., MEUSCHKE, N. and GERNANDT, A.,Decentralized Trusted Timestamping using Crypto Currency Bitcoin,arXiv.org,arXiv:1502.04015,[online],2015年02月13日,pp.1-6,https://arxiv.org/abs/1502.04015,[2020年6月3日検索]
【文献】GARNER, B.,Merkle Tree Hashing: How Blockchain Verification Works,[online],2018年09月03日,https://coincentral.com/merkle-tree-hashing-blockchain/,[2021年6月21日検索]
【文献】HWANG, G.-H. et al.,InfiniteChain: A Multi-chain Architecture with Distributed Auditing of Sidechains for Public BlockChains,Blockchain - ICBC 2018,2018年,pp.47-60
【文献】JAMTHAGEN, C. and HELL, M.,Blockchain-based publishing layer for the Keyless Signing Infrastructure,UIC-ATC-ScalCom-CBDCom-IoP-SmartWorld 2016,2016年07月,pp.374-381
【文献】VAUGHAN, W., BUKOWSKI, J. and WILKINSON, S.,Chainpoint A scalable protocol for anchoring data in the blockchain and generating blockchain receip,[online],[online],2016年06月29日,http://cryptochainuni.com/wp-content/uploads/chainpoint-white-paper.pdf,[2020年8月3日検索]
【文献】HWANG, G.-H. and CHEN, H.-F.,Efficient Real-time Auditing and Proof of Violation for Cloud Storage System,2016 IEEE 9th International Conference on Cloud Computing,2016年,pp.132-139
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
データ検証のためのブロックチェーンおよびオフチェーン装置との連携のセキュリティプロトコル装置であって、
複数の端末装置から記録データを受信し、
前記複数の端末装置から前記記録データに対応する識別データを受信し、
前記識別データのそれぞれは、前記記録データのそれぞれに対応し、
1つ
または複数のバイナリーツリー
の1つは、ルートハッシュを保存するルート、および、前記記録データのハッシュ値のそれぞれを保存する複数のリーフノードを含
み、前記1つ又は複数のバイナリーツリーに、ハッシュ関数に従って前記記録データを統合し、
バイナリーツリーは、1つまたは複数のバイナリーツリーの内の特に1つであり、
データベース装置に前記バイナリーツリー
および前記バイナリーツリーから分離した複数のバイナリーツリースライスを保存し、および
前記バイナリーツリーの前記ルートハッシュ
をブロックチェーン装置に送信するように構成されている、バイナリーツリー処理ユニットと、
前記データベース装置に保存された前記バイナリーツリーの正確さを検証するために、検証要求を
前記複数の端末装置の1つから受信し、前記ブロックチェーン装置の前記ルートハッシュを、
前記オフチェーン方式によって保存された前記データベース装置に保存された前記バイナリーツリーの前記ルートハッシュと比較するように構成されている、検証ユニットと、
対応する前記リーフノードの一つに対応するそれぞれの識別番号を生成するために、前記それぞれの識別データのハッシュ値から複数の所定のビットを抽出するように構成されている、識別番号ユニットと、
前記それぞれの識別番号に従って、それぞれの前記記録データの前記ハッシュ値を、前記リーフノードの内の前記対応する一つに保存するように更に構成されている、前記バイナリーツリー処理ユニットと、
を含み、
前記セキュリティプロトコル装置は、オフチェーン方式によって前記
複数の端末装置および前記データベース装置と通信
し、前記セキュリティプロトコル装置は、前記複数のバイナリーツリースライスのそれぞれを、前記受信した記録データにより、前記複数の端末装置のそれぞれ1つに送信する、
セキュリティプロトコル装置。
【請求項2】
前記バイナリーツリーが高さの値Hを保持する場合、前記所定のビットは、それぞれの前記識別データの前記ハッシュ値の最初のH-1ビットである
ことを特徴とする請求項1に記載のセキュリティプロトコル装置。
【請求項3】
データ検証のためのブロックチェーンおよびオフチェーン装置との連携
の検証方法であって、
オフチェーン方式により複数の端末装置から複数の記録データを受信する工程、
複数の識別データのそれぞれが前記記録データのそれぞれに対応する、前記オフチェーン方式により前記複数の識別データを
前記複数の端末装置から受信する工程、
1つ
または複数のバイナリーツリー
の1つは、ルートハッシュを保存するルート、および、前記記録データのハッシュ値のそれぞれを保存する複数のリーフノードを含
み、前記1つまたは複数のバイナリーツリー
の1つに、ハッシュ関数に従って前記記録データを統合する工程
であって、バイナリーツリーは、1つまたは複数のバイナリーツリーの内の特に1つである、工程、
前記ブロックチェーンに前記バイナリーツリーの前記ルートハッシュを送信する工程、
オフチェーン方式により前記バイナリーツリー
および前記バイナリーツリーから分離した、複数のバイナリーツリースライスを保存する工程
であって、セキュリティプロトコル装置は、前記複数の端末装置およびデータベース装置と通信し、前記複数のバイナリーツリースライスのそれぞれを、前記受信した記録データによって前記複数の端末装置のそれぞれ1つに送信する、工程、
前記オフチェーン方式により保存された前記バイナリーツリーの正確さを検証するために、検証要求を
、前記複数の端末装置の1つから受信している場合、前記ブロックチェーンの前記ルートハッシュを、前記オフチェーン方式により保存された前記バイナリーツリーの前記ルートハッシュと比較する工程、
前記識別データを受信する工程の後に、対応する前記リーフノードの一つに対応するそれぞれの識別番号を生成するために、前記それぞれの識別データのハッシュ値から複数の所定のビットを抽出する工程、
前記それぞれの識別番号に従って、それぞれの前記記録データの前記ハッシュ値を、前記リーフノードの内の前記対応する一つに保存する工程
を含む、検証方法。
【発明の詳細な説明】
【発明の詳細な説明】
【0001】
〔関連出願の相互参照〕
本非仮出願は、米国特許法119(a)に基づいて、2019年4月24日に台湾、中華民国に出願された特許出願第108114389号の優先権を主張し、その全内容は参照により本明細書に組み込まれる。
【0002】
〔技術分野〕
本発明は検証システムに関し、特に、ブロックチェーンおよびオフチェーン装置を連携することができる検証システムおよび方法に関する。
【0003】
〔背景技術〕
従来技術において、ブロックチェーンは中央分散を達成するために分散アーキテクチャを採用している。世界の端末コンピュータは、ブロックチェーンによって接続することができる。任意の端末コンピュータによってブロックチェーンに送信されたデータは、固有の処理モードによってブロックチェーン上の他の端末コンピュータに配信することができる。これらのデータはブロックチェーン上の多数の端末コンピュータに保存されるため、データの正確さは、ブロックチェーン上の多数の端末コンピュータによって相互に検証することができ、ブロックチェーンのデータを変更または改ざんすることを困難にする。
【0004】
従来の端末コンピュータから中央サーバへのアーキテクチャにおいて、端末コンピュータがサーバにデータをアップロードするか、またはサーバからデータをダウンロードする必要がある場合、このタスクは、端末コンピュータ、中央サーバ、およびこれら2つの間のネットワークサーバといった限定された装置の処理のみを呼び出す。このタスクは、現行のネットワーク速度およびコンピュータ計算能力の観点から極めて迅速に実行することができる。しかしながら、ブロックチェーンのアーキテクチャにおいて、端末コンピュータがブロックチェーンの特性に基づいて、ブロックチェーンにデータをアップロードするか、またはブロックチェーンからデータをダウンロードする必要があるとき、このタスクはブロックチェーン上の多数の他の端末コンピュータ(マイナーなど)の検証手順を呼び出す。その結果、膨大なネットワーク送信要件および処理金額が発生し、これは比較的時間がかかり、処理コスト(例えば、マイナーのための料金)が高くなる。
【0005】
従来のパブリックなブロックチェーンと比較して、現在、比較的少数の端末コンピュータから構成されるプライベートなブロックチェーンが存在し、それによって、ネットワーク送信要件、処理量、処理時間、および処理コストが低減される。例えば、銀行グループは、グループまたはそのクライアント内の内部の組織のためのプライベートなブロックチェーンを作成することができる。しかしながら、より少ない数の端末コンピュータおよびプライベートに生成された特徴は、プライベートなブロックチェーンの信頼性(否認防止)がパブリックなブロックチェーンの信頼性ほど良好ではなく、プライベートなブロックチェーンの適用範囲も比較的狭いことを意味する。
【0006】
概して、ブロックチェーンは、バイナリーツリーまたはメルクルツリーを使用するツリー状のデータ構成である。全てのデータは、ハッシュ値を生成するためにハッシュ化される。バイナリーツリーは、最上層にルートを含み、最下層に複数のリーフノードを含む。リーフノードにはデータ毎のハッシュ値が保存されており、全てのリーフノードのハッシュ値は階層毎に処理されて、ツリーのルートにルートハッシュが生成される。すべてのバイナリーツリーは、ブロックチェーン上の端末コンピュータに保存される。バイナリーツリーのデータの正確さを検証するために、バイナリーツリーの正確さおよびそのデータは、端末コンピュータ上のバイナリーツリーのルートハッシュを比較することによって検証することができる。
【0007】
〔概要〕
従来のブロックチェーンに基づいて、特定のバイナリーツリーの特定のリーフノードにあるデータが、特定の処理の下で存在することを検証することができる。例えば、ルートハッシュが計算されるまで、レイヤごとのハッシュ計算を実行するために、リーフノードおよび対応する別のリーフノードの1つをグループ化することができる。ルートハッシュが正しければ、データが存在することが意味するが、ルートハッシュと全てのリーフノードのハッシュ値を含む完全なバイナリーツリーを取得し、バイナリーツリーのどのリーフノードにもデータが存在しないことを検証するための完全な処理を行う必要があるため、特定のデータが存在しないことを検証することは困難である。ネットワーク送信要件、処理量、処理時間、および処理コストは膨大である。
【0008】
この観点から、本発明はデータの信頼性(否認防止)を維持することを前提として、システム全体のネットワーク送信要件、処理量、処理時間、および処理コストを軽減するために、ブロックチェーンおよびオフチェーン装置と連携するための検証システムおよび方法を提供する。
【0009】
本発明の実施形態は、ブロックチェーンと連携し、オフチェーン方式により複数の端末装置と通信するのに適した検証システムを提供する。端末装置のそれぞれは、少なくとも1つの記録データを生成する。検証システムは、セキュリティプロトコル装置と、ブロックチェーン装置と、データベース装置とを含む。セキュリティプロトコル装置は、記録データを受信し、記録データを少なくとも1つのバイナリーツリーにハッシュ関数に従って統合する。バイナリーツリーは、ルートおよび複数のリーフノードを含む。ルートはルートハッシュを保存し、記録データのハッシュ値はそれぞれリーフノードに保存される。ブロックチェーン装置はブロックチェーンに配置され、セキュリティプロトコル装置と通信する。セキュリティプロトコル装置は、バイナリーツリーのルートハッシュをブロックチェーン装置に送信する。データベース装置は、ブロックチェーンに関与しないオフチェーン方式によりセキュリティプロトコル装置と通信する。セキュリティプロトコル装置は、バイナリーツリーをデータベース装置に保存する。ここで、セキュリティプロトコル装置が検証要求を受信すると、セキュリティプロトコル装置は、ブロックチェーン装置からのルートハッシュを、データベース装置に保存されたバイナリーツリーのルートハッシュと比較して、データベース装置に保存されたバイナリーツリーの正確さを検証する。
【0010】
本発明の一実施形態は、ブロックチェーンおよびオフチェーン装置と連携するために適した検証方法を提供する。検証方法は、ブロックチェーンに関与しないオフチェーン方式により複数の端末装置から複数のレコードデータを受信する工程と、記録データを少なくとも1つのバイナリーツリーにハッシュ関数に従って統合する工程であって、バイナリーツリーがルートおよび複数のリーフノードを含み、ルートがルートハッシュを保存し、記録データのハッシュ値がそれぞれリーフノードに保存される工程と、バイナリーツリーのルートハッシュをブロックチェーンに送信する工程と、バイナリーツリーをブロックチェーンに関与しないオフチェーン方式で保存する工程と、検証要求を受信する場合、ブロックチェーンからのルートハッシュを、オフチェーン方式で保存されたバイナリーツリーのルートハッシュと比較して、オフチェーン方式で保存されたバイナリーツリーの正確さを検証する工程とを含む。
【0011】
要するに、データの信頼性(否認防止)を維持することを前提として、データの大部分をオフチェーン方式によりデータベース装置に設定することができ、オフチェーン方式によるデータベースのバイナリーツリーのルートハッシュを、セキュリティプロトコル装置によってブロックチェーン上の対応するルートハッシュと比較して、バイナリーツリーの正確さを検証することによって、主な処理をオフチェーン方式による実行に変換し、それにより、ブロックチェーンの負荷を大幅に低減し、その結果、システム全体のネットワーク送信要件、処理量、処理時間、および処理コストが軽減される。
【0012】
本発明の詳細な特徴および利点は、以下の実施において詳細に記載される。その内容は、当業者が本発明の技術的内容を理解し、内容に応じて本発明の内容を実施するのに充分である。本発明の関連する目的および利点は、明細書に開示される内容、特許請求の範囲、および図面に従って、当業者によって容易に理解され得る。
【0013】
〔図面の簡単な説明〕
図1は、本発明の一実施形態による検証システムの概略ブロック図である。
【0014】
図2は、本発明の一実施形態によるバイナリーツリーの概略図である。
【0015】
図3は、本発明の別の実施形態による検証システムのブロック図である。
【0016】
図4は、本発明の一実施形態によるバイナリーツリーのスライスの概略図である。
【0017】
図5は、本発明の一実施形態による検証方法のフローチャートである。
【0018】
図6は、本発明の別の実施形態による検証方法のフローチャートである。
【0019】
〔詳細な説明〕
図1を参照すると、
図1には、本発明の一実施形態による検証システム10の概略ブロック図が示されている。本実施形態において、検証システム10は、ブロックチェーンBCと連携するのに適している。ブロックチェーンBCは、パブリックブロックチェーン、プライベートブロックチェーン、またはそれらの組み合わせを含むことができる。検証システム10は、例えばブロックチェーンBCに関与しない1つまたは複数のオフチェーン装置および/または1つまたは複数のオフチェーンチャンネルから成る、例えばオフチェーンフレームワークOCを介したオフチェーン方式により複数の端末装置400と通信するように構成され、オフチェーンフレームワークOCおよびブロックチェーンBCが連携する。それぞれの端末装置400は、少なくとも1つの記録データRDを生成することができる。オフチェーンフレームワークOCは、ブロックチェーンBCとは独立した経路を指す。オフチェーンフレームワークOCの通信とは、ブロックチェーンBCとは独立した経路上の通信関係を指す。例えば、オフチェーンフレームワークOCを介した2つの装置間の通信は、2つの装置が直接的に接続され、ブロックチェーンBCを呼び出さずにネットワークを介して互いに信号を送信することができることを意味する。端末装置400は、例えば、デスクトップコンピュータ、ノートブックコンピュータ、または各種センサである。記録データRDは、例えば、デスクトップコンピュータまたはノートブックコンピュータによって生成されたファイル情報やトランザクション情報、センサによって感知された数値情報であるが、これに限定されるものではない。
【0020】
図1に示すように、本実施形態において、検証システム10がセキュリティプロトコル装置100と、データベース装置200と、ブロックチェーン装置300とを含む。セキュリティプロトコル装置100は、オフチェーンフレームワークOCを介してデータベース装置200と通信し、セキュリティプロトコル装置100は、ブロックチェーンBC上に位置するブロックチェーン装置300と通信する。データベース装置200は、例えば、ブロックチェーンBCとは独立したデータ記憶サーバであり、ブロックチェーン装置300は、例えば、ブロックチェーンBCに接続された複数のコンピュータの集合であるが、これに限定されるものではない。本実施形態について、セキュリティプロトコル装置100は、ブロックチェーンBCとオフチェーンフレームワークOCの通信能力を組み合わせたサーバである。例えばセキュリティプロトコル装置100は、オフチェーンフレームワークOCとブロックチェーンBCとの間を仲介するものであり、後述するように、端末装置400とデータベース装置200との間の橋渡しをブロックチェーン装置300と同様に行うことができる。
【0021】
図2を参照すると、
図2は、本発明の一実施形態によるバイナリーツリーBTの概略図が示されている。
図1および
図2に示すように、本実施形態において、それぞれの端末装置400が記録データRDを生成した後、それぞれの端末装置400はオフチェーンフレームワークOCを介して記録データRDをセキュリティプロトコル装置100に送信する。セキュリティプロトコル装置100が、オフチェーンフレームワークOCを介してそれぞれの端末装置400の記録データRDを受信した後、セキュリティプロトコル装置100は、記録データRDを少なくとも1つのバイナリーツリーBTにハッシュ関数に従って統合する。
【0022】
図2に示すように、本実施形態において、バイナリーツリーBTは、ルートRと、複数のミドルノードMNと、複数のリーフノードLNとを含む。バイナリーツリーBTのツリーデータ構成において、ルートRは最上層に位置し、リーフノードLNは最下層に位置し、ミドルノードMNは最上層と最下層との間の1つまたは複数の層に分布している。全ての2つの隣り合うリーフノードLNは、上位レイヤにおいて統合され、ミドルノードMNとなる。それぞれのレイヤにおける全ての2つの隣り合うミドルノードMNは、上位レイヤにおいて統合され、ミドルノードMNとなる。最上位レイヤにおける2つのミドルノードMNは、統合され、ルートRになる。それぞれのリーフノードLNは、記録データRDのハッシュ値RDHのそれぞれの1つを保存する。それぞれのミドルノードMNのハッシュ値と、ルートRのルートハッシュRHとは、記録データRDのハッシュ値RDHに関連付けられている。
【0023】
例えば、セキュリティプロトコル装置100は、対応するハッシュ値RDHを生成するために、SHA-256のハッシュ関数を用いて記録データRDをハッシュ化することがあり、セキュリティプロトコル装置100は、それぞれのリーフノードLNに対して、記録データRDのハッシュ値RDHを保存する。さらに、2つの隣接するリーフノードLNのそれぞれの組に保存された2つのハッシュ値は接続され、次いで、ハッシュ化され、上位レイヤのミドルノードMNに保存され、それぞれのレイヤの2つの隣接するミドルノードMNのそれぞれの組に保存された2つのハッシュ値は接続され、次いで、ハッシュ化され、上位レイヤのミドルノードMNに保存され、以下同様である。本実施形態において、2つのハッシュ値は、接続され、次に2つのハッシュ値が最初にコードのストリングに接続され、次にコードのストリングがハッシュ化されるように順次ハッシュ化されるが、これに限定されない。例えば、第1のハッシュ値が「xxx」であり、第2のハッシュ値が「ooo」である場合、2つのハッシュ値は最初に、「xxxooo」のコードのストリングとして接続され、ストリングコード「xxxooo」は、ハッシュ値を生成するために再度ハッシュ化される。最後に、最上位レイヤの2つのミドルノードMNに保存された2つのハッシュ値が接続され、ハッシュ化されて、ルートハッシュRHが生成される。すなわち、バイナリーツリーBTは、リーフノードLNに保存されている記録データRDのハッシュ値RDHと、ルートRに保存されているルートハッシュRHとを含んでいる。その上、記録データRDは改竄することができない。これは、バイナリーツリーBT内の記録データRDが改竄されている限り、記録データRDのハッシュ値RDHが変化するためである。いずれかのリーフノードLNの記録データRDのハッシュ値RDHが変化する限り、バイナリーツリーBTのルートハッシュRHもそれに応じて変化する。ルートハッシュRHが変化したか否かを判定することにより、バイナリーツリーBTに対応する記録データRDの正確さを検証することができる。別の実施形態において、1つのリーフノードLには、2つ以上の記録データRDのハッシュ値RDHが保存されていてもよい。この場合、リーフノードLNに保存されるハッシュ値RDHは、2つ以上のレコードデータRDのハッシュ値RDHを連結してハッシュ化した値である。
【0024】
図1および
図2に示すように、本実施形態において、セキュリティプロトコル装置100がバイナリーツリー処理ユニット110および検証ユニット120を含む。バイナリーツリー処理ユニット110および検証ユニット120は、例えば、ソフトウェア/ハードウェアによって形成された機能モジュールであり、これらに限定されないが、それぞれ特有の機能を実行する。バイナリーツリー処理ユニット110および検証ユニット120は独立したモジュールであってもよいし、統合されたモジュールであってもよい。
【0025】
本実施形態において、セキュリティプロトコル装置100のバイナリーツリー処理ユニット110は受信した記録データRDを自動的にハッシュ化して統合し、バイナリーツリーBTを生成する。セキュリティプロトコル装置100はバイナリーツリーBTのルートハッシュRHを、ブロックチェーン装置300に送信する、すなわち、これらのルートハッシュRHは、ブロックチェーンBCに保存される。また、セキュリティプロトコル装置100は、バイナリーツリーBTをデータベース装置200に保存する。すなわち、完全なバイナリーツリーBTはブロックチェーンBCに保存される代わりに、オフチェーンフレームワークOCを介して保存される。他の実施形態において、完全なバイナリーツリーBTがデータベース装置200に保存され、ブロックチェーン装置300に送信されてもよい。
【0026】
本実施形態において、セキュリティプロトコル装置100の検証ユニット120は、データベース装置200に保存されているバイナリーツリーBTの正確さを検証する。セキュリティプロトコル装置100が検証要求を受信し、検証要求がある記録データRDの正確さを検証するとき、検証ユニット120はブロックチェーン装置300上の記録データRDに対応するバイナリーツリーBTのルートハッシュRHと、データベース装置200に保存されたレコードデータRDに対応するバイナリーツリーBTのルートハッシュRHとを自動的に比較し、データベース装置200に保存されたバイナリーツリーBTの正確さを検証する。ブロックチェーン装置300上のルートハッシュRHが、データベース装置200に保存されたバイナリーツリーBTのルートハッシュRHと一致する場合、ブロックチェーンBCの特性に基づいて、データベース装置200に保存された記録データRDのバイナリーツリーBTが正しいことを示す。
【0027】
完全なバイナリーツリーBTはオフチェーンフレームワークOCを介してデータベース装置200内に配置されるため、記録データRDのハッシュ値RDHのアクセスおよび処理は主にオフチェーンフレームワークOCを介して実行され、ブロックチェーンBC上で従来的に実行されるこのタスクのためのネットワーク送信要件、処理量、処理時間、および処理コストを節約することができる。また、ブロックチェーン装置300上の対応するルートハッシュRHと比較することにより、データベース装置200内のバイナリーツリーBTのルートハッシュRHを検証することができ、オフチェーンフレームワークOCを介したデータベース装置200内のデータの正確さは確保され得る。
【0028】
図3を参照すると、
図3には、本発明の別の実施形態による検証システム10aのブロック図である。
図1および
図3における検証システム10および10aの同一または類似の構成要素、接続関係、および機能は再度説明しない。以下、
図3の検証システム10aと
図1の検証システム10との間の相違点について説明する。本実施形態において、検証システム10aは、セキュリティプロトコル装置100と、データベース装置200と、ブロックチェーン装置300と、複数の端末装置400とを含む。セキュリティプロトコル装置100は、ブロックチェーンBCに位置するブロックチェーン装置300と通信し、オフチェーンフレームワークOCを介してデータベース装置200および端末装置400と通信する。さらに、端末装置400は、ブロックチェーン装置300と通信する。セキュリティプロトコル装置100は、バイナリーツリー処理ユニット110と、検証ユニット120と、識別番号ユニット130と、位置検索ユニット140と、スライシングユニット150とを備える。バイナリーツリー処理ユニット110、検証ユニット120、識別番号ユニット130、位置検索ユニット140、スライシングユニット150は、例えば、ソフトウェア/ハードウェアによって形成された機能モジュールであって、それぞれ固有の機能を実行するものであり、バイナリーツリー処理ユニット110、検証ユニット120、識別番号ユニット130、位置検索ユニット140、スライシングユニット150は、独立したモジュールであってもよいし、一体化されたモジュールであってもよい。
【0029】
図3に示されるように、本実施形態において、ブロックチェーン装置300が少なくとも1つのスマートコントラクト310を含み、セキュリティプロトコル装置100によってブロックチェーン装置300に送信されるルートハッシュRHは対応するスマートコントラクト310に保存される。異なる実施形態において、ブロックチェーン装置300がスマートコントラクトとは異なるプログラムアーキテクチャまたはインターフェースを含むこともでき、ルートハッシュRHは異なるプログラムアーキテクチャまたはインターフェースに対応するブロックチェーン装置300に保存されることができる。
【0030】
図3に示すように、本実施形態において、それぞれの端末装置400が記録データ生成ユニット410と、識別データ生成ユニット420と、スライス検証ユニット430とを備える。記録データ生成ユニット410、識別データ生成ユニット420、およびスライス検証ユニット430は、例えば、それぞれ特定の機能を実行するためにソフトウェア/ハードウェアによって形成される機能モジュールであるが、これらに限定されない。なお、記録データ生成ユニット410、識別データ生成ユニット420、スライス検証ユニット430は独立したモジュールであってもよいし、統合されたモジュールであってもよい。また、記録データ生成ユニット410は、上述した記録データRDを生成するように構成されている。また、それぞれの端末装置400の記録データ生成ユニット410がレコードデータRDを生成するときに、それぞれの端末装置400の識別データ生成ユニット420は、記録データRDのそれぞれが対応する識別データIDを有するように、記録データRDにそれぞれの対応する複数の識別データIDを生成する。端末装置400は、記録データRDとそれに対応する識別データIDとを同時にセキュリティプロトコル装置100に送信する。いくつかの実施形態において、端末装置400は、記録データRDおよび対応する識別データIDを統合データに統合し、統合データをセキュリティプロトコル装置100に送信することができる。いくつかの実施形態において、識別データIDは、プレーンコードである。
【0031】
図3に示すように、本実施形態において、セキュリティプロトコル装置100が記録データRDおよび対応する識別データIDを受信し、セキュリティプロトコル装置100は識別データIDに従って、記録データRDのハッシュ値RDHを対応するリーフノードLNに保存する。例えば、セキュリティプロトコル装置100が識別データIDを受信した後、セキュリティプロトコル装置100の識別番号ユニット130は識別データIDに従ってリーフノードLNにそれぞれ対応する複数の識別番号INを生成し、セキュリティプロトコル装置100は、識別番号INに従って記録データRDのハッシュ値RDHを対応するリーフノードLNに保存する。この場合、それぞれの識別番号INは任意のバイナリーツリーBTにおいて一意であり、それぞれの識別番号INは、バイナリーツリーBTにおけるリーフノードLNのそれぞれ1つに対応する。したがって、それぞれの記録データRDのハッシュ値RDHは後に詳述するように、対応する識別番号INを用いて、リーフノードLNのそれぞれ1つに配置することができる。
【0032】
本実施形態において、セキュリティプロトコル装置100の識別番号ユニット130は、識別データIDのそれぞれ1つのハッシュ値から複数の所定のビットを抽出し、それぞれ1つの識別番号INを生成する。また、所定ビット数は、対応するバイナリーツリーBTの高さ値Hに関連付けられてもよい。バイナリーツリーBTが高さの値Hを有する場合、バイナリーツリーBTは、2(H-1)のリーフノードLNを有する。バイナリーツリーBTのリーフノードLNが対応する排他的な固有の識別番号INを有することを可能にするために、所定のビットは、識別データIDのハッシュ値のそれぞれ1つから抽出された少なくともH-1ビットである。このように、H-1ビットの配置はリーフノードLNの数を満たすため、リーフノードLNに対応する識別番号INは一意であり、繰り返されない。本実施形態において、H-1ビットが、例えば、識別データIDのハッシュ値のそれぞれ1つにおける最初のH-1ビットであるが、これに限定されない。他の実施形態において、H-1ビットが識別データIDのハッシュ値のそれぞれ1つから抽出された最後のH-1ビット、または任意の場所のH-1ビットとすることができる。
【0033】
例えば、
図2のバイナリーツリーBTの高さの値Hが5であり、バイナリーツリーBTが2
(5-1)のリーフノードLN、すなわちバイナリーツリーBTが16のリーフノードLNとなる。ある記録データRDに対応する識別データIDが「E1534391」であるとすると、識別番号ユニット130はSHA-256ハッシュ関数を用いて識別データIDをハッシュ化し、ハッシュ値「dbb9ed8b677468b4834d2f634a77ea1e6663431bf1ee7523041467ff8023fa64」を生成する。次に、識別番号ユニット130はハッシュ値により変換された2進ビットシーケンスの最初の4ビット「1101」を抽出し、「1101」を10進法の値「13」に変換し、識別番号INを「13」として生成する。識別番号ユニット130は、バイナリーツリーBTの16番目のリーフノードLNの全てを1から16番目のリーフノードLNに順次設定し、識別番号INが13の記録データRDのハッシュ値RDHを13のリーフノードLN番号に保存する。いくつかの実施形態において、異なる識別データIDが同じ識別番号INを生成することができ、または異なる記録データRDは同じ識別データIDを有し、同じ識別番号INを生成することができる。ここで、複数の記録データRDのハッシュ値RDHは同一の識別番号INに対応し、同一のリーフノードLNに保存されていてもよい。いくつかの実施形態において、バイナリーツリーBTのそれぞれのリーフノードLNが2つ以上の記録データRDのハッシュ値RDHを保存することができ、特定のリーフノードLNに対応する2つ以上の記録データRDのハッシュ値RDHが接続され、次いでハッシュ値を生成するためにハッシュ化される。リーフノードLNには、複数の記録データRDに対応するハッシュ値が保存される。
【0034】
図3に示すように、本実施形態において、セキュリティプロトコル装置100の位置検索ユニット140は、識別番号INを用いてレコードデータRDのハッシュ値RDHを特定することができる。ユーザは、データベース装置200内のあるバイナリーツリーBT内のある記録データRDに対応するハッシュ値RDHを検索または検証する必要がある場合、ユーザはセキュリティプロトコル装置100を用いて上記のタスクを行うことができる。このとき、セキュリティプロトコル装置100の位置検索ユニット140は、識別番号INによって記録データRD(すなわち、記録されたリーフノードLN)のハッシュ値RDHを探し出し、ID番号INに対応するバイナリーツリーBTのリーフノードLNから直接的に記録データRDのハッシュ値RDHを抽出し、データを迅速に探し出して探索する。また、ある記録データRDが存在しないことを確認するために、識別番号INを用いて完了させることもできる。セキュリティプロトコル装置100は、完全なバイナリーツリーBT内の全てのハッシュ値を取得する必要はない。セキュリティプロトコル装置100の位置検索ユニット140は記録データRDに対応する識別番号INを用いて、レコードデータRDのハッシュ値RDH、すなわち、対応するリーフノードLNを探し出し、記録データRDのハッシュ値RDHがリーフノードLNに存在するか否かを直接的に確認することができる。リーフノードが記録データRDのハッシュ値RDHを有していない場合には、記録データRDが存在しないことを検証することができる。このようにして、確認タスク全体のネットワーク送信要件、処理量、処理時間、および処理コストを大幅に削減することができる。
【0035】
上述したように、いくつかの実施形態において、異なった記録データRDの識別データIDが同じ識別番号INを生成することができる。この場合、ある記録データRDのハッシュ値RDHは、2つまたはそれ以上のリーフノードLNに位置していてもよい。記録データRDを検証する必要がある場合、セキュリティプロトコル装置100は、データベース装置200から2つまたはそれ以上のリーフノードLNのハッシュ値RDHを取得して検証することができる。本実施形態において、識別番号INが繰り返される可能性は比較的低くなる。ある記録データRDのハッシュ値RDHが2つまたはそれ以上のリーフノードLNに位置する場合であっても、位置するリーフノードLNの数は、全てのリーフノードLNの数よりも依然として少ないか、はるかに少ない。このようにして、検証タスク全体のネットワーク送信要件、処理量、処理時間、および処理コストは、大幅に削減され得る。
【0036】
図3に示すように、本実施形態において、端末装置400が識別番号ユニット440をさらに含む。端末装置400の識別番号ユニット440は、セキュリティプロトコル装置100の識別番号ユニット130と同様の機能を有する。また、識別番号ユニット440は、記録データRDの識別データIDに基づいて識別番号INを生成することができる。端末装置400は、識別番号ユニット440を用いて、セキュリティプロトコル装置100が正しいリーフノードLNからデータを取得したか否かを検証することができる。例えば、端末装置400が、ある記録データRDを検証する必要があり、レコードデータRDの識別データIDが「E1534391」である場合(上記実施例参照)、端末装置400が検証要求をセキュリティプロトコル装置100に送信すると、セキュリティプロトコル装置100の位置検索ユニット140は記録データRDに対応する識別番号INを用いて、記録データRDのハッシュ値RDHを特定し、データベース装置200のバイナリーツリーBTの13番のリーフノードLNに位置することを発見し、13番のリーフノードLNのハッシュ値RDHを端末装置400に返して検証を行うことができる。同様に、端末装置400の識別番号ユニット440は記録データRDの識別データID「E1534391」に基づいて識別番号INを生成し、識別番号INに基づいて、記録データRDのハッシュ値RDHを13番目のリーフノードLNに保存すべきであると推定することもできる。これにより、端末装置400は、セキュリティプロトコル装置100から返信された記録データRDのハッシュ値RDHが正しい位置(リーフノード番号13)にあるか否かを確認することができる。
【0037】
図4を参照すると、
図4には、本発明の一実施形態によるバイナリーツリーBTのスライスBTSの概略図が示されている。
図3および
図4に示すように、本実施形態において、セキュリティプロトコル装置100がバイナリーツリーBTのルートハッシュRHをブロックチェーン装置300に送信するとき、セキュリティプロトコル装置100のスライシングユニット150はバイナリーツリーBTを自動的に複数のスライスBTSに切り、スライスBTSを対応する端末装置400に返し、それぞれの端末装置400のスライス検証ユニット430は、受信したそれぞれのスライスBTSの正確さを検証する。
図2および
図4に示すように、本実施形態において、それぞれのスライスBTSがルートR、2つの対応するリーフノードLN、および必要ならばバイナリーツリーBTの中央ノードMNによって形成されるメルクルプルーフである。リーフノードLNのセットに記憶される記録データRDのハッシュ値RDHは、前述の処理プロセスによって得られ、ルートRに位置するルートハッシュRHを得ることができる。スライスBTSのルートハッシュRHは、完全なバイナリーツリーBTのルートハッシュRHと一致している必要がある。例えば、ある端末装置400からセキュリティプロトコル装置100に所定の記録データRDおよび識別データIDが送信された後、セキュリティプロトコル装置100は、記録データRDのハッシュ値RDHを所定のバイナリーツリーBTの所定のリーフノードLNに保存し、リーフノードLNに対応するスライスBTSを端末装置400に返す。端末装置400は、スライスBTSのリーフノードLNの記録データRDのハッシュ値RDHを、端末装置400により生成した元の記録データRDの元のハッシュ値RDHと一致するか否かを比較する。それらが一致する場合、検証が正しいことを示す。それらが一致しない場合は、検証が正しくないことを示す。検証が正しくない場合、対応する端末装置400は、後続のデータの訂正、無効化または他の手順のために、抗議(protest)メッセージをブロックチェーン装置300に送信することができる。
【0038】
本実施形態において、それぞれの端末装置400は、ブロックチェーンチップを備える。ブロックチェーンチップは、例えば、ブロックチェーンBCと検証システム10、10bとの間で信号を自動的に送信することができる集積回路(IC)であるが、これに限定されない。このようなブロックチェーンチップによれば、端末装置400を軽量化、薄型化、短縮化することができ、端末装置400は、任意の物体に配置したり、任意の電子機器に組み込んだりすることが容易になる。例えば、端末装置400は、バッテリ(例えば、電気バスやハイブリッドバス、自動車用の大型バッテリパック)、電気メータ、自動車ヘッドライト、自動車本体(例えば、5Gを介してネットワーク接続された自動車のドライブコンピュータ)、またはフレームに組み込むことができる。端末装置400は、それぞれの対象物の記録データRDを自動的かつ継続的にアップロードする。レコードデータRDは、例えば、バッテリ、電気メータまたは自動車ヘッドライト、または自動車本体のセンサ情報(エンジン、走行距離計、始動回数など)の毎時または毎日の履歴検知データ、またはフレーム上のセンサによって検知される毎時または毎日の温度および湿度変化の履歴検知データ、および図の元のデータなどの、(スケジュールされたアップロードインターバルに応じた)毎時または毎日の履歴検知データであるが、これらに限定されない。セキュリティプロトコル装置100は、記録データRDのハッシュ値RDHを、オフチェーンフレームワークOCを介してデータベース装置200に保存し、ルートハッシュRHを、ブロックチェーン装置300にアップロードすることができる。
【0039】
検証システム10、10aに基づいて、オフチェーンフレームワークOCを介したデータベース装置200による様々なデータの迅速な探索および検索に加えて、ブロックチェーンBCの検証によってデータの否認防止を達成することもできる。また、端末装置400のコロケーションの適用に基づいて、モノの状況を保証することができ、モノの価値を向上させることができる。例えば、長距離車両に使用される使用済みの大型バッテリパックは、ある程度使用後に短距離車両に移送することができ、一方、短距離車両に使用される使用済みの大型バッテリパックは、ある程度使用後に予備発電バッテリとして漁場などの場所に移送することができる。それぞれの変換は、使用されるモノのための取引プラットフォームといったプラットフォームを介して実行することができる。モノの状態は、それぞれの取引において検証システム10、10aによって確認することができ、それによってモノの質の信頼性およびモノの価値を改善する。
【0040】
図5を参照すると、
図5は、本発明の一実施形態による検証方法のフローチャートが示されている。本実施形態において、検証方法が
図1に示す検証システム10を介して実施することができるが、これに限定されるものではない。検証方法は、ブロックチェーンBCと連携するのに適している。ステップS101において、セキュリティプロトコル装置100は、例えばブロックチェーンBCに関与しない1つまたは複数のオフチェーン装置および/または1つまたは複数のオフチェーンチャネルからなる、例えばオフチェーンフレームワークOCを介したオフチェーン方式により、複数の端末装置400から複数の記録データRDを受信する。ステップS103において、セキュリティプロトコル装置100は、記録データRDを少なくとも1つのバイナリーツリーBTにハッシュ関数に従って統合し、記録データRDのハッシュ値RDHは、バイナリーツリーBTのリーフノードLNにそれぞれ保存される。ステップS105において、セキュリティプロトコル装置100は、バイナリーツリーBTのルートハッシュRHをブロックチェーンBCに送信し、ブロックチェーン装置300は、ルートハッシュRHを保存する。ステップS107において、セキュリティプロトコル装置100は、オフチェーンフレームワークOCを介してバイナリーツリーBTを保存する、すなわち、セキュリティプロトコル装置100が完全なバイナリーツリーBTを、オフチェーンフレームワークOCを介してデータベース装置200に保存する。ステップS109において、セキュリティプロトコル装置100が検証要求を受けた場合、セキュリティプロトコル装置100は、ブロックチェーンBCに位置しているブロックチェーン装置300のルートハッシュRHと、オフチェーンフレームワークOCを介してデータベース装置200に保存されているバイナリーツリーBTのルートハッシュRHを比較することにより、オフチェーンフレームワークOCを介して保存されているバイナリーツリーBTの正確さを検証する。
【0041】
図6を参照すると、
図6は、本発明の別の実施形態による検証法のフローチャートである。本実施形態において、検証方法は、
図3に示した検証システム10aによって実現することができるが、これに限定されるものではない。ステップS201において、セキュリティプロトコル装置100は複数の端末装置400から複数の記録データRDおよび複数の識別データIDを、例えば、1つまたは複数のオフチェーン装置および/または、ブロックチェーンBCに関与しない1つまたは複数のチャンネル、および記録データRDにそれぞれ対応する識別番号IDから構成される、例えばオフチェーンフレームワークを介してオフチェーン方式により受信する。ステップS203において、セキュリティプロトコル装置100が識別データIDを受信した後、セキュリティプロトコル装置100は、識別データIDに従ったリーフノードLNに対応する複数の識別番号INをそれぞれ生成し、バイナリーツリーBTのそれぞれのリーフノードLNは固有の識別番号に対応する。例えば、セキュリティプロトコル装置100はそれぞれの識別データIDのハッシュ値から複数の所定のビットを抽出し、それぞれの識別番号INを生成する。バイナリーツリーBTが高さの値Hを有する場合、所定のビットは、それぞれの識別データIDのハッシュ値の最初のH-1ビットである。ステップS205において、セキュリティプロトコル装置100は、記録データRDをハッシュ関数によって少なくとも一つのバイナリーツリーBTに統合する。ステップS207において、セキュリティプロトコル装置100は、識別番号INに従って、記録データRDのハッシュ値RDHを、対応するリーフノードLNに保存する。ステップS209において、セキュリティプロトコル装置100は、バイナリーツリーBTのルートハッシュRHをブロックチェーンBCに送信し、ブロックチェーン装置300は、ルートハッシュRHを保存する。ステップS211において、セキュリティプロトコル装置100は、バイナリーツリーBTを複数のスライスBTSに切る。ステップS213において、セキュリティプロトコル装置100は、オフチェーンフレームワークOCを介して、スライスBTSを対応する端末装置400に返す。次に、それぞれの端末装置400は、受信したそれぞれのスライスBTSの正当性を検証する。ステップS215において、スライスBTSが不正であると検証されている場合、対応する端末装置400は、ブロックチェーンBCに抗議メッセージを送信する。ステップS217において、スライスBTSが正しいと検証されている場合、端末装置400は、ブロックチェーンBCに抗議メッセージを送信する必要がない。ステップS219において、セキュリティプロトコル装置100は、オフチェーンフレームワークOCを介してバイナリーツリーBTを保存する、すなわち、完全なバイナリーツリーBTをデータベース装置200に保存する。
【0042】
ステップS221において、セキュリティプロトコル装置100が検証要求を受けた場合、セキュリティプロトコル装置100は、ブロックチェーンBCに位置するブロックチェーン装置300のルートハッシュRHと、オフチェーンフレームワークOCを介してデータベース装置200に保存されているバイナリーツリーBTのルートハッシュRHを比較することにより、オフチェーンフレームワークOCを介して保存されているバイナリーツリーBTの正確さを検証する。ステップS223において、セキュリティプロトコル装置100が検索要求を受信し、検索要求がある記録データRDに向けられると、セキュリティプロトコル装置100は記録データRDに対応する識別番号INに従ってオフチェーンフレームワークOCを介して保存されているバイナリーツリーBTのリーフノードLNを見つけ、識別番号INに対応するリーフノードLNを検索し、リーフノードLNから記録データRDのハッシュ値RDHを取得するか、またはリーフノードLNに記録データRDのハッシュ値RDHが存在しないことを検証する。
【0043】
まとめると、従来のブロックチェーンアーキテクチャはすべてのデータをブロックチェーンに送信し、次いで、多数のブロックチェーン処理リソースを消費するブロックチェーンのマイナーを介してデータを検証する。本発明の実施形態の検証システムおよび検証方法によれば、データの信頼性(否認防止)を維持することを前提として、データの大部分をオフチェーンデータベース装置に設定することができ、オフチェーンデータベース装置のバイナリーツリーのルートハッシュと、セキュリティプロトコル装置によるブロックチェーンの対応するルートハッシュを比較することによって、バイナリーツリーの正確さを検証することができる。したがって、主な処理は、オフチェーンで実行されるように変換され、ブロックチェーン上の負荷を大幅に低減する。さらに、セキュリティプロトコル装置は識別番号に従って記録データを見つけることができ、それによって、データベース装置内の記録データのハッシュ値が保存されているリーフノードを迅速に検索し、記録データが存在するかどうかを迅速に検証することができる。本発明の実施形態の検証システムおよび手法により、システムのネットワーク送信要求、総処理量、処理時間、処理コストを低減することができる。また、ブロックチェーンチップを備えた端末装置は、様々なオブジェクトに設定または統合することができ、実用上において、より簡素および便利であり、オブジェクト品質の信頼性およびオブジェクトの価値を向上させることができる。
【0044】
本発明を例として、好ましい実施形態に関して説明したが、本発明は開示された実施形態に限定される必要はないことを理解されたい。当業者にとって、本発明の趣旨内の様々な修正および改良は、本発明の範囲内に包含される。本発明の範囲は、添付の特許請求の範囲に基づく。
【図面の簡単な説明】
【0045】
【
図1】
図1は、本発明の一実施形態による検証システムの概略ブロック図である。
【
図2】
図2は、本発明の一実施形態によるバイナリーツリーの概略図である。
【
図3】
図3は、本発明の別の実施形態による検証システムのブロック図である。
【
図4】
図4は、本発明の一実施形態によるバイナリーツリーのスライスの概略図である。
【
図5】
図5は、本発明の一実施形態による検証方法のフローチャートである。
【
図6】
図6は、本発明の別の実施形態による検証方法のフローチャートである。
【符号の説明】
【0046】
10、10a 検証システム
13 リーフノード番号
100 セキュリティプロトコル装置
110 バイナリーツリー処理ユニット
120 検証ユニット
130 識別番号ユニット
140 位置検索ユニット
150 スライシングユニット
200 データベース装置
300 ブロックチェーン装置
310 スマートコントラクト
400 端末装置
410 記録データ生成ユニット
420 識別データ生成ユニット
430 スライス検証ユニット
440 識別番号ユニット