特許第6989694号(P6989694)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧 ▶ 東芝ソリューション株式会社の特許一覧

<>
  • 特許6989694-改ざん検出システム及び改ざん検出方法 図000002
  • 特許6989694-改ざん検出システム及び改ざん検出方法 図000003
  • 特許6989694-改ざん検出システム及び改ざん検出方法 図000004
  • 特許6989694-改ざん検出システム及び改ざん検出方法 図000005
  • 特許6989694-改ざん検出システム及び改ざん検出方法 図000006
  • 特許6989694-改ざん検出システム及び改ざん検出方法 図000007
  • 特許6989694-改ざん検出システム及び改ざん検出方法 図000008
  • 特許6989694-改ざん検出システム及び改ざん検出方法 図000009
  • 特許6989694-改ざん検出システム及び改ざん検出方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6989694
(24)【登録日】2021年12月6日
(45)【発行日】2022年1月5日
(54)【発明の名称】改ざん検出システム及び改ざん検出方法
(51)【国際特許分類】
   H04L 9/32 20060101AFI20211220BHJP
   G09C 1/00 20060101ALI20211220BHJP
【FI】
   H04L9/00 675B
   G09C1/00 640D
【請求項の数】10
【全頁数】17
(21)【出願番号】特願2020-515460(P2020-515460)
(86)(22)【出願日】2018年4月27日
(86)【国際出願番号】JP2018017331
(87)【国際公開番号】WO2019207804
(87)【国際公開日】20191031
【審査請求日】2020年6月8日
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】遠藤 浩太郎
【審査官】 金木 陽一
(56)【参考文献】
【文献】 特開2017−224017(JP,A)
【文献】 特開2018−018348(JP,A)
【文献】 特許第6234539(JP,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
1以上のピアと、前記1以上のピアのいずれかに接続可能な1以上の第1の端末と、1以上の検出装置とを備える改ざん検出システムであって、
前記第1の端末は、
前記ピアから、ブロックチェーンに含まれるブロックハッシュを取得する取得部と、
前記ブロックハッシュと前記第1の端末の取引内容に基づくデータとを含む第1の署名対象データ、及び、前記第1の署名対象データの電子署名を含む第1の取引記録を、前記ピアに送信する送信部とを備え、
前記ピアは、前記第1の取引記録に含まれる前記電子署名が有効であり、かつ、前記第1の取引記録に含まれる前記ブロックハッシュと同じブロックハッシュが前記ブロックチェーンに含まれている場合、前記第1の取引記録を含むブロックを前記ブロックチェーンに記憶する記憶制御部を備え、
前記検出装置は、
前記ピアから前記ブロックチェーンを受信する受信部と、
前記ブロックチェーンのブロックに含まれる第1の取引記録に含まれる前記電子署名が有効でない、または、前記ブロックに含まれる前記第1の取引記録に含まれる前記ブロックハッシュと同じブロックハッシュが前記ブロックチェーンに含まれていない場合、前記ブロックチェーンの改ざんを検出する検出部と、
を備える改ざん検出システム。
【請求項2】
前記第1の端末の取引内容に基づくデータは、前記第1の端末の取引内容、又は、前記第1の端末の取引内容のハッシュ値のいずれか一方である、
請求項1に記載の改ざん検出システム。
【請求項3】
前記第1の署名対象データは、前記ブロックハッシュに対応するブロックのブロック番号を更に含み、
前記記憶制御部は、前記第1の取引記録に含まれる前記電子署名が有効であり、かつ、前記第1の取引記録に含まれるブロック番号を使用して前記ブロックチェーンから特定されたブロックのブロックハッシュが、前記第1の取引記録に含まれるブロックハッシュと一致する場合、前記第1の取引記録を含むブロックを前記ブロックチェーンに記憶する、
請求項1に記載の改ざん検出システム。
【請求項4】
前記取得部は、前記ブロックチェーンに含まれるブロックハッシュのうち、前記ブロック番号に基づいて、より新しいブロックハッシュを取得する、
請求項3に記載の改ざん検出システム。
【請求項5】
前記取得部は、前記ブロックチェーンに含まれるブロックハッシュのうち、前記ブロックハッシュが生成された時刻に基づいて、より新しいブロックハッシュを取得する、
請求項1に記載の改ざん検出システム。
【請求項6】
前記取得部は、前記ブロックチェーンに含まれるブロックハッシュのうち、前記ブロックチェーンに既に記憶された第1の取引記録がより多くハッシュ計算に使用されているブロックハッシュを、より新しいブロックハッシュとして取得する、
請求項1に記載の改ざん検出システム。
【請求項7】
前記取得部は、前記ブロックチェーンに含まれるブロックハッシュを定期的に取得し、新たなブロックハッシュが取得された場合、前記新たなブロックハッシュを取得する前に取得されていたブロックハッシュを破棄する、
請求項1に記載の改ざん検出システム。
【請求項8】
前記改ざん検出システムは、1以上の第2の端末を更に備え、
前記第2の端末は、前記第2の端末の取引内容を含む第2の署名対象データ、及び、前記第2の署名対象データの電子署名を含む第2の取引記録を、前記ピアに送信し、
前記記憶制御部は、前記第1及び第2の取引記録の少なくとも一方を含むブロックを前記ブロックチェーンに記憶する、
請求項に記載の改ざん検出システム。
【請求項9】
前記1以上の端末には、特定のユーザが定期的に前記第1の取引記録を送信する端末が含まれ、
前記検出部は、更に、前記特定のユーザから定期的に送信された前記第1の取引記録が、前記ブロックチェーンに含まれているか否かを判定し、前記特定のユーザから定期的に送信された前記第1の取引記録の一部又は全部が、前記ブロックチェーンに含まれていない場合、前記ブロックチェーンの改ざんを検出する、
請求項1に記載の改ざん検出システム。
【請求項10】
1以上のピアと、前記1以上のピアのいずれかに接続可能な1以上の端末と、1以上の検出装置とを備える改ざん検出システムの改ざん検出方法であって、
第1の端末が、前記ピアから、ブロックチェーンに含まれるブロックハッシュを取得するステップと、
第1の端末が、前記ブロックハッシュと前記第1の端末の取引内容に基づくデータとを含む第1の署名対象データ、及び、前記第1の署名対象データの電子署名を含む第1の取引記録を、前記ピアに送信するステップと、
ピアが、前記第1の取引記録に含まれる前記電子署名が有効であり、かつ、前記第1の取引記録に含まれる前記ブロックハッシュと同じブロックハッシュが前記ブロックチェーンに含まれている場合、前記第1の取引記録を含むブロックを前記ブロックチェーンに記憶するステップと、
検出装置が、前記ピアから前記ブロックチェーンを受信するステップと、
検出装置が、前記ブロックチェーンのブロックに含まれる第1の取引記録に含まれる前記電子署名が有効でない、または、前記ブロックに含まれる前記第1の取引記録に含まれる前記ブロックハッシュと同じブロックハッシュが前記ブロックチェーンに含まれていない場合、前記ブロックチェーンの改ざんを検出するステップと、
を含む改ざん検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は改ざん検出システム及び改ざん検出方法に関する。
【背景技術】
【0002】
ビットコイン(Bitcoin)に代表される暗号通貨が実用化されている。暗号通貨の送金記録は、ブロックチェーンと呼ばれる電子台帳に保管される。ビットコインの場合、Proof of Workとよばれる方式の採用により、ブロックチェーンの改ざんは困難となっている。Proof of Workはビットコインの安全性の基礎となっている。一方で、ブロックチェーンの応用として、送金に限らない一般の取引(Transaction)を電子台帳に記録することが始まっている。またスマートコントラクトと呼ばれる電子契約技術もブロックチェーンとして実用化されている。ブロックチェーンの応用においては、Proof of Workを使わない一般的なコンセンサス・アルゴリズムにより、複数のピア間でのブロックチェーンの一貫性を維持する方式も実用化されている。このようなブロックチェーンは許可型(Permissioned)ブロックチェーンと呼ばれている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2017−207979号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、ブロックチェーンの改ざんを検出することが難しかった。特に、許可型ブロックチェーンでは、ピア管理者に結託された場合、ブロックチェーンの改ざんを検出することが難しかった。
【課題を解決するための手段】
【0005】
実施形態の改ざん検出システムは、1以上のピアと、前記1以上のピアのいずれかに接続可能な1以上の第1の端末と、検出装置とを備える改ざん検出システムであって、前記第1の端末は、前記ピアから、ブロックチェーンに含まれるブロックハッシュを取得する取得部と、前記ブロックハッシュと前記第1の端末の取引内容に基づくデータとを含む第1の署名対象データ、及び、前記第1の署名対象データの電子署名を含む第1の取引記録を、前記ピアに送信する送信部とを備え、前記ピアは、前記第1の取引記録に含まれる前記電子署名が有効であり、かつ、前記第1の取引記録に含まれる前記ブロックハッシュと同じブロックハッシュが前記ブロックチェーンに含まれている場合、前記第1の取引記録を含むブロックを前記ブロックチェーンに記憶する記憶制御部を備え、前記検出装置は、前記ピアから前記ブロックチェーンを受信する受信部と、前記ブロックチェーンのブロックに含まれる第1の取引記録に含まれる前記電子署名が有効でない、または、前記ブロックに含まれる前記第1の取引記録に含まれる前記ブロックハッシュと同じブロックハッシュが前記ブロックチェーンに含まれていない場合、前記ブロックチェーンの改ざんを検出する検出部と、を備える。
【図面の簡単な説明】
【0006】
図1図1は実施形態の改ざん検出システムの機能構成の例を示す図である。
図2図2は実施形態のブロックチェーンのデータ構造の例を示す図である。
図3図3は実施形態の端末の動作例を示すフローチャートである。
図4図4は実施形態のピアの動作例を示すフローチャートである。
図5図5は実施形態の検出部の動作例を示す図である。
図6図6は実施形態の変形例1のブロックハッシュの計算方法の例を示す図である。
図7図7は実施形態の変形例1のブロックチェーンのデータ構造の例を示す図である。
図8図8は実施形態の変形例1の検出部の動作例を示す図である。
図9図9は実施形態の端末、ピア及び検出装置のハードウェア構成の例を示す図である。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、改ざん検出システム及び改ざん検出方法の実施形態を詳細に説明する。
【0008】
[機能構成の例]
図1は実施形態の改ざん検出システム100の機能構成の例を示す図である。実施形態の改ざん検出システム100は、端末10、ピア20及び検出装置30を備える。端末10、ピア20及び検出装置30は、インターネット等のネットワークを介して接続されている。
【0009】
端末10は、例えばユーザにより使用されるスマートデバイス及びパーソナルコンピュータ等である。ピア20は、ブロックチェーンを記憶するコンピュータである。ブロックチェーンは、1以上の取引記録を含む電子台帳である。検出装置30は、ピア20に記憶されたブロックチェーンの改ざんを検出する装置である。
【0010】
まず、実施形態のピア20に記憶されるブロックチェーンのデータ構造の例について説明する。
【0011】
図2は実施形態のブロックチェーンのデータ構造の例を示す図である。実施形態では、ブロックチェーンの構造が、鎖状である場合について説明する。なお、ブロックチェーンの構造は、鎖状に限られない。ブロックチェーンの構造が、鎖状でない場合の例は、実施形態の変形例1で後述する。
【0012】
図2では、nは、n番目のブロックに関するデータであることを示す。例えば、ブロック50nは、n番目のブロックを示し、ブロック50n−3は、n−3番目のブロックを示す。また例えば、ブロックハッシュ51nは、n番目のブロック50nのブロックハッシュを示し、ブロックハッシュ51n−1は、n−1番目のブロック50n−1のブロックハッシュを示し、ブロックハッシュ51n−3は、n−3番目のブロック50n−3のブロックハッシュを示し、ブロックハッシュ51n−4は、n−4番目のブロック50n−4のブロックハッシュを示す。以下の説明では、nを区別しない場合、nを省略して説明する。
【0013】
実施形態のブロックチェーンは、複数の取引記録53がまとめられたブロック50が時系列に追加されることにより作成される。それぞれのブロック50には、時系列の昇順でブロック番号52が付与される。ブロック番号52は、ブロックチェーンに含まれるブロック50の特定に使用される。
【0014】
ブロック50nは、ブロックハッシュ51n、前のブロック50n−1のブロックハッシュ51n−1、0以上の取引記録53n、及び、ブロック50nのブロック番号52nを含む。
【0015】
ブロックハッシュ51nは、前のブロック50n−1のブロックハッシュ51n−1、0以上の取引記録53n、及び、ブロック50nのブロック番号52nから計算されたハッシュ値である。ハッシュ値は、出力値(ハッシュ値)から入力値を計算する逆計算が困難で、ハッシュ衝突の確率が非常に低いハッシュ関数(例えば、SHA−256等)によって計算された値である。ブロックハッシュ51nは、ブロック50nが生成されるときに、計算される。
【0016】
ここで、取引記録53nは、ブロック番号52n−3、ブロックハッシュ51n−3及び取引内容54nを含む署名対象データと、当該署名対象データの電子署名55nとを含む。すなわち、n番目の取引記録53nには、以前のブロック50n−kのブロックハッシュ51n−k(図2の例では、k=3)が含まれている。
【0017】
なお、取引記録53nに含まれるブロック番号52n−3は、必須ではない。取引記録53nにブロック番号52n−3が含まれていれば、ブロックチェーンに含まれる対象のブロックハッシュ51n−3を特定する処理をより高速にすることができる。
【0018】
各ブロック50に含まれるブロックハッシュ51は再帰的に計算されているため、ブロックハッシュ51の計算対象となる取引記録53の集合は、当該取引記録53を含むブロック50以前のすべての取引記録53であると考えられる。したがって、例えば、過去の取引記録53を削除する改ざんが行われた場合、改ざんが行われた取引記録53を含むブロック50以降のブロックハッシュ51がすべて変化する。
【0019】
ここで、ブロックチェーンの改ざんの例について説明する。具体的な方法としては、例えば目的の取引記録53を削除した後、その取引記録53を計算対象として含んでいたブロックハッシュ51をすべて再計算し、新しいブロックハッシュ51を正当なものとしてブロックチェーンに上書きすればよい。なお、Proof of Work方式の場合には、全ブロックハッシュ51の再計算に莫大な時間がかかるため、この再計算する方法は事実上不可能であった。しかしながら、Proof of Work方式の場合であっても、情報理論的安全性は満たしていない。そのため、例えばProof of Work方式を採用する暗号通貨では、悪意のユーザ(または悪意のユーザのグループ)が有する計算能力が、他の善意のユーザが有する計算能力を上回った場合、従来の技術では、今後、ブロックチェーンの改ざんの検出が困難になる可能性がある。
【0020】
実施形態の改ざん検出システム100は、ピア20に記憶された時点では、正当なブロックチェーンが、後から改ざんされた場合の改ざんの検出をより容易にできるようにするシステムである。
【0021】
なお、実施形態では、ブロックハッシュ51は、すべての取引記録53の集合から理論上再計算することができるが、処理の効率化の目的で、ブロック50ごとに取引記録53と合わせてピア20に記憶される。
【0022】
また、ブロックハッシュ51の計算方式は任意でよい。実施形態のブロックハッシュ51の計算方式は、Proof of Work方式よりも制約の少ない計算方式を想定しているが、Proof of Work方式でもよい。
【0023】
図1に戻り、次に、端末10の動作の詳細について説明する。なお、図1の改ざん検出システム100の例では、端末10が1つの場合を記載しているが、端末10は複数あってもよい。すなわち、ピア20と通信する端末10の数は任意でよい。
【0024】
端末10は、受付部11、取得部12、生成部13及び送信部14を備える。図3のフローチャートも参照しながら、受付部11、取得部12、生成部13及び送信部14の動作の詳細について説明する。
【0025】
<端末の動作例>
図3は実施形態の端末10の動作例を示すフローチャートである。
【0026】
はじめに、受付部11は、ユーザから、取引内容54nを示すデータの入力を受け付けると(ステップS1)、当該データを生成部13に入力する。なお、取引内容54nは任意でよい。取引内容54nは、例えば暗号通貨の送金を示す。
【0027】
次に、取得部12は、ピア20から、ブロックチェーンに含まれるブロックハッシュ51n−kと、当該ブロックハッシュ51n−kを含むブロック50n−kのブロック番号52n−kとを取得する(ステップS2)。なお、上述の図2の例ではk=3である。kは、より小さいことが好ましいが、最新(k=1)である必要はない。
【0028】
そのため、ブロックハッシュ51n−k及びブロック番号52n−kの取得タイミングは任意でよい。例えば、取得部12は、ブロックチェーンに含まれるブロックハッシュ51n−k及びブロック番号52n−kを定期的(例えば、1分、1時間又は1日ごと等)に取得する。そして、取得部12は、新たなブロックハッシュ51n−k2及びブロック番号52n−k2が取得された場合、当該ブロックハッシュ51n−k2及びブロック番号52n−k2を取得する前に取得されていたブロックハッシュ51n−k及びブロック番号52n−kを破棄する。
【0029】
また例えば、取得部12は、生成部13が取引記録53を生成するときに、生成部13から取得要求を受け付けた場合に、ブロックハッシュ51n−k及びブロック番号52n−kを取得してもよい。
【0030】
また例えば、取得部12は、ピア20によるブロックハッシュ51n−k及びブロック番号52n−kの送信契機で、ブロックハッシュ51n−k及びブロック番号52n−kをピア20から受動的に取得してもよい。
【0031】
また、取得対象のブロックハッシュ51n−kを選択する方法は任意でよい。例えば、取得部12は、ブロックチェーンに含まれるブロックハッシュ51のうち、ブロック番号52に基づいて、より新しいブロックハッシュ51n−kを取得してもよい。実施形態では、ブロック番号がより大きいブロック50n−kのブロックハッシュ51n−kが取得対象となる。
【0032】
また例えば、取得部12は、ブロックチェーンに含まれるブロックハッシュ51のうち、ブロックハッシュ51が生成された時刻に基づいて、より新しいブロックハッシュ51n−kを取得してもよい。
【0033】
また例えば、取得部12は、ブロックチェーンに含まれるブロックハッシュ51のうち、ブロックチェーンに既に記憶された取引記録53がより多くハッシュ計算に使用されているブロックハッシュ51を、より新しいブロックハッシュ51n−kとして取得してもよい。
【0034】
取得部12は、取得されたブロックハッシュ51n−k及びブロック番号52n−kを生成部13に入力する。
【0035】
次に、生成部13は、受付部11から取引内容54nを示すデータを受け付け、取得部12からブロックハッシュ51n−k及びブロック番号52n−kを受け付ける。生成部13は、端末10の秘密鍵を使用して、ブロックハッシュ51n−k、ブロック番号52n−k及び取引内容54nの電子署名55nを生成する。そして、生成部13は、ブロックハッシュ51n−k、ブロック番号52n−k、取引内容54n及び電子署名55nを含む取引記録53n(第1の取引記録)を生成し(ステップS3)、当該取引記録53nを送信部14に入力する。
【0036】
次に、送信部14は、生成部13から取引記録53nを受け付けると、当該取引記録53nをピア20に送信する(ステップS4)。
【0037】
図1に戻り、次に、ピア20の動作の詳細について説明する。なお、図1の改ざん検出システム100の例では、ピア20が1つの場合を記載しているが、ピア20は複数あってもよい。例えば、複数のピア管理者が、それぞれ1以上のピア20を動作させてもよい。
【0038】
ピア20は、送信部21、受信部22、記憶制御部23及び記憶部24を備える。図4のフローチャートも参照しながら、送信部21、受信部22、記憶制御部23及び記憶部24の動作の詳細について説明する。
【0039】
<ピアの動作例>
図4は実施形態のピア20の動作例を示すフローチャートである。
【0040】
はじめに、受信部22は、端末10(送信部14)から、取引記録53nを受信すると(ステップS11)、当該取引記録53nを記憶制御部23に入力する。
【0041】
記憶制御部23は、受信部22から取引記録53nを受け付けると、当該取引記録53nに含まれる電子署名55nが有効であるか否かを判定する(ステップS12)。電子署名55nが有効でない場合(ステップS12,No)、すなわち、取引記録53nが既に改ざんされている場合、記憶制御部23は、当該取引記録53nを破棄する(ステップS14)。
【0042】
電子署名が有効である場合(ステップS12,Yes)、記憶制御部23は、取引記録53nに含まれるブロック番号52n−kを使用して、ブロックチェーンに記憶されたブロックハッシュ51n−kを特定し、特定されたブロックハッシュ51n−kと、当該取引記録53nに含まれるブロックハッシュ51n−kが一致するか否かを判定する(ステップS13)。一致しない場合(ステップS13,No)、記憶制御部23は、当該取引記録53nを破棄する(ステップS14)。ステップS12及びS13の処理により、ステップS11の処理により受信された取引記録53nがピア20に記憶される時点では、改ざんされていないことが保証される。
【0043】
一致する場合(ステップS13,Yes)、記憶制御部23は、ブロック50nを生成するか否かを判定する(ステップS15)。ブロック50nに含まれる取引記録53nは、1つに限られず、複数でもよい。そのため、記憶制御部23は、例えば所定の数の取引記録53nが蓄積された場合、当該所定の数の取引記録53nを含むブロック50nを生成する。
【0044】
ブロック50nを生成しない場合(ステップS15,No)、記憶制御部23は、ステップS11の処理により受信された取引記録53nを、記憶制御部23のバッファ等に蓄積する(ステップS16)。
【0045】
ブロック50nを生成する場合(ステップS15,Yes)、記憶制御部23は、記憶制御部23のバッファ等に蓄積されていた取引記録53nと、ステップS11の処理により受信された取引記録53nとを含むブロック50nを生成し、当該ブロック50nを記憶部24のブロックチェーンに記憶する(ステップS17)。
【0046】
次に、送信部21が、ステップS17の処理により生成されたブロック50nのブロック番号52nと、当該ブロック50nに含まれるブロックハッシュ51nとを端末10に送信する(ステップS18)。ステップS18で送信されたブロックハッシュ51n及びブロック番号52nは、n+1番目以降のブロックに含まれる取引記録53で使用される。なお、ステップS18の処理は省略されてもよい。例えば、端末10の取得部12が、n+1番目以降のブロックに含まれる取引記録53を生成する際に、自律的にブロックハッシュ51n+1−k及びブロック番号52n+1―kを取得する場合は、ステップS18の処理は省略される。
【0047】
図1に戻り、次に、検出装置30の動作の詳細について説明する。なお、図1の改ざん検出システム100の例では、検出装置30が1つの場合を記載しているが、検出装置30は複数あってもよい。
【0048】
検出装置30は、受信部31及び検出部32を備える。図1の例では、検出装置30をピア20の外部に設けることにより、ピア20の管理者とは独立した監査人によって、ピア20に記憶されているブロックチェーンの改ざんを検出可能にしている。
【0049】
受信部31は、ピア20(送信部21)からブロックチェーンを受信すると、当該ブロックチェーンを検出部32に入力する。
【0050】
検出部32は、ブロックチェーンの各ブロック50を判定することにより、当該ブロックチェーンの改ざんを検出する。
【0051】
図5は実施形態の検出部32の動作例を示す図である。なお、図5のtxは、取引記録53(transaction)を表す。
【0052】
まず、検出部32は、すべてのブロック50に含まれるブロックハッシュ51を再計算し、再計算することにより得られたハッシュ値が、ブロック50に含まれるブロックハッシュ51と一致するか否かを判定する(図5、1行目〜5行目)。検出部32は、再計算することにより得られたハッシュ値が、ブロック50に含まれるブロックハッシュ51と一致しない場合、ブロックチェーンの改ざんを検出する。
【0053】
次に、検出部32は、ブロックチェーンのすべてのブロック50に含まれる取引記録53に含まれる電子署名55が有効であるか否かを判定する(図5、8行目)。検出部32は、ブロックチェーンのブロックに含まれる取引記録53に含まれる電子署名55が有効でない場合、ブロックチェーンの改ざんを検出する。
【0054】
次に、検出部32は、ブロック50に含まれる取引記録53に含まれるブロックハッシュ51と同じブロックハッシュ51がブロックチェーンに含まれていない場合、ブロックチェーンの改ざんを検出する。具体的には、検出部32は、取引記録53に含まれるブロック番号52を使用してブロックチェーンから特定されたブロック50のブロックハッシュ51が、取引記録に含まれるブロックハッシュ51と一致するか否かを判定する(図5、9行目〜12行目)。検出部32は、特定されたブロック50のブロックハッシュ51が、取引記録に含まれるブロックハッシュ51と一致しない場合、ブロックチェーンの改ざんを検出する。
【0055】
なお、図5に示す改ざんを検出する処理の順序は、一例であり、改ざんを検出する処理の順序は任意でよい。
【0056】
<実施形態の効果>
以上説明したように、実施形態の改ざん検出システム100は、1以上のピア20のいずれかに接続可能な1以上の端末10(第1の端末)と、検出装置30とを備える。1以上の端末10では、取得部12が、ピア20から、ブロックチェーンに含まれるブロックハッシュ51を取得する。そして、送信部14が、ブロックハッシュ51と端末10の取引内容54に基づくデータ(実施形態では、取引内容54そのもの)とを含む署名対象データ(第1の署名対象データ)、及び、署名対象データの電子署名55を含む取引記録53(第1の取引記録)を、ピア20に送信する。また、検出装置30では、受信部31が、ピア20からブロックチェーンを受信する。そして、検出部32が、ブロックチェーンのブロック50に含まれる取引記録53に含まれる電子署名55が有効でない、または、ブロック50に含まれる取引記録53に含まれるブロックハッシュ51と同じブロックハッシュ51がブロックチェーンに含まれていない場合、ブロックチェーンの改ざんを検出する。
【0057】
これにより実施形態の改ざん検出システム100によれば、ブロックチェーンの改ざんをより容易に検出することができる。特に、許可型ブロックチェーンのピア管理者に結託された場合であっても、ブロックチェーンの改ざんをより容易に検出することができる。
【0058】
より具体的に説明すると、従来は、取引記録の追加、削除、及び、順序の入れ替え等の改ざんは、取引記録自体を改ざんするわけではないので、従来の取引記録自身の電子署名の検証では検出することができなかった。また、すべてのピアの管理者が結託して、取引記録の追加、削除、及び、順序の入れ替え等の改ざんを行った場合、ピア間でもブロックチェーンの内容が一致するので、ピア間の比較による改ざんの検出は困難だった。
【0059】
ブロックハッシュ51は、その計算対象となる取引記録53の組成を、ほぼ100%とみなせる確率で一意に確定する。つまり、取引記録53の追加、削除、及び、順序の入れ替え等の改ざんが行われれば、実施形態の取引記録53に含まれるブロックハッシュ51が、ほぼ100%とみなせる確率で、ブロックチェーンに含まれるブロックハッシュ51と一致しない。
【0060】
善意のユーザは改ざんに協力する理由がないので、善意のユーザの取引記録53は、電子署名55の有効性が確認されれば、改ざんされていないことが期待できる(これを改ざんするには、善意のユーザが改ざん後のデータに電子署名することが必要だから)。
【0061】
したがって、その取引記録53に含まれるブロックハッシュ51は改ざんされていないことが期待でき、結果として、その計算対象となる取引記録53は改ざんされていないことが期待できる(ハッシュ関数の逆演算が困難で、偶然に衝突が起きる確率はほぼ0%とみなせるから)。
【0062】
よって、実施形態の検出部32によって、改ざんが検出されなかったブロックチェーンは、善意のユーザの取引記録53が多く含まれているほど、ピア管理者の信用とは無関係に、当該ブロックチェーンが改ざんされていないことが期待される。
【0063】
逆に、ピア管理者がブロックチェーンを改ざんするためには、改ざん目的の取引記録53から計算されるブロックハッシュ51を含むすべての取引記録53について、削除するか、または、そのユーザに改ざん後のブロックハッシュ51を使って再度の電子署名を依頼するしかない(後者は改ざんへの協力依頼である)。善意のユーザの取引記録53が多いほど、削除される取引記録53が多数になり、この改ざんの影響は大規模になり、別の視点から改ざんが発覚する可能性が高い。
【0064】
このように、実施形態によれば、ブロックチェーンを利用する善意のユーザが多いほど、ピア管理者の信用とは無関係に、ブロックチェーンが改ざんされていないことが検証可能になる。善意のユーザの典型例は、検証しようとしている監査人自身である。なお、善意のユーザが特定できない場合でも、利害の独立したユーザが多いほど、善意のユーザが相当数居ることを合理的に推定することができ、実施形態の効果が期待できる。
【0065】
(実施形態の変形例1)
次に実施形態の変形例1について説明する。変形例1の説明では、上述の実施形態と同様の説明については省略し、上述の実施形態と異なる箇所について説明する。
【0066】
変形例1では、ブロックチェーンの構造を一般化する。例えば、Proof of Work方式でない場合、ブロックチェーンの構造は鎖状である必要はなく、またブロック番号52も必要ない。ブロックチェーンに含まれる以前の取引記録53からブロックハッシュを計算できることが本質であり、その計算方法、及び、計算に使用される取引記録53の選択方法には自由度がある。
【0067】
変形例1では、ハッシュ木(Merkle Tree)と呼ばれる木構造の計算によって、以前の取引記録53からハッシュ値(ブロックハッシュ51)を計算する場合について説明する。
【0068】
図6は実施形態の変形例1のブロックハッシュ51の計算方法の例を示す図である。図6の例は、ハッシュ値101a〜101f、201a〜201c及び301aを含むハッシュ木を使用する場合を示す。例えば、記憶制御部23は、新たなブロック50を生成するときに、以前の取引記録53に基づくブロックハッシュ51として、ハッシュ値201c及び301aを使用して、ブロックハッシュ51を計算する。得られたブロックハッシュ51は、ハッシュ木に接続され、ハッシュ木が更新される。また、検出部32は、ブロックチェーンを検証するときに、各ブロック50の取引記録53に含まれるハッシュ値(ブロックハッシュ51)でハッシュ木を検索し、当該ハッシュ値がハッシュ木に含まれているか否かを判定する。
【0069】
なお、ビットコインでは、ブロック内のハッシュ計算にハッシュ木が使われているが、ブロック間は鎖状構造となっている。この変形例1では、ブロックの接続にも、ハッシュ木が使われる。ブロックの接続関係がハッシュ木の構造を有することにより、例えば特定の取引記録53(特定のブロックハッシュ51)がブロックチェーンに含まれていることを検証するための時間をより短くすることができる。
【0070】
また、図6の例では、取引記録53は、取引内容54、電子署名55、取引記録番号56、時刻57、実行結果58、ハッシュ値59及びハッシュ値201aを含む。電子署名55の署名対象データは、ハッシュ値59及びハッシュ値201aである。
【0071】
ハッシュ木に接続されるハッシュ値101bは、取引記録番号56、時刻57、実行結果58、ハッシュ値59及びハッシュ値201aから計算される。
【0072】
取引記録番号56は、取引内容54を特定する番号を示す。時刻57は、取引内容54の取引が行われた時刻を示す。実行結果58は、スマートコントラクト等の処理の実行結果を示す。ハッシュ値59は、取引内容54から計算されたハッシュ値である。ハッシュ値101b(ブロックハッシュ51)の計算時に、取引内容54のかわりに、取引内容54に基づくハッシュ値59が使用されることにより、取引内容54自体が開示されることなく、ブロックチェーンの検証(改ざんの検出)が可能になる。
【0073】
図7は実施形態の変形例1のブロックチェーンのデータ構造の例を示す図である。変形例1では、ブロックチェーンの構造は、木構造である(図6参照)。
【0074】
図7では、x,yは、ハッシュ木に含まれる特定のブロックに関するデータであることを示す。以下の説明では、ブロックを区別しない場合、x,yを省略して説明する。
【0075】
変形例1のブロックチェーンは、複数の取引記録53がまとめられたブロック50がハッシュ木に追加されることにより作成される。
【0076】
ブロック50yは、ブロックハッシュ51y、ハッシュ値201z、ハッシュ値301w、及び、1以上の取引記録53yを含む。ハッシュ値201z及び301wは、ハッシュ木に含まれるハッシュ値(過去の取引記録53に基づいて計算されたブロックハッシュ51)である。
【0077】
ブロックハッシュ51yは、ハッシュ値201z、ハッシュ値301w、及び、1以上の取引記録53yから計算されたハッシュ値である。ブロックハッシュ51yは、ブロック50yが生成されるときに、計算される。
【0078】
ここで、取引記録53yは、ブロックハッシュ51x、電子署名55y、取引記録番号56y、時刻57y、実行結果58y及びハッシュ値59yを含む。ハッシュ値59yは、取引内容54yから計算されるハッシュ値である。
【0079】
ブロックハッシュ51xは、木構造で記憶されているブロック50のうち、いずれかのブロック50xに含まれるブロックハッシュである。電子署名55yの署名対象データは、ブロックハッシュ51x及びハッシュ値59yである。
【0080】
図8は実施形態の変形例1の検出部32の動作例を示す図である。なお、図8のtxは、取引記録53(transaction)を表す。
【0081】
まず、検出部32は、ハッシュ木に記憶されているブロックハッシュ51を再計算し、再計算することにより得られたハッシュ値が、ハッシュ木に記憶されているブロックハッシュ51と一致するか否かを判定する(図8、1行目〜5行目)。検出部32は、再計算することにより得られたハッシュ値が、ハッシュ木に記憶されているブロックハッシュ51と一致しない場合、ブロックチェーンの改ざんを検出する。
【0082】
次に、検出部32は、木構造で接続されたブロック50の取引記録53に含まれる電子署名55が有効であるか否かを判定する(図5、7行目)。検出部32は、取引記録53に含まれる電子署名55が有効でない場合、ブロックチェーンの改ざんを検出する。
【0083】
次に、検出部32は、ブロック50に含まれる取引記録53に含まれるブロックハッシュ51と同じブロックハッシュ51がブロックチェーンに含まれていない場合、ブロックチェーンの改ざんを検出する(図5、8行目〜10行目)。
【0084】
以上説明したように、実施形態の変形例1によれば、ブロックチェーンの構造が、木構造である場合であっても、ブロックチェーンの改ざんをより容易に検出することができる。また、取引内容54のかわりに、取引内容54に基づくハッシュ値59が使用されることにより、取引内容54自体が開示されることなく、ブロックチェーンの検証が可能になる。
【0085】
(実施形態の変形例2)
次に実施形態の変形例2について説明する。変形例2の説明では、上述の実施形態と同様の説明については省略し、上述の実施形態と異なる箇所について説明する。
【0086】
変形例2では、実施形態の端末10(第1の端末)と、ブロックハッシュ51及びブロック番号52を含まない取引記録を生成する端末(第2の端末)とが混在する場合の動作について説明する。具体的には、例えばブロックハッシュ51及びブロック番号52を含まない取引記録を生成する端末を、実施形態の端末10(第1の端末)に順次、移行するシステム移行期などでの動作について説明する。
【0087】
第1の端末は、上述の第1の取引記録(ブロックハッシュ51n−k、ブロック番号52n−k、取引内容54n及び電子署名55nを含む取引記録53n)をピア20に送信する。
【0088】
第2の端末は、第2の端末の取引内容を含む署名対象データ(第2の署名対象データ)、及び、当該署名対象データの電子署名を含む取引記録(第2の取引記録)を、ピア20に送信する。
【0089】
ピア20の記憶制御部23は、第1及び第2の取引記録の少なくとも一方を含むブロックをブロックチェーンに記憶する。記憶制御部23は、第1の取引記録については、上述のステップS13の処理を実行し、第2の取引記録については、上述のステップS13の処理を実行しない。
【0090】
変形例2の構成でも、善意のユーザが一定以上の頻度で、第1の取引記録を登録する場合には、実施形態と同様の効果は保たれる。ここで、善意のユーザとは、取引記録に電子署名を付与するユーザであって、ピア管理者とは独立しており、ブロックチェーンの改ざんによって利益を得ない者である。
【0091】
(実施形態の変形例3)
次に実施形態の変形例3について説明する。変形例3の説明では、上述の実施形態と同様の説明については省略し、上述の実施形態と異なる箇所について説明する。
【0092】
変形例3では、善意のユーザとして、特定のユーザが、端末10を介して、定期的にブロックチェーンに、取引記録53を記憶する場合について説明する。ここで、特定のユーザとは、例えば第三者的な立場で広く信用のおける組織を想定する。当該特定のユーザにより使用される端末10が、取引内容54として「定期的な第三者によるアクセス」を記録する。取引自体の記録は目的ではなく、定期的に取引記録53をブロックチェーンに記憶することに目的がある。取引記録53にはブロックハッシュ51が含まれており、特定のユーザは信用できるから、そのブロックハッシュ51の計算対象となる取引記録53は改ざんされていないことが検証できる。
【0093】
また、検出部32は、特定のユーザの取引記録53が定期的に、ブロックチェーンに記憶されていない場合にも、改ざんを検出できる。例えば、悪意のあるユーザが、取引記録53を削除する改ざんをし、ブロックチェーンに定期的に記憶されているはずの取引記録53の一部又は全部が記憶されていない場合、当該ブロックチェーンの改ざんが発覚する。
【0094】
なお、実施形態の端末10を特定のユーザにのみ使用させることにより、改ざん検出システム100を上述の変形例2の形態で運用してもよいが、この場合には、ブロックチェーンの改ざんの検出は、特定のユーザの信用に全面的に依存することになる。
【0095】
最後に、実施形態の端末10、ピア20及び検出装置30のハードウェア構成の例について説明する。
【0096】
[ハードウェア構成の例]
図9は実施形態の端末10、ピア20及び検出装置30のハードウェア構成の例を示す図である。端末10、ピア20及び検出装置30は、制御装置401、主記憶装置402、補助記憶装置403、表示装置404、入力装置405及び通信装置406を備える。制御装置401、主記憶装置402、補助記憶装置403、表示装置404、入力装置405及び通信装置406は、バス410を介して接続されている。
【0097】
制御装置401は、補助記憶装置403から主記憶装置402に読み出されたプログラムを実行する。主記憶装置402は、ROM(Read Only Memory)、及び、RAM(Random Access Memory)等のメモリである。補助記憶装置403は、HDD(Hard Disk Drive)及びメモリカード等である。
【0098】
表示装置404は情報を表示する。表示装置404は、例えば液晶ディスプレイ等である。入力装置405は、入力を受け付けるインタフェースである。入力装置405は、例えばキーボード及びマウス等である。表示装置404及び入力装置405は、表示機能と入力機能とを有するタッチパネル等でもよい。通信装置406は、他の装置と通信するためのインタフェースである。
【0099】
実施形態の端末10、ピア20及び検出装置30で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、メモリカード、CD−R及びDVD等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
【0100】
また実施形態の端末10、ピア20及び検出装置30で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また実施形態の端末10、ピア20及び検出装置30で実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
【0101】
また実施形態の端末10、ピア20及び検出装置30のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0102】
実施形態の端末10、ピア20及び検出装置30で実行されるプログラムは、上述した図1の機能ブロックのうち、プログラムによっても実現可能な機能ブロックを含むモジュール構成となっている。当該各機能ブロックは、実際のハードウェアとしては、制御装置401が記憶媒体からプログラムを読み出して実行することにより、上記各機能ブロックが主記憶装置402上にロードされる。すなわち上記各機能ブロックは主記憶装置402上に生成される。
【0103】
なお上述した図1の各機能ブロックの一部又は全部をソフトウェアにより実現せずに、IC等のハードウェアにより実現してもよい。
【0104】
また複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち1つを実現してもよいし、各機能のうち2以上を実現してもよい。
【0105】
また実施形態の端末10、ピア20及び検出装置30の動作形態は任意でよい。実施形態の端末10、ピア20及び検出装置30を、例えばネットワーク上のクラウドシステムを構成する装置として動作させてもよい。
【0106】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【0107】
例えば、当業者が容易に成し得る変形も、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。具体的には、例えば上述のハッシュ値の計算で使用されるデータ構造は、鎖状構造及び木構造に限られない。ハッシュ値の計算方法は、さまざまなトポロジーによる計算、それらの計算の組み合わせ、及び、計算結果の再帰的な利用など、さまざま変形が可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9