(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】不正検証装置、および、不正検知システム
(51)【国際特許分類】
G06Q 20/42 20120101AFI20231129BHJP
【FI】
G06Q20/42 300
(21)【出願番号】P 2022501708
(86)(22)【出願日】2021-01-20
(86)【国際出願番号】 JP2021001809
(87)【国際公開番号】W WO2021166528
(87)【国際公開日】2021-08-26
【審査請求日】2022-07-06
(31)【優先権主張番号】P 2020028430
(32)【優先日】2020-02-21
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】100103090
【氏名又は名称】岩壁 冬樹
(74)【代理人】
【識別番号】100124501
【氏名又は名称】塩川 誠人
(72)【発明者】
【氏名】深田 彰
【審査官】藤原 拓也
(56)【参考文献】
【文献】特許第6651042(JP,B1)
【文献】国際公開第2019/072294(WO,A2)
【文献】米国特許出願公開第2019/0305958(US,A1)
【文献】NAKAMOTO, Satoshi,"Bitcoin: A Peer-to-Peer Electronic Cash System",[online],2010年07月04日,[2023年6月29日検索], インターネット, <URL: https://web.archive.org/web/ 20100704213649/https://bitcoin.org/bitcoin.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから算出された第一のマークルルートハッシュと、当該範囲のブロックを示すブロック番号とを含むトランザクションであるブロック確証トランザクションを、当該ブロック確証トランザクションが登録されているブロックチェーンであって、前記第一のブロックチェーンとは異なる第二のブロックチェーンから取得する確証ブロック取得手段と、
取得した前記
ブロック確証トランザクションに含まれるブロック番号から前記第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、前記第一のマークルルートハッシュと前記第二のマークルルートハッシュとが一致するか比較して、前記特定されたブロックに対する不正操作を検知する不正操作検証手段とを備えた
ことを特徴とする不正検証装置。
【請求項2】
第一のブロックチェーンにおいて対象とする範囲は、第一のブロックチェーンにおけるブロックの生成タイミングと、第二のブロックチェーンにおけるブロックの生成タイミングに応じて決定される
請求項1記載の不正検証装置。
【請求項3】
第一のブロックチェーン
において対象とする範囲は、第二のブロックチェーンにおいて1つのブロックが生成される期間内で生成される、第一のブロックチェーンのブロックの数の範囲である
請求項1または請求項2記載の不正検証装置。
【請求項4】
第一のブロックチェーンは、コンソーシアム型ブロックチェーンまたはパブリック型ブロックチェーンであり、第二のブロックチェーンは、パブリック型ブロックチェーンである
請求項1から請求項3のうちのいずれか1項に記載の不正検証装置。
【請求項5】
第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから、マークルルートハッシュを算出し、当該範囲のブロックを示すブロック番号と算出した前記マークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成する確証ブロック生成手段と、
前記ブロック確証トランザクションの登録を依頼するトランザクションを、前記第一のブロックチェーンとは異なる第二のブロックチェーンに送信する登録依頼手段とを備えた
ことを特徴とする確証生成装置。
【請求項6】
第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから、第一のマークルルートハッシュを算出し、当該範囲のブロックを示すブロック番号と算出した前記第一のマークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成する確証ブロック生成手段と、
前記ブロック確証トランザクションの登録を依頼するトランザクションを、前記第一のブロックチェーンとは異なる第二のブロックチェーンに送信する登録依頼手段と、
前記ブロック確証トランザクションを、前記第二のブロックチェーンから取得する確証ブロック取得手段と、
取得した確証トランザクションに含まれるブロック番号から前記第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、前記第一のマークルルートハッシュと前記第二のマークルルートハッシュとが一致するか比較して、前記特定されたブロックに対する不正操作を検知する不正操作検証手段とを備えた
ことを特徴とする不正検知システム。
【請求項7】
コンピュータが、第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから算出された第一のマークルルートハッシュと、当該範囲のブロックを示すブロック番号とを含むトランザクションであるブロック確証トランザクションを、当該ブロック確証トランザクションが登録されているブロックチェーンであって、前記第一のブロックチェーンとは異なる第二のブロックチェーンから取得し、
前記コンピュータが、取得した前記ブロック確証トランザクションに含まれるブロック番号から前記第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、前記第一のマークルルートハッシュと前記第二のマークルルートハッシュとが一致するか比較して、前記特定されたブロックに対する不正操作を検知する
ことを特徴とする不正検証方法。
【請求項8】
コンピュータが、第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから、第一のマークルルートハッシュを算出し、当該範囲のブロックを示すブロック番号と算出した前記第一のマークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成し、
前記コンピュータが、前記ブロック確証トランザクションの登録を依頼するトランザクションを、前記第一のブロックチェーンとは異なる第二のブロックチェーンに送信し、
前記コンピュータが、前記ブロック確証トランザクションを、前記第二のブロックチェーンから取得し、
前記コンピュータが、取得した確証トランザクションに含まれるブロック番号から前記第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、前記第一のマークルルートハッシュと前記第二のマークルルートハッシュとが一致するか比較して、前記特定されたブロックに対する不正操作を検知する
ことを特徴とする不正検知方法。
【請求項9】
コンピュータに、
第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから算出された第一のマークルルートハッシュと、当該範囲のブロックを示すブロック番号とを含むトランザクションであるブロック確証トランザクションを、当該ブロック確証トランザクションが登録されているブロックチェーンであって、前記第一のブロックチェーンとは異なる第二のブロックチェーンから取得する確証ブロック取得処理、および、
取得した前記
ブロック確証トランザクションに含まれるブロック番号から前記第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、前記第一のマークルルートハッシュと前記第二のマークルルートハッシュとが一致するか比較して、前記特定されたブロックに対する不正操作を検知する不正操作検証処理
を実行させるための不正検証プログラ
ム。
【請求項10】
コンピュータに、
第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから、マークルルートハッシュを算出し、当該範囲のブロックを示すブロック番号と算出した前記マークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成する確証ブロック生成処理、および、
前記ブロック確証トランザクションの登録を依頼するトランザクションを、前記第一のブロックチェーンとは異なる第二のブロックチェーンに送信する登録依頼処理
を実行させるため確証生成プログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロックチェーンにおいて行われた不正の検証および検知に用いられる不正検証装置、確証生成装置、不正検知システム、不正検証方法、不正検知方法、不正検証プログラムに関する。
【背景技術】
【0002】
近年、分散型台帳技術(DLT:Distributed Ledger Technology )の一つとして、ブロックチェーンが広く知られている。ブロックチェーンは、ブロックと呼ばれるデータの単位を生成し、各ブロックを連結することによりデータを保管する技術である。
【0003】
各ブロックのヘッダには、ブロック内の取引履歴(トランザクション)から算出されたハッシュ値が格納されており、これにより、取引履歴の正しい組み合わせが検証できる。また、前のブロックヘッダから算出されたハッシュ値も格納されており、これにより、前のブロックとの論理的な繋がりの正当性が検証できる。
【0004】
ブロックチェーンは、ブロックの承認者の選び方や仕組みの違い(すなわち、コンセンサスをとる際のバリデーター)によって、大きく3つの形態に分類される。
【0005】
一つ目は、パブリック型ブロックチェーンと呼ばれる形態である。パブリック型ブロックチェーンでは、中央集権的な機関が存在せず、PoW(Proof of Work )のようなコンセンサスアルゴリズムを用意することにより、不正が行われるリスクを排除している。このような特性から、一般にパブリック型ブロックチェーンは参加に制限がないため、不特定多数のノードが存在する大規模なネットワークである。
【0006】
二つ目は、プライベート型ブロックチェーンと呼ばれる形態である。プライベート型ブロックチェーンは、参加に制限が設けられ、特定のノードのみ参加が可能な小規模のネットワークである。参加するノード数がパブリック型ブロックチェーンよりは少ないことから、取引(承認)にかかる時間は一般的に短い。
【0007】
三つ目は、コンソーシアム型ブロックチェーンと呼ばれる形態である。コンソーシアム型ブロックチェーンは、プライベート型ブロックチェーンと同様、参加するノードがパブリック型ブロックチェーンよりは少ないため、取引にかかる時間が一般的に短い。さらに、コンソーシアム型ブロックチェーンは、複数の組織により合意形成が行われるため、プライベート型ブロックチェーンと比較すると、信頼性の高いネットワークと言える。
【0008】
また、特許文献1には、ブロックチェーンにおける改ざんを検知するシステムが記載されている。特許文献1に記載されたシステムでは、末端オブジェクトの存在証明を外部システムに保存する。そのため、ある対象について履歴が作成し直されたり、末端オブジェクトが差し替えられたりといった改ざんがされた場合、外部システムにある存在証明を用いることで改ざんを検知できる。
【先行技術文献】
【特許文献】
【0009】
【発明の概要】
【発明が解決しようとする課題】
【0010】
上述するように、プライベート型ブロックチェーンやコンソーシアム型ブロックチェーンは、パブリック型ブロックチェーンと比較して、チェーンを構成するノードが数十ノード程度の小規模である。そのため、悪意の参加者が複数で結託してデータを改ざんした場合、そのような不正を検知できない可能性も存在する。
【0011】
特許文献1に記載されたシステムでは、そもそも、ブロックチェーンの参加者が結託し、データを改ざんすることについては考慮されておらず、このような不正を検知することはできない。
【0012】
そこで、本発明では、ブロックチェーンで行われたデータの不正操作を検知できる不正検証装置、不正検知システム、不正検証方法、不正検知方法、不正検証プログラムおよびその検知に用いられる確証を生成する確証生成装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明による不正検証装置は、第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから算出された第一のマークルルートハッシュと、その範囲のブロックを示すブロック番号とを含むトランザクションであるブロック確証トランザクションを、そのブロック確証トランザクションが登録されているブロックチェーンであって、第一のブロックチェーンとは異なる第二のブロックチェーンから取得する確証ブロック取得部と、取得した確証トランザクションに含まれるブロック番号から第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、第一のマークルルートハッシュと第二のマークルルートハッシュとが一致するか比較して、特定されたブロックに対する不正操作を検知する不正操作検証部とを備えたことを特徴とする。
【0014】
本発明による確証生成装置は、第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから、マークルルートハッシュを算出し、その範囲のブロックを示すブロック番号と算出したマークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成する確証ブロック生成部と、ブロック確証トランザクションの登録を依頼するトランザクションを、第一のブロックチェーンとは異なる第二のブロックチェーンに送信する登録依頼部とを備えたことを特徴とする。
【0015】
本発明による不正検知システムは、第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから、第一のマークルルートハッシュを算出し、その範囲のブロックを示すブロック番号と算出した第一のマークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成する確証ブロック生成部と、ブロック確証トランザクションの登録を依頼するトランザクションを、第一のブロックチェーンとは異なる第二のブロックチェーンに送信する登録依頼部と、ブロック確証トランザクションを、第二のブロックチェーンから取得する確証ブロック取得部と、取得した確証トランザクションに含まれるブロック番号から第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、第一のマークルルートハッシュと第二のマークルルートハッシュとが一致するか比較して、特定されたブロックに対する不正操作を検知する不正操作検証部とを備えたことを特徴とする。
【0016】
本発明による不正検証方法は、コンピュータが、第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから算出された第一のマークルルートハッシュと、その範囲のブロックを示すブロック番号とを含むトランザクションであるブロック確証トランザクションを、そのブロック確証トランザクションが登録されているブロックチェーンであって、第一のブロックチェーンとは異なる第二のブロックチェーンから取得し、コンピュータが、取得した確証トランザクションに含まれるブロック番号から第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、第一のマークルルートハッシュと第二のマークルルートハッシュとが一致するか比較して、特定されたブロックに対する不正操作を検知することを特徴とする。
【0017】
本発明による不正検知方法は、コンピュータが、第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから、第一のマークルルートハッシュを算出し、その範囲のブロックを示すブロック番号と算出した第一のマークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成し、コンピュータが、ブロック確証トランザクションの登録を依頼するトランザクションを、第一のブロックチェーンとは異なる第二のブロックチェーンに送信し、コンピュータが、ブロック確証トランザクションを、第二のブロックチェーンから取得し、コンピュータが、取得した確証トランザクションに含まれるブロック番号から第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、第一のマークルルートハッシュと第二のマークルルートハッシュとが一致するか比較して、特定されたブロックに対する不正操作を検知することを特徴とする。
【0018】
本発明による不正検証プログラムは、コンピュータに、第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから算出された第一のマークルルートハッシュと、その範囲のブロックを示すブロック番号とを含むトランザクションであるブロック確証トランザクションを、そのブロック確証トランザクションが登録されているブロックチェーンであって、第一のブロックチェーンとは異なる第二のブロックチェーンから取得する確証ブロック取得処理、および、取得した確証トランザクションに含まれるブロック番号から第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、第一のマークルルートハッシュと第二のマークルルートハッシュとが一致するか比較して、特定されたブロックに対する不正操作を検知する不正操作検証処理を実行させることを特徴とする。
【発明の効果】
【0019】
本発明によれば、ブロックチェーンで行われたデータの不正操作を検知できる。
【図面の簡単な説明】
【0020】
【
図1】本発明による不正検知システムの第一の実施形態の構成例を示す説明図である。
【
図2】ブロック確証トランザクションを生成する処理の例を示す説明図である。
【
図3】第一の実施形態の不正検知システムの動作例を示す説明図である。
【
図4】本発明による不正検知システムの第二の実施形態の構成例を示す説明図である。
【
図6】第二の実施形態の不正検知システムの動作例を示す説明図である。
【
図7】本発明による不正検知システムの第三の実施形態の構成例を示す説明図である。
【
図8】確証を登録する処理の具体例を示す説明図である。
【
図9】不正操作を検証する具体例を示す説明図である。
【
図10】本発明による不正検証装置の概要を示すブロック図である。
【
図11】本発明による確証生成装置の概要を示すブロック図である。
【
図12】本発明による不正検知システムの概要を示すブロック図である。
【発明を実施するための形態】
【0021】
以下、本発明の実施形態を図面を参照して説明する。
【0022】
実施形態1.
第一の実施形態では、不正操作の検知を行うための確証を登録する処理を説明する。
図1は、本発明による不正検知システムの第一の実施形態の構成例を示す説明図である。本実施形態の不正検知システム100は、クライアントデバイス1と、複数のノード10と、トランザクション管理部20と、仲介クライアント30とを備えている。
【0023】
クライアントデバイス1、複数のノード10、および、トランザクション管理部20は、ブロックチェーン110の構成要素として動作する。以下、クライアントデバイス1、複数のノード10、トランザクション管理部20および仲介クライアント30が含まれるブロックチェーン110を、第一のブロックチェーンと記す。
【0024】
本実施形態では、第一のブロックチェーンは、プライベート型ブロックチェーンやコンソーシアム型のブロックチェーンのような、チェーンを構成するノードが数十ノード程度の小規模なネットワークを想定する。このようなブロックチェーンとして、例えば、Hyperldger Fabric や、Corda 、Quorumなどが挙げられる。以下の説明では、第一のブロックチェーンの具体例に、Hyperldger Fabric を用いて説明するが、第一のブロックチェーンの態様は、Hyperldger Fabric に限定されない。
【0025】
また、後述する仲介クライアント30は、パブリック型ブロックチェーンのような大規模なブロックチェーン120の構成要素としても動作する。以下、仲介クライアント30が含まれるブロックチェーン120のことを第二のブロックチェーンと記す。第二のブロックチェーンは、第一のブロックチェーンとは異なるブロックチェーンである。このようなブロックチェーンとして、例えば、EthereumやNEM 、EOS などが挙げられる。以下の説明では、第二のブロックチェーンの具体例に、Ethereumを用いて説明するが、第二のブロックチェーンの態様は、Ethereumに限定されない。なお、第二のブロックチェーンの詳細については後述される。
【0026】
クライアントデバイス1は、ブロックチェーン110において、取引要求(トランザクション)を作成し、作成した取引要求を複数のノード10のいずれかに送信する装置である。クライアントデバイス1は、参加するブロックチェーンによって様々な呼称が存在するが、クライアント、ノード、ウォレットなどと呼ばれる装置である。例えば、Hyperldger Fabric の場合、クライアントデバイス1は、clientに対応する。クライアントデバイス1は、参加するブロックチェーンに応じた取引要求を作成すればよい。
【0027】
ノード10は、ブロックチェーン110において複数台で構成され、受信した取引要求を受け付けて処理を行い、処理の結果生成されるブロックチェーンのデータを保持する。例えば、Hyperldger Fabric の場合、ノード10は、peerに対応する。なお、
図1には、ノード10が2台の場合を例示しているが、ノードの数は2台に限定されず、3台以上であってもよい。
【0028】
ノード10は、制御部11と、記憶部12とを含む。
【0029】
制御部11は、受信した取引要求に対する検証および実行を行う。なお、制御部11が実行する各処理は、ブロックチェーン110に応じて定められており、制御部11は、利用するブロックチェーン110および受信した取引要求に応じて、各処理を実行し、処理結果をクライアントデバイス1に通知すればよい。例えば、Hyperldger Fabric の場合、制御部11は、ビジネスロジックが実装されたチェーンコード(プログラム)にしたがって、取引要求に対する処理を実行してもよい。
【0030】
記憶部12は、一般に台帳(Ledger)と呼ばれるブロックチェーンのデータを保持する。例えば、Hyperldger Fabric の場合、台帳には、World State と複数のブロック(ブロックチェーン)が含まれる。各ブロックは、複数の取引要求の他、ブロックに関するメタデータを含むブロックヘッダを有する。ブロックヘッダには、直前のブロックのハッシュ値、トランザクション群のハッシュ値(マークルルート)、ナンスが含まれる。また、ブロックヘッダには、これら以外にも、タイムスタンプやビッツが含まれる。
【0031】
トランザクション管理部20は、取引要求をまとめてブロックを作成する。具体的には、トランザクション管理部20は、取引要求に順序付けを行ってまとめたブロックを生成し、生成したブロックを各ノード10にブロードキャストする。例えば、Hyperldger Fabric の場合、トランザクション管理部20は、orderer に対応する。なお、トランザクション管理部20が実行する各処理も、ブロックチェーン110に応じて定められており、トランザクション管理部20は、利用するブロックチェーン110に応じた各処理を実行すればよい。
【0032】
また、本実施形態のトランザクション管理部20は、ブロック管理部21を含む。ブロック管理部21は、対象とする範囲のブロックのブロックヘッダから、マークルルートハッシュを算出する。具体的には、ブロック管理部21は、対象とする範囲のブロックにおけるブロックヘッダのハッシュ値をマークルツリーで集約し、1つのマークルルートハッシュを算出する。さらに、ブロック管理部21は、集約した範囲のブロックを示すブロック番号と、マークルルートハッシュとを含むトランザクション(以下、ブロック確証トランザクションと記す。)を生成する。
【0033】
なお、対象とする範囲は、第一のブロックチェーンにおけるブロックの生成タイミングと、第二のブロックチェーンにおけるブロックの生成タイミングに応じて決定される。本実施形態では、第一のブロックチェーンがプライベート型ブロックチェーンまたはコンソーシアム型ブロックチェーンのような小規模のネットワークであり、第二のブロックチェーンがプライベート型ブロックチェーンのような大規模なブロックチェーンであることを想定している。そこで、対象とする範囲を、第二のブロックチェーンにおいてブロックが生成される間隔で、第一のブロックチェーンにおいて生成されるブロックの数とすればよい。
【0034】
例えば、第二のブロックチェーンがEthereumの場合、ブロックが生成される間隔は15秒である。ここで、第一のブロックチェーンにおいて1秒間隔でブロックが生成される場合、対象とする範囲のブロックを15ブロックとすればよい。
【0035】
図2は、ブロック確証トランザクションを生成する処理の例を示す説明図である。ブロック管理部21は、ブロック生成時に算出されたブロックヘッダのハッシュ値を、集約するブロック数分収集する。
図2に示す例では、ブロックn-1からブロックn+2までのブロックヘッダのハッシュ値が収集されたことを示す。
【0036】
次に、ブロック管理部21は、隣り合ったブロックにおけるブロックヘッダのハッシュ値から、再度ハッシュ値を算出する。さらに、ブロック管理部21は、算出された隣り合うハッシュ値から、再度ハッシュ値を算出する処理を繰り返し、1つのハッシュ値になるまで処理を繰り返す。なお、1つのハッシュ値になるまでに隣り合うハッシュ値が存在しなくなった場合、ブロック管理部21は、同じハッシュ値を用いて、再度ハッシュ値を算出すればよい。そして、ブロック管理部21は、1つになるまで算出されたハッシュ値をマークルルートハッシュとして用いる。
【0037】
図2に示す例では、ブロックn-1のブロックヘッダのハッシュ値と、ブロックnのブロックヘッダのハッシュ値から、ハッシュ値(ブロックn-1+n)が算出され、ブロックn+1のブロックヘッダのハッシュ値と、ブロックn+2のブロックヘッダのハッシュ値から、ハッシュ値(ブロックn+1+n+2)が算出されたことを示す。さらに、
図2に示す例では、ハッシュ値(ブロックn-1+n)と、ハッシュ値(ブロックn+1+n+2)から、再度ハッシュ値(ブロックn-1~n+2)が算出され、このハッシュ値がマークルルートハッシュとして用いられることを示す。
【0038】
また、
図2に示す例では、このマークルルートハッシュを算出するもとになったブロックのブロック番号(ブロックn-1~n+2)が、集約した範囲のブロックのブロック番号になる。このブロック番号は、後述するハッシュ値の検算処理で用いられる。
【0039】
このように、ブロック管理部21が、対象とする範囲のブロックにおけるブロックヘッダから1つのマークルルートハッシュを算出しておくことで、後に登録されたトランザクションに改ざんが行われた場合にはハッシュ値が合わなくなるため、改ざんを検知することができるようになる。
【0040】
ブロック管理部21は、生成したブロック確証トランザクションを仲介クライアント30に送信する。
【0041】
なお、本実施形態では、ブロック管理部21がトランザクション管理部20の一部として構成されている場合について説明したが、ブロック管理部21がトランザクション管理部20とは別に設けられていてもよい。その場合、ブロック管理部21は、トランザクション管理部20からの出力を受信して、上述する各処理を実行すればよい。
【0042】
仲介クライアント30は、ブロックチェーン120において、取引要求を作成し、作成した取引要求をブロックチェーン120のノード(図示せず)に送信する装置である。すなわち、仲介クライアント30は、ブロックチェーン120におけるクライアント(ノード、ウォレット)として動作する装置である。
【0043】
特に、本実施形態の仲介クライアント30は、ブロック確証トランザクションの登録を依頼するトランザクションをブロックチェーン120(具体的には、ブロックチェーン120のノード)に送信する。以降、ブロックチェーン120の仕様に従って取引要求に対する処理が行われ、仲介クライアント30は、取引要求に対する処理結果を受信する。
【0044】
なお、ブロックチェーンにおいて取引履歴を含むブロックが生成されるまでには時間がかかる。例えば、Ethereumの場合、ブロックの生成までに約15秒かかる。そこで、仲介クライアント30は、登録を完了した旨の通知を処理結果として受信してもよい。
【0045】
取引要求にブロック確証トランザクションを含めることが可能なブロックチェーンであり、パブリック型ブロックチェーンのように、このブロック確証トランザクションの改ざんが困難なブロックチェーンであれば、第二のブロックチェーンの態様は任意である。このような大規模なブロックチェーン120にブロック確証トランザクションを登録することで、このトランザクション自体の改ざんを抑制できる。
【0046】
このように、本実施形態では、ブロック管理部21がブロック確証トランザクションを生成し、生成されたブロック確証トランザクションを仲介クライアント30が第二のブロックチェーンに送信することから、ブロック管理部21および仲介クライアント30を含む装置を、確証生成装置ということができる。
【0047】
トランザクション管理部20(より詳しくは、ブロック管理部21)と、仲介クライアント30とは、プログラム(確証生成プログラム)に従って動作するコンピュータのプロセッサ(例えば、CPU(Central Processing Unit )、GPU(Graphics Processing Unit))によって実現される。例えば、プログラムは、記憶部12に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、トランザクション管理部20(より詳しくは、ブロック管理部21)および仲介クライアント30として動作してもよい。また、確証生成装置の機能がSaaS(Software as a Service )形式で提供されてもよい。
【0048】
また、トランザクション管理部20(より詳しくは、ブロック管理部21)と、仲介クライアント30とは、それぞれが専用のハードウェアで実現されていてもよい。また、各装置の各構成要素の一部又は全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組合せによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
【0049】
また、確証生成装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0050】
次に、本実施形態の不正検知システムの動作を説明する。
図3は、本実施形態の不正検知システム100の動作例を示す説明図である。クライアントデバイス1は、取引要求を作成してノード10に送信する(ステップS11)。ノード10の制御部11は、受信した取引要求に対する検証および実行を行い、取引要求のブロック化処理をトランザクション管理部20に依頼する(ステップS12)。トランザクション管理部20は、取引要求をブロック化する(ステップS13)。また、ブロック管理部21は、ブロック確証トランザクションを生成し(ステップS14)、生成したブロック確証トランザクションを仲介クライアント30に送信する(ステップS15)。
【0051】
仲介クライアント30は、ブロック確証トランザクションの登録を依頼する取引要求をブロックチェーン120に送信する(ステップS16)。仲介クライアント30は、ブロックチェーン120からの処理結果をトランザクション管理部20に送信すると(ステップS17)、トランザクション管理部20は、ブロック化した情報を各ノード10に送信する(ステップS18)。各ノード10は、自身が保持するブロックチェーンに受信したブロックを接続し(ステップS19)、処理結果をクライアントデバイス1に送信する(ステップS20)。
【0052】
なお、
図3に例示するステップS14およびステップS15の処理が、上述する確証生成装置が行う処理(確証生成処理)に対応する。
【0053】
以上のように、本実施形態では、ブロック管理部21は、第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから、マークルルートハッシュを算出し、その範囲のブロックを示すブロック番号と算出したマークルルートハッシュとを含むブロック確証トランザクションを生成する。そして、仲介クライアント30が、ブロック確証トランザクションの登録を依頼するトランザクションを第二のブロックチェーンに送信する。よって、第一のブロックチェーンでデータの不正操作が行われた場合であっても、第二のブロックチェーンに登録したブロック確証トランザクションによって、その不正操作を検知できる。
【0054】
また、マークルルートハッシュを生成する対象のブロックの範囲を、第一のブロックチェーンにおけるブロックの生成タイミングと、第二のブロックチェーンにおけるブロックの生成タイミングに応じて決定することで、2つのブロックチェーンにおけるブロック生成の速度差を調整することが可能になる。
【0055】
また、一般に、ブロックチェーンに送信した取引要求の数に応じて手数料が増加する。本実施形態では、複数のブロックのブロックヘッダのハッシュ値から1つのマークルルートハッシュを生成してブロック確証トランザクションを生成するため、第二のブロックチェーンにおける手数料を抑えることも可能になる。
【0056】
実施形態2.
次に、本発明の第二の実施形態を説明する。第二の実施形態では、第一の実施形態で登録された確証に基づいて不正操作を検知する処理を説明する。
図4は、本発明による不正検知システムの第二の実施形態の構成例を示す説明図である。本実施形態の不正検知システム200は、クライアントデバイス1と、複数のノード10と、トランザクション管理部40と、仲介クライアント50とを備えている。
【0057】
すなわち、第二の実施形態の不正検知システム200は、第一の実施形態の不正検知システム100と比較し、トランザクション管理部20の代わりにトランザクション管理部40を備え、仲介クライアント30の代わりに仲介クライアント50を備えている点において異なる。それ以外のクライアントデバイス1および複数のノード10の構成は、第一の実施形態と同様であるため、説明を省略する。
【0058】
トランザクション管理部40は、第一の実施形態と同様、取引要求をまとめてブロックを作成する。また、本実施形態のトランザクション管理部40は、ブロック管理部41を含む。第一の実施形態と同様に、ブロック管理部41がトランザクション管理部40とは別に設けられていてもよい。なお、ブロック管理部41の機能については後述される。
【0059】
仲介クライアント50は、後述するトランザクション管理部40(より詳しくは、ブロック管理部41)からの指示に基づいて、ブロックチェーン120(すなわち、第二のブロックチェーン)から、ブロック確証トランザクションを取得する。具体的には、仲介クライアント50は、指定されたブロックのブロック番号から、そのブロックのブロックヘッダに基づいて算出されたマークルルートハッシュが含まれるブロック確証トランザクションを特定する。なお、仲介クライアント50は、第二のブロックチェーンの仕様に基づいてブロック確証トランザクションを取得すればよい。
【0060】
そして、仲介クライアント50は、特定したブロック確証トランザクションの情報を、トランザクション管理部40(より詳しくは、ブロック管理部41)に送信する。仲介クライアント50は、特定したブロック確証トランザクションの情報のうち、集約した範囲のブロックのブロック番号およびマークルルートハッシュをトランザクション管理部40に送信してもよい。
【0061】
ブロック管理部41は、検証に用いるブロックのブロック番号を取引要求から特定し、ブロック確証トランザクションの取得指示を仲介クライアント50に対して行う。そして、ブロック管理部41は、取得したブロック確証トランザクションの情報(より具体的には、集約した範囲のブロックのブロック番号)から、検証対象のブロックの範囲を抽出して、第一のブロックチェーンにおけるブロックを特定する。
【0062】
次に、ブロック管理部41は、特定した範囲のブロックのブロックヘッダから、再度マークルルートハッシュを算出する。なお、マークルルートハッシュの算出方法は、第一の実施形態でブロック管理部21が算出する方法と同様である。そして、ブロック管理部41は、新たに算出したマークルルートハッシュと、ブロック確証トランザクションから取得したマークルルートハッシュとを比較して、不正操作を検知する。
【0063】
図5は、ブロック検証の例を示す説明図である。
図5に示す例では、検証対象のブロックの範囲として、ブロック番号(ブロックn-1~n+2)が特定されたことを示す。ブロック管理部41は、ブロック番号が示す範囲のブロックを特定し、特定したブロックのブロックヘッダのハッシュ値をマークルツリーで集約し、1つのマークルルートハッシュを生成する。そして、ブロック管理部41は、新たに算出したマークルルートハッシュと、ブロック確証トランザクションから取得したマークルルートハッシュとを比較する。ハッシュ値が一致しなかった場合、ブロック管理部41は、いずれかのブロック内のトランザクションにおいて不正操作(改ざん)が行われると判断する。
【0064】
トランザクション管理部40は、ハッシュ値が一致しなかった場合、不正操作が行われたと判断し、エラーをノード10に通知する。このとき、クライアントデバイス1から取引要求を受信したノード10は、そのクライアントデバイス1にエラーを通知する。
【0065】
このように、本実施形態では、仲介クライアント50が第二のブロックチェーンからブロック確証トランザクションを取得し、ブロック管理部41が取得したブロック確証トランザクションに基づいて不正操作を検証することから、ブロック管理部41および仲介クライアント50を含む装置を、不正検証装置ということができる。
【0066】
トランザクション管理部40(より詳しくは、ブロック管理部41)と、仲介クライアント50とは、プログラム(不正検証プログラム)に従って動作するコンピュータのプロセッサによって実現される。
【0067】
次に、本実施形態の不正検知システムの動作を説明する。
図6は、本実施形態の不正検知システム200の動作例を示す説明図である。なお、クライアントデバイス1による取引要求を受信してブロック化するまでの処理は、
図3に例示するステップS11からステップS13までの処理と同様である。
【0068】
ブロック管理部41は、検証に用いるブロックのブロック番号を特定し(ステップS21)、ブロック確証トランザクションの取得指示を仲介クライアント50に対して行う(ステップS22)。仲介クライアント50は、ブロック管理部41からの指示に基づいて、第二のブロックチェーンから、ブロック確証トランザクションを取得し(ステップS23)、ブロック管理部41に返信する(ステップS24)。
【0069】
ブロック管理部41は、取得したブロック番号の範囲から、検証対象のブロックの範囲を特定する(ステップS25)。そして、ブロック管理部41は、特定した範囲のブロックのブロックヘッダから、再度マークルルートハッシュを算出し(ステップS26)、ブロック確証トランザクションから取得したマークルルートハッシュと一致するか比較する(ステップS27)。
【0070】
ハッシュ値が一致した場合(ステップS27におけるYes)、ブロック管理部41は、不正操作が行われていないと判断する(ステップS28)。一方、ハッシュ値が一致しなかった場合(ステップS27におけるNo)、ブロック管理部41は、不正操作が行われたと判断し、ノード10は、クライアントデバイス1にエラーを通知する(ステップS29)。
【0071】
なお、
図6に例示するステップS21からステップS29までの処理が、上述する不正検証装置が行う処理(不正検証処理)に対応する。
【0072】
以上のように、本実施形態では、仲介クライアント50が、ブロック確証トランザクションを第二のブロックチェーンから取得し、ブロック管理部41が、確証トランザクションに含まれるブロック番号から第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダからマークルートハッシュを算出する。そして、ブロック確証トランザクションに含まれるマークルートハッシュと、算出したマークルートハッシュとが一致するか比較して、特定されたブロックに対する不正操作を検知する。よって、ブロックチェーンで行われたデータの不正操作を検知できる。
【0073】
実施形態3.
次に、本発明の第三の実施形態を説明する。第一の実施形態では、不正検知システム100が検証に用いる確証(ブロック確証トランザクション)を生成し、第二の実施形態では、不正検知システム200が、確証を用いてデータの不正操作を検証する方法について説明した。なお、確証を生成する処理および不正操作を検証する処理が、1つのシステムで実現されていてもよい。
【0074】
図7は、本発明による不正検知システムの第三の実施形態の構成例を示す説明図である。本実施形態の不正検知システム300は、クライアントデバイス1と、複数のノード10と、トランザクション管理部60と、仲介クライアント70とを備えている。
【0075】
トランザクション管理部60は、第一の実施形態のブロック管理部21と、第二の実施形態のブロック管理部41とを含む。また、仲介クライアント70は、第一の実施形態の仲介クライアント30および第二の実施形態の仲介クライアント50の機能を併せ持つ。なお、ブロック管理部21およびブロック管理部41は、第一の実施形態および第二の実施形態の実施形態と同様に、トランザクション管理部60とは別に設けられていてもよい。
【0076】
このような構成により、第一のブロックチェーンでデータの不正操作が行われた場合であっても、第二のブロックチェーンに登録したブロック確証トランザクションによって、その不正操作を検知できる。
【0077】
次に、上記実施形態の不正検知システムの具体的な構成例を説明する。以下の説明では、第一のブロックチェーンにHyperldger Fabric が用いられ、第二のブロックチェーンにEthereumが用いられる場合を例示する。
【0078】
図8は、確証を登録する処理の具体例を示す説明図である。
図8に示す例では、client201がHyperldger Fabric ネットワーク310の外に記載されているが、client201がHyperldger Fabric ネットワーク310に含まれていてもよい。
【0079】
client201は、取引要求を作成して、第一のブロックチェーン(Hyperldger Fabric ネットワーク310)に送信する(ステップS201)。peer210は、取引要求に応じた処理を実行後、ブロック化処理をorderer 220に依頼する(ステップS202)。orderer 220は、ブロック化処理と共に、ブロック確証トランザクションを生成し、Ethereum client 230に送信する(ステップS203)。Ethereum client 230は、ブロック確証トランザクションを第二のブロックチェーン(Ethereumネットワーク320)に記録し(ステップS204)、結果をorderer 220に戻す(ステップS205)。orderer 220は、ブロック情報を各peer210に送信する(ステップS206)。peerは、自身のブロックチェーンにブロックを接続し、client201に結果を戻す(ステップS207)。
【0080】
図9は、不正操作を検証する具体例を示す説明図である。
図9に示す例でも、client201がHyperldger Fabric ネットワーク310の外に記載されているが、client201がHyperldger Fabric ネットワーク310に含まれていてもよい。ここでは、悪意を持った利用者が結託して、ブロック202を書き換えているものとする(ステップS301)。
【0081】
client201は、取引要求を作成して、第一のブロックチェーン(Hyperldger Fabric ネットワーク310)に送信する(ステップS302)。peer210は、取引要求に応じた処理を実行後、ブロック化処理をorderer 240に依頼する(ステップS303)。Ethereum client 250は、ブロック確証トランザクションを第二のブロックチェーン(Ethereumネットワーク320)から読み出す(ステップS304)。orderer 240は、ブロック確証トランザクションに基づいて、対象とするブロックのハッシュ値を生成する(ステップS305)。
【0082】
ブロック202が書き換えられているため、生成したハッシュ値とブロック確証トランザクションの値とは一致しない(ステップS306)。そこで、orderer 240はpeer210にエラーを返し(ステップS307)、peer210は、client201にエラーを返す(ステップS308)。
【0083】
次に、本実施形態の不正検知システムを利用して文書の改ざんを検知する具体的処理を説明する。ここでは、第一のブロックチェーンをコンソーシアム型ブロックチェーンとし、第二のブロックチェーンをパブリック型ブロックチェーンとする。
【0084】
例えば、ある文書が改ざんされていないことを証明できるデータが第一のブロックチェーンのトランザクションAに含まれていたとする。そのトランザクションAがブロック10番に入っているのがわかると、仲介クライアント50は、そのブロック10番に基づいてハッシュ値を生成したブロック確証トランザクションをパブリック型ブロックチェーン(第二のブロックチェーン)から取得する。
【0085】
ここで、ブロック10番のデータが、パブリックブロックチェーンの1100番のブロックに含まれていることが分かると、仲介クライアント50は、パブリックブロックチェーンの1100番のブロックに含まれるブロック確証トランザクションから、マークルルートハッシュを取り出す。一方、ブロック管理部41は、集約した範囲のブロックのブロック番号から、再度マークルルートハッシュを算出する。この2つのハッシュ値が一致した場合には、文書が改ざんされていないと判断できる。なお、上述するように、判断処理が第一のブロックチェーンにて行われるため、クライアントデバイス1は、基本的には内部の処理を意識する必要がない。
【0086】
次に、本発明の概要を説明する。
図10は、本発明による不正検証装置の概要を示すブロック図である。本発明による不正検証装置80(例えば、上述する第二の実施形態の不正検証装置)は、第一のブロックチェーン(例えば、ブロックチェーン110)において対象とする範囲のブロックのブロックヘッダから算出された第一のマークルルートハッシュと、その範囲のブロックを示すブロック番号とを含むトランザクションであるブロック確証トランザクションを、そのブロック確証トランザクションが登録されているブロックチェーンであって、第一のブロックチェーンとは異なる第二のブロックチェーン(例えば、ブロックチェーン120)から取得する確証ブロック取得部81(例えば、仲介クライアント50)と、取得した確証トランザクションに含まれるブロック番号から第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、第一のマークルルートハッシュと第二のマークルルートハッシュとが一致するか比較して、特定されたブロックに対する不正操作(例えば、データの改ざん)を検知する不正操作検証部82(例えば、ブロック管理部41)とを備えている。
【0087】
そのような構成により、ブロックチェーンで行われたデータの不正操作を検知できる。
【0088】
また、第一のブロックチェーンにおいて対象とする範囲は、第一のブロックチェーンにおけるブロックの生成タイミングと、第二のブロックチェーンにおけるブロックの生成タイミングに応じて決定されてもよい。
【0089】
具体的には、第一のブロックチェーン対象とする範囲は、第二のブロックチェーンにおいて1つのブロックが生成される期間内で生成される、第一のブロックチェーンのブロックの数の範囲であってもよい。
【0090】
また、第一のブロックチェーンは、コンソーシアム型ブロックチェーンまたはパブリック型ブロックチェーンであってもよい、第二のブロックチェーンは、パブリック型ブロックチェーンであってもよい。
【0091】
具体的には、第一のマークルルートハッシュと第二のマークルルートハッシュとは、同一の方法で算出される。
【0092】
図11は、本発明による確証生成装置の概要を示すブロック図である。本発明による確証生成装置90(例えば、上述する第一の実施形態の確証生成装置)は、第一のブロックチェーン(例えば、ブロックチェーン110)において対象とする範囲のブロックのブロックヘッダから、マークルルートハッシュを算出し、その範囲のブロックを示すブロック番号と算出したマークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成する確証ブロック生成部91(例えば、ブロック管理部21)と、ブロック確証トランザクションの登録を依頼するトランザクションを、第一のブロックチェーンとは異なる第二のブロックチェーン(例えば、ブロックチェーン120)に送信する登録依頼部92(例えば、仲介クライアント30)とを備えている。
【0093】
そのような構成により、第一のブロックチェーンでデータの不正操作が行われた場合であっても、第二のブロックチェーンに登録したブロック確証トランザクションによって、その不正操作を検知できる。
【0094】
図12は、本発明による不正検知システムの概要を示すブロック図である。本発明による不正検知システム170(例えば、不正検知システム300)は、第一のブロックチェーン(例えば、ブロックチェーン110)において対象とする範囲のブロックのブロックヘッダから、第一のマークルルートハッシュを算出し、その範囲のブロックを示すブロック番号と算出した第一のマークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成する確証ブロック生成部71(例えば、ブロック管理部21)と、ブロック確証トランザクションの登録を依頼するトランザクションを、第一のブロックチェーンとは異なる第二のブロックチェーン(例えば、ブロックチェーン120)に送信する登録依頼部72(例えば、仲介クライアント30)と、ブロック確証トランザクションを、第二のブロックチェーンから取得する確証ブロック取得部73(例えば、仲介クライアント50)と、取得した確証トランザクションに含まれるブロック番号から第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、第一のマークルルートハッシュと第二のマークルルートハッシュとが一致するか比較して、特定されたブロックに対する不正操作(例えば、データの改ざん)を検知する不正操作検証部74(例えば、ブロック管理部41)とを備えている。
【0095】
そのような構成により、第一のブロックチェーンでデータの不正操作が行われた場合であっても、第二のブロックチェーンに登録したブロック確証トランザクションによって、その不正操作を検知できる。
【0096】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0097】
(付記1)第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから算出された第一のマークルルートハッシュと、当該範囲のブロックを示すブロック番号とを含むトランザクションであるブロック確証トランザクションを、当該ブロック確証トランザクションが登録されているブロックチェーンであって、前記第一のブロックチェーンとは異なる第二のブロックチェーンから取得する確証ブロック取得部と、取得した前記確証トランザクションに含まれるブロック番号から前記第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、前記第一のマークルルートハッシュと前記第二のマークルルートハッシュとが一致するか比較して、前記特定されたブロックに対する不正操作を検知する不正操作検証部とを備えたことを特徴とする不正検証装置。
【0098】
(付記2)第一のブロックチェーンにおいて対象とする範囲は、第一のブロックチェーンにおけるブロックの生成タイミングと、第二のブロックチェーンにおけるブロックの生成タイミングに応じて決定される付記1記載の不正検証装置。
【0099】
(付記3)第一のブロックチェーン対象とする範囲は、第二のブロックチェーンにおいて1つのブロックが生成される期間内で生成される、第一のブロックチェーンのブロックの数の範囲である付記1または付記2記載の不正検証装置。
【0100】
(付記4)第一のブロックチェーンは、コンソーシアム型ブロックチェーンまたはパブリック型ブロックチェーンであり、第二のブロックチェーンは、パブリック型ブロックチェーンである付記1から付記3のうちのいずれか1つに記載の不正検証装置。
【0101】
(付記5)第一のマークルルートハッシュと第二のマークルルートハッシュとは、同一の方法で算出される付記1から付記4のうちのいずれか1つに記載の不正検証装置。
【0102】
(付記6)第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから、マークルルートハッシュを算出し、当該範囲のブロックを示すブロック番号と算出した前記マークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成する確証ブロック生成部と、前記ブロック確証トランザクションの登録を依頼するトランザクションを、前記第一のブロックチェーンとは異なる第二のブロックチェーンに送信する登録依頼部とを備えたことを特徴とする確証生成装置。
【0103】
(付記7)第一のブロックチェーンにおいて対象とする範囲は、第一のブロックチェーンにおけるブロックの生成タイミングと、第二のブロックチェーンにおけるブロックの生成タイミングに応じて決定される付記6記載の確証生成装置。
【0104】
(付記8)第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから、第一のマークルルートハッシュを算出し、当該範囲のブロックを示すブロック番号と算出した前記第一のマークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成する確証ブロック生成部と、前記ブロック確証トランザクションの登録を依頼するトランザクションを、前記第一のブロックチェーンとは異なる第二のブロックチェーンに送信する登録依頼部と、前記ブロック確証トランザクションを、前記第二のブロックチェーンから取得する確証ブロック取得部と、取得した確証トランザクションに含まれるブロック番号から前記第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、前記第一のマークルルートハッシュと前記第二のマークルルートハッシュとが一致するか比較して、前記特定されたブロックに対する不正操作を検知する不正操作検証部とを備えたことを特徴とする不正検知システム。
【0105】
(付記9)第一のブロックチェーンにおいて対象とする範囲は、第一のブロックチェーンにおけるブロックの生成タイミングと、第二のブロックチェーンにおけるブロックの生成タイミングに応じて決定される付記8記載の不正検知システム。
【0106】
(付記10)第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから算出された第一のマークルルートハッシュと、当該範囲のブロックを示すブロック番号とを含むトランザクションであるブロック確証トランザクションを、当該ブロック確証トランザクションが登録されているブロックチェーンであって、前記第一のブロックチェーンとは異なる第二のブロックチェーンから取得し、取得した前記確証トランザクションに含まれるブロック番号から前記第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、前記第一のマークルルートハッシュと前記第二のマークルルートハッシュとが一致するか比較して、前記特定されたブロックに対する不正操作を検知することを特徴とする不正検証方法。
【0107】
(付記11)第一のブロックチェーンにおいて対象とする範囲は、第一のブロックチェーンにおけるブロックの生成タイミングと、第二のブロックチェーンにおけるブロックの生成タイミングに応じて決定される付記10記載の不正検証方法。
【0108】
(付記12)第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから、第一のマークルルートハッシュを算出し、当該範囲のブロックを示すブロック番号と算出した前記第一のマークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成し、前記ブロック確証トランザクションの登録を依頼するトランザクションを、前記第一のブロックチェーンとは異なる第二のブロックチェーンに送信し、前記ブロック確証トランザクションを、前記第二のブロックチェーンから取得し、取得した確証トランザクションに含まれるブロック番号から前記第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、前記第一のマークルルートハッシュと前記第二のマークルルートハッシュとが一致するか比較して、前記特定されたブロックに対する不正操作を検知することを特徴とする不正検知方法。
【0109】
(付記13)第一のブロックチェーンにおいて対象とする範囲は、第一のブロックチェーンにおけるブロックの生成タイミングと、第二のブロックチェーンにおけるブロックの生成タイミングに応じて決定される付記12記載の不正検知方法。
【0110】
(付記14)コンピュータに、第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから算出された第一のマークルルートハッシュと、当該範囲のブロックを示すブロック番号とを含むトランザクションであるブロック確証トランザクションを、当該ブロック確証トランザクションが登録されているブロックチェーンであって、前記第一のブロックチェーンとは異なる第二のブロックチェーンから取得する確証ブロック取得処理、および、取得した前記確証トランザクションに含まれるブロック番号から前記第一のブロックチェーンにおけるブロックを特定し、特定されたブロックにおけるブロックヘッダから第二のマークルルートハッシュを算出し、前記第一のマークルルートハッシュと前記第二のマークルルートハッシュとが一致するか比較して、前記特定されたブロックに対する不正操作を検知する不正操作検証処理を実行させるための不正検証プログラム。
【0111】
(付記15)第一のブロックチェーンにおいて対象とする範囲は、第一のブロックチェーンにおけるブロックの生成タイミングと、第二のブロックチェーンにおけるブロックの生成タイミングに応じて決定される付記14記載の不正検証プログラム。
【0112】
(付記16)コンピュータに、第一のブロックチェーンにおいて対象とする範囲のブロックのブロックヘッダから、マークルルートハッシュを算出し、当該範囲のブロックを示すブロック番号と算出した前記マークルルートハッシュとを含むトランザクションであるブロック確証トランザクションを生成する確証ブロック生成処理、および、前記ブロック確証トランザクションの登録を依頼するトランザクションを、前記第一のブロックチェーンとは異なる第二のブロックチェーンに送信する登録依頼処理を実行させるため確証生成プログラム。
【0113】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0114】
この出願は、2020年2月21日に出願された日本特許出願2020-28430を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【0115】
1 クライアントデバイス
10 ノード
11 制御部
12 記憶部
20,40,60 トランザクション管理部
21,41 ブロック管理部
30,50,70 仲介クライアント
100,200,300 不正検知システム
110 ブロックチェーン
120 ブロックチェーン