[実施の形態1]
図1は、情報処理システム1の構成を示す説明図である。情報処理システム1は、検証装置10、用途発行装置40、第1取引装置21、第2取引装置30および第3取引装置23を備える。第1取引装置21は、ネットワークを介して第1情報処理装置51と通信可能である。第3取引装置23は、ネットワークを介して第3情報処理装置53と通信可能である。
情報処理システム1は、アカウント間の資産の移動を示す取引情報を作成し、検証し、正しい取引情報を後述するブロックチェーン61(図7参照)に蓄積するシステムである。情報処理システム1を介して取引を行う個人および法人のアカウントには、それぞれ固有のID(IDentifier)が割り当てられている。
検証装置10は、後述する検証作業を行う情報処理装置である。図1においては、1個の検証装置10を記載するが、後述するように情報処理システム1には複数の検証装置10が接続されており、それぞれの検証装置10が検証作業を実行する。
用途発行装置40は、後述する用途の発行を行う情報処理装置である。以下の説明においては、用途発行装置を使用する用途発行アカウントのIDを「ZZZ」とする。
第2取引装置30は、商品を販売する店舗を運営する情報処理装置である。以下の説明においては、第2取引装置30を使用する店舗アカウントのIDを「BBB」とする。第1取引装置21および第3取引装置23は、一般ユーザに対してブロックチェーン61を用いた取引の取次サービスを提供する取次業者等が使用する情報処理装置である。
第1情報処理装置51および第3情報処理装置53は、一般ユーザが使用する情報処理装置である。以下の説明においては、第1情報処理装置51を使用する第1アカウントのIDを「AAA」とする。第1情報処理装置51を使用するユーザは、第1取引装置21を介してブロックチェーン61を用いた取引を行う。第3情報処理装置53を使用する第3アカウントのIDを「CCC」とする。第3情報処理装置53を使用するユーザは、第3取引装置23を介してブロックチェーン61を用いた取引を行う。
図2は、検証装置10の構成を示す説明図である。検証装置10は、検証CPU(Central Processing Unit)12、主記憶装置13、補助記憶装置14、通信部15およびバスを備える。検証CPU12は、本実施の形態のプログラムを実行する演算制御装置である。検証CPU12には、一または複数のCPUまたはマルチコアCPU等が使用される。検証CPU12は、バスを介して検証装置10を構成するハードウェア各部と接続されている。
主記憶装置13は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の記憶装置である。主記憶装置13には、検証CPU12が行う処理の途中で必要な情報および検証CPU12で実行中のプログラムが一時的に保存される。
補助記憶装置14は、SRAM、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置14には、検証CPU12に実行させるプログラム、取引DB(Database)60、およびプログラムの実行に必要な各種データが保存される。
通信部15は、検証装置10とネットワークとの間の通信を行うインターフェイスである。本実施の形態の検証装置10は、汎用のパーソナルコンピュータ、大型計算機、スマートフォン、タブレット等の情報機器等である。また、本実施の形態の検証装置10は、大型計算機上で動作する仮想マシンでも良い。
図3は、第1取引装置21および第1情報処理装置51の構成を示す説明図である。第1取引装置21は、取次CPU212、主記憶装置213、補助記憶装置214、通信部215およびバスを備える。取次CPU212は、本実施の形態のプログラムを実行する演算制御装置である。
主記憶装置213、補助記憶装置214、通信部215およびバスについては、図2を使用して説明した検証装置10の主記憶装置13、補助記憶装置14、通信部15およびバスと同様であるので、説明を省略する。
本実施の形態の第1取引装置21は、汎用のパーソナルコンピュータ、大型計算機、スマートフォン、タブレット等の情報機器等である。また、本実施の形態の第1取引装置21は、大型計算機上で動作する仮想マシンでも良い。
第1情報処理装置51は、第1CPU512、主記憶装置513、補助記憶装置514、通信部515、表示部517、入力部518およびバスを備える。第1CPU512は、本実施の形態のプログラムを実行する演算制御装置である。
補助記憶装置514は、SRAM、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置514には、第1情報処理装置514に実行させるプログラム、およびプログラムの実行に必要な各種データが保存される。表示部517は、たとえば液晶表示パネル、有機EL(Electro Luminescence)表示パネル等である。入力部518は、たとえば表示部518の表面に配置されたタッチセンサである。入力部518は、マウス、キーボート等であっても良い。
主記憶装置513、通信部515およびバスについては、図2を使用して説明した検証装置10の主記憶装置13、通信部15およびバスと同様であるので、説明を省略する。
本実施の形態の第1情報処理装置51は、汎用のパーソナルコンピュータ、スマートフォン、タブレット等の個人向けの情報機器等である。
図4は、第3取引装置23および第3情報処理装置53の構成を示す説明図である。第3取引装置23は、取次CPU232、主記憶装置233、補助記憶装置234、通信部235およびバスを備える。
取次CPU232、主記憶装置233、補助記憶装置234、通信部235およびバスについては、図3を使用して説明した第1取引装置21の取次CPU212、主記憶装置213、補助記憶装置214、通信部215およびバスと同様であるので、説明を省略する。
本実施の形態の第3取引装置23は、汎用のパーソナルコンピュータ、大型計算機、スマートフォン、タブレット等の情報機器等である。また、本実施の形態の第3取引装置23は、大型計算機上で動作する仮想マシンでも良い。
第3情報処理装置53は、第3CPU532、主記憶装置533、補助記憶装置534、通信部535、表示部537、入力部538およびバスを備える。第3CPU532は、本実施の形態のプログラムを実行する演算制御装置である。
主記憶装置533、補助記憶装置534、通信部535、表示部537、入力部538およびバスについては、図3を使用して説明した第1情報処理装置51の主記憶装置513、補助記憶装置514、通信部515、表示部517、入力部518およびバスと同様であるので、説明を省略する。
本実施の形態の第3情報処理装置53は、汎用のパーソナルコンピュータ、スマートフォン、タブレット等の個人向けの情報機器等である。
図5は、第2取引装置30の構成を示す説明図である。第2取引装置30は、店舗CPU32、主記憶装置33、補助記憶装置34、通信部35、表示部37、入力部38およびバスを備える。店舗CPU32は、本実施の形態のプログラムを実行する演算制御装置である。
補助記憶装置34は、SRAM、フラッシュメモリ、ハードディスクまたは磁気テープ等の記憶装置である。補助記憶装置34には、第2取引装置30に実行させるプログラム取引DB60、およびプログラムの実行に必要な各種データが保存される。
主記憶装置33、通信部35、表示部37、入力部38およびバスについては、図3を使用して説明した第1情報処理装置51の主記憶装置513、通信部515、表示部517、入力部518およびバスと同様であるので、説明を省略する。
図6は、用途発行装置40の構成を示す説明図である。用途発行装置40は、用途発行CPU42、主記憶装置43、補助記憶装置44、通信部45、表示部47、入力部48およびバスを備える。用途発行CPU42は、本実施の形態のプログラムを実行する演算制御装置である。
主記憶装置43、補助記憶装置44、通信部45、表示部47、入力部48およびバスをついては、図5を使用して説明した第2取引装置30の主記憶装置33、補助記憶装置34、通信部35、表示部37、入力部38およびバスと同様であるので、説明を省略する。
図1に戻って説明を続ける。検証装置10、用途発行装置40、第1取引装置21、第2取引装置30および第3取引装置23は、ピアツーピア接続により取引DB60を随時同期する。
図7は、取引DB60の構成を示す説明図である。取引DB60は、正当性が確認されたブロック64が連鎖したブロックチェーン61と、未検証情報群62とを含む。未検証情報群62は、第1取引装置21等から出力されたが、まだ検証とブロックチェーン61への組み込みが完了していない取引情報である未検証情報63を含む。
ブロック64は、取引情報群65、Nonce66およびハッシュ値67を含む。取引情報群65は、正当性が検証された取引情報の集合体である。取引情報群65の詳細については後述する。ハッシュ値67は、一つ前のブロック64の情報を所定の手法により演算することにより求めた数値である。Nonce66は、自ブロック64のハッシュ値67が所定の条件を満足するように定められた定数である。
本実施の形態においては、検証CPU12は未検証情報群62内の未検証情報63を検証して取引情報群65を作成した後に、条件を満たすNonce66を算出することにより、ブロックチェーン61に接続する新たなブロック64を作成する。Nonce66およびハッシュ値67により、ブロック64は作成された順番にしたがって連鎖するブロックチェーン61を形成する。
ブロックチェーン61に組み込まれた後は、取引情報群65の改竄は非常に困難である。また、取引に参加する者は、取引情報群65を閲覧して過去の取引情報を確認することが可能である。これらの仕組みにより、取引の信頼性が担保される。
以上に説明したように、本実施の形態においてはNonce66を算出する作業負荷により取引の信頼性を担保するいわゆるPoW(Proof of Work)方式のブロックチェーン61を使用する。たとえば、多くの資産を持つアカウントが決定権を有することにより取引の信頼性を担保するいわゆるPoS(Proof of Stake)方式等、任意のアルゴリズムにより取引の信頼性を担保するブロックチェーン61を使用することも可能である。
ブロックチェーン61を使用するアカウントを信頼できるアカウントのみに制限すること、あるいは新たなブロック64をブロックチェーン61に接続する権限を特定のアカウントのみに制限すること等により、取引の信頼性を担保しても良い。
図8は、未検証情報63の構成を示す説明図である。未検証情報63は、第1取引装置21等から取引DB60に出力されたが、まだ検証とブロックチェーン61への組み込みが完了していない取引情報である。
未検証情報63は、第2識別情報フィールド、送付元IDフィールド、送付先IDフィールド、金額フィールド、第1識別情報フィールド、メモフィールドおよび受付時刻フィールドを有するDBである。それぞれの未検証情報63は一つのレコードを有する。
第2識別情報フィールドには、各取引情報を識別する固有の取引IDが記録されている。送付元IDフィールドには、資産を送付した送付元のアカウントのIDが記録されている。送付先IDフィールドには、資産の送付先のアカウントのIDが記録されている。
金額フィールドには、送信元のアカウントから送付先のアカウントに送付した、価値を示す情報として資産の額が記録されている。金額フィールドの単位には、日本円、米ドル、ユーロその他任意の法定通貨または独自に定めた通貨等を使用することが可能である。以下の説明においては資産の単位を「ポイント」とする。
第1識別情報フィールドには、第1識別情報が記録されている。第1識別情報は、送信元のアカウントが送付する資産を入手した取引を識別する取引IDである。第1識別情報フィールドには、複数の取引IDを記録することが可能である。ブロックチェーン61に記録された取引IDの連鎖により、資産の移動経路を確認することが可能である。したがって、取引IDを使用することにより、入手経路ごとに資産を区別することが可能である。
メモフィールドには、資産の用途発行元、および属性として用途を記録することが可能である。用途発行元および用途の詳細については後述する。その他、メモフィールドには任意の情報を記録することが可能である。受付時刻フィールドには、未検証情報63に関するタイムスタンプが記録される。タイムスタンプは、たとえば未検証情報63が取引DB60に追加された日時を示す。
図9は、取引情報群65の構成を示す説明図である。取引情報群65は、第2識別情報フィールド、送付元IDフィールド、送付先IDフィールド、金額フィールド、第1識別情報フィールド、メモフィールドおよび受付時刻フィールドを有するDBである。各フィールドに記録されているデータは、図8を使用して説明した未検証情報63と同一であるので説明を省略する。取引情報群65の一つのレコードは、一つの未検証情報63に基づいて作成される。
ブロックチェーン61を形成する各ブロック64内の取引情報群65は、同一のフィールド構成を有する。検証CPU12、取次CPU212等の取引DB60にアクセス可能な演算制御装置は、各ブロック64内の取引情報群65を纏めて一つのDBのように取り扱い、検索等の処理を行うことが可能である。
図10は、送付情報の構成を示す説明図である。送付情報は、図1に示すように一般ユーザが使用する情報処理装置51等から、取次業者等が使用する第1取引装置21等に対して送付される情報である。送付情報には、情報処理装置51のユーザが希望する取引の内容が記録されている。
送付情報は、第2識別情報フィールド、送付元IDフィールド、送付先IDフィールド、金額フィールド、メモフィールドおよび受付可能用途フィールドを有する。受付可能用途フィールドは、送付先IDが資産を受け取ることが可能な用途に関する情報が記録されている。
受付可能フィールド以外の各フィールドに記録されているデータは、図8を使用して説明した未検証情報63と同一であるので説明を省略する。それぞれの送付情報は一つのレコードを有する。
図11は、取引例を示す説明図である。図11は、図9に示す一連の取引の流れを説明する模式図である。用途発行アカウントは店舗である第2アカウントに書店相当の属性を与える取引を発行する。第3アカウントは第1アカウントに実世界の図書券相当の資産を与える取引を発行する。第1アカウントは、第3アカウントから入手した資産を用いて、第2アカウントに書籍購入に相当する取引を発行する。
前述のとおり、第2識別情報は、個々の取引情報を特定するための取引IDを示す。図11において、用途発行アカウントは、第2アカウントに対して取引ID「ZZZ002」の取引情報により資産を送付する。送付にあたり、用途発行アカウントが使用する用途発行CPU42は、第2識別情報フィールドに取引IDである「ZZZ002」、金額フィールドに「1」、第1識別情報フィールドに「UUU001」メモフィールドに「bookshop」をそれぞれ記録する。
金額フィールドに記録された「1」は、この取引情報に基づいて用途発行アカウントが第2アカウントに対して1ポイントの資産を送付することを意味する。取引ID「ZZZ002」の取引情報で送付する資産の額は任意である。本実施の形態では、情報処理システム1が扱うことが可能な最小取引額の例として、1ポイントと設定した。
第1識別情報フィールドに記録された第1識別情報は、送付する資産の入手経路を識別する取引情報の取引IDを示す。図11においては、用途発行アカウントは、第3者から取引ID「UUU001」の取引情報に基づいて入手した資産を第2アカウントに対する支払に使用する。以下の説明では、支払に使用する資産を元資産という。第1識別情報フィールドには、元資産に関する取引IDが記録されている。
メモフィールドに記録されたメモは、用途発行アカウントが第2アカウントに対して「bookshop」の用途を発行することを意味する。用途の発行を受けた第2アカウントは、メモフィールドに用途発行元「ZZZ」と用途「bookshop」とを連結した「ZZZ,bookshop」が記録された取引情報に基づいて、資産を受け取ることができる。
第1識別情報には、複数の取引IDを指定することが可能である。したがって、複数の少額取引により入手した資産をまとめて高額取引の支払にあてることが可能である。
取引ID「ZZZ002」の取引情報は、検証CPU12によって検証されて、ブロックチェーン61に加えられることにより有効となる。取引情報が有効になる際に、送付元のアカウントは取引手数料を支払う。取引手数料は、検証を行ったアカウントに対する報酬等、情報処理システム1の運用経費に使用される。
取引手数料も取引情報群65に記録されるが、図9においては記載を省略する。なお、取引手数料は資産を受け取る送付先のアカウントが負担しても良い。検証CPU12は、送付元のアカウントが送付する資産から取引手数料を減額した資産を送付先のアカウントに送付しても良い。取引手数料以外に情報処理システム1を運営する経費の原資が存在する場合には、取引手数料は無償でも良い。
取引ID「ZZZ002」の取引情報がブロックチェーン61に加えられることにより、用途発行アカウントが、第2アカウントに対して「bookshop」の用途を発行したことがブロックチェーン61に記録される。
第3アカウントが、第1アカウントに対して、取引ID「CCC010」の取引情報により500ポイントの資産を送付する。送付にあたり、第3アカウントが使用する第3CPU532は、メモフィールドに「ZZZ,bookshop」と記録する。なお、第3CPU532は、メモフィールドに用途発行元と用途との組合せを複数記録しても良い。
メモフィールドに記録された「ZZZ,bookshop」は、IDが「ZZZ」であるアカウントにより、「bookshop」の用途の発行を受けたアカウントに対する支払に使用できる資産であることを意味する。以下の説明においては、このように用途が指定された資産を用途指定資産という。
取引ID「CCC010」の取引情報は、検証CPU12によって検証されて、ブロックチェーン61に加えられることにより有効となる。図11においては、第1アカウントは500ポイントの資産を受け取る。第3アカウントは500ポイントに取引手数料を加えた資産を支払う。
第1アカウントは、第2アカウントに対して、取引ID「AAA100」の取引情報により500ポイントの資産を送付する。送付にあたり、第1アカウントが使用する取次CPU212は、第1識別情報フィールドに「CCC010」の取引IDを指定する。この指定は、第1アカウントは取引ID「CCC010」の取引情報により受け取った用途指定資産を元資産にすることを意味する。
前述のとおり、第2アカウントは、用途発行アカウント「ZZZ」により「bookshop」の用途の発行を受けている。したがって、第2アカウントは元資産に取引ID「CCC010」の用途指定資産を指定した、「AAA100]の取引情報に基づく資産を受け取ることができる。
取引ID「AAA010」の取引情報は、検証CPU12によって検証されて、ブロックチェーン61に加えられることにより有効となる。図11においては、第2アカウントは500ポイントの資産を受け取る。第3アカウントは500ポイントに取引手数料を加えた資産を支払う。
なお、第2アカウントが用途発行アカウント「ZZZ」により「bookshop」の用途の発行を受けていない場合には、検証CPU12は、取引ID「AAA100」の取引情報は不正であると判定する。取引情報は、ブロックチェーン61に加えられず、有効とならない。そのため、第1アカウントと第2アカウントとの間の取引は成立しない。
以上により、第3アカウントは、たとえば図書券のような用途を指定した用途指定資産を第1アカウントに送付することができる。第1アカウントは、第3アカウントにより指定された用途と異なる用途に、用途指定資産を流用することができない。
第3アカウントが用途発行アカウントを兼ねても良い。すなわち、第3アカウントは、メモフィールドに「bookshop」と記録した取引情報により、資産を第2アカウントに送付する。この取引情報により、第3アカウントが第2アカウントに「bookshop」の用途を発行したことがブロックチェーン61に記録される。
第3アカウントは、メモフィールドに「CCC,bookshop」と記録した取引情報により、資産を第1アカウントに送付する。この取引情報により、第3アカウントは自らが指定した店舗でのみ使用できる用途指定資産を第1アカウントに送ることが可能である。
第2アカウントが、用途発行アカウントを兼ねても良い。すなわち、第2アカウントは、メモフィールドに「bookshop」と記録した取引情報により、資産を第2アカウント自身に送付する。この取引情報により、第2アカウント自身が第2アカウントに「bookshop」の用途を発行したことがブロックチェーン61に記録される。
さらに、第2アカウントが第3アカウントを兼ねても良い。第2アカウントは、メモフィールドに「BBB,bookshop」と記録した取引情報により、資産を第1アカウントに送付する。この取引情報により、第2アカウントは自らの店舗でのみ使用できる資産を第1アカウントに送ることが可能である。すなわち、第2アカウントは、自店専用のクーポン券のように使用できる資産を第1アカウントに送ることが可能である。
図1に戻って説明を続ける。前述のとおり、情報処理システム1には複数の検証装置10が接続されている。用途発行装置40、第1取引装置21、第2取引装置30、および第3取引装置23は、検証装置10を兼ねても良い。本実施の形態においては、複数の検証装置10が並行して検証を行い、条件を満たすNonce66を最も早く算出した検証装置10が新たなブロック64をブロックチェーン61に加える。
図12は、第3情報処理装置53が表示部537に表示する画面を示す説明図である。図12に示す画面は、送付先欄81、金額欄82、用途指定欄83およびOKボタン84を含む。送付先欄81は送付先名欄811および送付先ID欄812を含む。用途指定欄83は、複数のボタンを含む。
第3CPU532は、送付先名欄811を介して、資産を送付する送付先名の入力を受け付ける。第3CPU532は、たとえば第3情報処理装置53の補助記憶装置534に記憶されたアドレス帳等を参照して、送付先名に対応する送付先IDを取得し、送付先ID欄812に表示する。第3CPU532は、金額欄82を介して、送付先に送る資産の額の入力を受け付ける。
第3CPU532は、用途指定欄83を介して送付する資産の用途を受け付ける。用途指定欄83で「指定無し」が選択された場合には、第3CPU532は用途を指定しない資産を送付する。以下の説明では用途を指定しない資産を通常資産という。第3CPU532は、用途指定欄83を介して複数の用途を受け付けても良い。
OKボタン84の選択を受け付けた場合、第3CPU532は、資産の送付に関する情報の入力が終了したと判定する。
図13は、第1情報処理装置51が表示部517に表示する画面を示す説明図である。図13は、ネットワークを介して買い物を行ういわゆるネットショッピングにおいて、第1アカウントが第2アカウントの店舗から商品を購入する際に第1CPU512が表示する決済画面の例である。
図13に示す画面は、送付先欄81、受付可能用途欄85、金額欄82およびOKボタン84を含む。送付先欄81は送付先名欄811および送付先ID欄812を含む。
第1CPU512は、ネットワークを介して店舗CPU32から取得した情報を、送付先欄81、受付可能用途欄85および金額欄82に表示する。送付先欄81には、第2アカウントの情報が表示されている。
受付可能用途欄85には、第2アカウントが受け取ることが可能な資産の用途が表示されている。第2アカウントが複数の用途の発行を受けている場合には、受付可能用途欄85には、複数の用途が表示される。金額欄82には、第1アカウントが購入しようとする商品の代金が表示されている。
OKボタン84の選択を受け付けた場合、第1CPU512は、資産の送付処理を行うことが第1アカウントにより承認されたと判定する。
図14は、プログラムの処理の流れを示すフローチャートである。図14を使用して、本実施の形態の処理の流れを説明する。なお、第1CPU512と第3CPU532とは、同一のプログラムを実行する。同様に、取次CPU212と、取次CPU232とは、同一のプログラムを実施する。図14においては第1CPU512と取次CPU212とが実行する場合を例にして説明する。
ユーザによる入力に基づいて、第1CPU512は、買い物を行うか否かを判定する(ステップS501)。買い物を行うと判定した場合(ステップS501でYES)、第1CPU512は、店舗CPU32に対してたとえばインターネットを介して商品情報の要求を送信する(ステップS502)。
店舗CPU32は、ネットワークを介して要求を受信する(ステップS601)。店舗CPU32は、商品情報を送信する(ステップS602)。第1CPU512は、商品情報を受信して、表示部517に表示する(ステップS504)。
第1CPU512は、ユーザによる商品の選択を受け付け、店舗CPU32に情報を送信する(ステップS505)。店舗CPU32は、選択された商品に関する情報を受信する(ステップS604)。店舗CPU32は、選択された商品の価格等に基づいて支払情報を作成して、第1CPU512に送信する(ステップS605)。支払情報は、代金の送付先名、送付先ID、第2アカウントが受付可能な用途および請求金額を含む。
第1CPU512は、支払情報を受信する(ステップS507)。第1CPU512は、図13を使用して説明した決済画面を表示部517に表示する(ステップS508)。第1CPU512はユーザによるOKボタン84の選択を取得する(ステップS509)。
買い物を行わない判定した場合(ステップS501でNO)、第1CPU512は図12を使用して説明した送付画面を表示する(ステップS511)。第1CPU512は、送付先ID等の送付内容を取得する(ステップS512)。
ステップS509またはステップS512の終了後、第1CPU512は図10を使用して説明した送付情報を取次CPU212に送信する(ステップS515)。取次CPU212は、送付情報を取得する(ステップS701)。
取次CPU212は、送付処理のサブルーチンを起動する(ステップS702)。送付処理のサブルーチンは、送付情報に基づいて未検証情報63を作成し、取引DB60に記録するサブルーチンである。送付処理のサブルーチンの処理の流れは後述する。
取次CPU212は、送付処理のサブルーチンの処理結果に基づいて、後述する変数「送付結果」を第1CPU512に送信する(ステップS703)。第1CPU512は、変数「送付結果」の結果を受信する(ステップS517)。第1CPU512は、変数「送付結果」に基づいて送付処理の結果を表示部517に表示する(ステップS518)。第1CPU512は、その後処理を終了する。
店舗CPU32は、ステップS605の終了後、取次CPU212がステップS702の送付処理のサブルーチンで処理した未検証情報63がブロックチェーン61に組み込まれるのに十分な時間、タイマーにより待機する(ステップS607)。店舗CPU32は、ブロックチェーン61を参照して、第1CPU512からの資産の送付がブロックチェーン61に記録されていることを確認する(ステップS608)。
ステップS608で資産の送付が記録されている場合には、店舗CPU32は受注が完了したと判定し、商品の発送等の受注処理を行う。ステップS608で資産の送付が記録されていない場合には、店舗CPU32は第1CPU512による発注は行われなかったと判定し、受注処理を行わない。
図15は、送付処理のサブルーチンの処理の流れを示すフローチャートである。送付処理のサブルーチンは、送付情報に基づいて未検証情報63を作成し、取引DB60に記録するサブルーチンである。図15を使用して、送付処理のサブルーチンの処理の流れを説明する。
取次CPU212は、ブロックチェーン61に記録された取引情報群65を検索して、送付元IDフィールドまたは送付先IDフィールドに第1CPU512のユーザのIDが記録されている取引情報を抽出する(ステップS711)。
取次CPU212は、抽出した取引情報の第1識別情報フィールドに記録されたデータと第2識別情報フィールドに記録されたデータとを対比して、第1CPU512のユーザが保有している未使用資産を抽出する(ステップS712)。具体的には、取次CPU212は、第1CPU512のユーザが送付先に指定されている取引情報から、第1CPU512のユーザが他者に資産を送付した取引情報の第1識別情報フィールドに取引IDを記録済の取引情報を除去する。残った取引情報により第1CPU512のユーザが入手した資産が、未使用資産である。
取次CPU212は、第1CPU512から取得した送付情報の受付可能用途フィールドに、受付可能用途が記録されているか否かを判定する(ステップS713)。受付可能用途が記録されていると判定した場合(ステップS713でYES)、取次CPU212はステップS712で抽出した未使用資産からメモフィールドに用途が記録された用途指定資産を抽出する(ステップS714)。
取次CPU212は、送付情報に記録されている受付可能用途と、ステップS714で抽出した用途指定資産の用途とが一致するか否かを判定する(ステップS715)。以下の説明では、受付可能用途と一致する用途が指定された用途指定資産を適合資産という。適合資産は、送付先が受け取り可能な用途指定資産である。
一致すると判定した場合(ステップS715でYES)、すなわち適合資産があると判定した場合、取次CPU212は、用途指定資産送付のサブルーチンを起動する(ステップS716)。用途指定資産送付のサブルーチンは、適合資産の取引IDを第1識別情報フィールドに記録した未検証情報63を作成して、取引DB60に記録するサブルーチンである。用途指定資産送付のサブルーチンの処理の流れは後述する。その後、取次CPU212は処理を終了する。
受付可能用途が記録されていないと判定した場合(ステップS713でNO)または適合資産が存在しないと判定した場合(ステップS715でNO)、取次CPU212はステップS712で抽出した未使用資産のうち、用途が指定されていない通常資産を抽出して合計を算出する(ステップS721)。
取次CPU212は、送付情報の金額フィールドに記録された金額と、ステップS721で算出した合計とを比較し、保有する資産が足りるか否かを判定する(ステップS722)。この際、取次CPU212は、必要な手数料額も加味して判定を行う。
足りると判定した場合(ステップS722でYES)、取次CPU212は通常資産の中から元資産を選択する(ステップS723)。この際、取次CPU212は、送付情報の金額フィールドに記録された金額以上となるように、元資産を選択する。
取次CPU212は、未検証情報63を作成して、取引DB60に記録する(ステップS724)。この際、取次CPU212は、未検証情報63の第1識別情報フィールドにステップS723で選択した元資産に対応する取引IDを記録する。取次CPU212は、第2識別情報フィールド、送付元IDフィールド、送付先IDフィールドおよびメモフィールドには、送付情報と同一の情報を記録する。取次CPU212は、未検証情報63の受付時刻フィールドに未検証情報を取引DB60に記録する時刻のタイムスタンプを記録する。
取次CPU212は、変数「送付結果」に「完了」と記録する(ステップS725)。その後、取次CPU212は処理を終了する。
足りないと判定した場合(ステップS722でNO)、取次CPU212は、変数「送付結果」に「資産不足」と記録する(ステップS727)。その後、取次CPU212は処理を終了する。
図16は、用途指定資産送付のサブルーチンの処理の流れを示すフローチャートである。用途指定資産送付のサブルーチンは、適合資産を元資産に指定する未検証情報63を作成して、取引DB60に記録するサブルーチンである。図16を使用して、用途指定資産送付のサブルーチンの処理の流れを説明する。
取次CPU212は、適合資産に対応する取引IDを変数「元資産」に記録する。(ステップS731)。取次CPU212は、送付情報の金額フィールドに記録された金額と、ステップS731で記録した適合資産の合計とを比較し、資産が足りるか否かを判定する(ステップS732)。
足りないと判定した場合(ステップS732でNO)、取次CPU212は、未使用資産のうち、用途が指定されていない通常資産を抽出し、合計を算出する(ステップS741)。
取次CPU212は、ステップS732で足りないと判定した金額とステップS721で算出した合計値とを比較し、保有する資産が足りるか否かを判定する(ステップS742)。足りると判定した場合(ステップS742でYES)、取次CPU212は通常資産の中から、追加する元資産を選択する(ステップS743)。取次CPU212は、変数「元資産」に選択した元資産に対応する取引IDを追加する(ステップS744)。
ステップS744の終了後、および足りると判定した場合(ステップS732でYES)、取次CPU212は、未検証情報63を作成し、取引DB60に記録する(ステップS733)。この際、取次CPU212は、未検証情報63の第1識別情報フィールドに変数「元資産」に対応する取引IDを記録する。取次CPU212は、第2識別情報フィールド、送付元IDフィールド、送付先IDフィールドおよびメモフィールドには、送付情報と同一の情報を記録する。取次CPU212は、未検証情報63の受付時刻フィールドに未検証情報を取引DB60に記録する時刻のタイムスタンプを記録する。
取次CPU212は、変数「送付結果」に「完了」と記録する(ステップS734)。その後、取次CPU212は処理を終了する。
通常資産が足りないと判定した場合(ステップS742でNO)、取次CPU212は、変数「送付結果」に「資産不足」と記録する(ステップS746)。その後、取次CPU212は処理を終了する。
図17は、検証装置10のプログラムの処理の流れを示すフローチャートである。検証CPU12は、カウンタIを初期値1に設定する(ステップS801)。検証CPU12は、未検証情報群62からI番目の未検証情報63を取得する(ステップS802)。
検証CPU12は、検証のサブルーチンを起動する(ステップS803)。検証のサブルーチンは、未検証情報63に正しい情報が記録されているか否かを検証するサブルーチンである。検証のサブルーチンの処理の流れは後述する。
検証CPU12は、未検証情報63の検証を終了するか否かを判定する(ステップS804)。たとえば、所定の数の未検証情報63の検証を行った場合、または所定の時刻に到達した場合等に、検証CPU12は終了すると判定する。終了しないと判定した場合(ステップS804でNO)、検証CPU12はカウンタIに1を加算する(ステップS805)。検証CPU12はステップS802に戻る。
終了すると判定した場合(ステップS804でYES)、検証CPU12は正しい情報が記録されていると判定した未検証情報63を纏めて取引情報群65を作成する(ステップS810)。検証CPU12は、取引情報群65に纏めた未検証情報63を未検証情報群62から削除する。
検証CPU12は、ブロックチェーン61の最終のブロック64のハッシュ値67を算出する(ステップS811)。検証CPU12は、Nonce66の値を設定する(ステップS812)。検証CPU12は、ステップS810で作成した取引情報群65、ステップS811で算出したハッシュ値67およびステップS812で設定したNonce66に基づいて、新しいブロック64のハッシュ値67を算出する(ステップS813)。
検証CPU12は、算出したハッシュ値67が所定の条件を満たすことに成功しているか否かを判定する(ステップS814)。成功していると判定した場合(ステップS814でYES)、検証CPU12は自らが一番目の成功者であるか否かを判定する(ステップS815)。
一番であると判定した場合(ステップS815でYES)、検証CPU12は、ステップS810で作成した取引情報群65、ステップS811で算出したハッシュ値67およびステップS812で設定したNonce66を記録した新しいブロック64を作成する(ステップS816)。検証CPU12は、作成したブロック64を取引DB60に記録する(ステップS817)。検証CPU12は、その後処理を終了する。一番ではないと判定した場合(ステップS815でNO)、検証CPU12は処理を終了する。
成功していないと判定した場合(ステップS814でNO)、検証CPU12は他の検証装置が成功済であるか否かを判定する(ステップS821)。成功済であると判定した場合(ステップS821でYES)、検証CPU12は処理を終了する。成功済でないと判定した場合(ステップS821でNO)、検証CPU12はステップS812に戻る。
図18は、検証のサブルーチンの処理の流れを示すフローチャートである。検証のサブルーチンは、未検証情報63に正しい取引情報が記録されているか否かを検証するサブルーチンである。図18を使用して、検証のサブルーチンの処理の流れを説明する。
検証CPU12は、電子署名等を参照して未検証情報63が不正な情報でないことを確認する。検証CPU12は、未検証情報63の第1識別情報フィールドに記録された取引IDをキーとして取引情報群65の第2識別情報フィールドを検索し、元資産が送付された際の取引情報を抽出する(ステップS841)。なお、第1識別情報フィールドに複数の取引IDが記録されている場合には、検証CPU12はそれぞれ取引IDに対応する取引情報を抽出する。
検証CPU12は、未検証情報63の送付元IDフィールドに記録された送付元のアカウントが、未検証情報63の第1識別情報フィールドに記録された元資産を保有しているか否かを判定する(ステップS842)。
具体的には、検証CPU12は、ステップS841で抽出した取引情報の送付先IDが未検証情報63の送付元IDと一致しているか否かを判定する。一致している場合は、送付元のアカウントが元資産を受け取った履歴があることを意味する。
一致していると判定した場合、検証CPU12は同じ取引IDを第1識別情報フィールドに記録した取引情報が、ブロックチェーン61に記録されている否かを判定する。記録されている場合、元資産は既に他の支払に使用済であり、送付元のアカウントが保有していないことを意味する。
ブロックチェーン61に記録されていないと判定した場合、検証CPU12は送付元のアカウントが第1識別情報フィールドに記録された取引IDに対応する資産を保有していると判定する。
第1識別情報フィールドに複数の取引IDが指定されている場合には、検証CPU12はそれぞれの取引IDについて同様の検証を行う。
送付元のアカウントが第1識別情報フィールドに記録された取引IDに対応する資産を保有していると判定した場合(ステップS842でYES)、検証CPU12は資産が足りているか否かを判定する(ステップS843)。具体的には、検証CPU12は、ステップS841で抽出した取引情報の金額フィールドに記録された値の合計が、未検証情報63の金額フィールドに記録された値以上である場合に、資産が足りると判定する。
送付元のアカウントがステップS841で抽出した資産を保有していないと判定した場合(ステップS842でNO)、または資産が足りないと判定した場合(ステップS843でNO)、検証CPU12は変数「判定」に「不可」と記録する(ステップS854)。その後、検証CPU12は処理を終了する。
資産が足りると判定した場合(ステップS843でYES)、検証CPU12はステップS841で抽出した取引情報が用途指定資産を示すか否かを判定する(ステップS844)。具体的には、抽出した取引情報のメモフィールドに用途発行元および用途が記録されている場合、検証CPU12は抽出した取引情報は用途指定資産を示すと判定する。
なお、ステップS841で複数の取引情報を抽出した場合には、そのうちの一つのメモフィールドに用途発行元および用途が記録されている場合、検証CPU12は用途指定資産を示すと判定する。
用途指定資産を示すと判定した場合(ステップS844でYES)、検証CPU12はステップS841で抽出した取引情報のメモフィールドから用途発行元および元資産の用途である第1用途を抽出する(ステップS845)。ここで、元資産の用途発行元は、メモフィールドに記録された用途発行元のアカウントのIDである。第1用途は、メモフィールドに記録された用途である。第1用途は、用途指定資産に対して指定された用途を意味する。
検証CPU12は、取引情報群65を検索し、ステップS845で抽出した用途発行元のアカウントから未検証情報63の送付先IDフィールドに記録された送付先のアカウントに対して資産を送付した取引情報を抽出する(ステップS846)。検証CPU12は第2用途を抽出する(ステップS847)。第2用途は、ステップS846で抽出したそれぞれの取引情報のメモフィールドに、用途発行元のアカウントのIDを伴わずに記録された用途である。第2用途は、用途発行元のアカウントから、送付先に対して発行された用途である。
検証CPU12は、ステップS847で抽出した第2用途が、ステップS845で抽出した第1用途を含むか否かを判定する(ステップS848)。第2用途が第1用途を含む場合、未検証情報63は、用途発行元により発行された用途に沿って用途指定資産を使用することを意味する。
第1用途を含まないと判定した場合(ステップS848でNO)、検証CPU12は変数「判定」に「不可」と記録する(ステップS849)。その後検証CPU12は処理を終了する。
第1用途を含むと判定した場合(ステップS848でYES)、検証CPU12は、ステップS841で抽出した取引情報の金額フィールドの値の合計と、未検証情報63の金額フィールドの値とが一致するか否かを判定する(ステップS851)。ステップS841で抽出した資産が用途指定資産でないと判定した場合(ステップS844でNO)も、検証CPU12はステップS851に進む。
一致しないと判定した場合(ステップS851でNO)、検証CPU12は余剰分の資産を未検証情報の送付元のアカウントに戻す取引情報を記録した釣り情報を作成する(ステップS852)。
釣り情報は、未検証情報63と同一のフィールド構造を有する。釣り情報の送付元IDフィールドおよび送付先IDフィールドには、未検証情報63の送付元IDフィールドと同一の情報が記録される。釣り情報の第2識別情報フィールドには、検証CPU12により付与される固有の取引IDが記録される。釣り情報の金額フィールドには、余剰分の資産の値が記録される。釣り情報の第1識別情報フィールドには、未承認情報63の取引IDが記録される。釣り情報の受付時刻フィールドには、釣り情報の生成日時が記録される。検証CPU12は、釣り情報を検証済と判定した状態で、未検証情報群62に追加する。以後、検証CPU12は、釣り情報を検証済の未検証情報63と同様に取り扱う。
ステップS852の終了後、または一致すると判定した場合(ステップS851でYES)、検証CPU12は変数「判定」に「可」と記録する(ステップS853)。その後検証CPU12は処理を終了する。
本実施の形態によると、用途を指定した資産を取引することが可能な情報処理システム1等を提供することが可能である。
本実施の形態によると、用途指定資産を他の用途に流用する取引情報を不適切な取引情報であると判定し、ブロックチェーンに組み込まない情報処理システム1等を提供することができる。
本実施の形態によると、ブロックチェーン61を使用する任意の情報処理装置が用途発行装置40の役割を果たして、任意のアカウントに対して任意の用途を発行することが可能である。したがって、特別な権限を有する情報処理装置またはアカウントを使用せずに、用途指定資産を取引することが可能な情報処理システム1等を提供することが可能である。
本実施の形態によると、用途発行元から複数のアカウントに同一の用途を発行することにより、たとえば、同業者組合、地域の商店街など、任意の店舗等のグループで利用可能な用途指定資産を容易に実現する情報処理システム1等を提供することが可能である。
本実施の形態によると、ユーザが保有する用途指定資産を抽出し、通常資産よりも優先的に使用する情報処理システム等を提供することが可能である。
本実施の形態によると、用途を指定しない通常の取引と、用途指定資産の取引とを同一のブロックチェーン61および同一のプログラムで処理することが可能な情報処理システム1を提供することが可能である。
なお、十分な記憶容量および通信速度を有するハードウェアを使用する一般ユーザは、取引業者を介さずに、自己のコンピュータを取引装置に使用しても良い。第1情報処理装置51を取引装置に使用する場合を例にして説明する。第1CPU512は、補助記憶装置514に取引DB60を保存する。第1CPU512は、ピアツーピア接続により取引DB60を他の装置に保存された取引DBと随時同期する。第1CPU512は、図14から図16を使用して説明した処理の流れにおいて取次CPU212が行う処理と第1CPU512が行う処理との両方を処理する。
[実施の形態2]
本実施の形態は、用途指定資産からはお釣りを出さない情報処理システム1に関する。本実施の形態は、額面よりも安い金額の商品を購入した場合にはお釣りを出さない、ギフトカード等と同様の取り扱いを行う用途指定資産を実現する。実施の形態1と共通する部分については説明を省略する。
図19は、実施の形態2の検証のサブルーチンの処理の流れを示すフローチャートである。図19に示すサブルーチンは、図18を使用して説明した検証のサブルーチンの代わりに使用するサブルーチンである。図19を使用して、本実施の形態の検証のサブルーチンの処理の流れを説明する。
ステップS841からステップS844およびステップS854は、図18を使用して説明したフローチャートと同一であるので説明を省略する。元資産は用途指定資産であると判定した場合(ステップS844でYES)の、ステップS845からステップS849までの処理も、図18を使用して説明したフローチャートと同一であるので説明を省略する。
元資産は用途指定資産でないと判定した場合(ステップS844でNO)、検証CPU12は、ステップS841で抽出した取引情報の金額フィールドに記録された値の合計と、未検証情報63の金額フィールドに記録された値とが一致するか否かを判定する(ステップS861)。
一致しないと判定した場合(ステップS861でNO)、検証CPU12は元資産の余剰分を送付元のアカウントに戻す取引情報を記録した釣り情報を作成する(ステップS862)。
ステップS862の終了後、または一致すると判定した場合(ステップS861でYES)、検証CPU12は変数「判定」に「可」と記録する(ステップS863)。その後検証CPU12は処理を終了する。
第1用途を含むと判定した場合(ステップS848でYES)、検証CPU12は、未検証情報63の金額フィールドに記録された値が、用途指定資産よりも大きいか否かを判定する(ステップS866)。大きいと判定した場合(ステップS866でYES)、検証CPU12は、ステップS841で抽出した取引情報の金額フィールドに記録された値の合計と、未検証情報63の金額フィールドに記録された値とが一致するか否かを判定する(ステップS867)。
一致しないと判定した場合(ステップS867でNO)、検証CPU12は元資産の余剰分を送付元のアカウントに戻す取引情報を記録した釣り情報を作成する(ステップS868)。
ステップS868の終了後、一致すると判定した場合(ステップS867でYES)、または用途指定資産の額以下であると判定した場合(ステップS866でNO)、検証CPU12は変数「判定」に「可」と記録する(ステップS869)。その後検証CPU12は処理を終了する。
本実施の形態によると、用途指定資産からは釣りを出さない情報処理システム1を実現することができる。なお、釣りを出すか否かを示す符号をたとえば用途に含めておき、検証CPU12が釣り情報を作成するか否かを判定しても良い。
[実施の形態3]
本実施の形態は、ユーザが、使用する用途指定資産を選択することが可能な情報処理システム1に関する。実施の形態1と共通する部分については、説明を省略する。
図20は、実施の形態3の第1情報処理装置51が表示する画面を示す説明図である。図20は、ネットワークを介して買い物を行ういわゆるネットショッピングにおいて、第1アカウントが第2アカウントの店舗に商品を発注する際に第1CPU512が表示する決済画面の例である。
図20に示す画面は、送付先欄81、受付可能用途欄85、金額欄82、資産表示欄86、適合資産欄87およびOKボタン84を含む。送付先欄81は送付先名欄811および送付先ID欄812を含む。
第1CPU512は、ネットワークを介して店舗CPU32から取得した情報を、送付先欄81、受付可能用途欄85、および金額欄82に表示する。送付先欄81には、第2アカウントの情報が表示されている。受付可能用途欄85には、第2アカウントが受け取ることが可能な資産の用途が表示されている。金額欄82には、第1アカウントが購入しようとする商品の代金が表示されている。
第1CPU512は、取次CPU212から取得した情報を、資産表示欄86に表示する。資産表示欄86には、第1アカウントが保有する通常資産の合計が表示されている。
第1CPU512は、取次CPU212から取得した情報から抽出した情報を適合資産欄87に表示する。適合資産欄87には、第1アカウントが保有する用途指定資産のうち、第2アカウントが受け取ることが可能な適合資産が表示されている。
第1CPU512は、適合資産欄87を介してユーザによる選択を受け付ける。OKボタン84の選択を受け付けた場合、第1CPU512は、資産の送付処理を行うことが第1アカウントにより承認されたと判定する。
第1CPU512は、適合資産欄87を介して選択を受け付けた適合資産に関する取引IDを、取次CPU212に送信する。取次CPU212は、受信した取引IDを元資産に使用する。ユーザによる選択を受け付けた適合資産だけでは金額が不足する場合には、取次CPU212は、不足分について通常資産を使用する。
図21は、実施の形態3のプログラムの処理の流れを示すフローチャートである。図21を使用して、本実施の形態の処理の流れを説明する。なお、第1CPU512と第3CPU532とは、同一のプログラムを実行する。同様に、取次CPU212と、取次CPU232とは、同一のプログラムを実施する。図21においては第1CPU512と、取次CPU212とがプログラムを実行する場合を例にして説明する。
第1CPU512は、ユーザが保有している資産を取次CPU212に問い合わせる(ステップS521)。取次CPU212は、問合せを受信する(ステップS751)。
取次CPU212は、ブロックチェーン61に記録された取引情報群65を検索して、送付元IDフィールドまたは送付先IDフィールドに第1CPU512のユーザのIDが記録されている取引情報を抽出する(ステップS752)。
取次CPU212は、抽出した取引情報の第1識別情報フィールドに記録されたデータと第2識別情報フィールドに記録されたデータとを対比して、第1CPU512のユーザが保有している未使用資産を抽出する(ステップS753)。
取次CPU212は、ステップS753で抽出した未使用資産のうち、用途が指定されていない通常資産を抽出し、合計を算出する(ステップS754)。取次CPU212は、ステップS753で抽出した未使用資産に関するレコードと、ステップS754で算出した通常資産の合計とを第1CPU512に送信する。第1CPU512は、取次CPU212から情報を受信する(ステップS522)。
ステップS501からステップS507まで、ステップS501からステップS512までおよびステップS601からステップS608までの処理は、図14を使用して説明した実施の形態1のプログラムと同一であるので説明を省略する。
ステップS507で支払情報を受信した後、第1CPU512は、資産選択のサブルーチンを起動する(ステップS523)。資産選択のサブルーチンは、図20を使用して説明した決済画面を表示して、適合資産欄87に表示した適合資産の選択を受け付けるサブルーチンである。資産選択のサブルーチンの処理の流れは後述する。
ステップS523またはステップS512の終了後、第1CPU512は、送付情報を取次CPU212に送信する(ステップS524)。本実施の形態においては、送付情報は、図10を使用して説明した各フィールドに加えてステップS523で選択を受け付けた用途指定資産の取引IDを記録する用途指定資産フィールドを備える。取次CPU212は、送付情報を取得する(ステップS756)。
取次CPU212は、送付処理−2のサブルーチンを起動する(ステップS757)。送付処理−2のサブルーチンは、送付情報に基づいて未検証情報63を作成し、取引DB60に記録するサブルーチンである。送付処理−2のサブルーチンの処理の流れは後述する。
取次CPU212は、送付処理−2のサブルーチンの処理結果を第1CPU512に送信する(ステップS758)。第1CPU512は、変数「送付結果」に記録された送付処理の結果を受信する(ステップS517)。第1CPU512は、送付処理の結果を表示する(ステップS518)。第1CPU512は、その後処理を終了する。
なお、第1CPU512は、ステップS521からステップS522までの処理を適宜繰り返して、ユーザが保有する資産に関する情報を更新し、第1情報処理装置51の主記憶装置513または補助記憶装置514に記憶しても良い。このようにすることにより、ユーザから買い物または資産の送付を行う指示を受け付けた場合に、第1CPU512は速やかにステップS501以降の処理を行うことが可能である。
図22は、実施の形態3の資産選択のサブルーチンの処理の流れを示すフローチャートである。資産選択のサブルーチンは、図20を使用して説明した決済画面を表示して、適合資産欄87に表示した適合資産の選択を受け付けるサブルーチンである。図22を使用して、資産選択のサブルーチンの処理の流れを説明する。
第1CPU512は、取次CPU212から受信した未使用の用途指定資産から、店舗CPU32から受信した受付可能な用途に一致する用途が指定された適合資産を抽出する(ステップS531)。具体的には、第1CPU512は、未使用資産の入手が記録された取引情報の中からメモフィールドに店舗CPU32から受信した受付可能用途が記録されている取引情報を抽出する。以上の処理により、第1CPU512は、ユーザが保有する用途指定資産のうち、送付先の店舗が受け取ることが可能な適合資産を抽出する。
第1CPU512は、図20を使用して説明した決済画面を表示する(ステップS532)。第1CPU512は適合資産欄87を介してユーザによる適合資産の選択を受け付ける(ステップS533)。第1CPU512はユーザによるOKボタン84の選択を取得する(ステップS534)。その後、第1CPU512は処理を終了する。
図23は、実施の形態3の送付処理−2のサブルーチンの処理の流れを示すフローチャートである。送付処理−2のサブルーチンは、送付情報に基づいて未検証情報63を作成し、取引DB60に記録するサブルーチンである。図23を使用して、送付処理−2のサブルーチンの処理の流れを説明する。
取次CPU212は、用途指定資産を使用するか否かを判定する(ステップS761)。具体的には、第1CPU512から受信した送付情報の用途指定資産フィールドに、用途指定資産の取引IDが記録されている場合に、取次CPU212は用途指定資産を使用すると判定する。
用途指定資産を使用すると判定した場合(ステップS761でYES)、取次CPU212は、用途指定資産フィールドに記録されている取引IDを変数「元資産」に記録する。(ステップS762)。
取次CPU212は、送付情報の金額フィールドに記録された金額と、ステップS762で記録した用途指定資産の合計とを比較し、資産が足りるか否かを判定する(ステップS763)。
足りると判定した場合(ステップS763でYES)、取次CPU212は、未検証情報63を作成して、取引DB60に記録する(ステップS764)。この際、取次CPU212は、未検証情報63の第1識別情報フィールドに、送付情報の用途資産フィールドに記録された取引IDを記録する。取次CPU212は、第2識別情報フィールド、送付元IDフィールド、送付先IDフィールドおよびメモフィールドには、送付情報と同一の情報を記録する。取次CPU212は、未検証情報63の受付時刻フィールドに未検証情報を取引DB60に記録する時刻のタイムスタンプを記録する。
取次CPU212は、変数「送付結果」に「完了」と記録する(ステップS765)。その後、取次CPU212は処理を終了する。
足りないと判定した場合(ステップS763でNO)、取次CPU212は、ステップS763で足りないと判定した金額と第1情報処理装置51のユーザが保有する通常資産の合計とを比較し、通常資産が足りるか否かを判定する(ステップS767)。
足りないと判定した場合(ステップS767でNO)、取次CPU212は、変数「送付結果」に「資産不足」と記録する(ステップS768)。その後、取次CPU212は処理を終了する。
足りると判定した場合(ステップS767でYES)、取次CPU212は通常資産の中から追加する元資産を選択する(ステップS769)。取次CPU212は、変数「元資産」に選択した元資産に対応する取引IDを追加する(ステップS770)。
用途指定資産を使用しないと判定した場合(ステップS761でNO)、取次CPU212は、送付情報の金額フィールドに記録された金額と、保有する通常資産の合計とを比較し、通常資産が足りるか否かを判定する(ステップS771)。
足りると判定した場合(ステップS771でYES)、取次CPU212は通常資産の中から元資産を選択する(ステップS772)。取次CPU212は、変数「元資産」に選択した元資産に対応する取引IDを追加する(ステップS777)。
ステップS770またはステップS777の終了後、取次CPU212は、取次CPU212は、未検証情報63を作成して、取引DB60に記録する(ステップS773)。この際、取次CPU212は、未検証情報63の第1識別情報フィールドに変数「元資産」に対応する取引IDを記録する。取次CPU212は、第2識別情報フィールド、送付元IDフィールド、送付先IDフィールドおよびメモフィールドには、送付情報と同一の情報を記録する。取次CPU212は、未検証情報63の受付時刻フィールドに未検証情報を取引DB60に記録する時刻のタイムスタンプを記録する。
取次CPU212は、変数「送付結果」に「完了」と記録する(ステップS774)。その後、取次CPU212は処理を終了する。
足りないと判定した場合(ステップS771でNO)、取次CPU212は、変数「送付結果」に「資産不足」と記録する(ステップS776)。その後、取次CPU212は処理を終了する。
本実施の形態によると、ユーザによる用途指定資産の選択を受け付けることが可能な情報処理システム1等を提供することが可能である。
ユーザは、たとえば、入学祝い等によりプレゼントされた用途指定資産を選択して使用することが可能である。第1CPU512は、ステップS533で用途指定資産の選択を受け付けた場合に、たとえば電子メールソフトを起動してユーザに対して用途指定資産の贈り主に対する礼状等の発信を促しても良い。
本実施の形態によると、送付先が受け取ることが可能な適合資産を表示して、ユーザによる選択を受け付ける情報処理システム等を提供することが可能である。したがって、送付先が受け取れない用途指定資産を送付することにより、取引が成立しないといった問題を未然に回避することが可能である。
[実施の形態4]
本実施の形態は、用途発行アカウントを特定のIDを有するアカウントに限定する情報処理システム1に関する。実施の形態1と共通する部分については、説明を省略する。
図24は、実施の形態4の取引情報群65の例を示す説明図である。取引情報群65のフィールドの構成は、図9を使用して説明した実施の形態1の取引情報群65と同一である。また、図24に示す取引情報群65には、図9および図11を使用して説明した一連の取引と同一の取引の流れを示す取引情報が記録されている。
本実施の形態においては、用途発行アカウントはIDがZZZのアカウントに限定されている。取引ID「CCC010」の取引情報のメモフィールドに記録されている「bookshop」は、用途発行アカウントにより、「bookshop」の用途の発行を受けたアカウントに対して送付できる用途指定資産であることを意味する。
図25は、実施の形態4の検証のサブルーチンの処理の流れを示すフローチャートである。図25に示すサブルーチンは、図18を使用して説明した検証のサブルーチンの代わりに使用するサブルーチンである。図25を使用して、本実施の形態の検証のサブルーチンの処理の流れを説明する。
ステップS844までの処理およびステップS854の処理は、図18で説明した検証のサブルーチンと同一であるので説明を省略する。
元資産は用途指定資産であると判定した場合(ステップS844でYES)、検証CPU12は元資産の用途である第1用途を抽出する(ステップS871)。
検証CPU12は、取引情報群65を検索し、所定の用途発行元から未検証情報63の送付先IDフィールドに記録された送付先のアカウントに送付された資産に関する取引情報を抽出する(ステップS872)。検証CPU12は第2用途を抽出する(ステップS873)。第2用途は、ステップS872で抽出したそれぞれの取引情報のメモフィールドに記録された用途である。すなわち、第2用途は、所定の用途発行元により発行された用途である。
ステップS848以降の処理、および元資産は用途指定資産でないと判定した場合(ステップS844でNO)の処理は、図18で説明した検証のサブルーチンと同一であるので説明を省略する。
本実施の形態によると、取引情報群65の各レコードに用途発行元を記録する必要がないので、取引DB60の容量を削減することが可能である。本実施の形態によると、運営者が用途発行アカウントを限定できる情報処理システム1を提供することが可能である。
用途の発行元は、一つのアカウントに限定しない。検証CPU12は、ステップS872において、複数の用途発行アカウントから送られた取引情報を抽出しても良い。
[実施の形態5]
本実施の形態は、ユーザが、使用する用途指定資産および通常資産を選択することが可能な情報処理システム1に関する。実施の形態3と共通する部分については、説明を省略する。
図26は、実施の形態5の第1情報処理装置51が表示する画面を示す説明図である。図26は、ネットワークを介して買い物を行ういわゆるネットショッピングにおいて、第1アカウントが第2アカウントの店舗に商品を発注する際に第1CPU512が表示する決済画面の例である。本実施の形態においては、図12を使用して説明した画面でユーザが送金内容を入力した後にも、第1CPU512は図26に示す決済画面を表示する。
図26に示す画面は、送付先欄81、受付可能用途欄85、金額欄82、資産表示欄86、適合資産欄87、通常資産欄88、合計欄89およびOKボタン84を含む。送付先欄81は送付先名欄811および送付先ID欄812を含む。本実施の形態においては、OKボタン84は初期状態ではユーザの選択を受け付けない。
第1CPU512は、ネットワークを介して店舗CPU32から取得した情報を、送付先欄81、受付可能用途欄85、および金額欄82に表示する。送付先欄81には、第2アカウントの情報が表示されている。受付可能用途欄85には、第2アカウントが受け取ることが可能な資産の用途が表示されている。金額欄82には、第1アカウントが購入しようとする商品の代金が表示されている。
第1CPU512は、取次CPU212から取得した情報を、資産表示欄86に表示する。資産表示欄86には、第1アカウントが保有する通常資産の合計が表示されている。
第1CPU512は、取次CPU212から取得した情報から抽出した情報を適合資産欄87および通常資産欄88に表示する。適合資産欄87には、第1アカウントが保有する用途指定資産のうち、第2アカウントが受け取ることが可能な適合資産が表示されている。通常資産欄88には、第1アカウントが保有する資産のうち、用途が指定されていない通常資産が表示されている。
第1CPU512は、適合資産欄87および通常資産欄88を介してユーザによる選択を受け付ける。第1CPU512は、ユーザによる選択を受け付けた資産の合計を、合計欄89に表示する。ユーザによる選択を受け付けた資産の合計が金額欄82に表示された商品の代金を超えた場合に、第1CPU512はOKボタン84を選択を受け付ける状態、すなわちアクティブな状態に設定する。
OKボタン84の選択を受け付けた場合、第1CPU512は、資産の送付処理を行うことが第1アカウントにより承認されたと判定する。
第1CPU512は、適合資産欄87および通常資産欄88を介して選択を受け付けた資産に関する取引IDを、取次CPU212に送信する。取次CPU212は、選択を受け付けた資産を商品の代金の支払に使用する。
図27は、実施の形態5のプログラムの処理の流れを示すフローチャートである。第1CPU512のステップS507までの処理、およびステップS512までの処理は、図21を使用して説明したプログラムの処理と同一であるので、説明を省略する。取次CPU212のステップS754までの処理および店舗CPU32の処理も、図21を使用して説明したプログラムの処理と同一であるので説明を省略する。
ステップS507またはステップS512の終了後、第1CPU512は、資産選択−2のサブルーチンを起動する(ステップS541)。資産選択−2のサブルーチンは、適合資産欄87および通常資産欄88に表示した資産の選択を受け付けるサブルーチンである。資産選択−2のサブルーチンの処理の流れは後述する。
ステップS541の終了後、第1CPU512は、送付情報を取次CPU212に送信する(ステップS542)。本実施の形態においては、送付情報は、図10を使用して説明した各フィールドに加えてステップS541で選択を受け付けた各資産の取引IDを記録する資産フィールドを備える。第1CPU512は、その後処理を終了する。
取次CPU212は、送付情報を取得する(ステップS781)。取次CPU212は、未検証情報63を作成して、取引DB60に記録する(ステップS782)。この際、取次CPU212は、未検証情報63の第1識別情報フィールドに、送付情報の資産フィールドに記録された取引IDを記録する。取次CPU212は、第2識別情報フィールド、送付元IDフィールド、送付先IDフィールドおよびメモフィールドには、送付情報と同一の情報を記録する。取次CPU212は、未検証情報63の受付時刻フィールドに未検証情報を取引DB60に記録する時刻のタイムスタンプを記録する。
図28は、実施の形態5の資産選択−2のサブルーチンの処理の流れを示すフローチャートである。資産選択−2のサブルーチンは、図26を使用して説明した適合資産欄87および通常資産欄88に表示した資産の選択を受け付けるサブルーチンである。図28を使用して、資産選択−2のサブルーチンの処理の流れを説明する。
第1CPU512は、取次CPU212から受信した未使用の用途指定資産から、店舗CPU32から受信した受付可能な用途に一致する用途が指定された適合資産を抽出する(ステップS561)。具体的には、第1CPU512は、未使用資産の入手が記録された取引情報の中からメモフィールドに店舗CPU32から受信した受付可能用途が記録されている取引情報を抽出する。
第1CPU512は、図26を使用して説明した決済画面を表示する(ステップS562)。第1CPU512はユーザによる用途指定資産および通常資産の選択を受け付ける(ステップS563)。
第1CPU512は、選択を受け付けた用途指定資産および通常資産の合計を算出する(ステップS564)。第1CPU512は、送付情報の金額フィールドに記録された金額と、ステップS564で算出した合計とを比較し、選択を受け付けた資産が足りるか否かを判定する(ステップS565)。足りないと判定した場合(ステップS565でNO)第1CPU512はステップS563に戻る。
足りると判定した場合(ステップS565でYES)、第1CPU512は、第1CPU512はOKボタン84をユーザによる選択を受け付ける状態、すなわちアクティブな状態に設定する(ステップS566)。
第1CPU512は、OKボタン84の選択を受け付けたか否かを判定する(ステップS567)。受け付けていないと判定した場合(ステップS567でNO)、第1CPU512はステップS563に戻る。受け付けたと判定した場合(ステップS567でYES)、第1CPU512は処理を終了する。
本実施の形態によると、ユーザによる用途指定資産および通常資産の選択を受け付けることが可能な情報処理システム1等を提供することが可能である。ユーザは、たとえば、入学祝い等によりプレゼントされた用途指定資産および通常資産を選択して使用することが可能である。
本実施の形態によると、ユーザが選択した資産が足りている場合にOKボタン84の選択を受け付けるので、保有する資産の不足により支払えないという問題を未然に回避できる情報処理システム1を提供することが可能である。
[実施の形態6]
本実施の形態は、金額、用途発行元および用途を変更せずに用途指定資産を第3者に転送することが可能な情報処理システム1に関する。実施の形態3と共通する部分については、説明を省略する。
図29は、実施の形態6の取引例を示す説明図である。取引ID「ZZZ002」の取引情報による第2アカウントに対する用途の発行および取引ID「CCC010」の取引情報による第3アカウントから第1アカウントへの用途指定資産の送付は、図11を使用して説明した実施の形態1の取引例と同一であるので説明を省略する。
第1アカウントは、「DDD」のIDを有する第4アカウントに対して、取引ID「AAA200」の取引情報により500ポイントの資産を送付する。送付にあたり、第1アカウントが使用する取次CPU212は、第1識別情報フィールドに「CCC010」の取引IDを指定する。さらに取次CPU212はメモフィールドに「CCC010」の取引情報と同様に「ZZZ,bookshop」と記録する。
取引ID「AAA200」の取引情報は、取引ID「CCC010」で送付された用途指定資産をその金額、用途発行元および用途を変更せずに第4アカウントに転送する取引情報である。本実施の形態の検証CPU12は、このような取引情報を正当であると判定する。
取引ID「AAA200」の取引情報は、検証CPU12によって検証されて、ブロックチェーン61に加えられることにより有効となる。図29においては、第4アカウントは500ポイントの資産を受け取る。第1アカウントは500ポイントに取引手数料を加えた資産を支払う。
第4アカウントは、第2アカウントに対して、取引ID「DDD020」の取引情報により500ポイントの資産を送付する。送付にあたり、第4アカウントが使用するCPUは、第1識別情報フィールドに「AAA200」の取引IDを記録する。この記録は、第4アカウントは取引ID「AAA200」の取引情報により受け取った用途指定資産を元資産にすることを意味する。
前述のとおり、第2アカウントは、用途発行アカウント「ZZZ」により「bookshop」の用途の発行を受けているので、第2アカウントは取引ID「DDD020」の取引情報により送付された用途指定資産を受け取ることができる。
取引ID「DDD020」の取引情報は、検証CPU12によって検証されて、ブロックチェーン61に加えられることにより有効となる。図29においては、第2アカウントは500ポイントの資産を受け取る。第4アカウントは500ポイントに取引手数料を加えた資産を支払う。
図30は、実施の形態6の第1情報処理装置51が表示する画面を示す説明図である。図30は、用途指定資産を保有する第1アカウントが、金額、用途発行元および用途を変更せずに用途指定資産を第3者に転送する際に、第1CPU512が表示する転送画面の例である。
図30に示す画面は、用途指定資産欄90、送付先欄81、資産表示欄86およびOKボタン84を含む。送付先欄81は送付先名欄811および送付先ID欄812を含む。
第1CPU512は、取次CPU212から取得した情報から抽出した情報を用途指定資産欄90に表示する。用途指定資産欄90には、第1アカウントが保有する未使用資産のうち、用途指定資産が表示されている。
第1CPU512は、送付先名欄811を介して、資産を送付する送付先名の入力を受け付ける。第1CPU512は、たとえば第1情報処理装置51の補助記憶装置514に記憶されたアドレス帳等を参照して、送付先名に対応する送付先IDを取得し、送付先ID欄812に表示する。
第1CPU512は、取次CPU212から取得した情報を、資産表示欄86に表示する。資産表示欄86には、第1アカウントが保有する通常資産の合計が表示されている。
第1CPU512は、用途指定資産欄90を介してユーザによる選択を受け付ける。OKボタン84の選択を受け付けた場合、第1CPU512は、資産の転送処理を行うことが第1アカウントにより承認されたと判定する。
第1CPU512は、用途指定資産欄90を介して選択を受け付けた用途指定資産に関する取引IDおよび送付先のIDを取次CPU212に送信する。取次CPU212は、用途指定資産欄90を介して選択を受け付けた用途指定資産を、金額、用途発行元および用途を変更せずに、送付先のアカウントに送付する未検証情報63を作成し、取引DB60に記録する。
図31は、実施の形態6の検証のサブルーチンの処理の流れを示すフローチャートである。図31に示すサブルーチンは、図18を使用して説明した検証のサブルーチンの代わりに使用するサブルーチンである。図31を使用して、本実施の形態の検証のサブルーチンの処理の流れを説明する。
ステップS844までの処理およびステップS854の処理は、図18で説明した検証のサブルーチンと同一であるので説明を省略する。元資産は用途指定資産でないと判定した場合(ステップS844でNO)の処理も、図18で説明した検証のサブルーチンと同一であるので説明を省略する。
元資産は用途指定資産であると判定した場合(ステップS844でYES)、検証CPU12は、未検証情報63のメモフィールドに記録された用途発行元および用途と、元資産の用途発行元および用途とが同一であるか否かを判定する(ステップS881)。
同一であると判定した場合(ステップS881でYES)、検証CPU12は、未検証情報63の金額フィールドに記録された金額と元資産の金額とが同一であるか否かを判定する(ステップS882)。同一であると判定した場合(ステップS882でYES)、検証CPU12は変数「判定」に「可」と記録する(ステップS883)。その後検証CPU12は処理を終了する。
用途発行元および用途が同一でないと判定した場合(ステップS881でNO)および金額が一致しないと判定した場合(ステップS882でNO)、検証CPU12は元資産の取引情報から用途発行元および元資産の用途である第1用途を抽出する(ステップS845)。ステップS845以降の処理は、図18で説明した検証のサブルーチンと同一であるので説明を省略する。
本実施の形態によると、金額、用途発行元および用途を変更せずに用途指定資産を第3者に転送することが可能な情報処理システム1を提供することが可能である。対面取引において、たとえば図書券をそのまま第3者に引き渡すような処理を行える情報処理システム1を実現することが可能である。
[実施の形態7]
本実施の形態は、ブロックチェーン61を用いて投票を行う情報処理システム1に関する。実施の形態1と共通する部分については、説明を省略する。
投票の概要について説明する。本実施の形態においては、投票券配布アカウントが有権者のアカウントに対して用途指定資産を配布する。有権者のアカウントは、投票先を選択して用途指定資産を送付する。各投票先に送付された用途指定資産に基づいて、投票結果を判定する。
図32は、実施の形態7の取引例を示す説明図である。図32を使用して、本実施の形態の取引の流れを説明する。以下の説明では投票先の候補はA票アカウントおよびB票アカウントである。なお、図32においては取引手数料の記載を省略する。
用途発行アカウント「ZZZ」は、投票券配布アカウントから提供された投票先のリストに基づいて、A票アカウントおよびB票アカウントに対して「vote」の用途を発行する。
投票券配布アカウントは、有権者である第1アカウントおよび第2アカウントに対してメモフィールドに「ZZZ,vote」と記録した投票用の用途指定資産を配布する。第1アカウントおよび第2アカウントは、A票アカウントまたはB票アカウントに対して、投票用の用途指定資産を元資産にして資産を送付することにより投票を行う。
ブロックチェーン61を参照して、A票アカウントおよびB票アカウントに送付された資産中の、投票用の用途指定資産をそれぞれ算出することにより、どちらが当選したかを判定することが可能である。
本実施の形態によると、実施の形態1から実施の形態6と同一のハードウェアおよびソフトウェアを使用して、投票所の運営を行う情報処理システム1を実現することが可能である。商取引に使用する情報処理システム1が投票所を兼ねるため、簡便に投票を実行することが可能である。
本実施の形態によると、投票券配布アカウントが配布する用途指定資産の金額に重み付けを行うことにより、各有権者の投票に重み付けを行うことが可能である。
[実施の形態8]
本実施の形態は、一度発行した用途をキャンセルすることが可能な情報処理システム1に関する。実施の形態1と共通する部分については、説明を省略する。
図33は、実施の形態8の取引情報群65の例を示す説明図である。図9および図11を使用して説明した、取引ID「ZZZ002」の取引情報と、取引ID「CCC010」の取引情報との間に、取引ID「ZZZ100」の取引情報が記録されている。取引ID「ZZZ100」の取引情報には、メモフィールドに「NO_bookshop」と記録されている。
本実施の形態においては、用途発行アカウントが先頭に「NO_」が記録された用途を発行することは、過去に発行した用途をキャンセルすることを意味する。以下の説明では、「NO_」をキャンセル符号という。
取引ID「ZZZ002」で用途発行アカウントから第2アカウントに対して発行された「bookshop」の用途は、取引ID「ZZZ100」の取引情報によりキャンセルされる。その後、第2アカウントは、元資産のメモフィールドに「ZZZ,bookshop」が記録された用途指定資産を受け取ることができなくなる。
「NO_」はキャンセル符号の一例である。用途の指定に使用されない任意の文字等をキャンセル符号に使用することが可能である。
図34は、実施の形態8の検証のサブルーチンの処理の流れを示すフローチャートである。図34に示すサブルーチンは、図18を使用して説明した検証のサブルーチンの代わりに使用するサブルーチンである。図34を使用して、本実施の形態の検証のサブルーチンの処理の流れを説明する。
ステップS848までの処理およびステップS854の処理は、図18で説明した検証のサブルーチンと同一であるので説明を省略する。元資産は用途指定資産でないと判定した場合(ステップS844でNO)の処理も、図18で説明した検証のサブルーチンと同一であるので説明を省略する。
第1用途を含むと判定した場合(ステップS848でYES)、検証CPU12は、ブロックチェーン61を検索して、用途発行アカウントにより第1用途がキャンセルされたキャンセル情報の有無を判定する(ステップS891)。具体的には、検証CPU12は、用途発行アカウントから未検証情報63の送付先に対して、第1用途にキャンセル符号を追加した用途が発行されているか否かを判定する。
キャンセル情報があると判定した場合(ステップS891でYES)、検証CPU12は、第1用途が発行された取引情報の受付時刻と第1用途をキャンセルする取引情報の受付時刻とを比較し、キャンセル情報の方が新しいか否かを判定する(ステップS892)。
キャンセル情報の方が新しいと判定した場合(ステップS892でYES)、および第1用途を含まないと判定した場合(ステップS848でNO)、検証CPU12は、変数「判定」に「不可」と記録する(ステップS849)。検証CPU12は、その後処理を終了する。
キャンセル情報の方が古いと判定した場合(ステップS892でNO)およびキャンセル情報がないと判定した場合(ステップS891でNO)、検証CPU12はステップS851に進む。
本実施の形態によると、一度発行した用途をキャンセルすることが可能な情報処理システム1を提供することが可能である。たとえば店舗の業種変更等の事情に対応して、用途指定資産の受け取り可否を柔軟に変更することが可能になる。
[実施の形態9]
図35は、実施の形態9の情報処理システム1の動作を示す機能ブロック図である。本実施の形態の情報処理システム1は、検証CPU12、取次CPU212、店舗CPU32および取次CPU232による制御に基づいて以下のように動作する。
情報処理システム1は、ネットワークで接続された第1取引装置21と検証装置10とを含む。第1取引装置21は、価値を示す情報の送付先と、価値を示す情報を入手した第1の取引情報63を識別する第1識別情報とを含む第2の取引情報63をネットワークに出力する第1出力部95を有する。
検証装置10は、第1抽出部97と、第2抽出部98と、判定部99とを備える。第1抽出部97は、取引情報63の連鎖を記録したブロックチェーン61から、第1識別情報に基づいて第1の取引情報63を抽出し、第1の取引情報63に属性が記録されている場合に属性を抽出する。第2抽出部98は、ブロックチェーン61から、所定の属性発行元から送付先に対する価値を示す情報の送付を記録した第3の取引情報63を抽出し、第3の取引情報63に属性が記録されている場合に属性を抽出する。判定部99は、第1抽出部97が抽出した属性が、第2抽出部98が抽出した属性に含まれない場合に、第1出力部95が出力した第2の取引情報63は正当ではないと判定する
検証装置10は、追加部96を有しても良い。追加部96は、判定部99が正当であると判定すると、第2の取引情報をブロックチェーン61に追加する。
検証装置10は、第2判定部74を有しても良い。第1出力部95は、第1の取引情報に含まれる価値を示す情報の属性および属性発行元とを更に含む第2の取引情報をネットワークに出力する。第2判定部74は、第1出力部95が出力した属性および属性発行元が、第2抽出部98が抽出した属性および属性発行元と一致する場合に、第1出力部95が出力した取引情報63が正当であると判定する。
情報処理システム1は、ネットワークで接続された第2取引装置30を含んでも良い。第2取引装置30は、受付可能な属性および属性発行元をネットワークに出力する第2出力部76を有する。第1取引装置21は、第2出力部76が出力した属性および属性発行元に基づいて第1識別情報を設定する。
第1取引装置21は、第1取得部71および適合判定部72を有しても良い。第1取得部71は、第2出力部76が出力した属性および属性発行元を取得する。適合判定部72は、第1取得部71が取得した属性および属性発行元に基づいて、第2取引装置30が受付可能な価値を示す適合資産の保有の有無を判定する。
第1取引装置21は、表示部78と、選択受付部73とを有しても良い。表示部78は、適合判定部72が適合資産を保有していると判定した場合に、適合資産を表示する。選択受付部73は、表示部78が表示した適合資産の選択を受け付ける。選択受付部73が適合資産の選択を受け付けた場合に、第1出力部95は適合資産を入手した取引を識別する情報を第1識別情報に設定する。
情報処理システム1は、ネットワークで接続された第3取引装置23を含んでも良い。第3取引装置23は、第1の取引情報として、価値を示す情報の送付先と、価値を示す情報を入手した取引を識別する第1識別情報と、送付する価値を示す情報の属性および属性発行元とを含む情報をネットワークに出力する第3出力部77を有する。
検証装置10は、対象取得部75を有しても良い。対象取得部75は、価値を示す情報の送付先と、価値を示す情報を入手した第1の取引情報63を識別する第1識別情報とを含む第2の取引情報63を取得する。
[実施の形態10]
本実施の形態は、汎用のコンピュータとプログラム92とを組み合わせて動作させることにより、本実施の形態の情報処理システム1を実現する形態に関する。図36は、実施の形態10の検証装置10の構成を示す説明図である。図31を使用して、本実施の形態の構成を説明する。なお、実施の形態1と共通する部分の説明は省略する。
本実施の形態の情報処理システム1は、ネットワークを介して接続された複数のコンピュータ94を備える。以下の説明では、検証装置10として機能するコンピュータ94を例にして説明する。
コンピュータ94は、検証CPU12、主記憶装置13、補助記憶装置14、通信部15、読取部16およびバスを備える。コンピュータ94は、汎用のパーソナルコンピュータ、大型計算機等の情報機器等である。また、本実施の形態のコンピュータ94は、大型計算機上で動作する仮想マシンでも良い。
プログラム92は、可搬型記録媒体91に記録されている。検証CPU12は、読取部16を介してプログラム92を読み込み、補助記憶装置14に保存する。また検証CPU12は、コンピュータ94内に実装されたフラッシュメモリ等の半導体メモリ93に記憶されたプログラム92を読出しても良い。さらに、検証CPU12は、通信部15および図示しないネットワークを介して接続される図示しない他のサーバコンピュータからプログラム92をダウンロードして補助記憶装置14に保存しても良い。
プログラム92は、コンピュータ94の制御プログラムとしてインストールされ、主記憶装置13にロードして実行される。これにより、コンピュータ94は上述した検証装置10として機能する。
図1に示す、検証装置12以外の各装置も、それぞれ可搬型記録媒体またはネットワークを介してプログラム92を取得し、それぞれの補助記憶装置に保存する。プログラムは、それぞれの装置の制御プログラムとしてインストールされ、主記憶装置にロードして実行される。以上により、各装置は上述した用途発行装置40、第1取引装置21、第2取引装置30、第3取引装置23、第1情報処理装置51および第3情報処理装置53として機能する。
各実施例で記載されている技術的特徴(構成要件)はお互いに組合せ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものでは無いと考えられるべきである。本発明の範囲は、上記した意味では無く、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
以上の実施の形態1から10を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1取引装置と、検証装置とがネットワークで接続された情報処理システムにおいて、
前記第1取引装置は、価値を示す情報の送付先と、該価値を示す情報を入手した第1の取引情報を識別する第1識別情報とを含む第2の取引情報をネットワークに出力する第1出力部を有し、
前記検証装置は、
取引情報の連鎖を記録したブロックチェーンから、前記第1識別情報に基づいて前記第1の取引情報を抽出し、該第1の取引情報に属性が記録されている場合に該属性を抽出する第1抽出部と、
前記ブロックチェーンから、所定の属性発行元から前記送付先に対する価値を示す情報の送付を記録した第3の取引情報を抽出し、該第3の取引情報に属性が記録されている場合に該属性を抽出する第2抽出部と、
前記第1抽出部が抽出した属性が、前記第2抽出部が抽出した属性に含まれない場合に、前記第1出力部が出力した第2の取引情報は正当ではないと判定する判定部とを有する
情報処理システム。
(付記2)
前記第1抽出部は、前記第1識別情報に基づいて抽出した前記第1の取引情報から、さらに前記属性発行元を抽出する
付記1に記載の情報処理システム。
(付記3)
前記検証装置は、前記判定部が正当であると判定すると、前記第2の取引情報を前記ブロックチェーンに追加する追加部を有する付記1または付記2に記載の情報処理システム。
(付記4)
前記ブロックチェーンに記録された取引情報は取引時刻に関連するタイムスタンプを含み、
前記第2抽出部は、前記ブロックチェーンから、所定の属性発行元から前記送付先に対する価値を示す情報の送付を記録した取引情報を抽出し、抽出した取引情報に属性および該属性のキャンセルの両方が記録されている場合に、より新しいタイムスタンプを有する取引情報に記録されている属性または該属性のキャンセルを抽出する
付記1から付記3のいずれか一つに記載の情報処理システム。
(付記5)
前記第1出力部は、前記第1の取引情報に含まれる価値を示す情報の属性および属性発行元とを更に含む前記第2の取引情報をネットワークに出力し、
前記検証装置は、前記属性および前記属性発行元が、前記第2抽出部が抽出した属性および属性発行元と一致する場合に、前記第1出力部が出力した取引情報が正当であると判定する第2判定部を有する
付記2から付記4のいずれか一つに記載の情報処理システム。
(付記6)
前記ネットワークで接続された第2取引装置を備え、
前記第2取引装置は、受付可能な属性および属性発行元をネットワークに出力する第2出力部を有し、
前記第1取引装置は、前記第2出力部が出力した属性および属性発行元に基づいて前記第1識別情報を設定する
付記2から付記5のいずれか一つに記載の情報処理システム。
(付記7)
前記第1取引装置は、
前記第2出力部が出力した属性および属性発行元を取得する第1取得部と、
前記第1取得部が取得した属性および属性発行元に基づいて、前記第2取引装置が受付可能な価値を示す適合資産の保有の有無を判定する適合判定部とを有する
付記6に記載の情報処理システム。
(付記8)
前記第1取引装置は、
前記適合判定部が適合資産を保有していると判定した場合に、前記適合資産に関する取引を識別する情報を前記第1識別情報に設定する
付記7に記載の情報処理システム。
(付記9)
前記第1取引装置は、
前記適合判定部が適合資産を保有していると判定した場合に、前記適合資産を表示する表示部と、
前記表示部が表示した適合資産の選択を受け付ける選択受付部とを有し、
前記選択受付部が適合資産の選択を受け付けた場合に、前記第1出力部は前記適合資産を入手した取引を識別する情報を前記第1識別情報に設定する
付記7に記載の情報処理システム。
(付記10)
前記ネットワークで接続された第3取引装置を備え、
前記第3取引装置は、前記第1の取引情報として、価値を示す情報の送付先と、該価値を示す情報を入手した取引を識別する第1識別情報と、送付する価値を示す情報の属性および属性発行元とを含む情報をネットワークに出力する第3出力部を有する
付記2から付記9のいずれか一つに記載の情報処理システム。
(付記11)
前記取引情報は、それぞれの取引情報を識別する第2識別情報を含む、付記1から付記10のいずれか一つに記載の情報処理システム。
(付記12)
価値を示す情報の送付先と、該価値を示す情報を入手した第1の取引情報を識別する第1識別情報とを含む第2の取引情報を取得する対象取得部と、
取引情報の連鎖を記録したブロックチェーンから、前記第1識別情報に基づいて前記第1の取引情報を抽出し、該第1の取引情報に属性が記録されている場合に該属性を抽出する第1抽出部と、
前記ブロックチェーンから、所定の属性発行元から前記送付先に対する価値を示す情報の送付を記録した第3の取引情報を抽出し、該取引情報に属性が記録されている場合に該属性を抽出する第2抽出部と、
前記第1抽出部が抽出した属性が、前記第2抽出部が抽出した属性に含まれない場合に、取得した前記第2の取引情報は正当ではないと判定する判定部とを有する
検証装置。
(付記13)
第1取引装置は、価値を示す情報の送付先と該価値を示す情報を入手した取引を識別する第1識別情報とを含む前記第2の取引情報をネットワークに出力し、
前記第1取引装置とネットワークを介して接続された検証装置は、
取引情報の連鎖を記録したブロックチェーンから、前記第1識別情報に基づいて前記第1の取引情報を抽出し、
該第1の取引情報に属性が記録されている場合に該属性である第1属性を抽出し、
前記ブロックチェーンから、所定の属性発行元から前記送付先に対する価値を示す情報の送付を記録した第3の取引情報を抽出し、
該第3の取引情報に属性が記録されている場合に該属性である第2属性を抽出し、
前記第1属性が、前記第2属性に含まれない場合に、前記第1取引装置が出力した前記第2の取引情報は正当ではないと判定する
情報処理方法。
(付記14)
価値を示す情報の送付先と、該価値を示す情報を入手した第1の取引情報を識別する第1識別情報とを含む第2の取引情報を取得し、
取引情報の連鎖を記録したブロックチェーンから、前記第1識別情報に基づいて前記第1の取引情報を抽出し、
該第1の取引情報に属性が記録されている場合に該属性である第1属性を抽出し、
前記ブロックチェーンから、所定の属性発行元から前記送付先に対する価値を示す情報の送付を記録した第3の取引情報を抽出し、
該第3の取引情報に属性が記録されている場合に該属性である第2属性を抽出し、
前記第1属性が、前記第2属性に含まれない場合に、取得した前記第2の取引情報は正当ではないと判定する
処理をコンピュータに実行させる検証方法。
(付記15)
価値を示す情報の送付先と、該価値を示す情報を入手した第1の取引情報を識別する第1識別情報とを含む第2の取引情報を取得し、
取引情報の連鎖を記録したブロックチェーンから、前記第1識別情報に基づいて前記第1の取引情報を抽出し、
該第1の取引情報に属性が記録されている場合に該属性である第1属性を抽出し、
前記ブロックチェーンから、所定の属性発行元から前記送付先に対する価値を示す情報の送付を記録した第3の取引情報を抽出し、
該第3の取引情報に属性が記録されている場合に該属性である第2属性を抽出し、
前記第1属性が、前記第2属性に含まれない場合に、取得した前記第2の取引情報は正当ではないと判定する
処理をコンピュータに実行させるプログラム。