(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-10-10
(45)【発行日】2024-10-21
(54)【発明の名称】情報管理システムおよび情報管理方法
(51)【国際特許分類】
G06F 16/182 20190101AFI20241011BHJP
G06F 21/64 20130101ALI20241011BHJP
H04L 9/32 20060101ALI20241011BHJP
【FI】
G06F16/182
G06F21/64
H04L9/32 200Z
(21)【出願番号】P 2023135508
(22)【出願日】2023-08-23
【審査請求日】2023-08-25
【早期審査対象出願】
(73)【特許権者】
【識別番号】518284466
【氏名又は名称】株式会社パラミックス
(74)【代理人】
【識別番号】110002310
【氏名又は名称】弁理士法人あい特許事務所
(72)【発明者】
【氏名】松本 幸三
【審査官】原 秀人
(56)【参考文献】
【文献】特開2023-052135(JP,A)
【文献】国際公開第2023/074878(WO,A1)
【文献】山崎 重一郎 外,ブロックチェーン技術概論 理論と実践 ,日本,株式会社講談社,2021年06月25日,pp. 12-15, 221-231
【文献】鈴木 淳一,ブロックチェーン3.0 国内外特許からユースケースまで,初版,日本,株式会社エヌ・ティー・エス,2020年12月15日,pp. 271-274
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 21/64
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
トランザクションボックス、ハッシュ値ボックスおよび前ハッシュ値ボックスを有するブロックを含む分散型台帳を保持するブロックチェーンネットワークであって、前記トランザクションボックスに記憶されているデータのハッシュ値を前記ハッシュ値ボックスに格納し、かつ前のブロックの前記ハッシュ値ボックスに格納されている値を前記前ハッシュ値ボックスに格納するブロックチェーンネットワークと、
前記ブロックチェーンネットワークの外に設けられた分散ストレージと、
トランザクションの生成において、生成した前記トランザクションを前記分散ストレージに記憶させ、かつ当該トランザクションのハッシュ値を算出し、算出した前記ハッシュ値を記憶ハッシュ値として、当該トランザクションに対応付けて、予め定めるブロック
において前記ハッシュ値ボックスではなく前記トランザクションボックスに格納
させる入力部と、
前記トランザクションの出力において、前記分散ストレージに記憶されている出力対象の前記トランザクションについてハッシュ値を算出し、算出した前記ハッシュ値を、当該トランザクションに対応付けて前記トランザクションボックスに記憶されている前記記憶ハッシュ値と照合し、その照合結果に基づいて、前記分散ストレージに記憶されている前記出力対象の前記トランザクションを出力する出力部とを含む、情報管理システム。
【請求項2】
前記出力部は、前記分散ストレージに記憶されている前記トランザクションから算出した前記ハッシュ値と、前記トランザクションボックスに記憶されている前記記憶ハッシュ値とが一致する場合に、前記分散ストレージに記憶されている前記トランザクションを出力する、請求項1に記載の情報管理システム。
【請求項3】
トランザクションボックス、ハッシュ値ボックスおよび前ハッシュ値ボックスを有するブロックを含む分散型台帳を保持するブロックチェーンネットワークであって、前記トランザクションボックスに記憶されているデータのハッシュ値を前記ハッシュ値ボックスに格納し、かつ前のブロックの前記ハッシュ値ボックスに格納されている値を前記前ハッシュ値ボックスに格納するブロックチェーンネットワークと、前記ブロックチェーンネットワークの外に設けられた分散ストレージとを備える情報管理システムにおいて実行される情報管理方法であって、
トランザクションの生成において、生成した前記トランザクションを前記分散ストレージに記憶させ、かつ当該トランザクションのハッシュ値を算出し、算出した前記ハッシュ値を記憶ハッシュ値として、当該トランザクションに対応付けて、予め定めるブロック
において前記ハッシュ値ボックスではなく前記トランザクションボックスに格納
させる入力ステップと、
前記トランザクションの出力において、前記分散ストレージに記憶されている出力対象の前記トランザクションについてハッシュ値を算出し、算出した前記ハッシュ値を、当該トランザクションに対応付けて前記トランザクションボックスに記憶されている前記記憶ハッシュ値と照合する照合ステップと、
前記照合ステップにおける照合結果に基づいて、前記分散ストレージに記憶されている前記出力対象の前記トランザクションを出力する出力ステップとを含む、情報管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報管理システムおよび情報管理方法に関する。
【背景技術】
【0002】
特許文献1,2に記載の情報管理システムでは、取引関係のある複数の企業間でコンソーシアム型のネットワークを形成し、このネットワークにおいて、これら複数の企業間の取引の記録(取引記録)を共有して管理している。具体的には、これら複数の企業間の情報管理装置をブロックチェーンネットワーク内でつなぎ、情報管理装置間の取引記録を、ブロックチェーンによって管理している。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2022-182767号公報
【文献】特開2023-45520号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、ブロックチェーンネットワークのメモリには、1つのトランザクションボックスに書き込めるデータ容量(ブロックサイズ)に上限がある。その理由は、ブロックチェーンネットワークに大容量のデータを保存するのは、ブロックチェーンネットワークの負担や処理速度等の観点から必ずしも望ましくない場合があるからである。そのため、特許文献1,2に記載の情報管理システムでは、ブロックチェーンネットワークにおいて、大容量の取引記録を扱えない、という問題がある。
【0005】
大容量のデータ(取引記録)を取り扱うことが求められている。すなわち、データの安全を確保しながら、スケーラビリティの向上を図ることが求められている。
【0006】
この発明は、このような背景の下になされたものであり、データの安全を確保しながら、スケーラビリティの向上を図ることができる、情報管理システムおよび情報管理方法を提供することである。
【課題を解決するための手段】
【0007】
この発明の一実施形態は、次のような特徴を有する、情報管理システムおよび情報管理方法を提供する。
【0008】
1.
トランザクションボックス、ハッシュ値ボックスおよび前ハッシュ値ボックスを有するブロックを含む分散型台帳を保持するブロックチェーンネットワークであって、前記トランザクションボックスに記憶されているデータのハッシュ値を前記ハッシュ値ボックスに格納し、かつ前のブロックの前記ハッシュ値ボックスに格納されている値を前記前ハッシュ値ボックスに格納するブロックチェーンネットワークと、
前記ブロックチェーンネットワークの外に設けられた分散ストレージと、
トランザクションの生成において、生成した前記トランザクションを前記分散ストレージに記憶させ、かつ当該トランザクションのハッシュ値を算出し、算出した前記ハッシュ値を記憶ハッシュ値として、当該トランザクションに対応付けて、予め定めるブロックにおいて前記ハッシュ値ボックスではなく前記トランザクションボックスに格納させる入力部と、
前記トランザクションの出力において、前記分散ストレージに記憶されている出力対象の前記トランザクションについてハッシュ値を算出し、算出した前記ハッシュ値を、当該トランザクションに対応付けて前記トランザクションボックスに記憶されている前記記憶ハッシュ値と照合し、その照合結果に基づいて、前記分散ストレージに記憶されている前記出力対象の前記トランザクションを出力する出力部とを含む、情報管理システム。
【0009】
分散ストレージは、オフチェーンと称されてもよい。トランザクションボックスは、オンチェーンボックスと称されてもよい。
【0010】
この構成によれば、入力部は、トランザクションの生成において、生成したトランザクションを、分散ストレージに記憶させる。分散ストレージに記憶されるデータには、容量の上限の定めがない。そのため、トランザクションが大容量であっても、トランザクションを分散ストレージに記憶させることが可能である。
【0011】
また、トランザクションの生成において、入力部は、生成したトランザクションのハッシュ値を記憶ハッシュ値として、トランザクションボックスに記憶する。そして、トランザクションの出力時において、出力部は、分散ストレージに記憶されているトランザクションについてハッシュ値を算出する。算出されたハッシュ値が、トランザクションボックスに記憶されている記憶ハッシュ値と照合される。
【0012】
そして、トランザクションの出力時において、分散ストレージに記憶されているトランザクションのハッシュ値を記憶ハッシュ値と比較することにより、生成時のトランザクションと出力時のトランザクションとを比較することが可能である。これにより、分散ストレージに記憶されているトランザクションに改ざんがあった場合に、そのことを精度良く検出可能である。したがって、データ(トランザクション)の改ざんを防止しながら、スケーラビリティの向上を図ることができる。
【0013】
とくに、この構成では、比較対象になる記憶ハッシュ値がトランザクションボックスに記憶されている。そのため、記憶ハッシュ値が改ざんされることを防止でき、ゆえに、この記憶ハッシュ値の信頼度を高めることができる。信頼度の高い記憶ハッシュ値を用いて照合するので、トランザクションの改ざんを、より一層確実に防止できる。
【0016】
2.
前記出力部は、前記分散ストレージに記憶されている前記トランザクションから算出した前記ハッシュ値と、前記トランザクションボックスに記憶されている前記記憶ハッシュ値とが一致する場合に、前記分散ストレージに記憶されている前記トランザクションを出力する、項1に記載の情報管理システム。
【0017】
この構成によれば、分散ストレージに記憶されているトランザクションについて算出したハッシュ値と、トランザクションボックスに記憶されている記憶ハッシュ値とが一致する場合には、分散ストレージに記憶されているトランザクションに改ざんが無いとして、当該トランザクションが出力される。
【0018】
一方、分散ストレージに記憶されているトランザクションについて算出したハッシュ値と、トランザクションボックスに記憶されている記憶ハッシュ値とが一致しない場合には、分散ストレージに記憶されているトランザクションに改ざんがあるとして、当該トランザクションは出力されなくてもよい。この場合、改ざんされたトランザクションが外部(外部システム)に出力されるのを防止できる。
【0019】
3.
トランザクションボックス、ハッシュ値ボックスおよび前ハッシュ値ボックスを有するブロックを含む分散型台帳を保持するブロックチェーンネットワークであって、前記トランザクションボックスに記憶されているデータのハッシュ値を前記ハッシュ値ボックスに格納し、かつ前のブロックの前記ハッシュ値ボックスに格納されている値を前記前ハッシュ値ボックスに格納するブロックチェーンネットワークと、前記ブロックチェーンネットワークの外に設けられた分散ストレージとを備える情報管理システムにおいて実行される情報管理方法であって、
トランザクションの生成において、生成した前記トランザクションを前記分散ストレージに記憶させ、かつ当該トランザクションのハッシュ値を算出し、算出した前記ハッシュ値を記憶ハッシュ値として、当該トランザクションに対応付けて、予め定めるブロックにおいて前記ハッシュ値ボックスではなく前記トランザクションボックスに格納させる入力ステップと、
前記トランザクションの出力において、前記分散ストレージに記憶されている出力対象の前記トランザクションについてハッシュ値を算出し、算出した前記ハッシュ値を、当該トランザクションに対応付けて前記トランザクションボックスに記憶されている前記記憶ハッシュ値と照合する照合ステップと、
前記照合ステップにおける照合結果に基づいて、前記分散ストレージに記憶されている前記出力対象の前記トランザクションを出力する出力ステップとを含む、情報管理方法。
【図面の簡単な説明】
【0020】
【
図1A】
図1Aは、この発明の一実施形態に係る情報管理システムの概略的な構成を示す図である。
【
図1B】
図1Bは、前記情報管理システムの概略的な構成を示す図である。
【
図2】
図2は、前記情報管理システムに含まれる情報管理装置の電気的構成を説明するための図である。
【
図3】
図3は、ブロックチェーンネットワークにおいて取り扱われるデータ構造を説明するための図である。
【
図4】
図4は、情報管理装置に保持されている分散型台帳のデータ構造を説明するための図である。
【
図5】
図5は、情報管理装置におけるトランザクションの生成処理の流れを説明するための図解図である。
【
図6】
図6は、情報管理装置におけるトランザクションの出力処理の流れを説明するための図解図である。
【
図7】
図7は、前記出力処理の流れを説明するための流れ図である。
【
図8】
図8は、情報管理装置の他の電気的構成を説明するための図である。
【発明を実施するための形態】
【0021】
以下では、この発明の実施形態について、図面を参照しながら詳細に説明する。
【0022】
図1Aおよび
図1Bは、この発明の一実施形態に係る情報管理システム1の概略的な構成を示す図である。
図2は、情報管理システム1に含まれる情報管理装置2の電気的構成を説明するための図である。情報管理システム1は、複数の参加者(たとえば企業)間でコンソーシアム型(またはプライベート型)のネットワークNを形成し、取引記録(たとえば企業間取引の取引記録)を共有して管理するためのシステムである。
図1Aおよび
図1Bでは、ネットワークNを形成する複数の参加者が企業であり、かつそれら複数の企業が、企業A、企業B、企業Cおよび企業Dの4つである場合を例に挙げる。情報管理システム1によって形成されるネットワークNにおいて、取引記録が共有される。
【0023】
図1Aおよび
図1Bを参照して、情報管理システム1は、参加者(企業)用のサーバーとして機能する複数の情報管理装置2と、当該情報管理システム1の管理用のサーバーとして機能する管理用情報管理装置4とを備えている。
【0024】
図1Aおよび
図1Bを参照して、複数の情報管理装置2は、互いに異なる企業に帰属している。具体的には、複数の情報管理装置2は、A企業に帰属している第1情報管理装置2Aと、B企業に帰属している第2情報管理装置2Bと、C企業に帰属している第3情報管理装置2Cと、D企業に帰属している第4情報管理装置2Dとを含む。第1~第4情報管理装置2A~2Dに含まれる各構成は、互いに同じである。
図1Aでは、第1情報管理装置2Aに含まれる各構成を詳細に示し、第2~第4情報管理装置2B~2Dに含まれる各構成の図示を簡略化している。各情報管理装置2A~2Dには、複数の情報処理装置(ユーザー)が接続されている。各情報管理装置2A~2Dは、オンプレミス型であってもよいし、クラウド型であってもよい。
【0025】
図1Aおよび
図1Bを参照して、各情報管理装置2(情報管理装置2A~情報管理装置2D)には、ブロックチェーンプラットフォームのソフトウェアが導入されている。ブロックチェーンプラットフォームのソフトウェアは、P2P(Peer to Peer)型のブロックチェーンネットワーク5を構築するピアノード(ピアノード24)として機能するためのスマートコントラクトを含んで構成されている。このスマートコントラクトにより構築されるブロックチェーンネットワーク5は、取引記録(トランザクション50(
図3参照))の共有範囲が予め定める当事者間に限定されたコンソーシアム型(またはプライベート型)のネットワークである。上記のブロックチェーンプラットフォームは、たとえばHyperledger Fabric(登録商標)であってもよい。スマートコントラクトは、Hyperledger Fabric(登録商標)においては、チェーンコードと呼ばれる。
【0026】
図1Aおよび
図2を参照して、各情報管理装置2A~2Dは、制御装置21を含む。制御装置21は、典型的には、コンピュータであり、プロセッサおよびメモリを備えている。制御装置21は、メモリに格納されたプログラムをプロセッサが実行することによって、様々な機能を実行するように構成されている。導入されたスマートコントラクトが機能することにより、各情報管理装置2の制御装置21がピアノード(
図1A、
図2、
図5および
図6では、「peer」と表示)24として機能する。複数のピアノード24がネットワークNを介して互いに通信することにより、複数の参加者(企業)が参加するブロックチェーンネットワーク5が形成されている。ピアノード24として機能する制御装置21は、与えられた取引記録(トランザクション)を検証したり、ピアノード24が含まれる情報管理装置2に保持されている分散型台帳23の個々のブロック60(
図4参照)に格納されているデータにアクセスしたり、検証済みのトランザクションを個々のブロック60に書き込んだりする。
【0027】
また、導入されたスマートコントラクトが機能することにより、各情報管理装置2の制御装置21が認証局25としても機能する。認証局25は、ブロックチェーンネットワーク5内の参加者に対し、ピアノード24等の情報の登録や証明書の発行を行う。
【0028】
また、この実施形態では、制御装置21のプロセッサがスマートコントラクトを実行することにより、各情報管理装置2の制御装置21がオーダラーノード(
図1A、
図1B、
図2、
図5および
図6では、「orderer」と表示)26としても機能する。
【0029】
ネットワークNへの参加が許可された情報管理装置2のみが、ブロックチェーンネットワーク5に参加できる。
図1Aおよび
図1Bの例では、4つの情報管理装置2(2A~2D)にブロックチェーンネットワーク5への参加が許可された状態を示す。
図1Aおよび
図1Bの例では、参加が許可された企業(参加企業)の数が4つである場合を例に挙げているが、これは一例であり、参加企業の数が5つ以上であってもよいのは言うまでもない。この明細書において、企業は、民間企業だけでなく、公企業を含んでいてもよい。また、ブロックチェーンネットワーク5が、複数の企業間のみでなく、複数の企業に規制官庁(規制当局)を含んだものの間で形成されていてもよい。
【0030】
参加する複数の企業(企業A~企業D)の間の取引にまつわるあらゆる取引記録、たとえば、入金処理、出金処理、受注処理、発注処理、入庫処理、出庫処理、監査承認処理等の取引記録が、各情報管理装置2に対し入力/出力される。これらの取引記録は、ブロックチェーンネットワーク5内の次に述べる個々の分散型台帳23に格納される。すなわち、複数の情報管理装置2に保持される分散型台帳23において共通に管理される。上記のブロックチェーンネットワーク5は、種々の分野において利用可能である。具体的には、このネットワークNは、トレーサビリティを利用した食の信頼、医療・製薬、原産地証明、製造品質・履歴、貿易物流手続きに利用可能である。
【0031】
図1Aおよび
図2を参照して、制御装置21は、ウェブ管理部(
図1Aおよび
図2では、「WEB管理部」と表示)30、セッション管理部31、管理系I/F32、入力I/F(入力部)33および出力I/F(出力部)34を備えている。ウェブ管理部30、セッション管理部31、管理系I/F32、入力I/F33および出力I/F34は、情報管理部7に含まれる。
【0032】
図1Aおよび
図2を参照して、各情報管理装置2は、記憶装置22をさらに含む。記憶装置22は、電力が供給されていなくても記憶を保持する不揮発性メモリである。記憶装置22は、たとえば、ハードディスクドライブ等の磁気記憶装置であってもよい。各情報管理装置2の記憶装置22は分散型台帳23を保持している。複数の情報管理装置2の記憶装置22に保持されている分散型台帳23の内容は互いに同一に保たれている。
【0033】
記憶装置22は、データベース35を備えている。データベース35は、情報管理部7に含まれる。
【0034】
各情報管理装置2において、制御装置21のピアノード24、認証局25およびオーダラーノード26、ならびに記憶装置22の分散型台帳23は、ブロックチェーン部6に含まれる。また、制御装置21は、ブロックチェーン部6として、データベース管理システム(
図1Aおよび
図2では、「DBMS」と表示)27をさらに含む。データベース管理システムは、分散型台帳23に含まれるステートDB61(
図4参照)に、取引を実行した結果の最新の状態を保存する。
【0035】
各情報管理装置2において、ブロックチェーン部6と、情報管理部7とは、API(Application Programming Interface)8を介して接続されている。
【0036】
情報管理装置2は、制御装置21および記憶装置22の他に、通信装置36と、分散ストレージ29とを備える。
【0037】
通信装置36は、外部システム100との通信が可能に構成される。外部システム100は、当該通信装置36が含まれる情報管理装置2に接続された他の装置であってもよいし、当該通信装置36が含まれる情報管理装置2とは別の情報管理装置2であってもよいし、管理用情報管理装置4であってもよい。通信装置36と外部システム100との通信は、インターネットのようなワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)ネットワーク等を用いてもよい。通信装置36と外部システム100との通信は、有線通信であってもよいし、無線通信であってもよい。
【0038】
分散ストレージ29は、電力が供給されていなくても記憶を保持できる記憶を保持する不揮発性メモリである。分散ストレージ29は、たとえば、ハードディスクドライブ等の磁気記憶装置であってもよい。分散ストレージ29は、ブロックチェーン部6の外(つまり、ブロックチェーンネットワーク5の外)に設けられている。この実施形態では、分散ストレージ29には、当該分散ストレージ29が含まれる情報管理装置2において作成されたトランザクション50(
図3参照)が個々に区別して記憶されている。
【0039】
図1Bを参照して、管理用情報管理装置4は、ネットワークNを運営する管理企業に帰属するサーバーである。管理用情報管理装置4は、ネットワークNを管理する。管理用情報管理装置4は、ブロックチェーンネットワーク5の管理者として機能する。
【0040】
図1Bを参照して、管理用情報管理装置4は、制御装置41および記憶装置42を備えている。制御装置41は、制御装置21と同一の構成を有している。記憶装置42は、記憶装置22と同一の構成を有している。そのため、
図1Bでは、制御装置41および記憶装置42の各部に、それぞれ制御装置21および記憶装置22の各部(
図1Aおよび
図2参照)と同一の参照符号を付し、説明を省略する。また、管理用情報管理装置4は、ブロックチェーン部6および情報管理部7を備えている。管理用情報管理装置4において、ブロックチェーン部6および情報管理部7は、API8(
図2参照)を介して接続されている。管理用情報管理装置4は、通信装置36(
図2参照)を含む。管理用情報管理装置4は、分散ストレージ29(
図2参照)を備えていてもよいし、備えていなくてもよい。管理用情報管理装置4は、オンプレミス型であってもよいし、クラウド型であってもよい。
【0041】
この実施形態では、制御装置41のプロセッサがスマートコントラクトを実行することにより、管理用情報管理装置4の制御装置41がオーダラーノード26として機能する。また、管理用情報管理装置4の制御装置41のプロセッサがスマートコントラクトを実行することにより、管理用情報管理装置4の制御装置41が認証局25としても機能する。
【0042】
なお、
図1Aの例では、情報管理装置2(すなわち、情報管理装置2A~2D)および管理用情報管理装置4のいずれにも、オーダラーノード26があるとして説明したが、オーダラーノード26は、情報管理システム1に少なくとも一つあればよい。たとえば、オーダラーノード26が管理用情報管理装置4にのみあり、情報管理装置2A~2Dにはオーダラーノード26がないようにしてもよい。
【0043】
認証局25として機能する制御装置41は、ブロックチェーンネットワーク5への参加を希望する情報管理装置2のピアノード24からの参加申請に対し承認を行う。また、認証局25として機能する制御装置41は、ピアノード24に対し、証明書および秘密鍵の発行を行う。認証局25は、ピアノード24のID等を検証した上で、証明書等を発行する。ピアノード24が、オーダラーノード26に対し、新規の取引記録(トランザクション)を送信するためには、取引記録が、発行された証明書および秘密鍵を用いて署名されている必要がある。これにより、管理用情報管理装置4は、各情報管理装置2からのネットワークNへの参加申請を受け付けて、個々の情報管理装置2のネットワークNへの参加を許可する。そして、管理用情報管理装置4からネットワークNへの参加が許可された情報管理装置2のみが、ネットワークNに参加できる。
【0044】
図3は、ブロックチェーンネットワーク5において取り扱われるデータ構造を説明するための図である。
図3に示すように、ブロックチェーンネットワーク5においては、トランザクション50という単位で取引記録のデータが取り扱われる。トランザクション50は、トランザクション50の識別情報であるキー51と、トランザクション50のデータ部分であって、キー51に対応付けられたトランザクションデータ52とを含む。
【0045】
図4は、情報管理装置2に保持されている分散型台帳23のデータ構造を説明するための図である。分散型台帳23は、取引記録が書き込まれる複数のブロック60と、取引実行後の最新の状態を記憶するステートDB61とを含む。各ブロック60には、取引記録が書き込まれる。また、取引を実行した結果の最新の状態が、各ブロック60に対応付けてステートDB61に格納される。制御装置21は、スマートコントラクトを経由して、ステートDB61に対しデータを参照/更新することができる。
【0046】
スマートコントラクトは、ブロックチェーンネットワーク5内で各ピアノード24が同じものを管理する。いずれのピアノード24上でスマートコントラクトが実行されても同じ結果になるように、これらのスマートコントラクトは互いに整合性が取られている。
【0047】
図4の例では、複数のブロック60のうちn番目(n:自然数)に登録されるブロック60をブロック60
nとし、次いで登録されるブロックをブロック60
n+1とし、次いで登録されるブロック60をブロック60
n+2とする。
【0048】
各ブロック60は、トランザクションボックス65と、ハッシュ値ボックス66と、前ハッシュ値ボックス67とを含む。トランザクションボックス65は、取引記録を記憶するための記憶部(ストレージ)である。
【0049】
後述するように、この実施形態では、トランザクションボックス65は、取引記録として、トランザクション50そのものでなく、トランザクション50のハッシュ値を保持する。具体的には、トランザクションボックス65に保持されるハッシュ値は、トランザクション50の全体のハッシュ値である。
【0050】
ハッシュ値ボックス66は、当該ハッシュ値ボックス66が含まれるブロック60のトランザクションボックス65に保持されているデータのハッシュ値を保持する。前ハッシュ値ボックス67は、当該ハッシュ値ボックス66が含まれるブロック60の一つ前に登録されたブロック60のトランザクションボックス65に保持されているデータのハッシュ値を保持する。
【0051】
具体的には、ブロック60n+2の前ハッシュ値ボックス67の値は、ブロック60n+1のハッシュ値ボックス66の値である。ブロック60n+1の前ハッシュ値ボックス67の値は、ブロック60nのハッシュ値ボックス66の値である。ブロック60nの前ハッシュ値ボックス67の値は、ブロック60n-1(図示しない。ブロック60nの一つ前に登録されるブロック)のハッシュ値ボックス66の値である。すなわち、ハッシュ値が複数のブロック60のジョイントとして利用されている。このジョイントにより、複数のブロック60が、…ブロック60n-1、ブロック60n、ブロック60n+1、ブロック60n+2…の順につながっている。
【0052】
ブロックチェーンにおいて、各ブロック60のトランザクションボックス65に格納されているデータ(取引履歴)の改ざんは難しい。その理由は、次に述べる通りである。すなわち、トランザクションボックス65に格納されているデータを改ざんすると、ハッシュ値ボックス66の値が変わってしまう。このとき、ハッシュ値ボックス66の値が、当該ハッシュ値ボックス66が含まれるブロック60(たとえばブロック60n)の次のブロック60(たとえばブロック60n+1)の前ハッシュ値ボックス67の値との間で整合がとれなくなる。そして、当該次のブロック60(たとえばブロック60n+1)を改ざんしようとすると、当該次のブロック60(たとえばブロック60n+1)のハッシュ値ボックス66の値が、さらに次のブロック60(たとえばブロック60n+2)の前ハッシュ値ボックス67の値との間で整合がとれなくなる。すなわち、ブロックチェーンを改ざんしようとすると、一部のブロック60へのデータの改ざん行為に対して、すべてのブロック60に対する整合性を保つための処理が必要になる。しかし、そのような処理は現実的には、極めて難しい。ゆえに、改ざんの困難性を高く保つことができる。
【0053】
なお、ブロック60のうち最初に登録されるブロック601(図示しない)の前ハッシュ値ボックス67の値は、NULL(値なし)である。
【0054】
図5は、情報管理装置2の制御装置21におけるトランザクション50の生成処理の流れを説明するための図解図である。主として
図5を参照しながら、トランザクション50の生成処理の流れについて説明する。
【0055】
情報管理装置2の制御装置21の入力I/F33は、当該情報管理装置2の通信装置36(
図2参照)に外部システム100からの受信要求(リクエスト(
図5のS1))があるか否かを常に監視している。この外部システム100は、当該入力I/F33が含まれる情報管理装置2に接続された他の装置であってもよいし、当該入力I/F33が含まれる情報管理装置2とは別の情報管理装置2であってもよい。
【0056】
外部システム100から受信要求(リクエスト)があり、その受信要求に対し、情報管理装置2の制御装置21が受信可能の信号を送信すると、この外部システム100から取引記録が送信されてくる。送信されてきた取引記録は、入力I/F33が受信する。取引記録を受け取った入力I/F33は、この取引記録についてトランザクション50を作成し、そのハッシュ値(記憶ハッシュ値70)を算出する。そして、入力I/F33は、作成したトランザクション50を分散ストレージ29に記憶させる(入力ステップ、
図5のS2)。
【0057】
分散ストレージ29に記憶される取引記録のデータには、容量の上限の定めがない。そのため、取引記録のデータが大容量であり、その結果、トランザクション50が大容量であっても、トランザクション50を分散ストレージ29に記憶させることが可能である。
【0058】
また、入力I/F33は、取引記録の受信についての情報(保存場所や受信日時等。リクエスト情報(
図5のS3))を、データベース35に記憶させる。
【0059】
さらに、入力I/F33は、算出したトランザクション50のハッシュ値を、記憶ハッシュ値70(
図5のS4)として登録するようブロックチェーンネットワーク5に依頼する。これにより、記憶ハッシュ値70は、ブロックチェーンネットワーク5の分散型台帳23のトランザクションボックス65に格納される(入力ステップ)。
【0060】
具体的には、情報管理装置2のピアノード24として機能する制御装置21が、オーダラーノード26に、記憶ハッシュ値70を送信する。オーダラーノード26は、依頼内容を確認し、問題がなければ登録する。すなわち、オーダラーノード26は、受信した記憶ハッシュ値70をトランザクションとするブロック60を作成し、作成したブロック60を、全てのピアノード24に配布(ブロードキャスト)する。これにより、各情報管理装置2が保持する分散型台帳23に、今回の取引記録に対応するブロック60が作成され、当該ブロック60のトランザクションボックス65に、記憶ハッシュ値70が格納される(登録される)。
【0061】
図5の例では、記憶ハッシュ値70を受信するオーダラーノード26は、取引記録が入力された情報管理装置2のオーダラーノード26である場合が示されている。しかし、オーダラーノード26は、管理用情報管理装置4のオーダラーノード26であってもよいし、他の情報管理装置2のオーダラーノード26であってもよい。
【0062】
また、トランザクション50のハッシュ値である記憶ハッシュ値70の容量は、予め定める小さいバイト数(256バイト)である。ブロックチェーンネットワーク5に保持されるデータのサイズ(ブロックサイズ)の上限は100MBであり、この予め定める小さいバイト数(256バイト)よりも大幅に大きい。そのため、ブロックサイズの上限に拘わらず、記憶ハッシュ値70を分散型台帳23のトランザクションボックス65に記憶させることができる。
【0063】
図4および
図5を参照して、トランザクションボックス65(たとえば、
図4のブロック60
nのトランザクションボックス65)に記憶ハッシュ値70が格納されると、各分散型台帳23において記憶ハッシュ値70のハッシュ値が算出される。そして、記憶ハッシュ値70のハッシュ値が、トランザクションボックス65に対応するハッシュ値ボックス66(たとえば、
図4のブロック60
nのハッシュ値ボックス66)に格納される。したがって、分散型台帳23において、この次に登録されるブロック60の前ハッシュ値ボックス67(たとえば、
図4のブロック60
n+1の前ハッシュ値ボックス67)の値が、記憶ハッシュ値70のハッシュ値になる。この実施形態では、記憶ハッシュ値70のハッシュ値が、複数のブロック60のジョイントとして利用されている。すなわち、複数のブロック60が、トランザクション50のハッシュ値ではなく、トランザクション50のハッシュ値(すなわち、記憶ハッシュ値70)のハッシュ値でつながっている。
【0064】
トランザクションボックス65に記憶ハッシュ値70が格納される(登録される)と、その旨の信号(処理結果(
図5のS6参照))が、オーダラーノード26から入力I/F33に送られる。入力I/F33が、その旨の信号(処理結果(
図5のS6参照))を受信すると、記憶装置(
図2等参照)のデータベース35(
図2等参照)にその旨が記憶される。
【0065】
図6は、情報管理装置2の制御装置21におけるトランザクション50の出力処理の流れを説明するための図解図である。
図7は、情報管理装置2の制御装置21におけるトランザクション50の出力処理の流れを説明するための流れ図である。
図6および
図7を参照しながら、トランザクション50の出力処理の流れについて説明する。
【0066】
情報管理装置2の制御装置21の出力I/F34は、当該情報管理装置2の通信装置36に外部システム100からの配信要求(リクエスト(
図6のS11))があるか否かを常に監視している。この外部システム100は、当該入力I/F33が含まれる情報管理装置2に接続された他の装置であってもよいし、当該入力I/F33が含まれる情報管理装置2とは別の情報管理装置2であってもよい。
【0067】
外部システム100からの配信要求(リクエスト)を受信すると(
図7のS11でYES)、出力I/F34は、当該配信要求に対応する保存場所をデータベース35から取得する。そして、出力I/F34は、分散ストレージ29からトランザクション50を読み出す(
図6および
図7のS12)。そして、出力I/F34は、分散ストレージ29から読み出したトランザクション50に対し、ハッシュ値を算出する(
図7のS14)。すなわち、トランザクション50のハッシュ値を再計算する。
【0068】
また、出力I/F34は、今回のトランザクション50に対応する記憶ハッシュ値70を、当該出力I/F34が含まれる情報管理装置2に保持されている分散型台帳23のトランザクションボックス65から読み出す(
図6および
図7のS15)。そして、出力I/F34は、
図7のS14において再計算したハッシュ値を、トランザクションボックス65から読み出した記憶ハッシュ値70と照合する(照合ステップ、
図7のS16)。
【0069】
再計算したハッシュ値が、トランザクションボックス65に記憶されていた記憶ハッシュ値70と一致する場合(
図7のS17でYES)、出力I/F34は、ハッシュ値の照合に成功し、分散ストレージ29に記憶されていたトランザクション50に改ざんはない、と判断する。このとき、出力I/F34による、トランザクション50の配信が許容される。そして、出力I/F34は、配信要求元(依頼元)の外部システム100に対し、分散ストレージ29から読み出したトランザクション50を送信する(出力ステップ、
図7のS18)。その後、
図7の処理はリターンされる。
【0070】
一方、再計算したハッシュ値が記憶ハッシュ値70と異なるときには(
図7のS17でNO)、出力I/F34は、照合に失敗し、分散ストレージ29に記憶されていたトランザクション50に改ざんがあった、と判断する。このとき、トランザクション50の出力が許容されず、出力I/F34は、改ざんされている旨を管理用情報管理装置4に通知する等のエラー処理を実行する(
図7のS19)。エラー処理の後、
図7の処理はリターンされる。
【0071】
以上により、この実施形態によれば、入力I/F33は、トランザクション50の生成において、生成したトランザクション50を分散ストレージ29に記憶させる。分散ストレージ29に記憶されるデータには、容量の上限の定めがない。そのため、トランザクション50が大容量であっても、トランザクション50を分散ストレージ29に記憶させることが可能である。
【0072】
また、トランザクション50の生成において、入力I/F33は、受信したトランザクション50のハッシュ値を記憶ハッシュ値70として、トランザクションボックス65に記憶する。そして、トランザクション50の出力時において、出力I/F34は、分散ストレージ29に記憶されているトランザクション50についてハッシュ値を算出する。算出されたハッシュ値が、トランザクションボックス65に記憶されている記憶ハッシュ値70と照合される。そして、分散ストレージ29に記憶されているトランザクション50について算出したハッシュ値と、トランザクションボックス65に記憶されている記憶ハッシュ値70とが一致する場合には、分散ストレージ29に記憶されているトランザクション50に改ざんがないとされる、これにより、分散ストレージ29に記憶されているトランザクション50に改ざんがあった場合に、そのことを精度良く検出可能である。
【0073】
以上により、データ(トランザクション50)の改ざんを防止しながら、スケーラビリティの向上を図ることができる。
【0074】
とくに、この実施形態では、比較対象になる記憶ハッシュ値70がトランザクションボックス65に記憶されている。そのため、複数のブロック60が、トランザクション50の記憶ハッシュ値70でつながるようになる。これにより、トランザクション50の記憶ハッシュ値70が改ざんされることを防止でき、ゆえに、記憶ハッシュ値70の信頼度を高めることができる。信頼度の高い記憶ハッシュ値70を用いて照合するので、トランザクション50の改ざんを、より一層確実に防止できる。
【0075】
また、仮に、記憶ハッシュ値70をトランザクションボックス65とは別の領域に記憶させるとすると、記憶ハッシュ値70を記憶しておくための領域を、トランザクションボックスとは別にさらに設ける必要がある。この発明の一実施形態では、記憶ハッシュ値70をトランザクションボックス65に記憶させるので、記憶ハッシュ値70を記憶しておくためのストレージを別途設ける必要がない。
【0076】
以上、この発明の一実施形態について説明したが、この発明は、他の形態で実施することもできる。
【0077】
また、前述の説明において、情報管理システム1が複数の企業間でブロックチェーンネットワーク5を形成するとして説明したが、ブロックチェーンネットワーク5が自社内の部門グループ内で形成されていてもよい。ブロックチェーンネットワーク5が自社内の部門グループ内で形成されたり、企業グループ内で形成されたりする場合には、個々の参加者が分散型台帳23を保持せずに、それに代えて設けられた単一型台帳を共通して用いるようにしてもよい。
【0078】
また、前述の説明では、ブロックチェーンプラットフォームとして、Hyperledger Fabric(登録商標)を例に挙げたが、本発明は、Hyperledger Fabric(登録商標)に限定されるものではなく、他のブロックチェーンプラットフォームに適用されてもよい。他のブロックチェーンプラットフォームの例として、CORDA(登録商標)やEthereum(登録商標)を例示できる。
【0079】
図8は、情報管理装置2の他の電気的構成を説明するための図である。情報管理装置2は、クラウド(たとえば、AWS(Amazon Web Services)等のパブリッククラウド)に構築された計算機システムである。具体例として、このクラウドは、たとえばKubernetes(登録商標)であり、マスタノード201、第1ワーカーノード202、第2ワーカーノード203および第3ワーカーノード204を備えている。情報管理装置2は、オーケストレーション(コンテナの管理・運用の自動化)を行うツール(たとえばKubernetes(登録商標))によって管理される。
【0080】
マスタノード201、第1ワーカーノード202、第2ワーカーノード203および第3ワーカーノード204は、互いに通信可能に接続されている。各ノード201,202,203,204は、いずれも1台の仮想サーバー205によって構成されている。各仮想サーバー205には、OSとしてLinux(登録商標)が用いられている。
【0081】
マスタノード201、第1ワーカーノード202、第2ワーカーノード203および第3ワーカーノード204は、互いに通信可能に接続されている。各ノード201,202,203,204は、いずれも1台の仮想サーバー205によって構成されている。
【0082】
仮想サーバー205の台数は、最低4台必要である。各仮想サーバー205は、OSとしてLinux(登録商標)が用いられている。各ノード201,202,203,204が、仮想サーバー205でなく、物理サーバーによって構成されていてもよい。物理サーバーによって構成される場合、複数の物理サーバーに分散配置されることが好ましい。
【0083】
マスタノード201は、予め定められた内容に従って、ワーカーノード202~204を自律的に管理する。Kubernetes(登録商標)のクラスタでは、コンテナがPod単位で管理される。
【0084】
各ワーカーノード202~204は、一つ以上のコンテナを含むPod206を動作させるためのノードである。各ワーカーノード202~204は、コンテナの実行環境を提供する。各ワーカーノード202~204は、マスタノード201からの指示に基づいて、Pod206の起動、Pod206の移動、Pod206の削除、Pod206のスケーリング等を実行する。
【0085】
第1ワーカーノード202は、ウェブ管理部30、セッション管理部31および管理系I/F32を備えている。第1ワーカーノード202において、ウェブ管理部30および管理系I/F32は同じPod206に設けられており、セッション管理部31はこれらとは異なるPod206に設けられている。
【0086】
第2ワーカーノード203は、入力I/F33、出力I/F34およびデータベース35を備えている。入力I/F33、出力I/F34およびデータベース35は、互いに異なるPod206に設けられている。第2ワーカーノード203は、分散ストレージ29を備えている。分散ストレージ29は、Pod206の外に設けられている。
【0087】
第3ワーカーノード204は、ピアノード24、オーダラーノード26および認証局25,44を備えている。ピアノード24、オーダラーノード26および認証局25は、共通のPod206に設けられている。
【0088】
Kubernetes(登録商標)を用いることにより、分散しているシステム資源を最適化稼働できる。また、
図8のようなシステム分散を採用することにより、復旧対応(DR対応)を良好に実現できる。
【0089】
その他、特許請求の範囲内において、種々の変更が可能である。
【符号の説明】
【0090】
1 :情報管理システム
5 :ブロックチェーンネットワーク
23 :分散型台帳
29 :分散ストレージ
33 :入力I/F(入力部)
34 :出力I/F(出力部)
50 :トランザクション
60 :ブロック
65 :トランザクションボックス
66 :ハッシュ値ボックス
67 :前ハッシュ値ボックス
70 :記憶ハッシュ値
100 :外部システム(外部)
【要約】
【課題】データの安全を確保しながら、スケーラビリティの向上を図ることができる、情報管理システムおよび情報管理方法を提供する。
【解決手段】情報管理システム1は、ブロック60を複数含む分散型台帳23を保持するブロックチェーンネットワーク5と、ブロックチェーンネットワーク5の外に設けられた分散ストレージ29と、生成したトランザクション50を分散ストレージ29に記憶させ、かつトランザクション50のハッシュ値を算出し、算出したハッシュ値を記憶ハッシュ値70としてトランザクションボックス65に格納する入力I/F33と、分散ストレージ29に記憶されているトランザクション50についてハッシュ値を算出し、算出したハッシュ値を、トランザクションボックス65に記憶されている記憶ハッシュ値70と照合する出力I/F34とを含む。
【選択図】
図6