(57)【要約】      （修正有）【課題】コストを抑えつつ、安全に情報を管理する情報処理装置を提供する。【解決手段】支払担当者の情報処理装置（装置Ａ）は、相対取引プログラムを作成し、コンパイルし、暗号化して受給者の情報処理装置（装置Ｂ）に送信する。装置Ｂは暗号化された相対取引プログラムを復号して相対取引プログラムを取得する。そして装置Ａと装置Ｂは相対取引処理を実施し、取引データをそれぞれの装置に格納する。【効果】相対取引の相手を制限することができ、相対取引処理のセキュリティを保つことができる。自己の取引にかかる各種の情報を自己の端末に保持することができるため、ブロックチェーン関連の技術を利用しつつも、自己の情報を自己の管理下におくことができる。【選択図】図４
2020079891.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
一の装置との間で、１対１の処理を行う処理手段と、
前記処理手段による処理に関する処理情報を、前記コンピュータの記憶手段に格納する格納手段と、
前記処理情報を、前記一の装置と異なる１又は２以上の他の装置に送信する第１の送信手段と
して機能させるためのプログラム。
【請求項２】
前記第１の送信手段は、ユーザ操作により指定された前記他の装置に前記処理情報を送信することを特徴とする請求項１に記載のプログラム。
【請求項３】
前記コンピュータを、
前記１対１の処理を実現する処理プログラムをコンパイルする第１のコンパイル手段と、
前記第１のコンパイル手段によりコンパイルされた前記処理プログラムを送信する第２の送信手段と
して機能させ、
前記処理手段は、前記処理プログラムを受信した装置との間で前記１対１の処理を行うことを特徴とする請求項１又は２に記載のプログラム。
【請求項４】
前記コンピュータを、
前記処理プログラムを作成する第１の作成手段として機能させ、
前記第１のコンパイル手段は、前記第１の作成手段により作成された前記処理プログラムをコンパイルすることを特徴とする請求項３に記載のプログラム。
【請求項５】
前記処理プログラムは、前記処理プログラムを実行可能な装置を制限する情報を含むことを特徴とする請求項４に記載のプログラム。
【請求項６】
前記第１のコンパイル手段によりコンパイルされた前記処理プログラムを暗号化する第１の暗号化手段をさらに有し、
前記第２の送信手段は、暗号化された前記処理プログラムを送信することを特徴とする請求項３乃至５の何れか１項に記載のプログラム。
【請求項７】
前記コンピュータを、
前記処理情報を共有する処理を実現する共有プログラムをコンパイルする第２のコンパイル手段と、
前記第２のコンパイル手段によりコンパイルされた前記共有プログラムを送信する第３の送信手段と
して機能させ、
前記第１の送信手段は、前記共有プログラムを受信した装置に対し前記処理情報を送信することを特徴とする請求項１乃至６の何れか１項に記載のプログラム。
【請求項８】
前記第３の送信手段は、ユーザ操作により指定された装置に前記共有プログラムを送信することを特徴とする請求項７に記載のプログラム。
【請求項９】
前記コンピュータを、
前記共有プログラムを作成する第２の作成手段として機能させ、
前記第２のコンパイル手段は、前記第２の作成手段により作成された前記共有プログラムをコンパイルすることを特徴とする請求項７又は８に記載のプログラム。
【請求項１０】
前記共有プログラムは、前記共有プログラムを実行可能な装置を制限する情報を含むことを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記第２のコンパイル手段によりコンパイルされた前記共有プログラムを暗号化する第２の暗号化手段をさらに有し、
前記第３の送信手段は、暗号化された前記共有プログラムを送信することを特徴とする請求項７乃至１０の何れか１項に記載のプログラム。
【請求項１２】
コンピュータを、
一の装置との間で、１対１の処理を行う処理手段と、
前記処理手段による処理に関する処理情報を、前記コンピュータの記憶手段に格納する格納手段と、
前記処理情報を、前記一の装置と異なる１又は２以上の他の装置に送信する第１の送信手段と
して機能させるためのプログラムを記憶したコンピュータにより読み取り可能な記憶媒体。
【請求項１３】
情報処理装置であって、
一の装置との間で、１対１の処理を行う処理手段と、
前記処理手段による処理に関する処理情報を、前記情報処理装置の記憶手段に格納する格納手段と、
前記処理情報を、前記一の装置と異なる１又は２以上の他の装置に送信する第１の送信手段と
を備えることを特徴とする情報処理装置。
【請求項１４】
情報処理装置が実行する情報処理方法であって、
一の装置との間で、１対１の処理を行う処理ステップと、
前記処理ステップにおける処理に関する処理情報を、前記情報処理装置の記憶手段に格納する格納ステップと、
前記処理情報を、前記一の装置と異なる１又は２以上の他の装置に送信する第１の送信ステップと
を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、記憶媒体、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
従来、サーバ装置等において情報を一元管理する仕組みが多く知られている。例えば、特許文献１には、複数のユーザの給与明細データを一元管理する給与明細提供システムが開示されている。また、２台の装置間で相対取引を行い、相対取引に関する情報を互いの装置に記憶するアプリケーションも知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２７５９５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述のように情報が一元管理されると、情報管理の負担が一か所に集中する。このため、情報量や情報の種類が増加すると、セキュリティ対策などのコストが増大するといった問題があった。また、２台の装置間で相対取引を行った場合において、相対取引に関する情報を取引者以外の者との間でも共有したいケースもある。
【０００５】
本発明はこのような問題点に鑑みなされたもので、コストを抑えつつ、安全に情報を管理することを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明は、コンピュータを、一の装置との間で、１対１の処理を行う処理手段と、前記処理手段による処理に関する処理情報を、前記コンピュータの記憶手段に格納する格納手段と、前記処理情報を、前記一の装置と異なる１又は２以上の他の装置に送信する第１の送信手段として機能させるためのプログラムである。
【発明の効果】
【０００７】
本発明によれば、コストを抑えつつ、安全に情報を管理することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、情報処理装置のハードウェア構成図である。
【図２】図２は、情報処理装置の機能構成図である。
【図３】図３は、情報処理装置の利用形態の説明図である。
【図４】図４は、相対取引処理を示すシーケンス図である。
【図５】図５は、作成画面の一例を示す図である。
【図６】図６は、暗号復号画面の一例を示す図である。
【図７】図７は、取引実行画面の一例を示す図である。
【図８】図８は、データ共有処理を示すシーケンス図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
図１は、本実施形態に係る情報処理装置１００のハードウェア構成図である。情報処理装置１００は、ＰＣや、携帯端末装置等のコンピュータである。情報処理装置１００は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ１０４と、表示部１０５と、入力部１０６と、通信部１０７とを有している。ＣＰＵ１０１は、ＲＯＭ１０２に記憶された制御プログラムを読み出して各種処理を実行する。ＲＡＭ１０３は、ＣＰＵ１０１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ１０４は、各種データや各種プログラム等を記憶する。なお、後述する情報処理装置１００の機能や処理は、ＣＰＵ１０１がＲＯＭ１０２又はＨＤＤ１０４に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。また、他の例としては、ＣＰＵ１０１は、ＲＯＭ１０２等に替えて、ＳＤカード等の記憶媒体に格納されているプログラムを読み出してもよい。
【００１１】
表示部１０５は、各種情報を表示する。入力部１０６は、キーボードやマウスを有し、ユーザによる各種操作を受け付ける。通信部１０７は、ネットワークを介して画像形成装置等の外部装置との通信処理を行う。
【００１２】
図２は、情報処理装置１００の機能構成図である。情報処理装置１００は、受付部２０１と、通信処理部２０２と、暗号復号部２０３と、プログラム作成部２０４と、コンパイル部２０５と、相対取引部２０６と、データ共有部２０７と、データ保管部２０８と、を有している。受付部２０１は、入力部１０６へのユーザ操作に応じて各種情報を受け付ける。通信処理部２０２は、外部装置との通信を行う。暗号復号部２０３は、情報の暗号化及び復号化を行う。
【００１３】
プログラム作成部２０４は、受付部２０１が受け付けた情報に基づいて、プログラムを作成する。本実施形態のプログラム作成部２０４は、相対取引プログラム及びデータ共有プログラムを作成する。相対取引プログラムは、２台の情報処理装置１００の間での１対１での取引である相対取引を行うためのプログラムである。相対取引プログラムには、取引するデータのモデルや、相対取引に係る条件、チェック内容等が含まれるものとする。このように、相対取引プログラムには、相対取引に係る情報が含まれる。相対取引プログラムは、相対取引毎に作成されるプログラムであり、契約そのものであるとも捉えることができる。データ共有プログラムは、相対取引に関するデータを共有するためのプログラムである。相対取引プログラム及びデータ共有プログラムは、いずれもスマートコントラクトプログラムである。なお、プログラム作成部２０４は、各プログラムの作成に際し、ワークフロー等が記述されたテンプレートを利用してもよい。なお、相対取引プログラムは、１対１の処理を実現する処理プログラムの一例である。また、データ共有プログラムは、１対１の処理に関する処理情報を共有する処理を実現する共有プログラムの一例である。
【００１４】
コンパイル部２０５は、プログラム作成部２０４により作成されたプログラムをコンパイルすることで、実行形式のファイルを得る。相対取引プログラムがコンパイルされることにより、相対取引部２０６が実現される。また、データ共有プログラムがコンパイルされることにより、データ共有部２０７が実現される。
【００１５】
相対取引部２０６は、相対取引の相手となる情報処理装置との間で相対取引に係る処理を行う。相対取引部２０６は、相対取引に関するデータをデータ保管部２０８に格納する。データ共有部２０７は、データ保管部２０８に記憶されているデータを、他の情報処理装置との間で共有するための処理を行う。データ共有部２０７は、具体的には、データ保管部２０８に記憶されているデータを、通信処理部２０２を介して、共有相手の情報処理装置に送信する。
【００１６】
なお、情報処理装置１００と他の装置との間での相対取引毎に相対取引プログラムが作成され、相対取引プログラム毎に相対取引部２０６が作成される。ここで、相対取引部が作成されるというのは、相対取引ごとに取引内容に応じた相対取引プログラムがデプロイされ、取引当事者間での取引の実行が可能な状態を準備・形成されると言い換えることができる。このため、１つの情報処理装置１００において、複数の相対取引部２０６が実現され得る。そして、作成された相対取引部２０６は、コンパイル部２０５によりコンパイルされた実行形式のファイルが送信された情報処理装置との間でのみ相対取引処理を行うことができる。なお、相対取引部２０６は、自装置以外でコンパイルされた相対取引プログラムを有する装置との間では相対取引処理を行うことはできない。
【００１７】
同様に、情報処理装置１００と他の装置との間でのデータ共有の処理毎にデータ共有プログラムが作成され、データ共有プログラム毎にデータ共有部２０７が作成される。このため、１つの情報処理装置１００において、複数のデータ共有部２０７が実現され得る。そして、作成されたデータ共有部２０７は、コンパイル部２０５によりコンパイルされた実行形式のファイルが送信された情報処理装置との間でのみデータ共有処理を行うことができる。なお、データ共有部２０７は、自装置以外でコンパイルされたデータ共有プログラムを有する装置との間ではデータ共有処理を行うことはできない。
【００１８】
図３は、情報処理装置１００の利用形態の説明図である。例えば、ある企業における給与の支払担当者が受給者との間で相対取引を行うものとする。さらに、支払担当者は、承認者及び社内のバックアップ装置との間で相対取引に関する取引データを共有することを希望しているものとする。また、受給者は、家族との間で取引データを共有することを希望しているものとする。
【００１９】
この場合、支払担当者が利用する情報処理装置１００は、受給者が利用する情報処理装置１００との間で給与の支払いに関する相対取引を行うための相対取引プログラムを作成する。そして、支払担当者の情報処理装置１００は、受給者の情報処理装置１００との間で相対取引プログラムに基づく相対取引処理を行う。
【００２０】
さらに、支払担当者の情報処理装置１００は、承認者の情報処理装置１００及びバックアップのための情報処理装置１００との間で取引データを共有するためのデータ共有プログラムを作成する。そして、支払担当者の情報処理装置１００は、承認者の情報処理装置１００との間でデータ共有プログラムに基づくデータ共有処理を行い、さらにバックアップのための情報処理装置１００との間でデータ共有プログラムに基づくデータ共有処理を行う。
【００２１】
一方で、受給者の情報処理装置１００は、家族の情報処理装置１００との間で取引データを共有するためのデータ共有プログラムを作成する。そして、受給者の情報処理装置１００は、家族の情報処理装置１００との間でデータ共有プログラムに基づくデータ共有処理を行う。
【００２２】
以下、上記の利用形態を実現するための情報処理装置１００の処理について説明する。なお、以降では、複数の情報処理装置１００を区別すべく、支払担当者が利用する情報処理装置１００を装置Ａ、受給者が利用する情報処理装置１００を装置Ｂと称する。また、承認者が利用する情報処理装置１００、バックアップのための情報処理装置１００をそれぞれ装置Ｃ、装置Ｄと称する。また、受給者の家族が利用する情報処理装置１００を装置Ｅと称する。
【００２３】
図４は、装置Ａと装置Ｂの間での相対取引処理を示すシーケンス図である。まず、Ｓ４０１において、装置Ａのプログラム作成部２０４は、装置Ｂとの間の相対取引のための相対取引プログラムを作成する。本実施形態においては、装置Ａのプログラム作成部２０４は、給与の支払いに関する相対取引プログラムを作成する。次に、Ｓ４０２において、装置Ａのコンパイル部２０５は、Ｓ４０１において作成された相対取引プログラムをコンパイルし、実行形式のファイルを得る。これにより、装置Ａにおいて、相対取引プログラムに対応した相対取引部２０６が展開される。
【００２４】
Ｓ４０１及びＳ４０２の処理に際し、装置Ａの表示部１０５には、図５に示す作成画面５００が表示される。装置Ａのユーザは、作成画面５００の入力欄５０１に相対取引プログラムの名称を入力する。さらに、装置Ａのユーザは、テンプレートを利用する場合には、作成画面５００のテンプレートボタン５０２を選択し、表示欄５０４において、テンプレートを選択する。また、自身で作成する場合には、装置Ａのユーザは、独自実装ボタン５０３を選択する。さらに、「プログラムエディタを開く」のボタン５０５を選択し、取引プログラムに関する情報を入力する。Ｓ４０１においては、作成画面５００において入力された情報に基づいて、相対取引プログラムが作成される。また、コンパイルボタン５０６が選択されると、Ｓ４０２におけるコンパイル部２０５のコンパイルが実行される。コンパイルが実行されると、作成画面５００には、「コンパイルに成功しました。スマートコントラクト一覧に追加しました。」といった情報が表示される。
【００２５】
次に、Ｓ４０３において、装置Ａの暗号復号部２０３は、Ｓ４０２において得られた、相対取引プログラムの実行形式のファイルを暗号化する。次に、Ｓ４０４において、通信処理部２０２は、暗号化された相対取引プログラムを装置Ｂへ送信する。このように、装置Ａが相対取引プログラムを暗号化して送信することで、本来送信すべき相手と異なる第三者に相対取引プログラムが転送された場合に、第三者により相対取引プログラムが利用されるのを防ぐことができる。また、相対取引プログラムの送信先は、ユーザ操作に応じて指定されるものとする。
【００２６】
装置ＢのＣＰＵ１０１は、相対取引プログラムを受信すると処理をＳ４０５へ進める。Ｓ４０５において、装置Ｂの暗号復号部２０３は、Ｓ４０４において受信した相対取引プログラムを復号化する。なお、復号化のためのキーは、支払担当者が受給者に口頭等で伝え、受給者が装置Ｂに入力することとする。このように、装置Ｂは、相対取引プログラムとは別の経路で復号化のためのキーを取得するものとする。暗号復号部２０３により相対取引プログラムが復号化されると、装置Ｂにおいて、相対取引プログラムに応じた相対取引部２０６が展開される。
【００２７】
上述のように、相対取引プログラムは、同一の実行形式ファイルにより展開された相対取引部間でのみしか相対取引処理が実行できないように作成される。このため、装置Ａの相対取引部２０６は、装置Ａ以外の装置において同一の相対取引プログラムをコンパイルすることで得られた実行形式ファイルにより展開された相対取引部との間では相対取引処理を行うことができない。一方で、装置Ａは、装置Ａのコンパイル部２０５によりコンパイルされた相対取引プログラムの実行形式ファイルを取得した装置Ｂの相対取引部２０６と相対取引処理が可能となる。すなわち、装置Ａの相対取引部２０６は、装置Ｂにおいて、相対取引部２０６が展開されることで、装置Ａと装置Ｂの間での相対取引処理を実行可能となる。このように、相対取引処理の相手を制限することで、相対取引処理のセキュリティを保つことができる。
【００２８】
図６は、装置Ａの表示部１０５に表示される暗号復号画面６００の一例を示す図である。装置Ａのユーザが選択欄６０１において暗号化の対象の相対取引プログラムを選択し、暗号ボタン６０２を押下する、これに対応して、暗号復号部２０３は、相対取引プログラムの暗号化を行う。暗号化が完了すると、「スマートコントラクトを暗号化しました。」といった確認情報が表示される。さらに、装置Ｂが相対取引プログラムを復号化する際にも、装置Ｂの表示部１０５に暗号復号画面６００が表示される。装置Ｂのユーザが選択欄６０１において復号化の対象の相対取引プログラムを選択し、復号ボタン６０３を押下すると、装置Ｂの暗号復号部２０３は、相対取引プログラムを復号化する。
【００２９】
次に、Ｓ４０６において、装置Ａの相対取引部２０６と装置Ｂの相対取引部２０６とにより相対取引処理が行われる。図７は、装置Ａの表示部１０５に表示される取引実行画面７００の一例を示す図である。装置Ａのユーザは、選択欄７０１において、実行を希望する相対取引プログラムを選択し、確認ボタン７０２を押下する。これにより、「社員番号Ｘ１２３４５に給与を支払うスマートコントラクトです。」というように、選択中の相対取引プログラムに関する情報が表示される。さらに、実行ボタン７０３が押下されると、装置Ａの相対取引部２０６は、相対取引プログラムに対応した相対取引処理を開始する。そして、各装置Ａ，Ｂの相対取引部２０６は、相対取引に関する取引データを自装置のデータ保管部２０８に格納する（Ｓ４０７，Ｓ４０８）。以上で、相対取引処理が完了する。なお、相対取引に関する取引データには、支払日、支払額等が含まれる。
【００３０】
このように、装置Ａは、自装置でコンパイルした相対取引プログラムを暗号化した上で取引相手のみに送信する。装置Ａとの相対取引ができる装置は、装置Ａによりコンパイルされた相対取引プログラムを受信し、かつ復号化できる装置に限定されるので、装置Ａは、安全かつ秘匿性を保持した状態で相対取引を行うことができる。
【００３１】
図８は、装置Ａと、装置Ｃ及び装置Ｄとの間でのデータ共有処理を示すシーケンス図である。まず、Ｓ８０１において、装置Ａのプログラム作成部２０４は、データ共有プログラムを作成する。装置Ａのユーザは、共有相手を指定する情報及び共有するデータを指定する情報を入力する。これに対応し、装置Ａのプログラム作成部２０４は、受付部２０１を介して、共有相手を指定する情報及び共有するデータを指定する情報を取得し、この情報に従い共有相手及び共有するデータを指定したデータ共有プログラムを作成する。
【００３２】
次に、Ｓ８０２において、装置Ａのコンパイル部２０５は、Ｓ８０１において作成されたデータ共有プログラムをコンパイルし、実行形式のファイルを得る。これにより、装置Ａにおいて、データ共有プログラムに対応したデータ共有部２０７が展開される。次に、Ｓ８０３において、装置Ａの暗号復号部２０３は、Ｓ８０３において得られた、データ共有プログラムの実行形式のファイルを暗号化する。次に、Ｓ８０４において、装置Ａの通信処理部２０２は、暗号化されたデータ共有プログラムを装置Ｄへ送信する。なお、上述のように、データ共有プログラムの送信先は、データ共有プログラムにおいて定義されている。他の例としては、データ共有プログラムの送信先は、ユーザ操作に応じて指定されてもよい。
【００３３】
装置ＤのＣＰＵ１０１は、データ共有プログラムを受信すると、処理をＳ８０５へ進める。Ｓ８０５において、装置Ｄの暗号復号部２０３は、Ｓ８０４において受信したデータ共有プログラムを復号化する。なお、復号化のためのキーは、装置Ａのユーザが装置Ｄのユーザに口頭等で伝え、装置Ｄのユーザが装置Ｄに入力することとする。このように、装置Ｄは、データ共有プログラムとは別の経路で、復号化のためのキーを取得するものとする。暗号復号部２０３によりデータ共有プログラムが復号化されると、装置Ｄにおいて、データ共有プログラムに応じたデータ共有部２０７が展開される。なお、データ共有プログラムは、相対取引プログラムと同様、同一の実行形式ファイルにより展開されたデータ共有部間でのみしかデータ共有処理を実行できないように作成されている。
【００３４】
次に、Ｓ８０６において、装置Ａのデータ共有部２０７は、自装置のデータ保管部２０８から、共有対象のデータを取得し、取得した共有対象のデータを、通信処理部２０２を介して装置Ｄに送信する。装置Ａのデータ共有部２０７は、例えば、図４を参照しつつ説明した取引処理においてデータ保管部２０８に格納された取引データを装置Ｄに送信する。装置Ｄは、共有対象のデータを受信すると、Ｓ８０７において、共有対象のデータを自装置のデータ保管部２０８に格納する。これにより、装置Ａの取引データを装置Ｄとの間で共有することができる。
【００３５】
続いて、装置Ａは、装置Ｃとの間で、Ｓ８１２〜Ｓ８１５の処理を行う。なお、Ｓ８１１〜Ｓ８１５の処理は、装置Ｄとの間で行ったＳ８０４〜Ｓ８０７の処理と同様である。なお、Ｓ８１２〜Ｓ８１５の処理は、Ｓ８０４〜Ｓ８０７の処理とは独立した処理であり、その実行タイミングは、実施形態に限定されるものではない。他の例としては、装置Ａは、Ｓ８０４〜Ｓ８０７の処理とＳ８１２〜Ｓ８１５の処理を同時に並行して行ってもよい。このように、装置Ａは、データ共有プログラムの送信相手との間でデータ共有処理により取引データを共有することができる。なお、装置Ａは、共有したい相手が複数存在する場合には、各相手との間で、Ｓ８０４〜Ｓ８０７の処理を行えばよい。
【００３６】
また、装置Ｂは、装置Ｅとの間で、データ共有処理を行うことで、装置Ｂのデータ保管部２０８に保管されている取引データを装置Ｅとの間で共有することができる。以上の処理により、図３を参照しつつ説明したように、支払担当者の装置Ａと受給者の装置Ｂとの間で相対取引を行い、その取引データを、装置Ｃ、装置Ｄ、装置Ｅといった相対取引を行っていない情報処理装置１００との間で共有することができる。
【００３７】
このように、本実施形態においては、２者間で行った処理に関するデータを、処理を行った２者以外の者との間で共有することができる。すなわち、ブロックチェーンのように複数の装置の間でのデータ共有を実現する一方で、共有者を所望の相手のみに制限することができる。
【００３８】
以上のように、本実施形態に係る情報処理装置１００は、相対取引に関する取引データを自装置に格納し、さらには、相対取引の相手以外の装置との間で取引データを共有することでバックアップも行うことができる。このため、例えば、サーバ装置のように、特定の装置が取引等に係る情報を一元管理することなく、安全にデータを管理することができる。すなわち、本実施形態によれば、複数の情報処理装置１００が取引データを共有して管理することで、コストを掛けることなく安全に情報を管理することができる。
【００３９】
また、相対取引処理とデータ共有処理とを独立した処理としたので、情報処理装置１００は、相対取引処理毎に、データ共有の相手を自由に選択することができる。これにより、例えば、装置Ｂが、毎月支払われる給与については装置Ｅとの間でデータを共有し、ボーナスについては装置Ｆとの間でデータを共有する、といったことも可能となる。
【００４０】
次に、実施形態の変形例について説明する。第１の変形例としては、情報処理装置１００は、データ共有の対象となるデータの単位を任意に指定可能であってもよい。例えば、給与支払いの例において、給与のうち一部の金額についてのみデータ共有の対象としてもよい。
【００４１】
第２の変形例としては、情報処理装置１００は、相対取引の相手の識別情報を含み、識別情報に一致した情報処理装置以外では起動しないような相対取引データを作成してもよい。同様に、情報処理装置１００は、データ共有の相手の識別情報を含み、識別情報に一致した情報処理装置以外では起動しないようなデータ共有プログラムを作成してもよい。これにより、セキュリティを高く保つことができる。
【００４２】
第３の変形例としては、相対取引プログラムの作成等の処理は、相対取引を行う２つの情報処理装置のうち何れか一方の装置が行えばよく、いずれかの装置に限定されるものではない。また、データ共有プログラムの作成等の処理は、データ共有元の情報処理装置に替えて、データ共有先の情報処理装置が行ってもよい。
【００４３】
第４の変形例としては、実施形態においては、情報処理装置１００が相対取引を行う場合について説明したが、情報処理装置１００は、２つの装置の間で、１対１で行われる処理を実行すればよく、相対取引に限定されるものではない。他の例としては、住民票、免許証、パスポート等の証明書の交付に係る処理であってもよい。この場合、役所の装置と申請者の装置との間で、交付に係る処理を行う。そして、役所の装置と申請者の装置には、交付に関する交付データが格納される。さらに、申請者は、家族等信頼できる人物の装置との間で交付データを共有し、役所では、バックアップ装置との間で交付データを共有する。
【００４４】
また、他の例としては、１対１で行われる処理は、病院等での診察に係る処理であってもよい。この場合、医師が使用する装置と患者の装置との間で、診察に係る処理を行う。そして、医師の装置と患者の装置には、診察に係るデータとして電子カルテが格納される。さらに、患者の装置は、信頼できる人物の装置との間で電子カルテを共有する。
【００４５】
以上の技術により、ユーザが所持する情報処理装置において、取引に係る情報、電子カルテ、住民票やパスポート、免許証に関する情報等、自身に関する多数の情報を記憶、管理することができる。これにより、サーバ装置のように情報を一元管理する装置を不要とすることができる。
【００４６】
なお、上述のとおり、本発明に係る情報処理システムにおいてはスマートコントラクトや分散台帳等を含めたブロックチェーン関連の技術の利用が好適である。ここで、本実施形態に係る情報処理システムにおけるブロックチェーン関連技術の利用について簡単に説明すれば、以下のとおりである。
【００４７】
ブロックチェーンの技術的な要素としては、ピアツーピア（Ｐ２Ｐ）ネットワーク、電子署名・ハッシュ関数、コンセンサスアルゴリズムなどが挙げられる。また、ブロックチェーンを利用した技術としてスマートコントラクトがある。
【００４８】
Ｐ２Ｐネットワークは、特定の管理主体が存在するクライアント・サーバ型ではなく、各コンピュータノードが対等に直接通信し、ネットワークを形成する方式である。ブロックチェーンにおけるＰ２Ｐネットワークにおいては、ネットワーク参加ノードの計算資源においてハッシュ計算が正しいことと、ブロック内の取引が正しいものであることを確認する。そして、全ての参加ノードは同じ内容のブロックチェーンを保有する。ここで、ノードとは、ブロックチェーンのＰ２Ｐネットワークに接続される通信機器を意味し、例えば、銀行間取引においては銀行が保持するサーバ、個人間取引においては個人が保持する端末等がノードとなる。
【００４９】
また、コンセンサスアルゴリズムとは、各参加者がブロックチェーンを保有し正当性を検証するためのアルゴリズムであり、Ｐ２Ｐネットワークなどの分散ネットワーク上で合意形成を行う為のアルゴリズムである。ブロックチェーンを複数ノード間で共有するために最も重要な仕組みであるといえる。また、電子署名・ハッシュ関数は、トランザクションを発行する人の正当性を保証する仕組みや、取引・ブロックチェーンの改ざん防止や暗号化など、セキュリティに関する仕組みである。
【００５０】
ところで、ブロックチェーンの定義については色々あるが、日本ブロックチェーン協会によるブロックチェーンの定義によれば、狭義の意味では、ビザンチン障害を含む不特定多数のノードを用い、時間の経過と共にその時点の合意が覆る確率が０へ収束するプロトコルまたはその実装をブロックチェーンと呼ぶ。
【００５１】
また、広義の意味では、電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造をもち、且つ、当該データをブロックチェーン上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼ぶ。これは、換言すれば、取引履歴のブロックを暗号技術によって過去から１本の鎖のように繋げ、ある取引について改ざんを行う為には、それより新しい取引について全て改ざんしていく必要がある仕組みとすることで、正確な取引履歴を維持しようとする技術といえる。
【００５２】
ここでビザンチン将軍問題とは、相互に通信し合うネットワークにおいて、故障または故意によって偽の情報を伝達する可能性がある場合、全体として正しい合意を形成できるかを問う問題である。ブロックチェーン技術の応用の一例であるビットコインにおいてはこの問題が実質的に解決されているという。上述したコンセンサスアルゴリズムの１つにＰｏＷというものがある。ＰｏＷでは、ナンスという値（新しいブロックを生成する際にハッシュ計算に与えるパラメータ）を求める計算（マイニング）をして、初めに正解を出したノードが取引の承認を行い、新たなブロックを追加する権利を得る。この計算の正解者には報酬が与えられるため、多くの人がこの報酬を求めて計算勝負をする。しかしながら、不正を働こうとするノードが参加ノード全体の５０％を超える計算力が得られると取引記録の改ざんができてしまうという。これを５１％攻撃という。
【００５３】
ここで、上述のとおり、ブロックチェーンにおいては、取引履歴のブロックを暗号技術によって過去から１本の鎖のように繋げ、ある取引について改ざんを行う為には、それより新しい取引について全て改ざんしていく必要がある。より具体的には、各ブロックは、ナンスと前ブロックのハッシュ値を保有している。したがって、この５１％攻撃にはとてつもない時間とコストが必要となるため、事実上、５１％攻撃は不可能であり、単純に問題を解くことが合理的であるとういことになり、このことがビットコインのセキュリティを支えているともいえる。
【００５４】
ところで、ビットコインのようなパブリックなブロックチェーンは、中央管理者は存在せず、ネットワークへの参加は自由であり、トランザクションの承認もブロックチェーンに参加する全てのノードによって行われる。すなわち、悪意のある参加者が存在することを前提としつつ、このようにオープンな形のブロックチェーンを構成してコンセンサスアルゴリズムとしてＰｏＷを採用することで、情報の改ざんや二重譲渡等のかく乱を防止できるような仕組みが構築されていると考えられる。一方で、このようなパブリックなブロックチェーンにおいては、ＰｏＷのようなコンセンサスアルゴリズムを採用するため、取引の承認やファイナリティに時間を要したり、情報が暗号化はされているとはいえトランザクションはオープンな状態となっており、取引の当事者以外でもその内容を参照したりすることができるというような問題もある。
【００５５】
そこで、ブロックチェーン関連の技術（分散台帳技術）を利用しつつ、第三者には取引の内容を参照できないようにしたプライベートないしはセミプライベート（コンソーシアム型）なネットワークを構成することが考えられる。この場合、ネットワークへの参加を許可制として取引の承認に中央の管理者が存在したり、あるいはノータリーによって取引の正当性が確認されたトランザクションを当事者間だけで承認したりするような構成が考えられる。したがって、取引の秘密性は担保される反面、参加ノードが少なくパブリックな構成に比べると冗長性が低く、信頼性の高い参加者のみで構成されるとはいえ、情報の改ざんやかく乱等に対する耐性は低くなる。
【００５６】
これに対し、本実施形態に係る情報処理装置は、主に、ブロックチェーン関連の技術（分散台帳技術）を利用したプライベートなネットワークにおいて、そのような課題を解決するための技術と捉えることができる。
【００５７】
一般的には、プライベートなネットワークは、ネットワークを構成するノードが企業のサーバや個人が利用するクラウドサービスの仮想ノードである。これに対して、本実施形態の情報処理装置においては、一般の個人のユーザが占有する端末（所有に限らず貸与されているもの等も含まれる）を、プライベートネットワークにおける分散台帳を構成するノードとして利用することが想定されている。なお、上述したプライベートなネットワークの特徴として、管理者ノードが存在する場合を例として挙げたが、信頼できる者のみが参加するネットワークであれば管理者ノードを不在とする構成とすることもできる。
【００５８】
これにより、ユーザは自己の取引にかかる各種の情報を自己の端末に保持することができるため、ブロックチェーン関連の技術を利用しつつも、自己の情報を自己の管理下におくことができるようになるのである。
【００５９】
すなわち、一般の個人のユーザが自己の占有する端末を介して、自己のトランザクションを参照することにより、銀行等のインターネットバンキングのサーバにアクセスすることなく自己が所有する通貨の残高を確認することが可能となる。また、例えば給与の支払いが仮想通貨のようなコインによって行われる場合には、同様のコインを利用する相手との間で銀行等を介することなく決済を行ったりすることが可能となる。
【００６０】
また、役所から交付される個人情報を含む各種の情報を自己の端末に保持することができる。例えば、現状、各種の手続きにおいて住民票の提出を求められる場合、提出の都度、役所への申請手続きが必要であるが、本実施形態に係る仕組みによって住民票の交付を受けた場合、役所と自己の端末には、交付された住民票の情報とともに、当該住民票の発行を役所から受けたという取引履歴が記録される。すなわち、住民票の提出が必要になった場合、自己の端末に記録されている住民票の情報が正当なものであることを証明することができる。したがって、例えば提出先が同様のプライベートなネットワークに参加すれば、新たに役所から住民票の交付を受けることなく当該住民票の提出を行うことができる。
【００６１】
以上のとおり、本実施形態にかかるプログラムによれば、このような商取引あるいは会計上の意味での取引に限られない各種の取引をプライベートネットワークによって行うためのプラットフォームを提供することができる。さらには、上述した冗長性の問題に対しても、全くの第三者ノードに対しては取引内容を非公開にしつつも、自己が許容するノードを指定して取引にかかる情報を共有することで、例えば自己の端末が破損等した場合であっても、データを復元することができるようになる。
【００６２】
また、さらには、取引にかかる情報としてハッシュ関数を用いて取引内容に関するハッシュ値等の不可逆な値を算出し、そのハッシュ値をパブリックなブロックチェーンに送信（ブロードキャスト）して記憶させる構成であってもよい。この場合、パブリックなブロックチェーン上に記憶されるのはあくまでハッシュ値等の不可逆な値であって、第三者に取引内容を知られることはない。このような構成とすることで、万一後々情報の改ざん等が疑われるようになった場合、取引の当事者の端末間に記憶されている取引情報から算出されるハッシュ値とブロックチェーン上のハッシュ値とを突き合わせて確認することで、改ざんがなされていないことを確認することができるようになる。
【００６３】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６４】
１００  情報処理装置
２０３  暗号復号部
２０４  プログラム作成部
２０５  コンパイル部
２０６  相対取引部
２０７  データ共有部
２０８  データ保管部
【図１】
2020079891.tif 000003
【図２】
2020079891.tif 000004
【図３】
2020079891.tif 000005
【図４】
2020079891.tif 000006
【図５】
2020079891.tif 000007
【図６】
2020079891.tif 000008
【図７】
2020079891.tif 000009
【図８】
2020079891.tif 000010