(57)【特許請求の範囲】
【請求項１】
複数の参加者端末がそれぞれ有する複数のトランザクション実行部を備え、
前記複数の参加者端末は、複数の参加者の複数の情報処理端末であり、
前記複数の参加者端末の少なくとも一つの参加者端末が、トランザクションを表し検証者による検証が済んだオブジェクトである検証済トランザクションオブジェクトが追加される検証済トランザクション情報を格納し、
前記複数の参加者端末の各々は、トランザクションを表し検証者による検証が済んでいないオブジェクトである未検証トランザクションオブジェクトが追加される未検証トランザクション情報を格納し、
いずれかの参加者端末である第１の参加者端末と前記第１の参加者端末以外のいずれかの参加者端末である第２の参加者端末間の通信において、前記第１の参加者端末におけるトランザクション実行部である第１のトランザクション実行部が、
前記第２の参加者端末におけるトランザクション実行部である第２のトランザクション実行部から、前記第２の参加者端末における未検証トランザクション情報が有する一つ以上の未検証トランザクションオブジェクトである未検証トランザクションオブジェクト群を受信し、
前記第１の参加者端末がオフラインの場合、前記第１の参加者端末における未検証トランザクション情報と、前記受信した未検証トランザクションオブジェクト群との各々に、前記第１の参加者端末の参加者である第１の参加者と前記第２の参加者端末の参加者である第２の参加者間の未検証トランザクションを表す未検証トランザクションオブジェクトを追加して、当該未検証トランザクションオブジェクトが追加された未検証トランザクションオブジェクト群を前記第２のトランザクション実行部に送信し、
前記第１の参加者端末がオンラインの場合、前記第１の参加者端末における未検証トランザクション情報が一つまたは複数の未検証トランザクションオブジェクトを有していれば、前記第１のトランザクション実行部が、
（Ｎ１）当該一つまたは複数の未検証トランザクションオブジェクトのうちの少なくとも一つの未検証トランザクションオブジェクトの検証を一つ以上の検証者に依頼し、
（Ｎ２）それぞれ検証に成功したトランザクションオブジェクトである一つ以上の検証済トランザクションオブジェクトを前記検証済トランザクション情報に追加することを依頼し、
（Ｎ３）当該一つ以上の検証済トランザクションオブジェクトにそれぞれ対応する一つ以上の未検証トランザクションオブジェクトを、前記第１の参加者端末における未検証トランザクション情報から削除する、
トランザクション実行システム。
【請求項２】
前記検証済トランザクション情報は、検証済トランザクションオブジェクトの時系列であり、
前記複数の参加者端末の各々において、前記未検証トランザクション情報は、当該参加者端末の参加者との間でトランザクションが発生した参加者毎のサブセットで構成されており、各サブセットは、未検証トランザクションオブジェクトの時系列である、
請求項１に記載のトランザクション実行システム。
【請求項３】
前記第１の参加者端末と前記第２の参加者端末間の前記通信において、前記第１の参加者端末がオンラインの場合に、前記第１のトランザクション実行部が、（Ｎ１）〜（Ｎ３）を実行する、
請求項１に記載のトランザクション実行システム。
【請求項４】
前記第１の参加者端末と前記第２の参加者端末間の前記通信において、前記第１の参加者端末がオフラインの場合に、前記第２の参加者端末がオンラインであれば、前記第２のトランザクション実行部が、
少なくとも一つの未検証トランザクションオブジェクトの検証を一つ以上の検証者に依頼し、
それぞれ検証に成功したトランザクションオブジェクトである一つ以上の検証済トランザクションオブジェクトを前記検証済トランザクション情報に追加することを依頼し、
当該一つ以上の検証済トランザクションオブジェクトにそれぞれ対応する一つ以上の未検証トランザクションオブジェクトを、前記第２の参加者端末における未検証トランザクション情報から削除する、
請求項３に記載のトランザクション実行システム。
【請求項５】
前記第１のトランザクション実行部は、前記一つまたは複数の未検証トランザクションオブジェクトのうち、前記検証済トランザクション情報に検証済トランザクションオブジェクトとして反映済の未検証トランザクションオブジェクトについては、一つ以上の検証者への依頼をスキップする、
請求項１に記載のトランザクション実行システム。
【請求項６】
前記第１のトランザクション実行部が、前記検証済トランザクション情報を基に前記第１の参加者と前記第２の参加者の信用度を特定し、
前記第１の参加者端末と前記第２の参加者端末間の前記通信において、前記第１の参加者端末がオンラインであっても、前記第１の参加者と前記第２の参加者の特定された信用度が一定の信用度を上回っていれば、前記第１のトランザクション実行部が、前記第１の参加者と前記第２の参加者間の未検証トランザクションを表す未検証トランザクションオブジェクトを追加し、当該未検証トランザクションオブジェクトの検証依頼を行なわず、
一定数の未検証トランザクションオブジェクトが蓄積された後、または、先頭の未検証トランザクションオブジェクトが表すトランザクション時刻から一定期間が経過した後のオンラインの際に、前記第１のトランザクション実行部が、未検証トランザクションオブジェクトの検証依頼と、検証に成功したトランザクションオブジェクトを前記検証済トランザクション情報に追加することの依頼とを行う、
請求項１に記載のトランザクション実行システム。
【請求項７】
少なくとも一つの参加者端末におけるトランザクション実行部が、下記の少なくとも一つに該当する参加者端末の参加者に対する報酬を決定する、
・当該参加者が関係しない未検証トランザクションオブジェクトである無関係の未検証オブジェクトを保持する参加者端末、
・前記無関係の未検証オブジェクトを検証した参加者端末、
請求項１に記載のトランザクション実行システム。
【請求項８】
前記報酬は、前記無関係の未検証オブジェクトの保持期間の長さと、検証した無関係の未検証オブジェクトの数と、保持する無関係の未検証オブジェクトの数とのうちの少なくとも一つに基づく、
請求項７に記載のトランザクション実行システム。
【請求項９】
いずれかの参加者端末である第１の参加者端末と前記第１の参加者端末以外のいずれかの参加者端末である第２の参加者端末間の通信において、下記（Ａ）および（Ｂ）を行い、
複数の参加者端末の少なくとも一つの参加者端末が、トランザクションを表し検証者による検証が済んだオブジェクトである検証済トランザクションオブジェクトが追加される検証済トランザクション情報を格納し、
前記複数の参加者端末の各々は、トランザクションを表し検証者による検証が済んでいないオブジェクトである未検証トランザクションオブジェクトが追加される未検証トランザクション情報を格納し、
（Ａ）前記第１の参加者端末が、第２の参加者端末から、前記第２の参加者端末における未検証トランザクション情報が有する一つ以上の未検証トランザクションオブジェクトである未検証トランザクションオブジェクト群を受信する、
（Ｂ）前記第１の参加者端末がオフラインの場合、前記第１の参加者端末が、前記第１の参加者端末における未検証トランザクション情報と、前記受信した未検証トランザクションオブジェクト群との各々に、前記第１の参加者端末の参加者である第１の参加者と前記第２の参加者端末の参加者である第２の参加者間の未検証トランザクションを表す未検証トランザクションオブジェクトを追加して、当該未検証トランザクションオブジェクトが追加された未検証トランザクションオブジェクト群を前記第２の参加者端末に送信する、
前記第１の参加者端末がオンラインの場合、前記第１の参加者端末における未検証トランザクション情報が一つまたは複数の未検証トランザクションオブジェクトを有していれば、下記（Ｎ１）〜（Ｎ３）を行う、
（Ｎ１）前記第１の参加者端末が、当該一つまたは複数の未検証トランザクションオブジェクトのうちの少なくとも一つの未検証トランザクションオブジェクトの検証を一つ以上の検証者に依頼する、
（Ｎ２）前記第１の参加者端末が、それぞれ検証に成功したトランザクションオブジェクトである一つ以上の検証済トランザクションオブジェクトを前記検証済トランザクション情報に追加することを依頼し、
（Ｎ３）前記第１の参加者端末が、当該一つ以上の検証済トランザクションオブジェクトにそれぞれ対応する一つ以上の未検証トランザクションオブジェクトを、前記第１の参加者端末における未検証トランザクション情報から削除する、
トランザクション実行方法。
【請求項１０】
いずれかの情報処理端末である第１の参加者端末に、
下記（Ａ）および（Ｂ）を行い、
複数の参加者端末の少なくとも一つの参加者端末が、トランザクションを表し検証者による検証が済んだオブジェクトである検証済トランザクションオブジェクトが追加される検証済トランザクション情報を格納し、
前記複数の参加者端末の各々は、トランザクションを表し検証者による検証が済んでいないオブジェクトである未検証トランザクションオブジェクトが追加される未検証トランザクション情報を格納し、
（Ａ）第２の参加者端末から、前記第２の参加者端末における未検証トランザクション情報が有する一つ以上の未検証トランザクションオブジェクトである未検証トランザクションオブジェクト群を受信する、
（Ｂ）前記第１の参加者端末がオフラインの場合、前記第１の参加者端末における未検証トランザクション情報と、前記受信した未検証トランザクションオブジェクト群との各々に、前記第１の参加者端末の参加者である第１の参加者と前記第２の参加者端末の参加者である第２の参加者間の未検証トランザクションを表す未検証トランザクションオブジェクトを追加して、当該未検証トランザクションオブジェクトが追加された未検証トランザクションオブジェクト群を前記第２の参加者端末に送信する、
前記第１の参加者端末がオンラインの場合、前記第１の参加者端末における未検証トランザクション情報が一つまたは複数の未検証トランザクションオブジェクトを有していれば、下記（Ｎ１）〜（Ｎ３）を行う、
（Ｎ１）当該一つまたは複数の未検証トランザクションオブジェクトのうちの少なくとも一つの未検証トランザクションオブジェクトの検証を一つ以上の検証者に依頼する、
（Ｎ２）それぞれ検証に成功したトランザクションオブジェクトである一つ以上の検証済トランザクションオブジェクトを前記検証済トランザクション情報に追加することを依頼し、
（Ｎ３）当該一つ以上の検証済トランザクションオブジェクトにそれぞれ対応する一つ以上の未検証トランザクションオブジェクトを、前記第１の参加者端末における未検証トランザクション情報から削除する、
ことを実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、オフラインでのトランザクションの実行に関する。
【背景技術】
【０００２】
トランザクションの一例として、個人から店舗への支払いがある。オフラインでの支払いの処理に関する技術として、特許文献１に開示されている技術がある。特許文献１によれば、ユーザデバイスがオンラインでアカウントシステムから残高証明書を取得する。ユーザデバイスと販売主デバイス間のオフラインでの支払いでは、残高証明書がユーザデバイスから販売主デバイスに送付され、販売主デバイスからユーザデバイスに引き出し記録が送付される。販売主デバイスが、オンラインになった場合に、引き出し記録をアカウントシステムに送付する。つまり、特許文献１では、ユーザデバイスも販売主デバイスもオンラインであることが前提である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】ＷＯ２０１５／１４８８５０
【発明の概要】
【発明が解決しようとする課題】
【０００４】
新興国をはじめとする一部の国や地域は、偽造の恐れがあったり盗難のリスクがあったりするため、現金を持ち歩くことのリスクが高い。そのような国や地域でもスマートフォンなどのデバイスは普及しつつあるが、一般に通信網や電力網が脆弱であり、意図せずにオフラインになるケースが多々あり得る。このため、そのような国や地域では、オフラインでの安全な支払いを可能にする技術の導入が望ましいと考えられる。しかし、特許文献１の技術は、上述したように、ユーザデバイスも販売主デバイスもオンラインであることが前提であるため、上述したような国や地域には適さない。
【０００５】
また、上述したような国や地域では、オフラインでの支払いの他に、オフラインでの安全な個人間送金もサポートされていることが望ましいと考えられる。しかし、特許文献１は、オフラインでの個人間送金に関する開示も示唆もしていない。
【課題を解決するための手段】
【０００６】
複数の参加者端末の少なくとも一つの参加者端末が、トランザクションを表し検証者による検証が済んだオブジェクトである検証済トランザクションオブジェクトが追加される検証済トランザクション情報を格納する。複数の参加者端末の各々は、トランザクションを表し検証者による検証が済んでいないオブジェクトである未検証トランザクションオブジェクトが追加される未検証トランザクション情報を格納する。第１の参加者と第２の参加者間のトランザクションが生じた場合、第１の参加者端末と第２の参加者端末が、当該トランザクションの未検証トランザクションオブジェクトを含む同一の未検証トランザクションオブジェクト群を互いに保持する。第１の参加者端末がオンラインの場合、未検証トランザクションオブジェクトの検証依頼が行われ、検証が成功であれば当該オブジェクトが検証済トランザクションオブジェクトとして検証済トランザクション情報に追加される。
【発明の効果】
【０００７】
オフラインで支払いの他に個人間送金もできる利便性とそれらのトランザクションを安全に行える高いセキュリティとを両立できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施形態におけるシステム全体の構成図である。
【図２】本発明の第１の実施形態における発行体端末の構成図である。
【図３】本発明の第１の実施形態におけるユーザ端末の構成図である。
【図４】本発明の第１の実施形態における公開鍵テーブルの構成図である。
【図５】本発明の第１の実施形態における検証済トランザクションテーブルの構成図である。
【図６】本発明の第１の実施形態における未検証トランザクションテーブルリストの構成図である。
【図７】本発明の第１の実施形態におけるトランザクション実行プログラムの全体フローチャートである。
【図８】本発明の第１の実施形態における第１種の資産移転処理を示すフローチャートである。
【図９】本発明の第１の実施形態における第２種の資産移転処理を示すフローチャートである。
【図１０】本発明の第１の実施形態におけるトランザクション検証処理を示すフローチャートである。
【図１１】本発明の第１の実施形態における未検証トランザクションテーブルに対する追記の一例を示す図である。
【図１２】本発明の第２の実施形態の概念図である。
【発明を実施するための形態】
【０００９】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のＩ／Ｏ（Input/Output）インターフェースデバイス。Ｉ／Ｏ（Input/Output）インターフェースデバイスは、Ｉ／Ｏデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するＩ／Ｏインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのＩ／Ｏデバイスは、ユーザインターフェースデバイス、例えば、キーボードおよびポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス（例えば一つ以上のＮＩＣ（Network Interface Card））であってもよいし二つ以上の異種の通信インターフェースデバイス（例えばＮＩＣとＨＢＡ（Host Bus Adapter））であってもよい。
【００１０】
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【００１１】
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス（例えば補助記憶デバイス）であり、具体的には、例えば、ＨＤＤ（Hard Disk Drive）またはＳＳＤ（Solid State Drive）である。
【００１２】
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
【００１３】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスである。少なくとも一つのプロセッサデバイスは、典型的には、ＣＰＵ（Central Processing Unit）のようなマイクロプロセッサデバイスであるが、ＧＰＵ（Graphics Processing Unit）のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部または全部を行うハードウェア回路（例えばＦＰＧＡ（Field-Programmable Gate Array）またはＡＳＩＣ（Application Specific Integrated Circuit））といった広義のプロセッサデバイスでもよい。
【００１４】
また、以下の説明では、「ｘｘｘテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし（例えば、構造化データでもよいし非構造化データでもよいし）、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「ｘｘｘテーブル」を「ｘｘｘ情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部または一部が一つのテーブルであってもよい。
【００１５】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置および／またはインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ（或いは、そのプロセッサを有するコントローラのようなデバイス）とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な（例えば非一時的な）記録媒体であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
【００１６】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通部分を使用し、同種の要素を区別する場合は、参照符号を使用することがある。例えば、トランザクション実行プログラムを区別しない場合には、「トランザクション実行プログラム２５００」と言い、トランザクション実行プログラムを区別する場合には、「トランザクション実行プログラム２５００Ｉ」、「トランザクション実行プログラム２５００ＵＳ」、「トランザクション実行プログラム２５００ＵＰ」のように言うことがある。
【００１７】
また、以下の説明では、「オブジェクト」とは、アプリケーションプログラムのようなプログラムから見た１つの論理的な電子データの塊である。オブジェクトとしてのデータは、例えば、レコード、キーバリューペア又はタプルである。以下、オブジェクトとして、レコードを例に取る。
【００１８】
以下、図面を用いて、本発明の幾つかの実施形態を説明する。
［第１の実施形態］
【００１９】
図１は、本発明の第１の実施形態におけるシステム全体の構成図である。
【００２０】
本実施形態において、「ユーザ」の一例として、個人と店舗（組織の一例）がある。個人の情報処理端末を「個人端末」と言い、店舗の情報処理端末を「店舗端末」と言う。個人端末と店舗端末を「ユーザ端末」と総称することがある。また、本実施形態において、ユーザ間でのトランザクションに従い移動する通貨量を発行する「発行体」が存在する。発行体の情報処理端末を「発行体端末」と言う。発行体とユーザは「参加者」の一例である。
【００２１】
「通貨」は、日本円やアメリカドルといった法定通貨でもよいし、法定通貨と交換可能な電子的な価値であってもよいし、発行体が発行する独自の通貨でもよい。例えば、通貨が法定通貨の場合、ポイント量は金額であり、通貨が「ポイント」の場合、通貨量はポイント量（ポイントの数）である。通貨の種類は限定されない。情報処理端末は、本実施形態では、スマートフォン、タブレット、ノート型パソコンといった持ち運び可能な携帯型端末を想定するが、それら以外の計算機でもよい。
【００２２】
また、「トランザクション」とは、トランザクション要求に応答して実行される処理である。本実施形態において、トランザクションとしては、発行体からユーザへの通貨量の発行と、個人から店舗への支払いと、一方の個人から他方の個人への送金とがあるが、トランザクションはこれらに限られない。「一方の個人から他方の個人への送金」とは、一方の個人（正確には、一方の個人のアカウント）から他方の個人（正確には、他方の個人のアカウント）への通貨量の移転を意味する。なお、一方の個人のアカウントから出る通貨量と他方の個人のアカウントへ入る通貨量は、同じとは限らないでよい（例えば、手数料としての通貨量が差し引かれてもよい）。
【００２３】
店舗端末３０００Ｓ、個人端末３０００Ｐ、および、発行体端末２０００が、ネットワーク１１００を介して通信する。店舗端末３０００Ｓ、個人端末３０００Ｐおよび発行体端末２０００のいずれの数も限定されない。店舗端末、個人端末、発行体端末内部の構成は、後述する。
【００２４】
ネットワーク１１００は３Ｇ、４Ｇ、５Ｇ、ＷｉＭＡＸ（登録商標）、Ｗｉ−Ｆｉ（登録商標）などの無線ネットワークであっても、Ｅｔｈｅｒｎｅｔ（登録商標）のような有線ネットワークであっても、上記の混在環境であっても構わない。
【００２５】
図２は、発行体端末２０００の構成図である。なお、図では、トランザクションを「ＴＸ」と略記する。
【００２６】
発行体端末２０００は、プロセッサ２１２０、入出力デバイス２１３０、メモリ２１４０、ストレージメディア２１５０、ネットワークＩ／Ｆ２１６０および内部ネットワーク２１７０から構成される。ストレージメディア２１５０が、永続記憶装置の一例であり、メモリ２１４０およびストレージメディア２１５０が、記憶装置の一例である。ネットワークＩ／Ｆ２１６０が、インターフェース装置の一例である。
【００２７】
入出力デバイス２１３０は、キーボード、マウス、ディスプレイといった、ユーザの入出力を受け付けるデバイスである。ネットワークＩ／Ｆ２１６０は、ネットワーク１１００とのＩ／Ｆである。
【００２８】
内部ネットワーク２１７０は、発行体端末２０００内の構成要素間を相互に接続するネットワークである。
【００２９】
発行体端末２０００は、物理計算機でもよいし、一つ以上の物理計算機（例えばクラウド基盤）上に構築された仮想化環境（例えば、ハイパーバイザ型の仮想化環境、または、コンテナ型の仮想化環境）であってもよい。さらに、発行体端末２０００は、後述する個人端末３０００Ｐおよび店舗端末３０００Ｓのように近接通信Ｉ／Ｆを備え、個人端末３０００Ｐおよび店舗端末３０００Ｓと近接通信可能な構成であっても構わない。近接通信としては、ＢＬＵＥＴＯＯＴＨ  ＬＯＷ  ＥＮＥＲＧＹ（「ＢＬＵＥＴＯＯＴＨ」は登録商標）やＮＥＡＲ  ＦＩＥＬＤ  ＣＯＭＭＵＮＩＣＡＴＩＯＮ（ＮＦＣ）を想定しているが、それ以外の規格の通信が採用されても構わない。また、近接通信は、近距離通信と呼ばれてもよい。また、近接通信は、無線通信に限らず、有線通信でもよい。
【００３０】
ストレージメディア２１５０には、トランザクション実行プログラム２５００Ｉ、公開鍵テーブル４０００Ｉおよび検証済トランザクションテーブル５０００Ｉが格納される。
【００３１】
本実施形態では、ストレージメディア２１５０に格納されたトランザクション実行プログラム２５００Ｉが、実行時にプロセッサ２１２０によってメモリ２１４０にロードされ実行されることを想定しているが、それに限定されず、それらのうちの一部またはすべてが、ストレージメディア２１５０上で実行されても構わない。また、本実施形態では、ストレージメディア２１５０はＨＤＤやＳＳＤといった不揮発性のメディアを、メモリ２１４０はＤＲＡＭ（Dynamic Random Access Memory）などの揮発性のメディアを想定している。しかし、メモリ２１４０は存在せず、ストレージメディア２１５０上ですべてのプログラムが実行され、テーブルが読み書きされる形態であっても構わない。トランザクション実行プログラムがプロセッサ２１２０に実行されることで、発行体端末２０００においてトランザクション実行部といった機能が実現される。
【００３２】
なお、公開鍵テーブル４０００や検証済トランザクションテーブル５０００は、全てもしくはその一部が、ネットワーク１１００に接続された外部記憶装置に格納されていても構わない。
【００３３】
図３は、ユーザ端末３０００の構成図である。
【００３４】
ユーザ端末３０００は、プロセッサ３１２０、入出力デバイス３１３０、メモリ３１４０、ストレージメディア３１５０、ネットワークＩ／Ｆ３１６０、内部ネットワーク３１７０および近接通信Ｉ／Ｆ３１８０から構成される。
【００３５】
入出力デバイス３１３０は、タッチパネル、キーボード、マウス、カメラ、マイク、ディスプレイといった、ユーザの入出力を受け付けるデバイスである。ネットワークＩ／Ｆ３１６０は、ネットワーク１１００とのＩ／Ｆである。内部ネットワーク３１７０は、端末３０００内の構成要素間を相互に接続するネットワークである。ストレージメディア３１５０が、永続記憶装置の一例であり、メモリ３１４０およびストレージメディア３１５０が、記憶装置の一例である。ネットワークＩ／Ｆ２１６０が、インターフェース装置の一例である。
【００３６】
ストレージメディア３１５０には、トランザクション実行プログラム２５００Ｕ、公開鍵テーブル４０００Ｕ、検証済トランザクションテーブル５０００Ｕおよび未検証トランザクションテーブルリスト６０００が格納される。
【００３７】
本実施形態では、ストレージメディア３１５０に格納されたトランザクション実行プログラム２５００Ｕが、実行時にプロセッサ３１２０によってメモリ３１４０にロードされ実行されることを想定しているが、それに限定されず、それらのうちの一部またはすべてが、ストレージメディア３１５０上で実行されても構わない。また、本実施形態では、ストレージメディア３１５０はＨＤＤやＳＳＤといった不揮発性のメディアを、メモリ３１４０はＤＲＡＭなどの揮発性のメディアを想定している。しかし、メモリ３１４０は存在せず、ストレージメディア３１５０上ですべてのプログラムが実行され、テーブルが読み書きされる形態であっても構わない。
【００３８】
なお、公開鍵テーブル４０００Ｕ、検証済トランザクションテーブル５０００Ｕ、未検証トランザクションテーブルリスト６０００の全てもしくはその一部が、ネットワーク１１００に接続された外部記憶装置に格納されていても構わない。
【００３９】
なお、以下の説明では、店舗端末３０００Ｓ内の要素の参照符号に「Ｓ」を付し、個人端末３０００Ｐ内の要素の参照符号に「Ｐ」を付すことで、混同を避けることがある。
【００４０】
図４は、公開鍵テーブル４０００の構成図である。
【００４１】
公開鍵テーブル４０００は、各参加者の公開鍵を保持する。具体的には、例えば、公開鍵テーブル４０００は、参加者毎に、レコードを有する。各レコードは、例えば、ＩＤ４１１０および公開鍵４１２０といった情報を保持する。以下、一つの参加者を例に取る（図４の説明において「注目参加者」）。
【００４２】
ＩＤ４１１０は、注目参加者を一意に識別するＩＤである。公開鍵４１２０は、注目参加者の公開鍵である。
【００４３】
図５は、検証済トランザクションテーブル５０００の構成図である。
【００４４】
検証済トランザクションテーブル５０００は、検証済トランザクションレコードの集合である。具体的には、例えば、検証済トランザクションテーブル５０００は、検証済トランザクションレコードの時系列でよく、一例としてＤＡＧ（Directed Acyclic Graph）構造をなしてよい。ＤＡＧ構造が採用された場合、ノードが、検証済トランザクションレコードであり、エッジが、トランザクションレコードの検証順を表す。「検証済トランザクションレコード」とは、検証済トランザクションを表すトランザクションレコードである。「トランザクションレコード」とは、トランザクションを表すレコードである。「検証済トランザクション」とは、検証者による検証が済んだトランザクションオブジェクトが表すトランザクションである。「検証者」は、本実施形態ではいずれかのユーザ端末３０００であるが、発行体端末２０００でもよいし、発行体端末２０００およびユーザ端末３０００以外の情報処理端末でもよい。
【００４５】
検証済トランザクションテーブル５０００は、例えば、検証済トランザクション毎に、トランザクションレコードを有する。各トランザクションレコードは、例えば、送信元ＩＤ５１１０、送信先ＩＤ５１２０、通貨量５１３０、トランザクション時刻５１４０、送信元署名５１５０、送信先署名５１６０、検証時刻５１７０および検証者署名５１８０といった情報を保持する。以下、一つの検証済トランザクションを例に取る（図５の説明において「注目検証済トランザクション」）。
【００４６】
送信元ＩＤ５１１０は、注目検証済トランザクションでの送信元を一意に識別するＩＤを格納する。なお、「送信元」とは、通貨量の移動元である。従って、送信元は、通貨量の発行の場合には発行体であり、支払いの場合には個人（支払者）であり、個人間送金の場合には一方の個人（送金元）である。
【００４７】
送信先ＩＤ５１２０は、注目検証済トランザクションでの送信先を一意に識別するＩＤを格納する。なお、「送信先」とは、通貨量の移動先である。従って、送信先は、通貨量の発行の場合にはユーザであり、支払いの場合には店舗（受取者）であり、個人間送金の場合には他方の個人（送金先）である。
【００４８】
通貨量５１３０は、注目検証済トランザクションでの移動対象の通貨量を表す。トランザクション時刻５１４０は、注目検証済トランザクションに対応したトランザクション要求に関連付けられるトランザクションデータが作成された時刻を表す。作成されたトランザクションデータは、例えば、送信元ＩＤ、送信先ＩＤ、通貨量およびトランザクション時刻といった情報を有するが、送信元署名、送信先署名、検証時刻および検証者署名といった付加的な情報を有しない。
【００４９】
送信元署名５１５０は、注目検証済トランザクションでの送信元がトランザクションデータに対して付与した電子署名である。送信先署名５１６０は、注目検証済トランザクションでの送信先がトランザクションデータに対して付与した電子署名である。
【００５０】
検証時刻５１７０は、注目検証済トランザクションのトランザクションレコードの基であった未検証トランザクションレコードが検証された時刻を表す。検証者署名５１８０は、当該未検証トランザクションレコードを検証した検証者が当該未検証トランザクションレコードに対して付与した電子署名である。
【００５１】
図６は、未検証トランザクションテーブルリスト６０００の構成図である。
【００５２】
未検証トランザクションテーブルリスト６０００は、当該リスト６０００を持つユーザ端末３０００のユーザに関する一つ以上の未検証トランザクションに関わったユーザ毎に、未検証トランザクションテーブル６２１０を有する。以下、一ユーザを例に取る（図６の説明において「注目ユーザ」）。なお、「未検証トランザクション」とは、未検証トランザクションレコードが表すトランザクションである。「未検証トランザクションレコード」とは、検証者による検証が済んでいないトランザクションレコードである。
【００５３】
未検証トランザクションテーブル６２１０は、注目ユーザに関し最新の検証済トランザクションレコードの複製レコードを先頭レコードとした未検証トランザクションレコードの時系列である。ノードが、検証済トランザクションレコードまたは未検証トランザクションレコードであり、エッジが、未検証トランザクションレコードの追加順を表す。各レコードは、ユーザＩＤ６１０５、送信元ＩＤ６１１０、送信先ＩＤ６１２０、通貨量６１３０、トランザクション時刻６１４０、送信元署名６１５０、送信先署名６１６０、検証時刻６１７０および検証者署名６１８０といった情報を保持する。以下、一つの未検証トランザクションを例に取る（図６の説明において「注目未検証トランザクション」）。
【００５４】
ユーザＩＤ６１０５は、注目未検証トランザクションに対応する注目ユーザのユーザＩＤである。送信元ＩＤ６１１０は、注目未検証トランザクションでの送信元を一意に識別するＩＤである。送信先ＩＤ６１２０は、注目未検証トランザクションでの送信先を一意に識別するＩＤである。ユーザＩＤ６１０５の値は、送信元ＩＤ６１１０の値と送信先ＩＤ６１２０の値とのいずれかである。
【００５５】
通貨量６１３０は、注目未検証トランザクションでの移動対象の通貨量を表す。トランザクション時刻６１４０は、注目未検証トランザクションに対応したトランザクション要求に関連付けられるトランザクションデータが作成された時刻を表す。
【００５６】
送信元署名６１５０は、注目未検証トランザクションでの送信元がトランザクションデータに対して付与する電子署名である。送信先署名６１６０は、注目未検証トランザクションでの送信先がトランザクションデータに対して付与する電子署名である。
【００５７】
検証時刻６１７０および検証者署名６１８０は、注目未検証トランザクションについては空である。検証時刻６１７０および検証者署名６１８０を保持するレコードが、先頭レコード、つまり、注目ユーザに関する最新の検証済トランザクションレコードの複製レコードの場合、検証時刻６１７０は、当該検証済トランザクションのトランザクションレコードの基であった未検証トランザクションレコードが検証された時刻を表す。検証者署名６１８０は、当該未検証トランザクションレコードを検証した検証者が当該未検証トランザクションレコードに対して付与した電子署名である。
【００５８】
図６の例によれば、検証時刻６１７０および検証者署名６１８０の各々の値は、未検証トランザクションテーブル６２１０Ａ〜６２１０Ｃの各々の最初のレコードにのみ格納される。未検証トランザクションテーブル６２１０は、トランザクション要求が送信され当該要求が表すトランザクションに関し送金元と送金先の少なくとも一方のユーザ端末３０００がオフラインの時に当該送金元または当該送金先に関し作成され追加されるテーブルである。
【００５９】
未検証トランザクションレコードが、例えば所定のエンドースメントポリシーに従って検証された場合、当該未検証トランザクションレコードは、検証済トランザクションレコードに移される。すなわち、検証済トランザクションレコードが新たに追加されることになり（当該検証済トランザクションレコードが新たに末端の検証済トランザクションレコードとなり）、かつ、当該未検証トランザクションレコードが未検証トランザクションテーブル６２１０から削除される。
【００６０】
以上が、未検証トランザクションテーブルリスト６０００の構成である。
【００６１】
図７は、トランザクション実行プログラム２５００の全体フローチャートである。
【００６２】
トランザクション実行プログラム２５００を開始後、ステップ７０２０において、トランザクション実行プログラム２５００は、一定時間待ち合わせを行う。図７の説明において、当該プログラム２５００を実行する端末を「自端末」と言い、自端末以外の各端末を「他端末」と言う。
【００６３】
ステップ７０３０において、トランザクション実行プログラム２５００は、他端末に問い合わせることにより、自端末が保有している検証済トランザクションテーブル５０００が最新か否かを確認する。ネットワーク１１００が一時的にオフラインになるなど、自端末が保有している検証済トランザクションテーブル５０００が最新でなければ、処理がステップ７０４０に遷移する。当該テーブル５０００が最新であれば、処理がステップ７０５０に遷移する。
【００６４】
ステップ７０４０において、トランザクション実行プログラム２５００は、更新処理を行う。本更新処理は、例えば、以下の二つの処理を含む。
（１）トランザクション実行プログラム２５００は、オンラインになっている他端末の検証済トランザクションテーブル５０００に、自端末の検証済トランザクションテーブル５０００に保持されていない検証済トランザクションレコードがあれば、当該レコードを自端末の検証済トランザクションテーブル５０００にコピーする。
（２）トランザクション実行プログラム２５００は、自端末内の未検証トランザクションテーブルリスト６０００に対して、ユーザＩＤ６１０５毎に次の処理を行う。
・トランザクション実行プログラム２５００は、未検証トランザクションテーブルリスト６０００では検証時刻６１７０と検証者署名６１８０が空であるが検証済トランザクションテーブル５０００では検証済トランザクションレコードとして存在しているトランザクションレコードが一つ以上存在している場合、それらの検証済トランザクションレコードのうち最新の検証済トランザクションレコードを、新たに、当該ユーザＩＤに関する検証済トランザクションレコードとして、当該ユーザＩＤに対応した未検証トランザクションテーブル６２１０に格納する。当該未検証トランザクションテーブル６２１０のうち、当該最新の検証済トランザクションレコードより古いトランザクションレコード（検証時刻６１７０が表す時刻がより過去であるレコード）は、検証済トランザクションレコードとして検証済トランザクションテーブル５０００に格納済である。このため、トランザクション実行プログラム２５００は、当該古いトランザクションレコードを、未検証トランザクションテーブルリスト６０００から削除する。結果として、当該最新の検証済トランザクションレコードが、当該最新の検証済トランザクションレコードにおいて先頭レコードとなる。
【００６５】
ステップ７０５０において、トランザクション実行プログラム２５００は、イベントの到着を判定する。イベントが到着していれば、イベント種別に応じて、処理がステップ７０６０からステップ７０９０のいずれかに遷移する。イベントが到着していなければ、処理がステップ７０２０に遷移する。なお、「イベント」とは、ステップ７０６０からステップ７０９０のいずれかのステップのトリガである。例えば、ステップ７０６０の資産移転処理に関して言えば、一例として下記が考えられる。
・自端末が送信元であれば、自端末のユーザから、資産移転処理の要求のための操作がされたこと。
・自端末が送信先であれば、他端末からトランザクション要求を受信したこと。
【００６６】
ステップ７０５０において、イベント種別が“資産移転依頼”であれば、ステップ７０６０において、図８もしくは図９に記載されている資産移転処理が行われる。
【００６７】
ステップ７０５０において、イベント種別が“メンバ追加依頼”であれば、処理がステップ７０７０に遷移する。ステップ７０７０では、トランザクション実行プログラム２５００は、追加されるユーザの公開鍵を公開鍵テーブル４０００に追加する。
【００６８】
ステップ７０５０において、イベント種別が“トランザクション検証依頼”であれば、処理がステップ７０８０に遷移する。ステップ７０８０において、トランザクション実行プログラム２５００は、図１０に記載されているトランザクション検証処理を行う。
【００６９】
ステップ７０５０において、イベント種別が“台帳書込み処理”であれば、処理がステップ７０９０に遷移する。ステップ７０９０において、トランザクション実行プログラム２５００は、受信した後述の一時テーブルが持つ一つ以上のトランザクションレコード（検証済トランザクションレコードとされるべき未検証トランザクションレコードの複製の集合）を検証済トランザクションテーブル５０００に追加する。
【００７０】
ステップ７０６０からステップ７０９０のいずれかが完了すると、処理がステップ７１００に遷移する。ステップ７１００では、トランザクション実行プログラム２５００は、ユーザや管理者などからの終了指示の有無を確認する。終了指示があれば、処理が終了する。終了指示がなければ、処理がステップ７０２０に戻る。
【００７１】
図８は、第１種の資産移転処理を示すフローチャートである。
【００７２】
第１種の資産移転処理とは、発行体端末からユーザ端末へ通貨量を発行する処理である。このため、送信元は、発行体であり、送信先は、ユーザである。図８の説明では、送信先ユーザは、店舗であるとする。発行体端末２０００のトランザクション実行プログラム２５００Ｉを、以下、「発行体プログラム２５００Ｉ」と表記する。また、店舗端末３０００Ｓのトランザクション実行プログラム２５００Ｕを、以下、「店舗プログラム２５００ＵＳ」と表記する。また、図８の説明では、店舗端末３０００Ｓ内の要素の参照符号の末尾を「Ｓ」とすることがある。本実施形態では、例えば下記が前提と仮定する。
・店舗端末３０００Ｓと発行体端末２０００の間はネットワーク１１００で接続されていること。
・発行体端末２０００は常時オンラインであること。
・第１種の資産移転処理では常時オンラインであること。
【００７３】
ステップ８０２０において、店舗プログラム２５００ＵＳが、送信元ＩＤ、送信先ＩＤ、通貨量およびトランザクション時刻を表す情報を含んだトランザクションデータを作成する。そのトランザクションデータが表すトランザクションは、発行体から店舗へ店舗所望の通貨量を発行してもらう処理である。送信元ＩＤは、発行元のＩＤであり、送信先ＩＤは、店舗のＩＤである。店舗プログラム２５００ＵＳが、店舗の電子署名を当該トランザクションデータに付与し、署名付きのトランザクションデータを持つトランザクション要求を発行体端末２０００に送信する。店舗の電子署名は、一般に、トランザクションデータのハッシュ値を店舗の秘密鍵によって暗号化することにより生成される。
【００７４】
ステップ８１２０において、発行体プログラム２５００Ｉが、当該トランザクション要求を受信する。その後、ステップ８１３０において、発行体プログラム２５００Ｉが、当該要求が持つトランザクションデータの電子署名の検証である署名検証、つまり、店舗の電子署名の検証を行う。例えば、下記が行われる。
・発行体プログラム２５００Ｉが、当該トランザクションデータが持つ送信先ＩＤ（店舗ＩＤ）と一致するＩＤ４１１０に対応した公開鍵４１２０を、公開鍵テーブル４０００Ｉから特定する。
・発行体プログラム２５００Ｉが、特定した公開鍵４１２０を用いて電子署名を復号することでトランザクションデータのハッシュ値を取得し、取得したトランザクションデータのハッシュ値と、受信した要求が持つトランザクションデータのハッシュ値とを比較する。比較の結果、データの一致が得られた場合、署名検証の成功となる。
【００７５】
署名検証が成功であれば、発行体プログラム２５００Ｉが、トランザクション要求に対して、発行体の電子署名を応答に付与し、署名付きの応答を、店舗端末３０００Ｓに返す。
【００７６】
ステップ８０３０において、店舗プログラム２５００ＵＳが、署名付きの応答を受信する。その後、ステップ８０４０において、店舗プログラム２５００ＵＳが、発行体の電子署名（当該応答が持つ署名）の検証である署名検証を行う。当該署名検証が成功であれば、処理がステップ８０５０に遷移する。
【００７７】
ステップ８０５０において、店舗プログラム２５００ＵＳが、トランザクション検証依頼を行う。具体的には、例えば、店舗プログラム２５００ＵＳは、店舗端末３０００Ｓが空ではない未検証トランザクションテーブルリスト６０００を持っている場合、Ｓ８０２０で作成したトランザクションデータを含むトランザクションレコードを、発行体ＩＤに適合するユーザＩＤに対応した未検証トランザクションテーブル６２１０の最後に追加し、未検証トランザクションテーブルリスト６０００全体の検証を一つ以上の検証者に依頼する。依頼先となる検証者や依頼先とされる検証者の数は、何らかのポリシーにしたがってあらかじめ定めておいてもよいし、ランダムに決定されても構わない。検証依頼を受けた検証者によりトランザクション検証処理が行われる。当該検証処理が成功すれば、検証者（検証者）の署名と検証時刻が、検証されたトランザクションレコードに記録される。
【００７８】
トランザクション検証依頼が終了すると、ステップ８０６０において、店舗プログラム２５００ＵＳが、トランザクション検証依頼の結果に基づく台帳書き込み依頼を行う。本処理は、検証済トランザクションレコードをブロードキャストし、当該検証済トランザクションレコードを受けた端末は、台帳書き込み処理（図７のステップ７０９０と同じ処理）を実行する。「台帳書き込み処理」とは、未検証トランザクションテーブルリスト６０００にある未検証トランザクションレコードのうち検証成功のトランザクションレコード（具体的には、後述の一時テーブルに記録されたトランザクションレコード）を検証済トランザクションテーブル５０００に追加する処理である。なお、ブロードキャストする範囲は、オンラインになっているすべての端末でも構わないし、オンラインになっている個人端末以外のすべての端末であっても構わないし、特定の端末のみでも構わない。また、ステップ８０６０において、店舗プログラム２５００ＵＳが、未検証トランザクションテーブルリスト６０００Ｓにある未検証トランザクションレコードのうち検証成功のトランザクションレコードを検証済トランザクションテーブル５０００ＵＳに追加してよい。
【００７９】
ブロードキャスト処理の一環で、発行体プログラム２５００Ｉは、ステップ８１４０において、台帳書き込み処理を実行する。
【００８０】
店舗プログラム２５００ＵＳは、ステップ８０６０における台帳書き込み処理が終了すると、ステップ８０７０において、未検証トランザクションテーブルリスト６０００Ｓのうち検証済トランザクションテーブル５０００ＵＳに反映されたレコードを削除し、各未検証トランザクションテーブル６２１０Ｓについて、削除されたレコードのうち最新のレコードを先頭レコードとする。
【００８１】
以上が、第１種の資産移転処理の説明である。なお、当該処理において、トランザクションデータおよびトランザクション要求は、店舗プログラム２５００ＵＳに代えて発行体プログラム２５００Ｉにより作成され店舗端末３０００Ｓに送信されてもよい。
【００８２】
図９は、第２種の資産移転処理を示すフローチャートである。
【００８３】
第２種の資産移転処理とは、ユーザ間で通貨量を移転する処理である。図９の例では、一方のユーザが店舗であり他方のユーザ個人であり、個人が店舗で買い物をする際の支払いを想定する。図９の説明において、店舗端末３０００Ｓのトランザクション実行プログラム２５００ＵＳを、「店舗プログラム２５００ＵＳ」と言い、個人端末３０００Ｐのトランザクション実行プログラム２５００ＵＰを、「個人プログラム２５００ＵＰ」と言う。店舗端末３０００Ｓと個人端末３０００Ｐとの間の通信は、近接通信であることを前提とするが、通信は、ネットワーク１１００を介した通信であってもよい。以下の説明では、店舗端末３０００Ｓ内の要素の参照符号の末尾を「Ｓ」とし、個人端末３０００Ｐ内の要素の参照符号の末尾を「Ｐ」とすることがある。
【００８４】
ステップ９０２０において、店舗プログラム２５００ＵＳが、送信元ＩＤ、送信先ＩＤ、通貨量およびトランザクション時刻を表す情報を含んだトランザクションデータを作成する。そのトランザクションデータが表すトランザクションは、個人から店舗へ通貨量を支払ってもらう処理である。送信元ＩＤは、個人のＩＤであり、送信先ＩＤは、店舗のＩＤである。店舗プログラム２５００ＵＳが、店舗の電子署名を当該トランザクションデータに付与し、署名付きのトランザクションデータを持つトランザクション要求を個人端末３０００Ｐに送信する。
【００８５】
ステップ９２２０において、個人プログラム２５００ＵＰが、当該トランザクション要求を受信する。その後、ステップ９２３０において、個人プログラム２５００ＵＰが、当該要求が持つトランザクションデータの電子署名の検証である署名検証、つまり、店舗の電子署名の検証を行う。署名検証が成功であれば、個人プログラム２５００ＵＰが、トランザクション要求に対して、個人の電子署名を応答に付与する。ステップ９２４０において、個人プログラム２５００ＵＰが、個人端末３０００Ｐが保持している未検証トランザクションテーブルリスト６０００を取得し、当該リスト６０００を持つ署名付きの応答を、店舗端末３０００Ｓに返す。
【００８６】
ステップ９０５０において、店舗プログラム２５００ＵＳが、署名付きの応答を受信する。その後、ステップ９０６０において、店舗プログラム２５００ＵＳが、個人の署名（当該応答が持つ署名）の検証である署名検証を行う。当該署名検証が成功であれば、ステップ９０７０において、店舗プログラム２５００ＵＳが、店舗端末３０００Ｓがオンラインか否かを判定する。
【００８７】
ステップ９０７０において店舗端末３０００Ｓがオンラインであれば、ステップ９０８０において、店舗プログラム２５００ＵＳが、トランザクション検証依頼を行う。具体的には、例えば、店舗プログラム２５００ＵＳは、店舗端末３０００Ｓが空ではない未検証トランザクションテーブルリスト６０００Ｓを持っている場合、Ｓ９０２０で作成したトランザクションデータを含むトランザクションレコードを、個人ＩＤに適合するユーザＩＤに対応した未検証トランザクションテーブル６２１０Ｓの最後に追加し、未検証トランザクションテーブルリスト６０００Ｓ全体の検証を一つ以上の検証者に依頼する。依頼先となる検証者や依頼先とされる検証者の数は、何らかのポリシーにしたがってあらかじめ定めておいてもよいし、ランダムに決定されても構わない。検証依頼を受けた検証者によりトランザクション検証処理が行われる。当該検証処理が成功すれば、検証者の署名と検証時刻が、検証されたトランザクションレコードに記録される。
【００８８】
トランザクション検証依頼が終了すると、ステップ９０９０において、店舗プログラム２５００ＵＳが、台帳書き込み依頼を行う。本処理は、ステップ８０６０と同様である。また、ステップ９０９０において、店舗プログラム２５００ＵＳが、店舗端末３０００Ｓ内の未検証トランザクションテーブルリスト６０００Ｓにある未検証トランザクションレコードのうち検証成功のトランザクションレコードを検証済トランザクションテーブル５０００Ｓに追加してよい。
【００８９】
ブロードキャスト処理の一環で、個人プログラム２５００ＵＰは、ステップ９２７０において、台帳書き込み処理を実行する。なお、店舗端末３０００Ｓがオンラインであるが個人端末３０００Ｐはオフラインの場合は、互いの近接通信Ｉ／Ｆ３１８０経由で、検証済トランザクションレコードの送受信がされるものとする。
【００９０】
台帳書き込み処理が終了すると、店舗プログラム２５００ＵＳは、ステップ９１００において、未検証トランザクションテーブルリスト６０００Ｓのうち検証済トランザクションテーブル５０００ＵＳに反映されたレコードを削除し、各未検証トランザクションテーブル６２１０Ｓについて、削除されたレコードのうち最新のレコードを先頭レコードとする。
【００９１】
同様に、個人プログラム２５００ＵＰも、ステップ９２８０において、未検証トランザクションテーブルリスト６０００Ｐのうち検証済トランザクションテーブル５０００ＵＰに反映されたレコードを削除し、各未検証トランザクションテーブル６２１０Ｐについて、削除されたレコードのうち最新のレコードを先頭レコードとする。
【００９２】
ステップ９０７０において店舗端末３０００Ｓがオフラインであれば、トランザクションを確定することができないため、店舗プログラム２５００ＵＳは、ステップ９１１０において、未検証トランザクションテーブルリスト６０００Ｓと、ステップ９０５０で受信した応答が持つ未検証トランザクションテーブルリスト６０００Ｐとの各々に、店舗と個人の署名が付与された未検証トランザクションレコード（ステップ９０２０で作成されたトランザクションデータを含んだ未検証トランザクションレコード）を追加する。その後、ステップ９１２０において、店舗プログラム２５００ＵＳが、更新後の未検証トランザクションテーブルリスト６０００Ｐを個人端末３０００Ｐに送信する。
【００９３】
個人プログラム２５００ＵＰは、ステップ９２６０において、更新後の未検証トランザクションテーブルリスト６０００Ｐを受信すると、受信したテーブルリスト６０００Ｐによって、保持していた未検証トランザクションテーブルリスト６０００Ｐを更新する。つまり、リスト６０００Ｐが、受信した更新後のリスト６０００Ｐに差し替えられる。
【００９４】
以上が、第２種の資産移転処理の説明である。
【００９５】
なお、当該処理において、トランザクションデータおよびトランザクション要求は、オンラインの場合には、店舗端末３０００Ｓに代えて発行体端末２０００において作成され店舗端末３０００Ｓに送信されてもよい。
【００９６】
また、図９に例示の第２種の資産移転処理は、個人から店舗に資産（通貨量）を移転する処理であるが、個人から他の個人に資産を移転する処理、つまり個人間送金であっても、図９が示す手順と同様の手順で行うことができる。具体的には、図９の説明の「店舗」を「個人」と置き換えれば、図９の説明は、個人間送金の説明に相当する。
【００９７】
また、店舗から個人に資産を移転する場合であっても、図９が示す手順と同様の手順で行うことができる。例えば、このようなケースとして、個人を雇用している店舗が給与として資産を個人に移転したり、店舗が何らかのリワードを資産として個人に移転したりするケースが考えられる。
【００９８】
図１０は、トランザクション検証処理を示すフローチャートである。
【００９９】
トランザクション検証処理は、トランザクション検証依頼を受けた検証者により行われる。本実施形態では、検証者は、いずれかのユーザ端末３０００でよい。トランザクション検証処理は、ユーザ端末３０００のトランザクション実行プログラム２５００が、トランザクション検証依頼を受信することにより開始する。当該依頼は、未検証トランザクションテーブルリスト６０００を持つが、それに代えて、リスト６０００の一部の未検証トランザクションレコード（例えば、トランザクションデータ中の送信元ＩＤまたは送信先ＩＤに適合するユーザＩＤに対応した未検証トランザクションテーブル６２１０、あるいは、単一の未検証トランザクションレコード）でもよい。
【０１００】
ステップ１００１５において、トランザクション実行プログラム２５００は、初期化処理を行う。具体的には、トランザクション実行プログラム２５００は、空の一時テーブルをメモリ３１４０上に作成する。一時テーブルの構成は、検証済トランザクションテーブル５０００と同一である。
【０１０１】
ステップ１００２０において、トランザクション実行プログラム２５００は、受信した未検証トランザクションテーブルリスト６０００のいずれかのテーブル６２１０から未処理の先頭の未検証トランザクションレコードを一つ取り出す。つまり、テーブル６２１０の先頭の未検証トランザクションレコードから順次処理されることになる。
【０１０２】
ステップ１００３０において、トランザクション実行プログラム２５００は、取り出した未検証トランザクションレコードが検証済か否かを判断する。当該レコード中の情報６１１０〜６１６０と同じ情報５１１０〜５１６０を持つ検証済トランザクションレコードが検証済トランザクションテーブル５０００にある場合、当該未検証トランザクションレコードは検証済である。検証済との判断がされた場合、処理がステップ１００８０に遷移する。
【０１０３】
検証済との判断がされなかった場合、ステップ１００４０において、トランザクション実行プログラム２５００は、ステップ１００２０で取り出された未検証トランザクションレコードの検証を行う。検証は、例えば、当該トランザクションレコードに付与されている送信元署名６１５０と送信先署名６１６０を用いて実施される。
【０１０４】
ステップ１００４０において検証が失敗すると、ステップ１００７０において、トランザクション実行プログラム２５００は、エラーメッセージ出力などの異常終了処理を行う。
【０１０５】
ステップ１００４０において検証が成功すると、ステップ１００５０において、トランザクション実行プログラム２５００は、検証が成功したレコードに検証時刻６１７０と検証者署名６１８０を付与する。ステップ１００６０において、トランザクション実行プログラム２５００は、当該レコードを一時テーブルに追加する。
【０１０６】
ステップ１００８０において、トランザクション実行プログラム２５００は、受信した未検証トランザクションテーブルリスト６０００のうち、未処理の未検証トランザクションレコードが残っているか否かを確認する。レコードが残っていれば、処理がステップ１００２０に遷移する。レコードが残っていなければ、トランザクション実行プログラム２５００は、検証依頼の送信元のトランザクション実行プログラムに対して、一時テーブルを応答する。当該応答を受けたトランザクション実行プログラム２５００が、ステップ８０６０やステップ９０９０において、当該応答が持つ一時テーブルにおける検証済トランザクションレコードを、当該プログラム２５００が実行される端末内の検証済トランザクションテーブル５０００に追加する。
【０１０７】
以上が、第１の実施形態の説明である。第１の実施形態によれば、未検証トランザクションレコードは、図１１に例示の通りに増え、やがて、検証済トランザクションテーブル５０００に追加される。すなわち、下記の通りである。
・個人Ａが店舗Ｘから商品を購入した場合、個人Ａ（送信元）から店舗Ｘ（送信先）へ通貨量が支払われるトランザクションＴＸ１が生じることになる。オフラインで本取引が行われた場合、ＴＸ１（Ａ，Ｘ）という未検証トランザクションレコードが、店舗Ｘの端末３０００Ｓにおける未検証トランザクションテーブル６２１０Ｓと、個人Ａの端末３０００Ｐにおける未検証トランザクションテーブル６２１０Ｐとに追加される。
・その後、個人Ａが別の店舗Ｙから商品を購入し、オフラインで本取引を行った場合、個人Ａから店舗Ｙへ通貨量が支払われるトランザクションＴＸ２が生じることになる。このため、ＴＸ２（Ｂ，Ｘ）という未検証トランザクションレコードが、店舗Ｙの端末３０００Ｓにおける未検証トランザクションテーブル６２１０Ｓに追加され、かつ、個人Ａの端末３０００Ｐにおける未検証トランザクションテーブル６２１０Ｐに、ＴＸ１（Ａ，Ｘ）の次のレコードとして追加される。
・その後、個人Ａが再び店舗Ｘから商品を購入し、オフラインで本取引を行った場合、個人Ａから店舗Ｘへ通貨量が支払われるトランザクションＴＸ３が生じることになる。また、個人Ａの端末３０００Ｐが持つ未検証トランザクションレコード群のうち、ＴＸ３に至るまでの一連の未検証トランザクションのレコードが、店舗Ｘの端末３０００Ｓの未検証トランザクションテーブル６２１０Ｓに追加され、その後に、ＴＸ３（Ａ，Ｘ）という未検証トランザクションレコードが追加される。結果として、店舗Ｘと個人Ａの両方について、ＴＸ１（Ａ，Ｘ）→ＴＸ２（Ａ，Ｙ）→ＴＸ３（Ａ，Ｘ）という一連の未検証トランザクションレコードが保持される。店舗Ｘの端末３０００Ｓは、店舗Ｘが送信元で送信先でも無い無関係のトランザクション（別の店舗Ｙのトランザクション）を保持することになる。
・その後、店舗Ｘの端末３０００Ｓがオンラインになると、ＴＸ１（Ａ，Ｘ）、ＴＸ２（Ａ，Ｙ）およびＴＸ３（Ａ，Ｘ）の検証依頼が順次発行され、ＴＸ１（Ａ，Ｘ）、ＴＸ２（Ａ，Ｙ）およびＴＸ３（Ａ，Ｘ）が検証済トランザクションテーブル５０００に追加される。この例によれば、店舗Ｘの端末３０００Ｓがオンラインになることで、別の店舗Ｙに対する支払いが行われることとなる。
【０１０８】
第１の実施形態では、全端末が検証済トランザクションテーブル５０００を持つが、それに限定されない。例えば、個人端末３０００Ｐは、当該端末３０００Ｐの個人に関連するトランザクション（当該個人が送信元と送信先のいずれかであるトランザクション）の検証済トランザクションレコードのみ保持してよい。さらに、個人端末３０００Ｐにおける検証済トランザクションレコードの保持期間（例えば、１日、あるいは１週間）と定められてもよい。これにより、個人端末３０００Ｐのストレージメディア３１５０の消費記憶容量を削減できる。また、個人端末３０００Ｐは、トランザクション検証処理を行わないでもよい。
【０１０９】
また、第１の実施形態では、トランザクションレコードを検証し複数の端末の各々が検証済トランザクションテーブル５０００を持つという分散型台帳技術が適用されている。台帳の一例として、検証済トランザクションテーブル５０００が採用されたが、台帳は、トランザクションそのものが記載されるＵＴＸＯ（Unspent Transaction Output）でもよい。この場合、ノードとなるオブジェクトが、トランザクションでよく、エッジが表す関係が、トランザクション間の関係でよい。
【０１１０】
また、第１の実施形態では、本システムに参加しているいずれかの端末がトランザクション検証処理を行うが、Ｎｏｔａｒｙ（公証人）と呼ばれる参加者の端末が一手にトランザクション検証処理を引き受ける構成であってもよい。
【０１１１】
また、分散型に代えて中央集権型が採用されてもよい。例えば、発行体による中央集権型の構成が採用されてもよい。検証済トランザクションテーブルを発行体端末２０００のみが保持し、トランザクション検証処理も発行体端末２０００のみが実施してもよい（つまり、検証者は発行体端末２０００のみでもよい）。これにより、店舗や個人のシステム投資が抑えられる。
【０１１２】
また、オンライントランザクションの回数を減らす手法が適用されてもよい。例えば、各ユーザ（例えば、店舗や個人）について、当該ユーザのトランザクションの履歴に基づく信用度が、発行体プログラム２５００Ｉ、店舗プログラム２５００ＵＳまたは個人プログラム２５００ＵＰにより算出されてよい。一定の信用度を上回ったユーザ間のトランザクションは、オフライントランザクションとされてよい。具体的には、例えば、トランザクション実行プログラム２５００が、トランザクションについて送信元と送信先の一方または双方が一定の使用度を上回っていることを特定した場合、当該プログラム２５００を実行する端末がオンラインであっても、近接通信でのオフライントランザクションを行う（つまり、当該トランザクションのレコードを未検証トランザクションテーブルに追加する）。これにより、オンライントランザクションの回数を抑制し、端末の負荷を抑えることが可能である。トランザクションの履歴は、検証済トランザクションテーブル５０００を参照することで特定されてよい。使用度は、スコアでもよいし、同じユーザ間のトランザクションの数でもよい。例えば、同じユーザ間のトランザクションが２回目以降のトランザクションであれば、当該トランザクションはオフライントランザクションとされてもよい。また、一定数の未検証トランザクションレコードが蓄積された後、または、先頭の未検証トランザクションレコードのトランザクション時刻から一定期間経過後のオンラインにおいて、当該一定数の未検証トランザクションレコードの検証依頼と台帳書き込み処理が行われてよい。
【０１１３】
また、第１の実施形態では、図９によれば、店舗端末３０００Ｓがオフラインであればトランザクション検証依頼は行なわれない。しかし、次の変形例が採用されてもよい。例えば、店舗プログラム２５００ＵＳは、店舗端末３０００Ｓがオフラインであったことを近接通信において個人プログラム２５００ＵＰに通知する。その通知を受けた個人プログラム２５００ＵＰは、個人端末３０００Ｐがオンラインであるか否かを判定する。個人端末３０００Ｐオンラインであれば、個人プログラム２５００ＵＰが、ステップ９０２０で生成されたトランザクションデータを含むトランザクションレコードの検証依頼を行う。その検証が成功であれば、当該トランザクションレコードが検証済トランザクションテーブル５０００に反映される。このため、未検証トランザクションテーブルリスト６０００の肥大化を避けることが期待できる。
［第２の実施形態］
【０１１４】
第２の実施形態を説明する。その際、第１の実施形態との相違点を主に説明し、第１の実施形態との共通点については説明を省略または簡略する。
【０１１５】
図１２は、本発明の第２の実施形態の概念図である。
【０１１６】
図１１に例示した通り、ユーザの端末３０００が、当該ユーザとは関係のない未検証トランザクションレコードを保持することがあり得る。また、トランザクション検証処理は、何らかのポリシーに従って選択されたユーザの端末３０００によって実施されたり、検証が成功であるトランザクションレコードは複数のユーザ端末にブロードキャストされたりすることから、ユーザの端末３０００は、当該ユーザとは関係のない未検証トランザクションのレコードの検証処理を実施したり、当該ユーザとは関係のないトランザクションの検証済トランザクションレコードを保持したりする必要がある。
【０１１７】
そこで、本実施形態では、少なくとも一つの参加者端末２０００または３０００におけるトランザクション実行プログラム２５００が、トランザクション実行ごとに、当該トランザクションについての送信元および送信先の一方または双方から、手数料として通貨量を徴収する。また、トランザクション実行プログラム２５００は、徴収した手数料の分配として、トランザクションレコードの検証や保持を行った参加者端末の参加者に対する報酬（通貨量）を決定する。報酬は、プラスでもマイナスでもよい。プラスが、狭義の報酬であり、マイナスが、広義の報酬（言い換えれば、例えば「ペナルティ」）である。報酬は、手数料に反映されてよい。例えば、プラスの報酬は、手数料の減額でよく、マイナスの報酬は、手数料の加算でよい。つまり、報酬の決定とは、手数料の決定に含まれてもよい。手数料は、貢献度に応じて変更されてもよい。例えば、トランザクション実行プログラム２５００は、オフラインの時間が長く、他のトランザクションの検証を実施していない端末の参加者の手数料を、他の参加者に比べて高く設定してもよい。より具体的には、例えば、図１２に示す通り、参加者に対する報酬は、下記のうちの少なくとも一つに基づき決定されてよい。当該参加者にとっての「無関係レコード」とは、当該参加者が関係しないトランザクションのトランザクションレコードであり、未検証トランザクションレコードと検証済トランザクションレコードのいずれでもよい。また、報酬に関し、無関係レコードの単価は、未検証トランザクションレコードであるか検証済トランザクションレコードであるかに応じて異なってもよい。
・当該参加者の端末が無関係レコードを保持した期間の長さ。
・当該参加者の端末が検証した無関係オブジェクトの数。
・当該参加者の端末が保持する無関係オブジェクトの数。
【０１１８】
以上の説明を、例えば下記のように総括することができる。
【０１１９】
トランザクション実行システムは、複数の参加者端末がそれぞれ有する複数のトランザクション実行プログラム２５００を備える。
【０１２０】
複数の参加者端末の少なくとも一つの参加者端末が、トランザクションを表し検証者による検証が済んだレコードである検証済トランザクションレコード（検証済トランザクションオブジェクトの一例）が追加される検証済トランザクションテーブル５０００（検証済トランザクション情報の一例）を格納する。
【０１２１】
複数の参加者端末の各々は、トランザクションを表し検証者による検証が済んでいないレコードである未検証トランザクションレコード（未検証トランザクションオブジェクトの一例）が追加される未検証トランザクションテーブルリスト６０００（未検証トランザクション情報の一例）を格納する。
【０１２２】
店舗Ｘ（第１の参加者の一例）の店舗端末３０００Ｓ（第１の参加者端末の一例）と個人Ａ（第２の参加者の一例）の個人端末３０００Ｐ（第２の参加者端末の一例）間の通信において、店舗プログラム２５００ＵＳが、下記（Ａ）および（Ｂ）を行う。
（Ａ）店舗プログラム２５００ＵＳが、個人プログラム２５００ＵＰから、未検証トランザクションテーブルリスト６０００Ｐが有する一つ以上の未検証トランザクションレコードである未検証トランザクションレコード群を受信する。
（Ｂ）店舗端末３０００Ｓがオフラインの場合、店舗プログラム２５００ＵＳが、未検証トランザクションテーブルリスト６０００Ｓと、受信した未検証トランザクションレコード群との各々に、店舗と個人間の未検証トランザクションを表す未検証トランザクションレコードを追加して、当該未検証トランザクションレコードが追加された未検証トランザクションレコード群を個人プログラム２５００ＵＰに送信する。
【０１２３】
店舗端末３０００Ｓがオンラインの場合、未検証トランザクションテーブルリスト６０００Ｓが一つまたは複数の未検証トランザクションレコードを有していれば、店舗プログラム２５００ＵＳが、下記（Ｎ１）〜（Ｎ３）を行う。
（Ｎ１）店舗プログラム２５００ＵＳが、当該一つまたは複数の未検証トランザクションレコードのうちの少なくとも一つの未検証トランザクションレコードの検証を一つ以上の検証者に依頼する。
（Ｎ２）店舗プログラム２５００ＵＳが、それぞれ検証に成功したトランザクションレコードである一つ以上の検証済トランザクションレコードを検証済トランザクションテーブル５０００に追加することを依頼する。
（Ｎ３）店舗プログラム２５００ＵＳが、当該一つ以上の検証済トランザクションレコードにそれぞれ対応する一つ以上の未検証トランザクションレコードを、未検証トランザクションテーブルリスト６０００Ｓから削除する。
【０１２４】
オフラインでは検証者に対してトランザクションレコードの検証依頼が行われないため、未検証トランザクションレコードの信頼性が一つの課題である。そこで、店舗Ｘの店舗端末３０００Ｓと個人Ａの個人端末３０００Ｐが、お互いに、店舗Ｘと個人Ａ間のオフラインでの最新のトランザクションの未検証トランザクションレコードを含む同一の未検証トランザクションレコード群を保持する。この未検証トランザクションレコード群に含まれる各未検証トランザクションレコードは、検証済トランザクションテーブル５０００に移されるまで一時的に保持されるレコードであり、当該テーブル５０００に移されたら削除されるレコードである。店舗Ｘと個人Ａがお互いに同一の未検証トランザクションレコード群を保持するため、送信元の一例である個人Ａが不正に未検証トランザクションレコードを削除するといった改ざんがされても、その改ざんを検知することができる。例えば、図１１の例で言えば、個人Ａが不正にＴＸ２（Ａ，Ｙ）を削除した後にＴＸ１（Ａ，Ｘ）とＴＸ３（Ａ，Ｘ）の検証がされ、その後、店舗Ｘの店舗端末３０００Ｓがオンラインになって検証処理が走る場合、ＴＸ１（Ａ，Ｘ）の検証依頼の次にＴＸ２（Ａ，Ｙ）の検証依頼が走るため、ＴＸ２（Ａ，Ｙ）の不正な削除といった改ざんの検知ができる。すなわち、オフラインで支払いの他に個人間送金もできる利便性とそれらのトランザクションを安全に行える高いセキュリティとを両立できる。
【０１２５】
検証済トランザクションテーブル５０００は、検証済トランザクションレコードの時系列である。複数の参加者端末の各々において、未検証トランザクションテーブルリスト６０００は、当該参加者端末の参加者との間でトランザクションが発生した参加者毎の未検証トランザクションテーブル６２１０（サブセットの一例）で構成されており、各未検証トランザクションテーブル６２１０は、未検証トランザクションレコードの時系列である。
【０１２６】
オフラインでは検証者に対してトランザクションレコードの検証依頼が行われないため、未検証トランザクションレコードの順序性の維持が一つの課題である。そこで、参加者間のトランザクションのレコードをお互いが保持することに加えて、各参加者端末において、未検証トランザクションテーブル６２１０は、検証済トランザクションテーブル５０００と同様に順序性を保証してよい。これにより、検証済トランザクションテーブル５０００のようにトランザクションレコードの順序性が保証される台帳に対して、未検証トランザクションレコードの順序性を維持しつつ未検証トランザクションレコードを移すことができる。
【０１２７】
店舗Ｘの店舗端末３０００Ｓと個人Ａの個人端末３０００Ｐ間の通信において、当該店舗端末３０００Ｓがオンラインの場合に、店舗プログラム２５００ＵＳが、（Ｎ１）〜（Ｎ３）を実行してよい。このように、トランザクションが生じたことを契機に、当該生じたトランザクションのレコードに加えて、これまで蓄積された未検証トランザクションレコードについても、検証依頼と台帳書き込みを行うことができる。つまり、検証依頼と台帳書き込み処理の効率化が期待される。なお、店舗端末３０００Ｓがオフラインであっても、個人端末３０００Ｐがオンラインであれば、個人プログラム２５００ＵＰが、下記を行ってよい。これにより、店舗端末３０００Ｓがオフラインであっても個人端末３０００Ｐがオンラインであれば、未検証トランザクションレコードの検証依頼と台帳書き込みが行われることが期待される。
・個人プログラム２５００ＵＰが、個人端末３０００Ｐ内の少なくとも一つの未検証トランザクションレコードの検証を一つ以上の検証者に依頼する。
・個人プログラム２５００ＵＰが、それぞれ検証に成功したトランザクションレコードである一つ以上の検証済トランザクションレコードを検証済トランザクションテーブル５０００に追加することを依頼する。
・個人プログラム２５００ＵＰが、当該一つ以上の検証済トランザクションレコードにそれぞれ対応する一つ以上の未検証トランザクションレコードを、未検証トランザクションテーブルリスト６０００Ｐから削除する。
【０１２８】
上述したように、店舗Ｘと個人Ａが互いに同じ未検証トランザクションレコード群を保持するため、店舗Ｘと個人Ａの各々について同一の未検証トランザクションレコードの検証依頼が行われることがある。そこで、本実施形態では、店舗プログラム２５００ＵＳは、検証済トランザクションテーブル５０００に検証済トランザクションレコードとして反映済の未検証トランザクションレコードについては、一つ以上の検証者への依頼をスキップしてよい。これにより、重複した検証が行われることを避けることができる。
【０１２９】
店舗プログラム２５００ＵＳが、検証済トランザクションテーブル５０００Ｓを基に店舗Ｘと個人Ａの信用度を特定してよい。店舗Ｘの店舗端末３０００ＵＳと個人Ａの個人端末３０００Ｐ間の通信において、店舗端末Ｘがオンラインであっても、店舗Ｘと個人Ａの特定された信用度が一定の信用度を上回っていれば、店舗プログラム２５００ＵＳが、店舗Ｘと個人Ａ間の未検証トランザクションレコードを追加し、当該未検証トランザクションレコードの検証依頼を行わないでよい。店舗端末３０００Ｓに一定数の未検証トランザクションレコード（例えば、個人Ａに関してのレコード）が蓄積された後、または、店舗端末３０００Ｓにおいて先頭の未検証トランザクションレコード（例えば、個人Ａに関してのレコード）が表すトランザクション時刻から一定期間が経過した後のオンラインの際に、店舗プログラム２５００ＵＳが、未検証トランザクションレコードの検証依頼と、検証に成功したトランザクションレコードを検証済トランザクションテーブル５０００に追加することの依頼とを行ってよい。これにより、オンライントランザクションの回数を抑制し、店舗端末３０００Ｓの負荷を抑えることが可能である。
【０１３０】
上述したように、各参加者端末は、当該端末の参加者とは関係のない未検証トランザクションレコードを保持したり、当該参加者とは関係のない未検証トランザクションレコードの検証を実施したりする必要があり得る。このため、各参加者端末は、当該端末の参加者とは関係のない未検証トランザクションレコードにより、消費記憶容量や処理負荷が増えることがあり得る。そこで、少なくとも一つの参加者端末におけるトランザクション実行プログラム２５００が、下記の少なくとも一つに該当する参加者端末の参加者に対する報酬を決定してよい。これにより、トランザクション実行システムに参加する動機付けが高まることが期待される。
・当該参加者が関係しない未検証トランザクションレコードである無関係の未検証レコードを保持する参加者端末。
・無関係の未検証レコードを検証した参加者端末。
【０１３１】
その報酬は、無関係の未検証レコードの保持期間の長さと、検証した無関係の未検証レコードの数と、保持する無関係の未検証レコードの数とのうちの少なくとも一つに基づいてよい。これにより、決定される報酬の適切であることが期待される。
【０１３２】
以上、幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【符号の説明】
【０１３３】
２０００：発行体端末、３０００：ユーザ端末、４０００：公開鍵テーブル、５０００：検証済トランザクションテーブル、６０００：未検証トランザクションテーブルリスト
【図１】
0006896813.tif 000002
【図２】
0006896813.tif 000003
【図３】
0006896813.tif 000004
【図４】
0006896813.tif 000005
【図５】
0006896813.tif 000006
【図６】
0006896813.tif 000007
【図７】
0006896813.tif 000008
【図８】
0006896813.tif 000009
【図９】
0006896813.tif 000010
【図１０】
0006896813.tif 000011
【図１１】
0006896813.tif 000012
【図１２】
0006896813.tif 000013