(57)【要約】【課題】分散公開型データベースに不必要なデータを残しにくいデータ管理方法を提供する。【解決手段】データ管理方法は、第１データを取得し、第１データに関連付けられた第２データを取得し、第１データおよび第２データを含む合成データを生成することを含む。データ管理方法は、合成データに一方向性関数を含むアルゴリズムを適用することにより、合成データに基づくビット列を生成することを含む。データ管理方法は、ビット列を、分散公開型データベース２０を有するネットワークに送信することを含む。【選択図】図１
2020028052.tif 000002
【特許請求の範囲】
【請求項１】
第１データを取得し、
前記第１データに関連付けられた第２データを取得し、
前記第１データおよび前記第２データを含む合成データを生成し、
前記合成データに一方向性関数を含むアルゴリズムを適用することにより、前記合成データに基づくビット列を生成し、
前記ビット列を、分散公開型データベースを有するネットワークに送信する、
ことを含むデータ管理方法。
【請求項２】
前記第１データは、第１ユーザにより生成され、
前記第２データは、前記第１ユーザとは異なる第２ユーザにより生成される、
請求項１に記載のデータ管理方法。
【請求項３】
前記第１データの取得を受けて、前記第２データの生成のリクエストを前記第２ユーザに送信し、
前記リクエストに対する前記第２ユーザの行為に起因して、前記第２データを生成する、
ことをさらに含む請求項２に記載のデータ管理方法。
【請求項４】
前記第２ユーザのステータスを示すステータスデータを取得することをさらに含み、
前記合成データは、前記ステータスデータをさらに含む、
請求項２または３に記載のデータ管理方法。
【請求項５】
前記第２データの取得を受けて、前記第２ユーザにトークンを送信する、
ことをさらに含む請求項２から４のいずれか１項に記載のデータ管理方法。
【請求項６】
前記第１データは、第１時刻に生成され、
前記第２データは、前記第１時刻より遅い第２時刻に生成される、
請求項１から５のいずれか１項に記載のデータ管理方法。
【請求項７】
前記合成データを、前記分散公開型データベースとは異なる、アクセス制限可能なデータベースに保存する、
請求項１から６のいずれか１項に記載のデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理方法、特に、分散公開型データベースを用いたデータ管理方法に関する。
【背景技術】
【０００２】
従来、分散公開型データベース（ブロックチェーン）を用いたデータ管理方法が知られている（特許文献１参照）。特許文献１は、分散公開型データベースを利用する個人データの管理方法を開示している。具体的には、第１のリモート装置（ユーザのリモート装置）は、運転免許証のような身分証明書から個人データを取得し、ハッシュアルゴリズムを用いて個人データからビット列を生成する。ユーザのリモート装置は、さらに、ネットワークを介して分散公開型データベースに格納するためにこのビット列を送信する。第１のリモート装置は、その後、ネットワークを介して分散公開型データベースからトランザクション番号を受信し、そのトランザクション番号と個人データを第２のリモート装置（認証者のリモート装置）に送信する。第２のリモート装置は、トランザクション番号を使用して、分散公開型データベースから署名されたビット列を検索する。第２のリモート装置は、さらに、受信した個人データからビット列を生成し、署名されたビット列が生成されたビット列と同じであることを検証する。そして、第２のリモート装置は、証明書を作成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１８−５１６０３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術は、改ざんされにくい分散公開型データベースの特徴をうまく利用して、個人データの正当性を証明している。しかも、個人データ自体は分散公開型データベースに送信されないので、個人データが公衆に暴露される可能性を低減または排除している。しかし、特許文献１の技術は、分散公開型データベースに不必要なデータを永久に残してしまう可能性を有する。例えば、第１のリモート装置が不正な個人データを利用し、後にそれが判明してその個人データを利用しなくなる場合がある。この場合、不正な個人データから生成され、もはや不必要となったビット列は、分散公開型データベースに永久に保存されることになる。本発明は、分散公開型データベースに不必要なデータを残しにくいデータ管理方法を提供する。
【課題を解決するための手段】
【０００５】
本発明に係るデータ管理方法は、第１データを取得し、第１データに関連付けられた第２データを取得し、第１データおよび第２データを含む合成データを生成することを含む。データ管理方法は、合成データに一方向性関数を含むアルゴリズムを適用することにより、合成データに基づくビット列を生成することを含む。データ管理方法は、ビット列を、分散公開型データベースを有するネットワークに送信することを含む。
【０００６】
このデータ管理方法であれば、第１データと、第１データに関連付けられた第２データが合成された後に、ビット列が生成される。これにより、２つの関連するデータに対して一つのビット列が与えられ、分散公開型データベースに保存される。これにより、例えば、最初に生成された第１データに誤った情報が含まれたために、新たな第１データが作成され、誤った情報を含んだ第１データが不要となったとする。このような場合であっても、新たな第１データと、新たな第１データに関連する第２データが再度合成されて、分散公開型データベースに保管される。このため、不要となる誤った情報を含んだ第１データのみが記録されたブロックが、分散公開型データベースに保存されることを防止できる。
【発明の効果】
【０００７】
本発明によれば、分散公開型データベースに不必要なデータを残しにくいデータ管理方法を提供できる。
【図面の簡単な説明】
【０００８】
【図１】本発明のデータ管理システムの図。
【図２】本発明のデータ管理方法のコントラクト登録からコントラクト実行まで一例におけるブロック生成の図。
【図３】本発明のデータ管理方法の管理者登録からコントラクト実行までの一例におけるフローチャート。
【図４】本発明のデータ管理方法の第１データ作成からトークン取得までのフローチャート。
【図５】本発明のデータ管理方法の閲覧リクエストから閲覧表示までのフローチャート。
【図６】本発明の第１データ作成から閲覧表示までにおけるブロック生成の図。
【図７】比較例の分散公開型データベースにおけるブロック生成の図。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を参照しながら説明する。なお、本実施形態では、第１データとして職歴情報を入力し、第２データとして第１データのリファレンス情報を入力する例について説明する。
【００１０】
図１に示すように、データ管理システム２は、ネットワークシステム３と、管理サーバ４と、アクセス制限付きデータベース５と、第１ユーザ端末６と、第２ユーザ端末８と、閲覧者端末１０と、を含む。ネットワークシステム３は、分散公開型データベース２０を有する。管理サーバ４、ネットワークシステム３、および第１ユーザ端末６から閲覧者端末１０までの各端末は、インターネットを介して接続される。また、管理サーバ４、および、第１ユーザ端末６から閲覧者端末１０までの各端末は、実際にはＣＰＵ、ＲＡＭ、ＲＯＭ、通信インターフェースなどを備えて構成された電子計算機であり、ＲＡＭやＲＯＭ、ハードディスクまたは半導体メモリ等の記録媒体に記憶された各部に対応するプログラムが動作することによって実現される。
【００１１】
図１に示すように、ネットワークシステム３は、Ｐ２Ｐ（Ｐｅｅｒ  ｔo  Ｐｅｅｒ）型ネットワークを介して接続された端末１０１から端末１０６（以下各ノードと記す）を含む。本実施形態では、各ノードの台数を６台で示したが、ノードは複数台であればよい。
各ノードは、実際にはＣＰＵ、ＲＡＭ、ＲＯＭ、通信インターフェースなどを備えて構成された電子計算機であり、ＲＡＭやＲＯＭ、ハードディスクまたは半導体メモリ等の記録媒体に記憶された各部に対応するプログラムが動作することによって実現される。また、各ノードは、それぞれ別のノードと通信を行うとともに、すべてのノードは、同じデータを保存することが可能な状態となっている。さらに、各端末は、ネットワークシステム３にアクセスするためのアカウントアドレスと秘密鍵を作成する。ネットワークシステム３は、各端末に紐づくアカウントアドレスによって、各端末を識別する。
【００１２】
ネットワークシステム３は、分散公開型データベース２０を含む。分散公開型データベース２０は、ネットワークシステム３上の各ノードに設けられる。図２は、本発明のデータ管理方法のコントラクト登録からコントラクト実行までの一例におけるブロック生成の図である。図２に示すように、分散公開型データベース２０は、複数のブロックを保存している。図２のブロック生成の図では、例えば、ブロックは、ブロック２１からブロック２３の３つである。しかし、分散公開型データベース２０は、実際には、多数のブロックが保存されている。複数のブロックには、前のブロックのハッシュ値（例えば図２の２２１参照）、一度だけ使用される使い捨ての数字で構成される特別な値（以下ノンスと記す）（例えば図２の２２２参照）、およびトランザクションデータ群（例えば図２の２２３参照）が記録されている。
【００１３】
トランザクションデータは、各端末または各ノードで生成されたデータを、分散公開型データベース２０に記録するために、各端末または各ノードからネットワークシステム３に送信されるデータである。本実施形態では、トランザクションデータは、後述するコントラクトの情報、コントラクトの実行指示、コントラクトの実行結果、およびユーザ間のトークンの移動に関する取引情報を含む。しかし、これに限定されるものではなく、例えば、本発明のデータ管理システム２以外の各端末で生成された取引情報およびコントラクトに関連する情報も含む。図２に示すように、例えば、ブロック２１とブロック２２に記録された、その他取引情報、および、その他実行結果は、データ管理システム２以外の各端末で生成されたデータのトランザクションデータを示す。
【００１４】
コントラクトは、ネットワークシステム３上の各端末および各ノードの全てが実行可能なプログラムである。本実施形態では、コントラクトは、職歴保存コントラクトと、預託コントラクトである。この他、コントラクトは、各端末に紐づくアカウントアドレスから、管理サーバ４に紐づくアカウントアドレスにトークンを送信するプログラムなどが考えられる。コントラクトは、ネットワークシステム３上で実行する処理を定める部分と、これら処理に入力する変数で構成される。コントラクトを作成する端末は、ネットワークシステム３上で実行する処理を作成すると、これら処理の内容および変数の内用をコンパイルしバイトコードを作成する。また、コントラクトを作成する端末は、各端末とネットワークシステム３が、これら処理の内容と変数を互いに簡単に解読できるようにアプリケーション・バイナリ・インターフェース（以下ＡＢＩと記す）を作成する。ネットワークシステム３の分散公開型データベース２０には、このバイコードとＡＢＩが、コントラクトとして記録される。ネットワークシステム３は、分散公開型データベース２０にコントラクトが記録されると、コントラクトアドレスを付与する。各端末は、このコントラクトアドレスとＡＢＩを取得し、変数を入力してデータを生成し、ネットワークシステム３にトランザクションデータとして送信することで、コントラクトの実行を指示する。
【００１５】
職歴保存コントラクトは、ネットワークシステム３が、職歴情報を入力したユーザから職歴情報とリファレンス情報を合成した合成データに基づくビット列を取得した際に、管理サーバ４に紐づくアカウントアドレスから、職歴情報を入力したユーザ端末に紐づくアカウントアドレス、および、リファレンス情報を入力したユーザ端末に紐づくアカウントアドレスに対して報酬となるトークン（以下リワードトークンと記す）を移動するという処理を実行するプログラムである。職歴保存コントラクトの変数は、職歴情報を入力するユーザ端末に紐づくアカウントアドレス、および、リファレンス情報を入力するユーザ端末に紐づくアカウントアドレス、合成データに基づくビット列である。さらに、職歴保存コントラクトは、リファレンス情報を入力したユーザのステータスデータを更新する処理を含んだプログラムとしてもよい。本実施形態では、職歴情報を入力するユーザ端末は第１ユーザ端末６である。また、リファレンス情報を入力するユーザ端末は、第２ユーザ端末８である。合成データに基づくビット列は、管理サーバ４が作成し、職歴情報を入力するユーザ端末（本実施形態では第１ユーザ端末６）に送信する。
【００１６】
また、預託コントラクトは、職歴情報を入力したユーザおよびリファレンス情報を入力したユーザから閲覧許可が送信された際に、閲覧する者の端末に紐づくアカウントアドレスから預託されたトークンを、職歴情報を入力したユーザ端末に紐づくアカウントアドレス、および、リファレンス情報を入力したユーザ端末に紐づくアカウントアドレスに移動する処理を実行するプログラムである。預託コントラクトの変数は、閲覧する者の端末に紐づくアカウントアドレス、職歴情報を入力するユーザ端末に紐づくアカウントアドレス、およびリファレンス情報を入力するユーザ端末に紐づくアカウントアドレスである。本実施形態では、閲覧する者の端末は、閲覧者端末１０である。職歴情報入力するユーザ端末は第１ユーザ端末６である。また、リファレンス情報を入力するユーザ端末は、第２ユーザ端末８である。
【００１７】
ネットワークシステム３は、以下の処理を実行するネットワークプログラムを含む。ネットワークプログラムは、実際には各ノードに保存され、各ノード間で通信しながらネットワークプログラムを実行する。ネットワークシステム３は、管理サーバ４と、第１ユーザ端末６と、第２ユーザ端末８とのいずれかから、トランザクションデータを受信する。ネットワークシステム３は、トランザクションデータを受信すると、一時的に複数のトランザクションデータを集積する。また、ネットワークシステム３は、各トランザクションデータに、トランザクションアドレスを付与する。ネットワークシステム３は、各ノードの中から分散公開型データベース２０にブロックを生成するノード（以下マイナーと記す）を決定する。マイナーは、集積されたトランザクションデータから、トランザクションデータをランダムに抽出し、トランザクションデータ群を生成する。このとき、マイナーは、本発明のデータ管理システム２の各端末が生成したトランザクションデータ以外を抽出することもある。マイナーは、前回のブロックのハッシュ値と一致する数字配列を探し出す演算を実行し、ノンスをハッシュ値に対し付加して、トランザクションデータ群を含む新しいブロックを生成する。その後、マイナーが、マイナー以外の各ノードにブロックを送信する。各ノードは、ブロックの内容を検証したうえで、問題がなければ、各ノードにブロックを追加する。この結果、各ノードに全く同じデータが保存される。このような分散公開型データベース２０は、ブロックチェーンと称され、データの改ざんの防止に使用される。なお、各ノードは、管理サーバ４、第１ユーザ端末６から閲覧者端末１０までの各端末を含んで構成されてもよい。
【００１８】
また、ネットワークシステム３は、コントラクトの保存、実行の処理についても同様に、各端末からトランザクションデータを受信して処理する。すなわち、コントラクトの保存と実行の処理は、マイナーによって実行される。但し、ネットワークシステム３は、コントラクトを保存する処理がトランザクションデータに含まれる場合は、このコントラクトに対してコントラクトアドレスを付与する。
【００１９】
管理サーバ４は、職歴情報およびリファレンス情報を、管理者によって管理する端末である。管理サーバ４は、以下の処理を実行する管理プログラムを含む。管理サーバ４は、職歴情報とリファレンス情報の合成データを作成し、合成データに対し一方向性関数を含むアルゴリズムを適用することにより、合成データに基づくビット列を作成する。一方で、職歴情報、リファレンス情報、および合成データに基づくビット列を、アクセス制限付きデータベース５に格納する。また、管理サーバ４は、閲覧者端末１０から閲覧要求があった際に、アクセス制限付きデータベース５の情報と、分散公開型データベース２０に格納された情報の整合を確認し、閲覧者端末１０に閲覧用画面を表示させる。整合する情報については、後述する。なお、本実施形態では、一方向性関数を含むアルゴリズムは、ハッシュアルゴリズムである。また、合成データに基づくビット列は、ハッシュ値である。しかし、一方向関数を含むアルゴリズムであれば、ハッシュアルゴリズムに限定されない。例えば、一方向関数を含むアルゴリズムは、チェックサムアルゴリズムでもよい。その場合、ビット列は、ハッシュ値の代わりにチェックサム値となる。
【００２０】
また、管理サーバ４は、職歴保存コントラクトおよび預託コントラクトを生成し、ネットワークシステム３にトランザクションデータとして送信する。管理サーバ４は、職歴保存コントラクトおよび預託コントラクトとして、ネットワークシステム３上で実行する処理を管理サーバ４上で作成し、これらをバイトコードに変換して、ネットワークシステム３に送信する。また、管理サーバ４は、ユーザがアクセス可能な領域に設けるＷｅｂサイト、もしくは、ダウンロード可能なアプリケーションプログラムを保存している。また、アプリケーションプログラムは、管理者によって第三者のプラットホームを通じて配布されてもよい。ユーザは、これらＷｅｂサイトもしくはアプリケーションプログラムをダウンロードすることで、管理サーバ４およびネットワークシステム３にアクセスする。また、管理サーバ４は、各端末が作成したアカウントアドレスを取得し、保存している。
【００２１】
アクセス制限付きデータベース５は、分散公開型データベース２０と異なるデータベースである。アクセス制限付きデータベース５は、アクセス制限付きデータベース５にアクセスできるユーザを制限することができ、アクセス制限付きデータベース５に保存されるデータへの権限のないユーザによるアクセスを制限する。なお、アクセス制限付きデータベース５は、アクセス制限可能なデータベースの一例であり、これに限定されるものではない。例えば、ネットワークシステム３上に保存されるブロックと異なるデータベース保存エリア（以下サイドチェーンと記す）を設けて、サイドチェーンに職歴情報およびリファレンス情報を保存してもよい。この場合、職歴情報およびリファレンス情報は、可逆暗号化され保存される。さらに、職歴情報とリファレンス情報は、秘密鍵によってデータの参照が制御される。これにより、職歴情報およびリファレンス情報へアクセスが制限される。
【００２２】
第１ユーザ端末６は、第１ユーザによって職歴情報が入力される端末である。ここで職歴情報は、例えば、職歴や、職場での評価、職業の実績、承認者（第２ユーザ）などの情報である。第１ユーザ端末６は、例えば、職歴情報の入力欄を含む画面を第１ユーザに提示する。第１ユーザは、例えば、その入力欄にテキストデータを入力することにより、職歴情報を入力することができる。また、第１ユーザは、例えば、職歴情報を含む文書ファイルをその入力欄にドラッグアンドドロップすることにより、職歴情報を入力することができる。いずれにせよ、第１ユーザは、職歴情報を入力することによって、第１データを生成する。また、第１ユーザ端末６は、承認者を選択する画面を提示し、第１ユーザが第２ユーザを検索できるようにしてもよい。第１ユーザは、例えば、承認者として第２ユーザを選択することで、第２ユーザに対して、リファレンス情報を作成するようにリクエストできる。第１ユーザ端末６は、管理サーバ４にアクセスし、Ｗｅｂサイトまたはアプリケーションプログラムをダウンロードすることで、上述の画面を取得する。
【００２３】
第２ユーザ端末８は、第１ユーザが入力した職歴情報に対して、第１ユーザと異なる第２ユーザが、関連する情報であるリファレンス情報を入力する端末である。ここで、リファレンス情報とは、第１ユーザとの関係に関する情報である。リファレンス情報は、例えば、第１ユーザが入力した職歴情報の内容を承認することを示す承認情報、承認したユーザのステータスデータを含む。ステータスデータは、例えば、課長、部長、社長のような社内での職位の情報であってもよい。また、ステータスデータは、リワードトークンの報酬額や、リファレンス情報の入力回数、他のユーザからリファレンスリクエストを受けた回数に応じた地位を示す情報であってもよい。さらに、ステータスデータは、それらを総合的に計算しスコア化した信用度を示す情報であってもよい。
【００２４】
また、第２ユーザ端末８は、例えば、リファレンス情報の入力欄を含む画面を第２ユーザに提示する。第２ユーザは、例えば、その入力欄にテキストデータを入力することにより、リファレンス情報を入力することができる。また、第２ユーザ端末８が、承認するか否かのチェックボックス、複数のステータスの候補からいずれかを選択するためのチェックボックス、複数の関係の候補からいずれかを選択するためのチェックボックスを表示した画面を提示することとしてもよい。第２ユーザは、例えば、チェックボックスをクリックすることで、リファレンス情報を入力することができる。いずれにせよ、第２ユーザは、リファレンス情報を入力することによって、第２データを生成する。すなわち、リファレンス情報は、第２ユーザの入力行為に起因して生成される。第２ユーザ端末８は、管理サーバ４にアクセスし、Ｗｅｂサイトの閲覧またはアプリケーションプログラムをダウンロードすることで、上述の画面を取得する。
【００２５】
閲覧者端末１０は、閲覧者が、職歴情報およびリファレンス情報を閲覧する端末である。閲覧者端末１０は、例えば、ユーザを表示した画面と、閲覧リクエストボタンを表示した画面を提示することとしてもよい。さらに、閲覧者端末１０は、閲覧するために預託するトークンが表示された画面を表示することとしてもよい。閲覧者は、例えば、表示されたユーザの中から第１ユーザを選択し、閲覧リクエストボタンをクリックすることで、トークンの預託と、第１ユーザおよび第２ユーザの職歴情報とリファレンス情報を閲覧することができる。閲覧者端末１０は、管理サーバ４にアクセスし、Ｗｅｂサイトの閲覧またはアプリケーションプログラムをダウンロードすることで、上述の画面を取得する。
【００２６】
次に、図２および図３のフローチャートと用いて、本発明のデータ管理方法における管理者登録からコントラクト実行までのフローを説明する。
【００２７】
図３は、本発明のデータ管理方法の管理者登録からコントラクト実行までにおけるフローチャートである。なお、ユーザ端末は、第１ユーザ端末６を例にあげて説明するが、ユーザが使用する端末であれば第２ユーザ端末８でも、閲覧者端末１０でもよい。また、コントラクトは、預託コントラクトであっても、職歴保存コントラクトであってもよい。
【００２８】
管理サーバ４は、ネットワークシステム３にアクセスするための秘密鍵と、管理サーバ４に紐づくアカウントアドレスを作成する（Ｓ１）。管理サーバ４は、コントラクトのデータを生成したのち、作成したアカウントと秘密鍵を用いてこれらデータに署名し、トランザクションデータとしてネットワークシステム３に送信する（Ｓ２）。ネットワークシステム３は、コントラクトを取得し（Ｓ３）、コントラクトアドレスを発行する（Ｓ４）。また、ネットワークシステム３は、マイナーによって抽出されたコントラクト含むトランザクショデータ群２２３（図２参照）を、分散公開型データベース２０のブロック２１（図２参照）に記録する（Ｓ５）。
【００２９】
管理サーバ４は、コントラクトアドレスを取得し（Ｓ６）、管理サーバ４のユーザがアクセス可能な領域に設けるＷｅｂサイト、もしくは、第１ユーザ端末６にダウンロード可能なアプリケーションプログラムに、コントラクトアドレスを組み込む（Ｓ７）。
【００３０】
第１ユーザ端末６は、管理サーバ４にアクセスすることで、管理サーバ４に保存されているＷｅｂサイトにアクセスする、もしくは、アプリケーションプログラムをダウンロードする（Ｓ８）。第１ユーザ端末６は、ネットワークシステム３にアクセスするための秘密鍵と、第１ユーザ端末６に紐づくアカウントアドレスを作成し、第１ユーザ端末６に紐づくアカウントアドレスを管理サーバ４に送信する（Ｓ９）。管理サーバ４は、第１ユーザ端末６に紐づくアドレスを取得し、保存する（Ｓ１０）。また、第１ユーザ端末６は、管理サーバ４にアクセスすることで、管理サーバ４に保存されているＷｅｂサイトにアクセスする、もしくは、アプリケーションプログラムをダウンロードすることで、コントラクトアドレスとＡＢＩを取得する（Ｓ１１）。第１ユーザ端末６は、取得したコントラクトアドレスから実行すべきコントラクトを特定する。さらに第１ユーザ端末６は、取得したＡＢＩの情報に対し変数を入力する。第１ユーザ端末６は、これら情報を含むコントラクト実行指示のためのデータを生成し、作成したアカウントと秘密鍵を用いてこれらデータに署名し、トランザクションデータとしてネットワークシステム３に送信する（Ｓ１２）。
【００３１】
ネットワークシステム３は、コントラクト実行指示を含むトランザクションデータを集積し（Ｓ１３）、トランザクションアドレスを発行する（Ｓ１４）。また、ネットワークシステム３は、マイナーによって抽出されたコントラクト実行指示を含むトランザクショデータ群２２４（図２参照）を、分散公開型データベース２０のブロック２２（図２参照）に記録する（Ｓ１５）。さらに、ネットワークシステム３は、コントラクトを実行し（Ｓ１６）、実行結果のデータを生成する（Ｓ１７）。その後、マイナーによって抽出されたコントラクト実行結果を含むトランザクショデータ群２２５（図２参照）を、分散公開型データベース２０のブロック２３（図２参照）に記録する（Ｓ１８）。
【００３２】
次に図４および図５のフローチャート、および図６を用いて、データ管理システム２における、第１ユーザによる職歴情報の入力から閲覧者による職歴情報の閲覧までのフローについて説明する。なお、本実施形態では、図３に示すフローチャートに基づいて、職歴保存コントラクトと、預託コントラクトが分散公開型データベース２０に保存された状態である。また、第１ユーザ端末６、第２ユーザ端末８、および閲覧者端末１０は、管理サーバ４に保存されるＷｅｂサイトにアクセスする、または、管理サーバ４からアプリケーションプログラムをダウンロードすることで、職歴保存コントラクトおよび預託コントラクトのコントラクトアドレスを取得している状態である。同様に、第１ユーザ端末６、第２ユーザ端末８、および閲覧者端末１０は、秘密鍵およびアカウントアドレスを作成し、ネットワークシステム３へ送信するデータに対し、署名が可能状態である（図３のＳ９参照）。また、第１ユーザ端末６、第２ユーザ端末８、および閲覧者端末１０のそれぞれに紐づくアカウントアドレスは、管理サーバ４に保存された状態である（図３のＳ１０参照）。これにより、第１ユーザ端末６、第２ユーザ端末８、および閲覧者端末１０は、管理サーバ４に保存されるＷｅｂサイトにアクセスする、または、管理サーバ４からアプリケーションプログラムをダウンロードすることで、各端末に紐づくアカウントアドレスを取得可能な状態である。
【００３３】
図４は、本発明のデータ管理方法における第１データ作成からトークン取得までのフローチャートである。図６は、第１データ作成から閲覧表示までにおけるブロック生成の図である。第１ユーザが第１ユーザ端末６に職歴情報を入力することで、第１ユーザ端末６に第１データが生成（作成）される。第１ユーザ端末６に、職歴情報が入力されると、第１ユーザ端末６は、職歴情報を管理サーバ４に送信する（Ｓ１０１）。また、第１ユーザ端末６は、第１ユーザに提示した選択画面で第２ユーザが選択されることで、第２ユーザに対するリファレンス情報（第２データ）の生成のリクエストを管理サーバ４に送信する（Ｓ１０２）。さらに第１ユーザ端末６は、第２ユーザが選択された際に、第２ユーザ端末８に紐づくアカウントアドレスを取得する。管理サーバ４は、第１ユーザ端末６から職歴情報を取得する（Ｓ１０３）。また管理サーバ４は、第２ユーザに対するリファレンス情報を生成するリクエストを取得する（Ｓ１０４）。管理サーバ４は、リファレンス情報の生成リクエストの取得を受けて、第１ユーザと異なる第２ユーザに対するリファレンス情報の生成のリクエストを第２ユーザ端末８に送信する（Ｓ１０５）。
【００３４】
第２ユーザ端末８は、リファレンス情報の入力リクエストを取得し（Ｓ１０６）、第２ユーザがリファレンス情報を入力することで、第２ユーザ端末８にリファレンス情報が生成される。すなわち、リファレンス情報は、職歴情報が生成された第１時刻よりも遅い第２時刻に生成される。第２ユーザ端末８は、リファレンス情報が生成されると管理サーバ４にリファレンス情報を送信する（Ｓ１０７）。その後、管理サーバ４は、リファレンス情報を取得する（Ｓ１０８）。
【００３５】
管理サーバ４は、職歴情報とリファレンス情報の両方を取得すると、職歴情報とリファレンス情報の合成データを作成する（Ｓ１０９）。一方、管理サーバ４は、合成データに対し一方向性関数を含むアルゴリズムを適用することにより、合成データに基づくビット列を作成する（Ｓ１１０）。その後、管理サーバ４は、職歴情報およびリファレンス情報を、アクセス制限付きデータベース５に保存する（Ｓ１１１）。管理サーバ４は、ビット列の作成を受けて、リファレンス情報の完了通知を生成する。また、管理サーバ４は、第１ユーザ端末６に完了通知、およびビット列を送信する（Ｓ１１２）。
【００３６】
第１ユーザ端末６は、リファレンス情報の完了通知、およびビット列を取得すると（Ｓ１１３）、登録データの確認画面を生成する（Ｓ１１４）。第１ユーザ端末６は、第１ユーザによる登録情報の確認が完了すると（Ｓ１１４）、職歴保存コントラクトのコントラクトアドレスと、ＡＢＩに基づく変数を入力する。ここで、変数は、第１ユーザ端末６に紐づくアカウントアドレス、第２ユーザ端末８に紐づくアカウントアドレス、および合成データのビット列である。第１ユーザ端末６は、これら変数を入力し、職歴保存コントラクトを実行するためのデータを生成する（Ｓ１１５）。第１ユーザ端末６は、職歴保存コントラクトの実行指示のデータに署名し、トランザクションデータとしてネットワークシステム３に送信する（Ｓ１１６）。なお、Ｓ１１３からＳ１１６までの処理が、図３のＳ１１からＳ１２の処理に相当する。
【００３７】
ネットワークシステム３のマイナーは、ビット列を含むトランザクションデータを取得すると、職歴保存コントラクトの実行指示を分散公開型データベース２０の、ブロック２０１（図６参照）に記録する（Ｓ１１７）。ネットワークシステム３のマイナーは、職歴保存コントラクトを実行し、職歴保存コントラクトに基づいて、管理サーバ４に紐づくアカウントアドレスから第１ユーザ端末６および第２ユーザ端末８に紐づくアカウントアドレスにリワードトークンを移動する（Ｓ１１８）。その後、管理サーバ４は、分散公開型データベース２０からリワードトークンのアドレスの移動情報を取得し、管理サーバ４から第１ユーザ端末６および第２ユーザ端末８にリワードトークンの移動通知を送付する（Ｓ１１９）。第１ユーザ端末６および第２ユーザ端末８は、リワードトークンの移動通知を受け取る（Ｓ１２０、Ｓ１２１）。また、このとき、第２ユーザのステータスデータを更新してもよい。ステータスデータの更新とは、例えば、ステータスデータが第２ユーザのリファレンス情報の入力回数に応じた地位であった場合に、リファレンス情報の入力回数を１回増加させることを示す。
【００３８】
また、ネットワークシステム３のマイナーは、実行結果を第３ブロック２０３（図６参照）に保存するためのトランザクションデータ群２０５（図６参照）を生成する。実行結果は、ビット列を保存する処理の完了、および、リワードトークンのアドレスの移動の処理の完了を示す。その後、マイナーによって、ビット列およびリワードトークン取引情報を含むトランザクションデータ群２０５が第３ブロック２０３に記録される（Ｓ１２２）。
【００３９】
次に、データ管理システム２の職歴情報およびリファレンス情報の閲覧についてのフローについて説明する。図５は、本発明のデータ管理方法における閲覧リクエストから閲覧表示までのフローチャートである。
【００４０】
図５に示すように、閲覧者は、管理サーバ４に保存されるＷｅｂサイトにアクセスする、または、管理サーバ４からアプリケーションプログラムをダウンロードすることで、管理サーバ４から預託コントラクトのコントラクトアドレスを受け取る（Ｓ２０１、Ｓ２０２）。閲覧者が、第１ユーザの職歴情報およびリファレンス情報の閲覧操作をすると、閲覧者端末１０は、第１ユーザ端末６に紐づくアカウントアドレス、および第２ユーザ端末８に紐づくアカウントアドレスを取得するとともに、管理サーバ４に閲覧リクエストを送信する（Ｓ２０３）。また、閲覧者端末１０は、預託コントラクトのコントラクトアドレスおよびＡＢＩに基づいて、変数の第１ユーザ端末６に紐づくアカウントアドレス、および第２ユーザ端末８に紐づくアカウントアドレスを入力し、預託コントラクト実行指示のデータを生成する。閲覧者端末１０は、生成したデータに署名し、トランザクションデータとしてネットワークシステム３に送信する（Ｓ２０４）。なお、Ｓ２０２からＳ２０４までの処理が、図３のＳ１１からＳ１２までの処理に相当する。ネットワークシステム３のマイナーは、第２ブロック２０２（図６参照）に取引情報を記録する（Ｓ２０５）
管理サーバ４は、閲覧リクエストを取得すると（Ｓ２０６）、閲覧許可リクエストを第１ユーザ端末６および第２ユーザ端末８に送信する（Ｓ２０７）。第１ユーザおよび第２ユーザによって閲覧が許可されると、第１ユーザ端末６および第２ユーザ端末８は、閲覧許可をネットワークシステム３に送信する（Ｓ２０８）。
【００４１】
ネットワークシステム３のマイナーは、閲覧許可を取得すると、預託コントラクトに基づいて閲覧者端末１０に紐づくアカウントアドレスから、第１ユーザ端末６に紐づくアカウントアドレスおよび第２ユーザ端末８に紐づくアカウントアドレスへトークンを移動する。また、ネットワークシステム３のマイナーは、第４ブロック２０４（図６参照）に取引情報を記録する（Ｓ２０９）。第１ユーザ端末６および第２ユーザ端末８は、トークンの移動通知を受け取る（Ｓ２１０）。
【００４２】
管理サーバ４は、閲覧許可を取得した後、ネットワークシステム３から、ビット列およびその他必要な情報を取得する（Ｓ２１１、Ｓ２１２）。その後、管理サーバ４は、アクセス制限付きデータベース５から、第１ユーザの職歴情報、および第２ユーザのリファレンス情報を取得する（Ｓ２１３）。管理サーバ４は、第１ユーザの職歴情報、および第２ユーザのリファレンス情報を合成し、合成データに基づくビット列を再作成する（Ｓ２１４）。管理サーバ４は、取得した合成データに基づくビット列と分散公開型データベース２０のビット列との整合性を検証し（Ｓ２１５）、整合する場合は閲覧画面を生成し閲覧者端末１０へ送信する（Ｓ２１６）。
【００４３】
図７は、比較例の分散公開型データベースにおけるブロック生成の図である。比較例のブロックでは、第１データは第１ブロック３０１に記録される。また、第２データは、第１データと別の第２ブロック３０２に記録される。その後、例えば第１データが修正されたとする。この場合、第１データの修正データは、また別のブロックである第３ブロック３０３に記録される。さらに、第２データは第１データと関連した場合、第２データは第１データの修正を反映して、さらに別のブロックである第４ブロック３０４に記録される。このとき、第１データおよび第２データは不必要なデータとなる。これにより、第１ブロック３０１および第２ブロック３０２を生成する際に必要となった、マイナーの実行したハッシュ値と一致する数字配列を探し出す演算が無駄となる。このように、無駄なブロックが生成されると、分散公開型データベースの演算負荷が重くなる。また、マイナーは、演算を行った報酬として、トークンを受け取る場合がある。マイナーに支払う報酬は、ブロック生成にかかる手数料としてユーザおよび管理者から徴収される。このように、無駄なブロックが生成された場合、ユーザおよび管理者に無駄な手数料が発生する。
【００４４】
本発明のデータ管理システム２によれば、第１データと第２データは合成されて一つのビット列が作成される。すなわち、最初に生成された第１データに誤った情報が含まれたために、新たな第１データが作成され、誤った情報を含んだ第１データが不必要となったとする。このような場合であっても、新たな第１データと、新たな第１データに関連する第２データが再度合成されて、分散公開型データベースに保管される。このため、不必要となる誤った情報を含んだ第１データのみが記録されたブロックや、この第１データと関連する第２データのみが記録されたブロックが、分散公開型データベース２０に保存されることを防止できる。このため、分散公開型データベース２０は、不必要なデータが記録された状態のブロックが残りにくい。これにより、不必要なブロックを生成する際に発生する演算が少なくなり、ネットワークシステム３の演算負荷を軽くすることができる。また、ユーザおよび管理者に無駄な手数料が発生することを防止できる。
【００４５】
また、本発明のデータ管理システム２によれば、分散公開型データベース２０に保存されるデータは、合成データのビット列である（図４のＳ１１０参照）。職歴情報およびリファレンス情報は、アクセス制限付きデータベース５に保存される（図４のＳ１１１参照）。アクセス制限付きデータベース５に保存された職歴情報、およびリファレンス情報を合成して、再度ビット列を作成する（図５のＳ２１４参照）。アクセス制限付きデータベース５に保存した職歴情報およびリファレンス情報のいずれかが改ざんされた場合、合成データに基づいて再作成したビット列が、分散公開型データベース２０に保存したビット列と異なることとなる。これにより、分散公開型データベース２０の改ざん防止機能を利用することで、信頼性の高いデータ管理方法が提供できる。さらに、本発明のデータ管理システム２では、アクセス制限付きデータベース５に、個人情報である職歴情報およびリファレンス情報を保存する。これにより、個人情報を保護し、さらに信頼性の高いデータ管理方法が提供できる。
【００４６】
さらに、本発明のデータ管理システム２によれば、コントラクトを用いて、ユーザ間や、ユーザおよび閲覧者との間の決まりごとを、より自由に設定することができる。また、本発明のデータ管理システム２によれば、コントラクトを用いてユーザおよび閲覧者間のトークンのやり取りを自由に規定することができる。このため、ユーザおよび閲覧者間の利益を自由に規定できる。この結果、ユーザビリティーの高いデータ管理方法が提供できる。
【００４７】
＜他の実施形態＞
（ａ）上記実施形態では、第１データとして職歴情報を入力し、第２データとして第１データのリファレンス情報を入力する例について説明したが、これに限定されるものではない。例えば、第１データとして、質問を入力し、第２データとして質問に対する回答を入力してもよい。また、第１データとして、対戦ゲームにおける自分のアクションであり、第２データとして、それに関連する相手のアクションであってもよい。いずれにせよ、第２データは、第１データと関連するデータであればよい。
【００４８】
（ｂ）上記実施形態では、第１データと、第１データと関連する第２データの２つのデータを例に説明したが、これに限定されるものではない。データは、２つ以上の関連のあるデータであればよい。
【００４９】
（ｃ）上記実施形態では、第１ユーザと、第２ユーザと、閲覧者とそれに対応する、第１ユーザ端末６、第２ユーザ端末８、および閲覧者端末１０を例に説明したが、ユーザと、閲覧者の数は、１ユーザ以上であれば、さらに多くのユーザと閲覧者がいてもよい。
【符号の説明】
【００５０】
２          ：データ管理システム
３          ：ネットワークシステム
４          ：管理サーバ
５          ：アクセス制限付きデータベース
６          ：第１ユーザ端末
８          ：第２ユーザ端末
１０        ：閲覧者端末
２０        ：分散公開型データベース
１０１、１０２、１０３、１０４、１０５、１０６      ：端末（ノード）
【図１】
2020028052.tif 000003
【図２】
2020028052.tif 000004
【図３】
2020028052.tif 000005
【図４】
2020028052.tif 000006
【図５】
2020028052.tif 000007
【図６】
2020028052.tif 000008
【図７】
2020028052.tif 000009
【手続補正書】
【提出日】令和1年9月18日(2019.9.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
分散公開型データベースを有するネットワークに接続された電子計算機が第１データを取得し、
前記第１データを取得した電子計算機が前記第１データに関連付けられた第２データを取得し、
前記第１データおよび前記第２データを取得した電子計算機が前記第１データおよび前記第２データを含む合成データを生成し、
前記合成データを取得した電子計算機が前記合成データに一方向性関数を含むアルゴリズムを適用することにより、前記合成データに基づくビット列を生成し、
前記ビット列を取得した電子計算機が前記分散公開型データベースを有するネットワークに前記ビット列を送信し、
前記分散公開型データベースが前記ビット列を保存し、
前記第１データは、第１ユーザが利用する電子計算機により生成され、
前記第２データは、前記第１ユーザとは異なる第２ユーザが利用する電子計算機により生成される、
ことを含むデータ管理方法。
【請求項２】
前記第１データを取得した電子計算機は、前記第１データの取得を受けて、前記第２データの生成のリクエストを前記第２ユーザが利用する電子計算機に送信し、
前記第２ユーザが利用する電子計算機は、前記リクエストに対する前記第２ユーザの行為に起因して、前記第２データを生成する、
ことをさらに含む請求項１に記載のデータ管理方法。
【請求項３】
前記第１データおよび第２データを取得した電子計算機が前記第２ユーザのステータスを示すステータスデータを取得することをさらに含み、
前記合成データは、前記ステータスデータをさらに含む、
請求項１または２に記載のデータ管理方法。
【請求項４】
前記第１データおよび第２データを取得した電子計算機は、前記第２データの取得を受けて、前記第２ユーザが利用する電子計算機にトークンを送信する、
ことをさらに含む請求項１から３のいずれか１項に記載のデータ管理方法。
【請求項５】
前記第１データは、第１時刻に生成され、
前記第２データは、前記第１時刻より遅い第２時刻に生成される、
請求項１から４のいずれか１項に記載のデータ管理方法。
【請求項６】
前記第１データおよび第２データを取得した電子計算機は、前記合成データを、前記分散公開型データベースとは異なる、アクセス制限可能なデータベースに保存する、
請求項１から５のいずれか１項に記載のデータ管理方法。
【請求項７】
（新規追加：Ｓ１１７）
前記分散公開型データベースは、前記ビット列に加えて、第１ユーザに紐づくアカウントアドレスおよび第２ユーザに紐づくアカウントアドレスを記録する
請求項１から６のいずれか１項に記載のデータ管理方法。
【請求項８】
分散公開型データベースを有するネットワークに接続された電子計算機が第１データを取得し、
前記第１データを取得した電子計算機が前記第１データに関連付けられた第２データを取得し、
前記第１データおよび第２データを取得した電子計算機が前記第１データおよび前記第２データを含む合成データを生成し、
前記合成データを取得した電子計算機が前記合成データに一方向性関数を含むアルゴリズムを適用することにより、前記合成データに基づくビット列を生成し、
前記ビット列を取得した電子計算機が前記分散公開型データベースを有するネットワークに前記ビット列を送信し、
前記分散公開型データベースが前記ビット列を保存し、
前記第１データは、第１時刻に生成され、
前記第２データは、前記第１時刻より遅い第２時刻に生成される、
ことを含むデータ管理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
本発明に係るデータ管理方法は、分散公開型データベースを有するネットワークに接続された電子計算機が第１データを取得し、第１データを取得した電子計算機が第１データに関連付けられた第２データを取得し、第１データおよび第２データを取得した電子計算機が第１データおよび第２データを含む合成データを生成することを含む。データ管理方法は、合成データを取得した電子計算機が合成データに一方向性関数を含むアルゴリズムを適用することにより、合成データに基づくビット列を生成することを含む。データ管理方法は、ビット列を取得した電子計算機が分散公開型データベースを有するネットワークにビット列を送信することを含む。また、データ管理方法は、分散公開型データベースが前記ビット列を保存し、第１データは、第１ユーザが利用する電子計算機により生成され、第２データは、第１ユーザとは異なる第２ユーザが利用する電子計算機により生成されることを含む。