(57)【要約】【課題】文書の変更履歴を容易に辿り正当性を検証できる文書管理システム、文書管理方法及び文書管理プログラムを提供すること。【解決手段】管理装置３０は、文書を作成又は更新したエンティティ１０から、当該文書を示すトランザクションを受信する受信部３１１と、トランザクションをブロックチェーンに登録する登録部３１２と、を備え、受信部３１１は、文書を新規に作成したエンティティ１０から、当該作成した文書の状態を要素として、当該要素のハッシュ値及び電子署名を加えた起点トランザクションを受信し、元の文書を新たな文書に更新したエンティティ１０から、新たな文書の状態、当該新たな文書に至るまでの元の文書からの更新操作、及び元の文書を示すトランザクションへのポインタを要素として、当該要素のハッシュ値及び電子署名を加えた更新トランザクションを受信する。【選択図】図１
2019121946.tif 000002
【特許請求の範囲】
【請求項１】
文書を作成又は更新したエンティティから、当該文書を示すトランザクションを受信する受信部と、
前記トランザクションをブロックチェーンに登録する登録部と、を備え、
前記受信部は、
文書を新規に作成した第１エンティティから、当該作成した文書の状態を要素として、当該要素のハッシュ値及び電子署名を加えた起点トランザクションを受信し、
元の文書を新たな文書に更新した第２エンティティから、前記新たな文書の状態、当該新たな文書に至るまでの前記元の文書からの更新操作、及び前記元の文書を示すトランザクションへのポインタを要素として、当該要素のハッシュ値及び電子署名を加えた更新トランザクションを受信する文書管理装置。
【請求項２】
前記登録部は、複数のトランザクションをリーフノードとする木構造のルートハッシュを、定期的に前記ブロックチェーンのブロックに格納する請求項１に記載の文書管理装置。
【請求項３】
前記第２エンティティが前記元の文書を削除した場合、前記新たな文書の状態を、削除を示す特定のデータとする請求項１又は請求項２に記載の文書管理装置。
【請求項４】
前記登録部は、前記起点トランザクション又は前記更新トランザクションを登録する際に、前記ブロックチェーンに登録されている既存のトランザクションのうち、削除に至った文書を除く文書の状態と類似していないことを確認する請求項３に記載の文書管理装置。
【請求項５】
文書を作成又は更新したエンティティから、当該文書を示すトランザクションを受信する受信ステップと、
前記トランザクションをブロックチェーンに登録する登録ステップと、をコンピュータが実行し、
前記受信ステップにおいて、
文書を新規に作成した第１エンティティから、当該作成した文書の状態を要素として、当該要素のハッシュ値及び電子署名を加えた起点トランザクションを受信し、
元の文書を新たな文書に更新した第２エンティティから、前記新たな文書の状態、当該新たな文書に至るまでの前記元の文書からの更新操作、及び前記元の文書を示すトランザクションへのポインタを要素として、当該要素のハッシュ値及び電子署名を加えた更新トランザクションを受信する文書管理方法。
【請求項６】
文書を作成又は更新したエンティティから、当該文書を示すトランザクションを受信する受信ステップと、
前記トランザクションをブロックチェーンに登録する登録ステップと、をコンピュータに実行させ、
前記受信ステップにおいて、
文書を新規に作成した第１エンティティから、当該作成した文書の状態を要素として、当該要素のハッシュ値及び電子署名を加えた起点トランザクションを受信させ、
元の文書を新たな文書に更新した第２エンティティから、前記新たな文書の状態、当該新たな文書に至るまでの前記元の文書からの更新操作、及び前記元の文書を示すトランザクションへのポインタを要素として、当該要素のハッシュ値及び電子署名を加えた更新トランザクションを受信させるための文書管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書の正当性を検証可能な文書管理システム、文書管理方法及び文書管理プログラムに関する。
【背景技術】
【０００２】
従来、ブロックチェーンを用いた文書の公証サービスが提供されている（例えば、非特許文献１及び２参照）。これらのサービスでは、文書のハッシュ値がブロックチェーンに登録され、検証のためにこのハッシュ値が検索される。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ｐｒｏｏｆ  ｏｆ  ｅｘｉｓｔｅｎｃｅ，インターネット＜ｈｔｔｐｓ：／／ｐｒｏｏｆｏｆｅｘｉｓｔｅｎｃｅ．ｃｏｍ／ａｂｏｕｔ＞
【非特許文献２】ｂｌｏｃｋｓｉｇｎ，インターネット＜ｈｔｔｐｓ：／／ｂｌｏｃｋｓｉｇｎ．ｃｏｍ／＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ブロックチェーンを用いることにより、文書単体に対する検証が可能となっても、この文書が他の文書を更新したものである場合に、元の文書に遡って検索し、作者又は所有者等を確認する等の詳細な検証は難しかった。
【０００５】
本発明は、文書の変更履歴を容易に辿り正当性を検証できる文書管理システム、文書管理方法及び文書管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る文書管理装置は、文書を作成又は更新したエンティティから、当該文書を示すトランザクションを受信する受信部と、前記トランザクションをブロックチェーンに登録する登録部と、を備え、前記受信部は、文書を新規に作成した第１エンティティから、当該作成した文書の状態を要素として、当該要素のハッシュ値及び電子署名を加えた起点トランザクションを受信し、元の文書を新たな文書に更新した第２エンティティから、前記新たな文書の状態、当該新たな文書に至るまでの前記元の文書からの更新操作、及び前記元の文書を示すトランザクションへのポインタを要素として、当該要素のハッシュ値及び電子署名を加えた更新トランザクションを受信する。
【０００７】
前記登録部は、複数のトランザクションをリーフノードとする木構造のルートハッシュを、定期的に前記ブロックチェーンのブロックに格納してもよい。
【０００８】
前記第２エンティティが前記元の文書を削除した場合、前記新たな文書の状態を、削除を示す特定のデータとしてもよい。
【０００９】
前記登録部は、前記起点トランザクション又は前記更新トランザクションを登録する際に、前記ブロックチェーンに登録されている既存のトランザクションのうち、削除に至った文書を除く文書の状態と類似していないことを確認してもよい。
【００１０】
本発明に係る文書管理方法は、文書を作成又は更新したエンティティから、当該文書を示すトランザクションを受信する受信ステップと、前記トランザクションをブロックチェーンに登録する登録ステップと、をコンピュータが実行し、前記受信ステップにおいて、文書を新規に作成した第１エンティティから、当該作成した文書の状態を要素として、当該要素のハッシュ値及び電子署名を加えた起点トランザクションを受信し、元の文書を新たな文書に更新した第２エンティティから、前記新たな文書の状態、当該新たな文書に至るまでの前記元の文書からの更新操作、及び前記元の文書を示すトランザクションへのポインタを要素として、当該要素のハッシュ値及び電子署名を加えた更新トランザクションを受信する。
【００１１】
本発明に係る文書管理プログラムは、文書を作成又は更新したエンティティから、当該文書を示すトランザクションを受信する受信ステップと、前記トランザクションをブロックチェーンに登録する登録ステップと、をコンピュータに実行させ、前記受信ステップにおいて、文書を新規に作成した第１エンティティから、当該作成した文書の状態を要素として、当該要素のハッシュ値及び電子署名を加えた起点トランザクションを受信させ、元の文書を新たな文書に更新した第２エンティティから、前記新たな文書の状態、当該新たな文書に至るまでの前記元の文書からの更新操作、及び前記元の文書を示すトランザクションへのポインタを要素として、当該要素のハッシュ値及び電子署名を加えた更新トランザクションを受信させるためのものである。
【発明の効果】
【００１２】
本発明によれば、文書の変更履歴を容易に辿り正当性を検証できる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係る文書管理システムの構成を示す概略図である。
【図２】実施形態に係るトランザクションのデータ構成を示す概略図である。
【図３】実施形態に係るブロックチェーンにおけるブロックの構成、及びブロックに含まれるトランザクション間の関係を示す図である。
【図４】実施形態に係る文書作成時における処理を示すシーケンス図である。
【図５】実施形態に係る文書更新時における処理を示すシーケンス図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態の一例について説明する。
図１は、本実施形態に係る文書管理システム１の構成を示す概略図である。
文書管理システム１は、文書の作成及び更新を行うエンティティ１０（情報処理装置）が、各バージョンの文書の状態を紐付けてブロックチェーン２０に登録することにより、変更履歴を含めた文書の状態を検証可能に保存する。
【００１５】
ブロックチェーン２０の管理装置３０（文書管理装置）は、制御部３１及び記憶部３２の他、各種の入出力インタフェースを備えた情報処理装置（コンピュータ）である。
制御部３１は、記憶部３２に格納されたソフトウェアを読み出し実行することにより、受信部３１１及び登録部３１２として機能する。
【００１６】
受信部３１１は、文書を新規に作成、又は既存の文書を更新したエンティティ１０から、この文書の情報を示すトランザクションを受信する。
受信部３１１は、文書を新規に作成したエンティティ１０から、作成した文書の状態を要素として、この要素のハッシュ値及び電子署名を加えた起点トランザクションを受信する。
【００１７】
また、受信部３１１は、既存の文書を更新したエンティティ１０から、この文書の状態、更新された文書に至るまでの既存の文書からの更新操作、及び既存の文書の情報を示すトランザクションへのポインタを要素として、これらの要素のハッシュ値及び電子署名を加えた更新トランザクションを受信する。
エンティティ１０が既存の文書を削除した場合、受信部３１１は、文書の状態を、削除を示す特定のデータとした更新トランザクションを受信する。
【００１８】
図２は、本実施形態に係るトランザクションのデータ構成を示す概略図である。
新規作成された文書を示す起点トランザクションＡは、文書の状態を要素として含み、ハッシュ値と作成者又は所有者等による電子署名が付加される。
【００１９】
また、更新された文書を示す更新トランザクションＢは、文書の状態に加えて、この状態に至ることになった操作情報、及び元の文書を示す起点トランザクション又は更新トランザクションへのポインタを要素として含む。更新トランザクションＢには、さらに、これらの要素のハッシュ値と作成者又は所有者等による電子署名が付加される。
【００２０】
ここで、文書の状態とは、文書全体、又は抽出された特徴集合であってもよいし、文書のハッシュ値であってもよい。また、ハッシュ関数は、鍵付きであってよい。
さらに、文書の状態は、実際の文書を格納したストレージを参照するデータであってもよい。
【００２１】
トランザクションの要素であるポインタは、複数あってもよい。また、１つのトランザクションは、複数のポインタにより参照されてもよい。すなわち、ポインタによって形成されるトランザクション・チェーンは、分岐されてもよい。
例えば、１つの文書から複数の文書が派生した場合、１つのトランザクションを元にして複数の更新トランザクションが生成される。また、複数の文書が１つに統合された場合、複数のトランザクションを元にして１つの更新トランザクションが生成される。
【００２２】
登録部３１２は、トランザクションをブロックチェーン２０に登録する。
このとき、登録部３１２は、複数のトランザクションをリーフノードとする木構造（例えば、マークルツリー）のルートハッシュを、定期的にブロックチェーン２０のブロックに格納する。
【００２３】
登録部３１２は、トランザクションを登録する際に、ブロックチェーン２０に登録されている既存のトランザクションのうち、削除に至った文書を除く文書の状態と類似していないことを確認する。
具体的には、登録部３１２は、文書の状態が削除を示しているトランザクションからポインタによって紐付けられている過去のトランザクションの文書と類似することは許可し、他の文書と類似することを検出した場合、ブロックチェーン２０へのトランザクションの登録を許可しない。
【００２４】
図３は、本実施形態に係るブロックチェーン２０におけるブロックの構成、及びブロックに含まれるトランザクション間の関係を示す図である。
ブロックチェーン２０の各ブロックには、マークルツリーのルートハッシュが定期的に閉じられていく。ツリーのリーフノードには、各文書のトランザクションがブロックチェーン２０のコンセンサスプロトコルによって登録される。
【００２５】
符号Ａで示した網掛けのトランザクションは、新規に作成された文書を示す起点トランザクションである。また、符号Ｂで示したトランザクションは、他の１つ以上の文書を元にして作成された文書を示す更新トランザクションである。
トランザクション間のポインタは、破線の矢印で示される。ポインタは、ブロック内のトランザクションを参照するものの他、ブロックを跨いで参照するものが存在する。
【００２６】
図４は、本実施形態に係る文書作成時における文書管理システム１の処理を示すシーケンス図である。
【００２７】
ステップＳ１（初期化ステップ）において、エンティティ１０は、自身の秘密鍵及び公開鍵のペアを生成する。なお、エンティティ１０は、文書作成の都度、新たに鍵ペアが生成してよいが、生成済みの鍵ペアが存在する場合、これらを再利用してもよい。
【００２８】
ステップＳ２（生成ステップ）において、エンティティ１０は、文書を新規に生成した後、起点トランザクションのハッシュ値を生成し、電子署名を付与する。
【００２９】
ステップＳ３（プレ公開ステップ）において、エンティティ１０は、起点トランザクションをブロックチェーン２０の管理装置３０へ送信する。
【００３０】
ステップＳ４（検証ステップ）において、管理装置３０は、受信した起点トランザクションを検証する。具体的には、管理装置３０は、既存のトランザクションとの類似性のチェックを行い、同一と判断された文書に対する起点トランザクションの登録を拒否する。
【００３１】
ステップＳ５（公開ステップ）において、管理装置３０は、検証済みの起点トランザクションを、ブロックチェーン２０のブロックを構成するマークルツリーのリーフノードに追加登録する。
【００３２】
図５は、本実施形態に係る文書更新時における文書管理システム１の処理を示すシーケンス図である。
【００３３】
ステップＳ１１（初期化ステップ）において、エンティティ１０は、自身の秘密鍵及び公開鍵のペアを生成する。なお、エンティティ１０は、新規作成の場合と同様に、都度、新たに鍵ペアが生成してよいが、生成済みの鍵ペアが存在する場合、これらを再利用してもよい。
【００３４】
ステップＳ１２（生成ステップ）において、エンティティ１０は、文書を更新して別の文書を生成又は削除し、元の文書のトランザクションへのポインタ及び操作情報を記述した後、更新トランザクションのハッシュ値を生成し、電子署名を付与する。
【００３５】
ステップＳ１３（プレ公開ステップ）において、エンティティ１０は、更新トランザクションをブロックチェーン２０の管理装置３０へ送信する。
【００３６】
ステップＳ１４（検証ステップ）において、管理装置３０は、受信した更新トランザクションを検証する。具体的には、管理装置３０は、ポインタの有効性と共に、既存のトランザクションとの類似性のチェックを行い、同一と判断された文書に対する更新トランザクションの登録を拒否する。
【００３７】
ステップＳ１５（公開ステップ）において、管理装置３０は、検証済みの更新トランザクションを、ブロックチェーン２０のブロックを構成するマークルツリーのリーフノードに追加登録する。
【００３８】
本実施形態によれば、文書管理システム１は、エンティティ１０が文書を更新した際に、この文書の状態を示す情報に加えて、更新元の文書からの更新操作の情報と、更新元の文書へのポインタを要素として含む更新トランザクションを生成し、ブロックチェーン２０に登録する。
これにより、文書管理システム１は、ブロックチェーン２０により正当性の検証を可能にすると共に、ポインタを用いたトランザクション・チェーンを構成することで、文書の変更履歴を容易に辿ることができる。
この結果、文書管理システム１は、オリジナルの文書を含む過去バージョンの文書を高速かつ容易に探索でき、エンティティ１０が所有する秘密鍵及び公開鍵のペアにより、第三者認証機関に頼ることなく、このエンティティ１０を識別し認証できる。
【００３９】
また、文書管理システム１は、ブロックチェーン２０のブロックに、複数のトランザクションからなるマークルツリーを適用することにより、多数の文書の履歴からなるトランザクションを効率的に管理できる。
【００４０】
さらに、文書管理システム１は、文書の削除操作に関しても、更新操作と同様にトランザクションとして登録し、削除に至った文書の更新履歴を確実に追跡できる。
また、文書管理システム１は、トランザクションをブロックチェーンに登録する際には、既存の文書と類似していないこと、及びポインタが有効であることを検証することで、正当な文書をより確実に登録し、信頼性を向上できる。
【００４１】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【００４２】
文書管理システム１による文書管理方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置（コンピュータ）にインストールされる。また、これらのプログラムは、ＣＤ−ＲＯＭのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したＷｅｂサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【００４３】
１  文書管理システム
１０  エンティティ
２０  ブロックチェーン
３０  管理装置（文書管理装置）
３１  制御部
３２  記憶部
３１１  受信部
３１２  登録部
【図１】
2019121946.tif 000003
【図２】
2019121946.tif 000004
【図３】
2019121946.tif 000005
【図４】
2019121946.tif 000006
【図５】
2019121946.tif 000007