JP6896813B2 - トランザクション実行方法およびシステム - Google Patents
トランザクション実行方法およびシステム Download PDFInfo
- Publication number
- JP6896813B2 JP6896813B2 JP2019157597A JP2019157597A JP6896813B2 JP 6896813 B2 JP6896813 B2 JP 6896813B2 JP 2019157597 A JP2019157597 A JP 2019157597A JP 2019157597 A JP2019157597 A JP 2019157597A JP 6896813 B2 JP6896813 B2 JP 6896813B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- unverified
- participant
- participant terminal
- verified
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
- G06Q20/202—Interconnection or interaction of plural electronic cash registers [ECR] or to host computer, e.g. network details, transfer of information from host to ECR or from ECR to ECR
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/32—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
- G06Q20/322—Aspects of commerce using mobile devices [M-devices]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/03—Credit; Loans; Processing thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
Description
本発明は、概して、オフラインでのトランザクションの実行に関する。
トランザクションの一例として、個人から店舗への支払いがある。オフラインでの支払いの処理に関する技術として、特許文献1に開示されている技術がある。特許文献1によれば、ユーザデバイスがオンラインでアカウントシステムから残高証明書を取得する。ユーザデバイスと販売主デバイス間のオフラインでの支払いでは、残高証明書がユーザデバイスから販売主デバイスに送付され、販売主デバイスからユーザデバイスに引き出し記録が送付される。販売主デバイスが、オンラインになった場合に、引き出し記録をアカウントシステムに送付する。つまり、特許文献1では、ユーザデバイスも販売主デバイスもオンラインであることが前提である。
新興国をはじめとする一部の国や地域は、偽造の恐れがあったり盗難のリスクがあったりするため、現金を持ち歩くことのリスクが高い。そのような国や地域でもスマートフォンなどのデバイスは普及しつつあるが、一般に通信網や電力網が脆弱であり、意図せずにオフラインになるケースが多々あり得る。このため、そのような国や地域では、オフラインでの安全な支払いを可能にする技術の導入が望ましいと考えられる。しかし、特許文献1の技術は、上述したように、ユーザデバイスも販売主デバイスもオンラインであることが前提であるため、上述したような国や地域には適さない。
また、上述したような国や地域では、オフラインでの支払いの他に、オフラインでの安全な個人間送金もサポートされていることが望ましいと考えられる。しかし、特許文献1は、オフラインでの個人間送金に関する開示も示唆もしていない。
複数の参加者端末の少なくとも一つの参加者端末が、トランザクションを表し検証者による検証が済んだオブジェクトである検証済トランザクションオブジェクトが追加される検証済トランザクション情報を格納する。複数の参加者端末の各々は、トランザクションを表し検証者による検証が済んでいないオブジェクトである未検証トランザクションオブジェクトが追加される未検証トランザクション情報を格納する。第1の参加者と第2の参加者間のトランザクションが生じた場合、第1の参加者端末と第2の参加者端末が、当該トランザクションの未検証トランザクションオブジェクトを含む同一の未検証トランザクションオブジェクト群を互いに保持する。第1の参加者端末がオンラインの場合、未検証トランザクションオブジェクトの検証依頼が行われ、検証が成功であれば当該オブジェクトが検証済トランザクションオブジェクトとして検証済トランザクション情報に追加される。
オフラインで支払いの他に個人間送金もできる利便性とそれらのトランザクションを安全に行える高いセキュリティとを両立できる。
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボードおよびポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボードおよびポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)であり、具体的には、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)である。
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスである。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスであるが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部または全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)またはASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし(例えば、構造化データでもよいし非構造化データでもよいし)、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部または一部が一つのテーブルであってもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置および/またはインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通部分を使用し、同種の要素を区別する場合は、参照符号を使用することがある。例えば、トランザクション実行プログラムを区別しない場合には、「トランザクション実行プログラム2500」と言い、トランザクション実行プログラムを区別する場合には、「トランザクション実行プログラム2500I」、「トランザクション実行プログラム2500US」、「トランザクション実行プログラム2500UP」のように言うことがある。
また、以下の説明では、「オブジェクト」とは、アプリケーションプログラムのようなプログラムから見た1つの論理的な電子データの塊である。オブジェクトとしてのデータは、例えば、レコード、キーバリューペア又はタプルである。以下、オブジェクトとして、レコードを例に取る。
以下、図面を用いて、本発明の幾つかの実施形態を説明する。
[第1の実施形態]
[第1の実施形態]
図1は、本発明の第1の実施形態におけるシステム全体の構成図である。
本実施形態において、「ユーザ」の一例として、個人と店舗(組織の一例)がある。個人の情報処理端末を「個人端末」と言い、店舗の情報処理端末を「店舗端末」と言う。個人端末と店舗端末を「ユーザ端末」と総称することがある。また、本実施形態において、ユーザ間でのトランザクションに従い移動する通貨量を発行する「発行体」が存在する。発行体の情報処理端末を「発行体端末」と言う。発行体とユーザは「参加者」の一例である。
「通貨」は、日本円やアメリカドルといった法定通貨でもよいし、法定通貨と交換可能な電子的な価値であってもよいし、発行体が発行する独自の通貨でもよい。例えば、通貨が法定通貨の場合、ポイント量は金額であり、通貨が「ポイント」の場合、通貨量はポイント量(ポイントの数)である。通貨の種類は限定されない。情報処理端末は、本実施形態では、スマートフォン、タブレット、ノート型パソコンといった持ち運び可能な携帯型端末を想定するが、それら以外の計算機でもよい。
また、「トランザクション」とは、トランザクション要求に応答して実行される処理である。本実施形態において、トランザクションとしては、発行体からユーザへの通貨量の発行と、個人から店舗への支払いと、一方の個人から他方の個人への送金とがあるが、トランザクションはこれらに限られない。「一方の個人から他方の個人への送金」とは、一方の個人(正確には、一方の個人のアカウント)から他方の個人(正確には、他方の個人のアカウント)への通貨量の移転を意味する。なお、一方の個人のアカウントから出る通貨量と他方の個人のアカウントへ入る通貨量は、同じとは限らないでよい(例えば、手数料としての通貨量が差し引かれてもよい)。
店舗端末3000S、個人端末3000P、および、発行体端末2000が、ネットワーク1100を介して通信する。店舗端末3000S、個人端末3000Pおよび発行体端末2000のいずれの数も限定されない。店舗端末、個人端末、発行体端末内部の構成は、後述する。
ネットワーク1100は3G、4G、5G、WiMAX(登録商標)、Wi−Fi(登録商標)などの無線ネットワークであっても、Ethernet(登録商標)のような有線ネットワークであっても、上記の混在環境であっても構わない。
図2は、発行体端末2000の構成図である。なお、図では、トランザクションを「TX」と略記する。
発行体端末2000は、プロセッサ2120、入出力デバイス2130、メモリ2140、ストレージメディア2150、ネットワークI/F2160および内部ネットワーク2170から構成される。ストレージメディア2150が、永続記憶装置の一例であり、メモリ2140およびストレージメディア2150が、記憶装置の一例である。ネットワークI/F2160が、インターフェース装置の一例である。
入出力デバイス2130は、キーボード、マウス、ディスプレイといった、ユーザの入出力を受け付けるデバイスである。ネットワークI/F2160は、ネットワーク1100とのI/Fである。
内部ネットワーク2170は、発行体端末2000内の構成要素間を相互に接続するネットワークである。
発行体端末2000は、物理計算機でもよいし、一つ以上の物理計算機(例えばクラウド基盤)上に構築された仮想化環境(例えば、ハイパーバイザ型の仮想化環境、または、コンテナ型の仮想化環境)であってもよい。さらに、発行体端末2000は、後述する個人端末3000Pおよび店舗端末3000Sのように近接通信I/Fを備え、個人端末3000Pおよび店舗端末3000Sと近接通信可能な構成であっても構わない。近接通信としては、BLUETOOTH LOW ENERGY(「BLUETOOTH」は登録商標)やNEAR FIELD COMMUNICATION(NFC)を想定しているが、それ以外の規格の通信が採用されても構わない。また、近接通信は、近距離通信と呼ばれてもよい。また、近接通信は、無線通信に限らず、有線通信でもよい。
ストレージメディア2150には、トランザクション実行プログラム2500I、公開鍵テーブル4000Iおよび検証済トランザクションテーブル5000Iが格納される。
本実施形態では、ストレージメディア2150に格納されたトランザクション実行プログラム2500Iが、実行時にプロセッサ2120によってメモリ2140にロードされ実行されることを想定しているが、それに限定されず、それらのうちの一部またはすべてが、ストレージメディア2150上で実行されても構わない。また、本実施形態では、ストレージメディア2150はHDDやSSDといった不揮発性のメディアを、メモリ2140はDRAM(Dynamic Random Access Memory)などの揮発性のメディアを想定している。しかし、メモリ2140は存在せず、ストレージメディア2150上ですべてのプログラムが実行され、テーブルが読み書きされる形態であっても構わない。トランザクション実行プログラムがプロセッサ2120に実行されることで、発行体端末2000においてトランザクション実行部といった機能が実現される。
なお、公開鍵テーブル4000や検証済トランザクションテーブル5000は、全てもしくはその一部が、ネットワーク1100に接続された外部記憶装置に格納されていても構わない。
図3は、ユーザ端末3000の構成図である。
ユーザ端末3000は、プロセッサ3120、入出力デバイス3130、メモリ3140、ストレージメディア3150、ネットワークI/F3160、内部ネットワーク3170および近接通信I/F3180から構成される。
入出力デバイス3130は、タッチパネル、キーボード、マウス、カメラ、マイク、ディスプレイといった、ユーザの入出力を受け付けるデバイスである。ネットワークI/F3160は、ネットワーク1100とのI/Fである。内部ネットワーク3170は、端末3000内の構成要素間を相互に接続するネットワークである。ストレージメディア3150が、永続記憶装置の一例であり、メモリ3140およびストレージメディア3150が、記憶装置の一例である。ネットワークI/F2160が、インターフェース装置の一例である。
ストレージメディア3150には、トランザクション実行プログラム2500U、公開鍵テーブル4000U、検証済トランザクションテーブル5000Uおよび未検証トランザクションテーブルリスト6000が格納される。
本実施形態では、ストレージメディア3150に格納されたトランザクション実行プログラム2500Uが、実行時にプロセッサ3120によってメモリ3140にロードされ実行されることを想定しているが、それに限定されず、それらのうちの一部またはすべてが、ストレージメディア3150上で実行されても構わない。また、本実施形態では、ストレージメディア3150はHDDやSSDといった不揮発性のメディアを、メモリ3140はDRAMなどの揮発性のメディアを想定している。しかし、メモリ3140は存在せず、ストレージメディア3150上ですべてのプログラムが実行され、テーブルが読み書きされる形態であっても構わない。
なお、公開鍵テーブル4000U、検証済トランザクションテーブル5000U、未検証トランザクションテーブルリスト6000の全てもしくはその一部が、ネットワーク1100に接続された外部記憶装置に格納されていても構わない。
なお、以下の説明では、店舗端末3000S内の要素の参照符号に「S」を付し、個人端末3000P内の要素の参照符号に「P」を付すことで、混同を避けることがある。
図4は、公開鍵テーブル4000の構成図である。
公開鍵テーブル4000は、各参加者の公開鍵を保持する。具体的には、例えば、公開鍵テーブル4000は、参加者毎に、レコードを有する。各レコードは、例えば、ID4110および公開鍵4120といった情報を保持する。以下、一つの参加者を例に取る(図4の説明において「注目参加者」)。
ID4110は、注目参加者を一意に識別するIDである。公開鍵4120は、注目参加者の公開鍵である。
図5は、検証済トランザクションテーブル5000の構成図である。
検証済トランザクションテーブル5000は、検証済トランザクションレコードの集合である。具体的には、例えば、検証済トランザクションテーブル5000は、検証済トランザクションレコードの時系列でよく、一例としてDAG(Directed Acyclic Graph)構造をなしてよい。DAG構造が採用された場合、ノードが、検証済トランザクションレコードであり、エッジが、トランザクションレコードの検証順を表す。「検証済トランザクションレコード」とは、検証済トランザクションを表すトランザクションレコードである。「トランザクションレコード」とは、トランザクションを表すレコードである。「検証済トランザクション」とは、検証者による検証が済んだトランザクションオブジェクトが表すトランザクションである。「検証者」は、本実施形態ではいずれかのユーザ端末3000であるが、発行体端末2000でもよいし、発行体端末2000およびユーザ端末3000以外の情報処理端末でもよい。
検証済トランザクションテーブル5000は、例えば、検証済トランザクション毎に、トランザクションレコードを有する。各トランザクションレコードは、例えば、送信元ID5110、送信先ID5120、通貨量5130、トランザクション時刻5140、送信元署名5150、送信先署名5160、検証時刻5170および検証者署名5180といった情報を保持する。以下、一つの検証済トランザクションを例に取る(図5の説明において「注目検証済トランザクション」)。
送信元ID5110は、注目検証済トランザクションでの送信元を一意に識別するIDを格納する。なお、「送信元」とは、通貨量の移動元である。従って、送信元は、通貨量の発行の場合には発行体であり、支払いの場合には個人(支払者)であり、個人間送金の場合には一方の個人(送金元)である。
送信先ID5120は、注目検証済トランザクションでの送信先を一意に識別するIDを格納する。なお、「送信先」とは、通貨量の移動先である。従って、送信先は、通貨量の発行の場合にはユーザであり、支払いの場合には店舗(受取者)であり、個人間送金の場合には他方の個人(送金先)である。
通貨量5130は、注目検証済トランザクションでの移動対象の通貨量を表す。トランザクション時刻5140は、注目検証済トランザクションに対応したトランザクション要求に関連付けられるトランザクションデータが作成された時刻を表す。作成されたトランザクションデータは、例えば、送信元ID、送信先ID、通貨量およびトランザクション時刻といった情報を有するが、送信元署名、送信先署名、検証時刻および検証者署名といった付加的な情報を有しない。
送信元署名5150は、注目検証済トランザクションでの送信元がトランザクションデータに対して付与した電子署名である。送信先署名5160は、注目検証済トランザクションでの送信先がトランザクションデータに対して付与した電子署名である。
検証時刻5170は、注目検証済トランザクションのトランザクションレコードの基であった未検証トランザクションレコードが検証された時刻を表す。検証者署名5180は、当該未検証トランザクションレコードを検証した検証者が当該未検証トランザクションレコードに対して付与した電子署名である。
図6は、未検証トランザクションテーブルリスト6000の構成図である。
未検証トランザクションテーブルリスト6000は、当該リスト6000を持つユーザ端末3000のユーザに関する一つ以上の未検証トランザクションに関わったユーザ毎に、未検証トランザクションテーブル6210を有する。以下、一ユーザを例に取る(図6の説明において「注目ユーザ」)。なお、「未検証トランザクション」とは、未検証トランザクションレコードが表すトランザクションである。「未検証トランザクションレコード」とは、検証者による検証が済んでいないトランザクションレコードである。
未検証トランザクションテーブル6210は、注目ユーザに関し最新の検証済トランザクションレコードの複製レコードを先頭レコードとした未検証トランザクションレコードの時系列である。ノードが、検証済トランザクションレコードまたは未検証トランザクションレコードであり、エッジが、未検証トランザクションレコードの追加順を表す。各レコードは、ユーザID6105、送信元ID6110、送信先ID6120、通貨量6130、トランザクション時刻6140、送信元署名6150、送信先署名6160、検証時刻6170および検証者署名6180といった情報を保持する。以下、一つの未検証トランザクションを例に取る(図6の説明において「注目未検証トランザクション」)。
ユーザID6105は、注目未検証トランザクションに対応する注目ユーザのユーザIDである。送信元ID6110は、注目未検証トランザクションでの送信元を一意に識別するIDである。送信先ID6120は、注目未検証トランザクションでの送信先を一意に識別するIDである。ユーザID6105の値は、送信元ID6110の値と送信先ID6120の値とのいずれかである。
通貨量6130は、注目未検証トランザクションでの移動対象の通貨量を表す。トランザクション時刻6140は、注目未検証トランザクションに対応したトランザクション要求に関連付けられるトランザクションデータが作成された時刻を表す。
送信元署名6150は、注目未検証トランザクションでの送信元がトランザクションデータに対して付与する電子署名である。送信先署名6160は、注目未検証トランザクションでの送信先がトランザクションデータに対して付与する電子署名である。
検証時刻6170および検証者署名6180は、注目未検証トランザクションについては空である。検証時刻6170および検証者署名6180を保持するレコードが、先頭レコード、つまり、注目ユーザに関する最新の検証済トランザクションレコードの複製レコードの場合、検証時刻6170は、当該検証済トランザクションのトランザクションレコードの基であった未検証トランザクションレコードが検証された時刻を表す。検証者署名6180は、当該未検証トランザクションレコードを検証した検証者が当該未検証トランザクションレコードに対して付与した電子署名である。
図6の例によれば、検証時刻6170および検証者署名6180の各々の値は、未検証トランザクションテーブル6210A〜6210Cの各々の最初のレコードにのみ格納される。未検証トランザクションテーブル6210は、トランザクション要求が送信され当該要求が表すトランザクションに関し送金元と送金先の少なくとも一方のユーザ端末3000がオフラインの時に当該送金元または当該送金先に関し作成され追加されるテーブルである。
未検証トランザクションレコードが、例えば所定のエンドースメントポリシーに従って検証された場合、当該未検証トランザクションレコードは、検証済トランザクションレコードに移される。すなわち、検証済トランザクションレコードが新たに追加されることになり(当該検証済トランザクションレコードが新たに末端の検証済トランザクションレコードとなり)、かつ、当該未検証トランザクションレコードが未検証トランザクションテーブル6210から削除される。
以上が、未検証トランザクションテーブルリスト6000の構成である。
図7は、トランザクション実行プログラム2500の全体フローチャートである。
トランザクション実行プログラム2500を開始後、ステップ7020において、トランザクション実行プログラム2500は、一定時間待ち合わせを行う。図7の説明において、当該プログラム2500を実行する端末を「自端末」と言い、自端末以外の各端末を「他端末」と言う。
ステップ7030において、トランザクション実行プログラム2500は、他端末に問い合わせることにより、自端末が保有している検証済トランザクションテーブル5000が最新か否かを確認する。ネットワーク1100が一時的にオフラインになるなど、自端末が保有している検証済トランザクションテーブル5000が最新でなければ、処理がステップ7040に遷移する。当該テーブル5000が最新であれば、処理がステップ7050に遷移する。
ステップ7040において、トランザクション実行プログラム2500は、更新処理を行う。本更新処理は、例えば、以下の二つの処理を含む。
(1)トランザクション実行プログラム2500は、オンラインになっている他端末の検証済トランザクションテーブル5000に、自端末の検証済トランザクションテーブル5000に保持されていない検証済トランザクションレコードがあれば、当該レコードを自端末の検証済トランザクションテーブル5000にコピーする。
(2)トランザクション実行プログラム2500は、自端末内の未検証トランザクションテーブルリスト6000に対して、ユーザID6105毎に次の処理を行う。
・トランザクション実行プログラム2500は、未検証トランザクションテーブルリスト6000では検証時刻6170と検証者署名6180が空であるが検証済トランザクションテーブル5000では検証済トランザクションレコードとして存在しているトランザクションレコードが一つ以上存在している場合、それらの検証済トランザクションレコードのうち最新の検証済トランザクションレコードを、新たに、当該ユーザIDに関する検証済トランザクションレコードとして、当該ユーザIDに対応した未検証トランザクションテーブル6210に格納する。当該未検証トランザクションテーブル6210のうち、当該最新の検証済トランザクションレコードより古いトランザクションレコード(検証時刻6170が表す時刻がより過去であるレコード)は、検証済トランザクションレコードとして検証済トランザクションテーブル5000に格納済である。このため、トランザクション実行プログラム2500は、当該古いトランザクションレコードを、未検証トランザクションテーブルリスト6000から削除する。結果として、当該最新の検証済トランザクションレコードが、当該最新の検証済トランザクションレコードにおいて先頭レコードとなる。
(1)トランザクション実行プログラム2500は、オンラインになっている他端末の検証済トランザクションテーブル5000に、自端末の検証済トランザクションテーブル5000に保持されていない検証済トランザクションレコードがあれば、当該レコードを自端末の検証済トランザクションテーブル5000にコピーする。
(2)トランザクション実行プログラム2500は、自端末内の未検証トランザクションテーブルリスト6000に対して、ユーザID6105毎に次の処理を行う。
・トランザクション実行プログラム2500は、未検証トランザクションテーブルリスト6000では検証時刻6170と検証者署名6180が空であるが検証済トランザクションテーブル5000では検証済トランザクションレコードとして存在しているトランザクションレコードが一つ以上存在している場合、それらの検証済トランザクションレコードのうち最新の検証済トランザクションレコードを、新たに、当該ユーザIDに関する検証済トランザクションレコードとして、当該ユーザIDに対応した未検証トランザクションテーブル6210に格納する。当該未検証トランザクションテーブル6210のうち、当該最新の検証済トランザクションレコードより古いトランザクションレコード(検証時刻6170が表す時刻がより過去であるレコード)は、検証済トランザクションレコードとして検証済トランザクションテーブル5000に格納済である。このため、トランザクション実行プログラム2500は、当該古いトランザクションレコードを、未検証トランザクションテーブルリスト6000から削除する。結果として、当該最新の検証済トランザクションレコードが、当該最新の検証済トランザクションレコードにおいて先頭レコードとなる。
ステップ7050において、トランザクション実行プログラム2500は、イベントの到着を判定する。イベントが到着していれば、イベント種別に応じて、処理がステップ7060からステップ7090のいずれかに遷移する。イベントが到着していなければ、処理がステップ7020に遷移する。なお、「イベント」とは、ステップ7060からステップ7090のいずれかのステップのトリガである。例えば、ステップ7060の資産移転処理に関して言えば、一例として下記が考えられる。
・自端末が送信元であれば、自端末のユーザから、資産移転処理の要求のための操作がされたこと。
・自端末が送信先であれば、他端末からトランザクション要求を受信したこと。
・自端末が送信元であれば、自端末のユーザから、資産移転処理の要求のための操作がされたこと。
・自端末が送信先であれば、他端末からトランザクション要求を受信したこと。
ステップ7050において、イベント種別が“資産移転依頼”であれば、ステップ7060において、図8もしくは図9に記載されている資産移転処理が行われる。
ステップ7050において、イベント種別が“メンバ追加依頼”であれば、処理がステップ7070に遷移する。ステップ7070では、トランザクション実行プログラム2500は、追加されるユーザの公開鍵を公開鍵テーブル4000に追加する。
ステップ7050において、イベント種別が“トランザクション検証依頼”であれば、処理がステップ7080に遷移する。ステップ7080において、トランザクション実行プログラム2500は、図10に記載されているトランザクション検証処理を行う。
ステップ7050において、イベント種別が“台帳書込み処理”であれば、処理がステップ7090に遷移する。ステップ7090において、トランザクション実行プログラム2500は、受信した後述の一時テーブルが持つ一つ以上のトランザクションレコード(検証済トランザクションレコードとされるべき未検証トランザクションレコードの複製の集合)を検証済トランザクションテーブル5000に追加する。
ステップ7060からステップ7090のいずれかが完了すると、処理がステップ7100に遷移する。ステップ7100では、トランザクション実行プログラム2500は、ユーザや管理者などからの終了指示の有無を確認する。終了指示があれば、処理が終了する。終了指示がなければ、処理がステップ7020に戻る。
図8は、第1種の資産移転処理を示すフローチャートである。
第1種の資産移転処理とは、発行体端末からユーザ端末へ通貨量を発行する処理である。このため、送信元は、発行体であり、送信先は、ユーザである。図8の説明では、送信先ユーザは、店舗であるとする。発行体端末2000のトランザクション実行プログラム2500Iを、以下、「発行体プログラム2500I」と表記する。また、店舗端末3000Sのトランザクション実行プログラム2500Uを、以下、「店舗プログラム2500US」と表記する。また、図8の説明では、店舗端末3000S内の要素の参照符号の末尾を「S」とすることがある。本実施形態では、例えば下記が前提と仮定する。
・店舗端末3000Sと発行体端末2000の間はネットワーク1100で接続されていること。
・発行体端末2000は常時オンラインであること。
・第1種の資産移転処理では常時オンラインであること。
・店舗端末3000Sと発行体端末2000の間はネットワーク1100で接続されていること。
・発行体端末2000は常時オンラインであること。
・第1種の資産移転処理では常時オンラインであること。
ステップ8020において、店舗プログラム2500USが、送信元ID、送信先ID、通貨量およびトランザクション時刻を表す情報を含んだトランザクションデータを作成する。そのトランザクションデータが表すトランザクションは、発行体から店舗へ店舗所望の通貨量を発行してもらう処理である。送信元IDは、発行元のIDであり、送信先IDは、店舗のIDである。店舗プログラム2500USが、店舗の電子署名を当該トランザクションデータに付与し、署名付きのトランザクションデータを持つトランザクション要求を発行体端末2000に送信する。店舗の電子署名は、一般に、トランザクションデータのハッシュ値を店舗の秘密鍵によって暗号化することにより生成される。
ステップ8120において、発行体プログラム2500Iが、当該トランザクション要求を受信する。その後、ステップ8130において、発行体プログラム2500Iが、当該要求が持つトランザクションデータの電子署名の検証である署名検証、つまり、店舗の電子署名の検証を行う。例えば、下記が行われる。
・発行体プログラム2500Iが、当該トランザクションデータが持つ送信先ID(店舗ID)と一致するID4110に対応した公開鍵4120を、公開鍵テーブル4000Iから特定する。
・発行体プログラム2500Iが、特定した公開鍵4120を用いて電子署名を復号することでトランザクションデータのハッシュ値を取得し、取得したトランザクションデータのハッシュ値と、受信した要求が持つトランザクションデータのハッシュ値とを比較する。比較の結果、データの一致が得られた場合、署名検証の成功となる。
・発行体プログラム2500Iが、当該トランザクションデータが持つ送信先ID(店舗ID)と一致するID4110に対応した公開鍵4120を、公開鍵テーブル4000Iから特定する。
・発行体プログラム2500Iが、特定した公開鍵4120を用いて電子署名を復号することでトランザクションデータのハッシュ値を取得し、取得したトランザクションデータのハッシュ値と、受信した要求が持つトランザクションデータのハッシュ値とを比較する。比較の結果、データの一致が得られた場合、署名検証の成功となる。
署名検証が成功であれば、発行体プログラム2500Iが、トランザクション要求に対して、発行体の電子署名を応答に付与し、署名付きの応答を、店舗端末3000Sに返す。
ステップ8030において、店舗プログラム2500USが、署名付きの応答を受信する。その後、ステップ8040において、店舗プログラム2500USが、発行体の電子署名(当該応答が持つ署名)の検証である署名検証を行う。当該署名検証が成功であれば、処理がステップ8050に遷移する。
ステップ8050において、店舗プログラム2500USが、トランザクション検証依頼を行う。具体的には、例えば、店舗プログラム2500USは、店舗端末3000Sが空ではない未検証トランザクションテーブルリスト6000を持っている場合、S8020で作成したトランザクションデータを含むトランザクションレコードを、発行体IDに適合するユーザIDに対応した未検証トランザクションテーブル6210の最後に追加し、未検証トランザクションテーブルリスト6000全体の検証を一つ以上の検証者に依頼する。依頼先となる検証者や依頼先とされる検証者の数は、何らかのポリシーにしたがってあらかじめ定めておいてもよいし、ランダムに決定されても構わない。検証依頼を受けた検証者によりトランザクション検証処理が行われる。当該検証処理が成功すれば、検証者(検証者)の署名と検証時刻が、検証されたトランザクションレコードに記録される。
トランザクション検証依頼が終了すると、ステップ8060において、店舗プログラム2500USが、トランザクション検証依頼の結果に基づく台帳書き込み依頼を行う。本処理は、検証済トランザクションレコードをブロードキャストし、当該検証済トランザクションレコードを受けた端末は、台帳書き込み処理(図7のステップ7090と同じ処理)を実行する。「台帳書き込み処理」とは、未検証トランザクションテーブルリスト6000にある未検証トランザクションレコードのうち検証成功のトランザクションレコード(具体的には、後述の一時テーブルに記録されたトランザクションレコード)を検証済トランザクションテーブル5000に追加する処理である。なお、ブロードキャストする範囲は、オンラインになっているすべての端末でも構わないし、オンラインになっている個人端末以外のすべての端末であっても構わないし、特定の端末のみでも構わない。また、ステップ8060において、店舗プログラム2500USが、未検証トランザクションテーブルリスト6000Sにある未検証トランザクションレコードのうち検証成功のトランザクションレコードを検証済トランザクションテーブル5000USに追加してよい。
ブロードキャスト処理の一環で、発行体プログラム2500Iは、ステップ8140において、台帳書き込み処理を実行する。
店舗プログラム2500USは、ステップ8060における台帳書き込み処理が終了すると、ステップ8070において、未検証トランザクションテーブルリスト6000Sのうち検証済トランザクションテーブル5000USに反映されたレコードを削除し、各未検証トランザクションテーブル6210Sについて、削除されたレコードのうち最新のレコードを先頭レコードとする。
以上が、第1種の資産移転処理の説明である。なお、当該処理において、トランザクションデータおよびトランザクション要求は、店舗プログラム2500USに代えて発行体プログラム2500Iにより作成され店舗端末3000Sに送信されてもよい。
図9は、第2種の資産移転処理を示すフローチャートである。
第2種の資産移転処理とは、ユーザ間で通貨量を移転する処理である。図9の例では、一方のユーザが店舗であり他方のユーザ個人であり、個人が店舗で買い物をする際の支払いを想定する。図9の説明において、店舗端末3000Sのトランザクション実行プログラム2500USを、「店舗プログラム2500US」と言い、個人端末3000Pのトランザクション実行プログラム2500UPを、「個人プログラム2500UP」と言う。店舗端末3000Sと個人端末3000Pとの間の通信は、近接通信であることを前提とするが、通信は、ネットワーク1100を介した通信であってもよい。以下の説明では、店舗端末3000S内の要素の参照符号の末尾を「S」とし、個人端末3000P内の要素の参照符号の末尾を「P」とすることがある。
ステップ9020において、店舗プログラム2500USが、送信元ID、送信先ID、通貨量およびトランザクション時刻を表す情報を含んだトランザクションデータを作成する。そのトランザクションデータが表すトランザクションは、個人から店舗へ通貨量を支払ってもらう処理である。送信元IDは、個人のIDであり、送信先IDは、店舗のIDである。店舗プログラム2500USが、店舗の電子署名を当該トランザクションデータに付与し、署名付きのトランザクションデータを持つトランザクション要求を個人端末3000Pに送信する。
ステップ9220において、個人プログラム2500UPが、当該トランザクション要求を受信する。その後、ステップ9230において、個人プログラム2500UPが、当該要求が持つトランザクションデータの電子署名の検証である署名検証、つまり、店舗の電子署名の検証を行う。署名検証が成功であれば、個人プログラム2500UPが、トランザクション要求に対して、個人の電子署名を応答に付与する。ステップ9240において、個人プログラム2500UPが、個人端末3000Pが保持している未検証トランザクションテーブルリスト6000を取得し、当該リスト6000を持つ署名付きの応答を、店舗端末3000Sに返す。
ステップ9050において、店舗プログラム2500USが、署名付きの応答を受信する。その後、ステップ9060において、店舗プログラム2500USが、個人の署名(当該応答が持つ署名)の検証である署名検証を行う。当該署名検証が成功であれば、ステップ9070において、店舗プログラム2500USが、店舗端末3000Sがオンラインか否かを判定する。
ステップ9070において店舗端末3000Sがオンラインであれば、ステップ9080において、店舗プログラム2500USが、トランザクション検証依頼を行う。具体的には、例えば、店舗プログラム2500USは、店舗端末3000Sが空ではない未検証トランザクションテーブルリスト6000Sを持っている場合、S9020で作成したトランザクションデータを含むトランザクションレコードを、個人IDに適合するユーザIDに対応した未検証トランザクションテーブル6210Sの最後に追加し、未検証トランザクションテーブルリスト6000S全体の検証を一つ以上の検証者に依頼する。依頼先となる検証者や依頼先とされる検証者の数は、何らかのポリシーにしたがってあらかじめ定めておいてもよいし、ランダムに決定されても構わない。検証依頼を受けた検証者によりトランザクション検証処理が行われる。当該検証処理が成功すれば、検証者の署名と検証時刻が、検証されたトランザクションレコードに記録される。
トランザクション検証依頼が終了すると、ステップ9090において、店舗プログラム2500USが、台帳書き込み依頼を行う。本処理は、ステップ8060と同様である。また、ステップ9090において、店舗プログラム2500USが、店舗端末3000S内の未検証トランザクションテーブルリスト6000Sにある未検証トランザクションレコードのうち検証成功のトランザクションレコードを検証済トランザクションテーブル5000Sに追加してよい。
ブロードキャスト処理の一環で、個人プログラム2500UPは、ステップ9270において、台帳書き込み処理を実行する。なお、店舗端末3000Sがオンラインであるが個人端末3000Pはオフラインの場合は、互いの近接通信I/F3180経由で、検証済トランザクションレコードの送受信がされるものとする。
台帳書き込み処理が終了すると、店舗プログラム2500USは、ステップ9100において、未検証トランザクションテーブルリスト6000Sのうち検証済トランザクションテーブル5000USに反映されたレコードを削除し、各未検証トランザクションテーブル6210Sについて、削除されたレコードのうち最新のレコードを先頭レコードとする。
同様に、個人プログラム2500UPも、ステップ9280において、未検証トランザクションテーブルリスト6000Pのうち検証済トランザクションテーブル5000UPに反映されたレコードを削除し、各未検証トランザクションテーブル6210Pについて、削除されたレコードのうち最新のレコードを先頭レコードとする。
ステップ9070において店舗端末3000Sがオフラインであれば、トランザクションを確定することができないため、店舗プログラム2500USは、ステップ9110において、未検証トランザクションテーブルリスト6000Sと、ステップ9050で受信した応答が持つ未検証トランザクションテーブルリスト6000Pとの各々に、店舗と個人の署名が付与された未検証トランザクションレコード(ステップ9020で作成されたトランザクションデータを含んだ未検証トランザクションレコード)を追加する。その後、ステップ9120において、店舗プログラム2500USが、更新後の未検証トランザクションテーブルリスト6000Pを個人端末3000Pに送信する。
個人プログラム2500UPは、ステップ9260において、更新後の未検証トランザクションテーブルリスト6000Pを受信すると、受信したテーブルリスト6000Pによって、保持していた未検証トランザクションテーブルリスト6000Pを更新する。つまり、リスト6000Pが、受信した更新後のリスト6000Pに差し替えられる。
以上が、第2種の資産移転処理の説明である。
なお、当該処理において、トランザクションデータおよびトランザクション要求は、オンラインの場合には、店舗端末3000Sに代えて発行体端末2000において作成され店舗端末3000Sに送信されてもよい。
また、図9に例示の第2種の資産移転処理は、個人から店舗に資産(通貨量)を移転する処理であるが、個人から他の個人に資産を移転する処理、つまり個人間送金であっても、図9が示す手順と同様の手順で行うことができる。具体的には、図9の説明の「店舗」を「個人」と置き換えれば、図9の説明は、個人間送金の説明に相当する。
また、店舗から個人に資産を移転する場合であっても、図9が示す手順と同様の手順で行うことができる。例えば、このようなケースとして、個人を雇用している店舗が給与として資産を個人に移転したり、店舗が何らかのリワードを資産として個人に移転したりするケースが考えられる。
図10は、トランザクション検証処理を示すフローチャートである。
トランザクション検証処理は、トランザクション検証依頼を受けた検証者により行われる。本実施形態では、検証者は、いずれかのユーザ端末3000でよい。トランザクション検証処理は、ユーザ端末3000のトランザクション実行プログラム2500が、トランザクション検証依頼を受信することにより開始する。当該依頼は、未検証トランザクションテーブルリスト6000を持つが、それに代えて、リスト6000の一部の未検証トランザクションレコード(例えば、トランザクションデータ中の送信元IDまたは送信先IDに適合するユーザIDに対応した未検証トランザクションテーブル6210、あるいは、単一の未検証トランザクションレコード)でもよい。
ステップ10015において、トランザクション実行プログラム2500は、初期化処理を行う。具体的には、トランザクション実行プログラム2500は、空の一時テーブルをメモリ3140上に作成する。一時テーブルの構成は、検証済トランザクションテーブル5000と同一である。
ステップ10020において、トランザクション実行プログラム2500は、受信した未検証トランザクションテーブルリスト6000のいずれかのテーブル6210から未処理の先頭の未検証トランザクションレコードを一つ取り出す。つまり、テーブル6210の先頭の未検証トランザクションレコードから順次処理されることになる。
ステップ10030において、トランザクション実行プログラム2500は、取り出した未検証トランザクションレコードが検証済か否かを判断する。当該レコード中の情報6110〜6160と同じ情報5110〜5160を持つ検証済トランザクションレコードが検証済トランザクションテーブル5000にある場合、当該未検証トランザクションレコードは検証済である。検証済との判断がされた場合、処理がステップ10080に遷移する。
検証済との判断がされなかった場合、ステップ10040において、トランザクション実行プログラム2500は、ステップ10020で取り出された未検証トランザクションレコードの検証を行う。検証は、例えば、当該トランザクションレコードに付与されている送信元署名6150と送信先署名6160を用いて実施される。
ステップ10040において検証が失敗すると、ステップ10070において、トランザクション実行プログラム2500は、エラーメッセージ出力などの異常終了処理を行う。
ステップ10040において検証が成功すると、ステップ10050において、トランザクション実行プログラム2500は、検証が成功したレコードに検証時刻6170と検証者署名6180を付与する。ステップ10060において、トランザクション実行プログラム2500は、当該レコードを一時テーブルに追加する。
ステップ10080において、トランザクション実行プログラム2500は、受信した未検証トランザクションテーブルリスト6000のうち、未処理の未検証トランザクションレコードが残っているか否かを確認する。レコードが残っていれば、処理がステップ10020に遷移する。レコードが残っていなければ、トランザクション実行プログラム2500は、検証依頼の送信元のトランザクション実行プログラムに対して、一時テーブルを応答する。当該応答を受けたトランザクション実行プログラム2500が、ステップ8060やステップ9090において、当該応答が持つ一時テーブルにおける検証済トランザクションレコードを、当該プログラム2500が実行される端末内の検証済トランザクションテーブル5000に追加する。
以上が、第1の実施形態の説明である。第1の実施形態によれば、未検証トランザクションレコードは、図11に例示の通りに増え、やがて、検証済トランザクションテーブル5000に追加される。すなわち、下記の通りである。
・個人Aが店舗Xから商品を購入した場合、個人A(送信元)から店舗X(送信先)へ通貨量が支払われるトランザクションTX1が生じることになる。オフラインで本取引が行われた場合、TX1(A,X)という未検証トランザクションレコードが、店舗Xの端末3000Sにおける未検証トランザクションテーブル6210Sと、個人Aの端末3000Pにおける未検証トランザクションテーブル6210Pとに追加される。
・その後、個人Aが別の店舗Yから商品を購入し、オフラインで本取引を行った場合、個人Aから店舗Yへ通貨量が支払われるトランザクションTX2が生じることになる。このため、TX2(B,X)という未検証トランザクションレコードが、店舗Yの端末3000Sにおける未検証トランザクションテーブル6210Sに追加され、かつ、個人Aの端末3000Pにおける未検証トランザクションテーブル6210Pに、TX1(A,X)の次のレコードとして追加される。
・その後、個人Aが再び店舗Xから商品を購入し、オフラインで本取引を行った場合、個人Aから店舗Xへ通貨量が支払われるトランザクションTX3が生じることになる。また、個人Aの端末3000Pが持つ未検証トランザクションレコード群のうち、TX3に至るまでの一連の未検証トランザクションのレコードが、店舗Xの端末3000Sの未検証トランザクションテーブル6210Sに追加され、その後に、TX3(A,X)という未検証トランザクションレコードが追加される。結果として、店舗Xと個人Aの両方について、TX1(A,X)→TX2(A,Y)→TX3(A,X)という一連の未検証トランザクションレコードが保持される。店舗Xの端末3000Sは、店舗Xが送信元で送信先でも無い無関係のトランザクション(別の店舗Yのトランザクション)を保持することになる。
・その後、店舗Xの端末3000Sがオンラインになると、TX1(A,X)、TX2(A,Y)およびTX3(A,X)の検証依頼が順次発行され、TX1(A,X)、TX2(A,Y)およびTX3(A,X)が検証済トランザクションテーブル5000に追加される。この例によれば、店舗Xの端末3000Sがオンラインになることで、別の店舗Yに対する支払いが行われることとなる。
・個人Aが店舗Xから商品を購入した場合、個人A(送信元)から店舗X(送信先)へ通貨量が支払われるトランザクションTX1が生じることになる。オフラインで本取引が行われた場合、TX1(A,X)という未検証トランザクションレコードが、店舗Xの端末3000Sにおける未検証トランザクションテーブル6210Sと、個人Aの端末3000Pにおける未検証トランザクションテーブル6210Pとに追加される。
・その後、個人Aが別の店舗Yから商品を購入し、オフラインで本取引を行った場合、個人Aから店舗Yへ通貨量が支払われるトランザクションTX2が生じることになる。このため、TX2(B,X)という未検証トランザクションレコードが、店舗Yの端末3000Sにおける未検証トランザクションテーブル6210Sに追加され、かつ、個人Aの端末3000Pにおける未検証トランザクションテーブル6210Pに、TX1(A,X)の次のレコードとして追加される。
・その後、個人Aが再び店舗Xから商品を購入し、オフラインで本取引を行った場合、個人Aから店舗Xへ通貨量が支払われるトランザクションTX3が生じることになる。また、個人Aの端末3000Pが持つ未検証トランザクションレコード群のうち、TX3に至るまでの一連の未検証トランザクションのレコードが、店舗Xの端末3000Sの未検証トランザクションテーブル6210Sに追加され、その後に、TX3(A,X)という未検証トランザクションレコードが追加される。結果として、店舗Xと個人Aの両方について、TX1(A,X)→TX2(A,Y)→TX3(A,X)という一連の未検証トランザクションレコードが保持される。店舗Xの端末3000Sは、店舗Xが送信元で送信先でも無い無関係のトランザクション(別の店舗Yのトランザクション)を保持することになる。
・その後、店舗Xの端末3000Sがオンラインになると、TX1(A,X)、TX2(A,Y)およびTX3(A,X)の検証依頼が順次発行され、TX1(A,X)、TX2(A,Y)およびTX3(A,X)が検証済トランザクションテーブル5000に追加される。この例によれば、店舗Xの端末3000Sがオンラインになることで、別の店舗Yに対する支払いが行われることとなる。
第1の実施形態では、全端末が検証済トランザクションテーブル5000を持つが、それに限定されない。例えば、個人端末3000Pは、当該端末3000Pの個人に関連するトランザクション(当該個人が送信元と送信先のいずれかであるトランザクション)の検証済トランザクションレコードのみ保持してよい。さらに、個人端末3000Pにおける検証済トランザクションレコードの保持期間(例えば、1日、あるいは1週間)と定められてもよい。これにより、個人端末3000Pのストレージメディア3150の消費記憶容量を削減できる。また、個人端末3000Pは、トランザクション検証処理を行わないでもよい。
また、第1の実施形態では、トランザクションレコードを検証し複数の端末の各々が検証済トランザクションテーブル5000を持つという分散型台帳技術が適用されている。台帳の一例として、検証済トランザクションテーブル5000が採用されたが、台帳は、トランザクションそのものが記載されるUTXO(Unspent Transaction Output)でもよい。この場合、ノードとなるオブジェクトが、トランザクションでよく、エッジが表す関係が、トランザクション間の関係でよい。
また、第1の実施形態では、本システムに参加しているいずれかの端末がトランザクション検証処理を行うが、Notary(公証人)と呼ばれる参加者の端末が一手にトランザクション検証処理を引き受ける構成であってもよい。
また、分散型に代えて中央集権型が採用されてもよい。例えば、発行体による中央集権型の構成が採用されてもよい。検証済トランザクションテーブルを発行体端末2000のみが保持し、トランザクション検証処理も発行体端末2000のみが実施してもよい(つまり、検証者は発行体端末2000のみでもよい)。これにより、店舗や個人のシステム投資が抑えられる。
また、オンライントランザクションの回数を減らす手法が適用されてもよい。例えば、各ユーザ(例えば、店舗や個人)について、当該ユーザのトランザクションの履歴に基づく信用度が、発行体プログラム2500I、店舗プログラム2500USまたは個人プログラム2500UPにより算出されてよい。一定の信用度を上回ったユーザ間のトランザクションは、オフライントランザクションとされてよい。具体的には、例えば、トランザクション実行プログラム2500が、トランザクションについて送信元と送信先の一方または双方が一定の使用度を上回っていることを特定した場合、当該プログラム2500を実行する端末がオンラインであっても、近接通信でのオフライントランザクションを行う(つまり、当該トランザクションのレコードを未検証トランザクションテーブルに追加する)。これにより、オンライントランザクションの回数を抑制し、端末の負荷を抑えることが可能である。トランザクションの履歴は、検証済トランザクションテーブル5000を参照することで特定されてよい。使用度は、スコアでもよいし、同じユーザ間のトランザクションの数でもよい。例えば、同じユーザ間のトランザクションが2回目以降のトランザクションであれば、当該トランザクションはオフライントランザクションとされてもよい。また、一定数の未検証トランザクションレコードが蓄積された後、または、先頭の未検証トランザクションレコードのトランザクション時刻から一定期間経過後のオンラインにおいて、当該一定数の未検証トランザクションレコードの検証依頼と台帳書き込み処理が行われてよい。
また、第1の実施形態では、図9によれば、店舗端末3000Sがオフラインであればトランザクション検証依頼は行なわれない。しかし、次の変形例が採用されてもよい。例えば、店舗プログラム2500USは、店舗端末3000Sがオフラインであったことを近接通信において個人プログラム2500UPに通知する。その通知を受けた個人プログラム2500UPは、個人端末3000Pがオンラインであるか否かを判定する。個人端末3000Pオンラインであれば、個人プログラム2500UPが、ステップ9020で生成されたトランザクションデータを含むトランザクションレコードの検証依頼を行う。その検証が成功であれば、当該トランザクションレコードが検証済トランザクションテーブル5000に反映される。このため、未検証トランザクションテーブルリスト6000の肥大化を避けることが期待できる。
[第2の実施形態]
[第2の実施形態]
第2の実施形態を説明する。その際、第1の実施形態との相違点を主に説明し、第1の実施形態との共通点については説明を省略または簡略する。
図12は、本発明の第2の実施形態の概念図である。
図11に例示した通り、ユーザの端末3000が、当該ユーザとは関係のない未検証トランザクションレコードを保持することがあり得る。また、トランザクション検証処理は、何らかのポリシーに従って選択されたユーザの端末3000によって実施されたり、検証が成功であるトランザクションレコードは複数のユーザ端末にブロードキャストされたりすることから、ユーザの端末3000は、当該ユーザとは関係のない未検証トランザクションのレコードの検証処理を実施したり、当該ユーザとは関係のないトランザクションの検証済トランザクションレコードを保持したりする必要がある。
そこで、本実施形態では、少なくとも一つの参加者端末2000または3000におけるトランザクション実行プログラム2500が、トランザクション実行ごとに、当該トランザクションについての送信元および送信先の一方または双方から、手数料として通貨量を徴収する。また、トランザクション実行プログラム2500は、徴収した手数料の分配として、トランザクションレコードの検証や保持を行った参加者端末の参加者に対する報酬(通貨量)を決定する。報酬は、プラスでもマイナスでもよい。プラスが、狭義の報酬であり、マイナスが、広義の報酬(言い換えれば、例えば「ペナルティ」)である。報酬は、手数料に反映されてよい。例えば、プラスの報酬は、手数料の減額でよく、マイナスの報酬は、手数料の加算でよい。つまり、報酬の決定とは、手数料の決定に含まれてもよい。手数料は、貢献度に応じて変更されてもよい。例えば、トランザクション実行プログラム2500は、オフラインの時間が長く、他のトランザクションの検証を実施していない端末の参加者の手数料を、他の参加者に比べて高く設定してもよい。より具体的には、例えば、図12に示す通り、参加者に対する報酬は、下記のうちの少なくとも一つに基づき決定されてよい。当該参加者にとっての「無関係レコード」とは、当該参加者が関係しないトランザクションのトランザクションレコードであり、未検証トランザクションレコードと検証済トランザクションレコードのいずれでもよい。また、報酬に関し、無関係レコードの単価は、未検証トランザクションレコードであるか検証済トランザクションレコードであるかに応じて異なってもよい。
・当該参加者の端末が無関係レコードを保持した期間の長さ。
・当該参加者の端末が検証した無関係オブジェクトの数。
・当該参加者の端末が保持する無関係オブジェクトの数。
・当該参加者の端末が無関係レコードを保持した期間の長さ。
・当該参加者の端末が検証した無関係オブジェクトの数。
・当該参加者の端末が保持する無関係オブジェクトの数。
以上の説明を、例えば下記のように総括することができる。
トランザクション実行システムは、複数の参加者端末がそれぞれ有する複数のトランザクション実行プログラム2500を備える。
複数の参加者端末の少なくとも一つの参加者端末が、トランザクションを表し検証者による検証が済んだレコードである検証済トランザクションレコード(検証済トランザクションオブジェクトの一例)が追加される検証済トランザクションテーブル5000(検証済トランザクション情報の一例)を格納する。
複数の参加者端末の各々は、トランザクションを表し検証者による検証が済んでいないレコードである未検証トランザクションレコード(未検証トランザクションオブジェクトの一例)が追加される未検証トランザクションテーブルリスト6000(未検証トランザクション情報の一例)を格納する。
店舗X(第1の参加者の一例)の店舗端末3000S(第1の参加者端末の一例)と個人A(第2の参加者の一例)の個人端末3000P(第2の参加者端末の一例)間の通信において、店舗プログラム2500USが、下記(A)および(B)を行う。
(A)店舗プログラム2500USが、個人プログラム2500UPから、未検証トランザクションテーブルリスト6000Pが有する一つ以上の未検証トランザクションレコードである未検証トランザクションレコード群を受信する。
(B)店舗端末3000Sがオフラインの場合、店舗プログラム2500USが、未検証トランザクションテーブルリスト6000Sと、受信した未検証トランザクションレコード群との各々に、店舗と個人間の未検証トランザクションを表す未検証トランザクションレコードを追加して、当該未検証トランザクションレコードが追加された未検証トランザクションレコード群を個人プログラム2500UPに送信する。
(A)店舗プログラム2500USが、個人プログラム2500UPから、未検証トランザクションテーブルリスト6000Pが有する一つ以上の未検証トランザクションレコードである未検証トランザクションレコード群を受信する。
(B)店舗端末3000Sがオフラインの場合、店舗プログラム2500USが、未検証トランザクションテーブルリスト6000Sと、受信した未検証トランザクションレコード群との各々に、店舗と個人間の未検証トランザクションを表す未検証トランザクションレコードを追加して、当該未検証トランザクションレコードが追加された未検証トランザクションレコード群を個人プログラム2500UPに送信する。
店舗端末3000Sがオンラインの場合、未検証トランザクションテーブルリスト6000Sが一つまたは複数の未検証トランザクションレコードを有していれば、店舗プログラム2500USが、下記(N1)〜(N3)を行う。
(N1)店舗プログラム2500USが、当該一つまたは複数の未検証トランザクションレコードのうちの少なくとも一つの未検証トランザクションレコードの検証を一つ以上の検証者に依頼する。
(N2)店舗プログラム2500USが、それぞれ検証に成功したトランザクションレコードである一つ以上の検証済トランザクションレコードを検証済トランザクションテーブル5000に追加することを依頼する。
(N3)店舗プログラム2500USが、当該一つ以上の検証済トランザクションレコードにそれぞれ対応する一つ以上の未検証トランザクションレコードを、未検証トランザクションテーブルリスト6000Sから削除する。
(N1)店舗プログラム2500USが、当該一つまたは複数の未検証トランザクションレコードのうちの少なくとも一つの未検証トランザクションレコードの検証を一つ以上の検証者に依頼する。
(N2)店舗プログラム2500USが、それぞれ検証に成功したトランザクションレコードである一つ以上の検証済トランザクションレコードを検証済トランザクションテーブル5000に追加することを依頼する。
(N3)店舗プログラム2500USが、当該一つ以上の検証済トランザクションレコードにそれぞれ対応する一つ以上の未検証トランザクションレコードを、未検証トランザクションテーブルリスト6000Sから削除する。
オフラインでは検証者に対してトランザクションレコードの検証依頼が行われないため、未検証トランザクションレコードの信頼性が一つの課題である。そこで、店舗Xの店舗端末3000Sと個人Aの個人端末3000Pが、お互いに、店舗Xと個人A間のオフラインでの最新のトランザクションの未検証トランザクションレコードを含む同一の未検証トランザクションレコード群を保持する。この未検証トランザクションレコード群に含まれる各未検証トランザクションレコードは、検証済トランザクションテーブル5000に移されるまで一時的に保持されるレコードであり、当該テーブル5000に移されたら削除されるレコードである。店舗Xと個人Aがお互いに同一の未検証トランザクションレコード群を保持するため、送信元の一例である個人Aが不正に未検証トランザクションレコードを削除するといった改ざんがされても、その改ざんを検知することができる。例えば、図11の例で言えば、個人Aが不正にTX2(A,Y)を削除した後にTX1(A,X)とTX3(A,X)の検証がされ、その後、店舗Xの店舗端末3000Sがオンラインになって検証処理が走る場合、TX1(A,X)の検証依頼の次にTX2(A,Y)の検証依頼が走るため、TX2(A,Y)の不正な削除といった改ざんの検知ができる。すなわち、オフラインで支払いの他に個人間送金もできる利便性とそれらのトランザクションを安全に行える高いセキュリティとを両立できる。
検証済トランザクションテーブル5000は、検証済トランザクションレコードの時系列である。複数の参加者端末の各々において、未検証トランザクションテーブルリスト6000は、当該参加者端末の参加者との間でトランザクションが発生した参加者毎の未検証トランザクションテーブル6210(サブセットの一例)で構成されており、各未検証トランザクションテーブル6210は、未検証トランザクションレコードの時系列である。
オフラインでは検証者に対してトランザクションレコードの検証依頼が行われないため、未検証トランザクションレコードの順序性の維持が一つの課題である。そこで、参加者間のトランザクションのレコードをお互いが保持することに加えて、各参加者端末において、未検証トランザクションテーブル6210は、検証済トランザクションテーブル5000と同様に順序性を保証してよい。これにより、検証済トランザクションテーブル5000のようにトランザクションレコードの順序性が保証される台帳に対して、未検証トランザクションレコードの順序性を維持しつつ未検証トランザクションレコードを移すことができる。
店舗Xの店舗端末3000Sと個人Aの個人端末3000P間の通信において、当該店舗端末3000Sがオンラインの場合に、店舗プログラム2500USが、(N1)〜(N3)を実行してよい。このように、トランザクションが生じたことを契機に、当該生じたトランザクションのレコードに加えて、これまで蓄積された未検証トランザクションレコードについても、検証依頼と台帳書き込みを行うことができる。つまり、検証依頼と台帳書き込み処理の効率化が期待される。なお、店舗端末3000Sがオフラインであっても、個人端末3000Pがオンラインであれば、個人プログラム2500UPが、下記を行ってよい。これにより、店舗端末3000Sがオフラインであっても個人端末3000Pがオンラインであれば、未検証トランザクションレコードの検証依頼と台帳書き込みが行われることが期待される。
・個人プログラム2500UPが、個人端末3000P内の少なくとも一つの未検証トランザクションレコードの検証を一つ以上の検証者に依頼する。
・個人プログラム2500UPが、それぞれ検証に成功したトランザクションレコードである一つ以上の検証済トランザクションレコードを検証済トランザクションテーブル5000に追加することを依頼する。
・個人プログラム2500UPが、当該一つ以上の検証済トランザクションレコードにそれぞれ対応する一つ以上の未検証トランザクションレコードを、未検証トランザクションテーブルリスト6000Pから削除する。
・個人プログラム2500UPが、個人端末3000P内の少なくとも一つの未検証トランザクションレコードの検証を一つ以上の検証者に依頼する。
・個人プログラム2500UPが、それぞれ検証に成功したトランザクションレコードである一つ以上の検証済トランザクションレコードを検証済トランザクションテーブル5000に追加することを依頼する。
・個人プログラム2500UPが、当該一つ以上の検証済トランザクションレコードにそれぞれ対応する一つ以上の未検証トランザクションレコードを、未検証トランザクションテーブルリスト6000Pから削除する。
上述したように、店舗Xと個人Aが互いに同じ未検証トランザクションレコード群を保持するため、店舗Xと個人Aの各々について同一の未検証トランザクションレコードの検証依頼が行われることがある。そこで、本実施形態では、店舗プログラム2500USは、検証済トランザクションテーブル5000に検証済トランザクションレコードとして反映済の未検証トランザクションレコードについては、一つ以上の検証者への依頼をスキップしてよい。これにより、重複した検証が行われることを避けることができる。
店舗プログラム2500USが、検証済トランザクションテーブル5000Sを基に店舗Xと個人Aの信用度を特定してよい。店舗Xの店舗端末3000USと個人Aの個人端末3000P間の通信において、店舗端末Xがオンラインであっても、店舗Xと個人Aの特定された信用度が一定の信用度を上回っていれば、店舗プログラム2500USが、店舗Xと個人A間の未検証トランザクションレコードを追加し、当該未検証トランザクションレコードの検証依頼を行わないでよい。店舗端末3000Sに一定数の未検証トランザクションレコード(例えば、個人Aに関してのレコード)が蓄積された後、または、店舗端末3000Sにおいて先頭の未検証トランザクションレコード(例えば、個人Aに関してのレコード)が表すトランザクション時刻から一定期間が経過した後のオンラインの際に、店舗プログラム2500USが、未検証トランザクションレコードの検証依頼と、検証に成功したトランザクションレコードを検証済トランザクションテーブル5000に追加することの依頼とを行ってよい。これにより、オンライントランザクションの回数を抑制し、店舗端末3000Sの負荷を抑えることが可能である。
上述したように、各参加者端末は、当該端末の参加者とは関係のない未検証トランザクションレコードを保持したり、当該参加者とは関係のない未検証トランザクションレコードの検証を実施したりする必要があり得る。このため、各参加者端末は、当該端末の参加者とは関係のない未検証トランザクションレコードにより、消費記憶容量や処理負荷が増えることがあり得る。そこで、少なくとも一つの参加者端末におけるトランザクション実行プログラム2500が、下記の少なくとも一つに該当する参加者端末の参加者に対する報酬を決定してよい。これにより、トランザクション実行システムに参加する動機付けが高まることが期待される。
・当該参加者が関係しない未検証トランザクションレコードである無関係の未検証レコードを保持する参加者端末。
・無関係の未検証レコードを検証した参加者端末。
・当該参加者が関係しない未検証トランザクションレコードである無関係の未検証レコードを保持する参加者端末。
・無関係の未検証レコードを検証した参加者端末。
その報酬は、無関係の未検証レコードの保持期間の長さと、検証した無関係の未検証レコードの数と、保持する無関係の未検証レコードの数とのうちの少なくとも一つに基づいてよい。これにより、決定される報酬の適切であることが期待される。
以上、幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
2000:発行体端末、3000:ユーザ端末、4000:公開鍵テーブル、5000:検証済トランザクションテーブル、6000:未検証トランザクションテーブルリスト
Claims (10)
- 複数の参加者端末がそれぞれ有する複数のトランザクション実行部を備え、
前記複数の参加者端末は、複数の参加者の複数の情報処理端末であり、
前記複数の参加者端末の少なくとも一つの参加者端末が、トランザクションを表し検証者による検証が済んだオブジェクトである検証済トランザクションオブジェクトが追加される検証済トランザクション情報を格納し、
前記複数の参加者端末の各々は、トランザクションを表し検証者による検証が済んでいないオブジェクトである未検証トランザクションオブジェクトが追加される未検証トランザクション情報を格納し、
いずれかの参加者端末である第1の参加者端末と前記第1の参加者端末以外のいずれかの参加者端末である第2の参加者端末間の通信において、前記第1の参加者端末におけるトランザクション実行部である第1のトランザクション実行部が、
前記第2の参加者端末におけるトランザクション実行部である第2のトランザクション実行部から、前記第2の参加者端末における未検証トランザクション情報が有する一つ以上の未検証トランザクションオブジェクトである未検証トランザクションオブジェクト群を受信し、
前記第1の参加者端末がオフラインの場合、前記第1の参加者端末における未検証トランザクション情報と、前記受信した未検証トランザクションオブジェクト群との各々に、前記第1の参加者端末の参加者である第1の参加者と前記第2の参加者端末の参加者である第2の参加者間の未検証トランザクションを表す未検証トランザクションオブジェクトを追加して、当該未検証トランザクションオブジェクトが追加された未検証トランザクションオブジェクト群を前記第2のトランザクション実行部に送信し、
前記第1の参加者端末がオンラインの場合、前記第1の参加者端末における未検証トランザクション情報が一つまたは複数の未検証トランザクションオブジェクトを有していれば、前記第1のトランザクション実行部が、
(N1)当該一つまたは複数の未検証トランザクションオブジェクトのうちの少なくとも一つの未検証トランザクションオブジェクトの検証を一つ以上の検証者に依頼し、
(N2)それぞれ検証に成功したトランザクションオブジェクトである一つ以上の検証済トランザクションオブジェクトを前記検証済トランザクション情報に追加することを依頼し、
(N3)当該一つ以上の検証済トランザクションオブジェクトにそれぞれ対応する一つ以上の未検証トランザクションオブジェクトを、前記第1の参加者端末における未検証トランザクション情報から削除する、
トランザクション実行システム。 - 前記検証済トランザクション情報は、検証済トランザクションオブジェクトの時系列であり、
前記複数の参加者端末の各々において、前記未検証トランザクション情報は、当該参加者端末の参加者との間でトランザクションが発生した参加者毎のサブセットで構成されており、各サブセットは、未検証トランザクションオブジェクトの時系列である、
請求項1に記載のトランザクション実行システム。 - 前記第1の参加者端末と前記第2の参加者端末間の前記通信において、前記第1の参加者端末がオンラインの場合に、前記第1のトランザクション実行部が、(N1)〜(N3)を実行する、
請求項1に記載のトランザクション実行システム。 - 前記第1の参加者端末と前記第2の参加者端末間の前記通信において、前記第1の参加者端末がオフラインの場合に、前記第2の参加者端末がオンラインであれば、前記第2のトランザクション実行部が、
少なくとも一つの未検証トランザクションオブジェクトの検証を一つ以上の検証者に依頼し、
それぞれ検証に成功したトランザクションオブジェクトである一つ以上の検証済トランザクションオブジェクトを前記検証済トランザクション情報に追加することを依頼し、
当該一つ以上の検証済トランザクションオブジェクトにそれぞれ対応する一つ以上の未検証トランザクションオブジェクトを、前記第2の参加者端末における未検証トランザクション情報から削除する、
請求項3に記載のトランザクション実行システム。 - 前記第1のトランザクション実行部は、前記一つまたは複数の未検証トランザクションオブジェクトのうち、前記検証済トランザクション情報に検証済トランザクションオブジェクトとして反映済の未検証トランザクションオブジェクトについては、一つ以上の検証者への依頼をスキップする、
請求項1に記載のトランザクション実行システム。 - 前記第1のトランザクション実行部が、前記検証済トランザクション情報を基に前記第1の参加者と前記第2の参加者の信用度を特定し、
前記第1の参加者端末と前記第2の参加者端末間の前記通信において、前記第1の参加者端末がオンラインであっても、前記第1の参加者と前記第2の参加者の特定された信用度が一定の信用度を上回っていれば、前記第1のトランザクション実行部が、前記第1の参加者と前記第2の参加者間の未検証トランザクションを表す未検証トランザクションオブジェクトを追加し、当該未検証トランザクションオブジェクトの検証依頼を行なわず、
一定数の未検証トランザクションオブジェクトが蓄積された後、または、先頭の未検証トランザクションオブジェクトが表すトランザクション時刻から一定期間が経過した後のオンラインの際に、前記第1のトランザクション実行部が、未検証トランザクションオブジェクトの検証依頼と、検証に成功したトランザクションオブジェクトを前記検証済トランザクション情報に追加することの依頼とを行う、
請求項1に記載のトランザクション実行システム。 - 少なくとも一つの参加者端末におけるトランザクション実行部が、下記の少なくとも一つに該当する参加者端末の参加者に対する報酬を決定する、
・当該参加者が関係しない未検証トランザクションオブジェクトである無関係の未検証オブジェクトを保持する参加者端末、
・前記無関係の未検証オブジェクトを検証した参加者端末、
請求項1に記載のトランザクション実行システム。 - 前記報酬は、前記無関係の未検証オブジェクトの保持期間の長さと、検証した無関係の未検証オブジェクトの数と、保持する無関係の未検証オブジェクトの数とのうちの少なくとも一つに基づく、
請求項7に記載のトランザクション実行システム。 - いずれかの参加者端末である第1の参加者端末と前記第1の参加者端末以外のいずれかの参加者端末である第2の参加者端末間の通信において、下記(A)および(B)を行い、
複数の参加者端末の少なくとも一つの参加者端末が、トランザクションを表し検証者による検証が済んだオブジェクトである検証済トランザクションオブジェクトが追加される検証済トランザクション情報を格納し、
前記複数の参加者端末の各々は、トランザクションを表し検証者による検証が済んでいないオブジェクトである未検証トランザクションオブジェクトが追加される未検証トランザクション情報を格納し、
(A)前記第1の参加者端末が、第2の参加者端末から、前記第2の参加者端末における未検証トランザクション情報が有する一つ以上の未検証トランザクションオブジェクトである未検証トランザクションオブジェクト群を受信する、
(B)前記第1の参加者端末がオフラインの場合、前記第1の参加者端末が、前記第1の参加者端末における未検証トランザクション情報と、前記受信した未検証トランザクションオブジェクト群との各々に、前記第1の参加者端末の参加者である第1の参加者と前記第2の参加者端末の参加者である第2の参加者間の未検証トランザクションを表す未検証トランザクションオブジェクトを追加して、当該未検証トランザクションオブジェクトが追加された未検証トランザクションオブジェクト群を前記第2の参加者端末に送信する、
前記第1の参加者端末がオンラインの場合、前記第1の参加者端末における未検証トランザクション情報が一つまたは複数の未検証トランザクションオブジェクトを有していれば、下記(N1)〜(N3)を行う、
(N1)前記第1の参加者端末が、当該一つまたは複数の未検証トランザクションオブジェクトのうちの少なくとも一つの未検証トランザクションオブジェクトの検証を一つ以上の検証者に依頼する、
(N2)前記第1の参加者端末が、それぞれ検証に成功したトランザクションオブジェクトである一つ以上の検証済トランザクションオブジェクトを前記検証済トランザクション情報に追加することを依頼し、
(N3)前記第1の参加者端末が、当該一つ以上の検証済トランザクションオブジェクトにそれぞれ対応する一つ以上の未検証トランザクションオブジェクトを、前記第1の参加者端末における未検証トランザクション情報から削除する、
トランザクション実行方法。 - いずれかの情報処理端末である第1の参加者端末に、
下記(A)および(B)を行い、
複数の参加者端末の少なくとも一つの参加者端末が、トランザクションを表し検証者による検証が済んだオブジェクトである検証済トランザクションオブジェクトが追加される検証済トランザクション情報を格納し、
前記複数の参加者端末の各々は、トランザクションを表し検証者による検証が済んでいないオブジェクトである未検証トランザクションオブジェクトが追加される未検証トランザクション情報を格納し、
(A)第2の参加者端末から、前記第2の参加者端末における未検証トランザクション情報が有する一つ以上の未検証トランザクションオブジェクトである未検証トランザクションオブジェクト群を受信する、
(B)前記第1の参加者端末がオフラインの場合、前記第1の参加者端末における未検証トランザクション情報と、前記受信した未検証トランザクションオブジェクト群との各々に、前記第1の参加者端末の参加者である第1の参加者と前記第2の参加者端末の参加者である第2の参加者間の未検証トランザクションを表す未検証トランザクションオブジェクトを追加して、当該未検証トランザクションオブジェクトが追加された未検証トランザクションオブジェクト群を前記第2の参加者端末に送信する、
前記第1の参加者端末がオンラインの場合、前記第1の参加者端末における未検証トランザクション情報が一つまたは複数の未検証トランザクションオブジェクトを有していれば、下記(N1)〜(N3)を行う、
(N1)当該一つまたは複数の未検証トランザクションオブジェクトのうちの少なくとも一つの未検証トランザクションオブジェクトの検証を一つ以上の検証者に依頼する、
(N2)それぞれ検証に成功したトランザクションオブジェクトである一つ以上の検証済トランザクションオブジェクトを前記検証済トランザクション情報に追加することを依頼し、
(N3)当該一つ以上の検証済トランザクションオブジェクトにそれぞれ対応する一つ以上の未検証トランザクションオブジェクトを、前記第1の参加者端末における未検証トランザクション情報から削除する、
ことを実行させるコンピュータプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019157597A JP6896813B2 (ja) | 2019-08-30 | 2019-08-30 | トランザクション実行方法およびシステム |
US16/817,869 US11308494B2 (en) | 2019-08-30 | 2020-03-13 | Transaction execution method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019157597A JP6896813B2 (ja) | 2019-08-30 | 2019-08-30 | トランザクション実行方法およびシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021036357A JP2021036357A (ja) | 2021-03-04 |
JP6896813B2 true JP6896813B2 (ja) | 2021-06-30 |
Family
ID=74679955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019157597A Active JP6896813B2 (ja) | 2019-08-30 | 2019-08-30 | トランザクション実行方法およびシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US11308494B2 (ja) |
JP (1) | JP6896813B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055496B (zh) * | 2021-04-01 | 2022-03-29 | 浙江永旗区块链科技有限公司 | 一种基于dag的区块链的交易系统及其方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002170063A (ja) * | 2000-12-01 | 2002-06-14 | Ntt Communications Kk | 電子価値取引システムおよび方法、電子価値取引端末装置、電子価値取引センタ装置 |
US8019365B2 (en) * | 2005-12-31 | 2011-09-13 | Michelle Fisher | Conducting a payment using a secure element and SMS |
EP3123426A4 (en) * | 2014-03-26 | 2017-11-01 | Google, Inc. | Secure offline payment system |
US9450760B2 (en) * | 2014-07-31 | 2016-09-20 | Nok Nok Labs, Inc. | System and method for authenticating a client to a device |
-
2019
- 2019-08-30 JP JP2019157597A patent/JP6896813B2/ja active Active
-
2020
- 2020-03-13 US US16/817,869 patent/US11308494B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2021036357A (ja) | 2021-03-04 |
US20210065180A1 (en) | 2021-03-04 |
US11308494B2 (en) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7385706B2 (ja) | ブロックチェーンに登録されたデジタルアセットを分配する方法及び自律計算エージェント | |
WO2020107919A1 (zh) | 基于创新性的信誉证明共识协议的分布式网络及生态系统 | |
US11899809B2 (en) | Proof-of-approval distributed ledger | |
US11544794B2 (en) | Claim settlement method and apparatus employing blockchain technology | |
US11321783B2 (en) | Method and device for data processing based on blockchain | |
CN107924389B (zh) | 对分布式交易数据库的安全溯源的系统和方法 | |
WO2020220760A1 (zh) | 基于区块链的缴费代扣方法及装置、电子设备、存储介质 | |
CN110599143B (zh) | 数据处理方法、相关设备及介质 | |
US20190164150A1 (en) | Using Blockchain Ledger for Selectively Allocating Transactions to User Accounts | |
TW202008252A (zh) | 基於中心化結算與區塊鏈存證的交易方法及系統 | |
US20230283473A1 (en) | Computer-implemented systems and methods relating to a binary blockchain comprising a pair of coupled blockchains | |
US11669812B2 (en) | Contingent payments for virtual currencies | |
US20210097532A1 (en) | Systems and methods for recording assets and transactions thereof in blockchains | |
US20200082388A1 (en) | Authenticating server and method for transactions on blockchain | |
US20210158335A1 (en) | Blockchain tokenization | |
KR20200046260A (ko) | 블록체인 기반의 디지털 콜렉터블 카드 관리 장치 및 방법 | |
JP7447127B2 (ja) | 分散型台帳システムへのデータの記録の誤ったコピーの送信を防止する | |
TWI646487B (zh) | 具權限分級和避免重複執行的智能合約執行系統及其方法 | |
JP6896813B2 (ja) | トランザクション実行方法およびシステム | |
JP2018160179A (ja) | 仮想通貨管理プログラムおよび方法 | |
KR102293423B1 (ko) | 디지털컨텐츠 배포 및 중고거래 시스템 | |
US20210004791A1 (en) | Guaranteeing server and method for transaction on blockchain | |
WO2023201360A2 (en) | Method, controller, and computer-readable medium for replacement of a cancelled repeating transfer data structure on a distributed transfer network | |
JP7029212B1 (ja) | 取引支援システム、取引支援方法及びプログラム | |
CN112598411A (zh) | 可撤回的隐私授权转账方法、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200214 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210601 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210609 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6896813 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |