(57)【要約】【課題】リソースを有効活用しつつ、より適切にデータを検証することを可能にする。【解決手段】所定のデータから取得された第１のデータおよびＰ２Ｐデータベースから取得された第２のデータを用いて前記所定のデータの検証を行う検証部を備える、情報処理装置。【選択図】図６
2018211834.tif 000002
【特許請求の範囲】
【請求項１】
所定のデータから取得された第１のデータおよびＰ２Ｐデータベースから取得された第２のデータを用いて前記所定のデータの検証を行う検証部を備える、
情報処理装置。
【請求項２】
前記検証部は、前記第１のデータおよび前記第２のデータを用いて所定のデータ処理を行い、前記データ処理の結果が所定の条件を満たすような前記第１のデータを探索する、
請求項１に記載の情報処理装置。
【請求項３】
前記検証部は、前記所定のデータに対して指定された範囲の中で前記第１のデータを探索する、
請求項２に記載の情報処理装置。
【請求項４】
前記範囲は、前記Ｐ２Ｐデータベースから取得される、
請求項３に記載の情報処理装置。
【請求項５】
前記範囲を指定する指定部を更に備える、
請求項３に記載の情報処理装置。
【請求項６】
前記検証部は、前記データ処理の結果が前記条件を満たす場合、前記第１のデータおよび前記第２のデータを用いて前記Ｐ２Ｐデータベースの更新を行う、
請求項２に記載の情報処理装置。
【請求項７】
前記検証部は、他の情報処理装置による前記データ処理の結果が前記条件を満たすことを検証する、
請求項６に記載の情報処理装置。
【請求項８】
前記第１のデータは、前記所定のデータにおける開始位置の情報およびデータ長の情報によって表される、
請求項１に記載の情報処理装置。
【請求項９】
前記Ｐ２Ｐデータベースはブロックチェーンである、
請求項１に記載の情報処理装置。
【請求項１０】
前記データ処理はハッシュ値を算出する処理である、
請求項２に記載の情報処理装置。
【請求項１１】
所定のデータから取得された第１のデータおよびＰ２Ｐデータベースから取得された第２のデータを用いて前記所定のデータの検証を行うことを有する、
情報処理方法。
【請求項１２】
Ｐ２Ｐネットワークに対して、所定のデータについての検証要求を行う検証要求部と、
前記Ｐ２Ｐネットワークから取得された情報に基づいて、前記所定のデータの検証状況を確認する確認部と、を備える、
情報処理装置。
【請求項１３】
前記検証要求部は、前記Ｐ２Ｐネットワークに対して、さらに、前記所定のデータについての検証条件を提供する、
請求項１２に記載の情報処理装置。
【請求項１４】
Ｐ２Ｐネットワークに対して、所定のデータについての検証要求を行うことと、
前記Ｐ２Ｐネットワークから取得された情報に基づいて、前記所定のデータの検証状況を確認することと、を有する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
一般的に、あるユーザ（以降、便宜的に「預け人」と呼称する）が何らかの重要なデータを他人（以降、便宜的に「預かり人」と呼称する）に預ける場合には、信頼できる人にデータを預ける。仮に、預け人が信頼できない人にデータを預ける場合には、預け人は、預かり人が当該データを適切に預かっていること（例えば、預かり人がデータの改ざん等を行っていないこと、または、データを消去していないこと等）を検証することが求められる。【０００３】
また、近年、関連技術として、ストレージサービス等のデータを保管するサービスまたは技術等が盛んに開発されている。例えば、以下の特許文献１には、ストレージサーバに預けられたデータの被改ざん性等を証明する保証データを生成し、預けられたデータと関連付ける技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２８０９７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載の技術によっては、預けられるデータが適切に検証されない場合があった。例えば、内部者（ストレージサーバの管理者等）が保証データ自体の消去や改ざんが可能であるため、仮に内部者が預けられたデータの消去や改ざんを行った場合、預け人が預けたデータの存在確認や検証を完了するには、預けた全データを再度読み出す必要があった。【０００６】
他方、ピアツーピアデータベースの一例であるブロックチェーンが用いられるシステム（Ｂｉｔｃｏｉｎ等）においては、匿名取引処理に多くのリソースが消費される。例えば、Ｂｉｔｃｏｉｎにおいて、いわゆる「マイニング」に参加する複数のノードは、マイニングに成功するまでハッシュ値を算出する処理を継続することになり、各ノードのリソースが有効に活用されているとは言えない。【０００７】
そこで、本開示は、上記問題に鑑みてなされたものであり、本開示の目的とするところは、リソースを有効活用しつつ、より適切にデータを検証することが可能な、新規かつ改良された情報処理装置および情報処理方法を提供することにある。
【課題を解決するための手段】
【０００８】
本開示によれば、所定のデータから取得された第１のデータおよびＰ２Ｐデータベースから取得された第２のデータを用いて前記所定のデータの検証を行う検証部を備える、情報処理装置が提供される。【０００９】
また、本開示によれば、所定のデータから取得された第１のデータおよびＰ２Ｐデータベースから取得された第２のデータを用いて前記所定のデータの検証を行うことを有する、情報処理方法が提供される。【００１０】
また、本開示によれば、Ｐ２Ｐネットワークに対して、所定のデータについての検証要求を行う検証要求部と、前記Ｐ２Ｐネットワークから取得された情報に基づいて、前記所定のデータの検証状況を確認する確認部と、を備える、情報処理装置が提供される。【００１１】
また、本開示によれば、Ｐ２Ｐネットワークに対して、所定のデータについての検証要求を行うことと、前記Ｐ２Ｐネットワークから取得された情報に基づいて、前記所定のデータの検証状況を確認することと、を有する、情報処理方法が提供される。
【発明の効果】
【００１２】
以上説明したように本開示によれば、リソースを有効活用しつつ、より適切にデータを検証することが可能となる。【００１３】
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１４】
【図１】一般的なブロックチェーンデータの概要を説明する説明図である。
【図２】本実施形態に係るデータ管理システムの構成を示す図である。
【図３】本実施形態に係るブロックチェーンデータの概要を説明する説明図である。
【図４】本実施形態に係る「ファイル検証履歴」が含む情報の一例を示す図である。
【図５】本実施形態に係る「仮想通貨取引履歴」が含む情報の一例を示す図である。
【図６】本実施形態に係る預け元ノードおよび預け先ノードの機能構成を示す図である。
【図７】本実施形態に係る預け先ノードによるチャレンジに関する動作を示すフローチャートである。
【図８】本実施形態に係る預け元ノードまたは預け先ノードのハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１６】
なお、説明は以下の順序で行うものとする。
１．背景
２．本実施形態に係るデータ管理システムの概要
３．各装置の機能構成
４．預け先ノードの動作
５．変形例
６．各装置のハードウェア構成
７．むすび
【００１７】
＜１．背景＞
まず、本開示の背景について説明する。
【００１８】
上記のとおり、一般的に、預け人が何らかの重要なデータを他人に預ける場合には、信頼できる人にデータを預ける。仮に、預け人が信頼できない人にデータを預ける場合には、預け人は、預かり人が適切にデータを預かっていること（例えば、預かり人がデータの改ざん等を行っていないこと、または、データを消去していないこと等）を検証することが求められる。
【００１９】
ここで、預かり人が適切にデータを預かっていることを検証するためには、相当のコストがかかる。例えば、改ざんを検出するアプリケーションや暗号化方式を開発することによって預かり人が適切にデータを預かっていることを検証すること等が考えられる。しかし、当該アプリケーションや暗号化方式を独自に開発することは容易ではなく相当のコストを要する。
【００２０】
また、特許文献１に記載の技術においては、例えば、内部者（ストレージサーバの管理者等）が保証データ自体を改ざんすることが可能であるため、仮に内部者が預けられたデータおよび保証データを改ざんした場合、預け人は当該改ざんを検出できない。
【００２１】
そこで、本開示の開示者は、上記事情に鑑みて本開示に係る技術を開発するに至った。以降では、本開示の一実施形態に係るデータ管理システムの概要について説明する。
【００２２】
＜２．本実施形態に係るデータ管理システムの概要＞
本開示に係るデータ管理システムは、預け人が所望のデータを任意の期間にわたって預けることができるシステムである。本システムを利用可能な預け人は特に限定されない。例えば、企業等の各種組織や個人が本システムを利用することができる。また、本システムに預けられるデータも特に限定されない。例えば、各種事業に関するデータ（企業の営業秘密が含まれるデータ等）、個人的なデータ（写真、動画、音楽、映画、テレビ番組、ゲーム等）などが本システムに預けられてもよい。また、本システムに預けられるデータは任意の暗号化方式により暗号化されていてもよい。
【００２３】
また、本実施形態に係るデータ管理システムは、ピアツーピアネットワークを介して提供される分散型のピアツーピアデータベースを利用する。なお、ピアツーピアネットワークは、ピアツーピア型分散ファイルシステムとよばれる場合もある。以下では、ピアツーピアネットワークを「Ｐ２Ｐネットワーク」、ピアツーピアデータベースを「Ｐ２Ｐデータベース」と示す場合がある。本明細書では、Ｐ２Ｐデータベースの例として、Ｐ２Ｐネットワークを介して提供されるブロックチェーンデータが利用される場合を一例として説明する。
【００２４】
（２−１．一般的なブロックチェーンシステムの概要）
本実施形態に係るデータ管理システムの説明をする前に、まず、図１を参照して、一般的なブロックチェーンシステムの概要について説明する。図１は、一般的なブロックチェーンデータの概要を説明する説明図である。図１に示すように、ブロックチェーンデータは、複数のブロックがあたかも鎖のように連なっているデータである。そして、それぞれのブロックには、１または２種類以上の情報が、トランザクションとして格納され得る。ブロックチェーンシステムを利用するサービスとしてはＢｉｔｃｏｉｎ等が挙げられる。Ｂｉｔｃｏｉｎにおいては、仮想通貨のやり取りに関する情報がトランザクションとして格納され得る。
【００２５】
図１に示すように、ブロックチェーンデータには、例えば、「直前ブロックのハッシュ値」と「ナンス」とよばれる特別な値が含まれる。
【００２６】
「直前ブロックのハッシュ値」は、直前のブロックと当該ブロックとを連結させる情報であり、直前のブロックに含まれるデータ全体（または直前のブロックに含まれるデータの一部）のハッシュ値等である。また、「直前ブロックのハッシュ値」は、ブロックチェーンの各ブロックに含まれるデータの改ざん等の有無を検出する役割も果たす。より具体的には、仮に、ブロックチェーンのいずれかのブロックに含まれるトランザクションのデータが改ざんされた場合には、当該ブロックに含まれるデータ全体（または当該ブロックに含まれるデータの一部）のハッシュ値が変わるため、当該ブロックの後に連なるブロックに含まれる「直前ブロックのハッシュ値」に齟齬が発生するため、データの改ざんの有無が検出され得る。
【００２７】
また、「ナンス」は、新たなブロックを追加するノードを、Ｐ２Ｐネットワークに接続しているノードの中から決定する処理に用いられる情報である。より具体的には、新たなブロックがブロックチェーンに追加される場合、Ｐ２Ｐネットワークに接続しているノードは、例えば、追加しようとするブロックにおける「ナンス」を様々に変化させながらブロックに含まれるデータ全体（またはブロックに含まれるデータの一部）のハッシュ値を出力する。そして、最も早く所定の条件を満たすハッシュ値を生成できた（換言すると、所定の条件を満たすハッシュ値を生成するナンスを最も早く発見できた）ノードが新たなブロックをブロックチェーンに追加することができる。
【００２８】
当該処理は、例えば、Ｂｉｔｃｏｉｎではマイニング（採掘）と呼称され、算出されたハッシュ値が所定の値よりも小さくなるナンスを最も早く発見することができたノードが新たなブロックをブロックチェーンに追加することができる。上記の処理において、「所定の条件」が適宜変更されることによって、上記の処理に要する時間が調節され得る。
【００２９】
このように、新たなブロックをブロックチェーンに追加することができるノードが予め決まっておらず、特定のノードに限定されないことによって、ブロックチェーンを利用するサービスは、特定のノードによる不正を防ぎ、サービスの公平性を担保することができる。なお、「ナンス」としては、例えば、文字列、数字列、あるいは、これらの組み合わせを示すデータが挙げられる。
【００３０】
また、ブロックチェーンの各ブロックに含まれるトランザクションにはノード（またはユーザ）が保持する秘密鍵によって電子署名が付される。トランザクションに電子署名が付されることによって、いわゆる「なりすまし」やデータ改ざん等が検出され得る。
【００３１】
なお、ブロックチェーンの各ブロックに含まれるトランザクションデータは、適宜暗号化されてもよい。より具体的には、Ｂｉｔｃｏｉｎにおける各ブロックのトランザクションは暗号化されておらず、秘密鍵を用いた電子署名が付与されており、各トランザクションは公開されている。それに対して、例えば、Ｃｏｌｏｒｅｄ  Ｃｏｉｎのように、Ｂｉｔｃｏｉｎのブロックチェーン上にデジタルアセットを保持させるような技術も存在する。その場合には、対応する暗号鍵を所持している特定の装置（暗号化されているデータを復号することができる装置）のみが、ブロックチェーン上のデータの内容を把握することができるように設計することも可能である。
【００３２】
また、ブロックチェーンシステムは、例えばサイドチェイン技術を利用することによって、Ｂｉｔｃｏｉｎのブロックチェーンデータなどの、既存の仮想通貨のデータのやり取りに用いられるブロックチェーンデータに、仮想通貨とは異なる他のデータを含めることが可能である。
【００３３】
（２−２．本実施形態に係るデータ管理システムの構成）
上記では、一般的なブロックチェーンシステムの概要について説明した。続いて、図２を参照して、本実施形態に係るデータ管理システムの構成について説明する。図２は、本実施形態に係るデータ管理システムの構成を示す図である。
【００３４】
図２に示すように、本実施形態に係るデータ管理システムは、預けられる対象となるデータ（以降、便宜的に「対象データ１０」と呼称する）を預けるノード（以降、便宜的に「預け元ノード１００」と呼称する）と、対象データ１０を預かるノード（以降、便宜的に「預け先ノード２００」と呼称する）と、を含む。そして、預け元ノード１００および預け先ノード２００は、Ｐ２Ｐネットワーク３００に接続している。図２には、預け元ノード１００が１台のみ表示され、預け先ノード２００は３台のみ表示されているが、図２はあくまで一例であるため、預け元ノード１００の台数および預け先ノード２００の台数は任意である。また、図２には預け元ノード１００と預け先ノード２００とが区別して表示されているが、預け元ノード１００および預け先ノード２００は同一の情報処理装置によって実現され得る。換言すると、預け元ノード１００として機能する情報処理装置は、預け先ノード２００としても機能してもよい。
【００３５】
（預け元ノード１００）
預け元ノード１００は、預け先ノード２００に対して対象データ１０を預け、対象データ１０の検証を要求する情報処理装置である。ここで、検証とは、対象データ１０が適切に保管されていることを確認する処理を指す。より具体的には、検証とは、対象データ１０が消去されていないこと、または、対象データ１０に改ざん等が行われていないことを確認する処理を指す。本実施形態に係る検証の詳細については後述する。
【００３６】
預け元ノード１００は、対象データ１０の保管先の募集に関する情報を複数の預け先ノード２００に対して公開することで対象データ１０の保管先を募集する。ここで、対象データ１０の保管先の募集方法は任意である。例えば、預け元ノード１００は、対象データ１０の保管先の募集に関する情報をインターネット上の所定のウェブサイトにアップロードすることで複数の預け先ノード２００に対して公開してもよい。
【００３７】
そして、預け元ノード１００は、対象データ１０の保管に同意した預け先ノード２００に対象データ１０を提供する。ここで、対象データ１０の提供方法は任意である。例えば、預け元ノード１００は、Ｐ２Ｐネットワーク３００を介して対象データ１０を預け先ノード２００に提供してもよいし、インターネットを介して対象データ１０を預け先ノード２００に提供してもよい。
【００３８】
また、預け元ノード１００は、対象データ１０の保管もしくは検証に伴う各種情報を預け先ノード２００に通知する。ここで、対象データ１０の保管もしくは検証に伴う各種情報とは、任意の情報でよい。例えば、預け元ノード１００は、対象データ１０のサイズ、保管もしくは検証の期間、条件、方法、対価、対価の授受方法、対価の源泉となる予算等に関する情報を預け先ノード２００に通知する。また、これらの情報の通知方法は任意である。例えば、預け元ノード１００は、これらの情報をインターネット上の所定のウェブサイトに公開してもよい。
【００３９】
また、預け元ノード１００は、対象データ１０を複数の預け先ノード２００に預けた後に、当該対象データ１０の保管状況もしくは検証状況を確認する（以降、便宜的に、「保管状況もしくは検証状況」を合わせて「検証状況」と呼称する場合がある）。ここで、対象データ１０の検証状況の確認方法は任意である。例えば、預け元ノード１００は、ブロックチェーンデータをＰ２Ｐネットワーク３００から取得し、ブロックチェーンデータに基づいて対象データ１０の検証状況を確認してもよいし、対象データの検証状況を示す所定の情報をＰ２Ｐネットワーク３００から取得し、当該情報に基づいて対象データ１０の検証状況を確認してもよい。
【００４０】
預け元ノード１００の処理の詳細については後述する。
【００４１】
（預け先ノード２００）
預け先ノード２００は、預け元ノード１００から対象データ１０を預かり、対象データ１０の検証を行う情報処理装置である。
【００４２】
例えば、預け先ノード２００は、対象データ１０の保管に同意する旨の情報を預け元ノード１００に対して通知する。ここで、対象データ１０の保管に同意する旨の情報の通知方法は任意である。例えば、預け先ノード２００は、預け元ノード１００が対象データ１０の保管先の募集に関する情報を公開しているインターネット上の所定のウェブサイトを介して対象データ１０の保管に同意する旨の情報を預け元ノード１００に通知してもよい。
【００４３】
そして、預け先ノード２００は、対象データ１０を預け元ノード１００から取得する。ここで、対象データ１０の取得方法は任意である。例えば、預け先ノード２００は、Ｐ２Ｐネットワーク３００を介して対象データ１０を預け元ノード１００から取得してもよいし、インターネットを介して対象データ１０を預け元ノード１００から取得してもよい。
【００４４】
また、預け先ノード２００は、ブロックチェーンデータをＰ２Ｐネットワーク３００から取得し、当該ブロックチェーンデータを用いて対象データ１０の検証を行う。検証の詳細については後述する。
【００４５】
（２−３．本実施形態に係るデータ管理システムの機能概要）
上記では、本実施形態に係るデータ管理システムの構成について説明した。続いて、本実施形態に係るデータ管理システムの機能概要について説明する。
【００４６】
上記のとおり、一般的なブロックチェーンデータの更新の際には「ナンス」という情報が用いられていた。一方、本実施形態に係るデータ管理システムにおいては、預け先ノード２００は、対象データ１０から取得したデータ（以降、便宜的に「第１のデータ」と呼称する場合もある）を「ナンス」の代りに用いる（第１のデータが「ナンス」として用いられることと等価）。より具体的には、ある預け元ノード１００がＰ２Ｐネットワークに参加している複数の預け先ノード２００に対して対象データ１０を預け、対象データ１０を預かった預け先ノード２００は、例えば、対象データ１０に含まれるビット列を「ナンス」の代りに用いて、追加しようとするブロックに含まれるデータ全体（または追加しようとするブロックに含まれるデータの一部）のハッシュ値を算出する。
【００４７】
そして、預け先ノード２００は、算出したハッシュ値が所定の条件を満たすまで第１のデータの変更とハッシュ値の算出を続ける（以降、便宜的に当該処理を「チャレンジ」と呼称する場合がある）。そして、最も早く所定の条件を満たすハッシュ値を算出できた（換言すると、最も早くチャレンジに成功した）預け先ノード２００が新たなブロックをブロックチェーンに追加することができる。なお、ハッシュ値の算出処理が行われるのはあくまで一例であり、預け先ノード２００はハッシュ値の算出処理以外に任意のデータ処理を行ってもよい。
【００４８】
Ｐ２Ｐネットワークの各構成（各装置、各装置のプログラム、各装置の通信手段等）は、上記の処理が自律的に継続して行われるように設計されており、これによって、本実施形態に係るデータ管理システムは、対象データ１０が改ざんされることを防止することができる。より具体的に説明すると、仮に、対象データ１０の改ざん等が行われた場合、ブロックチェーンに含まれるいずれかのブロックのデータ全体（またはブロックに含まれるデータの一部）のハッシュ値が所定の条件を満たさなくなるため、対象データ１０の改ざん等が検出され得る。このように、本実施形態に係るデータ管理システムは、対象データ１０から取得した第１のデータを「ナンス」の代りに用いることで、より適切に対象データ１０の検証を実現することができる。
【００４９】
より具体的には、仮に、対象データ１０が所定のストレージサービスに預けられた場合、悪意をもった外部者が当該ストレージサービスを攻撃したり、悪意をもった当該ストレージサービスの管理者が所定の操作を行ったりすることによって対象データ１０が改ざんされたり消去されたりする可能性がある。特に、関連業界において大きな影響力を有する企業や政府等が、対象データ１０の改ざんや消去を行った場合には、その事実や証拠が隠滅されかねない。一方で、本実施形態に係るデータ管理システムは、複数かつ匿名の預かり人に対して対象データ１０を預けることができるため、悪意をもった外部者からの攻撃等によって対象データ１０の改ざんや消去が行われる可能性を低減させることができる。
【００５０】
また、本実施形態に係るデータ管理システムは、対象データ１０をブロックチェーンデータとは別個のデータとして扱うため、例えば、対象データ１０がブロックチェーンデータ内に挿入されたり、対象データ１０がブロックチェーンデータに付加されたりする方式に比べて、ブロックチェーンデータのサイズを低減させることができる。
【００５１】
また、本実施形態に係るデータ管理システムは、各預け先ノード２００のリソースを有効活用することができる。より具体的に説明すると、例えば、Ｂｉｔｃｏｉｎにおいてマイニングに参加する複数のノードは、マイニングに成功するまで「ナンス」を変更し、ブロックに含まれるデータ全体（またはブロックに含まれるデータの一部）のハッシュ値を算出する処理を継続する。換言すると、マイニングに成功するまでに行われたハッシュ値を算出する処理によってノードのリソースが有効に活用されているとは言えない。一方、本実施形態に係るデータ管理システムは、チャレンジにおいてハッシュ値を算出する処理を利用することで対象データ１０の検証を行うことができるため、預け先ノード２００のリソースを有効に活用していると言える。また、本開示は、他のブロックチェーンサービスに適用されてもよい。
【００５２】
また、本実施形態に係る預け人は、対象データ１０の保管もしくは検証の対価の源泉となる予算を設定する。ここで、予算の設定方法または報酬の授受方法は任意である。例えば、対象データ１０の預け人が所定の方法によって予算を指定し、予算がＰ２Ｐネットワーク３００上にプールされることで、チャレンジに成功した預け先ノード２００が当該プールから報酬を取得することができてもよい。また、預け元ノード１００が任意のタイミングで、チャレンジに成功した預け先ノード２００を確認し、これらの預け先ノード２００に対してＰ２Ｐネットワーク３００を介して個別に送金を行うことで報酬を支払ってもよい。また、預け人が対象データ１０を回収する時点において、各預け先ノード２００の貢献度（例えば、各預け先ノード２００がブロックを追加した回数）に基づいて予算から報酬が分配されてもよい。これらの方法によって、対象データ１０の預かり人は、対象データ１０の保管もしくは検証についての正当な対価を一定の確率で受け取ることができる。
【００５３】
また、本実施形態に係るデータ管理システムは、対象データ１０の検証状況を確認し、確認結果に関する情報を預け人に提示することができる。ここで、対象データ１０の検証状況の確認方法、または、確認結果に関する情報の提示方法は任意である。例えば、預け元ノード１００は、任意のタイミングでＰ２Ｐネットワーク３００からブロックチェーンデータを取得し、ブロックチェーンデータに基づいてブロックの追加状況（例えば、最後にブロックが追加された日時等）を確認することで対象データ１０の検証状況を確認してもよい。また、例えば、対象データ１０の保管および検証を行っている預け先ノード２００の台数、ブロックの追加状況、予算の残高等に関する情報がインターネット上の所定のウェブサイトに集計されており、預け元ノード１００は当該ウェブサイトにアクセスすることによって対象データ１０の検証状況を確認してもよい。
【００５４】
また、対象データ１０の預け人は、対象データ１０の検証状況に基づいて予算を随時変更してもよい。例えば、対象データ１０の保管および検証を行っている預け先ノード２００の台数が減少してきた場合、預け人は予算を増やすことで対象データ１０の保管および検証を行う預け先ノード２００の増加を図ってもよい。また、所定の期間以上にわたってブロックの追加が行われていない場合、預け人は予算を増やすことで各預け先ノード２００に検証（チャレンジ）を行わせてもよい。
【００５５】
（２−４．本実施形態に係るブロックチェーンデータの概要）
続いて、図３を参照して、本実施形態に係るブロックチェーンデータの概要について説明する。図３は、本実施形態に係るブロックチェーンデータの概要を説明する説明図である。図３に示すように、本実施形態に係るブロックチェーンデータの各ブロックは、「直前ブロックのハッシュ値」と、「ファイル検証履歴」と、「仮想通貨取引履歴」と、を含む。以降では、各データについて詳細に説明していく。
【００５６】
（２−４−１．ファイル検証履歴）
まず、「ファイル検証履歴」について説明する。本実施形態に係る「ファイル検証履歴」は、対象データ１０から取得された第１のデータに関する情報を含む。ここで、図４を参照して、本実施形態に係る「ファイル検証履歴」が含む情報について説明する。図４は、本実施形態に係る「ファイル検証履歴」が含む情報の一例を示す図である。
【００５７】
図４に示すように、本実施形態に係る「ファイル検証履歴」は、「ＦｉｌｅＩＤ」と、「ＦｉｌｅＰａｒｔＮｕｍ」と、「ＦｉｌｅＤａｔａ」と、を含む。なお、図４に示す情報はあくまで一例であり、本実施形態に係る「ファイル検証履歴」が含む情報は適宜変更され得る。
【００５８】
「ＦｉｌｅＩＤ」は、対象データ１０を識別する情報である。例えば、「ＦｉｌｅＩＤ」は、対象データ１０全体のハッシュ値であってもよい（図４では、一例として｛７ｆｅｅ２０・・・・０ａ｝と示している）。仮に、預け先ノード２００が複数の対象データ１０を預かっている場合に、預け先ノード２００は、「ＦｉｌｅＩＤ」に設定されている情報に基づいていずれの対象データ１０に関する情報であるかを識別することができる。なお、これはあくまで一例であり、「ＦｉｌｅＩＤ」に設定される対象データ１０の識別情報は適宜変更され得る。
【００５９】
「ＦｉｌｅＰａｒｔＮｕｍ」は、預け先ノード２００がチャレンジを行うにあたり、対象データ１０におけるチャレンジの対象範囲を示す情報である。より具体的に説明すると、チャレンジに参加する預け先ノード２００は、対象データ１０全体ではなく、「ＦｉｌｅＰａｒｔＮｕｍ」によって指定される対象データ１０の一部の範囲に含まれるビット列を第１のデータとして「ＦｉｌｅＤａｔａ」に設定し、チャレンジを行う。
【００６０】
これによって本実施形態に係るデータ管理システムは、「ＦｉｌｅＰａｒｔＮｕｍ」の設定を変更することによってチャレンジの難易度を調整することができ、チャレンジの成功までに要する時間を調整することができる。例えば、本実施形態に係るデータ管理システムは、チャレンジの成功までに要する時間の実績に基づいて、チャレンジの成功までに要する時間をより長くしたい場合に「ＦｉｌｅＰａｒｔＮｕｍ」によって指定されるチャレンジの対象範囲をより広く設定したり、チャレンジの成功までに要する時間をより短くしたい場合に「ＦｉｌｅＰａｒｔＮｕｍ」によって指定されるチャレンジの対象範囲をより狭く設定したりすることができる。
【００６１】
また、本実施形態に係るデータ管理システムは、「ＦｉｌｅＰａｒｔＮｕｍ」に応じて（換言すると、チャレンジの難易度に応じて）チャレンジが成功した際の報酬額を調整することも可能である。例えば、本実施形態に係るデータ管理システムは、「ＦｉｌｅＰａｒｔＮｕｍ」によって指定されるチャレンジの対象範囲をより広く設定した場合には、チャレンジが成功した際に支払われる報酬額をより高く設定してもよい。また、本実施形態に係るデータ管理システムは、「ＦｉｌｅＰａｒｔＮｕｍ」によって指定されるチャレンジの対象範囲をより狭く設定した場合には、チャレンジが成功した際に支払われる報酬額をより低く設定してもよい。
【００６２】
また、本実施形態に係るデータ管理システムは、予算の残高に応じて「ＦｉｌｅＰａｒｔＮｕｍ」の設定を変更することも可能である。例えば、予算の残高が所定値よりも低くなった場合には、本実施形態に係るデータ管理システムは、「ＦｉｌｅＰａｒｔＮｕｍ」によって指定されるチャレンジの対象範囲をより狭く設定し、チャレンジの難易度をより低くすることで、報酬額をより低く設定してもよい。
【００６３】
なお、「ＦｉｌｅＰａｒｔＮｕｍ」によるチャレンジの対象範囲の指定方法は任意である。例えば、「ＦｉｌｅＰａｒｔＮｕｍ」は、対象データ１０が複数の範囲に分割され、分割された範囲に関する情報であってもよい（例えば、対象データ１０が２３個に分割されたうちの３番目の範囲を示す情報（図４では、便宜的に｛３／２３｝と示している）であってもよい）。
【００６４】
また、上記では「ＦｉｌｅＰａｒｔＮｕｍ」には、対象データ１０の一部の範囲が指定される旨について説明したが、これはあくまで一例であり、「ＦｉｌｅＰａｒｔＮｕｍ」に設定される情報は適宜変更され得る。例えば、「ＦｉｌｅＰａｒｔＮｕｍ」には、対象データ１０に関する何らかの情報（対象データ１０のサイズ、保管場所、データの種類、作成日時、作成者、更新日時または更新者等に関する情報）が設定されてもよい。
【００６５】
また、「ＦｉｌｅＰａｒｔＮｕｍ」を指定する装置は任意である。例えば、「ＦｉｌｅＰａｒｔＮｕｍ」は、前回のブロックの追加時においてチャレンジに成功した預け先ノード２００によって所定の方法で指定されてもよいし、各預け先ノード２００が自ら所定の方法で指定してもよい。本書では、一例として、「ＦｉｌｅＰａｒｔＮｕｍ」は、前回のブロックの追加時においてチャレンジに成功した預け先ノード２００によって指定されることとする。例えば、チャレンジに成功した預け先ノード２００は、追加すべきブロックに関する情報を他の預け先ノード２００にブロードキャストする際に次のチャレンジに用いられる「ＦｉｌｅＰａｒｔＮｕｍ」に関する情報も提供し、各預け先ノード２００は、当該「ＦｉｌｅＰａｒｔＮｕｍ」に関する情報に基づいて次のチャレンジを行う。
【００６６】
また、「ＦｉｌｅＰａｒｔＮｕｍ」の設定方法は任意である。例えば、チャレンジに成功した預け先ノード２００は、事前に配布された所定のプログラムに対して、所定の情報（例えば、チャレンジに成功したときの「ＦｉｌｅＰａｒｔＮｕｍ」や「ＦｉｌｅＤａｔａ」の情報）を入力することで、次のチャレンジにおける「ＦｉｌｅＰａｒｔＮｕｍ」を設定してもよい。また、対象データ１０が複数の範囲に分割され、「ＦｉｌｅＰａｒｔＮｕｍ」には分割された範囲に関する情報が設定される場合、チャレンジに成功した預け先ノード２００は、過去に対象範囲に設定されていない範囲を「ＦｉｌｅＰａｒｔＮｕｍ」に設定してもよい。
【００６７】
「ＦｉｌｅＤａｔａ」には、第１のデータに関する情報が設定される。例えば、第１のデータが、あるデータ長を有するビット列である場合には、「ＦｉｌｅＤａｔａ」には、当該ビット列の先頭を示すデータとして、「ＦｉｌｅＰａｒｔＮｕｍ」にて指定されたチャレンジの対象範囲の先頭からのバイト数（以降、便宜的に「Ｏｆｆｓｅｔ」と呼称する）と、「Ｏｆｆｓｅｔ」を起点としたときのデータ長（以降、便宜的に「Ｌｅｎ」と呼称する）が設定されてもよい（例えば、Ｏｆｆｓｅｔは２１１５バイト目であり、Ｌｅｎは３７バイトであることを示すデータ（図４では、便宜的に｛２１１５／３７｝と示している）が設定されてもよい）。
【００６８】
このように、「ＦｉｌｅＤａｔａ」に設定される内容が、実データではなく、ＯｆｆｓｅｔとＬｅｎであることによって、「ＦｉｌｅＤａｔａ」が一定サイズになり得る。
【００６９】
なお、「ファイル検証履歴」には、預け先ノード２００の秘密鍵によって生成された電子署名が付されていてもよい。これによって、いわゆる「なりすまし」や「ファイル検証履歴」の改ざんの有無が検証され得る。
【００７０】
（２−４−２．仮想通貨取引履歴）
「仮想通貨取引履歴」は、対象データ１０の保管もしくは検証に対する報酬に関する情報を含む。例えば、「仮想通貨取引履歴」は、チャレンジに成功した預け先ノード２００へ支払われる報酬に関する情報を含む。
【００７１】
ここで、上記のとおり、チャレンジの成功に対する報酬の授受方法は任意である。本書では、一例として、対象データ１０の預け人が所定の方法によって予算を指定し、予算がＰ２Ｐネットワーク３００上にプールされることで、チャレンジに成功した預け先ノード２００が当該プールから報酬を取得する場合について説明する。
【００７２】
ここで、「仮想通貨取引履歴」の生成方法は任意である。例えば、所定のプログラムが各預け先ノード２００に事前に配布され、チャレンジに成功した預け先ノード２００が当該プログラムを用いて「仮想通貨取引履歴」を生成してもよい。預け先ノード２００は、生成した「仮想通貨取引履歴」をブロックに含めることによってプールから報酬を取得することができる。このように、「仮想通貨取引履歴」の生成が所定のプログラムのみによって行われることで、本実施形態に係るデータ管理システムは、悪意のある預かり人によって膨大な金額の報酬が取得されることを防ぐことができる。
【００７３】
ここで、図５を参照して、本実施形態に係る「仮想通貨取引履歴」が含む情報の一例について説明する。図５は、本実施形態に係る「仮想通貨取引履歴」が含む情報の一例を示す図である。
【００７４】
図５に示すように、本実施形態に係る「仮想通貨取引履歴」は、「入力」フィールドと、「出力」フィールドと、を含み、「入力」フィールドは、「取引履歴番号」と、「電子署名」と、「プールの公開鍵」と、を含む。また、「出力」フィールドは、「報酬額」と、「預け先ノードの公開鍵のハッシュ値」と、を含む。なお、図５に示す情報はあくまで一例であり、本実施形態に係る「仮想通貨取引履歴」が含む情報は適宜変更され得る。
【００７５】
「取引履歴番号」は、報酬の授受に関する取引を識別することが可能な任意の情報である。例えば、「取引履歴番号」は、チャレンジに成功した際のタイムスタンプ、または、報酬の授受に関する取引が発生する度に所定の値だけ（例えば「１」ずつ）増加される通し番号等であってもよい。本実施形態に係るデータ管理システムは、「仮想通貨取引履歴」に「取引履歴番号」と後述する「電子署名」とを設けることによって報酬の二重取得を防止することができる。
【００７６】
「電子署名」は、プールの秘密鍵によって生成された電子署名データである。これによって、「仮想通貨取引履歴」に含まれる「プールの公開鍵」によって電子署名データが検証されることで、「仮想通貨取引履歴」に対する改ざんの有無や、いわゆる「なりすまし」の有無が検証され得る。
【００７７】
「報酬額」は、チャレンジに成功した預け先ノード２００が取得する報酬の額に関する情報である。例えば、「報酬額」にはチャレンジに成功した報酬として所定の仮想通貨の額が設定される。報酬額は、一定額であってもよいし、預け人によって随時変更されてもよいし、チャレンジの難易度によって変更されてもよい。
【００７８】
「預け先ノードの公開鍵のハッシュ値」は、チャレンジに成功した預け先ノード２００の公開鍵のハッシュ値である。「仮想通貨取引履歴」に「預け先ノードの公開鍵のハッシュ値」が含まれることによって、チャレンジに成功し報酬を得た預け先ノード２００が識別され得る。「仮想通貨取引履歴」に「預け先ノードの公開鍵のハッシュ値」が含まれるのはあくまで一例であり、適宜変更され得る。例えば、「預け先ノードの公開鍵のハッシュ値」の代りに「預かり人の公開鍵のハッシュ値」等が含まれてもよい。
【００７９】
（２−４−３．直前ブロックのハッシュ値）
「直前ブロックのハッシュ値」は、上記で説明したように、直前のブロックと当該ブロックとを連結する情報であり、直前のブロックに含まれるデータ全体（または直前のブロックに含まれるデータの一部）のハッシュ値である（なお、「直前ブロックのハッシュ値」は、本実施形態において「第２のデータ」として用いられる）。
【００８０】
＜３．各装置の機能構成＞
（３−１．預け元ノード１００）
上記では、本実施形態に係るデータ管理システムの概要について説明した。続いて、図６を参照して、本実施形態に係る各装置の機能構成について説明する。図６は、本実施形態に係る預け元ノード１００および預け先ノード２００の機能構成を示す図である。
【００８１】
まず、本実施形態に係る預け元ノード１００の機能構成について説明する。図６に示すように、本実施形態に係る預け元ノード１００は、入力部１１０と、制御部１２０と、通信部１３０と、出力部１４０と、記憶部１５０と、を備える。また、制御部１２０は、処理部１２１を備える。
【００８２】
（入力部１１０）
入力部１１０は、預け人からの入力を受ける機能構成である。より具体的には、入力部１１０は、入力に用いられる各種デバイス（キーボード、マウス、キーパッド、タッチパネル、マイクロホン、操作ボタン、方向キーまたはジョグダイヤルなどの回転型セレクタ等）を備え、預け人はこれらのデバイスを用いて各種入力操作を行う。例えば、預け人は、入力部１１０に備えられる各種デバイスを用いて、対象データ１０、対象データ１０の保管もしくは検証に伴う各種情報（対象データ１０のサイズ、保管もしくは検証の期間、条件、方法、対価、対価の授受方法、対価の源泉となる予算等に関する情報）を入力する。なお、これらの情報はあくまで一例であり、入力部１１０から入力される情報は任意である。入力部１１０は、預け人からの入力操作に基づいて入力情報を生成し、当該入力情報を後述する制御部１２０に提供する。
【００８３】
（制御部１２０）
制御部１２０は、預け元ノード１００を統括的に制御する。より具体的には、制御部１２０は、入力部１１０から提供される入力情報や、後述する通信部１３０から提供される受信情報等に基づいて、対象データ１０の保管もしくは検証の開始から終了に至るまでの各種処理を統括的に制御する。なお、制御部１２０によって制御される処理はこれらに限定されない。例えば、制御部１２０は、サーバ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、タブレットＰＣ等において一般的に行われる処理を制御してもよい。また、上記のとおり、制御部１２０は処理部１２１を備える。
【００８４】
（処理部１２１）
処理部１２１は、対象データ１０の保管もしくは検証に関する処理を行う。例えば、処理部１２１は、入力部１１０から提供される入力情報等に基づいて対象データ１０の保管先の募集に関する情報を複数の預け先ノード２００に対して公開する処理を行う。ここで、当該処理の具体的内容は任意である。例えば、処理部１２１は、対象データ１０の保管先の募集に関する情報を生成し、当該情報をインターネット上の所定のウェブサイトにアップロードすることで複数の預け先ノード２００に対して公開してもよい。
【００８５】
また、処理部１２１は、対象データ１０を複数の預け先ノード２００に提供する処理を行う。ここで、当該処理の具体的内容は任意である。例えば、処理部１２１は、Ｐ２Ｐネットワーク３００を介して対象データ１０を預け先ノード２００に提供する処理を行ってもよいし、インターネットを介して対象データ１０を預け先ノード２００に提供する処理を行ってもよい。
【００８６】
また、処理部１２１は、各預け先ノード２００に対して検証（または検証の開始）を要求する検証要求部として機能する。より具体的には、処理部１２１は、検証（または検証の開始）を要求するための通知をＰ２Ｐネットワーク３００に対して送信する処理を制御する。これによって、各預け先ノード２００は、Ｐ２Ｐネットワーク３００を介して当該通知を受信することで、対象データ１０の検証（または検証の開始）が要求されていることを認識する。
【００８７】
また、処理部１２１は、対象データ１０の保管もしくは検証に伴う各種情報（対象データ１０のサイズ、保管もしくは検証の期間、条件、方法、対価、対価の授受方法、対価の源泉となる予算等に関する情報）を預け先ノード２００に通知する処理を行う。ここで、当該処理の具体的内容は任意である。例えば、処理部１２１は、Ｐ２Ｐネットワーク３００を介してこれらの情報を預け先ノード２００に通知してもよいし、インターネット上の所定のウェブサイトに公開することでこれらの情報を預け先ノード２００に通知してもよい。
【００８８】
また、処理部１２１は、対象データ１０の保管状況もしくは検証状況を確認する確認部としても機能する。ここで、当該処理の具体的内容は任意である。より具体的には、処理部１２１は、対象データ１０についてのブロックチェーンデータをＰ２Ｐネットワーク３００から取得し、ブロックチェーンへのブロックの追加状況（最後にブロックが追加された日時、ブロックが追加された回数、ブロックの追加を行った預け先ノード２００等）、報酬の授受状況（授受された報酬額、予算の残高等）等を確認する。また、これらはあくまで一例であり、処理部１２１が確認する情報は任意である。例えば、処理部１２１は、対象データ１０の保管および検証を行っている預け先ノード２００の台数を確認してもよい。そして、処理部１２１は、確認した各種情報を後述する出力部１４０に提供することで、これらの情報の出力を実現する。
【００８９】
制御部１２０（処理部１２１も含む）は、上記の各種処理を行うにあたり、各機能構成を制御する制御信号を生成し各機能構成へ提供したり、各機能構成から各種情報（入力部１１０からの入力情報、通信部１３０からの受信情報等）を提供されたりする。
【００９０】
（通信部１３０）
通信部１３０は、外部装置との通信を行う。より具体的には、通信部１３０は、Ｐ２Ｐネットワーク３００またはその他のネットワークと接続しており、これらのネットワークを介して複数の預け先ノード２００またはその他の外部装置との通信を行う。例えば、送信については、通信部１３０は、制御部１２０からの制御信号に基づいて、対象データ１０の保管先の募集に関する情報、対象データ１０、対象データ１０の保管もしくは検証に伴う各種情報（対象データ１０のサイズ、保管もしくは検証の期間、条件、方法、対価、対価の授受方法、対価の源泉となる予算等に関する情報）等を送信する。また、受信については、通信部１３０は、対象データ１０の保管に同意する旨の情報、ブロックチェーンデータ等を受信し、これらの情報を受信情報として制御部１２０に提供する。なお、上記の情報はあくまで一例であり、通信部１３０はその他の情報を送受信してもよい。
【００９１】
（出力部１４０）
出力部１４０は、各種情報の出力を行う。より具体的には、出力部１４０は、出力に用いられる各種デバイス（ディスプレイ（液晶ディスプレイ（Liquid  Crystal  Display）や有機ＥＬディスプレイ（Organic  Electro-Luminescence  Display）等）、プロジェクタ、プリンタ、プロッタ、スピーカ等）を備え、制御部１２０から提供される制御信号に基づいて各種の出力を行う。例えば、出力部１４０は、対象データ１０の保管もしくは検証の開始から終了に至るまでの各種処理に関する情報をディスプレイに表示することで、預け人に各種情報を提供してもよい。
【００９２】
（記憶部１５０）
記憶部１５０は、各種情報を記憶する。例えば、記憶部１５０は、対象データ１０の保管先の募集に関する情報、対象データ１０、対象データ１０の保管もしくは検証に伴う各種情報（対象データ１０のサイズ、保管もしくは検証の期間、条件、方法、対価、対価の授受方法、対価の源泉となる予算等に関する情報）、対象データ１０の保管に同意する旨の情報、ブロックチェーンデータ等を記憶する。なお、これらの情報はあくまで一例であり、記憶部１５０が記憶する情報は適宜変更され得る。例えば、記憶部１５０は、預け元ノード１００の各機能構成によって使用されるプログラムまたはパラメータ等を記憶してもよい。
【００９３】
（３−２．預け先ノード２００）
続いて、本実施形態に係る預け先ノード２００の機能構成について説明する。図６に示すように、本実施形態に係る預け先ノード２００は、入力部２１０と、制御部２２０と、通信部２３０と、出力部２４０と、記憶部２５０と、を備える。また、制御部２２０は、処理部２２１を備える。
【００９４】
（入力部２１０）
入力部２１０は、預かり人からの入力を受ける機能構成である。より具体的には、上記で説明した預け元ノード１００の入力部１１０と同様に、入力部２１０は、入力に用いられる各種デバイス（キーボード、マウス、キーパッド、タッチパネル、マイクロホン、操作ボタン、方向キーまたはジョグダイヤルなどの回転型セレクタ等）を備え、預かり人はこれらのデバイスを用いて各種入力操作を行う。例えば、預かり人は、入力部２１０に備えられる各種デバイスを用いて、対象データ１０の保管に同意する旨の情報等を入力する。入力部２１０は、預かり人からの入力操作に基づいて入力情報を生成し、当該入力情報を後述する制御部２２０に提供する。
【００９５】
（制御部２２０）
制御部２２０は、預け先ノード２００を統括的に制御する。より具体的には、制御部２２０は、入力部２１０から提供される入力情報や、後述する通信部２３０から提供される受信情報等に基づいて、対象データ１０の保管もしくは検証の開始から終了に至るまでの各種処理を統括的に制御する。上記で説明した預け元ノード１００の制御部１２０と同様に、制御部２２０によって制御される処理は任意であり、対象データ１０の保管もしくは検証に関する処理に限定されない。例えば、制御部２２０は、サーバ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、タブレットＰＣ等において一般的に行われる処理を制御してもよい。また、上記のとおり、制御部２２０は処理部２２１を備える。
【００９６】
（処理部２２１）
処理部２２１は、対象データ１０の検証に関する処理を行う検証部として機能する。例えば、処理部２２１は、入力部２１０から提供される入力情報に基づいて、対象データ１０の保管に同意する旨の情報を預け元ノード１００に対して通知する処理を行う。ここで、当該処理の具体的内容は任意である。例えば、処理部２２１は、預け元ノード１００が対象データ１０の保管先の募集に関する情報を公開しているインターネット上の所定のウェブサイトを介して対象データ１０の保管に同意する旨の情報を預け元ノード１００に通知してもよい。
【００９７】
また、処理部２２１は、対象データ１０を預け元ノード１００から取得する処理を行う。ここで、当該処理の具体的内容は任意である。例えば、処理部２２１は、Ｐ２Ｐネットワーク３００を介して対象データ１０を預け元ノード１００から取得してもよいし、インターネットを介して対象データ１０を預け元ノード１００から取得してもよい。そして、処理部２２１は、取得した対象データ１０を後述する記憶部２５０に記憶させる。
【００９８】
また、処理部２２１は、ブロックチェーンデータの更新のためのチャレンジに関する処理を行う。より具体的には、処理部２２１は、ブロックチェーンデータからチャレンジの対象範囲、および、チャレンジ成功のための所定の条件であるターゲット値を取得する。ここで、ターゲット値として設定されるチャレンジの成功条件は任意である。例えば、ターゲット値は、ブロックに含まれるデータ全体（またはブロックに含まれるデータの一部）のハッシュ値が所定の値よりも小さくなることをチャレンジ成功の条件として示してもよい。
【００９９】
また、上記では、チャレンジの対象範囲の設定によってチャレンジの難易度が調整される旨について説明したが、当該ターゲット値にも基づいてチャレンジの難易度が調整され得る。例えば、本実施形態に係るデータ管理システムは、チャレンジの成功までに要する時間の実績に基づいて、チャレンジの成功までに要する時間をより長くしたい場合にはチャレンジの難易度がより高くなるようにターゲット値を変更したり、チャレンジの成功までに要する時間をより短くしたい場合にはチャレンジの難易度がより低くなるようにターゲット値を変更したりすることができる。
【０１００】
そして、処理部２２１は、チャレンジの対象範囲から「ＦｉｌｅＤａｔａ」を設定し（例えば、チャレンジの対象範囲の先頭からのバイト数である「Ｏｆｆｓｅｔ」と、「Ｏｆｆｓｅｔ」を起点としたときのデータ長である「Ｌｅｎ」を設定し）、その後、ブロックに含まれるデータ全体（またはブロックに含まれるデータの一部）のハッシュ値を算出し、当該ハッシュ値とターゲット値によって示されるチャレンジの成功条件とを比較する。処理部２２１は、当該ハッシュ値がターゲット値によって示されるチャレンジの成功条件を満たすまで、チャレンジを継続する。なお、これはあくまで一例であり、所定の回数もしくは所定時間にわたってチャレンジが成功しなければ処理部２２１はチャレンジを止めてもよい。これによって、処理部２２１は、成功するまでチャレンジを継続することによってリソースが消費され続けることを防ぐことができる。
【０１０１】
また、処理部２２１は、チャレンジに成功した場合、ブロックチェーンデータに新たなブロックを追加する（換言すると、ブロックチェーンデータの更新を行う）。そして、処理部２２１は、追加すべき新たなブロックに関する情報（「更新に関する情報」とも呼称する）を、Ｐ２Ｐネットワーク３００を介してブロードキャストする処理を行うことによって、自装置以外の預け先ノード２００に対して自装置がチャレンジに成功したこと、および、新たに追加すべきブロックに関する情報を提供する。更新に関する情報を提供された預け先ノード２００の処理部２２１は、当該情報に基づいて、チャレンジの成否を確認し、チャレンジが成功していることを確認できた場合には、自装置にて管理されているブロックチェーンデータに新たなブロックを追加する。
【０１０２】
その際、処理部２２１は、次のチャレンジに用いられる「ＦｉｌｅＰａｒｔＮｕｍ」を指定する指定部として機能してもよい。例えば、処理部２２１は、事前に配布された所定のプログラムに対して、所定の情報（例えば、チャレンジに成功したときの「ＦｉｌｅＰａｒｔＮｕｍ」や「ＦｉｌｅＤａｔａ」の情報）を入力することで、次のチャレンジにおける「ＦｉｌｅＰａｒｔＮｕｍ」を指定してもよい。
【０１０３】
なお、略同一のタイミングに複数の預け先ノード２００の処理部２２１がチャレンジに成功することによってブロックチェーンに分岐が発生する場合がある。より具体的には、略同一のタイミングに複数の預け先ノード２００の処理部２２１がチャレンジに成功すると、各処理部２２１は、互いに内容の異なる新たなブロックに関する情報をブロードキャストする処理を略同一のタイミングに行う。この場合、どちらの処理部２２１からブロードキャストされた情報が先に受信されたかに応じて、他の預け先ノード２００によって管理されるブロックチェーンデータに追加されるブロックが其々異なる場合が発生する（この事象をブロックチェーンの分岐（またはフォーク）と呼称する）。
【０１０４】
ここで、ブロックチェーンの分岐が発生した場合の対応方法は任意である。例えば、新たなブロックを追加しようとする預け先ノード２００の処理部２２１は、分岐したブロックチェーンの中から一番長い連なり（以降、便宜的に「枝」と呼称する場合がある）を選び、その枝に新たなブロックを追加するように各処理（チャレンジ等）を行ってもよい。そして、複数の枝の長さに一定以上の差がついた場合に、短い方の枝が破棄されることでブロックチェーンの分岐が解消されてもよい。
【０１０５】
なお、本実施形態において処理部２２１がブロックチェーンデータの更新のためのチャレンジを行うタイミング（または頻度等）は任意である。例えば、各預け先ノード２００の処理部２２１は、特定の日時にチャレンジを行ってもよいし、何らかのトリガ（外部装置からの制御信号の受信等）に基づいてチャレンジを行ってもよいし、所定の時間毎にチャレンジを行ってもよい。
【０１０６】
また、制御部２２０（処理部２２１も含む）は、上記の各種処理を行うにあたり、各機能構成を制御する制御信号を生成し各機能構成へ提供したり、各機能構成から各種情報（入力部２１０からの入力情報、通信部２３０からの受信情報等）を提供されたりする。
【０１０７】
（通信部２３０）
通信部２３０は、外部装置との通信を行う。より具体的には、通信部２３０は、Ｐ２Ｐネットワーク３００またはその他のネットワークと接続しており、これらのネットワークを介して預け元ノード１００、自装置以外の預け先ノード２００、または、その他の外部装置との通信を行う。例えば、受信については、通信部２３０は、対象データ１０、ブロックチェーンデータ、または、追加すべき新たなブロックに関する情報等を受信し、これらの情報を受信情報として制御部２２０に提供する。また、送信については、通信部２３０は、制御部２２０からの制御信号に基づいて、対象データ１０の保管に同意する旨の情報、または、追加すべき新たなブロックに関する情報等を送信する。なお、上記の情報はあくまで一例であり、通信部２３０はその他の情報を送受信してもよい。
【０１０８】
（出力部２４０）
出力部２４０は、各種情報の出力を行う。より具体的には、預け元ノード１００の出力部１４０と同様に、出力部２４０は、出力に用いられる各種デバイス（ディスプレイ（液晶ディスプレイ（Liquid  Crystal  Display）や有機ＥＬディスプレイ（Organic  Electro-Luminescence  Display）等）、プロジェクタ、プリンタ、プロッタ、スピーカ等）を備え、制御部２２０から提供される制御信号に基づいて各種の出力を行う。例えば、出力部２４０は、対象データ１０の保管もしくは検証の開始から終了に至るまでの各種処理に関する情報をディスプレイに表示することで、預かり人に各種情報を提供してもよい。
【０１０９】
（記憶部２５０）
記憶部２５０は、各種情報を記憶する。例えば、記憶部２５０は、保管中の対象データ１０、対象データ１０の保管もしくは検証に伴う各種情報（対象データ１０のサイズ、保管もしくは検証の期間、条件、方法、対価、対価の授受方法、対価の源泉となる予算等に関する情報）、または、ブロックチェーンデータ等を記憶する。なお、これらの情報はあくまで一例であり、記憶部２５０が記憶する情報は適宜変更され得る。例えば、記憶部２５０は、預け先ノード２００の各機能構成によって使用されるプログラムまたはパラメータ等を記憶してもよい。
【０１１０】
＜４．預け先ノード２００の動作＞
上記では、本実施形態に係る各装置の機能構成について説明した。続いて、図７を参照して、本実施形態に係る預け先ノード２００の動作について説明する。図７は、本実施形態に係る預け先ノード２００によるチャレンジに関する動作を示すフローチャートである。
【０１１１】
ステップＳ１０００では、預け先ノード２００の処理部２２１が、ブロックチェーンデータから各種情報を読み出す。より具体的には、処理部２２１は、ブロックチェーンデータから、チャレンジ成功の条件であるターゲット値と、対象データ１０を識別する情報である「ＦｉｌｅＩＤ」と、チャレンジの対象範囲である「ＦｉｌｅＰａｒｔＮｕｍ」と、を読み出す。なお、処理部２２１が読み出す情報はこれらの情報に限定されない。
【０１１２】
ステップＳ１００４では、処理部２２１がチャレンジを実施する。より具体的には、処理部２２１は、「ＦｉｌｅＩＤ」によって識別される対象データ１０において、「ＦｉｌｅＰａｒｔＮｕｍ」によって指定されるチャレンジの対象範囲から「ＦｉｌｅＤａｔａ」を設定し（例えば、チャレンジの対象範囲の先頭からのバイト数である「Ｏｆｆｓｅｔ」と、「Ｏｆｆｓｅｔ」を起点としたときのデータ長である「Ｌｅｎ」を設定し）、その後、ブロックに含まれるデータ全体（またはブロックに含まれるデータの一部）のハッシュ値を算出し、ターゲット値によって示されるチャレンジ成功の条件と、算出したハッシュ値を比較することでチャレンジを行う。
【０１１３】
ブロックに含まれるデータ全体（またはブロックに含まれるデータの一部）のハッシュ値がチャレンジ成功の条件を満たしている場合（すなわち、チャレンジが成功した場合）（ステップＳ１００８／Ｙｅｓ）、ステップＳ１０１２にて、処理部２２１は、ブロックチェーンデータに新たなブロックを追加し、追加すべき新たなブロックに関する情報を、Ｐ２Ｐネットワーク３００を介してブロードキャストする処理を行うことによって、自装置以外の預け先ノード２００に対して自装置がチャレンジに成功したことおよび新たに追加すべきブロックに関する情報を提供し、処理が終了する。ブロックに含まれるデータ全体（またはブロックに含まれるデータの一部）のハッシュ値がチャレンジ成功の条件を満たしていない場合には（すなわち、チャレンジが失敗した場合）（ステップＳ１００８／Ｎｏ）、処理がステップＳ１００４に戻り、処理部２２１は、「ＦｉｌｅＤａｔａ」の値を変更することで再度チャレンジを行う。
【０１１４】
＜５．変形例＞
上記では、本実施形態に係る預け先ノード２００の動作について説明した。続いて、本開示の変形例について説明する。
【０１１５】
上記の実施形態においては、預け先ノード２００がブロックチェーンデータの更新のためのチャレンジを行うタイミング（または頻度等）は任意である旨を説明した。一方、本開示の変形例は、預け先ノード２００がチャレンジを行わない期間を設けたり、チャレンジの回数（または頻度等）を低減させたりする実施例である。
【０１１６】
例えば、預け先ノード２００は、複数回のチャレンジを行うことによって、対象データ１０の信頼性を一定以上担保できると判断した場合には、その後、チャレンジを行わない期間を設けたり、チャレンジの回数（または頻度等）を低減させたりしてもよい。
【０１１７】
例えば、対象データ１０における所定量以上のデータが過去のチャレンジに用いられた場合、預け先ノード２００は、対象データ１０の信頼性を一定以上担保できると判断し、その後、チャレンジを行わない期間を設けたり、チャレンジの回数（または頻度等）を低減させたりしてもよい。なお、上記はあくまで一例であり、適宜変更され得る。例えば、各預け先ノード２００は、予め設定された回数にわたってチャレンジを行った場合、または、対象データ１０のサイズ等に基づいてチャレンジ回数を設定し、設定した回数にわたってチャレンジを行った場合等に、その後、チャレンジを行わない期間を設けたり、チャレンジの回数（または頻度等）を低減させたりしてもよい。
【０１１８】
これによって、本変形例は、一定以上の信頼性が担保出来た後に、チャレンジが無制限に継続されることによって各預け先ノード２００のリソースが消費されることを防ぐことができ、チャレンジ成功の対価として支払われる報酬の総額を低減させることができる。
【０１１９】
なお、預け元ノード１００は、例えば、所定の期間（例えば、１年間）毎に各預け先ノード２００に検証（チャレンジ）を要求することによって、対象データ１０が預け先ノード２００によって適切に保管され続けていることを確認してもよい。また、預け元ノード１００は、対象データ１０を預け先ノード２００から回収する前に預け先ノード２００に検証（チャレンジ）を要求することで、対象データ１０が預け先ノード２００によって適切に保管され続けていることを確認してもよい。なお、預け元ノード１００は次回チャレンジを依頼する予定日時を各預け先ノード２００に通知することによって、各預け先ノード２００が対象データ１０を保管し続ける動機付けを行ってもよい。
【０１２０】
＜６．各装置のハードウェア構成＞
上記では、本開示の変形例について説明した。続いて、図８を参照して、本実施形態に係る各装置のハードウェア構成について説明する。
【０１２１】
図８は、本実施形態に係る預け元ノード１００または預け先ノード２００のハードウェア構成の一例を示すブロック図である。本実施形態に係る預け元ノード１００または預け先ノード２００は、図８に示す情報処理装置９００によって具現され得る。
【０１２２】
そして、情報処理装置９００は、例えば、ＭＰＵ９０１と、ＲＯＭ９０２と、ＲＡＭ９０３と、記録媒体９０４と、入出力インタフェース９０５と、操作入力デバイス９０６と、表示デバイス９０７と、通信インタフェース９０８とを備える。また、情報処理装置９００は、例えば、データの伝送路としてのバス９０９で各構成要素間を接続する。
【０１２３】
ＭＰＵ９０１は、例えば、ＭＰＵなどの演算回路で構成される、１または２以上のプロセッサや、各種処理回路などで構成され、情報処理装置９００全体を制御する制御部１２０または制御部２２０として機能する。なお、制御部１２０または制御部２２０は、制御部１２０または制御部２２０の処理を実現可能な専用の（または汎用の）回路（例えば、ＭＰＵ９０１とは別体のプロセッサなど）で構成されていてもよい。
【０１２４】
ＲＯＭ９０２は、ＭＰＵ９０１が使用するプログラムや演算パラメータなどの制御用データなどを記憶する。ＲＡＭ９０３は、例えば、ＭＰＵ９０１により実行されるプログラムなどを一時的に記憶する。
【０１２５】
記録媒体９０４は、記憶部１５０または記憶部２５０として機能し、例えば、ブロックチェーンデータまたは対象データ１０等の本実施形態に係る情報処理に関するデータや、各種アプリケーションなど様々なデータを記憶する。ここで、記録媒体９０４としては、例えば、ハードディスクなどの磁気記録媒体や、フラッシュメモリなどの不揮発性メモリが挙げられる。また、記録媒体９０４は、情報処理装置９００から着脱可能であってもよい。
【０１２６】
入出力インタフェース９０５は、例えば、操作入力デバイス９０６や、表示デバイス９０７を接続する。操作入力デバイス９０６は、入力部１１０または入力部２１０として機能し、また、表示デバイス９０７は、出力部１４０または出力部２４０として機能する。ここで、入出力インタフェース９０５としては、例えば、ＵＳＢ（Universal  Serial  Bus）端子や、ＤＶＩ（Digital  Visual  Interface）端子、ＨＤＭＩ（High-Definition  Multimedia  Interface）（登録商標）端子、各種処理回路などが挙げられる。
【０１２７】
また、操作入力デバイス９０６は、例えば、情報処理装置９００上に備えられ、情報処理装置９００の内部で入出力インタフェース９０５と接続される。操作入力デバイス９０６としては、例えば、キーボード、マウス、キーパッド、タッチパネル、マイクロホン、操作ボタン、方向キーまたはジョグダイヤルなどの回転型セレクタ、あるいは、これらの組み合わせなどが挙げられる。
【０１２８】
また、表示デバイス９０７は、例えば、情報処理装置９００上に備えられ、情報処理装置９００の内部で入出力インタフェース９０５と接続される。表示デバイス９０７としては、例えば、液晶ディスプレイ（Liquid  Crystal  Display）や有機ＥＬディスプレイ（Organic  Electro-Luminescence  Display）などが挙げられる。
【０１２９】
なお、入出力インタフェース９０５が、情報処理装置９００の外部の操作入力デバイスや外部の表示デバイスなどの外部デバイスと接続することも可能であることは、言うまでもない。また、表示デバイス９０７は、例えばタッチパネルなど、表示とユーザ操作とが可能なデバイスであってもよい。
【０１３０】
通信インタフェース９０８は、情報処理装置９００が備える通信手段であり、本実施形態に係るＰ２Ｐネットワーク３００を構成する外部装置、または、Ｐ２Ｐネットワーク３００と接続する外部装置と、無線または有線で通信を行うための通信部１３０または通信部２３０として機能する。また、通信インタフェース９０８は、任意のネットワークを介して（あるいは、直接的に）、例えば、サーバなどの任意の外部装置と、無線または有線で通信を行う機能を有していてもよい。ここで、通信インタフェース９０８としては、例えば、通信アンテナおよびＲＦ（Radio  Frequency）回路（無線通信）や、ＩＥＥＥ８０２．１５．１ポートおよび送受信回路（無線通信）、ＩＥＥＥ８０２．１１ポートおよび送受信回路（無線通信）、あるいはＬＡＮ（Local  Area  Network）端子および送受信回路（有線通信）などが挙げられる。
【０１３１】
情報処理装置９００は、例えば図８に示す構成によって、本実施形態に係る情報処理に係る処理を行う。なお、本実施形態に係る情報処理装置９００のハードウェア構成は、図１３に示す構成に限られない。
【０１３２】
例えば、情報処理装置９００は、接続されている外部の通信デバイスを介してＰ２Ｐネットワーク３００または外部装置などと通信を行う場合には、通信インタフェース９０８を備えていなくてもよい。また、通信インタフェース９０８は、複数の通信方式によって、１または２以上の外部装置などと通信を行うことが可能な構成であってもよい。
【０１３３】
また、情報処理装置９００は、例えば、記録媒体９０４、操作入力デバイス９０６または表示デバイス９０７等を備えなくてもよい。
【０１３４】
また、例えば、図８に示す構成（または変形例に係る構成）の一部または全部は、１、または２以上のＩＣ（Integrated  Circuit）で実現されてもよい。
【０１３５】
＜７．むすび＞
以上で説明してきたように、本開示に係るデータ管理システムは、対象データ１０から取得した第１のデータを「ナンス」の代りに用いてブロックチェーンデータの更新を行うことによって、より適切に対象データ１０の検証を行うことができる。また、本実施形態に係るデータ管理システムは、チャレンジにおいてハッシュ値を算出する処理を利用することで対象データ１０の検証を行うことができるため、預け先ノード２００のリソースを有効に活用することができる。
【０１３６】
また、本実施形態に係る預け人は、対象データ１０の保管もしくは検証についての正当な対価を預かり人に対して支払うことができる（換言すると、預かり人は、対象データ１０の保管もしくは検証についての正当な対価を一定の確率で預け人から受け取ることができる）。
【０１３７】
また、本実施形態に係る預け人は、対象データ１０の保管もしくは検証の状況を確認することができる。そして、本実施形態に係る預け人は、対象データ１０の保管もしくは検証の状況に基づいて予算を随時変更することができる。
【０１３８】
さらに、本開示の変形例は、チャレンジを行わない期間を設けたり、チャレンジの回数（または頻度等）を低減させたりすることができる。これにより、本開示の変形例は、一定以上の信頼性が担保出来た後に、チャレンジが無制限に継続されることによって各預け先ノード２００のリソースが消費されることを防ぐことができ、チャレンジ成功の対価として支払われる報酬の総額を低減させることができる。
【０１３９】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１４０】
例えば、預け元ノード１００の構成の一部は、適宜預け元ノード１００外に設けられ得る。また、預け先ノード２００の構成の一部は、適宜預け先ノード２００外に設けられ得る。
【０１４１】
また、預け元ノード１００の機能の一部が、制御部１２０よって具現されてもよい。例えば、制御部１２０が入力部１１０、通信部１３０または出力部１４０の機能の一部を具現してもよい。また、預け先ノード２００の機能の一部が、制御部２２０よって具現されてもよい。例えば、制御部２２０が入力部２１０、通信部２３０または出力部２４０の機能の一部を具現してもよい。
【０１４２】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【０１４３】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
所定のデータから取得された第１のデータおよびＰ２Ｐデータベースから取得された第２のデータを用いて前記所定のデータの検証を行う検証部を備える、
情報処理装置。
（２）
前記検証部は、前記第１のデータおよび前記第２のデータを用いて所定のデータ処理を行い、前記データ処理の結果が所定の条件を満たすような前記第１のデータを探索する、
前記（１）に記載の情報処理装置。
（３）
前記検証部は、前記所定のデータに対して指定された範囲の中で前記第１のデータを探索する、
前記（２）に記載の情報処理装置。
（４）
前記範囲は、前記Ｐ２Ｐデータベースから取得される、
前記（３）に記載の情報処理装置。
（５）
前記範囲を指定する指定部を更に備える、
前記（３）に記載の情報処理装置。
（６）
前記検証部は、前記データ処理の結果が前記条件を満たす場合、前記第１のデータおよび前記第２のデータを用いて前記Ｐ２Ｐデータベースの更新を行う、
前記（２）から（５）のいずれか１項に記載の情報処理装置。
（７）
前記検証部は、他の情報処理装置による前記データ処理の結果が前記条件を満たすことを検証する、
前記（６）に記載の情報処理装置。
（８）
前記第１のデータは、前記所定のデータにおける開始位置の情報およびデータ長の情報によって表される、
前記（１）から（７）のいずれか１項に記載の情報処理装置。
（９）
前記Ｐ２Ｐデータベースはブロックチェーンである、
前記（１）から（８）のいずれか１項に記載の情報処理装置。
（１０）
前記データ処理はハッシュ値を算出する処理である、
前記（２）に記載の情報処理装置。
（１１）
所定のデータから取得された第１のデータおよびＰ２Ｐデータベースから取得された第２のデータを用いて前記所定のデータの検証を行うことを有する、
情報処理方法。
（１２）
Ｐ２Ｐネットワークに対して、所定のデータについての検証要求を行う検証要求部と、
前記Ｐ２Ｐネットワークから取得された情報に基づいて、前記所定のデータの検証状況を確認する確認部と、を備える、
情報処理装置。
（１３）
前記検証要求部は、前記Ｐ２Ｐネットワークに対して、さらに、前記所定のデータについての検証条件を提供する、
前記（１２）に記載の情報処理装置。
（１４）
Ｐ２Ｐネットワークに対して、所定のデータについての検証要求を行うことと、
前記Ｐ２Ｐネットワークから取得された情報に基づいて、前記所定のデータの検証状況を確認することと、を有する、
情報処理方法。
【符号の説明】
【０１４４】
１００    預け元ノード
２００    預け先ノード
１１０、２１０    入力部
１２０、２２０    制御部
１２１、２２１    処理部
１３０、２３０    通信部
１４０、２４０    出力部
１５０、２５０    記憶部
【図１】
2018211834.tif 000003
【図２】
2018211834.tif 000004
【図３】
2018211834.tif 000005
【図４】
2018211834.tif 000006
【図５】
2018211834.tif 000007
【図６】
2018211834.tif 000008
【図７】
2018211834.tif 000009
【図８】
2018211834.tif 000010
【国際調査報告】
2018211834.tif 000011
2018211834.tif 000012
2018211834.tif 000013
2018211834.tif 000014