JP2019036139A - データ構造、送信装置、受信装置、決済装置、方法、コンピュータプログラム - Google Patents

データ構造、送信装置、受信装置、決済装置、方法、コンピュータプログラム Download PDF

Info

Publication number
JP2019036139A
JP2019036139A JP2017157181A JP2017157181A JP2019036139A JP 2019036139 A JP2019036139 A JP 2019036139A JP 2017157181 A JP2017157181 A JP 2017157181A JP 2017157181 A JP2017157181 A JP 2017157181A JP 2019036139 A JP2019036139 A JP 2019036139A
Authority
JP
Japan
Prior art keywords
data
virtual currency
virtual
encryption
unit
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.)
Granted
Application number
JP2017157181A
Other languages
English (en)
Other versions
JP7017224B2 (ja
Inventor
中村 貴利
Takatoshi Nakamura
貴利 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTI CORP
Original Assignee
NTI CORP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NTI CORP filed Critical NTI CORP
Priority to JP2017157181A priority Critical patent/JP7017224B2/ja
Priority to US16/639,206 priority patent/US20200311717A1/en
Priority to PCT/JP2018/030399 priority patent/WO2019035470A2/ja
Priority to EP18846936.5A priority patent/EP3671601A4/en
Publication of JP2019036139A publication Critical patent/JP2019036139A/ja
Application granted granted Critical
Publication of JP7017224B2 publication Critical patent/JP7017224B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/42Confirmation, e.g. check or permission by the legal debtor of payment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Abstract

【課題】安全性の高い仮想貨幣データのデータ構造を提案する。
【解決手段】所定の装置からネットワークを介して送られたそれを受け取った場合であり、且つ所定の条件が充足された場合に決済を認める決済装置と組合せて用いられる仮想貨幣データは、仮想貨幣データの金銭的価値を特定するための情報である金額情報を少なくとも含む元データを所定の暗号化の手法により暗号化し、更にその暗号化により得られた文字列から、所定の規則により文字を抜出すことにより生成されたデータである仮想貨幣暗号化データを含む。
【選択図】図12

Description

本発明は、仮想貨幣に関する。
近年、フィンテック関連の様々な提案がなされており、その一部は既に実用化され始めている。
その中に仮想通貨と称されるものがある。例えば、ナカモトサトシなる人物の論文に発してインターネット上に構築されたシステムによって実現された、ビットコイン(商標)も仮想通貨と一般に称されている。他方、ビットコインは、暗号通貨或いは暗号貨幣とも称されることがある。
まず、ビットコインの仕組みについて説明する。ビットコインは、概ね以下のような仕組みで成立している。
ビットコインは、まず、以下のようにして発生させられる。
ビットコインを発生させる権利を有する者は、後述するノードを管理する管理者に限られる。ノードの管理者は、インターネット上で行われるある種のゲームに参加する。ゲームは繰返し行われ、ゲームに勝ったノードの管理者は、ゲームに勝つ都度、所定の量のビットコインを得ることができるようになっている。
このようにして発生させられたビットコインは、一般的な貨幣と同様に、それを得たノードの管理者から、ノードの管理者以外の者を含む第三者に、例えば、「支払い」を行うために譲渡され、結果として点々と流布されることになる。
ところで、ビットコインに限られないが、仮想通貨、或いは仮想貨幣の分野では、二重譲渡をどのようにして防止するのかというのが、大変重要な問題となる。有体物である一般的な貨幣は、譲渡者から譲受者に譲渡されると譲渡者の手の中から消えるため、譲渡者が譲受者に貨幣を譲渡した後に、同じ貨幣を更に別の譲受者に譲渡することは原則的に不可能である。しかしながら、仮想通貨は複製が容易であり、且つ譲渡者が譲受者に仮想通貨を譲渡したとしても譲渡者が所有していたデータとしての仮想通貨を消滅させないことが可能であるから、同じ仮想通貨を、複数人に譲渡することは極めて容易である。同じ仮想通貨が複数人に譲渡されることを防止できなければ、そのような仮想通貨は通貨として何らの信用も得られない。
かかる二重譲渡の問題をビットコインは、すべての取引記録を保存するという方法で、解決することとしている。取引記録は、例えば以下のようなものである。簡単のために、ビットコインの仕組みへの参加者が、A〜Dの4人のみであり、且つノードの管理者は、A、Bの2人のみであるとする。ノードの管理者たるAは、上述のゲームに勝利して1000の、Bは、上述のゲームに勝利して500のビットコインを得たとする。
この状態では、A〜Dがそれぞれ持つビットコインは以下のように記述される。
[表1]
A +1000
B +500
C 0
D 0
次いで、AはCに100の、BはDに200のビットコインを支払ったとする。
この状態では、A〜Dがそれぞれ持つビットコインは以下のように記述される。
[表2]
A +1000 -100(to C)
B +500 -200(to D)
C 0 +100(from A)
D 0 +200(from B)
次いで、AはBに300の、DはCに100のビットコインを支払ったとする。
この状態では、A〜Dがそれぞれ持つビットコインは以下のように記述される。
[表3]
A +1000 -100(to C) -300(to B)
B +500 -200(to D) +300(from A)
C 0 +100(from A) +100(from D)
D 0 +200(from B) -100(to C)
上記、表1から表3に記載の記録のすべてが取引記録である。上述の取引記録によれば、表3の時点において、Aの持つビットコインは+1000−100−300=600、同様にBの持つビットコインは600、Cの持つビットコインは、200、Dの持つビットコインは、100であるということがわかる。
このような仕組みを持つビットコインは、興味深いことに、上述の例でいうA〜D間におけるビットコインの譲渡において、譲渡者から譲受者にビットコインの本体となる何らかのデータを引渡すということを行わない。それにも関わらず、取引記録さえ存在すれば、A〜Dが現在持つビットコインの残高を特定することができる、というのがビットコインの仕組みの巧妙なところである。繰り返すが、ビットコインの仕組みにおいては、「コイン」という有体物を想起させるネーミングを使いながらも、コインの実体に相当するデータは存在しない。
なお、ビットコインの仕組みにおけるノードの管理者がゲームに勝利してビットコインを得るという現象は、取引がある程度進んだ後の例えば、表3以降の時点であってでも生じうる。
上述のように、ビットコインの仕組みにおいては、ビットコインの仕組みに参加する各参加者は、自分が所有するビットコインに相当するデータを持たない。つまり、各参加者の財布は空なのであるが、過去のすべての取引記録が閲覧可能に存在しており、且つその時点におけるビットコインの残高は閲覧記録からこのように特定されるのであるから、各参加者が持つビットコインはきっとこうであるはずである、というお互いの理解、或いは共同幻想によってその仕組が成り立っている。
それだけに、その共同幻想を参加者の皆が信じられるようにするためには、取引記録が正当である、或いは取引記録の改竄が不可能である、という保証が必要である。
それをビットコインは、ブロックチェーンと、プルーフ・オブ・ワークいう技術乃至思想によって担保している。ビットコインの取引記録は、それ以前の取引記録に新たな取引記録を連ねていく、という構造となっている。過去の取引記録に新たな取引記録のデータ(ブロック)を連続して連ねていくことにより、取引記録のデータは、ブロックを鎖のように連ねたものとなる。これがブロックチェーンと呼ばれる。ブロックチェーンに付加される新たなブロックが生成される場合、それ以前のブロックを暗号化することによって得られた値(正確には、過去のブロックのデータから作ったハッシュ値)が新たなブロックに付加される。それにより、ブロックチェーンに新たなブロックが付加された時点よりも後においては、過去のブロックに対して改竄を行うとハッシュ値に変化が生じてその改竄が発覚することとなるので、それ以前に作られた過去のブロックに対するデータの改竄を行うことが事実上不可能となる。
また、ブロックチェーンのデータは、インターネット上に多数存在する、ノードと呼ばれるサーバに記録される。各ノードに記録されるブロックチェーンのデータは同じものである。ノードの管理者は上述のように、上述したある種のゲームの参加者である。そして、新たな取引記録のブロックを過去の取引記録に対して付加できる者は、上述のゲームの勝者のみである。つまり、ノードに新たなブロックを追加できる者を1人のみに限定することにより、ブロックのデータの適正なることを確保している。
以上のような仕組みにより、各ノードに記録されたブロックチェーンは、ハッシュ値により改竄ができない、或いは改竄がなされた場合にはハッシュ値が変化するため、改竄がなされたことが発覚するようになっている。また、各ノードに記録されたブロックチェーンのうちの幾つかが、過去のブロックのデータの改竄が発覚しないようにハッシュ値も含めて同じように改竄されたとしても(例えば、多数のノードに記録されたブロックチェーンのうちの幾つかについて、同じ改竄がなされたとしても)、多数のノードに記録されたブロックチェーンのうちの改竄されていないものの方が多数を占めているのであればそちらを真とすることにより、過去のブロックのデータのハッシュ値も含めた改竄も無力となるようにすることができ、実際ビットコインではこのような多数決の理論を採用している。上述のようにノードの管理者は、ゲームに勝つことにより報酬としてビットコインを得ることができる。それをモチベーションとしてノードの管理者達は、自らのコンピュータのコンピューティングパワーを向上させる。悪意のある第三者がノードに記録されたブロックチェーンのうちの過半数を改ざんするには、ノードの管理者達が持つ多数のコンピュータのコンピューティングパワーの合計の少なくとも半分以上のコンピューティングパワーを持つコンピュータを用意することが必要となる。そのようなコンピューティングパワーを持つコンピュータを準備することは事実上不可能であるという前提を、ビットコインの仕組みに参加する者は信用している。かかる信用、或いは信頼関係により、ブロックチェーンの、ひいては取引記録の正当性が保証され、ビットコインにある種の信用が与えられている。
ビットコインの仕組みは上述のごときものであるが、仮想通貨と呼ぶならまだしも、ビットコインが暗号貨幣と称されることに、本願発明者は大きな疑問を抱いている。
というのは、ビットコインの仕組みにおいては、暗号技術は、取引記録の正当性を保証するという目的で使用されているのみであるからである。上述のブロックチェーンに新たなブロックを追加するときにそれ以前のブロックのハッシュ値をとる、というのがそれである。
しかも、ビットコインは、上述したように、価値の譲渡に際して、価値の譲渡人から譲受人に引渡されるデータが存在しない。これは、通貨を機能させるにあたって、価値の譲渡をその譲渡により媒介する有体物たる貨幣(札、硬貨)を用いないと同様である。
つまり、ビットコインは、通貨として機能するかもしれないが、貨幣性は無いし、また、暗号の利用も極めて限定的である。貨幣性がないことによる問題は、過去の取引記録のすべてを記録しておくことが必要であるということであり、これはその大きなデータ量を記録することに壮大な手間、無駄が生じる。実際ビットコインで記録されているブロックチェーンのデータ量は既に膨大であり、それを記録する、しかも多数のノードで同じブロックチェーンのデータを記録することにより、凄まじい無駄が生じている。他方、貨幣の代わりとなるデータをユーザ間で流通させようとすると、そのデータの安全性が問題となる。
そのような観点から、極めて漠然としてではあるが、仮想通貨を成立させるには暗号技術を活用すべきというアイデアは存在しており、暗号技術の適切な利用によって安全な仮想通貨、もっと言えば仮想貨幣を成立させられる可能性がある。
ところで、仮想貨幣で重要なのは、何を置いても信頼性であり、信頼性を生む安全性である。仮に、暗号技術を用いるにしてもどのような暗号化の方法を使用しているのか第三者に看破されないようにすることができれば、その安全性は向上する。
本願発明は、真の意味で暗号貨幣として成立する、データである仮想貨幣を提供することをその課題とし、更には用いられる暗号化の方法を第三者に看破されないようにすることをその課題とする。
かかる課題を解決するため、本願発明者は、以下に説明する発明を提案する。
本願発明は、所定のネットワークを介して決済装置に送られることにより、前記決済装置で決済される、金銭的な価値を有する電子データである仮想貨幣データのデータ構造である。
そして、この仮想貨幣データのデータ構造は、当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる。
かかるデータ構造を有する仮想貨幣データは、決済を認めるか否かを決定する決済装置と組合せて利用される。
決済装置は、暗号技術を利用したものとされている。より詳細には、前記仮想貨幣データを受取った前記決済装置が、受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成するとともに、前記仮想貨幣暗号化データが、前記確認用暗号化データと一致した場合に、当該仮想貨幣暗号化データを真正なものとして決済を認める、という処理を行えるようになっている。
この決済装置は、受取った仮想貨幣データが真正なものであるとで判定された場合に、仮想貨幣データに暗号化して含まれていた元データの中に含まれていた金額情報で特定される金額の決済を認めるものとなっている。ここで、仮想貨幣データの真正性の判定(又は仮想貨幣暗号化データの真正性の判定。なお、本願において、仮想貨幣暗号化データが真性であれば、仮想貨幣データは真性であると取扱われるので、仮想貨幣データの真正性の判定と、仮想貨幣暗号化データの真正性の判定とは、事実上同一である。)は、仮想貨幣データに含まれている仮想貨幣暗号化データと同じ確認用暗号化データをもう一度生成できるか否かによって行われる。仮想貨幣暗号化データは、金額情報を含んだ平文の元データを暗号化して得られる文字列から、所定の規則にしたがってその一部の文字列を抜出すことによって生成される。決済装置は、その真正性の判定の対象となる仮想貨幣データに含まれる仮想貨幣暗号化データの元となった元データと同じ確認用元データを、その元データを暗号化したときと同じ方法で暗号化し、そしてそれにより得られる文字列から、仮想貨幣暗号化データが生成されたときと同じ規則にしたがってその一部を抜き出すことにより、確認用暗号化データを生成する。同じ元データ及び確認用元データに対して同じ処理を行って得られる仮想貨幣暗号化データ及び確認用暗号化データは、仮想貨幣暗号化データに悪意の第三者による改竄等がなければ同一となるはずである。そのような理屈により、本願発明による決済装置は、仮想貨幣暗号化データの真正性の判定を行うのである。
なお、一般的には、「暗号化」は、第三者がそのデータを見ても特別な知識なしでは読めない(理解できない)ようにそのデータを元に戻せるように可逆に変換することを言う場合が多いが、本願発明における「暗号化」という文言は、第三者がそのデータを見ても特別な知識なしでは読めないようにそのデータを変換することを言い、復号化できる変換のみでなく、ハッシュ値を生成する場合のように、不可逆に変換する場合をも含む。本願発明における決済装置では、暗号化の処理は実行されるものの復号化の処理は実行されないため、決済装置で用いられる暗号化の処理のみならず、仮想貨幣暗号化データを生成するときに用いられる暗号化の処理も、可逆の変換であることを要しない。不可逆な変換としては、あるデータのハッシュ値を生成する技術が知られており、そのような公知技術を、本願発明における「暗号化」に応用することが可能である。もっとも、本願発明における「暗号化」は可逆なものであっても構わないことはもちろんである。
上述の如きデータ構造を有する仮想貨幣データは、いわば、その金銭的な価値の本体である仮想貨幣暗号化データが、元データを暗号化して生成されたものであるから、その安全性が高い。また、本願のデータ構造を有する仮想貨幣データによって実現される仮想貨幣は、価値の交換に際して交換される仮想貨幣データが存在するものであるから貨幣性という条件を充足するものであり、またそれ故に膨大な取引記録のデータの記録が不要となる。
そして、本願発明によるデータ構造を有する仮想貨幣データは更なる効果を有する。上述のように、仮想貨幣暗号化データは、元データを暗号化して得られる文字列そのものではなく、その文字列から所定の規則にしたがって抜出された、元データを暗号化して得られた文字列の一部である。したがって、仮に本願発明で用いられる暗号化の方法が仮に可逆のものであったとしても、仮想貨幣暗号化データを元データに戻すことは不可能である。仮想貨幣データに含まれて世に出回る仮想貨幣暗号化データは、このように元データに戻すことが不可能なものなのであるから、仮想貨幣暗号化データを入手した悪意の第三者が仮想貨幣暗号化データに基いて暗号化の方法を看破することは当然に不可能である。したがって、本願発明の如きデータ構造を有する仮想貨幣データ乃至それに含まれる仮想貨幣暗号化データは、その安全性が高いのである。
なお、仮想貨幣暗号化データは、上述のように元データを暗号化して得られる文字列の一部であるが、その一部の文字列はそれだけで仮想貨幣暗号化データの真正性を、たまたま複数の仮想貨幣暗号化データが一致してしまうことにより、或いは悪意の第三者が適当に生成した仮想貨幣暗号化データが正当な仮想貨幣暗号化データとたまたま一致してしまうこと等による誤判定が生じる可能性を事実上0%とみなすことができるような確率で、正確に判定できるようなものである必要がある。したがって、仮想貨幣暗号化データを構成する文字列は、ある程度以上の桁数である必要があるであろうし、元データを暗号化する方法、或いは元データを暗号化して得られた文字列からその一部を抜き出すための所定の規則には、仮想貨幣暗号化データを構成する文字列が、他の仮想貨幣暗号化データを構成する文字列と重複しないようなものとする程度の工夫を行う必要があろう。もっとも、仮想貨幣暗号化データを構成する文字列を長くしていけば、この課題は事実上解決可能である。
元データを暗号化して得られる文字列から、その一部を抜き出すための規則はどのようなものであってもよいし、また、常に同じである必要はない。なお、本願におけるかかる「文字列」は、文字、数字、記号の少なくとも1種類を含むものである。なお、「文字列」が数字のみで構成される場合には、文字列を構成する数字の数は、桁数と称するのが正当であり、「文字列」が文字、記号等を含む場合には、文字列を構成する文字等の数は、文字数と称するのが正当であろうが、本願発明では、文字列を構成するのが数字のみである場合も、ない場合も、簡単のために、文字列を構成する文字等の数を、桁数と称することとする。元データを暗号化して得られる文字列から、その一部を抜き出すための規則は、例えば、元データを暗号化して得られる文字列が仮に10000桁であるとした場合に、その文字列から偶数桁又は奇数桁のみを抜き出す、その前、後、或いは中間の例えば500桁程度の適当な桁数を抜き出す、英文字、数字、記号混じりの文字列から、英文字のみ、数字のみ、或いは英文字と数字のみを抜き出す、英文字、数字、記号混じりの文字列から、英文字のみ、数字のみ、或いは英文字と数字のみを所定の桁数だけ抜き出す、というようなものとすることができる。
本願発明における仮想貨幣データには上述のように仮想貨幣暗号化データが含まれる。ここで、仮想貨幣暗号化データは、元データを暗号化し、且つその一部を所定の規則にしたがって抜き出したものである。元データは、金額情報を少なくとも含むものである。元データには、他のデータが含まれていても構わない。
例えば、前記元データは、仮想貨幣データの発行者の情報を少なくとも含む発行主体情報を含んでいてもよく、仮想貨幣データの信用を裏付ける情報である信用情報を含んでいてもよい。
発行主体情報で特定されるのは、仮想貨幣データを一括的に発行する国、地方自治体、ある程度以上の信頼を有する例えば大規模の法人等であっても良いし、或いは、個人であってもよい。本願発明におけるデータ構造を有する仮想貨幣データは、個人でも発行可能とすることができる。言い換えれば、本願発明におけるデータ構造を有する仮想貨幣データは後述する仮想貨幣データ生成装置で生成されるが、仮想貨幣データ生成装置は、個人が所有する場合もあり得る。
信用情報は、仮想貨幣データの信用の元となる所定の資産を特定する情報であってもよい。かかる資産は、仮想貨幣データに対する、担保、或いはデポジットの如き性格を持つか、又は担保、或いはデポジットそのものとなる。金額情報で特定される金額と同じであるかはともかく、少なくともある程度の価値のある資産と対応して仮想貨幣データが作られるのであれば、そしてその仮想貨幣データに含まれる仮想貨幣暗号化データに、仮想貨幣データの信用の元となる資産を特定する情報、例えば、仮想貨幣データと一対一対応する情報が含まれているのであれば、そして更にはある仮想貨幣データを、その仮想貨幣データに含まれる仮想貨幣暗号化データに含まれる資産と交換できるようなルール作りを行えたのであれば、その仮想貨幣データは、兌換貨幣の如き性格を持つものとなりその価値が少なくともある程度は保障されることとなる。
仮想貨幣データには、前記元データを暗号化したときの条件を特定するための情報である暗号化条件データが、更に付されていてもよい。暗号化条件データは、仮想貨幣暗号化データに含まれておらず、むしろ仮想貨幣暗号化データに付された状態で仮想貨幣データに含まれている。後述するが、暗号化条件データは、仮想貨幣データに含まれる仮想貨幣暗号化データが暗号化されたときの条件を特定する(仮想貨幣暗号化データが暗号化されたときの暗号化の方法を少なくとも間接的に特定するための条件であって、仮想貨幣暗号化データが暗号化されたときに使用された暗号化の方法そのものを特定するためのものであってもよい。)ためのものである。元データを暗号化してから仮想貨幣暗号化データが生成される場合において使用される暗号化の方法は、1通りであっても良いが、変化する場合もあり得る。仮想貨幣暗号化データを生成するために使用される暗号化の方法が変化する場合には、決済装置の決済装置暗号化手段は、確認用元データを暗号化する場合に用いるべき暗号化の方法を、これから真正性の確認をしようとする仮想貨幣暗号化データが暗号化されたときに用いられた方法と一致させなければならない。詳しくは追って述べるが、そのような目的を達成するために、暗号化条件データは役に立つ。なお、暗号化条件データは、暗号化されていても良いし、そうでなくても良い。もっとも、暗号化条件データを決済装置が使用する場合には、決済装置はそれを復号化する必要がある。暗号化条件データが暗号化されている場合、その暗号化の方法が変化するのであれば、暗号化条件データの復号化を行えるようにするためのデータを決済装置が更に必要とすることになりかねないので、暗号化条件データを暗号化するのであれば、その暗号化の方法は常に同一とするべきであろう。
以上で説明した仮想貨幣データのデータ構造を有する仮想貨幣データは、もちろん、記録媒体に記録されていても良い。記録媒体は、可搬の記録媒体に限らず、所定の機器に内蔵された記録媒体であってもよい。所定の機器に内蔵された記録媒体は、例えば、RAM(random access memory)、HDD(hard disk drive)である。
所定の機器は、上述の如き前記記録媒体を内蔵しているとともに、前記ネットワークを介してデータの受信を行う受信装置受信手段を備えており、前記仮想貨幣データは、前記受信装置受信手段により受信されてから前記記録媒体に記録されたものである、受信装置であってもよい。
所定の機器は、また、上述の如き前記記録媒体を内蔵しているとともに、前記ネットワークを介してデータの送信を行う送信装置送信手段を備えており、前記仮想貨幣データは、前記送信装置送信手段により前記ネットワークを介して前記決済装置に送信されるようになっている、送信装置であってもよい。
次いで、決済装置について説明する。以下に説明する決済装置はすべて、以上で説明した仮想貨幣データのいずれかを受取り、所定の条件下で決済を行うものである。
本願発明の決済装置は、当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる仮想貨幣データを、決済を求める所定の装置からネットワークを介して受取る決済装置受信手段と、受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成する決済装置暗号化手段と、前記決済装置受信手段で受信された前記仮想貨幣データに含まれていた前記仮想貨幣暗号化データと、前記決済装置暗号化手段で生成された前記確認用暗号化データとを比較し、両者が一致した場合に当該仮想貨幣暗号化データが含まれていた前記仮想貨幣データが真正なものであると判定する判定手段と、前記判定手段が、前記仮想貨幣データが真正なものであると判定した場合に、前記元データに含まれる前記金額情報で特定される金額の決済を認める決済手段と、を備えている決済装置である。
かかる決済装置は、決済を求める所定の装置から仮想貨幣データを受取った場合に決済を行う。上述の送信装置がその一態様となる、仮想貨幣データを決済装置に送ってくる所定の装置は一般に、仮想貨幣データを生成した装置ではなく、仮想貨幣データを生成した装置或いはその所有者等から、仮想貨幣データを譲り受けた者の所有等する装置である。
決済装置は、仮想貨幣データを受取ったときに、その判定手段で仮想貨幣データの真正性について判定する。判定手段が行う仮想貨幣データの真正性の判定方法は基本的に上述した通りであり、同じ元データ及び確認用元データに対して同じ処理を行って得られる仮想貨幣暗号化データ及び確認用暗号化データは、仮想貨幣暗号化データに悪意の第三者による改竄等がなければ同一となるはずである、という理論に基づく。つまり、仮想貨幣暗号化データと同じ確認用暗号化データを決済装置が作れるか否かによって、仮想貨幣暗号化データの真正性を判定するのである。
決済装置はその決済装置暗号化手段で、その真正性の判定の対象となる仮想貨幣データに含まれる仮想貨幣暗号化データの元となった元データと同じ確認用元データを、その元データを暗号化したときと同じ方法で暗号化し、そしてそれにより得られる文字列から、仮想貨幣暗号化データが生成されたときと同じ規則にしたがってその一部を抜き出すことにより、確認用暗号化データを生成する。そして、決済装置はその判定手段で、仮想貨幣暗号化データと確認用暗号化データとを比較し、両者が一致した場合に仮想貨幣暗号化データが、ひいては仮想貨幣データが真正なものであると判定する。なお、後述するように生成される確認用暗号化データは1つとは限らず、確認用暗号化データが複数の場合には、判定手段は、仮想貨幣暗号化データが確認用暗号化データの少なくとも1つと一致した場合に仮想貨幣暗号化データは正当なものであると判定する。その結果、判定手段が、仮想貨幣データが真正なものであると判定した場合に、決済装置は、その決済手段で、元データに含まれる金額情報で特定される金額の決済を認める。
仮想貨幣データの真正性の確認のために用いられる確認用暗号化データは、決済装置の判定手段で上述の仮想貨幣データの真正性の判定が行われるより前に生成されれば良い。確認用暗号化データの生成時期の代表的なものは2つ存在する。
決済装置は、決済を求めて送られてきた仮想貨幣データを受取った後に、確認用暗号化データを生成する場合がある。かかる決済装置は、例えば、前記確認用元データ前を記録する第1記録手段を備えているとともに、前記決済装置暗号化手段は、前記決済装置受信手段で前記仮想貨幣データを受取った場合に、当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった元データと同じ確認用元データを前記第1記録手段から読み出して、読み出した前記確認用元データに基いて前記確認用暗号化データを生成するようになっている。つまり、この決済装置は、確認用元データを、予め第1記録手段に記録しておくとともに、仮想貨幣データの真正性の判定を行うことが必要となったときに、必要な確認用元データを読み出してそれに基いて確認用暗号化データとするようになっている。判定手段は、仮想貨幣データを決済装置が受取った後に生成された確認用暗号化データと、決済を求めて送られて来た仮想貨幣データに含まれていた仮想貨幣暗号化データとを比較する。
また、決済装置は、決済を求めて送られてきた仮想貨幣データを受取る前に、つまり、仮想貨幣データを他の所定の装置から受取る時期とは無関係に、予め確認用暗号化データを生成しておく場合がある。かかる決済装置は、前記確認用暗号化データを記録する第2記録手段を備えているとともに、前記判定手段は、前記決済装置受信手段が前記仮想貨幣データを受取った場合に、前記第2記録手段に記録されている確認用暗号化データと、前記決済装置受信手段が受取った前記仮想貨幣データに含まれている仮想貨幣暗号化データとを比較し、前記仮想貨幣暗号化データと同じ前記確認用暗号化データが前記第2記録手段に記録されていた場合には、当該仮想貨幣暗号化データを含んでいた前記仮想貨幣データが真正なものであると判定するようになっている。つまり、この決済装置は、確認用元データを、例えば、確認用元データを生成すると同時或いはその直後に決済装置暗号化手段で確認用元データから確認用暗号化データを生成し、生成したその確認用暗号化データを第2記録手段に記録する。そして、この決済装置では、仮想貨幣データの真正性の判定を行うことが必要となったときに、判定手段が第2記録手段から確認用暗号化データと、決済を求めて送られて来た仮想貨幣データに含まれていた仮想貨幣暗号化データとを比較する。
仮想貨幣データに含まれる仮想貨幣暗号化データは、常に同じ方法で暗号化された結果得られた文字列から、所定の規則にしたがって抜出された文字列であっても良いし、また、異なる方法で暗号化された結果得られた文字列から、所定の規則にしたがって抜出された文字列であっても良い。とはいえ、仮想貨幣暗号化データが複数の方法、可能であればすべて異なる方法で暗号化された方が、仮想貨幣データの安全性が向上することは明らかであろう。
ここで、「同じ方法」で暗号化の処理を行うとは、本願では、暗号化の処理を実行するときにおける暗号化を実行するための処理方法が同じである、という意味である。例えば、暗号化の処理は、アルゴリズムと鍵を用いて実行されるのが通常であるから、アルゴリズムと鍵との少なくとも一方が異なる場合であれば、異なる方法で暗号化されたといえる。他方、暗号化の処理に用いられるアルゴリズムが同じである場合には、本願では、同じ方法で暗号化が行われると言うことにする。例えば、各仮想貨幣暗号化データが生成されるときの暗号化の処理が、それらの元となる元データに対して、同一の暗号化のためのアルゴリズムを用いるけれども、それぞれユニークな暗号化の鍵を用いて暗号化を行うものである場合には、各仮想貨幣暗号化データが生成されるときの暗号化の処理がすべて異なるものとなるといえる。
このように、暗号化の方法が複数存在するとき、決済装置は、ある確認用元データを暗号化するにあたって、どのような暗号化の方法でそれを行うか決定しなければならなくなる。もちろんのことであるが、仮想貨幣データは、例えば、上述した送信装置、受信装置の中に多数存在する状態になるから、例えば仮想貨幣データと同数の多数の確認用元データが決済装置で生成されることになるから、決済装置が暗号化の方法を決定しなければならなくなるという事情は益々避けられないものとなる。このような場合、つまり決済装置の決済装置暗号化手段が暗号化の方法を決定する場合に利用されるのが、上述の如き暗号化条件データである。前記仮想貨幣データには、前記元データを暗号化したときの条件を特定するための情報である暗号化条件データが含まれており、前記決済装置暗号化手段は、前記確認用元データを暗号化する場合に、その仮想貨幣暗号化データとともに前記仮想貨幣データに含まれていた前記暗号化条件データに基いて、当該確認用元データの暗号化の方法を決定するようになっていてもよい。
本願発明者は、上述の決済装置で実行される方法をも本願発明の一態様として提案する。その効果は、決済装置による効果と等しい。それは例えば、以下のようなものである。
その方法は、ネットワークを介してデータの受信を行うことができ、且つデータ処理を行うコンピュータを有している、決済装置で実行される決済方法である。
そしてその決済方法は、前記コンピュータが実行する、当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる仮想貨幣データを、決済を求める所定の装置からネットワークを介して受取る決済装置受信過程と、受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成する決済装置暗号化過程と、前記決済装置受信過程で受信された前記仮想貨幣データに含まれていた前記仮想貨幣暗号化データと、前記決済装置暗号化過程で生成された前記確認用暗号化データとを比較し、両者が一致した場合に当該仮想貨幣暗号化データが含まれていた前記仮想貨幣データが真正なものであると判定する判定過程と、前記判定過程で、前記仮想貨幣データが真正なものであると判定された場合に、前記元データに含まれる前記金額情報で特定される金額の決済を認める決済過程と、を含んでいる。
本願発明者は、上述の決済装置として、例えば汎用のコンピュータを機能させるためのコンピュータプログラムをも、本願発明の一態様として提案する。それは例えば、以下のようなものである。
そのコンピュータプログラムは、ネットワークを介してデータの受信を行うことができ、且つデータ処理を行うコンピュータを、決済装置として機能させるためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記コンピュータに、当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる仮想貨幣データを、決済を求める所定の装置からネットワークを介して受取る決済装置受信過程と、受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成する決済装置暗号化過程と、前記決済装置受信過程で受信された前記仮想貨幣データに含まれていた前記仮想貨幣暗号化データと、前記決済装置暗号化過程で生成された前記確認用暗号化データとを比較し、両者が一致した場合に当該仮想貨幣暗号化データが含まれていた前記仮想貨幣データが真正なものであると判定する判定過程と、前記判定過程で、前記仮想貨幣データが真正なものであると判定された場合に、前記元データに含まれる前記金額情報で特定される金額の決済を認める決済過程と、を実行させるためのコンピュータプログラムである。
本願発明者は、また、本願発明による仮想貨幣データのデータ構造を有する仮想貨幣データを生成するための仮想貨幣データ生成装置をも、本願発明の一態様として提案する。これによる効果は、本願発明による仮想貨幣データのデータ構造で説明した効果に等しい。
一例となる仮想貨幣データ生成装置は、仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する生成装置暗号化手段、を備えていることにより、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっている、仮想貨幣データ生成装置である。
仮想貨幣データ生成装置は、仮想貨幣暗号化データに暗号化条件データを付加する手段を更に備えていても構わない。その効果は、暗号化条件データを含む仮想貨幣データの効果に等しい。
仮想貨幣データ生成装置は、仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する生成装置暗号化手段、を備えていることにより、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっており、上述した決済装置と一体となっていても構わない。
本願発明者は、上述の仮想貨幣データ生成装置で実行される方法をも本願発明の一態様として提案する。その効果は、仮想貨幣データ生成装置による効果と等しい。それは例えば、以下のようなものである。
その方法は、コンピュータを含み、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっている、仮想貨幣データ生成装置で実行される方法である。
そしてその方法は、前記コンピュータが実行する、当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する過程、を含んでいることにより、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成する、方法である。
本願発明者は、上述の仮想貨幣データ生成装置として、例えば汎用のコンピュータを機能させるためのコンピュータプログラムをも、本願発明の一態様として提案する。それは例えば、以下のようなものである。
そのコンピュータプログラムは、コンピュータを、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっている、仮想貨幣データ生成装置として機能させるためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記コンピュータに、当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する過程、を実行させることにより、前記コンピュータに、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成させる、コンピュータプログラムである。
第1実施形態による決済システムの全体構成を示す図。 図1に示した決済システムに含まれるユーザ端末の外観を示す図。 図1に示した決済システムに含まれるユーザ端末のハードウェア構成を示す図。 図1に示した決済システムに含まれるユーザ端末の内部に生成される機能ブロックを示すブロック図。 図1に示した決済システムに含まれる決済装置のハードウェア構成を示す図。 図1に示した決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。 図1に示した決済システムに含まれる決済端末のハードウェア構成を示す図。 図1に示した決済システムに含まれる決済端末の内部に生成される機能ブロックを示すブロック図。 図1に示した決済システムで決済が行われるときに実行される処理の流れを示す図。 図1に示した決済システムに含まれるユーザ端末のディスプレイに表示される画像の一例を示す図。 図1に示した決済システムに含まれる決済装置内の信用情報記録部に記録されているデータの一部の内容を観念的に示す図。 (A)図1に示した決済システムで使用される仮想貨幣データに含まれる仮想貨幣暗号化データの元になる元データのデータ構造を観念的に示す図、(B)図1に示した決済システムで使用される仮想貨幣データのデータ構造を観念的に示す図。 図1に示した決済システムに含まれるユーザ端末のディスプレイに表示される画像の他の例を示す図。 図1に示した決済システムに含まれるユーザ端末のディスプレイに表示される画像の更に他の例を示す図。 変形例1の決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。 変形例2の決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。 第2実施形態の決済システムに含まれるユーザ端末の内部に生成される機能ブロックを示すブロック図。 第2実施形態の決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。 第2実施形態の決済システムで決済が行われるときに実行される処理の流れを示す図。 変形例3の決済システムに含まれるユーザ端末の内部に生成される機能ブロックを示すブロック図。 変形例3の決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。 変形例4の決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。 変形例4の決済システムで決済が行われるときに実行される処理の流れを示す図。 変形例5の決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。
以下、本発明の第1〜第2実施形態について説明する。各実施形態、変形例の説明で同じ対象には同一の符号を付すものとし、重複する説明は場合により省略するものとする。
また、特に矛盾がない限り、各実施形態と各変形例における構成は互いに組合せることが可能である。
≪第1実施形態≫
図1に、第1実施形態による決済システムの全体構成を概略で示す。
決済システムは、複数のユーザ端末100−1〜100−N(以後、単に、「ユーザ端末100」と記載する場合もある。)、決済装置200、及び複数の決済端末300−1〜300−n(以後、単に、「決済端末300」と記載する場合もある。)を含んで構成されている。これらはすべて、ネットワーク400に接続可能とされている。
ネットワーク400は、これには限られないが、この実施形態ではインターネットである。
ユーザ端末100は、本願発明の受信装置の一例であり、決済端末300は、本願発明の送信装置の一例であり、決済装置200は本願発明の決済装置及び仮想貨幣データ生成装置の一例にそれぞれ相当する。つまり、この実施形態における決済装置200は本願発明における決済装置と仮想貨幣データ生成装置とを兼ねており、この実施形態では仮想貨幣データは決済装置200にて生成されることになる。
これには限られないが、この実施形態では、後述する仮想貨幣データを用いての金銭の支払いは、ユーザ端末100の管理者(所有者)から、決済端末300の管理者(決済端末300を管理又は所有する者等)に対して行われることを原則とし、場合によっては一のユーザ端末100の管理者から他のユーザ端末100の管理者に対して行われる。
通常、ユーザ端末100は各ユーザの所有物である。ユーザ端末100は、コンピュータを含んでいる。ユーザ端末100は、携帯電話、スマートフォン、タブレット、ノート型パソコン、デスクトップ型パソコン等である。可搬であり、且つ後述するプログラムをインストールするのに向いているという点を考慮すれば、これらのうち、特に、スマートフォンかタブレットが、ユーザ端末100として用いるのに好ましい。スマートフォンは例えば、Apple Japan合同会社が製造、販売を行うiPhoneである。タブレットの例はApple Japan合同会社が製造、販売を行うiPadである。以下、これには限られないが、ユーザ端末100がスマートフォンであることとして話を進める。
この実施形態におけるユーザ端末100は少なくともデータの受信をすることが可能であることが必要であるが、データの送信をもできるものであっても良い。この実施形態におけるユーザ端末100はスマートフォンであるから、当然にデータの受信と送信の双方が可能である。
次に、ユーザ端末100の構成を説明する。各ユーザ端末100−1〜100−Nの構成は、本願発明との関連でいえば同じである。
ユーザ端末100の外観の一例を図2に示す。
ユーザ端末100は、ディスプレイ101を備えている。ディスプレイ101は、静止画又は動画を表示するためのものであり、公知、或いは周知のものを用いることができる。ディスプレイ101は例えば、液晶ディスプレイである。ユーザ端末100は、また入力装置102を備えている。入力装置102は、ユーザが所望の入力をユーザ端末100に対して行うためのものである。入力装置102は、公知或いは周知のものを用いることができる。この実施形態におけるユーザ端末100の入力装置102はボタン式のものとなっているが、これには限られず、テンキー、キーボード、トラックボール、マウスなどを用いることも可能である。また、ディスプレイ101がタッチパネルである場合、ディスプレイ101は入力装置102の機能を兼ねることになり、この実施形態ではそうされている。
入力装置102から入力されるデータは、いずれもその詳細を追って説明するが、例えば、仮想貨幣データの生成依頼についての生成依頼情報、仮想貨幣データの使用についての支払い情報、仮想貨幣データの譲渡についての譲渡情報、及びユーザIDである。
ユーザ端末100のハードウェア構成を、図3に示す。
ハードウェアには、CPU(central processing unit)111、ROM(read only memory)112、RAM(random access memory)113、インターフェイス114が含まれており、これらはバス116によって相互に接続されている。
CPU111は、演算を行う演算装置である。CPU111は、例えば、ROM112に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。なお、ここでいうコンピュータプログラムには、本願発明の受信装置としてこのユーザ端末100を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、ユーザ端末100にプリインストールされていたものであっても良いし、事後的にインストールされたものであっても良い。このコンピュータプログラムのユーザ端末100へのインストールは、メモリカード等の図示を省略の所定の記録媒体を介して行なわれても良いし、インターネットなどのネットワークを介して行なわれても構わない。
ROM112は、CPU111が後述する処理を実行するために必要なコンピュータプログラムやデータを記録している。ROM112に記録されたコンピュータプログラムは、これに限られず、ユーザ端末100がスマートフォンであれば、ユーザ端末100をスマートフォンとして機能させるために必要な、例えば、通話や電子メールを実行するためのコンピュータプログラムやデータが記録されている。ユーザ端末100は、また、ネットワーク400を介して受取ったデータに基づいて、ホームページを閲覧することも可能とされており、それを可能とするための公知のwebブラウザを実装している。
RAM113は、CPU111が処理を行うために必要なワーク領域を提供する。RAM113には後述する仮想貨幣データが記録される場合がある。
インターフェイス114は、バス116で接続されたCPU111やRAM113等と外部との間でデータのやり取りを行うものである。インターフェイス114には、上述のディスプレイ101と、入力装置102とが接続されている。入力装置102から入力された操作内容は、インターフェイス114からバス116に入力されるようになっているとともに、後述する画像データは、インターフェイス114から、ディスプレイ101に出力されるようになっている。インターフェイス114は、また、図示を省略する送受信部に接続されている。
送受信部は、インターネットであるネットワーク400を介してのデータの送受信を行うものである。かかる通信は、有線で行われる場合もあるが、ユーザ端末100がスマートフォンである場合には、かかる通信は通常無線で行われる。それが可能な限り、送受信部の構成は、公知或いは周知のものとすることができる。送受信部がネットワーク400から受取ったデータ(例えば仮想貨幣データ)は、インターフェイス114により受取られるようになっており、インターフェイス114から送受信部に渡されたデータ(例えば仮想貨幣データ)は、送受信部によって、ネットワーク400を介して外部、例えば、決済装置200に送られるようになっている。
CPU111がコンピュータプログラムを実行することにより、ユーザ端末100内部には、図4で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、ユーザ端末100を本願発明のユーザ端末として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、ユーザ端末100にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。
ユーザ端末100内には、本願発明の機能との関係で、以下のような制御部120が生成され、制御部120内に、主制御部121、表示制御部122、データ入出力部123、ユーザ端末記録部124が生成される。
制御部120は、以下に説明するような情報処理を実行する。
主制御部121は、制御部120内の全体的な制御を行う。例えば、主制御部121は、追って詳述するデータ入出力部123から受取ったデータに基づいて表示制御部122の制御を行う。
主制御部121は、追って説明するデータ入出力部123から、これも追って説明する仮想貨幣データを受取る場合がある。それを受取った場合、主制御部121は、それをユーザ端末記録部124又は表示制御部122に送るようになっている。主制御部121は後述するようにユーザ端末記録部124から仮想貨幣データを読み出す場合がある。それを読み出した主制御部121は仮想貨幣データに基づく表示を行わせるべく表示制御部122に指示を送るようになっており、また場合によってはそれをデータ入出力部123に送るようになっている。
主制御部121は、データ入出力部123から、入力装置102から入力された上述の生成依頼情報、支払い情報、又は譲渡情報を受取る場合があり、それらを受取ったとき、後述するような処理をそれぞれ行うようになっている。例えば、生成依頼情報を受取った場合、主制御部121は、それに必要な情報を付加して、データ入出力部123へ送るようになっている。必要な情報が付加された生成依頼情報は、データ入出力部123から送受信部へと送られ、送受信部からネットワーク400を介して決済装置200に送られるようになっている。
表示制御部122は、主制御部121の制御を受けつつ、ディスプレイ101に表示される画像の制御を行う。ディスプレイ101には、表示制御部122から送られたデータに基づく画像が表示される。主制御部121は、表示制御部122に対して、ディスプレイ101にどのような画像を表示させるべきかという指示を送る。
データ入出力部123は、制御部120へのデータの入出力を行うものである。具体的には、データ入出力部123は、入力装置102からの入力を受取るようになっている。入力装置102からデータ入出力部123へ入力されるのは、例えば、生成依頼情報、支払い情報、譲渡情報である。これらはデータ入出力部123から主制御部121に送られるようになっている。
また、データ入出力部123は、送受信部から、決済装置200等からネットワーク400を介して送られて来た仮想貨幣データを受取るようになっている。データ入出力部123は、受取った仮想貨幣データを、主制御部121に送るようになっている。
また、データ入出力部123は主制御部121から、仮想貨幣データを受取る場合がある。これを受取ったデータ入出力部123は、仮想貨幣データを送受信部に送るようになっており、仮想貨幣データは送受信部から例えば決済装置200に送られるようになっている。仮想貨幣データの送信先は、後述するように、入力装置102からの入力にしたがって、主制御部121によって指定される。
ユーザ端末記録部124は、上述したように、主制御部121がデータ入出力部123から仮想貨幣データを受取った場合、主制御部121から仮想貨幣データを受取りそれを記録するようになっている。ハードウェアとして捉えた場合、ユーザ端末記録部124は、RAM113の一部により構成されている。
また、ユーザ端末記録部124に記録されている仮想貨幣データは、後述するようなタイミングで主制御部121により読み出されることがある。
次に、決済装置200について説明する。
決済装置200は一般的なコンピュータであり、この実施形態ではより詳細には一般的なサーバ装置である。ハードウェア構成としては、従来の決済システムにおける決済装置と同等のもので良い。
決済装置200のハードウェア構成を、図5に示す。
ハードウェアには、CPU211、ROM212、RAM213、インターフェイス214、この実施形態ではHDD(hard disk drive)215である大容量記録媒体が含まれており、これらはバス216によって相互に接続されている。
CPU211は、演算を行う演算装置である。CPU211は、例えば、ROM212に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。なお、ここでいうコンピュータプログラムには、本願発明の決済装置(または、仮想貨幣データ生成装置)としてこの決済装置200を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、決済装置200にプリインストールされていたものであっても良いし、事後的にインストールされたものであっても良い。このコンピュータプログラムの決済装置200へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、インターネットなどのネットワークを介して行なわれても構わない。
ROM212は、CPU211が後述する処理を実行するために必要なコンピュータプログラムやデータを記録している。ROM212に記録されたコンピュータプログラムは、これに限られず、他の必要なコンピュータプログラムが記録されていても良い。
RAM213は、CPU211が処理を行うために必要なワーク領域を提供する。
インターフェイス214は、バス216で接続されたCPU211やRAM213等と外部との間でデータのやり取りを行うものである。インターフェイス214は、少なくとも送受信部に接続されている。送受信部がネットワーク400から受取ったデータは、インターフェイス214により受取られるようになっており、インターフェイス214から送受信部にわたされたデータは、送受信部によって、ネットワーク400を介して外部、例えば、ユーザ端末100に送られるようになっている。
HDD215は上述のように大容量記録媒体であり、データを記録する。CPU211が後述する処理を実行するために必要なコンピュータプログラムやデータの少なくとも一部は、ROM212でなくHDD215に記録されていてもよいし、その大部分がHDD215に記録されている方が実際的であろう。
CPU211がコンピュータプログラムを実行することにより、決済装置200内部には、図6で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、決済装置200を本願発明の決済装置として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、決済装置200にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。
決済装置200内には、本願発明の機能との関係で、以下のような制御部220が生成される。制御部220内には、データ入出力部221、主制御部222、仮想貨幣データ生成部223、基本データ記録部224A、信用情報記録部224B、第1記録部224C、決済判定部226が生成される。
データ入出力部221は、制御部220へのデータの入出力を行うものである。具体的には、データ入出力部221は、主制御部222から後述する種々のデータを受付けるようになっている。
例えば、データ入出力部221は、主制御部222から仮想貨幣データを受付けるようになっている。受取られた仮想貨幣データは、データ入出力部221から、送受信部に送られ、ネットワーク400を介してユーザ端末100に送られるようになっている。
データ入出力部221は、また、ネットワーク400を介してユーザ端末100又は決済端末300から送受信部が受取った後述する種々のデータを送受信部から受取り、受取ったそれらデータを主制御部222に送るようになっている。例えば、データ入出力部221は、送受信部から仮想貨幣データ、または生成依頼情報を受取る場合があり、それらのいずれかを受取ったデータ入出力部221はそれらを主制御部222に送るようになっている。
主制御部222は、制御部220内の全体的な制御を行う。例えば、後述する決済の処理を主制御部222は行うようになっており、また、仮想貨幣データ生成部223、決済判定部226等に後述するデータを送ることにより、必要な処理を行わせるようになっている。
主制御部222は、上述したように、データ入出力部221から、生成依頼情報を受取る場合があり、それを受取った主制御部222は、付されたデータとともにそれを仮想貨幣データ生成部223に送るようになっている。
主制御部222は、上述したように、データ入出力部221から、仮想貨幣データを受取る場合があり、それを受取った主制御部222は仮想貨幣データを決済判定部226に送るようになっている。なお、この場合に決済判定部226に送られるのは、仮想貨幣データに含まれていたデータのうち仮想貨幣暗号化データのみであっても良い。
主制御部222は、また、決済判定部226から、後述する最終判定データを受取る場合がある。最終判定データは、後述するように、決済を認めること、或いは決済を認めないことのいずれかを示すデータである。主制御部222は、決済を認めることを内容とする後述する肯定的な最終判定データを受取った場合、決済処理を行うようになっている。決済処理は、この実施形態では、仮想貨幣暗号化データを送ってきた決済端末300への金銭の支払いを認めるための処理である。主制御部222は、どのような決済を行ったかというデータを保持するようになっている。例えば、主制御部222は、誰(どの決済端末300の管理者等)への幾らの支払いを最終的に許可したのかという情報を、各決済端末300毎に図示せぬ記録媒体に記録するようになっている。
他方、決済を認めないことを内容とする後述する否定的な最終判定データを受取った場合、主制御部222は、決済を認めるための処理を行わない。
主制御部222は、また、後述する与信判定を行う機能を有している。与信判定を行う場合、これには限られないがこの実施形態における主制御部222は、信用情報記録部224Bに記録されているデータを用いる。信用情報記録部224Bに記録されているデータの詳細については後述する。
仮想貨幣データ生成部223は、上述したように、主制御部222から生成依頼情報を受取る場合がある。それに付加されたデータとともに生成依頼情報を受取った場合、仮想貨幣データ生成部223は、仮想貨幣データを生成するようになっている。仮想貨幣データ生成部223には、暗号化部223Aと、結合部223Bとが含まれている。暗号化部223Aは、元データ又は確認用元データを暗号化する等して、それらをそれぞれ仮想貨幣暗号化データ又は確認用暗号化データに変換する機能を有している。他方、結合部223Bは、仮想貨幣暗号化データに必要なデータを付加して仮想貨幣データにする機能を有している。
仮想貨幣データ生成部223は、仮想貨幣データを生成するに先立って、生成依頼情報に付加されたデータに基いて後述する元データを生成するようになっている。仮想貨幣データ生成部223は、また、その暗号化部223Aでかかる元データを暗号化するとともに、元データを暗号化して得られた文字列から、後述するような所定の規則にしたがって抜き出した文字列を生成する。これにより得られた文字列が仮想貨幣暗号化データである。仮想貨幣データは、仮想貨幣暗号化データに基いて生成される。仮想貨幣データ生成部223が、元データをどのようにして生成するのか、また、仮想貨幣データ生成部223における暗号化部223Aが仮想貨幣暗号化データをどのようにして生成するのか、及び結合部223Bが仮想貨幣データをどのようにして生成するかについての詳細については後述する。
これには限られないが、この実施形態における仮想貨幣データ生成部223は、仮想貨幣データを生成するにあたり、基本データ記録部224Aに記録されているデータを使用するようになっている。より正確には、仮想貨幣データ生成部223は、仮想貨幣データを生成するにあたり基本データ記録部224Aに記録されているデータのうち必要なものを読み出し、それを利用するようになっている。
生成した仮想貨幣データを、仮想貨幣データ生成部223は、主制御部222に送るようになっている。
基本データ記録部224Aには、仮想貨幣データを生成する場合に必要なデータが記録されている。基本データ記録部224Aに記録されているデータの詳細については追って述べる。
他方、仮想貨幣データ生成部223は、元データを生成したら、それを暗号化部223Aで暗号化する他、第1記録部224Cに記録するようになっている。第1記録部224Cに記録された元データは、内容的には元データから変更されることはないが、第1記録部224Cに記録された場合における元データを、確認用元データと称することにする。かかる処理は繰り返し行われるので、通常、第1記録部224Cには、確認用元データが、多数記録された状態となる。
仮想貨幣データ生成部223は、また、決済判定部226から、確認用暗号化データの生成の依頼を受けることがある。かかる依頼を受けたら仮想貨幣データ生成部223は、第1記録部224Cから確認用元データを読み出し、それを暗号化して確認用暗号化データを生成するようになっている。確認用暗号化データの生成方法については後述する。なお、生成された確認用暗号化データを、仮想貨幣データ生成部223は、決済判定部226に送るようになっている。
決済判定部226は、上述したように、主制御部222から、仮想貨幣データ(又は仮想貨幣暗号化データ)を受取る場合がある。
仮想貨幣データ(又は仮想貨幣暗号化データ)を受取った場合、決済判定部226は、決済を認めて良いか否かについての判定である決済判定を行う。その結果、決済判定部226は、決済を認めること、及び決済を認めないことのいずれかの内容を含むデータである最終判定データを生成するようになっている。決済判定部226は、後述のように、基本データ記録部224Aに記録されていたデータをかかる判定を行う場合に利用する場合がある。最終判定データをどのようにして決済判定部226が生成するかについては後述するものとするが、この実施形態における決済判定部226は、最終判定を行うに先立って、暗号化部223Aに、確認用暗号化データの生成の依頼を行う。決済判定部226は、その依頼に基いて暗号化部223Aが生成して暗号化部223Aから決済判定部226に供給された確認用暗号化データを、最終判定に用いるようになっている。
最終判定データを生成したら、決済判定部226はそれを主制御部222に対して送るようになっている。
次に、決済端末300について説明する。
決済端末300は、クレジットカードを用いた決済システムで用いられていた決済端末と同様の役割を担うものであり、一般的なコンピュータである。例えば、決済端末300はタブレットにより構成されているものとする。
図2と同様であるからその外観の図示を省略するが、決済端末300は、図示を省略のタッチパネル式のディスプレイを備えている。結果として、決済端末300は、ディスプレイと、入力装置を備えることになる。もっとも、これに代えて、決済端末300は、タッチパネル式でないディスプレイと、テンキー、キーボード、マウス、トラックボール等の公知又は周知の入力装置のうちから必要なものを選択してなる入力装置とを備えていても、換言すれば、ディスプレイと入力装置とを別個のものとして備えていても良い。とりあえず、この実施形態の決済システムはタッチパネル式のディスプレイを備えるものとして以下、話を進める。
また、決済端末300は図示せぬカメラを備えている。カメラは、外付けでも良いが、タブレットである決済端末300は一般に、公知の内蔵のカメラを備えており、この実施形態でもそうなっている。
決済端末300のハードウェア構成を、図7に示す。
ハードウェアには、CPU311、ROM312、RAM313、インターフェイス314が含まれており、これらはバス316によって相互に接続されている。
CPU311は、演算を行う演算装置である。CPU311は、例えば、ROM312に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。このコンピュータプログラムは、決済端末300にプリインストールされていたものであっても良いし、事後的にインストールされたものであっても良い。このコンピュータプログラムの決済端末300へのインストールは、メモリカード等の所定の記録媒体を介して行われても良いし、LAN或いはインターネットなどのネットワークを介して行なわれても構わない。
ROM312は、CPU311が後述する処理を実行するために必要な、言い換えれば、このコンピュータを本願発明における送信装置として機能させるためのコンピュータプログラムやデータを記録している。ROM312に記録されたコンピュータプログラムは、これに限られず、他の必要なコンピュータプログラムが記録されていても良い。
RAM313は、CPU311が処理を行うために必要なワーク領域を提供する。
インターフェイス314は、バス316で接続されたCPU311やRAM313等と外部との間でデータのやり取りを行うものである。インターフェイス314は、少なくとも図示を省略の送受信部に接続されている。送受信部はネットワーク400に対して接続されており、少なくともネットワーク400を介したデータの送信を行えるようになっていればよいが、この実施形態ではネットワーク400を介してのデータの送信と受信の双方を行えるようになっている。インターフェイス314から送受信部に渡されたデータは、送受信部によって、ネットワーク400を介して外部、例えば、決済装置200に送られるようになっている。インターフェイス314から出力され送受信部から送信されるデータは、この実施形態との関係では主に仮想貨幣データである。
インターフェイス314は、また、タッチパネル式ディスプレイに設けられた入力装置に接続されており、入力装置からの入力を受付けるようになっている。インターフェイス314は、タッチパネル式ディスプレイに接続されており、タッチパネル式のディスプレイに後述する画像を表示するためのデータを送るようになっている。入力装置からインターフェイス314に入力されるデータは、例えば、決済の開始を指示するデータ、後述する決済端末ID等である。
インターフェイス314は、また、上述するカメラと接続されている。カメラからインターフェイス314に入力されるのは、仮想貨幣データを特定するための画像を含む画像データである。若干正確性を欠くが、事実上、インターフェイス314には、カメラから仮想貨幣データが入力される。
ハードウェアに大容量記録媒体が含まれて良いこと、それが存在する場合の機能は既に述べたとおりである。
CPU311がコンピュータプログラムを実行することにより、決済端末300内部には、図8で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、決済端末300を本願発明の決済端末として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、決済端末300にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。
決済端末300内には、本願発明の機能との関係で、以下のような制御部320が生成され、制御部320内に、主制御部321、表示制御部322、データ入出力部323が生成される。
制御部320は、以下に説明するような情報処理を実行する。
主制御部321は、制御部320内の全体的な制御を行う。例えば、主制御部321は、追って詳述するデータ入出力部323から受取ったデータに基づいて表示制御部322の制御を行う。
主制御部321は、追って説明するデータ入出力部323から、仮想貨幣データを受取るようになっている。各決済端末300の主制御部321は各決済端末300毎にユニークな決済端末IDを記録している。主制御部321は、受取った仮想貨幣データに決済端末IDのデータを付してデータ入出力部323に送るようになっている。
表示制御部322は、主制御部321の制御を受けつつ、タッチパネル式とされた上述のディスプレイに表示される画像の制御を行う。ディスプレイには、表示制御部322から送られたデータに基づく画像が表示される。主制御部321は、表示制御部322に対して、ディスプレイにどのような画像を表示させるべきかという指示を送る。
データ入出力部323は、制御部320へのデータの入出力を行うものである。
具体的には、データ入出力部323は、入力装置からの入力を受取り、それを主制御部321に送るようになっている。入力装置からデータ入出力部323へ入力されるデータの例は、決済の開始を指示するデータがある。また、上述の決済端末IDが入力される場合もある。また、データ入出力部323には、カメラで撮像された仮想貨幣データを含む画像データが入力される場合もある。
また、データ入出力部323は、図示を省略の送受信部に対して、データを出力するようになっている。送受信部に対して出力されるデータは、主制御部321から送られてきた仮想貨幣データである。この仮想貨幣データには、決済端末IDが付されている。送受信部に対して出力されたデータは、送受信部から決済装置200に対してネットワーク400を介して送信される。
次に以上のような決済システムの使用方法、及び動作について図9を参照しながら説明する。
まず、かかるシステムを使用するための準備として、各ユーザ端末100において、ユーザIDの設定を行うとともに、各決済端末300において、決済端末IDの設定を行う。
ユーザIDは、各ユーザ端末100を識別するための、各ユーザ端末100においてユニークなIDであり、一般的には英字、数字、記号の羅列である。決済端末IDも同様である。多数のユーザIDが重複しないようにするために、各ユーザ端末100に対するユーザIDを決済装置200(或いはその管理者等)が発行するようにしてもよい。決済端末IDについても同様である。或いは、ユーザ端末100のハードウェアに出荷時から埋め込まれている個体識別番号をユーザIDとして利用することもできる。決済端末IDについても同様である。
各ユーザ端末100の管理者は、その入力装置102を操作することにより当該ユーザ端末100についてのユーザIDの入力を行う。なお、個体識別番号をユーザIDとして用いる場合には、かかる入力は不要である。ユーザIDのデータは、入力装置102から、インターフェイス114に送られ、インターフェイス114から制御部120に送られる。制御部120のデータ入出力部123はこれを受取り、主制御部121に送る。主制御部121は、それを保持する、或いは主制御部121内に記録する。
他方、主制御部121は、ユーザIDのデータをデータ入出力部123へと送る。ユーザIDのデータは、そこから送受信部へと送られ、ネットワーク400を介して決済装置200へと送られる。
決済装置200は、その送受信部でユーザIDのデータを受取る。ユーザIDのデータは、送受信部からインターフェイス214に送られ、インターフェイス214から制御部220に送られる。制御部220のデータ入出力部221はこれを受取り、主制御部222に送る。主制御部222は、それを保持する、或いは主制御部222内に記録する。この処理をすべてのユーザ端末100が行うことにより、主制御部222は、すべてのユーザ端末100のリストを持つことになる。かかるリストは、誰(どのユーザ端末100の所有者)のために仮想貨幣データを生成するのか、ということを決済装置200が特定するために用いられる。
各決済端末300の管理者は、その入力装置を操作することにより当該決済端末300についての決済端末IDの入力を行う。決済端末IDのデータは、入力装置から、インターフェイス314に送られ、インターフェイス314から制御部320に送られる。制御部320のデータ入出力部323はこれを受取り、主制御部321に送る。主制御部321は、それを保持する、或いは主制御部321内に記録する。
他方、主制御部321は、決済端末IDのデータをデータ入出力部323へと送る。決済端末IDのデータは、そこから送受信部へと送られ、ネットワーク400を介して決済装置200へと送られる。
決済装置200は、その送受信部で決済端末IDのデータを受取る。決済端末IDのデータは、送受信部からインターフェイス214に送られ、インターフェイス214から制御部220に送られる。制御部220のデータ入出力部221はこれを受取り、主制御部222に送る。主制御部222は、それを保持する、或いは主制御部222内に記録する。この処理をすべての決済端末300が行うことにより、主制御部222は、すべての決済端末300のリストを持つことになる。かかるリストは、誰(どの決済端末300の管理者)に対しての支払い(決済)を認めるか、ということを決済装置200が特定するために用いられる。
まず、仮想貨幣データが生成される。
これには限られないが、この実施形態では、仮想貨幣データの生成は、生成依頼情報の生成をユーザが開始するところから始まる(S911)。
生成依頼情報の生成を開始するには、例えば、ユーザは、ディスプレイ101上に表示されている図示を省略のアイコンにタッチすればよい。そうすると、その操作内容が入力装置102からインターフェイス114、データ入出力部123を介して主制御部121に送られ、生成依頼情報の生成が開示される。
生成依頼情報は、ユーザがユーザ端末100の入力装置102を操作することによって生成する。生成依頼情報には、ユーザIDと、ユーザが支払いに用いようとする金額を特定する金額情報が少なくとも付加される。
生成依頼情報の生成が開始されると、主制御部121は、表示制御部122に対して、ユーザID等の入力をユーザに促すような画像をディスプレイ101に表示せよとの指示を送る。この指示を受付けた表示制御部122は、ディスプレイ101に、例えば、図10(A)の如き、ユーザに対して、ユーザIDと、ユーザが支払いを行おうとする金額と、の入力を促す画像を表示する。ユーザは、ユーザIDと示された部分の右側にユーザIDを、金額(円)と示された部分の右側に自分が支払おうとする金額をそれぞれ入力する(S912)。ここでは、金額の単位は円であるが、金額の単位はこれには限られず、金額の単位は法定通貨の単位であるか否かを問わない。ユーザが入力したユーザIDと金額を特定するための情報である金額情報とについてのデータは、入力装置102からインターフェイス114を介してデータ入出力部123に入力され、主制御部121に送られる。ユーザが入力したユーザIDと金額情報は、入力中も含めて、主制御部121に制御された表示制御部122の制御によってディスプレイ101に表示されるから、ユーザは、ディスプレイ101を確認しながら、ユーザIDと金額情報との入力を行うことができる。図10(B)に示した例によれば、ユーザは、この決済システムを用いて、25000円の支払いを行おうとしている。
ユーザIDと金額情報の入力が終わったら、ユーザは、ディスプレイ101に表示された「決定」と書かれたボタンをクリックする。
「決定」と書かれたボタンをユーザがクリックすると、ユーザIDと金額情報とが、データ入出力部123から主制御部121に送られる。主制御部121は、ユーザIDと金額情報とを生成依頼情報に付加する。なお、生成依頼情報には、他の情報が付加されていても良い。
生成依頼情報は、ユーザID及び金額情報とともに主制御部121からデータ入出力部123に送られ、データ入出力部123から送受信部に送られる。生成依頼情報は付加された情報とともに、送受信部からネットワーク400を介して、決済装置200に送られる(S913)。
なお、以後もそうであるが、この実施形態において、ネットワーク400を介して行われる通信はすべて、暗号化通信であってもよい。この場合の暗号化、及び復号化に用いられる技術は公知、或いは周知のものとすることができる。
決済装置200は、その送受信部で、付加された情報とともに生成依頼情報のデータを受付ける(S921)。送受信部は生成依頼情報のデータを、付加された情報とともにデータ入出力部221に送り、データ入出力部221はそれらデータを主制御部222に送る。
必ずしもこの限りではないが、この実施形態における主制御部222は、ここで、ユーザIDで特定されるユーザ端末100に対して仮想貨幣データを生成して良いか否かの判定である与信判定を行う(S922)。後述するように、特に問題なければ、決済装置200はユーザ端末100に対して仮想貨幣データを発行することになるが、仮想貨幣データは金銭的な価値のあるデータなのであるから、そのようなデータを生成依頼情報を送ってきたユーザに発行して良いか否かの判定を行うのである。かかる与信判定を行うことにより、その後に発行される仮想貨幣データの信用力が向上する。
これには限られないが、この実施形態では、与信判定には、信用情報記録部224Bに記録されているデータを用いる。これには限られないが、この実施形態における信用情報記録部224Bには、各ユーザについての入金口座の残高が記録されている。各ユーザの入金口座は、例えば図11(A)に示したように、ユーザIDと紐付けられている。各ユーザの入金口座の残高は、各ユーザが予め決済装置200の管理者等に支払った金額(複数回の場合もある)から、後述したようにして信用情報を発生させるために使用された金額を除した金額とされるようになっている。図11(A)によれば、ユーザIDがd2af1apfaであるユーザの入金口座の残高は100000円である。ユーザIDに紐付けられているこの入金口座の残高を主制御部222は、信用情報記録部224Bから読み出す。
主制御部222は、例えば、金額情報で特定される金額と読み出された入金口座残高との大小を比較することにより与信判定を行う。例えば、金額情報で特定される金額の方がその時点における入金口座の残高よりも小さい場合に、主制御部222は与信を認めるようにすることができる。主制御部222は、与信を認めた場合には、例えば、その入金口座の残高から金額情報で特定される金額(この実施形態であれば25000円)を除して、その除した金額を決済装置200の管理者等の管理する口座に移す。そうすることにより、決済装置200の管理者等は、その金額情報で特定される金額の支払を追って行うことができるようになるため、或いは支払の責任を負うことができるようになるため、決済装置200の管理者が追って必ず支払いを行う責任を追うような仕組みづくりを行うか否かはさておき、その金額情報で特定される価値を有することになる、後述するようにして生成される仮想貨幣データは、その信頼性が極めて高いものとなる。この場合の入金口座に入れられていた金額の金銭、或いはそこから決済装置200の管理者等の口座に移された金銭は、仮想貨幣データに対するデポジット或いは担保の如き性格を持つことになるか、又は担保、或いはデポジットそのものとなる。
なお、主制御部222が、金額情報で特定される金額の方がその時点における入金口座残高よりも小さい場合に与信を認めるようにするという与信の判定方法はあくまでも一例であり、例えば、金額情報で特定される金額の8割とか5割の金額がその時点における入金口座の残高よりも小さい場合に与信を認めるとか、他のルールを定めることももちろん可能である。例えば、金額情報で特定される金額の8割の金額がその時点における入金口座の残高よりも小さい場合に与信を認めるとした場合には、主制御部222はその8割の金額を入金口座の残高から除することもできるし、金額情報で特定される金額そのものを入金口座の残高から除することもできる。また、仮想貨幣データを生成する場合によって(例えば、時期やユーザの別によって)異なるルールを適用することも可能である。
或いは、決済装置200は、ユーザ端末100が生成依頼情報を決済装置200に送った場合に、それを送ってきたユーザ端末100を操作するユーザに対して生成依頼情報に含めて送信してきた金額情報で特定される金額(或いはその8割とか、5割とかのその金額の一部の金額)の支払いを促すようになっているとともに、その金額をユーザが、例えばユーザ端末100からのクレジットカードによる支払い(かかるクレジットカードのオンラインによる支払は、公知或いは周知である)により決済装置200の管理者に支払ったことが確認された場合に、決済装置200の主制御部222がユーザの与信が認められると判定するようになっていても良い。この場合においても、決済装置200の管理者等の口座には、上述の例の場合と同様に、デポジット或いは担保としての性質を持つ金銭が蓄積されることになる。
いずれにせよ、主制御部222は、ユーザの与信が認められた場合には、信用情報を生成し、ユーザが送ってきた生成依頼情報に付加されていたユーザIDと金額情報に、信用情報を付加して仮想貨幣データ生成部223に送る。
この実施形態における信用情報は、「25000円という現金を決済装置200の管理者等が預かっている」という情報、或いは単に「25000円」という情報であっても良い。より細かく設定するのであれば、決済装置200の管理者等が預かった金銭(例えば紙幣)の現物が存在するのであれば、その紙幣の記番号を更に付す、或いはその紙幣の例えば一部の画像を更に付す等の工夫を行うことも可能である。この実施形態では、決済装置200等の管理者が幾らの金銭を預かっているかということを示す、この実施形態の例でいえば「25000円」という情報が信用情報であるものとする。
ユーザID、金額情報、及び信用情報を受取った仮想貨幣データ生成部223は、仮想貨幣データを生成する(S923)。
仮想貨幣データを生成するに先立って、仮想貨幣データ生成部223は元データを生成する。元データは少なくとも金額情報を含む平文のデータである。この実施形態における元データには、これには限られないが、金額情報に加え、発行主体情報、及び信用情報が含まれる。
上述したように、仮想貨幣データ生成部223は、仮想貨幣データを生成するにあたり、基本データ記録部224Aに記録されているデータを必要に応じて利用する。仮想貨幣データの生成方法を説明するために、まず、基本データ記録部224Aに記録されているデータについて説明する。
この実施形態における基本データ記録部224Aに記録されているデータは、発行主体情報となり得る情報である。
発行主体情報は、仮想貨幣データの発行者についての情報を含む情報であり、概ね仮想貨幣データの発行の経緯を示す情報であるといえる。発行主体情報となり得る情報は例えば、仮想貨幣データの発行者を特定する発行者情報であり、仮想貨幣データの発行者たる決済装置200を特定するための情報であり、これは例えば、決済装置200のIPアドレスである。なお、生成依頼情報の発信者を発行者とすることも可能であり、その場合には、発行者情報は、ユーザ端末100のIPアドレスやユーザIDとなる。発行主体情報となり得る情報の他の例は、仮想貨幣データの真正さを保証する権限を持つ者である、例えば、政府機関が発行した仮想貨幣データの真正さを保証する情報である認証用情報である。発行主体情報となり得る情報の更に他の例は、仮想貨幣データを他の仮想貨幣データから区別するための各仮想貨幣データにユニークな情報である記番号情報である。発行主体情報に他の情報が含まれていても良いし、後述するように、基本データ記録部224Aに記録されていないデータが含まれても構わない。これらのうち必須なのは、仮想貨幣データの発行者(この実施形態では、それはユーザ端末100であるものとする。)を特定するための情報のみである。また、認証用情報、記番号情報以外の情報が発行主体情報となり得る情報として基本データ記録部224Aに記録されていても構わない。
上述の記番号情報について補足する。記番号情報は、記番号についての情報である。例えば、日本国の政府(正確には日本銀行)が発行する紙幣には、数字とアルファベットの羅列である、其々の紙幣にユニークな記番号が記録されている。それと同様に、過去に発行された仮想貨幣データと新たに発行される仮想貨幣データとを区別させるために、元データには記番号情報が含まれることがある。記番号情報は、日本国の政府が発行する紙幣に印刷された記番号と同様に、例えば、16進法で表記された、1から始まる多数桁(例えば、1000桁)の連番の番号である。記番号情報として基本データ記録部224Aに記録されているのは、その直前に発行された仮想貨幣データに含まれることになった記番号情報の次の記番号情報である。記番号情報は、後述するようにして、書換えられる。
金額情報等を受取った仮想貨幣データ生成部223は、仮想貨幣データを生成するにあたって、基本データ記録部224Aに記録されていた、発行主体情報となり得る情報を読み出す。そして、必ずしもこの順序でなければならないわけではないが、発行主体情報、金額情報、信用情報が結合されたデータである元データ(図12(A))を生成する。
この実施形態における発行主体情報には、これには限られないが、仮想貨幣データの発行者たる決済装置200を特定するための情報である発行者情報、認証用情報、記番号情報、及びタイミング情報が含まれる。仮想貨幣データ生成部223は、記番号情報を読み出すと、基本データ記録部224Aに記録されていた記番号情報を「+1」して上書きする。これにより、記番号情報は常に最新の状態に保たれる。また、タイミング情報は、仮想貨幣データ生成部223がかかる仮想貨幣データを生成した日時(例えば、金額情報等を仮想貨幣データ生成部223が受取った時刻)を例えば秒単位で示すものである。これを可能とするため、仮想貨幣データ生成部223は、決済装置200が備える図外の時計から、日付、及び時刻に関する情報を常に受け取っている。
この実施形態における金額情報は、上述のように25000円という金額を特定する情報である。
そして、図12(A)に示された元データは、仮想貨幣データ生成部223内の暗号化部223Aによって暗号化される。ここで行われる暗号化の処理は、必ずしも後の復号化が可能な可逆なものである必要はないが、この実施形態では、必ずしもこの限りではないが、可逆なものであるとする。暗号化を実行することによってある桁数の文字列が得られる。暗号化部223Aは更に、その文字列から所定の規則にしたがって一部の文字を抜き出し新たな文字列を生成する。元データを暗号化して得られる文字列は、ある程度長い例えば1000桁以上の文字列となるようになっている。暗号化部223Aが、元データを暗号化して得られる文字列から、その一部を抜き出すための規則は、例えば、元データを暗号化して得られる文字列が仮に2000桁であるとした場合に、その文字列から偶数桁又は奇数桁のみを抜き出す、その前、後、或いは中間の例えば1000桁程度の適当な桁数を抜き出す、英文字、数字、記号混じりの文字列から、英文字のみ、数字のみ、或いは英文字と数字のみを抜き出す、英文字、数字、記号混じりの文字列から、英文字のみ、数字のみ、或いは英文字と数字のみを所定の桁数だけ抜き出す、というようなものとすることができる。これにより最終的に得られた文字列が、仮想貨幣暗号化データである。
仮想貨幣データ生成部223では、多数のユーザからの多数の要求によって仮想貨幣データが次々と生成されることになる。なお、説明のため図12(B)では、データ構造のうち暗号化された部分(正確には、元データを暗号化して得られた文字列から更に所定の規則にしたがって抜き出した文字列に相当する部分。かかる部分は、結果的に、元データを暗号化して得られた文字列と同様に、可読でない状態となっている。)に網掛けを行うものとする。これには限られないが、この実施形態では、仮想貨幣データの生成の過程で実行される暗号化の手法は、どの仮想貨幣データを生成する場合も同じであるものとする。この実施形態では、暗号化に用いられるアルゴリズム及び鍵を不変とすることにより、どの仮想貨幣データを生成する場合でも暗号化の手法が同一となるようにしている。
ところで、上述したように、この実施形態においては、暗号化の対象となる元データの中に変化することを前提とした記番号情報とタイミング情報とが含まれている。特に記番号情報は2つとして同じものが無い。したがって、仮想貨幣暗号化データにも2つとして同じものは存在しないことになる。仮想貨幣暗号化データは、英字、数字、記号或いはこれらの2つ以上の組合せであって、ある程度以上の桁数の文字等の羅列となる。
暗号化部223Aが仮想貨幣暗号化データを生成すると、仮想貨幣暗号化データは結合部223Bへ送られる。結合部223Bは、仮想貨幣暗号化データに、当該仮想貨幣暗号化データに暗号化されて含まれている元データのうちの予め定められたもの、つまり、元データに含まれた発行主体情報、金額情報、及び信用情報のうち予め定められたものを、仮想貨幣暗号化データに平文のまま結合する。仮想貨幣暗号化データに平文の上記データが結合されたものが仮想貨幣データである。仮想貨幣暗号化データに付加される情報は、発行主体情報、金額情報、及び信用情報のうちの一部でも全部でも良いし、更にはそれ以外の情報が含まれても良いが、この実施形態では、記番号情報と、金額情報であるものとする。平文のままの記番号情報と、金額情報は、決済装置200だけでなく、ユーザ端末100でも、決済端末300でも、特別な処理を施すことなく、その内容を把握する(可読であるから読取ってその内容を理解する)ことが可能なものとなっている。悪意ある第三者が仮想貨幣データを入手した場合、当該悪意ある第三者も、平文のかかるデータを読取り可能であるものの、仮想貨幣暗号化データに暗号化して含まれているデータの内容すべてを把握できないため、仮想貨幣データの悪用は難しい。
生成された、仮想貨幣データは、仮想貨幣データ生成部223から主制御部222に送られる。
仮想貨幣データを受取った主制御部222は、その仮想貨幣データと、その仮想貨幣データに含まれる仮想貨幣暗号化データに暗号化した状態で含まれている信用情報との対応関係を把握できるような状態で、当該信用情報を、信用情報記録部224Bに記録する。上述したように信用情報はそもそも主制御部222で生成されるものであり、主制御部222から仮想貨幣データ生成部223に送られるが、他方、主制御部222は、仮想貨幣データ生成部223から仮想貨幣データが送り返されるまで、信用情報を保持している。そして、主制御部222は、その保持していた信用情報を、暗号化したその信用情報がその仮想貨幣暗号化データに含まれていた仮想貨幣データに含まれていた記番号と紐付けて、信用情報記録部224Bに記録する。図11(B)に示されたように、信用情報記録部224Bには、記番号と、信用情報とが互いに紐付けられて記録されることになる。なお、信用情報記録部224Bに記録されるべきかかる情報は、各仮想貨幣データと、各仮想貨幣データの信用を基礎づける信用情報とであって、それらの対応関係を把握できる状態とされたものである。したがって、信用情報と対応付けて記録されるべき情報は、記番号でなく、例えば、仮想貨幣データそのものであっても良いし、仮想貨幣暗号化データであっても良い。
主制御部222は、また、その仮想貨幣データを生成することの申し込みであった生成依頼情報に付されていたユーザIDによって特定されるユーザ端末100にそれを返送せよという指示を付して、仮想貨幣データをデータ入出力部221へ送る。仮想貨幣データは、更に送受信部に送られ、ネットワーク400を介して、ユーザIDによって特定されるユーザ端末100へと送られる(S924)。
ユーザ端末100の送受信部は、送られてきた仮想貨幣データを受取る(S914)。受取られた仮想貨幣データは、データ入出力部123から、主制御部121に送られる。
この状態で、仮想貨幣データは使用できるようになる。つまり、そのユーザ端末100の所有者たるユーザが第三者に対してその仮想貨幣データを用いて支払いを行える状態となる。ユーザは、その仮想貨幣データを保存するための操作を入力装置102によって行う。そうすると、その旨の操作内容が入力装置102から、インターフェイス114、データ入出力部123を介して主制御部121に対して送られる。仮想貨幣データは、主制御部121からユーザ端末記録部124に送られて、ハードウェアとして見ればRAM113の一部であるユーザ端末記録部124に記録される。同じユーザが自らのユーザ端末100に複数の仮想貨幣データを保存することももちろん可能である。その場合には、複数の仮想貨幣データが、ユーザ端末記録部124に記録されることになる。
ユーザは、ユーザ端末100に保存された仮想貨幣データをいつでも支払いのために使用することができる。ユーザが仮想貨幣データを使用したいと思ったときは、ユーザはユーザ端末100の入力装置102を操作して、その旨の入力を行う。かかる入力は、インターフェイス114、データ入出力部123を介して主制御部121に入力される。その入力を受けた主制御部121は、ユーザ端末記録部124から仮想貨幣データを例えばすべて読み出し、そのデータに基いて、表示制御部122に対して、図13に示したような画像をディスプレイに表示せよとの指示を送る。
図13に示したように、ディスプレイ101には、複数の仮想貨幣データが、それらのうちの1つを選択可能に表示される。四角の枠で囲まれた金額を含む表示の一つ一つがそれぞれ、仮想貨幣データに対応している。仮想貨幣データのデータは上述のように、暗号化された仮想貨幣暗号化データと、それぞれ平文の記番号情報、及び金額情報を含んでいる。平文の情報をユーザ端末100は読むことができるので、ユーザ端末100は、そのディスプレイ101に、各仮想貨幣データに対応する画像として、平文で記載されている情報に基づく情報を表示することができる。この実施形態では、これには限られないが、金額情報によって特定される金額と、記番号についての情報とがディスプレイ101に表示されるようになっている。なお、ディスプレイ101に表示される画像には、平文で記載されたデータのすべてに基づく表示を含めることが可能であるが、もちろん、平文で記載されたデータのすべてに基づく表示を含める必要はないし平文で記載されたデータに基づく表示をまったく行わなくても構わない。
ユーザは、ディスプレイ101が兼ねる入力装置102を操作して、支払いに用いる仮想貨幣データを選択する。かかる入力は、既述のようにして主制御部121に入力される。そうすると、ディスプレイ101の表示は、図14に示したように切り替わる。主制御部121の制御下で、表示制御部122がディスプレイ101に表示するのは、仮想貨幣データに対応した(或いは仮想貨幣暗号化データを可逆に変換した)表示であり、より詳細には、仮想貨幣データを二次元バーコードに変換した表示である。かかる二次元バーコードに含まれる情報は最低でも、仮想貨幣暗号化データに対応したものである必要があるが、この実施形態では、仮想貨幣データの全体に対応したものとされる。
ユーザは、支払いを行う相手側である、例えば店舗の店員が管理する決済端末300に対して、ユーザ端末100から仮想貨幣データを引き渡す(S915)。
仮想貨幣データの引き渡しは、ユーザ端末100のディスプレイ101に表示されている二次元バーコードを、決済端末300が備えるカメラで撮像することによって行われる。撮像された画像のデータは、決済端末300のカメラからインターフェイス314を介して、データ入出力部323に送られ、そこから主制御部321に送られる。主制御部321は、その画像データに写った二次元バーコードから、仮想貨幣データを生成する。これにより、ユーザ端末100から決済端末300に仮想貨幣データが引渡される(S931)。
なお、この実施形態では、二次元バーコードの読取りによってユーザ端末100から決済端末300へと仮想貨幣データの引き渡しが行われるものとしているが、二次元バーコードはもちろん一次元バーコードその他の識別子によってそれを実現することとしてもよい。更には、そのような識別子の読取りによってユーザ端末100から決済端末300へと仮想貨幣データの引き渡しを実現する必要もなく、ブルートゥース(商標)その他の通信によって仮想貨幣データ自体を送信することにより、それを実現してもよい。極端なことを言えばユーザが口頭で決済端末300の管理者等に伝えることにより、或いは仮想貨幣データをディスプレイ101に表示し決済端末300の管理者等に見せることにより、それを実現しても良い。これらの場合は、例えば入力装置による手入力で決済端末300の管理者等は、決済端末300に仮想貨幣データを入力することになろう。
いずれにせよ、主制御部321は一時的に、例えば、少なくともその仮想貨幣データによる支払いが終了するまで、仮想貨幣データを記録する。かかる記録は、ハードウェアとしては、RAM313上に行われる。上述したように、仮想貨幣データのうち、平文で記述されている記番号情報、金額情報を決済端末300は読むことができる。したがって、主制御部321は、その表示制御部322に対し、それら情報によって特定される図14に示された如き情報を、そのディスプレイに表示させることが可能である。例えば、金額情報によって特定される金額を表示させることにより、決済端末300の管理者等は、支払いが行われようとしている金額を確認することができるであろう。その支払が不適切であれば、決済端末300の管理者等は、ユーザから他の仮想貨幣データの提供を受ければ良い。
ユーザから受取った仮想貨幣データが適切なものであるのであれば、決済端末300の管理者等は、決済端末300の入力装置を操作して、仮想貨幣データを決済装置200に送るための操作を行う。
かかる操作を行うと、入力装置から、データ入出力部323を介して主制御部321に、その操作内容が送られる。かかる入力がなされると、主制御部321は、仮想貨幣データに対して決済端末IDを付したデータを、データ入出力部323に対して送る。データ入出力部323は、それらデータを、送受信部に送り、送受信部はそれらデータを、ネットワーク400を介して決済装置200に送る(S932)。このとき、決済端末IDとともに、少なくとも仮想貨幣暗号化データが決済装置200に送られる必要があるが、この実施形態では、決済端末IDとともに、仮想貨幣データの全体が決済装置200に送られる。
以上のようにして、決済装置200で生成された仮想貨幣データは、ネットワーク400を介してユーザ端末100に送られ、何らかの方法によってユーザ端末100から決済端末300へと引き渡され、そしてネットワーク400を介して決済端末300から決済装置200へと戻ってくる。
他方、決済装置200からユーザ端末100へと仮想貨幣データが送られるのと並行して、決済装置200では以下のような処理が実行される。
上述のように決済装置200の仮想貨幣データ生成部223では、まず元データが生成され、そして、その元データに基いて、仮想貨幣データ生成部223内の暗号化部223Aで仮想貨幣暗号化データが生成された。仮想貨幣データ生成部223は、図12(A)に示した元データを確認用元データとして、第1記録部224Cに送り、第1記録部224Cに記録する(S925)。通常かかる処理は繰り返し行われるので、第1記録部224Cには、確認用元データが、多数記録された状態となる。
なお、かかる第1記録部224Cへの元データの記録が行われるタイミングは、仮想貨幣データのユーザ端末100への送信の前後を問わない。
話を戻す。上述のように、仮想貨幣データは、決済端末300からネットワーク400を介して決済装置200へと送られる(S932)。
決済装置200は、その送受信部で、決済端末IDのデータと仮想貨幣データとを受取る(S926)。これらデータは、インターフェイス214、データ入出力部221を介して主制御部222に送られる。
それらを受取った主制御部222は、決済端末IDのデータと仮想貨幣データとを、決済判定部226に送る。このとき、決済端末IDとともに、少なくとも仮想貨幣暗号化データが決済判定部226に送られる必要があるが、この実施形態では、決済端末IDとともに、仮想貨幣データの全体が決済判定部226に送られるものとする。
これらデータを受取った決済判定部226は最終的には決済判定を行うが、それに先立って、以下の処理を実行する。
決済端末IDとともに仮想貨幣データを受取った決済判定部226は、まず、その仮想貨幣データの中に平文で含まれている記番号情報を抽出する。そして、その記番号情報を含む確認用元データを、第1記録部224Cに記録された確認用元データの中から検索し、決済端末300から送られてきた仮想貨幣データに含まれていた記番号情報と同じ記番号情報を含む確認用元データを発見したら、その記番号情報を含む元データを第1記録部224Cから読み出すようになっている。
主制御部222から受取った仮想貨幣データに含まれていた記番号情報と同じ記番号情報を含む確認用元データを第1記録部224Cに記録されたデータの中から発見できなかった場合には、決済判定部226は確認用元データの読み出しを行わない。
確認用元データを読み出した場合には、決済判定部226は、第1記録部224Cから読み出した確認用元データを、仮想貨幣データ生成部223に送り、それに基づき確認用暗号化データを生成するように暗号化部223Aに依頼する。
かかる依頼を受けると暗号化部223Aは仮想貨幣暗号化データを生成する(S927)。
より具体的には、暗号化部223Aは、決済判定部226から受取った確認用元データを暗号化して、仮想貨幣暗号化データに変える。上述したように、この実施形態における暗号化部223Aが実行する暗号化の方法は、同じアルゴリズム及び同じ鍵を用いた固定された1つの方法とされているので、暗号化部223Aは、その1つの方法、つまり、仮想貨幣暗号化データを生成するときに用いられたのと同じ暗号化の方法で確認用元データを暗号化する。暗号化部223Aで暗号化された結果、確認用元データは、ある文字列に変わる。そして、暗号化部223Aは、その文字列から、所定の規則にしたがって文字を抜き出すことにより、確認用暗号化データを生成する。ここで用いられる所定の規則は、暗号化部223が、仮想貨幣暗号化データを生成するときにおいて、元データを暗号化して得られた文字列から文字を抜き出す場合に用いられた規則と同じ規則である。
仮想貨幣データ生成部223の暗号化部223Aで新たに作られた確認用暗号化データは、仮想貨幣データ生成部223から決済判定部226に送られる。
そして、決済判定部226は、主制御部222から送られてきた仮想貨幣データに含まれていた仮想貨幣暗号化データと、仮想貨幣データ生成部223で決済判定部226の求めにより新たに生成された確認用暗号化データとを比較することにより、決済判定を行う(S928)。
この実施形態における決済判定部226は、上述の比較の結果、両者が一致した場合には、主制御部222から受取った仮想貨幣暗号化データが、ひいては主制御部222から受取った仮想貨幣データが真正なものであると判定し、両者が一致しなかった場合には、主制御部222から受取った仮想貨幣暗号化データが、ひいては主制御部222から受取った仮想貨幣データが真正なものでないと判定する。なお、主制御部222から受取った仮想貨幣データに含まれていた記番号情報を第1記録部224Cに記録されたデータの中から発見できなかった場合にも、決済判定部226は、主制御部222から受取った仮想貨幣暗号化データが真正なものでないと判定する。
上述したように、暗号化部223Aが行う暗号化は、仮想貨幣暗号化データを生成する場合においても、確認用暗号化データを生成する場合においても常に同じ手法で実行される。また、暗号化された結果得られた文字列から、その一部となる文字列を抜き出すための所定の規則も、仮想貨幣暗号化データを生成する場合においても、確認用暗号化データを生成する場合においても常に同一である。とすれば、主制御部222から送られてきた仮想貨幣暗号化データに対して悪意の第三者による改竄等がなければ、主制御部222から送られてきた仮想貨幣データに含まれていた仮想貨幣暗号化データと、仮想貨幣データ生成部223で決済判定部226の依頼により新たに生成された確認用暗号化データとは一致するはずであるから、それら仮想貨幣暗号化データ及び確認用暗号化データが一致するか否かによって、主制御部222から送られてきた仮想貨幣データに含まれていた仮想貨幣暗号化データ及び仮想貨幣データの真正性の判定を行えるのである。
なお、上述のように、主制御部222から決済判定部226に送られたデータのうち、この実施形態の決済判定で使用されるのは、仮想貨幣データのうち仮想貨幣暗号化データのみである。これが主制御部222から決済判定部226に送るデータが仮想貨幣暗号化データのみでも足りる場合がある理由である。もっともこの実施形態では、暗号化部223Aで確認用暗号化データにすべき確認用元データを選択するために、仮想貨幣データに含まれる平文の記番号情報を利用することにしているので、主制御部222から決済判定部226に送るデータを、仮想貨幣データの全体としている。
決済判定部226は、仮想貨幣暗号化データと確認用暗号化データとが一致するか否かという上述の判定のみによって仮想貨幣暗号化データ乃至仮想貨幣データの真正性の判定を行うようになっていても良いが、この実施形態では更に以下のような判定をも付加的に行うことによって決済判定を行うようになっている。
決済判定部226は、仮想貨幣暗号化データと確認用暗号化データとが一致するとの判定を行った場合、第1記録部224Cから先に読出していた確認用元データを用いて更に仮想貨幣暗号化データ乃至仮想貨幣データの真正性の判定を行うようになっている。具体的には、確認用元データに含まれる発行主体情報に含まれている情報と同じ情報が、基本データ記録部224Aに記録されているか否かにより、決済判定の正確さを補完するのである。
上述のように、発行主体情報には、仮想貨幣データの発行者たる決済装置200を特定するための情報が含まれている。同じデータが、基本データ記録部224Aには記録されているはずであるからから、そのデータを決済判定部226は基本データ記録部224Aから読み出し、両者を比較する。両者が一致した場合には、仮想貨幣暗号化データは真正であると決済判定部226は判定する。
上述のように、発行主体情報には、仮想貨幣データの真正さを保証する権限を持つ者である、例えば、政府機関が発行した仮想貨幣データの真正さを保証する情報である認証用情報が含まれている場合がある。かかるデータを認証に用いるのであれば、基本データ記録部224Aにも認証用情報が存在するから、そのデータを決済判定部226は基本データ記録部224Aから読み出し、両認証用情報同士を比較する。両者が一致した場合には、仮想貨幣暗号化データは真正であると決済判定部226は判定する。
同様に、記番号情報、タイミング情報、金額情報、信用情報等をも仮想貨幣暗号化データの真正性の判定に用いても良い。もっとも、仮想貨幣暗号化データが真性であるということの確認は、事実上、仮想貨幣暗号化データと確認用暗号化データが一致したという事実により行われているのであるから、ここでの付加的な仮想貨幣暗号化データ乃至仮想貨幣データの真正性の確認は省略されてもかまわない。
いずれにせよ、すべての判定の結果が肯定的であった場合にのみ、仮想貨幣暗号化データ乃至仮想貨幣データが真正であると決済判定部226が判定する。そのような判定を行った場合には、決済判定部226は、金額情報によって特定されている金額の支払いを認めるという肯定的な情報を示す最終判定データを生成する。
他方、決済判定部226が、第1記録部224Cから確認用元データの読出しを行えなかった場合か、又は上述した種々の判定の少なくとも1つが否定的であった場合には、決済判定部226は、仮想貨幣暗号化データが真正であるとの判定を行わない。仮想貨幣暗号化データ乃至仮想貨幣データが真性なものであるとの判定が行われなかった場合には、決済判定部226は、金額情報によって特定されている金額の支払いを認めないという否定的な情報を示す最終判定データを生成する。
いずれにせよ、生成された最終判定データは、決済判定部226から主制御部222に送られる。
なお、かかる判定を行う場合、第1記録部224Cに記録されていた確認用元データのうち、決済判定部226によって読み出されたものは、例えばそれに対応する仮想貨幣データによる決済端末300の管理者等への支払いが終了した後に、第1記録部224Cから消去するのが望ましい。
主制御部222は、最終判定データを受取り次の処理を行う。
最終判定データが肯定的なものであった場合、主制御部222は、最終判定データによって特定される金額の決済端末300の管理者への支払いの処理を実行する。決済処理は、仮想貨幣暗号化データを送ってきた決済端末300への金銭の支払いを認めるための処理である。この実施形態では、主制御部222は、どのような決済を行ったかというデータを保持するようになっている。例えば、主制御部222は、誰(どの決済端末300の管理者等)への幾らの支払いを最終的に許可したのかという情報を、各決済端末300毎に図示せぬ記録媒体に記録するようになっている。これらデータは、例えば、決済端末300の管理者が指定した銀行口座が存在する銀行に送られ、その結果、例えば決済装置200の管理者から(或いは、その仮想貨幣データを使用したユーザの指定した銀行口座等から)決済端末300の管理者へと支払いが行われる。
最終判定データが肯定的なものであった場合、主制御部222は、決済が行われたこと、及びその金額の情報を少なくとも含むデータである肯定的な判定結果データを生成する。
他方、最終判定データが否定的なものであった場合、主制御部222は決済処理を行わない。また、主制御部222は、決済が行われなかったという情報を少なくとも含むデータである否定的な判定結果データを生成する。
いずれにせよ、判定結果データは、主制御部222から、データ入出力部221を介して送受信部に送られ、ネットワーク400を介して、決済端末300に送信される(S929)。決済端末300に対する判定結果データの送信は省略することも可能であるが、通常は行われるであろう。
判定結果データは、決済端末300の送受信部によって受取られる(S933)。
送受信部によって受取られた判定結果データは、これまでの場合と同様に、主制御部321に送られる。
主制御部321は、表示制御部322に対して、判定結果データに応じた表示をディスプレイに行わせろとの指示を行う。その結果、表示制御部322は、ディスプレイに判定結果データに応じた表示を行わせる(S934)。その表示は、図示を省略するが、例えば、判定結果データが肯定的なものであった場合には、決済が認められたこと、及びその金額となり、判定結果データが否定的なものであった場合には、決済が認められなかったことであろう。後者の場合には、判定結果データに決済が認められなかった理由を特定する情報を含めることにより、決済が認められなかった理由がディスプレイ上に表示されるようにした方が良いであろう。
なお、判定結果データの送信をユーザ端末100に対しても行い、ユーザ端末100でもそれに基づく画像のディスプレイ101での表示を行うようにすることも可能である。
以上で、仮想貨幣データを使用しての、ユーザから決済端末300の管理者への支払いの処理が終了する。
なお、以上での説明では、あるユーザ端末100を用いての仮想貨幣データによる支払いの受領者は、決済端末300の管理者等のみであった。しかしながら、あるユーザ端末100を用いての仮想貨幣データによる支払いの受領者を、他のユーザ端末100のユーザとすることも可能である。
その場合には、支払いを受けるユーザの所有するユーザ端末100は、決済端末300にインストールされたのと同様のコンピュータプログラムをインストールすることにより、決済端末300が有していたのと同様の機能ブロックを有するものとなっていれば良い。ユーザ端末100がスマートフォンであれば、コンピュータを含んでいるのであるから、それは可能である。また、決済端末300はハードウェアとしてカメラを備えていたが、ユーザ端末100がスマートフォンであれば常識的にカメラを持つのであるから、その条件もユーザ端末100は満足する。その場合、決済装置200の基本データ記録部224Aには、各決済端末300の決済端末IDと紐付けて記録されていた種々のデータと同等のデータが、各ユーザ端末100のユーザIDと紐付けて記録されることが必要となろう。
また、この実施形態では、ユーザ端末100から決済端末300への仮想貨幣データの受け渡しはネットワーク400を介さずに行われるものとなっていた。しかしながら、かかる受け渡しがユーザ端末100から決済端末300への仮想貨幣データの受け渡しであるか、ユーザ端末100間での仮想貨幣データの受け渡しであるかを問わず、かかる受け渡しをネットワーク400を介しての仮想貨幣データの送受信(場合によっては、仮想貨幣データの二重譲渡を防ぐための決済装置200を介しての送受信)によって実現しても良い。また、2つのユーザ端末100間、ユーザ端末100と決済端末300間、或いは2つの決済端末300間で、決済装置200での決済の処理を伴わずに単に仮想貨幣データを譲渡するようにすることも可能である。その場合には、例えばユーザ端末100間での仮想貨幣データの譲渡が行われる場合であれば、譲渡人たるユーザは自らのユーザ端末100へ仮想貨幣データを譲渡するための譲渡情報を入力する。譲渡情報には少なくとも、どの仮想貨幣データを、どのユーザに譲渡するか、という内容が含まれる。譲受人たるユーザの指定は例えば、ユーザIDによって実現することができる。かかる譲渡を、決済装置200を通して行うようにすることにより、仮想貨幣データの二重譲渡の問題を防ぐことができる。譲渡情報は、譲渡人たるユーザが操作するユーザ端末100から、例えば仮想貨幣データとともに、ネットワーク400を介して決済装置200に送られる。決済装置200は、ユーザIDで指定されるユーザ端末100に対して仮想貨幣データを送る。これにより、譲渡人たるユーザのユーザ端末100から譲受人たるユーザのユーザ端末100へと仮想貨幣データが譲渡される、或いは移されることになる。仮想貨幣データは、譲受人たるユーザのユーザ端末100において、その主制御部121によって、ユーザ端末記録部124に記録されることになる。
なお、この実施形態では、上述のように、決済装置200の信用情報記録部224Bには、ある仮想貨幣データに含まれる仮想貨幣暗号化データに暗号化した状態で含まれている信用情報との対応関係を把握できるような状態で、当該信用情報が記録されている。例えばその仮想貨幣データを記録しているユーザ端末100のユーザ、或いはその仮想貨幣データを記録している決済端末300の管理者等、又は万人が、その信用情報を例えばネットワーク400を介して閲覧できるようにすることも可能である。そうすることによって、仮想貨幣データの信用を高めることができるようになる。例えば、この実施形態では、ユーザ端末100から決済装置200に、信用情報の閲覧を要求する情報である閲覧要求情報を送ることにより、それが可能となる。閲覧要求情報には、ユーザがその信用情報を確認したいと希望する仮想貨幣データを特定するための情報が含まれる。ユーザがその信用情報を確認したいと希望する仮想貨幣データを特定するための情報は、ユーザがその信用情報を確認したいと希望する仮想貨幣データそのものであっても良いが、その仮想貨幣データに含まれる仮想貨幣暗号化データでも良いし、或いは、その仮想貨幣データに含まれる記番号情報であっても良い。図13に示したようにユーザ端末100のディスプレイ101には、各仮想貨幣データの記番号を表示することが可能となっている。したがって、各ユーザは閲覧要求情報に記番号情報を含めることが可能となっている。ユーザが入力装置102を操作してある記番号を選択する(複数の記番号を選択しても良い。)と、選択された記番号についての記番号情報がデータ入出力部123から、主制御部121に送られる。そうすると、主制御部121が、受取った記番号情報が付加された閲覧要求情報を生成する。記番号情報が付加された閲覧要求情報は、データ入出力部123から送受信部へ送られ、送受信部からネットワーク400を介して決済装置200へと送られる。決済装置200は、その送受信部でそれを受取ると、記番号情報が付加された閲覧要求情報を、データ入出力部221から主制御部222へ送る。そうすると、決済装置200の主制御部222は、信用情報記録部224Bから、閲覧要求情報に付加されていた記番号情報によって特定される記番号に紐付けられていた信用情報を読み出す。そして、主制御部222は、先程と逆の過程を経て、読み出した信用情報をその信用情報と対応付けられた記番号情報と対応付けた状態でユーザ端末100に送る。ユーザ端末100の主制御部121はそれを受取る。主制御部121は、記番号情報により特定された記番号と、当該記番号に対応した仮想貨幣データとを互いに対応付けた状態で、ディスプレイ101に表示させる。かかるディスプレイ101による画像の表示は、主制御部121の指示に基いて表示制御部122が生成した画像データによって行われる。ユーザは、ディスプレイ101に行われた表示を見ることにより、自分が確認したかった仮想貨幣データ(場合によっては複数である。)の信用を基礎づける信用情報を、仮想貨幣データのそれぞれと紐付けられた状態で確認することができる。
なお、この実施形態では、決済装置200は、仮想貨幣データを発行して外部に送る機能である本願発明における仮想貨幣データ発行装置としての機能と、仮想貨幣データの決済の可否を判定する機能である本願発明における決済装置としての機能とを併せ持っていたが、それら機能をそれぞれ持つ仮想貨幣データ発行装置と、仮想貨幣データの決済装置と、に分離することも可能である。
その場合、2つの装置とも、ハードウェア構成としては既に説明した決済装置200と同じものとすることができ、機能ブロックに関しては、仮想貨幣データ発行装置は、仮想貨幣データをユーザ端末100に送るまでに必要であった機能を有する機能ブロックを、決済装置は、それ以降の仮想貨幣データの決済を行うために必要であった機能を有する機能ブロックを、それぞれ有するものとすることができる。
<変形例1>
変形例1による決済システムは、第1実施形態による決済システムと殆ど同じである。特に、ユーザ端末100と、決済端末300との構成、及びそこで実行される処理は、第1実施形態におけるそれらと変わるところがない。また、仮想貨幣データのデータ構造も第1実施形態と同じである。
異なるのは、決済装置200の構成、及びそこで実行される処理である。とはいえ、変形例1の決済装置200の構成、及びそこで実行される処理の大半は、第1実施形態の場合と同じである。
第1実施形態の決済システムでは、多数の仮想貨幣データのそれぞれに含まれる仮想貨幣暗号化データを生成するにあたって暗号化部223Aが用いる暗号化の手法は、仮想貨幣暗号化データを生成するすべての場合において同一であった。他方、この変形例1では、仮想貨幣暗号化データを得るために実行される暗号化の手法は複数である。言い換えれば、変形例1では、暗号化部223Aが仮想貨幣暗号化データを得るために実行する暗号化の手法が、所定のタイミングで変更される。
変形例1でもそうであるが、第1実施形態では、暗号化部223Aは、仮想貨幣暗号化データを生成するために元データを暗号化するとともに、確認用暗号化データを生成するために確認用元データを暗号化するようになっている。当然に、ある元データに由来する確認用元データを暗号化する場合に用いられる暗号化の手法は、その元データを暗号化する場合に用いられた暗号化の手法と一致していなければならない。仮にそうでなければ、決済判定部226で実行される仮想貨幣暗号化データと確認用暗号化データとの一致を見ることにより仮想貨幣暗号化データ乃至仮想貨幣データの真正性を確認するという原理の根幹が崩れてしまうからである。ある元データに由来する確認用元データを暗号化する場合に用いられる暗号化の手法を、その元データを暗号化する場合に用いられた暗号化の手法と一致させるための工夫を有しているというのが、変形例1の決済装置200の第1実施形態における決済装置200との相違点である。
これには限られないが、この実施形態では、暗号化部223Aで行われる暗号化は、各仮想貨幣暗号化データ毎にすべて異なるものとする。言い換えれば、暗号化部223Aで実行される暗号化の方法は、仮想貨幣暗号化データを生成する度に変更されるものとする。したがって、暗号化部223Aが実行する、確認用元データを暗号化するための処理も、確認用元データを暗号化するたびにすべて異なるものとなる。暗号化の手法を変化させるには、アルゴリズムを変更する、鍵を変更する、それらの双方を変更するという3種類がありいずれも採用可能ではあるが、この実施形態では鍵を変更するものとする。
変形例1の決済装置200でも、第1実施形態で説明したのと同様に、コンピュータプログラムが実行されることによりその内部に機能ブロックである制御部220が生成される。図15に示したように、変形例1における制御部200内に生成される機能ブロックは第1実施形態の場合と略同じであり、同一の機能ブロックが担う機能は暗号化部223Aを除けば、第1実施形態の場合と同じである。変形例1における制御部200内に生成される機能ブロックには鍵生成部227が含まれており、その点で第1実施形態と異なる。
鍵生成部227は、暗号化部223Aが、元データ又は確認用元データの暗号化の処理を行う際に使用される鍵を生成するものであり、鍵を暗号化部223Aに提供するものとなっている。鍵の生成の方法、及び鍵を暗号化部223Aに提供するタイミングについて説明する。
鍵生成部227が暗号化部223Aに鍵を供給するタイミングは、暗号化部223Aが暗号化の処理を行うタイミングである。上述したように、仮想貨幣暗号化データを生成するために、図12(A)に示された元データが生成されると、暗号化部223Aは、鍵生成部227に鍵を生成することを依頼するためのデータを送信する。それを受取ると、鍵生成部227は鍵を生成し、生成した鍵のデータを暗号化部223Aに送る。暗号化部223Aは、不変のアルゴリズムと、提供された鍵とを用いて、図12(A)に示された元データを暗号化し、更には元データを暗号化して得られた文字列から所定の規則にしたがって文字を抜き出して新たな文字列を生成することにより、仮想貨幣暗号化データを得る。
鍵生成部227は、例えば鍵を以下のようにして生成する。鍵は、以下の説明における「解」として生成され、英字、数字、記号の少なくとも1つの羅列として生成される。解は例えば、同じ条件下では常に同じものが生成される、初期値依存性のある擬似乱数列のようなものとすることができる。ある初期値から連続してワンタイムパスワードを生成するという、公知、周知のワンタイムパスワードの発生方法が、その一例となる。
この実施形態では、解を生成するために、ある初期値(2つ以上の場合もある)を用い、過去の解を所定の関数に代入することにより、新しい解を順次作るという方法を解が必要となる度に実行する。そうすることにより、上記「値」である解を連続して生成することができる。このような解は、初期値依存性のある擬似乱数となる。
上述の「解」を作るのに使われる関数の例として、以下の(a)〜(c)を挙げる。以下の(a)〜(c)はいずれも、N番目の「解」であるXを作るための式である。また、P、Q、R、Sは自然数である。
(a)(X)=(XN−1+(XN−2
(b)(X)=(XN−1
(c)(X)=(XN−1(XN−2(XN-3R(XN−4S
(a)は、過去の「解」2つを用い、それらをそれぞれP乗とQ乗したものを足し合わせることにより、新しい「解」を生成する。なお、正確には、過去の「値」2つを用い、それらをP乗とQ乗したものを足し合わせると、桁数が増えるため、実際には得られた値のうちの頭から適当な桁数を抜き出す、末尾から適当な桁数を抜き出す、或いはその値のうちの適当な部分から適当な桁数を抜き出すこと等により、新しい「解」を生成する。
(b)は、過去の「解」1つを用い、それをP乗したものの桁数を上述のように整理したものを新しい「解」とするものである。
(c)は、過去の「解」4つを用い、それらをそれぞれP乗、Q乗、R乗、S乗したものの積を取り、その後上述したように桁数を整理したものを新しい「解」とするものである。
上述の(a)〜(c)は解を生成するためのアルゴリズムの一例であり、解を生成する際にアルゴリズムに変化を加える、例えば、上述の(a)〜(c)を順番に用いる等の変化を加えることも可能である。
このような手法で解を生成することとすれば、ある初期値に基いて1番目に生成される解は常に同じであり、2番目に生成される解も常に同じであり、同様にN番目に生成される解も常に同じである。これが初期値依存性ということである。
上述のように生成された解を鍵として用いることにより暗号化部223Aは、元データを暗号化して更にそれにより生成された文字列から一部を抜き出すことにより、仮想貨幣暗号化データを生成する。そして、第1実施形態の場合と同様に、結合部232Bが、仮想貨幣暗号化データに対して平文の幾つかのデータを付加することによって仮想貨幣データが生成される。
かかる仮想貨幣データは、第1実施形態の場合と同様に、決済装置200からユーザ端末100に送られる。
かかる仮想貨幣データの使用方法は第1実施形態の場合と同様であり、ユーザ端末100から決済端末300に引渡され、決済端末300から、決済端末IDとともに決済装置200に送られる。
仮想貨幣データは、第1実施形態の場合と同様に、決済端末IDとともに主制御部222から決済判定部226へと送られる。
ここで、第1実施形態の場合と同様に、決済判定部226は、暗号化部223Aに確認用暗号化データの生成を依頼する。かかる依頼を行う場合、決済判定部226は、第1実施形態の場合と同じように、仮想貨幣データに含まれていた記番号情報と同一の記番号情報を含んでいた確認用元データを第1記録部224Cから読出し、その確認用元データを確認用暗号化データの元となるデータとして暗号化部223Aへと送る。
かかる依頼を受けた暗号化部223Aは、決済判定部226から受取った確認用元データを暗号化するが、しかしながら変形例1では仮想貨幣暗号化データを暗号化するために用いられた暗号化の方法が元データ毎に異なるため、暗号化部223Aはその確認用元データを暗号化するために用いるべき暗号化の方法を特定しなかればならない。つまり、暗号化部223Aは、決済判定部226から受取った確認用元データと同じ元データを暗号化したときに用いられた鍵と同じ鍵を、確認用元データを暗号化するための鍵として入手する必要がある。そこで、仮想貨幣データを受取った暗号化部223Aは、鍵生成部227に対して鍵のデータの生成を依頼するデータを送る。そして、暗号化部223Aは、そのデータに、確認用元データに平文の状態で含まれていた記番号情報を付す。
上述したように、この実施形態の記番号情報は、16進法で表記された、1から始まる多数桁の連番の番号である。つまり、かかる記番号情報により特定される数字は、暗号化部223Aがこれから暗号化しようとする確認用元データと同じ元データが暗号化部223Aで過去に暗号化されたときに使用された鍵が、何番目に生成された鍵であるか、ということを示している。鍵生成部227は、記番号情報を受取ったら、上述の数式(a)〜(c)を用いて、記番号情報で特定される数字番目の解を求めるべく連続して演算を行う。その結果、鍵生成部227は、その記番号情報が含まれていた確認用元データと同じ元データが過去に暗号化されたときに用いられたものと同じ鍵(同一の解)を生成することができる。そして、鍵生成部227は生成した解である鍵を、暗号化部223Aに対して送る。
これにより、暗号化部223Aは、暗号化部223Aが過去に元データを暗号化してそれに基いて仮想貨幣暗号化データを生成したときに用いたものと同じ鍵を用いて、その元データと同じ確認用元データの暗号化の処理を行えることになる。つまり、変形例1では、記番号情報が、本願発明で言う暗号化条件データを兼ねている。
なお、第1実施形態でも、変形例1でも、記番号情報は平文であるものとしていた。しかしながら、変形例1における記番号情報は、仮想貨幣暗号化データが暗号化されたときの条件を特定する暗号化条件データをも兼ねているので、平文のまま仮想貨幣データに含めておくのは安全性に若干の問題を生じる可能性もある。そこで、変形例1においては、仮想貨幣データに含まれる暗号化条件データを、暗号化された状態としても構わない。ただし、暗号化条件データの暗号化を行う場合には、すべての仮想貨幣データに含まれる暗号化条件データについて、その暗号化の手法を同一とするのが現実的である。なぜなら、各仮想貨幣データに含まれる暗号化条件データをそれぞれ異なる手法で(例えば、異なる鍵を用いて)暗号化したとするのであれば、各暗号化条件データを復号化するときに、その復号化のための条件(暗号化されたその暗号化条件データを暗号化したときの暗号化の条件)が必要となるからである。これには限られないが、変形例1の決済装置200では、仮想貨幣データを生成して、発行する際に、その主制御部222が、暗号化条件データの暗号化を行い、また決済判定を行う場合、その主制御部222が暗号化条件データの復号化を行う。暗号化の手法、復号化の手法が同一であれば、かかる暗号化、復号化を同一の主制御部222が行うことは当然に可能である。
決済判定部226の依頼により、暗号化部223Aが確認用元データを暗号化して以降の変形例1における処理は、第1実施形態と変わらない。
なお、変形例1では記番号情報を本願発明でいう暗号化条件データとして利用することとしていた。つまり、発行主体情報の一部である記番号情報を、暗号化条件データとしても利用することとしている。
これに代えて、例えば、記番号情報を、暗号化条件データとして使用しない(その場合には、記番号情報を連番とする必要がなくなる。)ようにするとともに、記番号情報とは別の情報を仮想貨幣データに平文の状態で、或いは暗号化した状態で含めることが可能である。そのデータは、その仮想貨幣暗号化データを生成するときに用いられた鍵が、鍵生成部227で何番目に生成された鍵であるかを示す連番の数字のデータである。
また、暗号化条件データとして、結合部223Bが、暗号化部223Aが暗号化の処理を行うときに使用した鍵そのものを、その鍵によって暗号化された仮想貨幣暗号化データに付加することによって、仮想貨幣データに含めることも可能である。このような仮想貨幣データには、それに含まれる仮想貨幣暗号化データを復号化するために用いることのできる鍵が添付されているから、悪意の第三者により仮想貨幣暗号化データを復号化されるおそれがある。しかしながら、暗号化、復号化に用いられるアルゴリズムが第三者に知られない限り、悪意の第三者は仮想貨幣暗号化データを復号化することができないため、一応の安全性は維持できる。暗号化条件データを鍵そのものとした場合、暗号化部223Aは、決済判定部226が決済判定を行う場合に、その鍵を用いて確認用元データの暗号化を行うことができるので、暗号化部223Aは確認用元データの暗号化の処理を行うに際して鍵生成部227から鍵の提供を受ける必要はない。
なお、暗号化条件データは、上述のものによらない。例えば、上述の解が生成されたときの日時によって解が決定される、換言すれば、ある日時を指定すれば後からでも必ずその解を再現できるようなアルゴリズムを、鍵生成部227が解の生成のために用いるのであれば、暗号化条件データは、暗号化部223Aで使用された解が鍵生成部227で生成された日時を特定する情報とすることができる。つまり、上述したタイミング情報を暗号化条件データとして利用することが可能である。決済判定部226が暗号化部223Aに、更には暗号化部223Aが鍵生成部227に、その日時を特定するタイミング情報を通知すれば、鍵生成部227は、暗号化部223Aが元データを暗号化するときに提供した鍵と同じ解を生成することができるので、暗号化部223Aが元データを暗号化するときに提供した鍵と同じ鍵を、暗号化部223Aが確認用元データを暗号化する場合に提供することが可能となる。つまり、暗号化部223Aは、ある元データを暗号化するときに用いた鍵と同じ鍵を、その元データと同じ確認用元データを暗号化するときに用いることができるようになる。
なお、鍵生成部227は上述のように、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるものであれば良い。変形例1における鍵生成部227は、条件として「順番」を採用しており、同じ初期解から生成された解は、同じ順番に生成されたものであれば常に同じものとなるようになっている。このような解の生成方法は、離れた場所で独立して乱数を発生させるための技術、典型的にはワンタイムパスワードの技術で採用されている。そして、ワンタイムパスワードの技術には、上述のように「順番」を条件として採用するイベント同期と、「日時」を条件として採用する時間同期とが存在する。この発明の鍵生成部227は、上述の如きイベント同期でなく、時間同期によって同じ条件下で生成されたものが常に同じものとなるものを連続して生成できるようになっていてもよい。
鍵生成部227で時間同期を用いる場合には、例えば以下のような演算を行うようにすることができる。以下の如き演算の結果求められるのは、解の元となる文字列である。文字列をXとすると、Xは、その時点における西暦の年、月、日、時、分にしたがって以下のようにして求められる。以下の数式におけるX、X、X3、X4、Xはそれぞれ、5つの初期解である。以下の例で初期解を5つとしているのは、西暦の年、月、日、時、分という5つの要素にしたがって解を変化させることにしているからである。
X=X +X +X3 +X4 +X
ここで、P=西暦の年の下二桁の数字、Q=月の数字、R=日の数字、S=時の数字、T=分の数字。このようにすることで、そのときの時刻に応じて異なる数列を得ることができる。
このような時間同期を用いる場合における暗号化条件データは、解が生成された順番を特定する記番号ではなく、解が生成された日時を特定するタイミング情報とされるべきである。
なお、イベント同期ではなく時間同期を採用することができるのは、以下に説明する鍵生成部227でも同様であり、また、後述する鍵生成部116でも同様である。
<変形例2>
変形例2による決済システムは、第1実施形態による決済システムと殆ど同じである。特に、ユーザ端末100と、決済端末300との構成、及びそこで実行される処理は、第1実施形態におけるそれらと変わるところがない。また、仮想貨幣データのデータ構造も第1実施形態と基本的には同じである。
変形例2と第1実施形態とで異なるのは、決済装置200の構成、及びそこで実行される処理である。とはいえ、変形例2の決済装置200の構成、及びそこで実行される処理の大半は、第1実施形態の場合と同じである。
変形例2の決済装置200でも、第1実施形態で説明したのと同様に、コンピュータプログラムが実行されることによりその内部に機能ブロックである制御部220が生成される。図16に示したように、変形例2における制御部200内に生成される機能ブロックは第1実施形態の場合と略同じであり、同一の機能ブロックが担う機能は、仮想貨幣データ生成部223の一部の機能を除けば、第1実施形態の場合と同じである。また、変形例2における制御部200内に生成される機能ブロックには、第1実施形態にあった第1記録部224Cが存在せず、その代わりに第1実施形態には無かった第2記録部224Dが存在する。
第1記録部224Cは確認用元データを記録するものであったが、第2記録部224Dは後述するように、確認用暗号化データを記録するものである。第1実施形態では、決済端末300等から決済を求めて仮想貨幣データが決済装置200に送られて来た後に第1記録部224Cに記録されていた確認用元データを暗号化して確認用暗号化データを生成することとしていた。他方、変形例2では、確認用暗号化データは、決済端末300等から決済装置200へと仮想貨幣データが送られて来たタイミングとは無関係に、通常は決済端末300等から決済装置200へと仮想貨幣データが送られて来る前に生成され、予め第2記録部224Dに記録される。この点が第1実施形態と変形例2との大きな相違点である。
変形例2の決済装置200における仮想貨幣データ生成部223と決済判定部226とが実行する処理は、第1実施形態と若干異なる。この点も考慮し、変形例2の仮想貨幣データ生成部223、決済判定部226、及び第2記録部224Dの機能、及び前2者が実行する処理について説明する。
まず、仮想貨幣データ生成部223についてである。変形例2の仮想貨幣データ生成部223の機能、及びそこで行われる処理については、第1実施形態と殆ど変わらない。仮想貨幣データ生成部223は、第1実施形態の場合と同様に暗号化部223Aと結合部223Bとを有している。結合部223Bの機能、そこで行われる処理は第1実施形態の場合と同一である。
第1実施形態の場合と同様に、図12(A)に示した元データを、暗号化し、かかる暗号化によって得られた文字列から所定の規則にしたがって一部の文字を抜き出して新たな文字列を生成することにより、暗号化部223Aは仮想貨幣暗号化データを生成する。第1実施形態の場合と同様に、かかる仮想貨幣暗号化データは、結合部223Bに送られ、結合部223Bによってそれに対して平文の第1実施形態で説明したデータが付加されることによって、仮想貨幣データが生成される。第1実施形態の仮想貨幣データ生成部223は、仮想貨幣データを決済装置200からユーザ端末100に送る処理を決済装置200が行うために、主制御部222に対して仮想貨幣データを送ったが、変形例2の仮想貨幣データ生成部223は、それとともに、当該仮想貨幣データを第2記録部224Dにも送るようになっている。
第2記録部224Dには、送られてきた仮想貨幣データが記録される。仮想貨幣データには仮想貨幣暗号化データが含まれているから、第2記録部224Dには、仮想貨幣暗号化データが仮想貨幣データの一部として記録されることになる。第2記録部224Dに記録された状態の仮想貨幣暗号化データを、確認用暗号化データと称することとする。かかる処理は繰り返し行われるので、通常、第2記録部224Dには、仮想貨幣データが、多数記録された状態となる。なお、変形例2では、第2記録部224Dに対する仮想貨幣データの記録は、決済装置200からユーザ端末100への仮想貨幣データの送信と略同時に行われるようになっている。
主制御部222に送られた仮想貨幣データは、第1実施形態の場合と同様に、決済装置200からユーザ端末100に送られる。
かかる仮想貨幣データの使用方法は第1実施形態の場合と同様であり、ユーザ端末100から決済端末300に引渡され、決済端末300から、決済端末IDとともに決済装置200に送られる。
仮想貨幣データは、第1実施形態の場合と同様に、決済端末IDとともに主制御部222から決済判定部226へと送られる。
決済判定部226は、受取った仮想貨幣データが真正なものであるか、もっと言えば、受取った仮想貨幣データに含まれた仮想貨幣暗号化データが真正なものかということについての確認である、第1実施形態の場合と同様の決済判定を行う機能を有している。この点についての確認は、第1実施形態では事実上、決済端末300から決済装置200に送られた仮想貨幣データに含まれていた仮想貨幣データと、決済判定部226からの依頼によって暗号化部223Aで生成された確認用暗号化データとが一致するか否かという判定により行われていたが、変形例2の決済判定部226は、それとは異なる方法でその確認を行う。
主制御部222から仮想貨幣データを受取った決済判定部226は、第2記録部224D内に記録された仮想貨幣データに対して検索を行う。その結果、主制御部222から受取った仮想貨幣データと同じ仮想貨幣データが第2記録部224Dに記録されていた場合、又は主制御部222から受取った仮想貨幣データに含まれていた仮想貨幣暗号化データと同じ確認用暗号化データが第2記録部224Dに記録されていた場合には、主制御部222から受取った仮想貨幣暗号化データ乃至仮想貨幣データが真正なものであると判定し、主制御部222から受取った仮想貨幣データと同じ仮想貨幣データが第2記録部224Dに記録されていなかった場合、又は主制御部222から受取った仮想貨幣データに含まれていた仮想貨幣暗号化データと同じ確認用暗号化データが第2記録部224Dに記録されていなかった場合には、主制御部222から受取った仮想貨幣暗号化データ乃至仮想貨幣データが真正なものでないと判定する。このように、変形例2では、主制御部222から受取った仮想貨幣データと第2記録部224Dに予め記録されていた仮想貨幣データの一致を見るか、或いは主制御部222から受取った仮想貨幣データに含まれていた仮想貨幣暗号化データと、第2記録部224Dに予め記録されていた確認用暗号化データの一致を見るかのいずれかによって、決済装置200に決済端末300から送られてきた仮想貨幣データ乃至それに含まれた仮想貨幣暗号化データの真正性の判定を行うこととしている。かかる判定のうち、主制御部222から受取った仮想貨幣データに含まれていた仮想貨幣暗号化データと、第2記録部224Dに予め記録されていた確認用暗号化データの一致を見る方法を採用する場合には、第2記録部224Dに記録されるデータは仮想貨幣データの全体ではなく、確認用暗号化データとしての仮想貨幣暗号化データのみであっても構わない。
なお、変形例2でも、第2記録部224Dに記録されていた仮想貨幣データのうち、決済判定部226が主制御部222から受取った仮想貨幣データと同じものであると判定したものは、例えばそれに対応する仮想貨幣データによる決済端末300の管理者等への支払いが終了した後に、第2記録部224Dから消去するのが望ましい。
変形例2における決済判定部226が行う仮想貨幣暗号化データ乃至仮想貨幣データの真正性の判定は、以上のようなものとすることができるが、変形例2における決済判定部226も第1実施形態で説明したような付加的な判定を更に行うことができる。そのような付加的な判定を行う場合には、主制御部222から送られてきた仮想貨幣データ中の仮想貨幣暗号化データに付加された平文のデータと同一のデータが、第2記録部224Dに記録されている仮想貨幣データ中の平文のデータの中に含まれているかを決済判定部226が判定すれば良い。変形例2におけるかかる判定は第1実施形態の場合と同様に行うことができる。
つまり、以後の処理はすべて第1実施形態と同じとすることができ、変形例2ではそうしている。
以後の説明は省略する。
なお、変形例2の決済装置200も、変形例1で説明した鍵生成部227を有することにより、例えばすべての仮想貨幣データの生成のために暗号化部223Aで使用される鍵を変更することが可能である。
≪第2実施形態≫
第2実施形態による決済システムについて説明する。
第2実施形態による決済システムも、第1実施形態の場合と同様に、それらのいずれもがネットワーク400に接続可能とされている、ユーザ端末100、決済装置200、決済端末300により構成される。
第2実施形態による決済システムと第1実施形態における決済システムの決定的な相違点は、第1実施形態における決済システムでは、仮想貨幣データは決済装置200によって生成乃至発行されるようになっていたが、第2実施形態における決済システムでは、仮想貨幣データはユーザ端末100のそれぞれで生成乃至発行されるようになっている、という点である。つまり、第2実施形態におけるユーザ端末100は、本願発明における仮想貨幣データ生成装置に相当し、第2実施形態における決済装置200は、本願発明における決済装置に相当する。第1実施形態とは異なり、第2実施形態における決済装置200は、本願発明における仮想貨幣データ生成装置としての性格を持たない。
第1実施形態における決済端末300と第2実施形態における決済端末300とは同一のものでよく、第2実施形態における決済端末300は第1実施形態における決済端末300と同一とされているが、上述した相違点の存在に基づき、第1実施形態と第2実施形態とでは、ユーザ端末100及び決済装置200の機能及びそこで実行される処理が異なるものとなっている。とはいえ、第1実施形態と第2実施形態とにおけるユーザ端末100及び決済装置200は、そのハードウェア構成については相違がない。
第2実施形態のユーザ端末100でも、CPU111がコンピュータプログラムを実行することにより、ユーザ端末100内部に機能ブロックが生成される。かかる機能ブロックを、図17に示す。なお、以下の機能ブロックは、ユーザ端末100を本願発明の仮想貨幣データ生成装置として機能させるためのコンピュータプログラム単体の機能により生成されていても良いが、かかるコンピュータプログラムと、ユーザ端末100にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。
ユーザ端末100内には、本願発明の機能との関係で、以下のような制御部120が生成され、制御部120内に、主制御部121、表示制御部122、データ入出力部123、ユーザ端末記録部124、暗号化部125が生成される。
制御部120は、以下に説明するような情報処理を実行する。
主制御部121は、制御部120内の全体的な制御を行う。例えば、主制御部121は、追って詳述するデータ入出力部123から受取ったデータに基づいて表示制御部122の制御を行う。
主制御部121は、データ入出力部123から、入力装置102から入力された開始情報、金額情報、支払い情報、譲渡情報、及びユーザIDを受取る場合があり、それらを受取ったとき、後述するような処理をそれぞれ行うようになっている。例えば、開始情報を受取った場合、主制御部121は、金額情報等の仮想貨幣データを生成するために必要なデータの入力をユーザに促すための表示をディスプレイ101にさせるための処理を実行すべく表示制御部122に指示を送るようになっている。金額情報を受取った場合、主制御部121は、それをそのまま、或いはそれに必要に応じて金額情報以外のデータを付加して後述するような元データを生成するようになっている。主制御部121は生成した元データを暗号化部125に送るようになっている。また、主制御部121は金額情報及びユーザIDをデータ入出力部123に送るようになっている。金額情報及びユーザIDは、データ入出力部123から、送受信部、ネットワーク400を介して決済装置200へと送られるようになっている。決済装置200に送られる金額情報及びユーザIDには、更に主制御部121が生成した元データを特定するために必要となるデータが付加されていても良い。かかるデータの用途については後述する。
主制御部121は、追って説明するデータ入出力部123から、これも追って説明する許可情報を受取る場合がある。それを受取った場合、主制御部121は、元データを暗号化せよとの指示を暗号化部125に送るようになっている。かかる指示は上述する元データとともに暗号化部125に送られるようになっていてもよく、これには限られないがこの実施形態ではそうされている。
主制御部121は、後述するように、暗号化部125から仮想貨幣暗号化データを受取る場合がある。これを受取った主制御部121は、それをそのまま仮想貨幣データとするか、或いはそれに必要に応じて仮想貨幣暗号化データ以外のデータを付加して仮想貨幣データを生成するようになっている。生成された仮想貨幣データは、ユーザ端末記録部124に送られるか、或いは仮想貨幣データに基づく後述する表示をディスプレイ101に行わせるための指示を表示制御部122に送るようになっている。主制御部121は後述するようにユーザ端末記録部124から仮想貨幣データを読み出す場合がある。それを読み出した主制御部121は仮想貨幣データに基づく表示をディスプレイ101に行わせるべく表示制御部122に指示を送るようになっており、また場合によってはそれをデータ入出力部123に送るようになっている。
表示制御部122は、主制御部121の制御を受けつつ、ディスプレイ101に表示される画像の制御を行う。ディスプレイ101には、表示制御部122から送られたデータに基づく画像が表示される。主制御部121は、表示制御部122に対して、ディスプレイ101にどのような画像を表示させるべきかという指示を送るようになっている。
データ入出力部123は、制御部120へのデータの入出力を行うものである。具体的には、データ入出力部123は、入力装置102からの入力を受取るようになっている。入力装置102からデータ入出力部123へ入力されるのは、例えば、開始情報、金額情報、支払い情報、譲渡情報、及びユーザIDである。これらはデータ入出力部123から主制御部121に送られるようになっている。
また、データ入出力部123は、送受信部から、決済装置200等からネットワーク400を介して送られて来た許可情報を受取るようになっている。データ入出力部123は、受取った許可情報を、主制御部121に送るようになっている。
また、データ入出力部123は主制御部121から、金額情報及びユーザIDを受取る場合がある。これを受取ったデータ入出力部123は、金額情報及びユーザIDを送受信部に送るようになっており、金額情報及びユーザIDは送受信部からネットワーク400を介して決済端末300へと送られるようになっている。データ入出力部123は主制御部121から、仮想貨幣データを受取る場合がある。これを受取ったデータ入出力部123は、仮想貨幣データを送受信部に送るようになっており、仮想貨幣データは送受信部から例えば他のユーザ端末100や、決済端末300へと送られるようになっている。仮想貨幣データの送信先は、後述するように、入力装置102からの入力にしたがって、主制御部121によって指定される。
ユーザ端末記録部124は、上述したように、主制御部121が生成した仮想貨幣データを主制御部121から受取り、それを記録するようになっている。ハードウェアとして捉えた場合、ユーザ端末記録部124は、RAM113の一部により構成されている。
また、ユーザ端末記録部124に記録されている仮想貨幣データは、後述するようなタイミングで主制御部121により読み出されることがある。
暗号化部125は、上述したように、主制御部121から元データを受取る場合がある。暗号化部125は、主制御部121から元データを受取った場合に、それを暗号化し、更に元データを暗号化することにより得られた文字列から所定の規則にしたがってその一部の文字を抜き出して新たな文字列を生成することにより、仮想貨幣暗号化データを生成する機能を有している。暗号化部125で実行される、元データから仮想貨幣暗号化データを生成する処理は、第1実施形態の暗号化部223Aで実行される処理と同じとすることができ、この実施形態ではそうされている。各ユーザ端末100における暗号化部125が実行する暗号化の処理は、異なるものとなるようにされている。暗号化の処理は通常、暗号化のために用いられるアルゴリズム及び鍵によって定義されるから、各ユーザ端末100で実行される暗号化の処理に用いられるアルゴリズム及び鍵は、少なくともその一方が各ユーザ端末100毎にユニークなものとされている。
各ユーザ端末100の暗号化部125で実行される暗号化の処理の詳細については、後述するものとするが、第2実施形態における各ユーザ端末100における暗号化の方法は固定された1通りであるものとする。
暗号化部125は、生成した仮想貨幣暗号化データを主制御部121へと送るようになっている。
次に、決済装置200について説明する。なお、これには限られないが、この実施形態における決済装置200は、各ユーザ端末100においてある金額に対応する価値を持つ仮想貨幣データを発行して良いか否かについての判定である与信判定と、仮想貨幣データを発行した以外の他の装置(これには限られないがこの実施形態では、ユーザ端末100又は決済端末300)から仮想貨幣データが送られてきた場合に、当該仮想貨幣データに基づく決済を行って良いか否かの判定である決済判定と、を実行する機能を有している。与信判定と決済判定については追って詳しく述べる。
決済装置200は一般的なコンピュータであり、既に述べたように、そのハードウェア構成は第1実施形態における決済装置200と変わらない。
CPU211がコンピュータプログラムを実行することにより、決済装置200内部には、機能ブロックが生成される。決済装置200内に生成される機能ブロックを図18に示す。なお、以下の機能ブロックは、決済装置200を本願発明の決済装置として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、決済装置200にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。
決済装置200内には、制御部220が生成される。制御部220内には、データ入出力部221、主制御部222、信用情報記録部224B、暗号化部228、第1記録部224C、決済判定部226が生成される。
データ入出力部221は、制御部220へのデータの入出力を行うものである。具体的には、データ入出力部221は、主制御部222から後述する種々のデータを受付けるようになっている。
例えば、データ入出力部221は、主制御部222から許可情報を受付けるようになっている。受取られた許可情報は、データ入出力部221から、送受信部に送られ、ネットワーク400を介してユーザ端末100に送られるようになっている。
データ入出力部221は、また、ネットワーク400を介してユーザ端末100又は決済端末300から送受信部が受取った後述する種々のデータを送受信部から受取り、受取ったそれらデータを主制御部222に送るようになっている。例えば、データ入出力部221は、送受信部から仮想貨幣データ、または金額情報を受取る場合があり、それらのいずれかを受取ったデータ入出力部221はそれらを主制御部222に送るようになっている。
主制御部222は、制御部220内の全体的な制御を行う。例えば、主制御部222は、後述する与信判定の処理を実行するようになっている。また、主制御部222は、後述する決済の処理を行うようになっている。また、主制御部222は、決済装置200が決済端末300等から決済を求める仮想貨幣データを受付けたとき、決済判定部226と暗号化部228に必要なデータを送ることにより、それらに決済の処理に必要な決済判定の処理を行わせるようになっている。
主制御部222は、上述したように、データ入出力部221から、金額情報を受取る場合がある。それを受取った主制御部222は、与信判定の処理を実行するようになっている。与信判定の処理を実行する場合、主制御部222は、信用情報記録部224Bに記録されているデータを利用してそれを行う。信用情報記録部224Bには、与信判定を行うための各ユーザについてのデータが記録されている。信用情報記録部224Bに記録されているデータの内容と、主制御部222で行われる与信判定の処理は、第1実施形態と同様でよく、この実施形態ではそうされている。主制御部222は、与信判定の結果、金額情報で特定される金銭的な価値を持つ仮想貨幣データを、その金額情報を送ってきたユーザのユーザ端末100で生成して良いとの判定を行った場合には、許可情報を生成し、逆に、その金額情報を送ってきたユーザのユーザ端末100で生成して良いとの判定を行わなかった場合には、許可情報を生成しないようになっている。なお、この実施形態ではこれには限られないが、許可情報を生成しない場合には、主制御部222は、ユーザ端末100で仮想貨幣データの発行を認めないということをその内容とする、事実上の不許可情報を生成するようになっている。いずれにせよ、許可情報又は不許可情報を生成した場合には、主制御部222はそれを、データ入出力部221へと送るようになっている。なお、主制御部222は、与信判定の結果が否定的である場合には、不許可情報を生成せずにそこで処理を中止しても良い。
主制御部222は、上述したように、データ入出力部221から、決済端末300等から決済を求めて決済装置200に送られて来た仮想貨幣データを受取る場合があり、それを受取った主制御部222は、仮想貨幣データ(場合によってはそれに含まれる仮想貨幣暗号化データのみ)を決済判定部226に送る他、暗号化部228に、暗号化をせよとの指示を、その仮想貨幣データに含まれていたユーザIDとともに送るようになっている。
主制御部222は、また、決済判定部226から、後述する最終判定データを受取る場合がある。最終判定データは、第1実施形態の場合と同様のデータであり、決済を認めること、或いは決済を認めないことのいずれかを示すデータである。その内容が肯定的な場合も否定的な場合も、最終判定データを受取った主制御部222が実行する処理は、第1実施形態と同様である。
第2実施形態の主制御部222は、元データを生成する機能を有している。元データは、後述するようにユーザ端末100内で生成される平文のデータであって、この実施形態ではユーザ端末100で生成乃至発行される仮想貨幣データに含まれる仮想貨幣暗号化データの元となるデータである。決済装置200内で生成される元データは、ユーザ端末100が決済装置200に許可情報の発行を求めて送ってきて、送受信部、データ入出力部221を介して主制御部222に送られてくる、ユーザID及び金額情報に基いて生成される。主制御部222が生成する元データは、ユーザ端末100で生成される元データと同じものとなるようになっている。主制御部222において実行される元データの生成の過程がどのようなものであるかは後述することとする。なお、以後において、主制御部222で生成される元データを、ユーザ端末100で生成される元データと区別するために、確認用元データと称することにする。主制御部222は、生成した確認用元データを、第1記録部224Cに記録するようになっている。第1記録部224Cは、主制御部222に書き込まれた多数の確認用元データを記録する記録手段である。
暗号化部228は、上述したように、主制御部222から、暗号化をせよとの指示をユーザIDとともに受取る場合がある。
かかる指示を受取った場合、暗号化部228は第1記録部224Cから確認用元データを読み出して、それを暗号化するようになっている。暗号化部228が確認用元データを暗号化することによって生成されるのが、確認用暗号化データである。確認用暗号化データは、ユーザ端末100の暗号化部125で元データに基いて生成される仮想貨幣暗号化データと同じものとなるようになっている。
暗号化部228が第1記録部224Cに記録されている多数の確認用元データのうちのどれを読み出すか、また、暗号化部228が第1記録部224Cから読み出した確認用元データをどのようにして暗号化して確認用暗号化データにするかという暗号化の過程の詳細については、後述するものとする。
暗号化部228は、生成した確認用暗号化データを決済判定部226に送るようになっている。
決済判定部226には、上述したように、主制御部222から仮想貨幣データ(又はそれに含まれていた仮想貨幣暗号化データ)が、暗号化部228から少なくとも1つの確認用暗号化データが、それぞれ送られてくる。これらを受取った場合、決済判定部226は、決済を認めて良いか否かについての判定である決済判定を行う。その結果、決済判定部226は、決済を認めること、及び決済を認めないことのいずれかの内容を含むデータである最終判定データを生成する。
かかる決済判定の過程は、第1実施形態と第2実施形態とで異なる。第2実施形態の決済判定部226が最終判定データをどのようにして生成するかについては後述するものとする。
いずれにせよ、最終判定データを生成したら、決済判定部226はそれを主制御部222に対して送るようになっている。
決済端末300についての説明は、その構成、機能とも第1実施形態と同じであるから省略する。
次に以上のような第2実施形態の決済システムの使用方法、及び動作について図19を参照しながら説明する。
まず、かかるシステムを使用するための準備として、各ユーザ端末100において、ユーザIDの設定を行うとともに、各決済端末300において、決済端末IDの設定を行う。
ユーザIDは、各ユーザ端末100を識別するための、各ユーザ端末100においてユニークなIDであり、一般的には英字、数字、記号の羅列である。決済端末IDも同様である。多数のユーザIDが重複しないようにするために、各ユーザ端末100に対するユーザIDを決済装置200(或いはその管理者等)が発行するようにしてもよい。決済端末IDについても同様である。或いは、ユーザ端末100のハードウェアに出荷時から埋め込まれている個体識別番号をユーザIDとして利用することもできる。決済端末IDについても同様である。
各ユーザ端末100の管理者は、その入力装置102を操作することにより当該ユーザ端末100についてのユーザIDの入力を行う。なお、個体識別番号をユーザIDとして用いる場合には、かかる入力は不要である。ユーザIDのデータは、入力装置102から、インターフェイス114に送られ、インターフェイス114から制御部120に送られる。制御部120のデータ入出力部123はこれを受取り、主制御部121に送る。主制御部121は、それを保持し、或いは主制御部121内に記録してもよい。
他方、主制御部121は、ユーザIDのデータをデータ入出力部123へと送る。ユーザIDのデータは、そこから送受信部へと送られ、ネットワーク400を介して決済装置200へと送られる。
決済装置200は、その送受信部でユーザIDのデータを受取る。ユーザIDのデータは、送受信部からインターフェイス214に送られ、インターフェイス214から制御部220に送られる。制御部220のデータ入出力部221はこれを受取り、主制御部222に送る。主制御部222は、それを保持する、或いは主制御部222内に記録する。この処理をすべてのユーザ端末100が行うことにより、主制御部222は、すべてのユーザ端末100のリストを持つことになる。かかるリストは、誰(どのユーザ端末100の所有者)のために仮想貨幣データを生成するのか、ということを決済装置200が特定するために用いられる。
各決済端末300の管理者は、その入力装置を操作することにより当該決済端末300についての決済端末IDの入力を行う。決済端末IDのデータは、入力装置から、インターフェイス314に送られ、インターフェイス314から制御部320に送られる。制御部320のデータ入出力部323はこれを受取り、主制御部321に送る。主制御部321は、それを保持する、或いは主制御部321内に記録する。
他方、主制御部321は、決済端末IDのデータをデータ入出力部323へと送る。決済端末IDのデータは、そこから送受信部へと送られ、ネットワーク400を介して決済装置200へと送られる。
決済装置200は、その送受信部で決済端末IDのデータを受取る。決済端末IDのデータは、送受信部からインターフェイス214に送られ、インターフェイス214から制御部220に送られる。制御部220のデータ入出力部221はこれを受取り、主制御部222に送る。主制御部222は、それを保持する、或いは主制御部222内に記録する。この処理をすべての決済装置200が行うことにより、主制御部222は、すべての決済端末300のリストを持つことになる。かかるリストは、誰(どの決済端末300の管理者)に対しての支払い(決済)を認めるか、ということを決済装置200が特定するために用いられる。
まず、仮想貨幣データが生成される。
これには限られないが、第2実施形態では、仮想貨幣データの生成は、開始情報をユーザが自らのユーザ端末100に入力することから始まる(S951)。
ユーザが開始情報の入力を行う場合、例えば、ユーザは、ディスプレイ101上に表示されている図示を省略のアイコンにタッチすればよい。そうすると、その操作内容により開始情報が生成され、生成された開始情報が、入力装置102からインターフェイス114、データ入出力部123を介して主制御部121に送られる。
開始情報を受取ると、主制御部121は、表示制御部122に対して、ユーザID等の入力をユーザに促すような画像をディスプレイ101に表示せよとの指示を送る。この指示を受付けた表示制御部122は、ディスプレイ101に、例えば、第1実施形態の場合と同様の図10(A)の如き、ユーザに対して、ユーザIDと、ユーザがこれから発行しようとする仮想貨幣データに持たせる金銭的な価値を特定するための金額(例えば、他人に支払を行おうとする該当金額)と、の入力を促す画像を表示する。ユーザは、ディスプレイ101上のユーザIDと示された部分の右側の矩形の枠内にユーザIDを、金額(円)と示された部分の右側の矩形の枠内に上述の金額をそれぞれ入力する(S952)。ユーザが入力したユーザIDと金額を特定するための情報である金額情報とについてのデータは、入力装置102からインターフェイス114を介してデータ入出力部123に入力され、主制御部121に送られる。ユーザが入力したユーザIDと金額情報は、入力中も含めて、主制御部121に制御された表示制御部122の制御によってディスプレイ101に表示されるから、ユーザは、ディスプレイ101を確認しながら、ユーザIDと金額情報との入力を行うことができる。第1実施形態の場合と同様に、第2実施形態でも、図10(B)に示したように、ユーザは、この決済システムを用いて、25000円の支払いを行おうとしているものとする。
ユーザIDと金額情報の入力が終わったら、ユーザは、ディスプレイ101に表示された「決定」と書かれたボタンをクリックする。
開始情報の入力後に入力すべきデータは、この実施形態では、上述のようにユーザIDと金額情報である。もっともユーザIDは、ユーザが仮想貨幣データをユーザ端末100で生成する度に入力する必要はなく、例えば、主制御部121に予め記録しておくことにより、仮想貨幣データを生成する度のユーザIDの入力を省略することも可能である。また、ユーザIDと金額情報とに加えて、更に他の情報をユーザが入力することを必須とすることも可能である。
「決定」と書かれたボタンをユーザがクリックすると、ユーザIDと金額情報とが、データ入出力部123から主制御部121に送られる。
主制御部121は、ユーザIDと金額情報とを受取ると、それらをデータ入出力部123へと送る。ユーザIDと金額情報は、送受信部からネットワーク400を介して、決済装置200に送られる(S953)。
なお、第1実施形態の場合と同様、第2実施形態においても、ネットワーク400を介して行われる通信はすべて、暗号化通信であってもよい。
決済装置200は、その送受信部でユーザIDと金額情報とを受取る(S961)。送受信部はそれらユーザIDと金額情報とをデータ入出力部221に送り、データ入出力部221はそのデータを主制御部222に送る。
主制御部222は、ユーザIDで特定されるユーザ端末100を所持するユーザが、金額情報で特定される金額の金銭的な価値を持つ仮想貨幣データを生成して良いか否かの判定である与信判定を行う(S962)。後述するように、特に問題なければ、決済装置200はユーザ端末100に対して仮想貨幣データの発行を許可する許可情報を送信することになるが、仮想貨幣データは金銭的な価値のあるデータなのであるから、そのような仮想貨幣データをユーザIDと金額情報とを送ってきたユーザが発行して良いか否かについて、予め判定を行うのである。かかる与信判定を、仮想貨幣データの発行をユーザ端末100が行う前に決済装置200が行うことにより、その後にユーザ端末100で発行される仮想貨幣データの信用力が向上する。
これには限られないが、この実施形態における主制御部222は、第1実施形態の場合と同様に、与信判定を行う場合、信用情報記録部224Bに記録されているデータを用いる。信用情報記録部224Bには、例えば、第1実施形態の場合と同様に、図11(A)に示したようなデータが記録されている。
かかるデータを用いて主制御部222が実行する与信判定の処理は、既に述べたように第1実施形態と同じで良い。
いずれにせよ、主制御部222は、ユーザの与信が認められた場合には、許可情報を生成する。
主制御部222は、生成した許可情報を、データ入出力部221に送る。データ入出力部221は、許可情報を、送受信部に送り、ネットワーク400を介してユーザ端末100に送る(S963)。
ユーザ端末100は、その送受信部で許可情報を受取る(S954)。送受信部は許可情報をデータ入出力部123に送り、データ入出力部123はそれを主制御部121に送る。
許可情報を受取ると主制御部121は、先に受け取っていたユーザIDと金額情報とに基いて元データを生成する(S955)。第2実施形態では、元データには金額情報が少なくとも含まれる。これには限られないが、この実施形態では、主制御部121は、金額情報とユーザIDとを単に繋げたものを元データとする。なお、元データには、金額情報が必須であり、ユーザIDが含まれていても良いが、更に他の情報が含まれていても良い。例えば、ユーザが開始情報の入力を行った日時についてのタイミング情報、ユーザが開始情報を入力したときのユーザ端末100の位置(例えば、スマートフォンであれば標準的に搭載されているGPS(Global Positioning System)の機能を用いれば、ユーザ端末100の位置情報を検出することは容易である。)についての位置情報等を元データに含めることが可能である。また、ユーザが設定したパスワードや、性別、電話番号等のユーザの属性に関する情報を元データに含めることもできる。とりあえずこの実施形態では、元データは上述の如きものであるとする。
元データは主制御部121から、暗号化部125に送られる。なお、元データの生成は、元データの元となるユーザID及び金額情報を主制御部121が受取った状態であればいつでも主制御部121は実行しうる。したがって、決済装置200から送られて来た許可情報を主制御部121が受取る前であっても、もっと言えば、ユーザIDと金額情報の入力に関するS952の処理が実行された直後であっても、主制御部121は元データの生成に関するS955の処理を実行しうる。
上述したように、決済装置200からユーザ端末100に不許可情報が送られてくる場合がある。この場合には、ユーザ端末100の主制御部121は元データの生成を行わず、仮に不許可情報の入手前に先に元データを生成していたとしても、それを暗号化部125に送ることがない。つまり、不許可情報を受取ったユーザ端末100では、後述するような仮想貨幣暗号化データも仮想貨幣データも生成されることがない。不許可情報には、不許可の理由を示す情報が含まれていても良い。かかる情報に基づく不許可の理由を示す画像がユーザ端末100のディスプレイ101に表示されることにより、ユーザが、例えば自己の入金口座の残高不足等の不許可の理由をディスプレイ101を目視することで確認できるようになっていても構わない。
暗号化部125は、主制御部121から元データを受取ると、元データを暗号化する等して仮想貨幣暗号化データとする(S956)。
上述したように、各ユーザ端末100の暗号化部125は、それぞれ異なる方法で暗号化の処理を実行するようになっている。とはいえ、これには限られないがこの実施形態における各ユーザ端末100の暗号化部125で実行される暗号化の方法は、固定された1つの方法である。各ユーザ端末100で異なる暗号化の処理を実行するため、これには限られないがこの実施形態では、各ユーザ端末100の暗号化部125で実行される暗号化の処理に用いられるアルゴリズムは同一とされているものの、暗号化の処理に用いられる鍵が、それぞれ異なるものとされている。
暗号化部125は、そのアルゴリズムと鍵を用いて、主制御部121から受取った元データを暗号化して、ある文字列を生成する。そして、元データを暗号化することによって得られた文字列から、所定の規則にしたがって一部の文字を抜き出すことにより新たな文字列を生成する。かかる新たな文字列が、仮想貨幣暗号化データである。このようにして暗号化部125は、元データを仮想貨幣暗号化データに変換する。暗号化部125が実行する元データを仮想貨幣暗号化データに変換する処理は、第1実施形態の暗号化部223Aで行われた処理と同様で良い。
生成された仮想貨幣暗号化データを、暗号化部125は主制御部121に送る。
主制御部121は、かかる仮想貨幣暗号化データに基いて仮想貨幣データを生成する(S957)。
主制御部121は、仮想貨幣暗号化データをそのまま仮想貨幣データとする場合もあるが、この実施形態では、仮想貨幣暗号化データに平文のユーザIDを付すことで仮想貨幣データとする。つまり、この実施形態では、例えば、その先頭に付された平文のユーザIDと、ユーザIDの後に繋げられた仮想貨幣暗号化データと、を組合せたものが仮想貨幣データとなる。仮想貨幣データは、ユーザが支払のために用いる金銭的な価値を持つデータであり、仮想貨幣暗号化データはその本体となる。
仮想貨幣データは、そのままデータ入出力部123に送られても良いが、一般的には主制御部121からユーザ端末記録部124に送られ、そこに記録される。
これにて、仮想貨幣データの生成或いは発行が一先ず終了する。
このように、ユーザ端末100では、許可情報を決済装置200から受取ると、それを契機に仮想貨幣データが生成乃至発行される。他方、第2実施形態における決済装置200では、それと並行して、上述した確認用元データの生成が行われる。
上述したように、S961で、決済装置200は、ユーザ端末100からユーザID及び金額情報を受取る。ユーザIDと金額情報とは、主制御部222によって受け取られる。これらに基づき、主制御部222は、確認用元データを生成し、それを第1記録部224Cに記録する(S963A)。ここで、確認用元データは、確認用元データの元となるユーザID及び金額情報を送って来たユーザ端末100で、当該ユーザID及び金額情報に基いて生成された許可情報を受取ったユーザ端末100の主制御部121が生成する元データと同じものとなるようにする。
上述したように、ユーザ端末100の主制御部121が生成する元データは、ユーザIDと金額情報とを単に組合せたものである。決済装置200は、ユーザ端末100からユーザID及び金額情報を送られているのであるから、その主制御部222は、それらを組合せることにより、ユーザ端末100で生成される元データと同一の確認用元データを生成することができる。
もっとも、ユーザ端末100で生成される元データは、ユーザIDと金額情報以外の情報、例えば、タイミング情報、位置情報、ユーザの属性に関する情報等を元データに含むものである場合もある。そのような場合でも、主制御部222で生成される確認用元データはユーザ端末100で生成される元データと同一でなければならない。例えば、ユーザの属性に関する情報であれば、ユーザがその情報を予め決済装置200にユーザIDと紐付けて登録しておく等しておけば、決済装置200の主制御部222は、確認用元データを生成する場合に改めてその情報の提供をユーザ端末100から受けなくても、ユーザ端末100の主制御部121で生成される元データと同一の確認用元データを生成することができる。他方、タイミング情報は、厳密さを問わなければ、決済装置200がユーザ端末100から送られてきたユーザID及び金額情報を受取った日時を決済装置200でそのまま流用することが可能である。しかしながら、ユーザが開始情報を入力したときのユーザ端末100の位置を特定する、ユーザ端末100のGPS等で生成される位置情報については、決済装置200の主制御部222は、確認用元データを生成する場合にその情報の提供をユーザ端末100から受けなければ、ユーザ端末100の主制御部121で生成される元データと同一の確認用元データを生成することができない。したがって、このような場合には、決済装置200は、ユーザ端末100から、ユーザ端末100の主制御部121が生成する元データと同じ確認用元データを生成するための情報の提供をユーザ端末100から受けなければならないこととなる。
なお、第2実施形態では、暗号化部125で実行される暗号化の方法が固定された1通りなのであるから、元データがユーザIDと金額情報としか含まない場合には、同一のユーザ端末100で生成される仮想貨幣データに含まれる仮想貨幣暗号化データのうち、仮想貨幣暗号化データの元となった元データに含まれる金額情報が同一のものは、同一のものとなってしまう。これを嫌うのであれば、同一のユーザ端末100で多数生成される各元データをそれぞれユニークなものとするべきである。例えば、ここまでで述べたどの例によっても構わないがタイミング情報を元データに含めるとか、或いは変形例1で述べた記番号情報を元データに含めれば、暗号化部125で実行される暗号化の方法が常に同一であっても、各仮想貨幣暗号化データは異なるものとなる。記番号である数字が、例えば、その記番号が含められた仮想貨幣データが、そのユーザ端末100が決済装置200から受取った何番目の許可情報に基いて生成された仮想貨幣データであるかを示すものなのであれば、決済装置200は、同一のユーザ端末100に送った許可情報の数を、各ユーザ端末100毎に、例えば各ユーザ端末100のユーザIDと紐付けてカウントしていれば、ユーザ端末100で生成される記番号と同じ記番号を、生成することができる。
以上のような取決めがユーザ端末100と決済装置200との間で予めなされており、そのような取決めに従った処理がユーザ端末100と、決済装置200との間で実行される。なお、ユーザ端末100から決済装置200への、ユーザ端末100の主制御部121が生成する元データと同じ確認用元データを決済装置200の主制御部222が生成できるようにするための情報の提供は、ユーザ端末100から決済装置200へのユーザID及び金額情報の送信についてのS953と同時のタイミングから、決済装置200で確認用元データが生成される直前のタイミングまでのいずれかのタイミングで行われれば良い。
いずれにせよ、第1記録部224Cには確認用元データが記録される。第1記録部224Cに記録される確認用元データは多数であり、それらはそれぞれ、多数のユーザ端末100でそれぞれ生成される多数の元データと同じものとなる。
ユーザ端末100での処理に話を戻す。
仮想貨幣データが発行されたら、ユーザは、支払いを行う相手側である、例えば店舗の店員が管理する決済端末300に対して、ユーザ端末100から仮想貨幣データを引き渡す(S958)。かかる仮想貨幣データの引き渡しは、仮想貨幣データがユーザ端末100で生成された直後に行われても良いし、しばらくの時間、例えば、数日から数ヶ月経ってから行われても良い。かかる仮想貨幣データの引き渡しをいつ行うかはユーザの自由である。
これには限られないがこの実施形態では、仮想貨幣データの引き渡しは、第1実施形態の場合と同様に、ユーザ端末100のディスプレイ101に、表示された二次元バーコードを、決済端末300が備えるカメラで撮像することによって行われる。
カメラで撮像された画像のデータは、決済端末300のカメラからインターフェイス314を介して、データ入出力部323に送られ、そこから主制御部321に送られる。主制御部321は、その画像データに写った二次元バーコードから、仮想貨幣データを生成(再構築)する。これにより、決済端末300は、ユーザ端末100から仮想貨幣データを受領する(S971)。
いずれにせよ、主制御部321は一時的に、例えば、少なくともその仮想貨幣データによる支払いが終了するまで、仮想貨幣データを記録する。かかる記録は、ハードウェアとしては、RAM313上に行われる。
ユーザから仮想貨幣データを受領したら、決済端末300の管理者等は、決済端末300の入力装置を操作して、仮想貨幣データを決済装置200に送るための操作を行う。
かかる操作を行うと、入力装置から、データ入出力部323を介して主制御部321に、その操作内容が送られる。かかる入力がなされると、主制御部321は、仮想貨幣データを、データ入出力部323に対して送る。データ入出力部323は、それらデータを、送受信部に送り、送受信部はそれらデータを、ネットワーク400を介して決済装置200に送る(S972)。このとき、決済端末300は、仮想貨幣データとともに決済端末IDをも決済装置200に送る。以下の説明の場合でも、決済を受けようとする決済端末300は仮想貨幣データとともに決済端末IDを決済装置200に送る。
決済装置200は、その送受信部で、決済端末IDのデータと仮想貨幣データとを受取る(S964)。このように、第2実施形態でも、第1実施形態の場合と同様に、ユーザ端末100から、決済端末300を経て決済装置200に仮想貨幣データは戻ってくる。
決済端末IDの付された仮想貨幣データは、インターフェイス214、データ入出力部221を介して主制御部222に送られる。
それらを受取った主制御部222は、決済端末IDのデータと仮想貨幣データ(場合によっては、仮想貨幣データに含まれていた仮想貨幣暗号化データ)とを決済判定部226へと送り、他方、仮想貨幣データに含まれていたユーザIDを暗号化を行えという指示とともに暗号化部228へと送る。
仮想貨幣データに含まれていたユーザIDとともに暗号化を行なえという指示を受取った暗号化部228は、確認用元データを暗号化する処理を実行して確認用元データから確認用暗号化データを生成する(S965)。
このとき、暗号化部228は、暗号化を行う対象としての確認用元データを第1記録部224Cから読み出す。確認用元データは、上述のようにユーザIDを含んでいる。第1記録部224Cから読み出される確認用元データは、主制御部222から送られてきたユーザIDを含んでいる確認用元データである。なお、第1記録部224Cに、もし暗号化部228が主制御部222から受取ったユーザIDを含む確認用元データが複数存在する場合には、その複数の確認用元データのすべてを暗号化部228は読み出す。
そして、暗号化部228は、第1記録部224Cから読み出した確認用元データを、それが1つの場合にはそれを、複数の場合にはそれらのすべてに対して、ユーザ端末100における暗号化部125で実行されたのと同じ処理を行い、確認用元データを、確認用暗号化データに変換する。
この場合における暗号化の処理は、決済を求めて決済端末300から送られて来た仮想貨幣データに含まれていた仮想貨幣暗号化データがユーザ端末100の暗号化部125で暗号化されたときに用いられたのと同じ方法とされる。暗号化部228は、すべてのユーザ端末100の暗号化部125で暗号化の処理が実行されるときに共通して用いられる暗号化の処理のためのアルゴリズムを保持している。暗号化部228は、また、各ユーザ端末100の暗号化部125で暗号化の処理が実行されるときに各暗号化部125でそれぞれ用いられるユニークな鍵を、各ユーザ端末100のユーザIDと紐付けて保持している。暗号化部228は、確認用元データの暗号化を行う場合、暗号化の処理のための上述のアルゴリズムと、主制御部222から送られてきたユーザIDと同じユーザIDと紐付けられていた暗号化部228が保持していた鍵と、を用いて暗号化の処理を実行する。
その結果、確認用元データは暗号化されある文字列が生成される。暗号化部228は、生成されたその文字列から所定の規則に基いて一部の文字を抜き出して新たな文字列を生成することにより確認用暗号化データを生成する。生成された確認用暗号化データは、それが複数の場合はすべて、暗号化部228から決済判定部226に送られる。
決済判定部226は、主制御部222から仮想貨幣データ(又はそれに含まれていた仮想貨幣暗号化データ)を、暗号化部228から少なくとも1つの確認用暗号化データを、それぞれ受取る。
それらを受取った決済判定部226は、決済判定を実行する(S966)。仮想貨幣暗号化データの真正性の判定を行うという目的自体は第1実施形態と変わりないが、第2実施形態で実行されるその判定の方法は、第1実施形態の場合と異なる。
決済判定部226は、主制御部222から仮想貨幣データを受取った場合にはそれから仮想貨幣暗号化データを取出し、その仮想貨幣暗号化データと、決済判定部226から受取った少なくとも1つの確認用暗号化データとを、比較する。その結果、確認用暗号化データのうちの少なくとも1つが仮想貨幣暗号化データと一致した場合には、当該仮想貨幣暗号化データは真正なものであると判定する。逆に、確認用暗号化データのすべてが仮想貨幣暗号化データと一致しなかった場合には、その仮想貨幣暗号化データは真正なものでないと判定する。なお、上述したように決済判定部226で確認用暗号化データとの同一性を判定される対象は、仮想貨幣データそのものではなく仮想貨幣暗号化データである。したがって、主制御部222から決済判定部226に送られるのは仮想貨幣データそのものではなく、仮想貨幣暗号化データであっても構わない。
このような方法で仮想貨幣暗号化データの真正性の判定を行えるのは、次のような理屈による。ユーザ端末100で生成される仮想貨幣暗号化データは、元データを暗号化部125で暗号化することによって生成される。他方、決済装置200で生成される確認用暗号化データは、確認用元データを暗号化部228で暗号化することによって生成される。ここで、元データと確認用元データとは上述したように同じものであり、また、ユーザ端末100の暗号化部125で実行される暗号化の方法と、暗号化部228で実行される暗号化の方法とは、上述したように、ユーザIDを利用して同じものとなるように制御されている。つまり、同じものから同じ方法で生成された仮想貨幣暗号化データと、確認用暗号化データとは同じものとなるはずである。もっとも、ユーザ端末100で生成された仮想貨幣データが複数存在する場合もありうる。しかしその場合であっても、決済装置200の第1記録部224Cに記録されている確認用元データは、すべてのユーザ端末100で生成されたすべての仮想貨幣データに暗号化された仮想貨幣暗号化データの形で含まれている元データに対応したものであり、また、暗号化部228で暗号化を行うために第1記録部224Cから読み出された確認用暗号化データは、決済端末300から送られてきた仮想貨幣データに含まれていたユーザIDに対応したユーザ端末100で発行されたもののすべてなのであるから、第1記録部224Cから読み出された確認用元データのすべてを暗号化部228で正しい方法により暗号化し、それに基いて暗号化されたデータの一部である確認用暗号化データを生成すれば、その結果生成される確認用暗号化データのうちの少なくとも1つは、仮想貨幣暗号化データに改竄等がない限り、仮想貨幣暗号化データと一致するはずである。
要するに、同じデータに基いて同じ暗号化の手法を行い、更にそこから同じ規則にしたがって一部のデータを抜き出すことにより同じデータを得られる、或いは同じデータを再現できるということにより、第2実施形態の決済判定部226は、仮想貨幣暗号化データの正当性を判定するのである。
なお、第1実施形態で行われていた付加的な判定をも第2実施形態の決済判定でも採用することは自由である。
第2実施形態でも、第1実施形態の場合と同様に、仮想貨幣暗号化データが真正であると決済判定部226が判定した場合には、決済判定部226は金額情報によって特定されている金額の支払いを認めるという肯定的な内容を示す最終判定データを生成し、そう判定されなかった場合には、決済判定部226は、金額情報によって特定されている金額の支払いを認めないという否定的な内容を示す最終判定データを生成する。
いずれにせよ、生成された最終判定データは、決済判定部226から主制御部222に送られる。
主制御部222は、最終判定データを受取り次の処理を行う。
最終判定データが肯定的なものであった場合、主制御部222は、最終判定データによって特定される金額の決済端末300の管理者への支払いの処理を実行する。
最終判定データが肯定的なものであった場合、主制御部222は、決済が行われたこと、及びその金額の情報を少なくとも含むデータである肯定的な判定結果データを生成する。
他方、最終判定データが否定的なものであった場合、主制御部222は決済処理を行わない。
いずれにせよ、判定結果データは、主制御部222から、データ入出力部221を介して送受信部に送られ、ネットワーク400を介して、決済端末300に送信される(S967)。決済端末300に対する判定結果データの送信は省略することも可能であるが、通常は行われるであろう。
判定結果データは、決済端末300の送受信部によって受取られる(S973)。
送受信部によって受取られた判定結果データは、これまでの場合と同様に、主制御部321に送られる。
主制御部321は、表示制御部322に対して、判定結果データに応じた表示をディスプレイに行わせろとの指示を行い、その結果、表示制御部322は、ディスプレイに判定結果データに応じた表示を行わせる(S974)。その表示は、第1実施形態のS934の処理におけるものと同様で良い。
なお、判定結果データの送信をユーザ端末100に対しても行い、ユーザ端末100でもそれに基づく画像のディスプレイ101での表示を行うようにすることも可能である。
以上で、仮想貨幣データを使用しての、ユーザから決済端末300の管理者への支払いの処理が終了する。
なお、以上で説明を省略したが、決済判定部226で、確認用暗号化データと同じものであると判定された元データを、第1記録部224Cから削除することが可能である。これは、決済判定部226で、確認用暗号化データと同じものであると判定された元データがどれかということを、決済判定部226が主制御部222に通知し、更にかかる通知を受けた主制御部222が、かかる通知により特定される確認用元データを第1記録部224Cから削除することにより実現可能である。各仮想貨幣データは、決済装置200で1度しか決済の対象とならないものであるから、決済の対象となった仮想貨幣データに対応する確認用元データは、二度と使用されることはない。そのような不要となった確認用元データを削除するというのが、上述の処理の目的である。別の言葉で言うと、かかる処理は、一度支払に使用された仮想貨幣データ或いは確認用元データが二重に使用されることを防止するということを目的とする。
なお、上述の処理では、決済判定部226で実行される仮想貨幣暗号化データの真正性の判定では、1つの仮想貨幣暗号化データと、1つ或いは複数の確認用暗号化データの対比が必要であった。他方、決済判定部226で行われる真正性の判定を、1つの仮想貨幣暗号化データと、1つの確認用暗号化データの一対一の対比により行うことも可能である。
それは、ユーザ端末100で生成される仮想貨幣データに第2実施形態内で既に述べた記番号を含めることにより実現可能である。この場合の仮想貨幣データは例えば、ユーザIDと、記番号と、仮想貨幣暗号化データとを含んだものとする。記番号は、平文であるものとするが、すべてのユーザ端末100で同一の方法で暗号化されていてもよい。
このような仮想貨幣データを用いる場合、第1記録部224Cに記録されるデータは、確認用元データのみではなく、確認用元データと、その確認用元データに対応する記番号を紐付けたものとする。上述したように主制御部222は記番号を生成可能なのであるから、主制御部222はこのような情報を第1記録部224Cに記録することができる。
また、このような仮想貨幣データを用いる場合、決済装置200に決済端末300等から仮想貨幣データが送られて来たときに、主制御部222は、暗号化部228に暗号化をせよとの指示とともに、ユーザIDのみならず、記番号をも送る。これを受取った暗号化部228は、主制御部222から受取ったユーザIDと同じユーザIDを確認用元データの中に含み、且つ主制御部222から受取った記番号と紐付けられている確認用元データを、第1記録部224Cから読み出す。
このような条件を満たす確認用元データは1つだけであるから、結果として暗号化部228では、その1つの確認用元データから、1つの確認用暗号化データが生成されることになる。
かかる1つの確認用元データが暗号化部228から決済判定部226に送られることにより、決済判定部226では、仮想貨幣暗号化データの真正性の判定のために、1つの仮想貨幣暗号化データと1つの確認用暗号化データとの対比が行われることとなる。
<変形例3>
変形例3による決済システムは、第2実施形態による決済システムと殆ど同じである。特に、決済端末300の構成と、そこで実行される処理とは、第2実施形態におけるそれらと変わるところがない。
他方、変形例3においては、仮想貨幣データのデータ構造は、第2実施形態とやや異なる。第2実施形態における仮想貨幣データは、仮想貨幣暗号化データとユーザIDとを組合せたものであり、仮想貨幣暗号化データは、金額情報とユーザIDとを組合せてなる元データを暗号化して得られた文字列から、その一部を抜き出したデータであった。これに対して、変形例3の仮想貨幣データは、第2実施形態の場合と同じ、仮想貨幣暗号化データ、及びユーザIDと、第1実施形態の仮想貨幣データには含まれていなかった本願発明における暗号化条件データと、を含んでいる。
また、変形例3におけるユーザ端末100及び決済装置200の構成、及びそれらで実施される処理は、第1実施形態におけるそれらと若干異なる。とはいえ、変形例3のユーザ端末100及び決済装置200の構成、及びそれらで実行される処理の大半は、第1実施形態の場合と同じである。
第2実施形態の決済システムでは、多数の仮想貨幣データのそれぞれに含まれる仮想貨幣暗号化データを生成するにあたってユーザ端末100の暗号化部125で実行される暗号化の手法は、仮想貨幣暗号化データを生成するすべての場合において同一であった。他方、この変形例3では、各ユーザ端末100の暗号化部125で元データから仮想貨幣暗号化データを得るために実行される暗号化の手法は複数である、というか所定のタイミングで変化する。
したがって、変形例3の決済装置200の暗号化部228で実行される確認用元データから確認用暗号化データを生成する場合における暗号化の処理も、同一のユーザ端末100で発行された仮想貨幣データに含まれている仮想貨幣暗号化データと同一の確認用暗号化データを生成する場合であっても、ユーザ端末100で行われる暗号化の方法の変化に合わせて(或いは同期させて)適切に変化させられなければならない。より具体的には、決済装置200の暗号化部228は、決済端末300から受取ったある仮想貨幣データに含まれていた仮想貨幣暗号化データと同じ確認用暗号化データを生成しようとした場合に、真正性の判定の対象となるその仮想貨幣暗号化データが、複数のユーザ端末100のどれで発行されたものであるかということに加えて、そのユーザ端末100の暗号化部125で実行され得る複数の暗号化の手法のうちどれを用いて暗号化されたのかを把握することができる必要がある。これを可能としているのが、変形例3の決済装置200の第2実施形態における決済装置200との相違点である。
乱暴であることを承知で言うなら、変形例3と第2実施形態の関係は、変形例1と第1実施形態の関係と同じである。
以下、第2実施形態との相違点に着目しつつ変形例3のユーザ端末100及び決済装置200の構成、及びそこで実行される処理について説明する。特に言及しない点は、相違が無い点である。
まず、ユーザ端末100の構成及びそこで行われる処理について説明する。
上述したように変形例3では、暗号化部125で行われる暗号化は、所定のタイミングで変わるものとする。例えば、元データの暗号化を3回行う度に、或いは、決済装置200が置かれている場所の日付が変わる度に、各ユーザ端末100の暗号化部125で元データを暗号化するために用いられる方法が変化するものとする。これには限られないが、変形例3では、元データを暗号化して仮想貨幣暗号化データにする処理を、各ユーザ端末100における暗号化部125が行う度に、各ユーザ端末100は、暗号化の方法を変えるようになっている。したがって、後述するように、決済装置200の暗号化部228が行う確認用元データから確認用暗号化データを生成する場合における暗号化の処理も、それに合わせて変化する。
暗号化の方法を変化させるには、アルゴリズムを変更する、鍵を変更する、それらの双方を変更するという3種類がありいずれも採用可能ではあるが、変形例3でも変形例1と同様に鍵を変更するものとする。
ユーザ端末100で鍵を変更できるようにするため、ユーザ端末100内の機能ブロックには、図20に示したように鍵生成部126が存在する。鍵生成部126は暗号化部125で暗号化の処理が実行されるときに使用される鍵を生成するものである。鍵生成部126は、変形例1で説明した鍵生成部227と同じものであり、擬似乱数としての解(鍵)を連続して生成することができるものである。
次に、変形例3のユーザ端末100の鍵生成部126で実行される鍵の生成の方法、及び鍵を暗号化部125に提供するタイミングについて説明する。
鍵生成部126が暗号化部125に鍵を供給するタイミングは、暗号化部125が、元データに対して暗号化の処理を行う直前のタイミングである。
上述したように、暗号化部125は、主制御部121から元データを受取ると、元データを暗号化する処理を行い、続けて暗号化によって得られた文字列の中から一部を抜出す処理を行う。変形例3の暗号化部125は、元データを受取ると、元データの暗号化の処理を行うに先立って、鍵生成部126に対して鍵の生成を依頼するデータを送る。このデータを受取った鍵生成部126は、鍵のデータを生成して、それを暗号化部125に送るようになっている。暗号化部125は、不変のアルゴリズムと、提供された鍵とを用いて、元データを暗号化することにより所定の文字列を得て、そしてその文字列の一部を抜出して仮想貨幣暗号化データを得る。
かかる仮想貨幣暗号化データは、第2実施形態の場合と同様に、主制御部121へと送られる。ただし、変形例3の場合には、暗号化部125は、仮想貨幣暗号化データのみならず、その仮想貨幣暗号化データが何番目に生成されたものであるか(つまり、その仮想貨幣暗号化データを暗号化するのに使用された鍵が何番目の鍵であるのか)を特定するための数字を主制御部121へと送る。かかる数字は、これには限られないが例えば、1から始まる連番とすることができ、この実施形態ではそうされている。つまり、1番目に生成された仮想貨幣暗号化データには、「1」というデータが、2番目に生成された仮想貨幣暗号化データには、「2」というデータが、N番目に生成された仮想貨幣暗号化データには、「N」というデータをそれぞれ付して、それらデータを暗号化部125は主制御部121へと送るようになっている。
主制御部121は、仮想貨幣暗号化データに、ユーザIDと、上述の数字のデータとを平文の状態で付す。かかる数字のデータは、ある仮想貨幣データがその仮想貨幣データを発行したユーザ端末100で何番目に発行されたかということを示すユニークな通し番号である。これは、結果として、変形例1で述べた記番号情報と同じものとなる。つまり、変形例3の仮想貨幣データは、仮想貨幣暗号化データに、ユーザID及び記番号を付したものとなる。
次に、変形例3の決済システムにおける決済装置200の構成及びそこで行われる処理について説明する。
変形例3の決済装置200のハードウェア的な構成は、第2実施形態と同じである。変形例3の決済装置200の内部には、第2実施形態の場合と同様に機能ブロックが生成される。変形例3の決済装置200内に生成される機能ブロックを図21に示す。変形例3における機能ブロックには、第2実施形態には存在しなかった、鍵生成部227が存在している。
変形例3の主制御部222も第2実施形態の主制御部222の場合と同様、制御部220内の全体的な制御を行う。第2実施形態の場合と同様、変形例3における主制御部222も、与信判定の処理と決済の処理とを実行するようになっている。
変形例3の主制御部222は、第2実施形態の場合と同様、決済装置200が決済端末300等から決済を求める仮想貨幣データを受付けたとき、仮想貨幣データ(場合によってはそれに含まれる仮想貨幣暗号化データのみ)を決済判定部226に送る他、暗号化部228に、暗号化をせよとの指示を、その仮想貨幣データに含まれていたユーザID、及び記番号とともに送るようになっている。
変形例3の主制御部222が与信判定を行うのは、第2実施形態の場合と同様、主制御部222が、データ入出力部221から、金額情報を受取った場合である。この場合に主制御部222が、信用情報記録部224Bに記録されているデータを利用するのも第2実施形態と同様である。変形例3の信用情報記録部224Bに記録されているデータも、第2実施形態と変わらない。また、主制御部222が与信判定を行った後に行う処理も、第2実施形態の場合と変わりがない。
第2実施形態の場合と同様に、変形例3の主制御部222も、決済判定部226から、最終判定データを受取る場合がある。最終判定データを受取った後に主制御部222が実行する処理は、最終判定データが肯定的であろうと否定的であろうと、第2実施形態と変形例3とで変わりがない。
また、変形例3の主制御部222は、第2実施形態の場合と同様、確認用元データを生成する機能を有している。確認用元データの構造、及びその生成方法は第2実施形態と同様である。変形例3の主制御部222は、第2実施形態の場合と同様に、生成した確認用元データを、第1記録部224Cに記録するようになっている。ただし、変形例3において、第1記録部224Cに記録されるのは、第2実施形態の場合と異なり、元データ、及びそれに対応する記番号である。
暗号化部228は、上述したように、主制御部222から、暗号化をせよとの指示をユーザIDとともに受取る場合がある。
かかる指示を受取った場合、暗号化部228は第1記録部224Cから確認用元データを読み出して、それを暗号化して、更に暗号化により得られた文字列からその一部を抜出して確認用暗号化データとするようになっている。これ自体は第2実施形態と同じであるが、変形例3では、上述のように暗号化の方法を変更しなければならないので、その点で、暗号化の方法が第2実施形態の場合とは異なる。
暗号化部228は、暗号化の処理を変更させる場合に、アルゴリズム、鍵、或いはその双方の変更を行うことができるが、この実施形態ではこれには限られないが、変形例1の場合と同様に鍵を変更するようになっている。暗号化部228が暗号化の処理に用いる鍵は、鍵生成部227から提供される。変形例3における鍵生成部227は、暗号化部228に鍵を提供するためのものである。鍵生成部227が鍵を生成するタイミングは、暗号化部228から鍵の生成の依頼を受けたときであるが、そのより具体的なタイミングについては後述することとする。
変形例3の暗号化部228が第1記録部224Cに記録されている多数の確認用元データのうちのどれを読み出すか、また、暗号化部228が第1記録部224Cから読み出した確認用元データを確認用暗号化データにする処理の詳細については、後述するものとする。
暗号化部228は、第2実施形態の場合と同様に、生成した確認用暗号化データを決済判定部226に送るようになっている。
決済判定部226は、上述したように、決済判定を行う。決済判定部226で実行される処理は、第2実施形態と同様である。決済判定部226は、第2実施形態の場合と同じように最終判定データを生成し、それを主制御部222に対して送るようになっている。
変形例3の決済システムの使用方法、及び動作について説明する。
変形例3の決済システムで実行される処理のうち、決済端末300で実行されるS971〜S974の処理はすべて第2実施形態と同じである。また、変形例3の決済システムのユーザ端末100で実行されるS951〜S958の処理のうちの、元データの暗号化による仮想貨幣暗号化データの生成についてのS956以外の処理は基本的に、第2実施形態と同じである。
変形例3の決済システムでも、第2実施形態の場合と同様に、まず、かかるシステムを使用するための準備として、各ユーザ端末100において、ユーザIDの設定を行うとともに、各決済端末300において、決済端末IDの設定を行う。以降の処理は、第2実施形態で実行された、図19に示した処理に準ずる。
まず、ユーザ端末100で、S951からS953の処理が実行され、決済装置200で、S961〜S963の処理が実行される。変形例3におけるこれら処理はすべて第2実施形態と同じである。
他方、変形例3においては、決済装置200で、確認用元データの生成及び確認用元データの第1記録部224Cへの記録(S963A)が実行される。かかる処理は基本的に、第2実施形態の場合と同様である。この後ユーザ端末100で生成される元データと同じ確認用元データが、第2実施形態の場合と同様にして生成される。生成された確認用元データは、主制御部222によって第1記録部224Cに記録されるが、第1記録部224Cに記録される確認用元データには、上述したように記番号が付される。
そして、ユーザ端末100では、第2実施形態の場合と同じようにして、S955の処理が実行され、第2実施形態の場合と同じようにして、S956の元データの暗号化、及び暗号化して得られた文字列の一部を抜出すことによる仮想貨幣暗号化データの生成の処理が実行される。
S956の処理では、暗号化部125は、鍵生成部126に対して鍵の生成を依頼する。そうするとかかる依頼に応じて鍵生成部126が生成した鍵が暗号化部125に提供されるので、暗号化部125は、その鍵と固定のアルゴリズムとを用いて、元データを暗号化する。更に暗号化部125は、暗号化して得られた文字列の一部を抜出して仮想貨幣暗号化データとする。
得られた仮想貨幣暗号化データは、暗号化部125から主制御部121に送られ、ユーザIDと記番号とが付されて、仮想貨幣データとなる(S957)。
この仮想貨幣データは、ユーザ端末100から決済端末300に引き渡される(S958)。そして、決済端末300で、S971とS972の処理が実行され、決済装置200がその仮想貨幣データを決済端末IDとともに決済端末300から受取る(S964)。
決済装置200において、仮想貨幣データは主制御部222に送られる。
主制御部222は、その仮想貨幣データ(場合によってはそれに含まれる仮想貨幣暗号化データのみ、以下も同様である。)を決済判定部226に送る他、暗号化部228に、暗号化をせよとの指示を、その仮想貨幣データに含まれていたユーザID、及び記番号とともに送る。
かかる指示を受取った暗号化部228は、確認用元データを暗号化するべく、暗号化の処理の対象となる確認用元データを第1記録部224Cから読み出す。読み出される確認用元データは、第1記録部224Cに記録されている確認用元データのうち、暗号化部228が主制御部222から受取ったユーザIDを含んでおり、且つ暗号化部228が主制御部222から受取った記番号が付されたものである。かかる確認用元データは、1つだけである。
他方、暗号化部228は、鍵生成部227に鍵の生成を依頼する。暗号化部228は、鍵の生成を鍵生成部227に依頼するときに、かかる依頼と一緒に、仮想貨幣データに含まれていたユーザIDと、記番号とを鍵生成部227に送る。鍵生成部227は、受付けたユーザIDと紐付けられていた初期解と、解を生成するためのアルゴリズムとを用いて、変形例1の場合と同様の手法を用いて、そのユーザIDで特定されるユーザ端末100で生成されるのと同じ解を生成する。鍵生成部227が、幾つ目までの解を連続して生成するかは、「記番号で特定される数字」番目までの解までである。鍵生成部227は、最後に生成した解を、暗号化に用いる解として、暗号化部228に送る。
暗号化部228は、第1記録部224Cから読み出した1つの確認用元データを、鍵生成部227から受取った1つの鍵と、固定のアルゴリズムとで暗号化する(S965A)。暗号化部228は、その結果得られた文字列の一部を抜出して確認用暗号化データを生成する。暗号化部228は得られた1つの確認用暗号化データを決済判定部226に送る。
そして、決済判定部226は、主制御部222から送られてきた仮想貨幣データに含まれていた仮想貨幣暗号化データと、暗号化部228から受付けた確認用暗号化データとの一致をみることにより、第2実施形態の決済判定部226で実行されたのと同様の判定を行う(S966)。
その後、第2実施形態で説明した、決済装置200で実行されるS967の処理、及び決済端末300で実行されるS973、S974の処理が、変形例3でも実行される。
なお、変形例3では、ユーザ端末100で生成される仮想貨幣データに記番号を含めないようにすることができる。
この場合、暗号化部228で実行される暗号化の処理の内容が、変形例3のここまでに述べたものと異なるものとなる。暗号化の処理を行えとの指示を主制御部222から受取った暗号化部228は、かかる指示とともに主制御部222からユーザIDを受け取っている。
かかる指示を受取った暗号化部228は、確認用元データを暗号化するべく、暗号化の処理の対象となる確認用元データを第1記録部224Cから読み出す。読み出される確認用元データは、第1記録部224Cに記録されている確認用元データのうち、暗号化部228が主制御部222から受取ったユーザIDを含んでいるものである。かかる確認用元データは、1つだけの場合もあるし複数である場合もある。
他方、暗号化部228は、鍵生成部227に鍵の生成を依頼する。暗号化部228は、鍵の生成を鍵生成部227に依頼するときに、かかる依頼と一緒に、仮想貨幣データに含まれていたユーザIDを鍵生成部227に送る。ここで、鍵生成部227は、受付けたユーザIDと紐付けられていた初期解と、解を生成するためのアルゴリズムとを用いて、多数の解を生成する。解の数は、それだけの解(鍵)があれば、そのうちのどれかがユーザ端末100で、仮想貨幣暗号化データを生成する際に使われたものであるという確率が、事実上100%とみなせるだけの多数である。鍵生成部227は、その多数の解(鍵)をすべて暗号化部228に送る。
暗号化部228は、第1記録部224Cから読み出した1つ以上の確認用元データを、鍵生成部227から受取った多数の鍵と、固定のアルゴリズムとで暗号化して、更にそれにより得られた文字列からその一部を抜出すというこれまで何度も述べた処理を実行する。かかる処理は、確認用元データが複数の場合には、各確認用元データのすべてについてそれぞれ実行される。
その結果、暗号化部228では、鍵生成部227が生成した鍵の数に暗号化部228が第1記録部224Cから読み出した確認用元データの数を乗じた数の、多数の確認用暗号化データが生成される。多数の確認用暗号化データはすべて、暗号化部228から決済判定部226へと送られる。
そして、決済判定部226は、主制御部222から送られてきた仮想貨幣データに含まれていた仮想貨幣暗号化データが、暗号化部228から受付けた多数の確認用暗号化データのうちの1つと一致するか否かにより、決済判定を行う。仮想貨幣暗号化データが、多数の確認用暗号化データのうちの1つと一致した場合には決済判定の結果は肯定的なものとなり、多数の確認用暗号化データのどれとも一致しなかった場合には決済判定の結果は否定的なものとなる。
<変形例4>
変形例4による決済システムは、第2実施形態による決済システムと殆ど同じである。特に、ユーザ端末100と、決済端末300との構成、及びそこで実行される処理は、第2実施形態におけるそれらと変わるところがない。また、仮想貨幣データのデータ構造も第2実施形態と同じである。
主に異なるのは、決済装置200の構成、及びそこで実行される処理である。とはいえ、変形例4の決済装置200の構成、及びそこで実行される処理の大半は、第2実施形態の場合と同じである。
第2実施形態の決済装置200と変形例4の決済装置200とは、確認用元データを暗号化して生成された確認用暗号化データを決済判定に用いる、という点では共通する。しかしながら、第2実施形態の決済装置200では、予め生成しておいた確認用元データを、その確認用元データと同じ元データから生成された仮想貨幣暗号化データを含む仮想貨幣データを決済端末300等から受取った後に暗号化する等して確認用暗号化データにするようになっているのに対して、変形例4の決済装置200では、生成した確認用元データを、その確認用元データと同じ元データから生成された仮想貨幣暗号化データを含む仮想貨幣データを決済端末300等から受取る前に暗号化して確認用暗号化データとするという点で、第2実施形態の決済装置200と変形例4の決済装置200とは異なる。
乱暴であることを承知で言うなら、変形例4と第2実施形態の関係は、変形例2と第1実施形態の関係と同じである。
上述したように、変形例4ではユーザ端末100、及び決済端末300の構成、及びそれらが実行する処理は第1実施形態と変わらない。変形例4における仮想貨幣データは、第1実施形態の場合と同様に、仮想貨幣暗号化データにユーザIDを付したものである。
以下、主に、第2実施形態と異なる変形例4の決済システムにおける決済装置200の構成及びそこで行われる処理について説明する。
変形例4の決済装置200のハードウェア的な構成は、第2実施形態と同じである。変形例4の決済装置200の内部には、第2実施形態の場合と同様に機能ブロックが生成される。変形例4の決済装置200の内部に生成される機能ブロックを図22に示す。変形例4の決済装置200における機能ブロックは、概ね第2実施形態におけるそれらと変わりないが、第2実施形態のときに存在した第1記録部224Cが存在せず、その代わりに第2記録部224Dが存在する。
変形例4の主制御部222も第2実施形態の場合と同様、制御部220内の全体的な制御を行う。第2実施形態の場合と同様、変形例4における主制御部222も、与信判定の処理と決済の処理とを実行するようになっている。
ただし、第2実施形態の場合には、主制御部222は、決済装置200が決済端末300等から決済を求める仮想貨幣データを受付けた後、仮想貨幣データ(場合によってはそれに含まれる仮想貨幣暗号化データのみ)を決済判定部226に送る他、暗号化部228に、暗号化をせよとの指示を、その仮想貨幣データに含まれていたユーザIDとともに送るようになっていたが、変形例4の主制御部222は、決済装置200が決済端末300等から決済を求める仮想貨幣データを受付けた後に、仮想貨幣データ(場合によってはそれに含まれる仮想貨幣暗号化データのみ)を決済判定部226に送るようになっているものの、暗号化部228に暗号化をせよとの指示を送ることはない。変形例4の主制御部222が、暗号化をせよとの指示を暗号化部228に送るのは、決済装置200が決済端末300等から決済を求める仮想貨幣データを受付けるか否かとは無関係であり、例えば仮想貨幣データを受付ける前、これには限られないがこの実施形態では、主制御部222が許可情報を生成した直後のタイミングである。また、変形例4における主制御部222は、暗号化部228に暗号化をせよとの指示を送る場合、かかる指示とともに確認用元データをも暗号化部228に送るようになっている。
変形例4の主制御部222が与信判定を行うのは、第2実施形態の場合と同様、主制御部222が、データ入出力部221から、金額情報を受取った場合である。この場合に主制御部222が、信用情報記録部224Bに記録されているデータを利用するのも第2実施形態と同様である。変形例4の信用情報記録部224Bに記録されているデータも、第2実施形態と変わらない。また、主制御部222が与信判定を行った後に行う処理も、第2実施形態と変形例4とで変わりがない。
第2実施形態の場合と同様に、変形例4の主制御部222も、決済判定部226から、最終判定データを受取る場合がある。最終判定データを受取った後に主制御部222が実行する処理は、最終判定データが肯定的であろうと否定的であろうと、第2実施形態と変形例4とで変わりがない。
また、変形例4の主制御部222は、第2実施形態の主制御部222と同じく確認用元データを生成する機能を有している。変形例4の主制御部222が有するかかる機能は第2実施形態の場合と同じである。
暗号化部228は、上述したように、主制御部222から、確認用元データを受取る場合がある。
かかる指示を受取った場合、暗号化部228は主制御部222から受取った確認用元データを暗号化するとともに、暗号化して得られた文字列から所定の規則にしたがって文字列を抜出すことにより、確認用暗号化データを生成するようになっている。確認用暗号化データは、ユーザ端末100の暗号化部125で元データに基いて生成される仮想貨幣暗号化データと同じものとなるようになっている。
暗号化部228が主制御部222から受取った確認用元データをどのようにして確認用暗号化データにするかという確認用暗号化データの生成方法の詳細については、後述するものとする。
暗号化部228は、生成した確認用暗号化データを第2記録部224Dに記録するようになっている。第2記録部224Dには、多数の確認用暗号化データが記録されることになる。
決済判定部226には、上述したように、主制御部222から仮想貨幣データ(又はそれに含まれていた仮想貨幣暗号化データ)が送られてくることがある。これを受取った場合、決済判定部226は、決済判定を行う。その結果、決済判定部226は、決済を認めること、及び決済を認めないことのいずれかの内容を含むデータである最終判定データを生成する。
かかる決済判定の過程は、第2実施形態と変形例4とで異なる。変形例4の決済判定部226が最終判定データをどのようにして生成するかについては後述するものとする。
いずれにせよ、最終判定データを生成したら、決済判定部226はそれを主制御部222に対して送るようになっている。
次に変形例4における決済システムの使用方法、及び動作について図23を参照しながら説明する。
変形例4でも、第2実施形態の場合と同様に、まず、かかるシステムを使用するための準備として、各ユーザ端末100において、ユーザIDの設定を行うとともに、各決済端末300において、決済端末IDの設定を行う。
以後、ユーザ端末100で実行されるS951〜S958の処理は、第2実施形態と同一であり、決済端末300で実行されるS971〜S974の処理も第2実施形態と同一である。また、決済装置200で実行されるS961〜S963までの処理と、S964、S967の処理も第2実施形態と同一である。
以下、それら処理も含めて説明する。
変形例4でも、まず、仮想貨幣データが生成される。
変形例4でも、第2実施形態の場合と同様に、これには限られないが、仮想貨幣データの生成は、開始情報をユーザが自らのユーザ端末100に入力することから始まる(S951)。
ディスプレイ101の表示にしたがいユーザは、ユーザIDと金額情報とをそれぞれ入力する(S952)。次いで、ユーザIDと金額情報とが、データ入出力部123から主制御部121に送られる。ユーザIDと金額情報は、送受信部からネットワーク400を介して、決済装置200に送られる(S953)。
決済装置200は、その送受信部でユーザIDと金額情報とを受取る(S961)。送受信部はそれらユーザIDと金額情報とをデータ入出力部221に送り、データ入出力部221はそのデータを主制御部222に送る。
主制御部222は、与信判定を行う(S962)。かかる与信判定の処理は第2実施形態と変形例4で変わりがない。主制御部222は、与信判定を行う場合、信用情報記録部224Bに記録されているデータを用いる。
いずれにせよ、主制御部222は、ユーザの与信が認められた場合には、許可情報を生成する。許可情報は、ネットワーク400を介してユーザ端末100に送られる(S963)。
ユーザ端末100は、その送受信部で許可情報を受取る(S954)。
許可情報を受取るとユーザ端末100の主制御部121は、先に受け取っていたユーザIDと金額情報とに基いて元データを生成する(S955)。この元データは、第2実施形態の場合と同様に暗号化部125に送られ、それを受取った暗号化部125は、元データを暗号化して仮想貨幣暗号化データとする(S956)。なお、変形例4でも、第2実施形態の場合と同様に、各ユーザ端末100の暗号化部125で実行される暗号化の方法は、固定された1つの方法である。また、そして、主制御部121は、かかる仮想貨幣暗号化データに基いて仮想貨幣データを生成する(S957)。
このように、ユーザ端末100では、許可情報を決済装置200から受取ると、それを契機に仮想貨幣データが生成乃至発行される。他方、変形例4では、それと並行して、確認用元データの生成(S963B)と、確認用元データを暗号化することによる確認用暗号化データの生成及び第2記録部224Dへの記録(S963C)とが行われる。かかるS963Bと、S963Cの処理は、例えば、許可情報の送信についてのS963の処理の直後に行われる。
上述したように、S961で、決済装置200は、ユーザ端末100からユーザID及び金額情報を受取る。ユーザIDと金額情報とは、主制御部222によって受け取られる。これらに基づき、主制御部222は、第2実施形態の場合と同じようにして確認用元データを生成する(S963B)。ここで、確認用元データは、確認用元データの元となるユーザID及び金額情報を送って来たユーザ端末100で、当該ユーザID及び金額情報に基いて生成された許可情報を受取ったユーザ端末100の主制御部121が生成する元データと同じものとなるようにする。
主制御部222は、生成した確認用元データを、暗号化をせよとの指示とともに暗号化部228へと送る。
確認用元データとともに暗号化を行なえという指示を受取った暗号化部228は、確認用元データを暗号化するとともに、暗号化することによって得られた文字列から所定の規則にしたがって一部の文字列を抜出す処理を実行して確認用元データから確認用暗号化データを生成する(S963C)。
確認用元データは、上述のようにユーザIDを含んでいる。他方、暗号化部228は、すべてのユーザ端末100で使用される鍵をユーザIDと紐付けて保持している。暗号化部228が暗号化の処理を行う場合には、そのユーザIDで特定されるユーザ端末100で使用される鍵と、固定の暗号化の処理のためのアルゴリズムを用いる。
その結果、確認用元データは暗号化され、その後得られた文字列の一部が抜出されることにより、確認用暗号化データに変換されることになる。生成された確認用暗号化データを、暗号化部228は第2記録部224Dへと書き込む。
他方、仮想貨幣データが発行されたら、ユーザは、支払いを行う相手側である、例えば店舗の店員が管理する決済端末300に対して、ユーザ端末100から仮想貨幣データを引き渡す(S958)。
決済端末300は、ユーザ端末100から仮想貨幣データを受領する(S971)。
仮想貨幣データは、決済端末IDとともに、決済端末300からネットワーク400を介して決済装置200に送られる(S972)。
決済装置200は、その送受信部で、決済端末IDのデータと仮想貨幣データとを受取る(S964)。決済端末IDの付された仮想貨幣データは、第2実施形態と同様に主制御部222に送られる。
それらを受取った主制御部222は、決済端末IDのデータと仮想貨幣データ(場合によっては、仮想貨幣データに含まれていた仮想貨幣暗号化データ)とを決済判定部226へと送る。
決済判定部226は、主制御部222から仮想貨幣データ(又はそれに含まれていた仮想貨幣暗号化データ)を受取る。
それを受取った決済判定部226は、決済判定を実行する(S966)。仮想貨幣暗号化データの真正性の判定を行うという目的自体は第2実施形態と変わりないが、変形例4で実行されるその判定の方法は、第2実施形態の場合とやや異なる。
決済判定部226は、主制御部222から仮想貨幣データを受取った場合にはそれから仮想貨幣暗号化データを取出し、その仮想貨幣暗号化データと、第2記録部224Dに記録されている多数の確認用暗号化データと比較する。多数の確認用暗号化データの少なくとも1つと仮想貨幣暗号化データが一致した場合には、当該仮想貨幣暗号化データは真正なものであると判定する。逆に、確認用暗号化データのすべてが仮想貨幣暗号化データと一致しなかった場合には、その仮想貨幣暗号化データは真正なものでないと判定する。
このような方法で仮想貨幣暗号化データの真正性の判定を行えるのは、第2実施形態の場合と同様の理由による。繰り返しになるが、第2実施形態と変形例4とで異なるのは確認用元データを暗号化して確認用暗号化データにするタイミングのみであるから、確認用暗号化データを用いて仮想貨幣暗号化データの真正性の判定を行える第2実施形態で既に説明した理由により変形例4でも仮想貨幣暗号化データの真正性の判定が可能なのである。
第2実施形態の場合と同様にして生成された最終判定データは、決済判定部226から主制御部222に送られる。
主制御部222は、最終判定データを受取り第2実施形態と同様に決済処理を行う。また、第2実施形態の場合と同様に、決済装置200では判定結果データを生成し、判定結果データを、ネットワーク400を介して決済端末300に送信する(S967)。
判定結果データは、決済端末300の送受信部によって受取られる(S973)。その結果、決済端末300のディスプレイには、判定結果データに応じた表示が行われる(S974)。
以上により変形例4による、仮想貨幣データを使用しての、ユーザから決済端末300の管理者への支払いの処理が終了する。
なお、以上の説明では、仮想貨幣データにはユーザIDが含まれているものとしていたが、かかるユーザIDは決済判定の実行に関するS966で使用されていない。つまり、変形例4ではユーザIDは、機能していない浮いた状態となっているので、実際のところ変形例4では仮想貨幣データは平文のユーザIDを含んでいなくても構わない。
もっとも仮想貨幣データに含まれているユーザIDを以下のようにして利用することもできる。その場合、第2記録部224Dに記録されるデータを若干変える。上述したように第2記録部224Dには、暗号化部228で生成された確認用暗号化データが多数記録されている。ユーザIDを利用する場合には、暗号化部228は、第2記録部224Dに、確認用暗号化データと紐付けて、その確認用暗号化データの元となった確認用元データに含まれていたユーザIDを記録するようになっていれば良い。こうすることで、第2記録部224Dに記録された確認用暗号化データは、ユーザID毎にタグ付けされた状態となる。
そして、決済判定部226が主制御部222から受取った仮想貨幣データに含まれていた仮想貨幣暗号化データと同一の確認用暗号化データを第2記録部224Dの中から探すときに、決済判定部226が、当該仮想貨幣データに含まれていたユーザIDと同一のユーザIDにタグ付けられている確認用暗号化データのみを、仮想貨幣暗号化データと同一の確認用暗号化データを探す対象とするようにする。このようにすることにより、第2記録部224Dに記録されている多数の確認用暗号化データの中で、仮想貨幣暗号化データと同一であるかの判定を行う対象となるデータを減らすことができる。
変形例4でも、第2実施形態の場合と同様に、使用済みの、つまり仮想貨幣暗号化データと一致した確認用暗号化データを第2記録部224Dから削除するようにすることが可能である。
<変形例5>
変形例5の決済システムは、変形例4と殆ど変わらない。
変形例4では、ユーザ端末100の暗号化部125で仮想貨幣暗号化データの生成のために実行される暗号化の方法も、決済装置200の暗号化部228で確認用暗号化データの生成のために実行される暗号化の方法も、固定された1つの方法であった。これに対して、変形例5では、両暗号化の方法が複数種類である、或いは変化するようになっている。これが、変形例4と変形例5の差分である。
変形例5は、上述の点を除けば、変形例4と同じである。決済端末300は、その構成、及びそこで実行される処理のすべてが変形例4と同じでよく、変形例5ではそうされている。ユーザ端末100は、変形例3のユーザ端末100と、その構成、及びそこで実行される処理のすべてを同じくする。
以下、主に、変形例4と異なる変形例5の決済システムにおける決済装置200の構成及びそこで行われる処理について説明する。
変形例5の決済装置200のハードウェア的な構成は、変形例4と同じである。変形例5の決済装置200の内部には、変形例4の場合と殆ど同じ機能ブロックが生成されるが、鍵生成部227が存在する点でのみ変形例4の場合と異なる(図24)。
変形例5の主制御部222も変形例4の主制御部222の場合と同様、制御部220内の全体的な制御を行う。変形例4の場合と同様、変形例5における主制御部222も、与信判定の処理と決済の処理とを実行するようになっている。与信判定の処理と、決済の処理は、変形例4の場合と同じである。信用情報記録部224Bに記録されるデータ、及びそのデータが与信判定に用いられることも変形例4と同じである。
変形例5の主制御部222は、変形例4の場合と同様、確認用元データを生成する機能を有している。確認用元データの構造、及びその生成方法は変形例4と同様である。変形例5の主制御部222は、変形例4の場合と同様に、生成した確認用元データを、暗号化を行えという指示とともに暗号化部228へと送るようになっている。
暗号化部228は、上述したように、主制御部222から、暗号化をせよとの指示を確認用元データとともに受取る場合がある。
かかる指示を受取った場合、暗号化部228は、主制御部222から受取った確認用元データを暗号化し、暗号化によって得られた文字列から所定の規則にしたがって文字を抜出すことにより確認用暗号化データとするようになっている。これ自体は変形例4と同じであるが、変形例5では、上述のように暗号化の方法を変更しなければならないので、その点で、暗号化の方法が変形例4の場合とは異なる。
暗号化部228は、暗号化の処理を変更させる場合に、アルゴリズム、鍵、或いはその双方の変更を行うことができるが、この実施形態ではこれには限られないが、鍵を変更するようになっている。暗号化部228が暗号化の処理に用いる鍵は、変形例3の場合と同様に鍵生成部227から提供される。鍵生成部227が鍵を生成するタイミングは、暗号化部228から鍵の生成の依頼を受けたときである。
変形例5の暗号化部228が確認用元データをどのようにして暗号化して確認用暗号化データにするかという確認用暗号化データの生成方法の詳細については、後述するものとする。
暗号化部228は、生成した確認用暗号化データを、変形例4の場合と同様に第2記録部224Dに書き込むようになっている。
決済判定部226は、上述したように、決済判定を行う。決済判定部226で実行される処理は、変形例4と同様である。決済判定部226は、変形例4の場合と同じように最終判定データを生成し、それを主制御部222に対して送るようになっている。
変形例5の決済システムの使用方法、及び動作について説明する。
変形例5の決済システムで実行される処理は、基本的に、変形例4の決済システムで実行される処理の流れを示す図23に示された流れと同じである。変形例4と変形例5で主に異なるのは、決済装置200におけるS963Cの処理の詳細である。
変形例5の決済システムでも、変形例4の場合と同様に、まず、かかるシステムを使用するための準備として、各ユーザ端末100において、ユーザIDの設定を行うとともに、各決済端末300において、決済端末IDの設定を行う。
まず、ユーザ端末100で、S951からS953の処理が実行され、決済装置で、S961〜S963の処理が実行される。変形例5におけるこれら処理はすべて変形例4と同じである。
ユーザ端末100は、その送受信部で許可情報を受取る(S954)。
そこから、ユーザ端末100では、S954〜S957の処理が実行されて、仮想貨幣データが生成、或いは発行される。これら過程は、変形例4で述べたユーザ端末100で実行される各処理と同一である。
このように、ユーザ端末100では、許可情報を決済装置200から受取ると、それを契機に仮想貨幣データが生成乃至発行される。他方、変形例5では、変形例4と同様に、それと並行して、確認用元データの生成(S963B)と、確認用元データを暗号化することによる確認用暗号化データの生成及び第2記録部224Dへの記録(S963C)とが行われる。かかるS963Bと、S963Cの処理は、変形例4の場合と同様に、例えば、許可情報の送信についてのS963の処理の直後に行われる。
上述したように、S961で、決済装置200は、ユーザ端末100からユーザID及び金額情報を受取る。変形例4の場合と同様に、これらに基づき、主制御部222は、確認用元データを生成する(S963B)。
主制御部222は、生成した確認用元データを、暗号化をせよとの指示とともに暗号化部228へと送る。
確認用元データとともに暗号化を行なえという指示を受取った暗号化部228は、確認用元データを暗号化する処理を実行して確認用元データから確認用暗号化データを生成する(S963C)。
暗号化部228は、確認用元データを暗号化するための鍵を入手すべく、鍵の生成を鍵生成部227に依頼する。そのとき、暗号化部228は、確認用元データに含まれていたユーザIDを、鍵の生成の依頼とともに鍵生成部227に送る。
鍵生成部227は、変形例3の場合と同様に、受付けたユーザIDと紐付けられていた初期解と、解を生成するためのアルゴリズムとを用いて、そのユーザIDで特定されるユーザ端末100で生成されるのと同じ解を生成する。ここで、鍵生成部227が、幾つ目までの解を連続して生成するかは、「直前に生成された解の次の解」までの解までである。ユーザ端末100で生成される解と、決済端末300で生成される解とは、同じ順番で生成されたもの同士を比較すれば同じものとなるように同期させられているから、決済端末300の鍵生成部227は、ユーザ端末100の鍵生成部126と同じ鍵を生成することができる。
鍵生成部227は、最後に生成した解を、暗号化に用いる解として、鍵生成部227は、暗号化部228に送る。
暗号化部228は、鍵生成部227から受取った鍵と、固定の暗号化の処理のためのアルゴリズムを用いて、主制御部222から受取った確認用元データを暗号化する。そして、暗号化部228は、それにより得られた文字列から所定の規則にしたがって一部の文字を抜出すことにより新たな文字列を生成する。この新たな文字列が確認用暗号化データである。
生成された確認用暗号化データを、暗号化部228は第2記録部224Dへと書き込む。
以降の決済装置200と、決済端末300で行われる処理は、変形例4とすべて同じである。
なお、以上の説明では、仮想貨幣データにはユーザIDが含まれているものとしていたが、変形例4の場合と同様の理由で、仮想貨幣データはユーザIDを含んでいなくても構わない。もっとも変形例5でも、仮想貨幣データに含まれているユーザIDを変形例4の場合と同様の目的、態様で、利用可能である。
変形例5でも、変形例4の場合と同様に、使用済みの確認用暗号化データを第2記録部224Dから削除するようにすることが可能である。
100 ユーザ端末
101 ディスプレイ
102 入力装置
120 制御部
121 主制御部
122 表示制御部
123 データ入出力部
124 ユーザ端末記録部
125 暗号化部
126 鍵生成部
200 決済装置
220 制御部
221 データ入出力部
222 主制御部
223 仮想貨幣データ生成部
223A 暗号化部
223B 結合部
224A 基本データ記録部
224B 信用情報記録部
224C 第1記録部
224D 第2記録部
226 決済判定部
227 鍵生成部
228 暗号化部
300 決済端末
320 制御部
321 主制御部
322 表示制御部
323 データ入出力部
400 ネットワーク

Claims (16)

  1. 所定のネットワークを介して決済装置に送られることにより、前記決済装置で決済される、金銭的な価値を有する電子データである仮想貨幣データのデータ構造であって、
    当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいることで、
    前記仮想貨幣データを受取った前記決済装置が、受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成するとともに、前記仮想貨幣暗号化データが、前記確認用暗号化データと一致した場合に、当該仮想貨幣暗号化データを真正なものとして決済を認める、という処理を行えるようになっている、
    仮想貨幣データのデータ構造。
  2. 前記元データは、仮想貨幣データの発行者の情報を少なくとも含む発行主体情報を含んでいる、
    請求項1記載の仮想貨幣データのデータ構造。
  3. 前記元データを暗号化したときの条件を特定するための情報である暗号化条件データが、更に付されている、
    請求項1記載の仮想貨幣データのデータ構造。
  4. 請求項1から3のいずれかに記載の仮想貨幣データのデータ構造を有する仮想貨幣データを記録している、
    記録媒体。
  5. 請求項4記載の前記記録媒体を内蔵しているとともに、前記ネットワークを介してデータの受信を行う端末装置受信手段を備えており、
    前記仮想貨幣データは、前記端末装置受信手段により受信されてから前記記録媒体に記録されたものである、
    受信装置。
  6. 請求項4記載の前記記録媒体を内蔵しているとともに、前記ネットワークを介してデータの送信を行う送信装置送信手段を備えており、
    前記仮想貨幣データは、前記送信装置送信手段により前記ネットワークを介して前記決済装置に送信されるようになっている、
    送信装置。
  7. 当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる仮想貨幣データを、決済を求める所定の装置からネットワークを介して受取る決済装置受信手段と、
    受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成する決済装置暗号化手段と、
    前記決済装置受信手段で受信された前記仮想貨幣データに含まれていた前記仮想貨幣暗号化データと、前記決済装置暗号化手段で生成された前記確認用暗号化データとを比較し、両者が一致した場合に当該仮想貨幣暗号化データが含まれていた前記仮想貨幣データが真正なものであると判定する判定手段と、
    前記判定手段が、前記仮想貨幣データが真正なものであると判定した場合に、前記元データに含まれる前記金額情報で特定される金額の決済を認める決済手段と、
    を備えている決済装置。
  8. 前記確認用元データ前を記録する第1記録手段を備えているとともに、
    前記決済装置暗号化手段は、前記決済装置受信手段で前記仮想貨幣データを受取った場合に、当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった元データと同じ確認用元データを前記第1記録手段から読み出して、読み出した前記確認用元データに基いて前記確認用暗号化データを生成するようになっている、
    請求項7記載の決済装置。
  9. 前記確認用暗号化データを記録する第2記録手段を備えているとともに、
    前記判定手段は、前記決済装置受信手段が前記仮想貨幣データを受取った場合に、前記第2記録手段に記録されている確認用暗号化データと、前記決済装置受信手段が受取った前記仮想貨幣データに含まれている仮想貨幣暗号化データとを比較し、前記仮想貨幣暗号化データと同じ前記確認用暗号化データが前記第2記録手段に記録されていた場合には、当該仮想貨幣暗号化データを含んでいた前記仮想貨幣データが真正なものであると判定するようになっている、
    請求項7記載の決済装置。
  10. 前記仮想貨幣データには、前記元データを暗号化したときの条件を特定するための情報である暗号化条件データが含まれており、
    前記決済装置暗号化手段は、前記確認用元データを暗号化する場合に、その仮想貨幣暗号化データとともに前記仮想貨幣データに含まれていた前記暗号化条件データに基いて、当該確認用元データの暗号化の方法を決定するようになっている、
    請求項7記載の決済装置。
  11. ネットワークを介してデータの受信を行うことができ、且つデータ処理を行うコンピュータを有している、決済装置で実行される決済方法であって、
    前記コンピュータが実行する、
    当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる仮想貨幣データを、決済を求める所定の装置からネットワークを介して受取る決済装置受信過程と、
    受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成する決済装置暗号化過程と、
    前記決済装置受信過程で受信された前記仮想貨幣データに含まれていた前記仮想貨幣暗号化データと、前記決済装置暗号化過程で生成された前記確認用暗号化データとを比較し、両者が一致した場合に当該仮想貨幣暗号化データが含まれていた前記仮想貨幣データが真正なものであると判定する判定過程と、
    前記判定過程で、前記仮想貨幣データが真正なものであると判定された場合に、前記元データに含まれる前記金額情報で特定される金額の決済を認める決済過程と、
    を含んでいる決済方法。
  12. ネットワークを介してデータの受信を行うことができ、且つデータ処理を行うコンピュータを、決済装置として機能させるためのコンピュータプログラムであって、
    前記コンピュータに、
    当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる仮想貨幣データを、決済を求める所定の装置からネットワークを介して受取る決済装置受信過程と、
    受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成する決済装置暗号化過程と、
    前記決済装置受信過程で受信された前記仮想貨幣データに含まれていた前記仮想貨幣暗号化データと、前記決済装置暗号化過程で生成された前記確認用暗号化データとを比較し、両者が一致した場合に当該仮想貨幣暗号化データが含まれていた前記仮想貨幣データが真正なものであると判定する判定過程と、
    前記判定過程で、前記仮想貨幣データが真正なものであると判定された場合に、前記元データに含まれる前記金額情報で特定される金額の決済を認める決済過程と、
    を実行させるためのコンピュータプログラム。
  13. 仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する生成装置暗号化手段、
    を備えていることにより、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっている、
    仮想貨幣データ生成装置。
  14. 仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する生成装置暗号化手段、
    を備えていることにより、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっており、
    請求項7〜請求項10のいずれかに記載の決済装置と一体となっている、
    仮想貨幣データ生成装置。
  15. コンピュータを含み、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっている、仮想貨幣データ生成装置で実行される方法であって、
    前記コンピュータが実行する、
    当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する過程、
    を含んでいることにより、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成する、
    方法。
  16. コンピュータを、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっている、仮想貨幣データ生成装置として機能させるためのコンピュータプログラムであって、
    前記コンピュータに、
    当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する過程、
    を実行させることにより、
    前記コンピュータに、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成させる、
    コンピュータプログラム。
JP2017157181A 2017-08-16 2017-08-16 決済装置、決済方法、コンピュータプログラム、仮想貨幣データ生成装置、方法 Active JP7017224B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017157181A JP7017224B2 (ja) 2017-08-16 2017-08-16 決済装置、決済方法、コンピュータプログラム、仮想貨幣データ生成装置、方法
US16/639,206 US20200311717A1 (en) 2017-08-16 2018-08-16 Data structure, transmission device, reception device, settlement device, method, and computer program
PCT/JP2018/030399 WO2019035470A2 (ja) 2017-08-16 2018-08-16 データ構造、送信装置、受信装置、決済装置、方法、コンピュータプログラム
EP18846936.5A EP3671601A4 (en) 2017-08-16 2018-08-16 DATA STRUCTURE, TRANSMISSION DEVICE, RECEPTION DEVICE, SETTLEMENT DEVICE, PROCESS, AND COMPUTER PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017157181A JP7017224B2 (ja) 2017-08-16 2017-08-16 決済装置、決済方法、コンピュータプログラム、仮想貨幣データ生成装置、方法

Publications (2)

Publication Number Publication Date
JP2019036139A true JP2019036139A (ja) 2019-03-07
JP7017224B2 JP7017224B2 (ja) 2022-02-08

Family

ID=65362359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017157181A Active JP7017224B2 (ja) 2017-08-16 2017-08-16 決済装置、決済方法、コンピュータプログラム、仮想貨幣データ生成装置、方法

Country Status (4)

Country Link
US (1) US20200311717A1 (ja)
EP (1) EP3671601A4 (ja)
JP (1) JP7017224B2 (ja)
WO (1) WO2019035470A2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7072820B2 (ja) * 2017-06-01 2022-05-23 株式会社 エヌティーアイ データ構造、送信装置、受信装置、決済装置、方法、コンピュータプログラム
EP3913890B1 (en) * 2019-02-28 2023-04-12 Advanced New Technologies Co., Ltd. System and method for blockchain-based authentication
US20210133883A1 (en) * 2019-11-04 2021-05-06 Tellus App, Inc. Decentralized architecture for property-backed vehicles and creation, publication, and distributed owner investment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56137467A (en) * 1980-03-28 1981-10-27 Oki Electric Ind Co Ltd Preventing method of unjust transaction
JP2002123771A (ja) * 2000-10-17 2002-04-26 Jcb:Kk Icカード、および該icカードへの電子マネーチャージ方法
JP2003335085A (ja) * 2002-05-22 2003-11-25 National Printing Bureau 多数の微小記号文字から成る微小記号文字群が印刷された証券印刷物
JP2010186417A (ja) * 2009-02-13 2010-08-26 Toshiba Tec Corp 商品販売データ処理装置およびその制御プログラム
JP2015225370A (ja) * 2014-05-26 2015-12-14 株式会社芳和システムデザイン 認証システム、認証方法、プログラム
JP2015228167A (ja) * 2014-06-02 2015-12-17 株式会社野村総合研究所 クーポン管理システムおよびクーポン管理プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999625A (en) * 1997-02-27 1999-12-07 International Business Machines Corporation Method for electronic payment system with issuer control
JP4904642B2 (ja) * 2001-07-18 2012-03-28 富士通株式会社 注文者認証機能を有する電子商取引提供システム
US7740168B2 (en) * 2003-08-18 2010-06-22 Visa U.S.A. Inc. Method and system for generating a dynamic verification value
US9258296B2 (en) * 2010-07-29 2016-02-09 Nirmal Juthani System and method for generating a strong multi factor personalized server key from a simple user password
US8898086B2 (en) * 2010-09-27 2014-11-25 Fidelity National Information Services Systems and methods for transmitting financial account information
US9652769B1 (en) * 2010-11-30 2017-05-16 Carbonite, Inc. Methods, apparatus and systems for securely storing and/or accessing payment information or other sensitive information based on tokens
US20140164243A1 (en) * 2012-12-07 2014-06-12 Christian Aabye Dynamic Account Identifier With Return Real Account Identifier
WO2018175246A1 (en) * 2017-03-19 2018-09-27 TokenID, Inc. Apparatus and method for payment authorization and authentication based tokenization

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56137467A (en) * 1980-03-28 1981-10-27 Oki Electric Ind Co Ltd Preventing method of unjust transaction
JP2002123771A (ja) * 2000-10-17 2002-04-26 Jcb:Kk Icカード、および該icカードへの電子マネーチャージ方法
JP2003335085A (ja) * 2002-05-22 2003-11-25 National Printing Bureau 多数の微小記号文字から成る微小記号文字群が印刷された証券印刷物
JP2010186417A (ja) * 2009-02-13 2010-08-26 Toshiba Tec Corp 商品販売データ処理装置およびその制御プログラム
JP2015225370A (ja) * 2014-05-26 2015-12-14 株式会社芳和システムデザイン 認証システム、認証方法、プログラム
JP2015228167A (ja) * 2014-06-02 2015-12-17 株式会社野村総合研究所 クーポン管理システムおよびクーポン管理プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
清本 晋作 外3名: "携帯端末に適用可能な簡易決済システムの提案", マルチメディア,分散,協調とモバイル(DICOMO)シンポジウム論文集 1997年〜2006年版 V, vol. 第2002巻 第9号, JPN6019003025, 3 July 2002 (2002-07-03), JP, pages 109 - 112, ISSN: 0004639152 *

Also Published As

Publication number Publication date
JP7017224B2 (ja) 2022-02-08
EP3671601A2 (en) 2020-06-24
EP3671601A4 (en) 2021-09-08
WO2019035470A3 (ja) 2019-04-11
US20200311717A1 (en) 2020-10-01
WO2019035470A2 (ja) 2019-02-21

Similar Documents

Publication Publication Date Title
US11900491B2 (en) Systems and methods for executing and delivering electronic documents
JP7367939B2 (ja) データ構造、送信装置、受信装置、決済装置、方法、コンピュータプログラム
US20140136418A1 (en) System and method for application security
US20200082388A1 (en) Authenticating server and method for transactions on blockchain
KR20160024185A (ko) SE(Secure element)를 이용한 암호화폐 관리 시스템 및 그 방법
KR100914905B1 (ko) 일회용 패스워드 생성기능을 가진 스마트카드 및 이를이용한 전자금융거래시스템
KR102248270B1 (ko) 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법
JP6871411B2 (ja) 暗号動作のセキュアな実行
JP7017224B2 (ja) 決済装置、決済方法、コンピュータプログラム、仮想貨幣データ生成装置、方法
WO2018212262A1 (ja) データ構造、送信装置、受信装置、決済装置、方法、コンピュータプログラム
JP2018081407A (ja) ユーザ端末、方法、コンピュータプログラム
CN113570369A (zh) 一种区块链隐私交易方法、装置、设备及可读存储介质
JP7005000B2 (ja) 仮想貨幣データ発行システム、ユーザ端末、管理装置、方法、並びにコンピュータプログラム
US20200084035A1 (en) Transmission and reception system, transmission device, reception device, method, and computer program
WO2018084283A1 (ja) 金券
JP2008022189A (ja) 仮想記憶媒体を用いた電子申請方法
US20190334707A1 (en) Transmission/reception system, transmission device, reception device, method, and computer program
CN116962021A (zh) 金融合作机构中用户实名认证的方法、装置、设备和介质
JP2020201660A (ja) 情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210622

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211021

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211118

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20211118

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20211124

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20211130

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: 20211221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220120

R150 Certificate of patent or registration of utility model

Ref document number: 7017224

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150