(57)【要約】【課題】安全性の高い仮想貨幣データのデータ構造を提案する。【解決手段】所定の装置からネットワークを介して送られたそれを受け取った場合であり、且つ所定の条件が充足された場合に決済を認める決済装置と組合せて用いられる仮想貨幣データは、仮想貨幣データの金銭的価値を特定するための情報である金額情報を少なくとも含む元データを所定の暗号化の手法により暗号化し、更にその暗号化により得られた文字列から、所定の規則により文字を抜出すことにより生成されたデータである仮想貨幣暗号化データを含む。【選択図】図１２
2019036139.tif 000002
【特許請求の範囲】
【請求項１】
所定のネットワークを介して決済装置に送られることにより、前記決済装置で決済される、金銭的な価値を有する電子データである仮想貨幣データのデータ構造であって、
当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいることで、
前記仮想貨幣データを受取った前記決済装置が、受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成するとともに、前記仮想貨幣暗号化データが、前記確認用暗号化データと一致した場合に、当該仮想貨幣暗号化データを真正なものとして決済を認める、という処理を行えるようになっている、
仮想貨幣データのデータ構造。
【請求項２】
前記元データは、仮想貨幣データの発行者の情報を少なくとも含む発行主体情報を含んでいる、
請求項１記載の仮想貨幣データのデータ構造。
【請求項３】
前記元データを暗号化したときの条件を特定するための情報である暗号化条件データが、更に付されている、
請求項１記載の仮想貨幣データのデータ構造。
【請求項４】
請求項１から３のいずれかに記載の仮想貨幣データのデータ構造を有する仮想貨幣データを記録している、
記録媒体。
【請求項５】
請求項４記載の前記記録媒体を内蔵しているとともに、前記ネットワークを介してデータの受信を行う端末装置受信手段を備えており、
前記仮想貨幣データは、前記端末装置受信手段により受信されてから前記記録媒体に記録されたものである、
受信装置。
【請求項６】
請求項４記載の前記記録媒体を内蔵しているとともに、前記ネットワークを介してデータの送信を行う送信装置送信手段を備えており、
前記仮想貨幣データは、前記送信装置送信手段により前記ネットワークを介して前記決済装置に送信されるようになっている、
送信装置。
【請求項７】
当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる仮想貨幣データを、決済を求める所定の装置からネットワークを介して受取る決済装置受信手段と、
受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成する決済装置暗号化手段と、
前記決済装置受信手段で受信された前記仮想貨幣データに含まれていた前記仮想貨幣暗号化データと、前記決済装置暗号化手段で生成された前記確認用暗号化データとを比較し、両者が一致した場合に当該仮想貨幣暗号化データが含まれていた前記仮想貨幣データが真正なものであると判定する判定手段と、
前記判定手段が、前記仮想貨幣データが真正なものであると判定した場合に、前記元データに含まれる前記金額情報で特定される金額の決済を認める決済手段と、
を備えている決済装置。
【請求項８】
前記確認用元データ前を記録する第１記録手段を備えているとともに、
前記決済装置暗号化手段は、前記決済装置受信手段で前記仮想貨幣データを受取った場合に、当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった元データと同じ確認用元データを前記第１記録手段から読み出して、読み出した前記確認用元データに基いて前記確認用暗号化データを生成するようになっている、
請求項７記載の決済装置。
【請求項９】
前記確認用暗号化データを記録する第２記録手段を備えているとともに、
前記判定手段は、前記決済装置受信手段が前記仮想貨幣データを受取った場合に、前記第２記録手段に記録されている確認用暗号化データと、前記決済装置受信手段が受取った前記仮想貨幣データに含まれている仮想貨幣暗号化データとを比較し、前記仮想貨幣暗号化データと同じ前記確認用暗号化データが前記第２記録手段に記録されていた場合には、当該仮想貨幣暗号化データを含んでいた前記仮想貨幣データが真正なものであると判定するようになっている、
請求項７記載の決済装置。
【請求項１０】
前記仮想貨幣データには、前記元データを暗号化したときの条件を特定するための情報である暗号化条件データが含まれており、
前記決済装置暗号化手段は、前記確認用元データを暗号化する場合に、その仮想貨幣暗号化データとともに前記仮想貨幣データに含まれていた前記暗号化条件データに基いて、当該確認用元データの暗号化の方法を決定するようになっている、
請求項７記載の決済装置。
【請求項１１】
ネットワークを介してデータの受信を行うことができ、且つデータ処理を行うコンピュータを有している、決済装置で実行される決済方法であって、
前記コンピュータが実行する、
当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる仮想貨幣データを、決済を求める所定の装置からネットワークを介して受取る決済装置受信過程と、
受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成する決済装置暗号化過程と、
前記決済装置受信過程で受信された前記仮想貨幣データに含まれていた前記仮想貨幣暗号化データと、前記決済装置暗号化過程で生成された前記確認用暗号化データとを比較し、両者が一致した場合に当該仮想貨幣暗号化データが含まれていた前記仮想貨幣データが真正なものであると判定する判定過程と、
前記判定過程で、前記仮想貨幣データが真正なものであると判定された場合に、前記元データに含まれる前記金額情報で特定される金額の決済を認める決済過程と、
を含んでいる決済方法。
【請求項１２】
ネットワークを介してデータの受信を行うことができ、且つデータ処理を行うコンピュータを、決済装置として機能させるためのコンピュータプログラムであって、
前記コンピュータに、
当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる仮想貨幣データを、決済を求める所定の装置からネットワークを介して受取る決済装置受信過程と、
受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成する決済装置暗号化過程と、
前記決済装置受信過程で受信された前記仮想貨幣データに含まれていた前記仮想貨幣暗号化データと、前記決済装置暗号化過程で生成された前記確認用暗号化データとを比較し、両者が一致した場合に当該仮想貨幣暗号化データが含まれていた前記仮想貨幣データが真正なものであると判定する判定過程と、
前記判定過程で、前記仮想貨幣データが真正なものであると判定された場合に、前記元データに含まれる前記金額情報で特定される金額の決済を認める決済過程と、
を実行させるためのコンピュータプログラム。
【請求項１３】
仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する生成装置暗号化手段、
を備えていることにより、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっている、
仮想貨幣データ生成装置。
【請求項１４】
仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する生成装置暗号化手段、
を備えていることにより、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっており、
請求項７〜請求項１０のいずれかに記載の決済装置と一体となっている、
仮想貨幣データ生成装置。
【請求項１５】
コンピュータを含み、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっている、仮想貨幣データ生成装置で実行される方法であって、
前記コンピュータが実行する、
当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する過程、
を含んでいることにより、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成する、
方法。
【請求項１６】
コンピュータを、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっている、仮想貨幣データ生成装置として機能させるためのコンピュータプログラムであって、
前記コンピュータに、
当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する過程、
を実行させることにより、
前記コンピュータに、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成させる、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想貨幣に関する。
【背景技術】
【０００２】
近年、フィンテック関連の様々な提案がなされており、その一部は既に実用化され始めている。
その中に仮想通貨と称されるものがある。例えば、ナカモトサトシなる人物の論文に発してインターネット上に構築されたシステムによって実現された、ビットコイン（商標）も仮想通貨と一般に称されている。他方、ビットコインは、暗号通貨或いは暗号貨幣とも称されることがある。
【０００３】
まず、ビットコインの仕組みについて説明する。ビットコインは、概ね以下のような仕組みで成立している。
ビットコインは、まず、以下のようにして発生させられる。
ビットコインを発生させる権利を有する者は、後述するノードを管理する管理者に限られる。ノードの管理者は、インターネット上で行われるある種のゲームに参加する。ゲームは繰返し行われ、ゲームに勝ったノードの管理者は、ゲームに勝つ都度、所定の量のビットコインを得ることができるようになっている。
このようにして発生させられたビットコインは、一般的な貨幣と同様に、それを得たノードの管理者から、ノードの管理者以外の者を含む第三者に、例えば、「支払い」を行うために譲渡され、結果として点々と流布されることになる。
ところで、ビットコインに限られないが、仮想通貨、或いは仮想貨幣の分野では、二重譲渡をどのようにして防止するのかというのが、大変重要な問題となる。有体物である一般的な貨幣は、譲渡者から譲受者に譲渡されると譲渡者の手の中から消えるため、譲渡者が譲受者に貨幣を譲渡した後に、同じ貨幣を更に別の譲受者に譲渡することは原則的に不可能である。しかしながら、仮想通貨は複製が容易であり、且つ譲渡者が譲受者に仮想通貨を譲渡したとしても譲渡者が所有していたデータとしての仮想通貨を消滅させないことが可能であるから、同じ仮想通貨を、複数人に譲渡することは極めて容易である。同じ仮想通貨が複数人に譲渡されることを防止できなければ、そのような仮想通貨は通貨として何らの信用も得られない。
かかる二重譲渡の問題をビットコインは、すべての取引記録を保存するという方法で、解決することとしている。取引記録は、例えば以下のようなものである。簡単のために、ビットコインの仕組みへの参加者が、Ａ〜Ｄの４人のみであり、且つノードの管理者は、Ａ、Ｂの２人のみであるとする。ノードの管理者たるＡは、上述のゲームに勝利して１０００の、Ｂは、上述のゲームに勝利して５００のビットコインを得たとする。
この状態では、Ａ〜Ｄがそれぞれ持つビットコインは以下のように記述される。
［表１］
Ａ    +1000
Ｂ     +500
Ｃ        0
Ｄ        0
次いで、ＡはＣに１００の、ＢはＤに２００のビットコインを支払ったとする。
この状態では、Ａ〜Ｄがそれぞれ持つビットコインは以下のように記述される。
［表２］
Ａ    +1000  -100(to C)
Ｂ     +500  -200(to D)
Ｃ        0  +100(from A)
Ｄ        0  +200(from B)
次いで、ＡはＢに３００の、ＤはＣに１００のビットコインを支払ったとする。
この状態では、Ａ〜Ｄがそれぞれ持つビットコインは以下のように記述される。
［表３］
Ａ    +1000  -100(to C)   -300(to B)
Ｂ     +500  -200(to D)   +300(from A)
Ｃ        0  +100(from A) +100(from D)
Ｄ        0  +200(from B) -100(to C)
上記、表１から表３に記載の記録のすべてが取引記録である。上述の取引記録によれば、表３の時点において、Ａの持つビットコインは＋１０００−１００−３００＝６００、同様にＢの持つビットコインは６００、Ｃの持つビットコインは、２００、Ｄの持つビットコインは、１００であるということがわかる。
このような仕組みを持つビットコインは、興味深いことに、上述の例でいうＡ〜Ｄ間におけるビットコインの譲渡において、譲渡者から譲受者にビットコインの本体となる何らかのデータを引渡すということを行わない。それにも関わらず、取引記録さえ存在すれば、Ａ〜Ｄが現在持つビットコインの残高を特定することができる、というのがビットコインの仕組みの巧妙なところである。繰り返すが、ビットコインの仕組みにおいては、「コイン」という有体物を想起させるネーミングを使いながらも、コインの実体に相当するデータは存在しない。
なお、ビットコインの仕組みにおけるノードの管理者がゲームに勝利してビットコインを得るという現象は、取引がある程度進んだ後の例えば、表３以降の時点であってでも生じうる。
【０００４】
上述のように、ビットコインの仕組みにおいては、ビットコインの仕組みに参加する各参加者は、自分が所有するビットコインに相当するデータを持たない。つまり、各参加者の財布は空なのであるが、過去のすべての取引記録が閲覧可能に存在しており、且つその時点におけるビットコインの残高は閲覧記録からこのように特定されるのであるから、各参加者が持つビットコインはきっとこうであるはずである、というお互いの理解、或いは共同幻想によってその仕組が成り立っている。
それだけに、その共同幻想を参加者の皆が信じられるようにするためには、取引記録が正当である、或いは取引記録の改竄が不可能である、という保証が必要である。
それをビットコインは、ブロックチェーンと、プルーフ・オブ・ワークいう技術乃至思想によって担保している。ビットコインの取引記録は、それ以前の取引記録に新たな取引記録を連ねていく、という構造となっている。過去の取引記録に新たな取引記録のデータ（ブロック）を連続して連ねていくことにより、取引記録のデータは、ブロックを鎖のように連ねたものとなる。これがブロックチェーンと呼ばれる。ブロックチェーンに付加される新たなブロックが生成される場合、それ以前のブロックを暗号化することによって得られた値（正確には、過去のブロックのデータから作ったハッシュ値）が新たなブロックに付加される。それにより、ブロックチェーンに新たなブロックが付加された時点よりも後においては、過去のブロックに対して改竄を行うとハッシュ値に変化が生じてその改竄が発覚することとなるので、それ以前に作られた過去のブロックに対するデータの改竄を行うことが事実上不可能となる。
また、ブロックチェーンのデータは、インターネット上に多数存在する、ノードと呼ばれるサーバに記録される。各ノードに記録されるブロックチェーンのデータは同じものである。ノードの管理者は上述のように、上述したある種のゲームの参加者である。そして、新たな取引記録のブロックを過去の取引記録に対して付加できる者は、上述のゲームの勝者のみである。つまり、ノードに新たなブロックを追加できる者を１人のみに限定することにより、ブロックのデータの適正なることを確保している。
以上のような仕組みにより、各ノードに記録されたブロックチェーンは、ハッシュ値により改竄ができない、或いは改竄がなされた場合にはハッシュ値が変化するため、改竄がなされたことが発覚するようになっている。また、各ノードに記録されたブロックチェーンのうちの幾つかが、過去のブロックのデータの改竄が発覚しないようにハッシュ値も含めて同じように改竄されたとしても（例えば、多数のノードに記録されたブロックチェーンのうちの幾つかについて、同じ改竄がなされたとしても）、多数のノードに記録されたブロックチェーンのうちの改竄されていないものの方が多数を占めているのであればそちらを真とすることにより、過去のブロックのデータのハッシュ値も含めた改竄も無力となるようにすることができ、実際ビットコインではこのような多数決の理論を採用している。上述のようにノードの管理者は、ゲームに勝つことにより報酬としてビットコインを得ることができる。それをモチベーションとしてノードの管理者達は、自らのコンピュータのコンピューティングパワーを向上させる。悪意のある第三者がノードに記録されたブロックチェーンのうちの過半数を改ざんするには、ノードの管理者達が持つ多数のコンピュータのコンピューティングパワーの合計の少なくとも半分以上のコンピューティングパワーを持つコンピュータを用意することが必要となる。そのようなコンピューティングパワーを持つコンピュータを準備することは事実上不可能であるという前提を、ビットコインの仕組みに参加する者は信用している。かかる信用、或いは信頼関係により、ブロックチェーンの、ひいては取引記録の正当性が保証され、ビットコインにある種の信用が与えられている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ビットコインの仕組みは上述のごときものであるが、仮想通貨と呼ぶならまだしも、ビットコインが暗号貨幣と称されることに、本願発明者は大きな疑問を抱いている。
というのは、ビットコインの仕組みにおいては、暗号技術は、取引記録の正当性を保証するという目的で使用されているのみであるからである。上述のブロックチェーンに新たなブロックを追加するときにそれ以前のブロックのハッシュ値をとる、というのがそれである。
しかも、ビットコインは、上述したように、価値の譲渡に際して、価値の譲渡人から譲受人に引渡されるデータが存在しない。これは、通貨を機能させるにあたって、価値の譲渡をその譲渡により媒介する有体物たる貨幣（札、硬貨）を用いないと同様である。
つまり、ビットコインは、通貨として機能するかもしれないが、貨幣性は無いし、また、暗号の利用も極めて限定的である。貨幣性がないことによる問題は、過去の取引記録のすべてを記録しておくことが必要であるということであり、これはその大きなデータ量を記録することに壮大な手間、無駄が生じる。実際ビットコインで記録されているブロックチェーンのデータ量は既に膨大であり、それを記録する、しかも多数のノードで同じブロックチェーンのデータを記録することにより、凄まじい無駄が生じている。他方、貨幣の代わりとなるデータをユーザ間で流通させようとすると、そのデータの安全性が問題となる。
【０００６】
そのような観点から、極めて漠然としてではあるが、仮想通貨を成立させるには暗号技術を活用すべきというアイデアは存在しており、暗号技術の適切な利用によって安全な仮想通貨、もっと言えば仮想貨幣を成立させられる可能性がある。
ところで、仮想貨幣で重要なのは、何を置いても信頼性であり、信頼性を生む安全性である。仮に、暗号技術を用いるにしてもどのような暗号化の方法を使用しているのか第三者に看破されないようにすることができれば、その安全性は向上する。
【０００７】
本願発明は、真の意味で暗号貨幣として成立する、データである仮想貨幣を提供することをその課題とし、更には用いられる暗号化の方法を第三者に看破されないようにすることをその課題とする。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため、本願発明者は、以下に説明する発明を提案する。
本願発明は、所定のネットワークを介して決済装置に送られることにより、前記決済装置で決済される、金銭的な価値を有する電子データである仮想貨幣データのデータ構造である。
そして、この仮想貨幣データのデータ構造は、当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる。
【０００９】
かかるデータ構造を有する仮想貨幣データは、決済を認めるか否かを決定する決済装置と組合せて利用される。
決済装置は、暗号技術を利用したものとされている。より詳細には、前記仮想貨幣データを受取った前記決済装置が、受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成するとともに、前記仮想貨幣暗号化データが、前記確認用暗号化データと一致した場合に、当該仮想貨幣暗号化データを真正なものとして決済を認める、という処理を行えるようになっている。
この決済装置は、受取った仮想貨幣データが真正なものであるとで判定された場合に、仮想貨幣データに暗号化して含まれていた元データの中に含まれていた金額情報で特定される金額の決済を認めるものとなっている。ここで、仮想貨幣データの真正性の判定（又は仮想貨幣暗号化データの真正性の判定。なお、本願において、仮想貨幣暗号化データが真性であれば、仮想貨幣データは真性であると取扱われるので、仮想貨幣データの真正性の判定と、仮想貨幣暗号化データの真正性の判定とは、事実上同一である。）は、仮想貨幣データに含まれている仮想貨幣暗号化データと同じ確認用暗号化データをもう一度生成できるか否かによって行われる。仮想貨幣暗号化データは、金額情報を含んだ平文の元データを暗号化して得られる文字列から、所定の規則にしたがってその一部の文字列を抜出すことによって生成される。決済装置は、その真正性の判定の対象となる仮想貨幣データに含まれる仮想貨幣暗号化データの元となった元データと同じ確認用元データを、その元データを暗号化したときと同じ方法で暗号化し、そしてそれにより得られる文字列から、仮想貨幣暗号化データが生成されたときと同じ規則にしたがってその一部を抜き出すことにより、確認用暗号化データを生成する。同じ元データ及び確認用元データに対して同じ処理を行って得られる仮想貨幣暗号化データ及び確認用暗号化データは、仮想貨幣暗号化データに悪意の第三者による改竄等がなければ同一となるはずである。そのような理屈により、本願発明による決済装置は、仮想貨幣暗号化データの真正性の判定を行うのである。
なお、一般的には、「暗号化」は、第三者がそのデータを見ても特別な知識なしでは読めない（理解できない）ようにそのデータを元に戻せるように可逆に変換することを言う場合が多いが、本願発明における「暗号化」という文言は、第三者がそのデータを見ても特別な知識なしでは読めないようにそのデータを変換することを言い、復号化できる変換のみでなく、ハッシュ値を生成する場合のように、不可逆に変換する場合をも含む。本願発明における決済装置では、暗号化の処理は実行されるものの復号化の処理は実行されないため、決済装置で用いられる暗号化の処理のみならず、仮想貨幣暗号化データを生成するときに用いられる暗号化の処理も、可逆の変換であることを要しない。不可逆な変換としては、あるデータのハッシュ値を生成する技術が知られており、そのような公知技術を、本願発明における「暗号化」に応用することが可能である。もっとも、本願発明における「暗号化」は可逆なものであっても構わないことはもちろんである。
上述の如きデータ構造を有する仮想貨幣データは、いわば、その金銭的な価値の本体である仮想貨幣暗号化データが、元データを暗号化して生成されたものであるから、その安全性が高い。また、本願のデータ構造を有する仮想貨幣データによって実現される仮想貨幣は、価値の交換に際して交換される仮想貨幣データが存在するものであるから貨幣性という条件を充足するものであり、またそれ故に膨大な取引記録のデータの記録が不要となる。
そして、本願発明によるデータ構造を有する仮想貨幣データは更なる効果を有する。上述のように、仮想貨幣暗号化データは、元データを暗号化して得られる文字列そのものではなく、その文字列から所定の規則にしたがって抜出された、元データを暗号化して得られた文字列の一部である。したがって、仮に本願発明で用いられる暗号化の方法が仮に可逆のものであったとしても、仮想貨幣暗号化データを元データに戻すことは不可能である。仮想貨幣データに含まれて世に出回る仮想貨幣暗号化データは、このように元データに戻すことが不可能なものなのであるから、仮想貨幣暗号化データを入手した悪意の第三者が仮想貨幣暗号化データに基いて暗号化の方法を看破することは当然に不可能である。したがって、本願発明の如きデータ構造を有する仮想貨幣データ乃至それに含まれる仮想貨幣暗号化データは、その安全性が高いのである。
なお、仮想貨幣暗号化データは、上述のように元データを暗号化して得られる文字列の一部であるが、その一部の文字列はそれだけで仮想貨幣暗号化データの真正性を、たまたま複数の仮想貨幣暗号化データが一致してしまうことにより、或いは悪意の第三者が適当に生成した仮想貨幣暗号化データが正当な仮想貨幣暗号化データとたまたま一致してしまうこと等による誤判定が生じる可能性を事実上０％とみなすことができるような確率で、正確に判定できるようなものである必要がある。したがって、仮想貨幣暗号化データを構成する文字列は、ある程度以上の桁数である必要があるであろうし、元データを暗号化する方法、或いは元データを暗号化して得られた文字列からその一部を抜き出すための所定の規則には、仮想貨幣暗号化データを構成する文字列が、他の仮想貨幣暗号化データを構成する文字列と重複しないようなものとする程度の工夫を行う必要があろう。もっとも、仮想貨幣暗号化データを構成する文字列を長くしていけば、この課題は事実上解決可能である。
元データを暗号化して得られる文字列から、その一部を抜き出すための規則はどのようなものであってもよいし、また、常に同じである必要はない。なお、本願におけるかかる「文字列」は、文字、数字、記号の少なくとも１種類を含むものである。なお、「文字列」が数字のみで構成される場合には、文字列を構成する数字の数は、桁数と称するのが正当であり、「文字列」が文字、記号等を含む場合には、文字列を構成する文字等の数は、文字数と称するのが正当であろうが、本願発明では、文字列を構成するのが数字のみである場合も、ない場合も、簡単のために、文字列を構成する文字等の数を、桁数と称することとする。元データを暗号化して得られる文字列から、その一部を抜き出すための規則は、例えば、元データを暗号化して得られる文字列が仮に１００００桁であるとした場合に、その文字列から偶数桁又は奇数桁のみを抜き出す、その前、後、或いは中間の例えば５００桁程度の適当な桁数を抜き出す、英文字、数字、記号混じりの文字列から、英文字のみ、数字のみ、或いは英文字と数字のみを抜き出す、英文字、数字、記号混じりの文字列から、英文字のみ、数字のみ、或いは英文字と数字のみを所定の桁数だけ抜き出す、というようなものとすることができる。
【００１０】
本願発明における仮想貨幣データには上述のように仮想貨幣暗号化データが含まれる。ここで、仮想貨幣暗号化データは、元データを暗号化し、且つその一部を所定の規則にしたがって抜き出したものである。元データは、金額情報を少なくとも含むものである。元データには、他のデータが含まれていても構わない。
例えば、前記元データは、仮想貨幣データの発行者の情報を少なくとも含む発行主体情報を含んでいてもよく、仮想貨幣データの信用を裏付ける情報である信用情報を含んでいてもよい。
発行主体情報で特定されるのは、仮想貨幣データを一括的に発行する国、地方自治体、ある程度以上の信頼を有する例えば大規模の法人等であっても良いし、或いは、個人であってもよい。本願発明におけるデータ構造を有する仮想貨幣データは、個人でも発行可能とすることができる。言い換えれば、本願発明におけるデータ構造を有する仮想貨幣データは後述する仮想貨幣データ生成装置で生成されるが、仮想貨幣データ生成装置は、個人が所有する場合もあり得る。
信用情報は、仮想貨幣データの信用の元となる所定の資産を特定する情報であってもよい。かかる資産は、仮想貨幣データに対する、担保、或いはデポジットの如き性格を持つか、又は担保、或いはデポジットそのものとなる。金額情報で特定される金額と同じであるかはともかく、少なくともある程度の価値のある資産と対応して仮想貨幣データが作られるのであれば、そしてその仮想貨幣データに含まれる仮想貨幣暗号化データに、仮想貨幣データの信用の元となる資産を特定する情報、例えば、仮想貨幣データと一対一対応する情報が含まれているのであれば、そして更にはある仮想貨幣データを、その仮想貨幣データに含まれる仮想貨幣暗号化データに含まれる資産と交換できるようなルール作りを行えたのであれば、その仮想貨幣データは、兌換貨幣の如き性格を持つものとなりその価値が少なくともある程度は保障されることとなる。
仮想貨幣データには、前記元データを暗号化したときの条件を特定するための情報である暗号化条件データが、更に付されていてもよい。暗号化条件データは、仮想貨幣暗号化データに含まれておらず、むしろ仮想貨幣暗号化データに付された状態で仮想貨幣データに含まれている。後述するが、暗号化条件データは、仮想貨幣データに含まれる仮想貨幣暗号化データが暗号化されたときの条件を特定する（仮想貨幣暗号化データが暗号化されたときの暗号化の方法を少なくとも間接的に特定するための条件であって、仮想貨幣暗号化データが暗号化されたときに使用された暗号化の方法そのものを特定するためのものであってもよい。）ためのものである。元データを暗号化してから仮想貨幣暗号化データが生成される場合において使用される暗号化の方法は、１通りであっても良いが、変化する場合もあり得る。仮想貨幣暗号化データを生成するために使用される暗号化の方法が変化する場合には、決済装置の決済装置暗号化手段は、確認用元データを暗号化する場合に用いるべき暗号化の方法を、これから真正性の確認をしようとする仮想貨幣暗号化データが暗号化されたときに用いられた方法と一致させなければならない。詳しくは追って述べるが、そのような目的を達成するために、暗号化条件データは役に立つ。なお、暗号化条件データは、暗号化されていても良いし、そうでなくても良い。もっとも、暗号化条件データを決済装置が使用する場合には、決済装置はそれを復号化する必要がある。暗号化条件データが暗号化されている場合、その暗号化の方法が変化するのであれば、暗号化条件データの復号化を行えるようにするためのデータを決済装置が更に必要とすることになりかねないので、暗号化条件データを暗号化するのであれば、その暗号化の方法は常に同一とするべきであろう。
【００１１】
以上で説明した仮想貨幣データのデータ構造を有する仮想貨幣データは、もちろん、記録媒体に記録されていても良い。記録媒体は、可搬の記録媒体に限らず、所定の機器に内蔵された記録媒体であってもよい。所定の機器に内蔵された記録媒体は、例えば、ＲＡＭ（random access memory）、ＨＤＤ（hard disk drive）である。
所定の機器は、上述の如き前記記録媒体を内蔵しているとともに、前記ネットワークを介してデータの受信を行う受信装置受信手段を備えており、前記仮想貨幣データは、前記受信装置受信手段により受信されてから前記記録媒体に記録されたものである、受信装置であってもよい。
所定の機器は、また、上述の如き前記記録媒体を内蔵しているとともに、前記ネットワークを介してデータの送信を行う送信装置送信手段を備えており、前記仮想貨幣データは、前記送信装置送信手段により前記ネットワークを介して前記決済装置に送信されるようになっている、送信装置であってもよい。
【００１２】
次いで、決済装置について説明する。以下に説明する決済装置はすべて、以上で説明した仮想貨幣データのいずれかを受取り、所定の条件下で決済を行うものである。
【００１３】
本願発明の決済装置は、当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる仮想貨幣データを、決済を求める所定の装置からネットワークを介して受取る決済装置受信手段と、受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成する決済装置暗号化手段と、前記決済装置受信手段で受信された前記仮想貨幣データに含まれていた前記仮想貨幣暗号化データと、前記決済装置暗号化手段で生成された前記確認用暗号化データとを比較し、両者が一致した場合に当該仮想貨幣暗号化データが含まれていた前記仮想貨幣データが真正なものであると判定する判定手段と、前記判定手段が、前記仮想貨幣データが真正なものであると判定した場合に、前記元データに含まれる前記金額情報で特定される金額の決済を認める決済手段と、を備えている決済装置である。
かかる決済装置は、決済を求める所定の装置から仮想貨幣データを受取った場合に決済を行う。上述の送信装置がその一態様となる、仮想貨幣データを決済装置に送ってくる所定の装置は一般に、仮想貨幣データを生成した装置ではなく、仮想貨幣データを生成した装置或いはその所有者等から、仮想貨幣データを譲り受けた者の所有等する装置である。
決済装置は、仮想貨幣データを受取ったときに、その判定手段で仮想貨幣データの真正性について判定する。判定手段が行う仮想貨幣データの真正性の判定方法は基本的に上述した通りであり、同じ元データ及び確認用元データに対して同じ処理を行って得られる仮想貨幣暗号化データ及び確認用暗号化データは、仮想貨幣暗号化データに悪意の第三者による改竄等がなければ同一となるはずである、という理論に基づく。つまり、仮想貨幣暗号化データと同じ確認用暗号化データを決済装置が作れるか否かによって、仮想貨幣暗号化データの真正性を判定するのである。
決済装置はその決済装置暗号化手段で、その真正性の判定の対象となる仮想貨幣データに含まれる仮想貨幣暗号化データの元となった元データと同じ確認用元データを、その元データを暗号化したときと同じ方法で暗号化し、そしてそれにより得られる文字列から、仮想貨幣暗号化データが生成されたときと同じ規則にしたがってその一部を抜き出すことにより、確認用暗号化データを生成する。そして、決済装置はその判定手段で、仮想貨幣暗号化データと確認用暗号化データとを比較し、両者が一致した場合に仮想貨幣暗号化データが、ひいては仮想貨幣データが真正なものであると判定する。なお、後述するように生成される確認用暗号化データは１つとは限らず、確認用暗号化データが複数の場合には、判定手段は、仮想貨幣暗号化データが確認用暗号化データの少なくとも１つと一致した場合に仮想貨幣暗号化データは正当なものであると判定する。その結果、判定手段が、仮想貨幣データが真正なものであると判定した場合に、決済装置は、その決済手段で、元データに含まれる金額情報で特定される金額の決済を認める。
【００１４】
仮想貨幣データの真正性の確認のために用いられる確認用暗号化データは、決済装置の判定手段で上述の仮想貨幣データの真正性の判定が行われるより前に生成されれば良い。確認用暗号化データの生成時期の代表的なものは２つ存在する。
決済装置は、決済を求めて送られてきた仮想貨幣データを受取った後に、確認用暗号化データを生成する場合がある。かかる決済装置は、例えば、前記確認用元データ前を記録する第１記録手段を備えているとともに、前記決済装置暗号化手段は、前記決済装置受信手段で前記仮想貨幣データを受取った場合に、当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった元データと同じ確認用元データを前記第１記録手段から読み出して、読み出した前記確認用元データに基いて前記確認用暗号化データを生成するようになっている。つまり、この決済装置は、確認用元データを、予め第１記録手段に記録しておくとともに、仮想貨幣データの真正性の判定を行うことが必要となったときに、必要な確認用元データを読み出してそれに基いて確認用暗号化データとするようになっている。判定手段は、仮想貨幣データを決済装置が受取った後に生成された確認用暗号化データと、決済を求めて送られて来た仮想貨幣データに含まれていた仮想貨幣暗号化データとを比較する。
また、決済装置は、決済を求めて送られてきた仮想貨幣データを受取る前に、つまり、仮想貨幣データを他の所定の装置から受取る時期とは無関係に、予め確認用暗号化データを生成しておく場合がある。かかる決済装置は、前記確認用暗号化データを記録する第２記録手段を備えているとともに、前記判定手段は、前記決済装置受信手段が前記仮想貨幣データを受取った場合に、前記第２記録手段に記録されている確認用暗号化データと、前記決済装置受信手段が受取った前記仮想貨幣データに含まれている仮想貨幣暗号化データとを比較し、前記仮想貨幣暗号化データと同じ前記確認用暗号化データが前記第２記録手段に記録されていた場合には、当該仮想貨幣暗号化データを含んでいた前記仮想貨幣データが真正なものであると判定するようになっている。つまり、この決済装置は、確認用元データを、例えば、確認用元データを生成すると同時或いはその直後に決済装置暗号化手段で確認用元データから確認用暗号化データを生成し、生成したその確認用暗号化データを第２記録手段に記録する。そして、この決済装置では、仮想貨幣データの真正性の判定を行うことが必要となったときに、判定手段が第２記録手段から確認用暗号化データと、決済を求めて送られて来た仮想貨幣データに含まれていた仮想貨幣暗号化データとを比較する。
【００１５】
仮想貨幣データに含まれる仮想貨幣暗号化データは、常に同じ方法で暗号化された結果得られた文字列から、所定の規則にしたがって抜出された文字列であっても良いし、また、異なる方法で暗号化された結果得られた文字列から、所定の規則にしたがって抜出された文字列であっても良い。とはいえ、仮想貨幣暗号化データが複数の方法、可能であればすべて異なる方法で暗号化された方が、仮想貨幣データの安全性が向上することは明らかであろう。
ここで、「同じ方法」で暗号化の処理を行うとは、本願では、暗号化の処理を実行するときにおける暗号化を実行するための処理方法が同じである、という意味である。例えば、暗号化の処理は、アルゴリズムと鍵を用いて実行されるのが通常であるから、アルゴリズムと鍵との少なくとも一方が異なる場合であれば、異なる方法で暗号化されたといえる。他方、暗号化の処理に用いられるアルゴリズムが同じである場合には、本願では、同じ方法で暗号化が行われると言うことにする。例えば、各仮想貨幣暗号化データが生成されるときの暗号化の処理が、それらの元となる元データに対して、同一の暗号化のためのアルゴリズムを用いるけれども、それぞれユニークな暗号化の鍵を用いて暗号化を行うものである場合には、各仮想貨幣暗号化データが生成されるときの暗号化の処理がすべて異なるものとなるといえる。
このように、暗号化の方法が複数存在するとき、決済装置は、ある確認用元データを暗号化するにあたって、どのような暗号化の方法でそれを行うか決定しなければならなくなる。もちろんのことであるが、仮想貨幣データは、例えば、上述した送信装置、受信装置の中に多数存在する状態になるから、例えば仮想貨幣データと同数の多数の確認用元データが決済装置で生成されることになるから、決済装置が暗号化の方法を決定しなければならなくなるという事情は益々避けられないものとなる。このような場合、つまり決済装置の決済装置暗号化手段が暗号化の方法を決定する場合に利用されるのが、上述の如き暗号化条件データである。前記仮想貨幣データには、前記元データを暗号化したときの条件を特定するための情報である暗号化条件データが含まれており、前記決済装置暗号化手段は、前記確認用元データを暗号化する場合に、その仮想貨幣暗号化データとともに前記仮想貨幣データに含まれていた前記暗号化条件データに基いて、当該確認用元データの暗号化の方法を決定するようになっていてもよい。
【００１６】
本願発明者は、上述の決済装置で実行される方法をも本願発明の一態様として提案する。その効果は、決済装置による効果と等しい。それは例えば、以下のようなものである。
その方法は、ネットワークを介してデータの受信を行うことができ、且つデータ処理を行うコンピュータを有している、決済装置で実行される決済方法である。
そしてその決済方法は、前記コンピュータが実行する、当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる仮想貨幣データを、決済を求める所定の装置からネットワークを介して受取る決済装置受信過程と、受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成する決済装置暗号化過程と、前記決済装置受信過程で受信された前記仮想貨幣データに含まれていた前記仮想貨幣暗号化データと、前記決済装置暗号化過程で生成された前記確認用暗号化データとを比較し、両者が一致した場合に当該仮想貨幣暗号化データが含まれていた前記仮想貨幣データが真正なものであると判定する判定過程と、前記判定過程で、前記仮想貨幣データが真正なものであると判定された場合に、前記元データに含まれる前記金額情報で特定される金額の決済を認める決済過程と、を含んでいる。
本願発明者は、上述の決済装置として、例えば汎用のコンピュータを機能させるためのコンピュータプログラムをも、本願発明の一態様として提案する。それは例えば、以下のようなものである。
そのコンピュータプログラムは、ネットワークを介してデータの受信を行うことができ、且つデータ処理を行うコンピュータを、決済装置として機能させるためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記コンピュータに、当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを含んでいる仮想貨幣データを、決済を求める所定の装置からネットワークを介して受取る決済装置受信過程と、受取った当該仮想貨幣データに含まれる前記仮想貨幣暗号化データの元となった前記元データと同じ元データである確認用元データを、当該元データを暗号化したときと同じ方法で暗号化して得られた文字列から、当該仮想貨幣暗号化データを生成するときに用いられた所定の規則と同じ規則で抜出された文字列である確認用暗号化データを生成する決済装置暗号化過程と、前記決済装置受信過程で受信された前記仮想貨幣データに含まれていた前記仮想貨幣暗号化データと、前記決済装置暗号化過程で生成された前記確認用暗号化データとを比較し、両者が一致した場合に当該仮想貨幣暗号化データが含まれていた前記仮想貨幣データが真正なものであると判定する判定過程と、前記判定過程で、前記仮想貨幣データが真正なものであると判定された場合に、前記元データに含まれる前記金額情報で特定される金額の決済を認める決済過程と、を実行させるためのコンピュータプログラムである。
【００１７】
本願発明者は、また、本願発明による仮想貨幣データのデータ構造を有する仮想貨幣データを生成するための仮想貨幣データ生成装置をも、本願発明の一態様として提案する。これによる効果は、本願発明による仮想貨幣データのデータ構造で説明した効果に等しい。
一例となる仮想貨幣データ生成装置は、仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する生成装置暗号化手段、を備えていることにより、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっている、仮想貨幣データ生成装置である。
仮想貨幣データ生成装置は、仮想貨幣暗号化データに暗号化条件データを付加する手段を更に備えていても構わない。その効果は、暗号化条件データを含む仮想貨幣データの効果に等しい。
仮想貨幣データ生成装置は、仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する生成装置暗号化手段、を備えていることにより、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっており、上述した決済装置と一体となっていても構わない。
【００１８】
本願発明者は、上述の仮想貨幣データ生成装置で実行される方法をも本願発明の一態様として提案する。その効果は、仮想貨幣データ生成装置による効果と等しい。それは例えば、以下のようなものである。
その方法は、コンピュータを含み、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっている、仮想貨幣データ生成装置で実行される方法である。
そしてその方法は、前記コンピュータが実行する、当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する過程、を含んでいることにより、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成する、方法である。
本願発明者は、上述の仮想貨幣データ生成装置として、例えば汎用のコンピュータを機能させるためのコンピュータプログラムをも、本願発明の一態様として提案する。それは例えば、以下のようなものである。
そのコンピュータプログラムは、コンピュータを、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成することができるようになっている、仮想貨幣データ生成装置として機能させるためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記コンピュータに、当該仮想貨幣データの金銭的な価値を特定する金額情報を少なくとも含むデータである平文の元データを暗号化して得られた文字列から、所定の規則にしたがって抜出された文字列である仮想貨幣暗号化データを生成する過程、を実行させることにより、前記コンピュータに、前記仮想貨幣暗号化データを含む、金銭的価値を有する仮想貨幣のデータである仮想貨幣データを生成させる、コンピュータプログラムである。
【図面の簡単な説明】
【００１９】
【図１】第１実施形態による決済システムの全体構成を示す図。
【図２】図１に示した決済システムに含まれるユーザ端末の外観を示す図。
【図３】図１に示した決済システムに含まれるユーザ端末のハードウェア構成を示す図。
【図４】図１に示した決済システムに含まれるユーザ端末の内部に生成される機能ブロックを示すブロック図。
【図５】図１に示した決済システムに含まれる決済装置のハードウェア構成を示す図。
【図６】図１に示した決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。
【図７】図１に示した決済システムに含まれる決済端末のハードウェア構成を示す図。
【図８】図１に示した決済システムに含まれる決済端末の内部に生成される機能ブロックを示すブロック図。
【図９】図１に示した決済システムで決済が行われるときに実行される処理の流れを示す図。
【図１０】図１に示した決済システムに含まれるユーザ端末のディスプレイに表示される画像の一例を示す図。
【図１１】図１に示した決済システムに含まれる決済装置内の信用情報記録部に記録されているデータの一部の内容を観念的に示す図。
【図１２】（Ａ）図１に示した決済システムで使用される仮想貨幣データに含まれる仮想貨幣暗号化データの元になる元データのデータ構造を観念的に示す図、（Ｂ）図１に示した決済システムで使用される仮想貨幣データのデータ構造を観念的に示す図。
【図１３】図１に示した決済システムに含まれるユーザ端末のディスプレイに表示される画像の他の例を示す図。
【図１４】図１に示した決済システムに含まれるユーザ端末のディスプレイに表示される画像の更に他の例を示す図。
【図１５】変形例１の決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。
【図１６】変形例２の決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。
【図１７】第２実施形態の決済システムに含まれるユーザ端末の内部に生成される機能ブロックを示すブロック図。
【図１８】第２実施形態の決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。
【図１９】第２実施形態の決済システムで決済が行われるときに実行される処理の流れを示す図。
【図２０】変形例３の決済システムに含まれるユーザ端末の内部に生成される機能ブロックを示すブロック図。
【図２１】変形例３の決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。
【図２２】変形例４の決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。
【図２３】変形例４の決済システムで決済が行われるときに実行される処理の流れを示す図。
【図２４】変形例５の決済システムに含まれる決済装置の内部に生成される機能ブロックを示すブロック図。
【発明を実施するための形態】
【００２０】
以下、本発明の第１〜第２実施形態について説明する。各実施形態、変形例の説明で同じ対象には同一の符号を付すものとし、重複する説明は場合により省略するものとする。
また、特に矛盾がない限り、各実施形態と各変形例における構成は互いに組合せることが可能である。
【００２１】
≪第１実施形態≫
図１に、第１実施形態による決済システムの全体構成を概略で示す。
決済システムは、複数のユーザ端末１００−１〜１００−Ｎ（以後、単に、「ユーザ端末１００」と記載する場合もある。）、決済装置２００、及び複数の決済端末３００−１〜３００−ｎ（以後、単に、「決済端末３００」と記載する場合もある。）を含んで構成されている。これらはすべて、ネットワーク４００に接続可能とされている。
ネットワーク４００は、これには限られないが、この実施形態ではインターネットである。
ユーザ端末１００は、本願発明の受信装置の一例であり、決済端末３００は、本願発明の送信装置の一例であり、決済装置２００は本願発明の決済装置及び仮想貨幣データ生成装置の一例にそれぞれ相当する。つまり、この実施形態における決済装置２００は本願発明における決済装置と仮想貨幣データ生成装置とを兼ねており、この実施形態では仮想貨幣データは決済装置２００にて生成されることになる。
これには限られないが、この実施形態では、後述する仮想貨幣データを用いての金銭の支払いは、ユーザ端末１００の管理者（所有者）から、決済端末３００の管理者（決済端末３００を管理又は所有する者等）に対して行われることを原則とし、場合によっては一のユーザ端末１００の管理者から他のユーザ端末１００の管理者に対して行われる。
【００２２】
通常、ユーザ端末１００は各ユーザの所有物である。ユーザ端末１００は、コンピュータを含んでいる。ユーザ端末１００は、携帯電話、スマートフォン、タブレット、ノート型パソコン、デスクトップ型パソコン等である。可搬であり、且つ後述するプログラムをインストールするのに向いているという点を考慮すれば、これらのうち、特に、スマートフォンかタブレットが、ユーザ端末１００として用いるのに好ましい。スマートフォンは例えば、Ａｐｐｌｅ  Ｊａｐａｎ合同会社が製造、販売を行うｉＰｈｏｎｅである。タブレットの例はＡｐｐｌｅ  Ｊａｐａｎ合同会社が製造、販売を行うｉＰａｄである。以下、これには限られないが、ユーザ端末１００がスマートフォンであることとして話を進める。
この実施形態におけるユーザ端末１００は少なくともデータの受信をすることが可能であることが必要であるが、データの送信をもできるものであっても良い。この実施形態におけるユーザ端末１００はスマートフォンであるから、当然にデータの受信と送信の双方が可能である。
【００２３】
次に、ユーザ端末１００の構成を説明する。各ユーザ端末１００−１〜１００−Ｎの構成は、本願発明との関連でいえば同じである。
【００２４】
ユーザ端末１００の外観の一例を図２に示す。
ユーザ端末１００は、ディスプレイ１０１を備えている。ディスプレイ１０１は、静止画又は動画を表示するためのものであり、公知、或いは周知のものを用いることができる。ディスプレイ１０１は例えば、液晶ディスプレイである。ユーザ端末１００は、また入力装置１０２を備えている。入力装置１０２は、ユーザが所望の入力をユーザ端末１００に対して行うためのものである。入力装置１０２は、公知或いは周知のものを用いることができる。この実施形態におけるユーザ端末１００の入力装置１０２はボタン式のものとなっているが、これには限られず、テンキー、キーボード、トラックボール、マウスなどを用いることも可能である。また、ディスプレイ１０１がタッチパネルである場合、ディスプレイ１０１は入力装置１０２の機能を兼ねることになり、この実施形態ではそうされている。
入力装置１０２から入力されるデータは、いずれもその詳細を追って説明するが、例えば、仮想貨幣データの生成依頼についての生成依頼情報、仮想貨幣データの使用についての支払い情報、仮想貨幣データの譲渡についての譲渡情報、及びユーザＩＤである。
【００２５】
ユーザ端末１００のハードウェア構成を、図３に示す。
ハードウェアには、ＣＰＵ（central processing unit）１１１、ＲＯＭ（read only memory）１１２、ＲＡＭ（random access memory）１１３、インターフェイス１１４が含まれており、これらはバス１１６によって相互に接続されている。
ＣＰＵ１１１は、演算を行う演算装置である。ＣＰＵ１１１は、例えば、ＲＯＭ１１２に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。なお、ここでいうコンピュータプログラムには、本願発明の受信装置としてこのユーザ端末１００を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、ユーザ端末１００にプリインストールされていたものであっても良いし、事後的にインストールされたものであっても良い。このコンピュータプログラムのユーザ端末１００へのインストールは、メモリカード等の図示を省略の所定の記録媒体を介して行なわれても良いし、インターネットなどのネットワークを介して行なわれても構わない。
ＲＯＭ１１２は、ＣＰＵ１１１が後述する処理を実行するために必要なコンピュータプログラムやデータを記録している。ＲＯＭ１１２に記録されたコンピュータプログラムは、これに限られず、ユーザ端末１００がスマートフォンであれば、ユーザ端末１００をスマートフォンとして機能させるために必要な、例えば、通話や電子メールを実行するためのコンピュータプログラムやデータが記録されている。ユーザ端末１００は、また、ネットワーク４００を介して受取ったデータに基づいて、ホームページを閲覧することも可能とされており、それを可能とするための公知のｗｅｂブラウザを実装している。
ＲＡＭ１１３は、ＣＰＵ１１１が処理を行うために必要なワーク領域を提供する。ＲＡＭ１１３には後述する仮想貨幣データが記録される場合がある。
インターフェイス１１４は、バス１１６で接続されたＣＰＵ１１１やＲＡＭ１１３等と外部との間でデータのやり取りを行うものである。インターフェイス１１４には、上述のディスプレイ１０１と、入力装置１０２とが接続されている。入力装置１０２から入力された操作内容は、インターフェイス１１４からバス１１６に入力されるようになっているとともに、後述する画像データは、インターフェイス１１４から、ディスプレイ１０１に出力されるようになっている。インターフェイス１１４は、また、図示を省略する送受信部に接続されている。  
送受信部は、インターネットであるネットワーク４００を介してのデータの送受信を行うものである。かかる通信は、有線で行われる場合もあるが、ユーザ端末１００がスマートフォンである場合には、かかる通信は通常無線で行われる。それが可能な限り、送受信部の構成は、公知或いは周知のものとすることができる。送受信部がネットワーク４００から受取ったデータ（例えば仮想貨幣データ）は、インターフェイス１１４により受取られるようになっており、インターフェイス１１４から送受信部に渡されたデータ（例えば仮想貨幣データ）は、送受信部によって、ネットワーク４００を介して外部、例えば、決済装置２００に送られるようになっている。
【００２６】
ＣＰＵ１１１がコンピュータプログラムを実行することにより、ユーザ端末１００内部には、図４で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、ユーザ端末１００を本願発明のユーザ端末として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、ユーザ端末１００にインストールされたＯＳその他のコンピュータプログラムとの協働により生成されても良い。
ユーザ端末１００内には、本願発明の機能との関係で、以下のような制御部１２０が生成され、制御部１２０内に、主制御部１２１、表示制御部１２２、データ入出力部１２３、ユーザ端末記録部１２４が生成される。
【００２７】
制御部１２０は、以下に説明するような情報処理を実行する。
主制御部１２１は、制御部１２０内の全体的な制御を行う。例えば、主制御部１２１は、追って詳述するデータ入出力部１２３から受取ったデータに基づいて表示制御部１２２の制御を行う。
主制御部１２１は、追って説明するデータ入出力部１２３から、これも追って説明する仮想貨幣データを受取る場合がある。それを受取った場合、主制御部１２１は、それをユーザ端末記録部１２４又は表示制御部１２２に送るようになっている。主制御部１２１は後述するようにユーザ端末記録部１２４から仮想貨幣データを読み出す場合がある。それを読み出した主制御部１２１は仮想貨幣データに基づく表示を行わせるべく表示制御部１２２に指示を送るようになっており、また場合によってはそれをデータ入出力部１２３に送るようになっている。
主制御部１２１は、データ入出力部１２３から、入力装置１０２から入力された上述の生成依頼情報、支払い情報、又は譲渡情報を受取る場合があり、それらを受取ったとき、後述するような処理をそれぞれ行うようになっている。例えば、生成依頼情報を受取った場合、主制御部１２１は、それに必要な情報を付加して、データ入出力部１２３へ送るようになっている。必要な情報が付加された生成依頼情報は、データ入出力部１２３から送受信部へと送られ、送受信部からネットワーク４００を介して決済装置２００に送られるようになっている。
表示制御部１２２は、主制御部１２１の制御を受けつつ、ディスプレイ１０１に表示される画像の制御を行う。ディスプレイ１０１には、表示制御部１２２から送られたデータに基づく画像が表示される。主制御部１２１は、表示制御部１２２に対して、ディスプレイ１０１にどのような画像を表示させるべきかという指示を送る。
【００２８】
データ入出力部１２３は、制御部１２０へのデータの入出力を行うものである。具体的には、データ入出力部１２３は、入力装置１０２からの入力を受取るようになっている。入力装置１０２からデータ入出力部１２３へ入力されるのは、例えば、生成依頼情報、支払い情報、譲渡情報である。これらはデータ入出力部１２３から主制御部１２１に送られるようになっている。
また、データ入出力部１２３は、送受信部から、決済装置２００等からネットワーク４００を介して送られて来た仮想貨幣データを受取るようになっている。データ入出力部１２３は、受取った仮想貨幣データを、主制御部１２１に送るようになっている。
また、データ入出力部１２３は主制御部１２１から、仮想貨幣データを受取る場合がある。これを受取ったデータ入出力部１２３は、仮想貨幣データを送受信部に送るようになっており、仮想貨幣データは送受信部から例えば決済装置２００に送られるようになっている。仮想貨幣データの送信先は、後述するように、入力装置１０２からの入力にしたがって、主制御部１２１によって指定される。
【００２９】
ユーザ端末記録部１２４は、上述したように、主制御部１２１がデータ入出力部１２３から仮想貨幣データを受取った場合、主制御部１２１から仮想貨幣データを受取りそれを記録するようになっている。ハードウェアとして捉えた場合、ユーザ端末記録部１２４は、ＲＡＭ１１３の一部により構成されている。
また、ユーザ端末記録部１２４に記録されている仮想貨幣データは、後述するようなタイミングで主制御部１２１により読み出されることがある。
【００３０】
次に、決済装置２００について説明する。
決済装置２００は一般的なコンピュータであり、この実施形態ではより詳細には一般的なサーバ装置である。ハードウェア構成としては、従来の決済システムにおける決済装置と同等のもので良い。
【００３１】
決済装置２００のハードウェア構成を、図５に示す。
ハードウェアには、ＣＰＵ２１１、ＲＯＭ２１２、ＲＡＭ２１３、インターフェイス２１４、この実施形態ではＨＤＤ（hard disk drive）２１５である大容量記録媒体が含まれており、これらはバス２１６によって相互に接続されている。
【００３２】
ＣＰＵ２１１は、演算を行う演算装置である。ＣＰＵ２１１は、例えば、ＲＯＭ２１２に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。なお、ここでいうコンピュータプログラムには、本願発明の決済装置（または、仮想貨幣データ生成装置）としてこの決済装置２００を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、決済装置２００にプリインストールされていたものであっても良いし、事後的にインストールされたものであっても良い。このコンピュータプログラムの決済装置２００へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、インターネットなどのネットワークを介して行なわれても構わない。
ＲＯＭ２１２は、ＣＰＵ２１１が後述する処理を実行するために必要なコンピュータプログラムやデータを記録している。ＲＯＭ２１２に記録されたコンピュータプログラムは、これに限られず、他の必要なコンピュータプログラムが記録されていても良い。
ＲＡＭ２１３は、ＣＰＵ２１１が処理を行うために必要なワーク領域を提供する。
インターフェイス２１４は、バス２１６で接続されたＣＰＵ２１１やＲＡＭ２１３等と外部との間でデータのやり取りを行うものである。インターフェイス２１４は、少なくとも送受信部に接続されている。送受信部がネットワーク４００から受取ったデータは、インターフェイス２１４により受取られるようになっており、インターフェイス２１４から送受信部にわたされたデータは、送受信部によって、ネットワーク４００を介して外部、例えば、ユーザ端末１００に送られるようになっている。
ＨＤＤ２１５は上述のように大容量記録媒体であり、データを記録する。ＣＰＵ２１１が後述する処理を実行するために必要なコンピュータプログラムやデータの少なくとも一部は、ＲＯＭ２１２でなくＨＤＤ２１５に記録されていてもよいし、その大部分がＨＤＤ２１５に記録されている方が実際的であろう。
【００３３】
ＣＰＵ２１１がコンピュータプログラムを実行することにより、決済装置２００内部には、図６で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、決済装置２００を本願発明の決済装置として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、決済装置２００にインストールされたＯＳその他のコンピュータプログラムとの協働により生成されても良い。
決済装置２００内には、本願発明の機能との関係で、以下のような制御部２２０が生成される。制御部２２０内には、データ入出力部２２１、主制御部２２２、仮想貨幣データ生成部２２３、基本データ記録部２２４Ａ、信用情報記録部２２４Ｂ、第１記録部２２４Ｃ、決済判定部２２６が生成される。
【００３４】
データ入出力部２２１は、制御部２２０へのデータの入出力を行うものである。具体的には、データ入出力部２２１は、主制御部２２２から後述する種々のデータを受付けるようになっている。
例えば、データ入出力部２２１は、主制御部２２２から仮想貨幣データを受付けるようになっている。受取られた仮想貨幣データは、データ入出力部２２１から、送受信部に送られ、ネットワーク４００を介してユーザ端末１００に送られるようになっている。
データ入出力部２２１は、また、ネットワーク４００を介してユーザ端末１００又は決済端末３００から送受信部が受取った後述する種々のデータを送受信部から受取り、受取ったそれらデータを主制御部２２２に送るようになっている。例えば、データ入出力部２２１は、送受信部から仮想貨幣データ、または生成依頼情報を受取る場合があり、それらのいずれかを受取ったデータ入出力部２２１はそれらを主制御部２２２に送るようになっている。
【００３５】
主制御部２２２は、制御部２２０内の全体的な制御を行う。例えば、後述する決済の処理を主制御部２２２は行うようになっており、また、仮想貨幣データ生成部２２３、決済判定部２２６等に後述するデータを送ることにより、必要な処理を行わせるようになっている。
主制御部２２２は、上述したように、データ入出力部２２１から、生成依頼情報を受取る場合があり、それを受取った主制御部２２２は、付されたデータとともにそれを仮想貨幣データ生成部２２３に送るようになっている。
主制御部２２２は、上述したように、データ入出力部２２１から、仮想貨幣データを受取る場合があり、それを受取った主制御部２２２は仮想貨幣データを決済判定部２２６に送るようになっている。なお、この場合に決済判定部２２６に送られるのは、仮想貨幣データに含まれていたデータのうち仮想貨幣暗号化データのみであっても良い。
主制御部２２２は、また、決済判定部２２６から、後述する最終判定データを受取る場合がある。最終判定データは、後述するように、決済を認めること、或いは決済を認めないことのいずれかを示すデータである。主制御部２２２は、決済を認めることを内容とする後述する肯定的な最終判定データを受取った場合、決済処理を行うようになっている。決済処理は、この実施形態では、仮想貨幣暗号化データを送ってきた決済端末３００への金銭の支払いを認めるための処理である。主制御部２２２は、どのような決済を行ったかというデータを保持するようになっている。例えば、主制御部２２２は、誰（どの決済端末３００の管理者等）への幾らの支払いを最終的に許可したのかという情報を、各決済端末３００毎に図示せぬ記録媒体に記録するようになっている。
他方、決済を認めないことを内容とする後述する否定的な最終判定データを受取った場合、主制御部２２２は、決済を認めるための処理を行わない。
主制御部２２２は、また、後述する与信判定を行う機能を有している。与信判定を行う場合、これには限られないがこの実施形態における主制御部２２２は、信用情報記録部２２４Ｂに記録されているデータを用いる。信用情報記録部２２４Ｂに記録されているデータの詳細については後述する。
【００３６】
仮想貨幣データ生成部２２３は、上述したように、主制御部２２２から生成依頼情報を受取る場合がある。それに付加されたデータとともに生成依頼情報を受取った場合、仮想貨幣データ生成部２２３は、仮想貨幣データを生成するようになっている。仮想貨幣データ生成部２２３には、暗号化部２２３Ａと、結合部２２３Ｂとが含まれている。暗号化部２２３Ａは、元データ又は確認用元データを暗号化する等して、それらをそれぞれ仮想貨幣暗号化データ又は確認用暗号化データに変換する機能を有している。他方、結合部２２３Ｂは、仮想貨幣暗号化データに必要なデータを付加して仮想貨幣データにする機能を有している。
仮想貨幣データ生成部２２３は、仮想貨幣データを生成するに先立って、生成依頼情報に付加されたデータに基いて後述する元データを生成するようになっている。仮想貨幣データ生成部２２３は、また、その暗号化部２２３Ａでかかる元データを暗号化するとともに、元データを暗号化して得られた文字列から、後述するような所定の規則にしたがって抜き出した文字列を生成する。これにより得られた文字列が仮想貨幣暗号化データである。仮想貨幣データは、仮想貨幣暗号化データに基いて生成される。仮想貨幣データ生成部２２３が、元データをどのようにして生成するのか、また、仮想貨幣データ生成部２２３における暗号化部２２３Ａが仮想貨幣暗号化データをどのようにして生成するのか、及び結合部２２３Ｂが仮想貨幣データをどのようにして生成するかについての詳細については後述する。
これには限られないが、この実施形態における仮想貨幣データ生成部２２３は、仮想貨幣データを生成するにあたり、基本データ記録部２２４Ａに記録されているデータを使用するようになっている。より正確には、仮想貨幣データ生成部２２３は、仮想貨幣データを生成するにあたり基本データ記録部２２４Ａに記録されているデータのうち必要なものを読み出し、それを利用するようになっている。
生成した仮想貨幣データを、仮想貨幣データ生成部２２３は、主制御部２２２に送るようになっている。
基本データ記録部２２４Ａには、仮想貨幣データを生成する場合に必要なデータが記録されている。基本データ記録部２２４Ａに記録されているデータの詳細については追って述べる。
他方、仮想貨幣データ生成部２２３は、元データを生成したら、それを暗号化部２２３Ａで暗号化する他、第１記録部２２４Ｃに記録するようになっている。第１記録部２２４Ｃに記録された元データは、内容的には元データから変更されることはないが、第１記録部２２４Ｃに記録された場合における元データを、確認用元データと称することにする。かかる処理は繰り返し行われるので、通常、第１記録部２２４Ｃには、確認用元データが、多数記録された状態となる。
仮想貨幣データ生成部２２３は、また、決済判定部２２６から、確認用暗号化データの生成の依頼を受けることがある。かかる依頼を受けたら仮想貨幣データ生成部２２３は、第１記録部２２４Ｃから確認用元データを読み出し、それを暗号化して確認用暗号化データを生成するようになっている。確認用暗号化データの生成方法については後述する。なお、生成された確認用暗号化データを、仮想貨幣データ生成部２２３は、決済判定部２２６に送るようになっている。
【００３７】
決済判定部２２６は、上述したように、主制御部２２２から、仮想貨幣データ（又は仮想貨幣暗号化データ）を受取る場合がある。
仮想貨幣データ（又は仮想貨幣暗号化データ）を受取った場合、決済判定部２２６は、決済を認めて良いか否かについての判定である決済判定を行う。その結果、決済判定部２２６は、決済を認めること、及び決済を認めないことのいずれかの内容を含むデータである最終判定データを生成するようになっている。決済判定部２２６は、後述のように、基本データ記録部２２４Ａに記録されていたデータをかかる判定を行う場合に利用する場合がある。最終判定データをどのようにして決済判定部２２６が生成するかについては後述するものとするが、この実施形態における決済判定部２２６は、最終判定を行うに先立って、暗号化部２２３Ａに、確認用暗号化データの生成の依頼を行う。決済判定部２２６は、その依頼に基いて暗号化部２２３Ａが生成して暗号化部２２３Ａから決済判定部２２６に供給された確認用暗号化データを、最終判定に用いるようになっている。
最終判定データを生成したら、決済判定部２２６はそれを主制御部２２２に対して送るようになっている。
【００３８】
次に、決済端末３００について説明する。
決済端末３００は、クレジットカードを用いた決済システムで用いられていた決済端末と同様の役割を担うものであり、一般的なコンピュータである。例えば、決済端末３００はタブレットにより構成されているものとする。
図２と同様であるからその外観の図示を省略するが、決済端末３００は、図示を省略のタッチパネル式のディスプレイを備えている。結果として、決済端末３００は、ディスプレイと、入力装置を備えることになる。もっとも、これに代えて、決済端末３００は、タッチパネル式でないディスプレイと、テンキー、キーボード、マウス、トラックボール等の公知又は周知の入力装置のうちから必要なものを選択してなる入力装置とを備えていても、換言すれば、ディスプレイと入力装置とを別個のものとして備えていても良い。とりあえず、この実施形態の決済システムはタッチパネル式のディスプレイを備えるものとして以下、話を進める。
また、決済端末３００は図示せぬカメラを備えている。カメラは、外付けでも良いが、タブレットである決済端末３００は一般に、公知の内蔵のカメラを備えており、この実施形態でもそうなっている。
【００３９】
決済端末３００のハードウェア構成を、図７に示す。
ハードウェアには、ＣＰＵ３１１、ＲＯＭ３１２、ＲＡＭ３１３、インターフェイス３１４が含まれており、これらはバス３１６によって相互に接続されている。
ＣＰＵ３１１は、演算を行う演算装置である。ＣＰＵ３１１は、例えば、ＲＯＭ３１２に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。このコンピュータプログラムは、決済端末３００にプリインストールされていたものであっても良いし、事後的にインストールされたものであっても良い。このコンピュータプログラムの決済端末３００へのインストールは、メモリカード等の所定の記録媒体を介して行われても良いし、ＬＡＮ或いはインターネットなどのネットワークを介して行なわれても構わない。
ＲＯＭ３１２は、ＣＰＵ３１１が後述する処理を実行するために必要な、言い換えれば、このコンピュータを本願発明における送信装置として機能させるためのコンピュータプログラムやデータを記録している。ＲＯＭ３１２に記録されたコンピュータプログラムは、これに限られず、他の必要なコンピュータプログラムが記録されていても良い。
ＲＡＭ３１３は、ＣＰＵ３１１が処理を行うために必要なワーク領域を提供する。
インターフェイス３１４は、バス３１６で接続されたＣＰＵ３１１やＲＡＭ３１３等と外部との間でデータのやり取りを行うものである。インターフェイス３１４は、少なくとも図示を省略の送受信部に接続されている。送受信部はネットワーク４００に対して接続されており、少なくともネットワーク４００を介したデータの送信を行えるようになっていればよいが、この実施形態ではネットワーク４００を介してのデータの送信と受信の双方を行えるようになっている。インターフェイス３１４から送受信部に渡されたデータは、送受信部によって、ネットワーク４００を介して外部、例えば、決済装置２００に送られるようになっている。インターフェイス３１４から出力され送受信部から送信されるデータは、この実施形態との関係では主に仮想貨幣データである。
インターフェイス３１４は、また、タッチパネル式ディスプレイに設けられた入力装置に接続されており、入力装置からの入力を受付けるようになっている。インターフェイス３１４は、タッチパネル式ディスプレイに接続されており、タッチパネル式のディスプレイに後述する画像を表示するためのデータを送るようになっている。入力装置からインターフェイス３１４に入力されるデータは、例えば、決済の開始を指示するデータ、後述する決済端末ＩＤ等である。
インターフェイス３１４は、また、上述するカメラと接続されている。カメラからインターフェイス３１４に入力されるのは、仮想貨幣データを特定するための画像を含む画像データである。若干正確性を欠くが、事実上、インターフェイス３１４には、カメラから仮想貨幣データが入力される。
ハードウェアに大容量記録媒体が含まれて良いこと、それが存在する場合の機能は既に述べたとおりである。
【００４０】
ＣＰＵ３１１がコンピュータプログラムを実行することにより、決済端末３００内部には、図８で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、決済端末３００を本願発明の決済端末として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、決済端末３００にインストールされたＯＳその他のコンピュータプログラムとの協働により生成されても良い。
決済端末３００内には、本願発明の機能との関係で、以下のような制御部３２０が生成され、制御部３２０内に、主制御部３２１、表示制御部３２２、データ入出力部３２３が生成される。
【００４１】
制御部３２０は、以下に説明するような情報処理を実行する。
主制御部３２１は、制御部３２０内の全体的な制御を行う。例えば、主制御部３２１は、追って詳述するデータ入出力部３２３から受取ったデータに基づいて表示制御部３２２の制御を行う。
主制御部３２１は、追って説明するデータ入出力部３２３から、仮想貨幣データを受取るようになっている。各決済端末３００の主制御部３２１は各決済端末３００毎にユニークな決済端末ＩＤを記録している。主制御部３２１は、受取った仮想貨幣データに決済端末ＩＤのデータを付してデータ入出力部３２３に送るようになっている。
表示制御部３２２は、主制御部３２１の制御を受けつつ、タッチパネル式とされた上述のディスプレイに表示される画像の制御を行う。ディスプレイには、表示制御部３２２から送られたデータに基づく画像が表示される。主制御部３２１は、表示制御部３２２に対して、ディスプレイにどのような画像を表示させるべきかという指示を送る。
【００４２】
データ入出力部３２３は、制御部３２０へのデータの入出力を行うものである。
具体的には、データ入出力部３２３は、入力装置からの入力を受取り、それを主制御部３２１に送るようになっている。入力装置からデータ入出力部３２３へ入力されるデータの例は、決済の開始を指示するデータがある。また、上述の決済端末ＩＤが入力される場合もある。また、データ入出力部３２３には、カメラで撮像された仮想貨幣データを含む画像データが入力される場合もある。
また、データ入出力部３２３は、図示を省略の送受信部に対して、データを出力するようになっている。送受信部に対して出力されるデータは、主制御部３２１から送られてきた仮想貨幣データである。この仮想貨幣データには、決済端末ＩＤが付されている。送受信部に対して出力されたデータは、送受信部から決済装置２００に対してネットワーク４００を介して送信される。
【００４３】
次に以上のような決済システムの使用方法、及び動作について図９を参照しながら説明する。
【００４４】
まず、かかるシステムを使用するための準備として、各ユーザ端末１００において、ユーザＩＤの設定を行うとともに、各決済端末３００において、決済端末ＩＤの設定を行う。
ユーザＩＤは、各ユーザ端末１００を識別するための、各ユーザ端末１００においてユニークなＩＤであり、一般的には英字、数字、記号の羅列である。決済端末ＩＤも同様である。多数のユーザＩＤが重複しないようにするために、各ユーザ端末１００に対するユーザＩＤを決済装置２００（或いはその管理者等）が発行するようにしてもよい。決済端末ＩＤについても同様である。或いは、ユーザ端末１００のハードウェアに出荷時から埋め込まれている個体識別番号をユーザＩＤとして利用することもできる。決済端末ＩＤについても同様である。
各ユーザ端末１００の管理者は、その入力装置１０２を操作することにより当該ユーザ端末１００についてのユーザＩＤの入力を行う。なお、個体識別番号をユーザＩＤとして用いる場合には、かかる入力は不要である。ユーザＩＤのデータは、入力装置１０２から、インターフェイス１１４に送られ、インターフェイス１１４から制御部１２０に送られる。制御部１２０のデータ入出力部１２３はこれを受取り、主制御部１２１に送る。主制御部１２１は、それを保持する、或いは主制御部１２１内に記録する。
他方、主制御部１２１は、ユーザＩＤのデータをデータ入出力部１２３へと送る。ユーザＩＤのデータは、そこから送受信部へと送られ、ネットワーク４００を介して決済装置２００へと送られる。
決済装置２００は、その送受信部でユーザＩＤのデータを受取る。ユーザＩＤのデータは、送受信部からインターフェイス２１４に送られ、インターフェイス２１４から制御部２２０に送られる。制御部２２０のデータ入出力部２２１はこれを受取り、主制御部２２２に送る。主制御部２２２は、それを保持する、或いは主制御部２２２内に記録する。この処理をすべてのユーザ端末１００が行うことにより、主制御部２２２は、すべてのユーザ端末１００のリストを持つことになる。かかるリストは、誰（どのユーザ端末１００の所有者）のために仮想貨幣データを生成するのか、ということを決済装置２００が特定するために用いられる。
各決済端末３００の管理者は、その入力装置を操作することにより当該決済端末３００についての決済端末ＩＤの入力を行う。決済端末ＩＤのデータは、入力装置から、インターフェイス３１４に送られ、インターフェイス３１４から制御部３２０に送られる。制御部３２０のデータ入出力部３２３はこれを受取り、主制御部３２１に送る。主制御部３２１は、それを保持する、或いは主制御部３２１内に記録する。
他方、主制御部３２１は、決済端末ＩＤのデータをデータ入出力部３２３へと送る。決済端末ＩＤのデータは、そこから送受信部へと送られ、ネットワーク４００を介して決済装置２００へと送られる。
決済装置２００は、その送受信部で決済端末ＩＤのデータを受取る。決済端末ＩＤのデータは、送受信部からインターフェイス２１４に送られ、インターフェイス２１４から制御部２２０に送られる。制御部２２０のデータ入出力部２２１はこれを受取り、主制御部２２２に送る。主制御部２２２は、それを保持する、或いは主制御部２２２内に記録する。この処理をすべての決済端末３００が行うことにより、主制御部２２２は、すべての決済端末３００のリストを持つことになる。かかるリストは、誰（どの決済端末３００の管理者）に対しての支払い（決済）を認めるか、ということを決済装置２００が特定するために用いられる。
【００４５】
まず、仮想貨幣データが生成される。
これには限られないが、この実施形態では、仮想貨幣データの生成は、生成依頼情報の生成をユーザが開始するところから始まる（Ｓ９１１）。
生成依頼情報の生成を開始するには、例えば、ユーザは、ディスプレイ１０１上に表示されている図示を省略のアイコンにタッチすればよい。そうすると、その操作内容が入力装置１０２からインターフェイス１１４、データ入出力部１２３を介して主制御部１２１に送られ、生成依頼情報の生成が開示される。
生成依頼情報は、ユーザがユーザ端末１００の入力装置１０２を操作することによって生成する。生成依頼情報には、ユーザＩＤと、ユーザが支払いに用いようとする金額を特定する金額情報が少なくとも付加される。
生成依頼情報の生成が開始されると、主制御部１２１は、表示制御部１２２に対して、ユーザＩＤ等の入力をユーザに促すような画像をディスプレイ１０１に表示せよとの指示を送る。この指示を受付けた表示制御部１２２は、ディスプレイ１０１に、例えば、図１０（Ａ）の如き、ユーザに対して、ユーザＩＤと、ユーザが支払いを行おうとする金額と、の入力を促す画像を表示する。ユーザは、ユーザＩＤと示された部分の右側にユーザＩＤを、金額（円）と示された部分の右側に自分が支払おうとする金額をそれぞれ入力する（Ｓ９１２）。ここでは、金額の単位は円であるが、金額の単位はこれには限られず、金額の単位は法定通貨の単位であるか否かを問わない。ユーザが入力したユーザＩＤと金額を特定するための情報である金額情報とについてのデータは、入力装置１０２からインターフェイス１１４を介してデータ入出力部１２３に入力され、主制御部１２１に送られる。ユーザが入力したユーザＩＤと金額情報は、入力中も含めて、主制御部１２１に制御された表示制御部１２２の制御によってディスプレイ１０１に表示されるから、ユーザは、ディスプレイ１０１を確認しながら、ユーザＩＤと金額情報との入力を行うことができる。図１０（Ｂ）に示した例によれば、ユーザは、この決済システムを用いて、２５０００円の支払いを行おうとしている。
ユーザＩＤと金額情報の入力が終わったら、ユーザは、ディスプレイ１０１に表示された「決定」と書かれたボタンをクリックする。
【００４６】
「決定」と書かれたボタンをユーザがクリックすると、ユーザＩＤと金額情報とが、データ入出力部１２３から主制御部１２１に送られる。主制御部１２１は、ユーザＩＤと金額情報とを生成依頼情報に付加する。なお、生成依頼情報には、他の情報が付加されていても良い。
生成依頼情報は、ユーザＩＤ及び金額情報とともに主制御部１２１からデータ入出力部１２３に送られ、データ入出力部１２３から送受信部に送られる。生成依頼情報は付加された情報とともに、送受信部からネットワーク４００を介して、決済装置２００に送られる（Ｓ９１３）。
なお、以後もそうであるが、この実施形態において、ネットワーク４００を介して行われる通信はすべて、暗号化通信であってもよい。この場合の暗号化、及び復号化に用いられる技術は公知、或いは周知のものとすることができる。
【００４７】
決済装置２００は、その送受信部で、付加された情報とともに生成依頼情報のデータを受付ける（Ｓ９２１）。送受信部は生成依頼情報のデータを、付加された情報とともにデータ入出力部２２１に送り、データ入出力部２２１はそれらデータを主制御部２２２に送る。
必ずしもこの限りではないが、この実施形態における主制御部２２２は、ここで、ユーザＩＤで特定されるユーザ端末１００に対して仮想貨幣データを生成して良いか否かの判定である与信判定を行う（Ｓ９２２）。後述するように、特に問題なければ、決済装置２００はユーザ端末１００に対して仮想貨幣データを発行することになるが、仮想貨幣データは金銭的な価値のあるデータなのであるから、そのようなデータを生成依頼情報を送ってきたユーザに発行して良いか否かの判定を行うのである。かかる与信判定を行うことにより、その後に発行される仮想貨幣データの信用力が向上する。
これには限られないが、この実施形態では、与信判定には、信用情報記録部２２４Ｂに記録されているデータを用いる。これには限られないが、この実施形態における信用情報記録部２２４Ｂには、各ユーザについての入金口座の残高が記録されている。各ユーザの入金口座は、例えば図１１（Ａ）に示したように、ユーザＩＤと紐付けられている。各ユーザの入金口座の残高は、各ユーザが予め決済装置２００の管理者等に支払った金額（複数回の場合もある）から、後述したようにして信用情報を発生させるために使用された金額を除した金額とされるようになっている。図１１（Ａ）によれば、ユーザＩＤがd2af1apfaであるユーザの入金口座の残高は１０００００円である。ユーザＩＤに紐付けられているこの入金口座の残高を主制御部２２２は、信用情報記録部２２４Ｂから読み出す。
主制御部２２２は、例えば、金額情報で特定される金額と読み出された入金口座残高との大小を比較することにより与信判定を行う。例えば、金額情報で特定される金額の方がその時点における入金口座の残高よりも小さい場合に、主制御部２２２は与信を認めるようにすることができる。主制御部２２２は、与信を認めた場合には、例えば、その入金口座の残高から金額情報で特定される金額（この実施形態であれば２５０００円）を除して、その除した金額を決済装置２００の管理者等の管理する口座に移す。そうすることにより、決済装置２００の管理者等は、その金額情報で特定される金額の支払を追って行うことができるようになるため、或いは支払の責任を負うことができるようになるため、決済装置２００の管理者が追って必ず支払いを行う責任を追うような仕組みづくりを行うか否かはさておき、その金額情報で特定される価値を有することになる、後述するようにして生成される仮想貨幣データは、その信頼性が極めて高いものとなる。この場合の入金口座に入れられていた金額の金銭、或いはそこから決済装置２００の管理者等の口座に移された金銭は、仮想貨幣データに対するデポジット或いは担保の如き性格を持つことになるか、又は担保、或いはデポジットそのものとなる。
なお、主制御部２２２が、金額情報で特定される金額の方がその時点における入金口座残高よりも小さい場合に与信を認めるようにするという与信の判定方法はあくまでも一例であり、例えば、金額情報で特定される金額の８割とか５割の金額がその時点における入金口座の残高よりも小さい場合に与信を認めるとか、他のルールを定めることももちろん可能である。例えば、金額情報で特定される金額の８割の金額がその時点における入金口座の残高よりも小さい場合に与信を認めるとした場合には、主制御部２２２はその８割の金額を入金口座の残高から除することもできるし、金額情報で特定される金額そのものを入金口座の残高から除することもできる。また、仮想貨幣データを生成する場合によって（例えば、時期やユーザの別によって）異なるルールを適用することも可能である。
或いは、決済装置２００は、ユーザ端末１００が生成依頼情報を決済装置２００に送った場合に、それを送ってきたユーザ端末１００を操作するユーザに対して生成依頼情報に含めて送信してきた金額情報で特定される金額（或いはその８割とか、５割とかのその金額の一部の金額）の支払いを促すようになっているとともに、その金額をユーザが、例えばユーザ端末１００からのクレジットカードによる支払い（かかるクレジットカードのオンラインによる支払は、公知或いは周知である）により決済装置２００の管理者に支払ったことが確認された場合に、決済装置２００の主制御部２２２がユーザの与信が認められると判定するようになっていても良い。この場合においても、決済装置２００の管理者等の口座には、上述の例の場合と同様に、デポジット或いは担保としての性質を持つ金銭が蓄積されることになる。
いずれにせよ、主制御部２２２は、ユーザの与信が認められた場合には、信用情報を生成し、ユーザが送ってきた生成依頼情報に付加されていたユーザＩＤと金額情報に、信用情報を付加して仮想貨幣データ生成部２２３に送る。
この実施形態における信用情報は、「２５０００円という現金を決済装置２００の管理者等が預かっている」という情報、或いは単に「２５０００円」という情報であっても良い。より細かく設定するのであれば、決済装置２００の管理者等が預かった金銭（例えば紙幣）の現物が存在するのであれば、その紙幣の記番号を更に付す、或いはその紙幣の例えば一部の画像を更に付す等の工夫を行うことも可能である。この実施形態では、決済装置２００等の管理者が幾らの金銭を預かっているかということを示す、この実施形態の例でいえば「２５０００円」という情報が信用情報であるものとする。
【００４８】
ユーザＩＤ、金額情報、及び信用情報を受取った仮想貨幣データ生成部２２３は、仮想貨幣データを生成する（Ｓ９２３）。
仮想貨幣データを生成するに先立って、仮想貨幣データ生成部２２３は元データを生成する。元データは少なくとも金額情報を含む平文のデータである。この実施形態における元データには、これには限られないが、金額情報に加え、発行主体情報、及び信用情報が含まれる。
上述したように、仮想貨幣データ生成部２２３は、仮想貨幣データを生成するにあたり、基本データ記録部２２４Ａに記録されているデータを必要に応じて利用する。仮想貨幣データの生成方法を説明するために、まず、基本データ記録部２２４Ａに記録されているデータについて説明する。
この実施形態における基本データ記録部２２４Ａに記録されているデータは、発行主体情報となり得る情報である。
発行主体情報は、仮想貨幣データの発行者についての情報を含む情報であり、概ね仮想貨幣データの発行の経緯を示す情報であるといえる。発行主体情報となり得る情報は例えば、仮想貨幣データの発行者を特定する発行者情報であり、仮想貨幣データの発行者たる決済装置２００を特定するための情報であり、これは例えば、決済装置２００のＩＰアドレスである。なお、生成依頼情報の発信者を発行者とすることも可能であり、その場合には、発行者情報は、ユーザ端末１００のＩＰアドレスやユーザＩＤとなる。発行主体情報となり得る情報の他の例は、仮想貨幣データの真正さを保証する権限を持つ者である、例えば、政府機関が発行した仮想貨幣データの真正さを保証する情報である認証用情報である。発行主体情報となり得る情報の更に他の例は、仮想貨幣データを他の仮想貨幣データから区別するための各仮想貨幣データにユニークな情報である記番号情報である。発行主体情報に他の情報が含まれていても良いし、後述するように、基本データ記録部２２４Ａに記録されていないデータが含まれても構わない。これらのうち必須なのは、仮想貨幣データの発行者（この実施形態では、それはユーザ端末１００であるものとする。）を特定するための情報のみである。また、認証用情報、記番号情報以外の情報が発行主体情報となり得る情報として基本データ記録部２２４Ａに記録されていても構わない。
上述の記番号情報について補足する。記番号情報は、記番号についての情報である。例えば、日本国の政府（正確には日本銀行）が発行する紙幣には、数字とアルファベットの羅列である、其々の紙幣にユニークな記番号が記録されている。それと同様に、過去に発行された仮想貨幣データと新たに発行される仮想貨幣データとを区別させるために、元データには記番号情報が含まれることがある。記番号情報は、日本国の政府が発行する紙幣に印刷された記番号と同様に、例えば、１６進法で表記された、１から始まる多数桁（例えば、１０００桁）の連番の番号である。記番号情報として基本データ記録部２２４Ａに記録されているのは、その直前に発行された仮想貨幣データに含まれることになった記番号情報の次の記番号情報である。記番号情報は、後述するようにして、書換えられる。
【００４９】
金額情報等を受取った仮想貨幣データ生成部２２３は、仮想貨幣データを生成するにあたって、基本データ記録部２２４Ａに記録されていた、発行主体情報となり得る情報を読み出す。そして、必ずしもこの順序でなければならないわけではないが、発行主体情報、金額情報、信用情報が結合されたデータである元データ（図１２（Ａ））を生成する。
この実施形態における発行主体情報には、これには限られないが、仮想貨幣データの発行者たる決済装置２００を特定するための情報である発行者情報、認証用情報、記番号情報、及びタイミング情報が含まれる。仮想貨幣データ生成部２２３は、記番号情報を読み出すと、基本データ記録部２２４Ａに記録されていた記番号情報を「＋１」して上書きする。これにより、記番号情報は常に最新の状態に保たれる。また、タイミング情報は、仮想貨幣データ生成部２２３がかかる仮想貨幣データを生成した日時（例えば、金額情報等を仮想貨幣データ生成部２２３が受取った時刻）を例えば秒単位で示すものである。これを可能とするため、仮想貨幣データ生成部２２３は、決済装置２００が備える図外の時計から、日付、及び時刻に関する情報を常に受け取っている。
この実施形態における金額情報は、上述のように２５０００円という金額を特定する情報である。
そして、図１２（Ａ）に示された元データは、仮想貨幣データ生成部２２３内の暗号化部２２３Ａによって暗号化される。ここで行われる暗号化の処理は、必ずしも後の復号化が可能な可逆なものである必要はないが、この実施形態では、必ずしもこの限りではないが、可逆なものであるとする。暗号化を実行することによってある桁数の文字列が得られる。暗号化部２２３Ａは更に、その文字列から所定の規則にしたがって一部の文字を抜き出し新たな文字列を生成する。元データを暗号化して得られる文字列は、ある程度長い例えば１０００桁以上の文字列となるようになっている。暗号化部２２３Ａが、元データを暗号化して得られる文字列から、その一部を抜き出すための規則は、例えば、元データを暗号化して得られる文字列が仮に２０００桁であるとした場合に、その文字列から偶数桁又は奇数桁のみを抜き出す、その前、後、或いは中間の例えば１０００桁程度の適当な桁数を抜き出す、英文字、数字、記号混じりの文字列から、英文字のみ、数字のみ、或いは英文字と数字のみを抜き出す、英文字、数字、記号混じりの文字列から、英文字のみ、数字のみ、或いは英文字と数字のみを所定の桁数だけ抜き出す、というようなものとすることができる。これにより最終的に得られた文字列が、仮想貨幣暗号化データである。
仮想貨幣データ生成部２２３では、多数のユーザからの多数の要求によって仮想貨幣データが次々と生成されることになる。なお、説明のため図１２（Ｂ）では、データ構造のうち暗号化された部分（正確には、元データを暗号化して得られた文字列から更に所定の規則にしたがって抜き出した文字列に相当する部分。かかる部分は、結果的に、元データを暗号化して得られた文字列と同様に、可読でない状態となっている。）に網掛けを行うものとする。これには限られないが、この実施形態では、仮想貨幣データの生成の過程で実行される暗号化の手法は、どの仮想貨幣データを生成する場合も同じであるものとする。この実施形態では、暗号化に用いられるアルゴリズム及び鍵を不変とすることにより、どの仮想貨幣データを生成する場合でも暗号化の手法が同一となるようにしている。
ところで、上述したように、この実施形態においては、暗号化の対象となる元データの中に変化することを前提とした記番号情報とタイミング情報とが含まれている。特に記番号情報は２つとして同じものが無い。したがって、仮想貨幣暗号化データにも２つとして同じものは存在しないことになる。仮想貨幣暗号化データは、英字、数字、記号或いはこれらの２つ以上の組合せであって、ある程度以上の桁数の文字等の羅列となる。
暗号化部２２３Ａが仮想貨幣暗号化データを生成すると、仮想貨幣暗号化データは結合部２２３Ｂへ送られる。結合部２２３Ｂは、仮想貨幣暗号化データに、当該仮想貨幣暗号化データに暗号化されて含まれている元データのうちの予め定められたもの、つまり、元データに含まれた発行主体情報、金額情報、及び信用情報のうち予め定められたものを、仮想貨幣暗号化データに平文のまま結合する。仮想貨幣暗号化データに平文の上記データが結合されたものが仮想貨幣データである。仮想貨幣暗号化データに付加される情報は、発行主体情報、金額情報、及び信用情報のうちの一部でも全部でも良いし、更にはそれ以外の情報が含まれても良いが、この実施形態では、記番号情報と、金額情報であるものとする。平文のままの記番号情報と、金額情報は、決済装置２００だけでなく、ユーザ端末１００でも、決済端末３００でも、特別な処理を施すことなく、その内容を把握する（可読であるから読取ってその内容を理解する）ことが可能なものとなっている。悪意ある第三者が仮想貨幣データを入手した場合、当該悪意ある第三者も、平文のかかるデータを読取り可能であるものの、仮想貨幣暗号化データに暗号化して含まれているデータの内容すべてを把握できないため、仮想貨幣データの悪用は難しい。
生成された、仮想貨幣データは、仮想貨幣データ生成部２２３から主制御部２２２に送られる。
仮想貨幣データを受取った主制御部２２２は、その仮想貨幣データと、その仮想貨幣データに含まれる仮想貨幣暗号化データに暗号化した状態で含まれている信用情報との対応関係を把握できるような状態で、当該信用情報を、信用情報記録部２２４Ｂに記録する。上述したように信用情報はそもそも主制御部２２２で生成されるものであり、主制御部２２２から仮想貨幣データ生成部２２３に送られるが、他方、主制御部２２２は、仮想貨幣データ生成部２２３から仮想貨幣データが送り返されるまで、信用情報を保持している。そして、主制御部２２２は、その保持していた信用情報を、暗号化したその信用情報がその仮想貨幣暗号化データに含まれていた仮想貨幣データに含まれていた記番号と紐付けて、信用情報記録部２２４Ｂに記録する。図１１（Ｂ）に示されたように、信用情報記録部２２４Ｂには、記番号と、信用情報とが互いに紐付けられて記録されることになる。なお、信用情報記録部２２４Ｂに記録されるべきかかる情報は、各仮想貨幣データと、各仮想貨幣データの信用を基礎づける信用情報とであって、それらの対応関係を把握できる状態とされたものである。したがって、信用情報と対応付けて記録されるべき情報は、記番号でなく、例えば、仮想貨幣データそのものであっても良いし、仮想貨幣暗号化データであっても良い。
主制御部２２２は、また、その仮想貨幣データを生成することの申し込みであった生成依頼情報に付されていたユーザＩＤによって特定されるユーザ端末１００にそれを返送せよという指示を付して、仮想貨幣データをデータ入出力部２２１へ送る。仮想貨幣データは、更に送受信部に送られ、ネットワーク４００を介して、ユーザＩＤによって特定されるユーザ端末１００へと送られる（Ｓ９２４）。
【００５０】
ユーザ端末１００の送受信部は、送られてきた仮想貨幣データを受取る（Ｓ９１４）。受取られた仮想貨幣データは、データ入出力部１２３から、主制御部１２１に送られる。
この状態で、仮想貨幣データは使用できるようになる。つまり、そのユーザ端末１００の所有者たるユーザが第三者に対してその仮想貨幣データを用いて支払いを行える状態となる。ユーザは、その仮想貨幣データを保存するための操作を入力装置１０２によって行う。そうすると、その旨の操作内容が入力装置１０２から、インターフェイス１１４、データ入出力部１２３を介して主制御部１２１に対して送られる。仮想貨幣データは、主制御部１２１からユーザ端末記録部１２４に送られて、ハードウェアとして見ればＲＡＭ１１３の一部であるユーザ端末記録部１２４に記録される。同じユーザが自らのユーザ端末１００に複数の仮想貨幣データを保存することももちろん可能である。その場合には、複数の仮想貨幣データが、ユーザ端末記録部１２４に記録されることになる。
ユーザは、ユーザ端末１００に保存された仮想貨幣データをいつでも支払いのために使用することができる。ユーザが仮想貨幣データを使用したいと思ったときは、ユーザはユーザ端末１００の入力装置１０２を操作して、その旨の入力を行う。かかる入力は、インターフェイス１１４、データ入出力部１２３を介して主制御部１２１に入力される。その入力を受けた主制御部１２１は、ユーザ端末記録部１２４から仮想貨幣データを例えばすべて読み出し、そのデータに基いて、表示制御部１２２に対して、図１３に示したような画像をディスプレイに表示せよとの指示を送る。
図１３に示したように、ディスプレイ１０１には、複数の仮想貨幣データが、それらのうちの１つを選択可能に表示される。四角の枠で囲まれた金額を含む表示の一つ一つがそれぞれ、仮想貨幣データに対応している。仮想貨幣データのデータは上述のように、暗号化された仮想貨幣暗号化データと、それぞれ平文の記番号情報、及び金額情報を含んでいる。平文の情報をユーザ端末１００は読むことができるので、ユーザ端末１００は、そのディスプレイ１０１に、各仮想貨幣データに対応する画像として、平文で記載されている情報に基づく情報を表示することができる。この実施形態では、これには限られないが、金額情報によって特定される金額と、記番号についての情報とがディスプレイ１０１に表示されるようになっている。なお、ディスプレイ１０１に表示される画像には、平文で記載されたデータのすべてに基づく表示を含めることが可能であるが、もちろん、平文で記載されたデータのすべてに基づく表示を含める必要はないし平文で記載されたデータに基づく表示をまったく行わなくても構わない。
ユーザは、ディスプレイ１０１が兼ねる入力装置１０２を操作して、支払いに用いる仮想貨幣データを選択する。かかる入力は、既述のようにして主制御部１２１に入力される。そうすると、ディスプレイ１０１の表示は、図１４に示したように切り替わる。主制御部１２１の制御下で、表示制御部１２２がディスプレイ１０１に表示するのは、仮想貨幣データに対応した（或いは仮想貨幣暗号化データを可逆に変換した）表示であり、より詳細には、仮想貨幣データを二次元バーコードに変換した表示である。かかる二次元バーコードに含まれる情報は最低でも、仮想貨幣暗号化データに対応したものである必要があるが、この実施形態では、仮想貨幣データの全体に対応したものとされる。
【００５１】
ユーザは、支払いを行う相手側である、例えば店舗の店員が管理する決済端末３００に対して、ユーザ端末１００から仮想貨幣データを引き渡す（Ｓ９１５）。
仮想貨幣データの引き渡しは、ユーザ端末１００のディスプレイ１０１に表示されている二次元バーコードを、決済端末３００が備えるカメラで撮像することによって行われる。撮像された画像のデータは、決済端末３００のカメラからインターフェイス３１４を介して、データ入出力部３２３に送られ、そこから主制御部３２１に送られる。主制御部３２１は、その画像データに写った二次元バーコードから、仮想貨幣データを生成する。これにより、ユーザ端末１００から決済端末３００に仮想貨幣データが引渡される（Ｓ９３１）。
なお、この実施形態では、二次元バーコードの読取りによってユーザ端末１００から決済端末３００へと仮想貨幣データの引き渡しが行われるものとしているが、二次元バーコードはもちろん一次元バーコードその他の識別子によってそれを実現することとしてもよい。更には、そのような識別子の読取りによってユーザ端末１００から決済端末３００へと仮想貨幣データの引き渡しを実現する必要もなく、ブルートゥース（商標）その他の通信によって仮想貨幣データ自体を送信することにより、それを実現してもよい。極端なことを言えばユーザが口頭で決済端末３００の管理者等に伝えることにより、或いは仮想貨幣データをディスプレイ１０１に表示し決済端末３００の管理者等に見せることにより、それを実現しても良い。これらの場合は、例えば入力装置による手入力で決済端末３００の管理者等は、決済端末３００に仮想貨幣データを入力することになろう。
いずれにせよ、主制御部３２１は一時的に、例えば、少なくともその仮想貨幣データによる支払いが終了するまで、仮想貨幣データを記録する。かかる記録は、ハードウェアとしては、ＲＡＭ３１３上に行われる。上述したように、仮想貨幣データのうち、平文で記述されている記番号情報、金額情報を決済端末３００は読むことができる。したがって、主制御部３２１は、その表示制御部３２２に対し、それら情報によって特定される図１４に示された如き情報を、そのディスプレイに表示させることが可能である。例えば、金額情報によって特定される金額を表示させることにより、決済端末３００の管理者等は、支払いが行われようとしている金額を確認することができるであろう。その支払が不適切であれば、決済端末３００の管理者等は、ユーザから他の仮想貨幣データの提供を受ければ良い。
ユーザから受取った仮想貨幣データが適切なものであるのであれば、決済端末３００の管理者等は、決済端末３００の入力装置を操作して、仮想貨幣データを決済装置２００に送るための操作を行う。
かかる操作を行うと、入力装置から、データ入出力部３２３を介して主制御部３２１に、その操作内容が送られる。かかる入力がなされると、主制御部３２１は、仮想貨幣データに対して決済端末ＩＤを付したデータを、データ入出力部３２３に対して送る。データ入出力部３２３は、それらデータを、送受信部に送り、送受信部はそれらデータを、ネットワーク４００を介して決済装置２００に送る（Ｓ９３２）。このとき、決済端末ＩＤとともに、少なくとも仮想貨幣暗号化データが決済装置２００に送られる必要があるが、この実施形態では、決済端末ＩＤとともに、仮想貨幣データの全体が決済装置２００に送られる。
【００５２】
以上のようにして、決済装置２００で生成された仮想貨幣データは、ネットワーク４００を介してユーザ端末１００に送られ、何らかの方法によってユーザ端末１００から決済端末３００へと引き渡され、そしてネットワーク４００を介して決済端末３００から決済装置２００へと戻ってくる。
他方、決済装置２００からユーザ端末１００へと仮想貨幣データが送られるのと並行して、決済装置２００では以下のような処理が実行される。
【００５３】
上述のように決済装置２００の仮想貨幣データ生成部２２３では、まず元データが生成され、そして、その元データに基いて、仮想貨幣データ生成部２２３内の暗号化部２２３Ａで仮想貨幣暗号化データが生成された。仮想貨幣データ生成部２２３は、図１２（Ａ）に示した元データを確認用元データとして、第１記録部２２４Ｃに送り、第１記録部２２４Ｃに記録する（Ｓ９２５）。通常かかる処理は繰り返し行われるので、第１記録部２２４Ｃには、確認用元データが、多数記録された状態となる。
なお、かかる第１記録部２２４Ｃへの元データの記録が行われるタイミングは、仮想貨幣データのユーザ端末１００への送信の前後を問わない。
【００５４】
話を戻す。上述のように、仮想貨幣データは、決済端末３００からネットワーク４００を介して決済装置２００へと送られる（Ｓ９３２）。
決済装置２００は、その送受信部で、決済端末ＩＤのデータと仮想貨幣データとを受取る（Ｓ９２６）。これらデータは、インターフェイス２１４、データ入出力部２２１を介して主制御部２２２に送られる。
それらを受取った主制御部２２２は、決済端末ＩＤのデータと仮想貨幣データとを、決済判定部２２６に送る。このとき、決済端末ＩＤとともに、少なくとも仮想貨幣暗号化データが決済判定部２２６に送られる必要があるが、この実施形態では、決済端末ＩＤとともに、仮想貨幣データの全体が決済判定部２２６に送られるものとする。
これらデータを受取った決済判定部２２６は最終的には決済判定を行うが、それに先立って、以下の処理を実行する。
決済端末ＩＤとともに仮想貨幣データを受取った決済判定部２２６は、まず、その仮想貨幣データの中に平文で含まれている記番号情報を抽出する。そして、その記番号情報を含む確認用元データを、第１記録部２２４Ｃに記録された確認用元データの中から検索し、決済端末３００から送られてきた仮想貨幣データに含まれていた記番号情報と同じ記番号情報を含む確認用元データを発見したら、その記番号情報を含む元データを第１記録部２２４Ｃから読み出すようになっている。
主制御部２２２から受取った仮想貨幣データに含まれていた記番号情報と同じ記番号情報を含む確認用元データを第１記録部２２４Ｃに記録されたデータの中から発見できなかった場合には、決済判定部２２６は確認用元データの読み出しを行わない。
【００５５】
確認用元データを読み出した場合には、決済判定部２２６は、第１記録部２２４Ｃから読み出した確認用元データを、仮想貨幣データ生成部２２３に送り、それに基づき確認用暗号化データを生成するように暗号化部２２３Ａに依頼する。
かかる依頼を受けると暗号化部２２３Ａは仮想貨幣暗号化データを生成する（Ｓ９２７）。
より具体的には、暗号化部２２３Ａは、決済判定部２２６から受取った確認用元データを暗号化して、仮想貨幣暗号化データに変える。上述したように、この実施形態における暗号化部２２３Ａが実行する暗号化の方法は、同じアルゴリズム及び同じ鍵を用いた固定された１つの方法とされているので、暗号化部２２３Ａは、その１つの方法、つまり、仮想貨幣暗号化データを生成するときに用いられたのと同じ暗号化の方法で確認用元データを暗号化する。暗号化部２２３Ａで暗号化された結果、確認用元データは、ある文字列に変わる。そして、暗号化部２２３Ａは、その文字列から、所定の規則にしたがって文字を抜き出すことにより、確認用暗号化データを生成する。ここで用いられる所定の規則は、暗号化部２２３が、仮想貨幣暗号化データを生成するときにおいて、元データを暗号化して得られた文字列から文字を抜き出す場合に用いられた規則と同じ規則である。
仮想貨幣データ生成部２２３の暗号化部２２３Ａで新たに作られた確認用暗号化データは、仮想貨幣データ生成部２２３から決済判定部２２６に送られる。
【００５６】
そして、決済判定部２２６は、主制御部２２２から送られてきた仮想貨幣データに含まれていた仮想貨幣暗号化データと、仮想貨幣データ生成部２２３で決済判定部２２６の求めにより新たに生成された確認用暗号化データとを比較することにより、決済判定を行う（Ｓ９２８）。
この実施形態における決済判定部２２６は、上述の比較の結果、両者が一致した場合には、主制御部２２２から受取った仮想貨幣暗号化データが、ひいては主制御部２２２から受取った仮想貨幣データが真正なものであると判定し、両者が一致しなかった場合には、主制御部２２２から受取った仮想貨幣暗号化データが、ひいては主制御部２２２から受取った仮想貨幣データが真正なものでないと判定する。なお、主制御部２２２から受取った仮想貨幣データに含まれていた記番号情報を第１記録部２２４Ｃに記録されたデータの中から発見できなかった場合にも、決済判定部２２６は、主制御部２２２から受取った仮想貨幣暗号化データが真正なものでないと判定する。
上述したように、暗号化部２２３Ａが行う暗号化は、仮想貨幣暗号化データを生成する場合においても、確認用暗号化データを生成する場合においても常に同じ手法で実行される。また、暗号化された結果得られた文字列から、その一部となる文字列を抜き出すための所定の規則も、仮想貨幣暗号化データを生成する場合においても、確認用暗号化データを生成する場合においても常に同一である。とすれば、主制御部２２２から送られてきた仮想貨幣暗号化データに対して悪意の第三者による改竄等がなければ、主制御部２２２から送られてきた仮想貨幣データに含まれていた仮想貨幣暗号化データと、仮想貨幣データ生成部２２３で決済判定部２２６の依頼により新たに生成された確認用暗号化データとは一致するはずであるから、それら仮想貨幣暗号化データ及び確認用暗号化データが一致するか否かによって、主制御部２２２から送られてきた仮想貨幣データに含まれていた仮想貨幣暗号化データ及び仮想貨幣データの真正性の判定を行えるのである。
なお、上述のように、主制御部２２２から決済判定部２２６に送られたデータのうち、この実施形態の決済判定で使用されるのは、仮想貨幣データのうち仮想貨幣暗号化データのみである。これが主制御部２２２から決済判定部２２６に送るデータが仮想貨幣暗号化データのみでも足りる場合がある理由である。もっともこの実施形態では、暗号化部２２３Ａで確認用暗号化データにすべき確認用元データを選択するために、仮想貨幣データに含まれる平文の記番号情報を利用することにしているので、主制御部２２２から決済判定部２２６に送るデータを、仮想貨幣データの全体としている。
決済判定部２２６は、仮想貨幣暗号化データと確認用暗号化データとが一致するか否かという上述の判定のみによって仮想貨幣暗号化データ乃至仮想貨幣データの真正性の判定を行うようになっていても良いが、この実施形態では更に以下のような判定をも付加的に行うことによって決済判定を行うようになっている。
決済判定部２２６は、仮想貨幣暗号化データと確認用暗号化データとが一致するとの判定を行った場合、第１記録部２２４Ｃから先に読出していた確認用元データを用いて更に仮想貨幣暗号化データ乃至仮想貨幣データの真正性の判定を行うようになっている。具体的には、確認用元データに含まれる発行主体情報に含まれている情報と同じ情報が、基本データ記録部２２４Ａに記録されているか否かにより、決済判定の正確さを補完するのである。
上述のように、発行主体情報には、仮想貨幣データの発行者たる決済装置２００を特定するための情報が含まれている。同じデータが、基本データ記録部２２４Ａには記録されているはずであるからから、そのデータを決済判定部２２６は基本データ記録部２２４Ａから読み出し、両者を比較する。両者が一致した場合には、仮想貨幣暗号化データは真正であると決済判定部２２６は判定する。
上述のように、発行主体情報には、仮想貨幣データの真正さを保証する権限を持つ者である、例えば、政府機関が発行した仮想貨幣データの真正さを保証する情報である認証用情報が含まれている場合がある。かかるデータを認証に用いるのであれば、基本データ記録部２２４Ａにも認証用情報が存在するから、そのデータを決済判定部２２６は基本データ記録部２２４Ａから読み出し、両認証用情報同士を比較する。両者が一致した場合には、仮想貨幣暗号化データは真正であると決済判定部２２６は判定する。
同様に、記番号情報、タイミング情報、金額情報、信用情報等をも仮想貨幣暗号化データの真正性の判定に用いても良い。もっとも、仮想貨幣暗号化データが真性であるということの確認は、事実上、仮想貨幣暗号化データと確認用暗号化データが一致したという事実により行われているのであるから、ここでの付加的な仮想貨幣暗号化データ乃至仮想貨幣データの真正性の確認は省略されてもかまわない。
いずれにせよ、すべての判定の結果が肯定的であった場合にのみ、仮想貨幣暗号化データ乃至仮想貨幣データが真正であると決済判定部２２６が判定する。そのような判定を行った場合には、決済判定部２２６は、金額情報によって特定されている金額の支払いを認めるという肯定的な情報を示す最終判定データを生成する。
他方、決済判定部２２６が、第１記録部２２４Ｃから確認用元データの読出しを行えなかった場合か、又は上述した種々の判定の少なくとも１つが否定的であった場合には、決済判定部２２６は、仮想貨幣暗号化データが真正であるとの判定を行わない。仮想貨幣暗号化データ乃至仮想貨幣データが真性なものであるとの判定が行われなかった場合には、決済判定部２２６は、金額情報によって特定されている金額の支払いを認めないという否定的な情報を示す最終判定データを生成する。
いずれにせよ、生成された最終判定データは、決済判定部２２６から主制御部２２２に送られる。
なお、かかる判定を行う場合、第１記録部２２４Ｃに記録されていた確認用元データのうち、決済判定部２２６によって読み出されたものは、例えばそれに対応する仮想貨幣データによる決済端末３００の管理者等への支払いが終了した後に、第１記録部２２４Ｃから消去するのが望ましい。
【００５７】
主制御部２２２は、最終判定データを受取り次の処理を行う。
最終判定データが肯定的なものであった場合、主制御部２２２は、最終判定データによって特定される金額の決済端末３００の管理者への支払いの処理を実行する。決済処理は、仮想貨幣暗号化データを送ってきた決済端末３００への金銭の支払いを認めるための処理である。この実施形態では、主制御部２２２は、どのような決済を行ったかというデータを保持するようになっている。例えば、主制御部２２２は、誰（どの決済端末３００の管理者等）への幾らの支払いを最終的に許可したのかという情報を、各決済端末３００毎に図示せぬ記録媒体に記録するようになっている。これらデータは、例えば、決済端末３００の管理者が指定した銀行口座が存在する銀行に送られ、その結果、例えば決済装置２００の管理者から（或いは、その仮想貨幣データを使用したユーザの指定した銀行口座等から）決済端末３００の管理者へと支払いが行われる。
最終判定データが肯定的なものであった場合、主制御部２２２は、決済が行われたこと、及びその金額の情報を少なくとも含むデータである肯定的な判定結果データを生成する。
他方、最終判定データが否定的なものであった場合、主制御部２２２は決済処理を行わない。また、主制御部２２２は、決済が行われなかったという情報を少なくとも含むデータである否定的な判定結果データを生成する。
いずれにせよ、判定結果データは、主制御部２２２から、データ入出力部２２１を介して送受信部に送られ、ネットワーク４００を介して、決済端末３００に送信される（Ｓ９２９）。決済端末３００に対する判定結果データの送信は省略することも可能であるが、通常は行われるであろう。
【００５８】
判定結果データは、決済端末３００の送受信部によって受取られる（Ｓ９３３）。
送受信部によって受取られた判定結果データは、これまでの場合と同様に、主制御部３２１に送られる。
主制御部３２１は、表示制御部３２２に対して、判定結果データに応じた表示をディスプレイに行わせろとの指示を行う。その結果、表示制御部３２２は、ディスプレイに判定結果データに応じた表示を行わせる（Ｓ９３４）。その表示は、図示を省略するが、例えば、判定結果データが肯定的なものであった場合には、決済が認められたこと、及びその金額となり、判定結果データが否定的なものであった場合には、決済が認められなかったことであろう。後者の場合には、判定結果データに決済が認められなかった理由を特定する情報を含めることにより、決済が認められなかった理由がディスプレイ上に表示されるようにした方が良いであろう。
なお、判定結果データの送信をユーザ端末１００に対しても行い、ユーザ端末１００でもそれに基づく画像のディスプレイ１０１での表示を行うようにすることも可能である。
以上で、仮想貨幣データを使用しての、ユーザから決済端末３００の管理者への支払いの処理が終了する。
【００５９】
なお、以上での説明では、あるユーザ端末１００を用いての仮想貨幣データによる支払いの受領者は、決済端末３００の管理者等のみであった。しかしながら、あるユーザ端末１００を用いての仮想貨幣データによる支払いの受領者を、他のユーザ端末１００のユーザとすることも可能である。
その場合には、支払いを受けるユーザの所有するユーザ端末１００は、決済端末３００にインストールされたのと同様のコンピュータプログラムをインストールすることにより、決済端末３００が有していたのと同様の機能ブロックを有するものとなっていれば良い。ユーザ端末１００がスマートフォンであれば、コンピュータを含んでいるのであるから、それは可能である。また、決済端末３００はハードウェアとしてカメラを備えていたが、ユーザ端末１００がスマートフォンであれば常識的にカメラを持つのであるから、その条件もユーザ端末１００は満足する。その場合、決済装置２００の基本データ記録部２２４Ａには、各決済端末３００の決済端末ＩＤと紐付けて記録されていた種々のデータと同等のデータが、各ユーザ端末１００のユーザＩＤと紐付けて記録されることが必要となろう。
また、この実施形態では、ユーザ端末１００から決済端末３００への仮想貨幣データの受け渡しはネットワーク４００を介さずに行われるものとなっていた。しかしながら、かかる受け渡しがユーザ端末１００から決済端末３００への仮想貨幣データの受け渡しであるか、ユーザ端末１００間での仮想貨幣データの受け渡しであるかを問わず、かかる受け渡しをネットワーク４００を介しての仮想貨幣データの送受信（場合によっては、仮想貨幣データの二重譲渡を防ぐための決済装置２００を介しての送受信）によって実現しても良い。また、２つのユーザ端末１００間、ユーザ端末１００と決済端末３００間、或いは２つの決済端末３００間で、決済装置２００での決済の処理を伴わずに単に仮想貨幣データを譲渡するようにすることも可能である。その場合には、例えばユーザ端末１００間での仮想貨幣データの譲渡が行われる場合であれば、譲渡人たるユーザは自らのユーザ端末１００へ仮想貨幣データを譲渡するための譲渡情報を入力する。譲渡情報には少なくとも、どの仮想貨幣データを、どのユーザに譲渡するか、という内容が含まれる。譲受人たるユーザの指定は例えば、ユーザＩＤによって実現することができる。かかる譲渡を、決済装置２００を通して行うようにすることにより、仮想貨幣データの二重譲渡の問題を防ぐことができる。譲渡情報は、譲渡人たるユーザが操作するユーザ端末１００から、例えば仮想貨幣データとともに、ネットワーク４００を介して決済装置２００に送られる。決済装置２００は、ユーザＩＤで指定されるユーザ端末１００に対して仮想貨幣データを送る。これにより、譲渡人たるユーザのユーザ端末１００から譲受人たるユーザのユーザ端末１００へと仮想貨幣データが譲渡される、或いは移されることになる。仮想貨幣データは、譲受人たるユーザのユーザ端末１００において、その主制御部１２１によって、ユーザ端末記録部１２４に記録されることになる。
なお、この実施形態では、上述のように、決済装置２００の信用情報記録部２２４Ｂには、ある仮想貨幣データに含まれる仮想貨幣暗号化データに暗号化した状態で含まれている信用情報との対応関係を把握できるような状態で、当該信用情報が記録されている。例えばその仮想貨幣データを記録しているユーザ端末１００のユーザ、或いはその仮想貨幣データを記録している決済端末３００の管理者等、又は万人が、その信用情報を例えばネットワーク４００を介して閲覧できるようにすることも可能である。そうすることによって、仮想貨幣データの信用を高めることができるようになる。例えば、この実施形態では、ユーザ端末１００から決済装置２００に、信用情報の閲覧を要求する情報である閲覧要求情報を送ることにより、それが可能となる。閲覧要求情報には、ユーザがその信用情報を確認したいと希望する仮想貨幣データを特定するための情報が含まれる。ユーザがその信用情報を確認したいと希望する仮想貨幣データを特定するための情報は、ユーザがその信用情報を確認したいと希望する仮想貨幣データそのものであっても良いが、その仮想貨幣データに含まれる仮想貨幣暗号化データでも良いし、或いは、その仮想貨幣データに含まれる記番号情報であっても良い。図１３に示したようにユーザ端末１００のディスプレイ１０１には、各仮想貨幣データの記番号を表示することが可能となっている。したがって、各ユーザは閲覧要求情報に記番号情報を含めることが可能となっている。ユーザが入力装置１０２を操作してある記番号を選択する（複数の記番号を選択しても良い。）と、選択された記番号についての記番号情報がデータ入出力部１２３から、主制御部１２１に送られる。そうすると、主制御部１２１が、受取った記番号情報が付加された閲覧要求情報を生成する。記番号情報が付加された閲覧要求情報は、データ入出力部１２３から送受信部へ送られ、送受信部からネットワーク４００を介して決済装置２００へと送られる。決済装置２００は、その送受信部でそれを受取ると、記番号情報が付加された閲覧要求情報を、データ入出力部２２１から主制御部２２２へ送る。そうすると、決済装置２００の主制御部２２２は、信用情報記録部２２４Ｂから、閲覧要求情報に付加されていた記番号情報によって特定される記番号に紐付けられていた信用情報を読み出す。そして、主制御部２２２は、先程と逆の過程を経て、読み出した信用情報をその信用情報と対応付けられた記番号情報と対応付けた状態でユーザ端末１００に送る。ユーザ端末１００の主制御部１２１はそれを受取る。主制御部１２１は、記番号情報により特定された記番号と、当該記番号に対応した仮想貨幣データとを互いに対応付けた状態で、ディスプレイ１０１に表示させる。かかるディスプレイ１０１による画像の表示は、主制御部１２１の指示に基いて表示制御部１２２が生成した画像データによって行われる。ユーザは、ディスプレイ１０１に行われた表示を見ることにより、自分が確認したかった仮想貨幣データ（場合によっては複数である。）の信用を基礎づける信用情報を、仮想貨幣データのそれぞれと紐付けられた状態で確認することができる。
【００６０】
なお、この実施形態では、決済装置２００は、仮想貨幣データを発行して外部に送る機能である本願発明における仮想貨幣データ発行装置としての機能と、仮想貨幣データの決済の可否を判定する機能である本願発明における決済装置としての機能とを併せ持っていたが、それら機能をそれぞれ持つ仮想貨幣データ発行装置と、仮想貨幣データの決済装置と、に分離することも可能である。
その場合、２つの装置とも、ハードウェア構成としては既に説明した決済装置２００と同じものとすることができ、機能ブロックに関しては、仮想貨幣データ発行装置は、仮想貨幣データをユーザ端末１００に送るまでに必要であった機能を有する機能ブロックを、決済装置は、それ以降の仮想貨幣データの決済を行うために必要であった機能を有する機能ブロックを、それぞれ有するものとすることができる。
【００６１】
＜変形例１＞
変形例１による決済システムは、第１実施形態による決済システムと殆ど同じである。特に、ユーザ端末１００と、決済端末３００との構成、及びそこで実行される処理は、第１実施形態におけるそれらと変わるところがない。また、仮想貨幣データのデータ構造も第１実施形態と同じである。
異なるのは、決済装置２００の構成、及びそこで実行される処理である。とはいえ、変形例１の決済装置２００の構成、及びそこで実行される処理の大半は、第１実施形態の場合と同じである。
【００６２】
第１実施形態の決済システムでは、多数の仮想貨幣データのそれぞれに含まれる仮想貨幣暗号化データを生成するにあたって暗号化部２２３Ａが用いる暗号化の手法は、仮想貨幣暗号化データを生成するすべての場合において同一であった。他方、この変形例１では、仮想貨幣暗号化データを得るために実行される暗号化の手法は複数である。言い換えれば、変形例１では、暗号化部２２３Ａが仮想貨幣暗号化データを得るために実行する暗号化の手法が、所定のタイミングで変更される。
変形例１でもそうであるが、第１実施形態では、暗号化部２２３Ａは、仮想貨幣暗号化データを生成するために元データを暗号化するとともに、確認用暗号化データを生成するために確認用元データを暗号化するようになっている。当然に、ある元データに由来する確認用元データを暗号化する場合に用いられる暗号化の手法は、その元データを暗号化する場合に用いられた暗号化の手法と一致していなければならない。仮にそうでなければ、決済判定部２２６で実行される仮想貨幣暗号化データと確認用暗号化データとの一致を見ることにより仮想貨幣暗号化データ乃至仮想貨幣データの真正性を確認するという原理の根幹が崩れてしまうからである。ある元データに由来する確認用元データを暗号化する場合に用いられる暗号化の手法を、その元データを暗号化する場合に用いられた暗号化の手法と一致させるための工夫を有しているというのが、変形例１の決済装置２００の第１実施形態における決済装置２００との相違点である。
【００６３】
これには限られないが、この実施形態では、暗号化部２２３Ａで行われる暗号化は、各仮想貨幣暗号化データ毎にすべて異なるものとする。言い換えれば、暗号化部２２３Ａで実行される暗号化の方法は、仮想貨幣暗号化データを生成する度に変更されるものとする。したがって、暗号化部２２３Ａが実行する、確認用元データを暗号化するための処理も、確認用元データを暗号化するたびにすべて異なるものとなる。暗号化の手法を変化させるには、アルゴリズムを変更する、鍵を変更する、それらの双方を変更するという３種類がありいずれも採用可能ではあるが、この実施形態では鍵を変更するものとする。
変形例１の決済装置２００でも、第１実施形態で説明したのと同様に、コンピュータプログラムが実行されることによりその内部に機能ブロックである制御部２２０が生成される。図１５に示したように、変形例１における制御部２００内に生成される機能ブロックは第１実施形態の場合と略同じであり、同一の機能ブロックが担う機能は暗号化部２２３Ａを除けば、第１実施形態の場合と同じである。変形例１における制御部２００内に生成される機能ブロックには鍵生成部２２７が含まれており、その点で第１実施形態と異なる。
鍵生成部２２７は、暗号化部２２３Ａが、元データ又は確認用元データの暗号化の処理を行う際に使用される鍵を生成するものであり、鍵を暗号化部２２３Ａに提供するものとなっている。鍵の生成の方法、及び鍵を暗号化部２２３Ａに提供するタイミングについて説明する。
【００６４】
鍵生成部２２７が暗号化部２２３Ａに鍵を供給するタイミングは、暗号化部２２３Ａが暗号化の処理を行うタイミングである。上述したように、仮想貨幣暗号化データを生成するために、図１２（Ａ）に示された元データが生成されると、暗号化部２２３Ａは、鍵生成部２２７に鍵を生成することを依頼するためのデータを送信する。それを受取ると、鍵生成部２２７は鍵を生成し、生成した鍵のデータを暗号化部２２３Ａに送る。暗号化部２２３Ａは、不変のアルゴリズムと、提供された鍵とを用いて、図１２（Ａ）に示された元データを暗号化し、更には元データを暗号化して得られた文字列から所定の規則にしたがって文字を抜き出して新たな文字列を生成することにより、仮想貨幣暗号化データを得る。
鍵生成部２２７は、例えば鍵を以下のようにして生成する。鍵は、以下の説明における「解」として生成され、英字、数字、記号の少なくとも１つの羅列として生成される。解は例えば、同じ条件下では常に同じものが生成される、初期値依存性のある擬似乱数列のようなものとすることができる。ある初期値から連続してワンタイムパスワードを生成するという、公知、周知のワンタイムパスワードの発生方法が、その一例となる。
この実施形態では、解を生成するために、ある初期値（２つ以上の場合もある）を用い、過去の解を所定の関数に代入することにより、新しい解を順次作るという方法を解が必要となる度に実行する。そうすることにより、上記「値」である解を連続して生成することができる。このような解は、初期値依存性のある擬似乱数となる。
上述の「解」を作るのに使われる関数の例として、以下の（ａ）〜（ｃ）を挙げる。以下の（ａ）〜（ｃ）はいずれも、Ｎ番目の「解」であるＸＮを作るための式である。また、Ｐ、Ｑ、Ｒ、Ｓは自然数である。
（ａ）（ＸＮ）＝（ＸＮ−１）Ｐ＋（ＸＮ−２）Ｑ
（ｂ）（ＸＮ）＝（ＸＮ−１）Ｐ
（ｃ）（ＸＮ）＝（ＸＮ−１）Ｐ（ＸＮ−２）Ｑ（ＸＮ-3）R（ＸＮ−4）S
（ａ）は、過去の「解」２つを用い、それらをそれぞれＰ乗とＱ乗したものを足し合わせることにより、新しい「解」を生成する。なお、正確には、過去の「値」２つを用い、それらをＰ乗とＱ乗したものを足し合わせると、桁数が増えるため、実際には得られた値のうちの頭から適当な桁数を抜き出す、末尾から適当な桁数を抜き出す、或いはその値のうちの適当な部分から適当な桁数を抜き出すこと等により、新しい「解」を生成する。
（ｂ）は、過去の「解」１つを用い、それをＰ乗したものの桁数を上述のように整理したものを新しい「解」とするものである。
（ｃ）は、過去の「解」４つを用い、それらをそれぞれＰ乗、Ｑ乗、Ｒ乗、Ｓ乗したものの積を取り、その後上述したように桁数を整理したものを新しい「解」とするものである。
上述の（ａ）〜（ｃ）は解を生成するためのアルゴリズムの一例であり、解を生成する際にアルゴリズムに変化を加える、例えば、上述の（ａ）〜（ｃ）を順番に用いる等の変化を加えることも可能である。
このような手法で解を生成することとすれば、ある初期値に基いて１番目に生成される解は常に同じであり、２番目に生成される解も常に同じであり、同様にＮ番目に生成される解も常に同じである。これが初期値依存性ということである。
【００６５】
上述のように生成された解を鍵として用いることにより暗号化部２２３Ａは、元データを暗号化して更にそれにより生成された文字列から一部を抜き出すことにより、仮想貨幣暗号化データを生成する。そして、第１実施形態の場合と同様に、結合部２３２Ｂが、仮想貨幣暗号化データに対して平文の幾つかのデータを付加することによって仮想貨幣データが生成される。
かかる仮想貨幣データは、第１実施形態の場合と同様に、決済装置２００からユーザ端末１００に送られる。
かかる仮想貨幣データの使用方法は第１実施形態の場合と同様であり、ユーザ端末１００から決済端末３００に引渡され、決済端末３００から、決済端末ＩＤとともに決済装置２００に送られる。
仮想貨幣データは、第１実施形態の場合と同様に、決済端末ＩＤとともに主制御部２２２から決済判定部２２６へと送られる。
【００６６】
ここで、第１実施形態の場合と同様に、決済判定部２２６は、暗号化部２２３Ａに確認用暗号化データの生成を依頼する。かかる依頼を行う場合、決済判定部２２６は、第１実施形態の場合と同じように、仮想貨幣データに含まれていた記番号情報と同一の記番号情報を含んでいた確認用元データを第１記録部２２４Ｃから読出し、その確認用元データを確認用暗号化データの元となるデータとして暗号化部２２３Ａへと送る。
かかる依頼を受けた暗号化部２２３Ａは、決済判定部２２６から受取った確認用元データを暗号化するが、しかしながら変形例１では仮想貨幣暗号化データを暗号化するために用いられた暗号化の方法が元データ毎に異なるため、暗号化部２２３Ａはその確認用元データを暗号化するために用いるべき暗号化の方法を特定しなかればならない。つまり、暗号化部２２３Ａは、決済判定部２２６から受取った確認用元データと同じ元データを暗号化したときに用いられた鍵と同じ鍵を、確認用元データを暗号化するための鍵として入手する必要がある。そこで、仮想貨幣データを受取った暗号化部２２３Ａは、鍵生成部２２７に対して鍵のデータの生成を依頼するデータを送る。そして、暗号化部２２３Ａは、そのデータに、確認用元データに平文の状態で含まれていた記番号情報を付す。
上述したように、この実施形態の記番号情報は、１６進法で表記された、１から始まる多数桁の連番の番号である。つまり、かかる記番号情報により特定される数字は、暗号化部２２３Ａがこれから暗号化しようとする確認用元データと同じ元データが暗号化部２２３Ａで過去に暗号化されたときに使用された鍵が、何番目に生成された鍵であるか、ということを示している。鍵生成部２２７は、記番号情報を受取ったら、上述の数式（ａ）〜（ｃ）を用いて、記番号情報で特定される数字番目の解を求めるべく連続して演算を行う。その結果、鍵生成部２２７は、その記番号情報が含まれていた確認用元データと同じ元データが過去に暗号化されたときに用いられたものと同じ鍵（同一の解）を生成することができる。そして、鍵生成部２２７は生成した解である鍵を、暗号化部２２３Ａに対して送る。
これにより、暗号化部２２３Ａは、暗号化部２２３Ａが過去に元データを暗号化してそれに基いて仮想貨幣暗号化データを生成したときに用いたものと同じ鍵を用いて、その元データと同じ確認用元データの暗号化の処理を行えることになる。つまり、変形例１では、記番号情報が、本願発明で言う暗号化条件データを兼ねている。
なお、第１実施形態でも、変形例１でも、記番号情報は平文であるものとしていた。しかしながら、変形例１における記番号情報は、仮想貨幣暗号化データが暗号化されたときの条件を特定する暗号化条件データをも兼ねているので、平文のまま仮想貨幣データに含めておくのは安全性に若干の問題を生じる可能性もある。そこで、変形例１においては、仮想貨幣データに含まれる暗号化条件データを、暗号化された状態としても構わない。ただし、暗号化条件データの暗号化を行う場合には、すべての仮想貨幣データに含まれる暗号化条件データについて、その暗号化の手法を同一とするのが現実的である。なぜなら、各仮想貨幣データに含まれる暗号化条件データをそれぞれ異なる手法で（例えば、異なる鍵を用いて）暗号化したとするのであれば、各暗号化条件データを復号化するときに、その復号化のための条件（暗号化されたその暗号化条件データを暗号化したときの暗号化の条件）が必要となるからである。これには限られないが、変形例１の決済装置２００では、仮想貨幣データを生成して、発行する際に、その主制御部２２２が、暗号化条件データの暗号化を行い、また決済判定を行う場合、その主制御部２２２が暗号化条件データの復号化を行う。暗号化の手法、復号化の手法が同一であれば、かかる暗号化、復号化を同一の主制御部２２２が行うことは当然に可能である。
決済判定部２２６の依頼により、暗号化部２２３Ａが確認用元データを暗号化して以降の変形例１における処理は、第１実施形態と変わらない。
【００６７】
なお、変形例１では記番号情報を本願発明でいう暗号化条件データとして利用することとしていた。つまり、発行主体情報の一部である記番号情報を、暗号化条件データとしても利用することとしている。
これに代えて、例えば、記番号情報を、暗号化条件データとして使用しない（その場合には、記番号情報を連番とする必要がなくなる。）ようにするとともに、記番号情報とは別の情報を仮想貨幣データに平文の状態で、或いは暗号化した状態で含めることが可能である。そのデータは、その仮想貨幣暗号化データを生成するときに用いられた鍵が、鍵生成部２２７で何番目に生成された鍵であるかを示す連番の数字のデータである。
また、暗号化条件データとして、結合部２２３Ｂが、暗号化部２２３Ａが暗号化の処理を行うときに使用した鍵そのものを、その鍵によって暗号化された仮想貨幣暗号化データに付加することによって、仮想貨幣データに含めることも可能である。このような仮想貨幣データには、それに含まれる仮想貨幣暗号化データを復号化するために用いることのできる鍵が添付されているから、悪意の第三者により仮想貨幣暗号化データを復号化されるおそれがある。しかしながら、暗号化、復号化に用いられるアルゴリズムが第三者に知られない限り、悪意の第三者は仮想貨幣暗号化データを復号化することができないため、一応の安全性は維持できる。暗号化条件データを鍵そのものとした場合、暗号化部２２３Ａは、決済判定部２２６が決済判定を行う場合に、その鍵を用いて確認用元データの暗号化を行うことができるので、暗号化部２２３Ａは確認用元データの暗号化の処理を行うに際して鍵生成部２２７から鍵の提供を受ける必要はない。
なお、暗号化条件データは、上述のものによらない。例えば、上述の解が生成されたときの日時によって解が決定される、換言すれば、ある日時を指定すれば後からでも必ずその解を再現できるようなアルゴリズムを、鍵生成部２２７が解の生成のために用いるのであれば、暗号化条件データは、暗号化部２２３Ａで使用された解が鍵生成部２２７で生成された日時を特定する情報とすることができる。つまり、上述したタイミング情報を暗号化条件データとして利用することが可能である。決済判定部２２６が暗号化部２２３Ａに、更には暗号化部２２３Ａが鍵生成部２２７に、その日時を特定するタイミング情報を通知すれば、鍵生成部２２７は、暗号化部２２３Ａが元データを暗号化するときに提供した鍵と同じ解を生成することができるので、暗号化部２２３Ａが元データを暗号化するときに提供した鍵と同じ鍵を、暗号化部２２３Ａが確認用元データを暗号化する場合に提供することが可能となる。つまり、暗号化部２２３Ａは、ある元データを暗号化するときに用いた鍵と同じ鍵を、その元データと同じ確認用元データを暗号化するときに用いることができるようになる。
なお、鍵生成部２２７は上述のように、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるものであれば良い。変形例１における鍵生成部２２７は、条件として「順番」を採用しており、同じ初期解から生成された解は、同じ順番に生成されたものであれば常に同じものとなるようになっている。このような解の生成方法は、離れた場所で独立して乱数を発生させるための技術、典型的にはワンタイムパスワードの技術で採用されている。そして、ワンタイムパスワードの技術には、上述のように「順番」を条件として採用するイベント同期と、「日時」を条件として採用する時間同期とが存在する。この発明の鍵生成部２２７は、上述の如きイベント同期でなく、時間同期によって同じ条件下で生成されたものが常に同じものとなるものを連続して生成できるようになっていてもよい。
鍵生成部２２７で時間同期を用いる場合には、例えば以下のような演算を行うようにすることができる。以下の如き演算の結果求められるのは、解の元となる文字列である。文字列をＸとすると、Ｘは、その時点における西暦の年、月、日、時、分にしたがって以下のようにして求められる。以下の数式におけるＸ１、Ｘ２、Ｘ3、Ｘ4、Ｘ５はそれぞれ、５つの初期解である。以下の例で初期解を５つとしているのは、西暦の年、月、日、時、分という５つの要素にしたがって解を変化させることにしているからである。
Ｘ＝Ｘ１Ｐ＋Ｘ２Ｑ＋Ｘ3Ｒ＋Ｘ4Ｓ＋Ｘ５Ｔ
ここで、Ｐ＝西暦の年の下二桁の数字、Ｑ＝月の数字、Ｒ＝日の数字、Ｓ＝時の数字、Ｔ＝分の数字。このようにすることで、そのときの時刻に応じて異なる数列を得ることができる。
このような時間同期を用いる場合における暗号化条件データは、解が生成された順番を特定する記番号ではなく、解が生成された日時を特定するタイミング情報とされるべきである。
なお、イベント同期ではなく時間同期を採用することができるのは、以下に説明する鍵生成部２２７でも同様であり、また、後述する鍵生成部１１６でも同様である。
【００６８】
＜変形例２＞
変形例２による決済システムは、第１実施形態による決済システムと殆ど同じである。特に、ユーザ端末１００と、決済端末３００との構成、及びそこで実行される処理は、第１実施形態におけるそれらと変わるところがない。また、仮想貨幣データのデータ構造も第１実施形態と基本的には同じである。
変形例２と第１実施形態とで異なるのは、決済装置２００の構成、及びそこで実行される処理である。とはいえ、変形例２の決済装置２００の構成、及びそこで実行される処理の大半は、第１実施形態の場合と同じである。
【００６９】
変形例２の決済装置２００でも、第１実施形態で説明したのと同様に、コンピュータプログラムが実行されることによりその内部に機能ブロックである制御部２２０が生成される。図１６に示したように、変形例２における制御部２００内に生成される機能ブロックは第１実施形態の場合と略同じであり、同一の機能ブロックが担う機能は、仮想貨幣データ生成部２２３の一部の機能を除けば、第１実施形態の場合と同じである。また、変形例２における制御部２００内に生成される機能ブロックには、第１実施形態にあった第１記録部２２４Ｃが存在せず、その代わりに第１実施形態には無かった第２記録部２２４Ｄが存在する。
第１記録部２２４Ｃは確認用元データを記録するものであったが、第２記録部２２４Ｄは後述するように、確認用暗号化データを記録するものである。第１実施形態では、決済端末３００等から決済を求めて仮想貨幣データが決済装置２００に送られて来た後に第１記録部２２４Ｃに記録されていた確認用元データを暗号化して確認用暗号化データを生成することとしていた。他方、変形例２では、確認用暗号化データは、決済端末３００等から決済装置２００へと仮想貨幣データが送られて来たタイミングとは無関係に、通常は決済端末３００等から決済装置２００へと仮想貨幣データが送られて来る前に生成され、予め第２記録部２２４Ｄに記録される。この点が第１実施形態と変形例２との大きな相違点である。
【００７０】
変形例２の決済装置２００における仮想貨幣データ生成部２２３と決済判定部２２６とが実行する処理は、第１実施形態と若干異なる。この点も考慮し、変形例２の仮想貨幣データ生成部２２３、決済判定部２２６、及び第２記録部２２４Ｄの機能、及び前２者が実行する処理について説明する。
【００７１】
まず、仮想貨幣データ生成部２２３についてである。変形例２の仮想貨幣データ生成部２２３の機能、及びそこで行われる処理については、第１実施形態と殆ど変わらない。仮想貨幣データ生成部２２３は、第１実施形態の場合と同様に暗号化部２２３Ａと結合部２２３Ｂとを有している。結合部２２３Ｂの機能、そこで行われる処理は第１実施形態の場合と同一である。
第１実施形態の場合と同様に、図１２（Ａ）に示した元データを、暗号化し、かかる暗号化によって得られた文字列から所定の規則にしたがって一部の文字を抜き出して新たな文字列を生成することにより、暗号化部２２３Ａは仮想貨幣暗号化データを生成する。第１実施形態の場合と同様に、かかる仮想貨幣暗号化データは、結合部２２３Ｂに送られ、結合部２２３Ｂによってそれに対して平文の第１実施形態で説明したデータが付加されることによって、仮想貨幣データが生成される。第１実施形態の仮想貨幣データ生成部２２３は、仮想貨幣データを決済装置２００からユーザ端末１００に送る処理を決済装置２００が行うために、主制御部２２２に対して仮想貨幣データを送ったが、変形例２の仮想貨幣データ生成部２２３は、それとともに、当該仮想貨幣データを第２記録部２２４Ｄにも送るようになっている。
第２記録部２２４Ｄには、送られてきた仮想貨幣データが記録される。仮想貨幣データには仮想貨幣暗号化データが含まれているから、第２記録部２２４Ｄには、仮想貨幣暗号化データが仮想貨幣データの一部として記録されることになる。第２記録部２２４Ｄに記録された状態の仮想貨幣暗号化データを、確認用暗号化データと称することとする。かかる処理は繰り返し行われるので、通常、第２記録部２２４Ｄには、仮想貨幣データが、多数記録された状態となる。なお、変形例２では、第２記録部２２４Ｄに対する仮想貨幣データの記録は、決済装置２００からユーザ端末１００への仮想貨幣データの送信と略同時に行われるようになっている。
【００７２】
主制御部２２２に送られた仮想貨幣データは、第１実施形態の場合と同様に、決済装置２００からユーザ端末１００に送られる。
かかる仮想貨幣データの使用方法は第１実施形態の場合と同様であり、ユーザ端末１００から決済端末３００に引渡され、決済端末３００から、決済端末ＩＤとともに決済装置２００に送られる。
仮想貨幣データは、第１実施形態の場合と同様に、決済端末ＩＤとともに主制御部２２２から決済判定部２２６へと送られる。
【００７３】
決済判定部２２６は、受取った仮想貨幣データが真正なものであるか、もっと言えば、受取った仮想貨幣データに含まれた仮想貨幣暗号化データが真正なものかということについての確認である、第１実施形態の場合と同様の決済判定を行う機能を有している。この点についての確認は、第１実施形態では事実上、決済端末３００から決済装置２００に送られた仮想貨幣データに含まれていた仮想貨幣データと、決済判定部２２６からの依頼によって暗号化部２２３Ａで生成された確認用暗号化データとが一致するか否かという判定により行われていたが、変形例２の決済判定部２２６は、それとは異なる方法でその確認を行う。
主制御部２２２から仮想貨幣データを受取った決済判定部２２６は、第２記録部２２４Ｄ内に記録された仮想貨幣データに対して検索を行う。その結果、主制御部２２２から受取った仮想貨幣データと同じ仮想貨幣データが第２記録部２２４Ｄに記録されていた場合、又は主制御部２２２から受取った仮想貨幣データに含まれていた仮想貨幣暗号化データと同じ確認用暗号化データが第２記録部２２４Ｄに記録されていた場合には、主制御部２２２から受取った仮想貨幣暗号化データ乃至仮想貨幣データが真正なものであると判定し、主制御部２２２から受取った仮想貨幣データと同じ仮想貨幣データが第２記録部２２４Ｄに記録されていなかった場合、又は主制御部２２２から受取った仮想貨幣データに含まれていた仮想貨幣暗号化データと同じ確認用暗号化データが第２記録部２２４Ｄに記録されていなかった場合には、主制御部２２２から受取った仮想貨幣暗号化データ乃至仮想貨幣データが真正なものでないと判定する。このように、変形例２では、主制御部２２２から受取った仮想貨幣データと第２記録部２２４Ｄに予め記録されていた仮想貨幣データの一致を見るか、或いは主制御部２２２から受取った仮想貨幣データに含まれていた仮想貨幣暗号化データと、第２記録部２２４Ｄに予め記録されていた確認用暗号化データの一致を見るかのいずれかによって、決済装置２００に決済端末３００から送られてきた仮想貨幣データ乃至それに含まれた仮想貨幣暗号化データの真正性の判定を行うこととしている。かかる判定のうち、主制御部２２２から受取った仮想貨幣データに含まれていた仮想貨幣暗号化データと、第２記録部２２４Ｄに予め記録されていた確認用暗号化データの一致を見る方法を採用する場合には、第２記録部２２４Ｄに記録されるデータは仮想貨幣データの全体ではなく、確認用暗号化データとしての仮想貨幣暗号化データのみであっても構わない。
なお、変形例２でも、第２記録部２２４Ｄに記録されていた仮想貨幣データのうち、決済判定部２２６が主制御部２２２から受取った仮想貨幣データと同じものであると判定したものは、例えばそれに対応する仮想貨幣データによる決済端末３００の管理者等への支払いが終了した後に、第２記録部２２４Ｄから消去するのが望ましい。
変形例２における決済判定部２２６が行う仮想貨幣暗号化データ乃至仮想貨幣データの真正性の判定は、以上のようなものとすることができるが、変形例２における決済判定部２２６も第１実施形態で説明したような付加的な判定を更に行うことができる。そのような付加的な判定を行う場合には、主制御部２２２から送られてきた仮想貨幣データ中の仮想貨幣暗号化データに付加された平文のデータと同一のデータが、第２記録部２２４Ｄに記録されている仮想貨幣データ中の平文のデータの中に含まれているかを決済判定部２２６が判定すれば良い。変形例２におけるかかる判定は第１実施形態の場合と同様に行うことができる。
つまり、以後の処理はすべて第１実施形態と同じとすることができ、変形例２ではそうしている。
以後の説明は省略する。
なお、変形例２の決済装置２００も、変形例１で説明した鍵生成部２２７を有することにより、例えばすべての仮想貨幣データの生成のために暗号化部２２３Ａで使用される鍵を変更することが可能である。
【００７４】
≪第２実施形態≫
第２実施形態による決済システムについて説明する。
第２実施形態による決済システムも、第１実施形態の場合と同様に、それらのいずれもがネットワーク４００に接続可能とされている、ユーザ端末１００、決済装置２００、決済端末３００により構成される。
第２実施形態による決済システムと第１実施形態における決済システムの決定的な相違点は、第１実施形態における決済システムでは、仮想貨幣データは決済装置２００によって生成乃至発行されるようになっていたが、第２実施形態における決済システムでは、仮想貨幣データはユーザ端末１００のそれぞれで生成乃至発行されるようになっている、という点である。つまり、第２実施形態におけるユーザ端末１００は、本願発明における仮想貨幣データ生成装置に相当し、第２実施形態における決済装置２００は、本願発明における決済装置に相当する。第１実施形態とは異なり、第２実施形態における決済装置２００は、本願発明における仮想貨幣データ生成装置としての性格を持たない。
第１実施形態における決済端末３００と第２実施形態における決済端末３００とは同一のものでよく、第２実施形態における決済端末３００は第１実施形態における決済端末３００と同一とされているが、上述した相違点の存在に基づき、第１実施形態と第２実施形態とでは、ユーザ端末１００及び決済装置２００の機能及びそこで実行される処理が異なるものとなっている。とはいえ、第１実施形態と第２実施形態とにおけるユーザ端末１００及び決済装置２００は、そのハードウェア構成については相違がない。
【００７５】
第２実施形態のユーザ端末１００でも、ＣＰＵ１１１がコンピュータプログラムを実行することにより、ユーザ端末１００内部に機能ブロックが生成される。かかる機能ブロックを、図１７に示す。なお、以下の機能ブロックは、ユーザ端末１００を本願発明の仮想貨幣データ生成装置として機能させるためのコンピュータプログラム単体の機能により生成されていても良いが、かかるコンピュータプログラムと、ユーザ端末１００にインストールされたＯＳその他のコンピュータプログラムとの協働により生成されても良い。
ユーザ端末１００内には、本願発明の機能との関係で、以下のような制御部１２０が生成され、制御部１２０内に、主制御部１２１、表示制御部１２２、データ入出力部１２３、ユーザ端末記録部１２４、暗号化部１２５が生成される。
【００７６】
制御部１２０は、以下に説明するような情報処理を実行する。
主制御部１２１は、制御部１２０内の全体的な制御を行う。例えば、主制御部１２１は、追って詳述するデータ入出力部１２３から受取ったデータに基づいて表示制御部１２２の制御を行う。
主制御部１２１は、データ入出力部１２３から、入力装置１０２から入力された開始情報、金額情報、支払い情報、譲渡情報、及びユーザＩＤを受取る場合があり、それらを受取ったとき、後述するような処理をそれぞれ行うようになっている。例えば、開始情報を受取った場合、主制御部１２１は、金額情報等の仮想貨幣データを生成するために必要なデータの入力をユーザに促すための表示をディスプレイ１０１にさせるための処理を実行すべく表示制御部１２２に指示を送るようになっている。金額情報を受取った場合、主制御部１２１は、それをそのまま、或いはそれに必要に応じて金額情報以外のデータを付加して後述するような元データを生成するようになっている。主制御部１２１は生成した元データを暗号化部１２５に送るようになっている。また、主制御部１２１は金額情報及びユーザＩＤをデータ入出力部１２３に送るようになっている。金額情報及びユーザＩＤは、データ入出力部１２３から、送受信部、ネットワーク４００を介して決済装置２００へと送られるようになっている。決済装置２００に送られる金額情報及びユーザＩＤには、更に主制御部１２１が生成した元データを特定するために必要となるデータが付加されていても良い。かかるデータの用途については後述する。
主制御部１２１は、追って説明するデータ入出力部１２３から、これも追って説明する許可情報を受取る場合がある。それを受取った場合、主制御部１２１は、元データを暗号化せよとの指示を暗号化部１２５に送るようになっている。かかる指示は上述する元データとともに暗号化部１２５に送られるようになっていてもよく、これには限られないがこの実施形態ではそうされている。
主制御部１２１は、後述するように、暗号化部１２５から仮想貨幣暗号化データを受取る場合がある。これを受取った主制御部１２１は、それをそのまま仮想貨幣データとするか、或いはそれに必要に応じて仮想貨幣暗号化データ以外のデータを付加して仮想貨幣データを生成するようになっている。生成された仮想貨幣データは、ユーザ端末記録部１２４に送られるか、或いは仮想貨幣データに基づく後述する表示をディスプレイ１０１に行わせるための指示を表示制御部１２２に送るようになっている。主制御部１２１は後述するようにユーザ端末記録部１２４から仮想貨幣データを読み出す場合がある。それを読み出した主制御部１２１は仮想貨幣データに基づく表示をディスプレイ１０１に行わせるべく表示制御部１２２に指示を送るようになっており、また場合によってはそれをデータ入出力部１２３に送るようになっている。
表示制御部１２２は、主制御部１２１の制御を受けつつ、ディスプレイ１０１に表示される画像の制御を行う。ディスプレイ１０１には、表示制御部１２２から送られたデータに基づく画像が表示される。主制御部１２１は、表示制御部１２２に対して、ディスプレイ１０１にどのような画像を表示させるべきかという指示を送るようになっている。
【００７７】
データ入出力部１２３は、制御部１２０へのデータの入出力を行うものである。具体的には、データ入出力部１２３は、入力装置１０２からの入力を受取るようになっている。入力装置１０２からデータ入出力部１２３へ入力されるのは、例えば、開始情報、金額情報、支払い情報、譲渡情報、及びユーザＩＤである。これらはデータ入出力部１２３から主制御部１２１に送られるようになっている。
また、データ入出力部１２３は、送受信部から、決済装置２００等からネットワーク４００を介して送られて来た許可情報を受取るようになっている。データ入出力部１２３は、受取った許可情報を、主制御部１２１に送るようになっている。
また、データ入出力部１２３は主制御部１２１から、金額情報及びユーザＩＤを受取る場合がある。これを受取ったデータ入出力部１２３は、金額情報及びユーザＩＤを送受信部に送るようになっており、金額情報及びユーザＩＤは送受信部からネットワーク４００を介して決済端末３００へと送られるようになっている。データ入出力部１２３は主制御部１２１から、仮想貨幣データを受取る場合がある。これを受取ったデータ入出力部１２３は、仮想貨幣データを送受信部に送るようになっており、仮想貨幣データは送受信部から例えば他のユーザ端末１００や、決済端末３００へと送られるようになっている。仮想貨幣データの送信先は、後述するように、入力装置１０２からの入力にしたがって、主制御部１２１によって指定される。
【００７８】
ユーザ端末記録部１２４は、上述したように、主制御部１２１が生成した仮想貨幣データを主制御部１２１から受取り、それを記録するようになっている。ハードウェアとして捉えた場合、ユーザ端末記録部１２４は、ＲＡＭ１１３の一部により構成されている。
また、ユーザ端末記録部１２４に記録されている仮想貨幣データは、後述するようなタイミングで主制御部１２１により読み出されることがある。
【００７９】
暗号化部１２５は、上述したように、主制御部１２１から元データを受取る場合がある。暗号化部１２５は、主制御部１２１から元データを受取った場合に、それを暗号化し、更に元データを暗号化することにより得られた文字列から所定の規則にしたがってその一部の文字を抜き出して新たな文字列を生成することにより、仮想貨幣暗号化データを生成する機能を有している。暗号化部１２５で実行される、元データから仮想貨幣暗号化データを生成する処理は、第１実施形態の暗号化部２２３Ａで実行される処理と同じとすることができ、この実施形態ではそうされている。各ユーザ端末１００における暗号化部１２５が実行する暗号化の処理は、異なるものとなるようにされている。暗号化の処理は通常、暗号化のために用いられるアルゴリズム及び鍵によって定義されるから、各ユーザ端末１００で実行される暗号化の処理に用いられるアルゴリズム及び鍵は、少なくともその一方が各ユーザ端末１００毎にユニークなものとされている。
各ユーザ端末１００の暗号化部１２５で実行される暗号化の処理の詳細については、後述するものとするが、第２実施形態における各ユーザ端末１００における暗号化の方法は固定された１通りであるものとする。
暗号化部１２５は、生成した仮想貨幣暗号化データを主制御部１２１へと送るようになっている。
【００８０】
次に、決済装置２００について説明する。なお、これには限られないが、この実施形態における決済装置２００は、各ユーザ端末１００においてある金額に対応する価値を持つ仮想貨幣データを発行して良いか否かについての判定である与信判定と、仮想貨幣データを発行した以外の他の装置（これには限られないがこの実施形態では、ユーザ端末１００又は決済端末３００）から仮想貨幣データが送られてきた場合に、当該仮想貨幣データに基づく決済を行って良いか否かの判定である決済判定と、を実行する機能を有している。与信判定と決済判定については追って詳しく述べる。
決済装置２００は一般的なコンピュータであり、既に述べたように、そのハードウェア構成は第１実施形態における決済装置２００と変わらない。
【００８１】
ＣＰＵ２１１がコンピュータプログラムを実行することにより、決済装置２００内部には、機能ブロックが生成される。決済装置２００内に生成される機能ブロックを図１８に示す。なお、以下の機能ブロックは、決済装置２００を本願発明の決済装置として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、決済装置２００にインストールされたＯＳその他のコンピュータプログラムとの協働により生成されても良い。
決済装置２００内には、制御部２２０が生成される。制御部２２０内には、データ入出力部２２１、主制御部２２２、信用情報記録部２２４Ｂ、暗号化部２２８、第１記録部２２４Ｃ、決済判定部２２６が生成される。
【００８２】
データ入出力部２２１は、制御部２２０へのデータの入出力を行うものである。具体的には、データ入出力部２２１は、主制御部２２２から後述する種々のデータを受付けるようになっている。
例えば、データ入出力部２２１は、主制御部２２２から許可情報を受付けるようになっている。受取られた許可情報は、データ入出力部２２１から、送受信部に送られ、ネットワーク４００を介してユーザ端末１００に送られるようになっている。
データ入出力部２２１は、また、ネットワーク４００を介してユーザ端末１００又は決済端末３００から送受信部が受取った後述する種々のデータを送受信部から受取り、受取ったそれらデータを主制御部２２２に送るようになっている。例えば、データ入出力部２２１は、送受信部から仮想貨幣データ、または金額情報を受取る場合があり、それらのいずれかを受取ったデータ入出力部２２１はそれらを主制御部２２２に送るようになっている。
【００８３】
主制御部２２２は、制御部２２０内の全体的な制御を行う。例えば、主制御部２２２は、後述する与信判定の処理を実行するようになっている。また、主制御部２２２は、後述する決済の処理を行うようになっている。また、主制御部２２２は、決済装置２００が決済端末３００等から決済を求める仮想貨幣データを受付けたとき、決済判定部２２６と暗号化部２２８に必要なデータを送ることにより、それらに決済の処理に必要な決済判定の処理を行わせるようになっている。
主制御部２２２は、上述したように、データ入出力部２２１から、金額情報を受取る場合がある。それを受取った主制御部２２２は、与信判定の処理を実行するようになっている。与信判定の処理を実行する場合、主制御部２２２は、信用情報記録部２２４Ｂに記録されているデータを利用してそれを行う。信用情報記録部２２４Ｂには、与信判定を行うための各ユーザについてのデータが記録されている。信用情報記録部２２４Ｂに記録されているデータの内容と、主制御部２２２で行われる与信判定の処理は、第１実施形態と同様でよく、この実施形態ではそうされている。主制御部２２２は、与信判定の結果、金額情報で特定される金銭的な価値を持つ仮想貨幣データを、その金額情報を送ってきたユーザのユーザ端末１００で生成して良いとの判定を行った場合には、許可情報を生成し、逆に、その金額情報を送ってきたユーザのユーザ端末１００で生成して良いとの判定を行わなかった場合には、許可情報を生成しないようになっている。なお、この実施形態ではこれには限られないが、許可情報を生成しない場合には、主制御部２２２は、ユーザ端末１００で仮想貨幣データの発行を認めないということをその内容とする、事実上の不許可情報を生成するようになっている。いずれにせよ、許可情報又は不許可情報を生成した場合には、主制御部２２２はそれを、データ入出力部２２１へと送るようになっている。なお、主制御部２２２は、与信判定の結果が否定的である場合には、不許可情報を生成せずにそこで処理を中止しても良い。
主制御部２２２は、上述したように、データ入出力部２２１から、決済端末３００等から決済を求めて決済装置２００に送られて来た仮想貨幣データを受取る場合があり、それを受取った主制御部２２２は、仮想貨幣データ（場合によってはそれに含まれる仮想貨幣暗号化データのみ）を決済判定部２２６に送る他、暗号化部２２８に、暗号化をせよとの指示を、その仮想貨幣データに含まれていたユーザＩＤとともに送るようになっている。
主制御部２２２は、また、決済判定部２２６から、後述する最終判定データを受取る場合がある。最終判定データは、第１実施形態の場合と同様のデータであり、決済を認めること、或いは決済を認めないことのいずれかを示すデータである。その内容が肯定的な場合も否定的な場合も、最終判定データを受取った主制御部２２２が実行する処理は、第１実施形態と同様である。
第２実施形態の主制御部２２２は、元データを生成する機能を有している。元データは、後述するようにユーザ端末１００内で生成される平文のデータであって、この実施形態ではユーザ端末１００で生成乃至発行される仮想貨幣データに含まれる仮想貨幣暗号化データの元となるデータである。決済装置２００内で生成される元データは、ユーザ端末１００が決済装置２００に許可情報の発行を求めて送ってきて、送受信部、データ入出力部２２１を介して主制御部２２２に送られてくる、ユーザＩＤ及び金額情報に基いて生成される。主制御部２２２が生成する元データは、ユーザ端末１００で生成される元データと同じものとなるようになっている。主制御部２２２において実行される元データの生成の過程がどのようなものであるかは後述することとする。なお、以後において、主制御部２２２で生成される元データを、ユーザ端末１００で生成される元データと区別するために、確認用元データと称することにする。主制御部２２２は、生成した確認用元データを、第１記録部２２４Ｃに記録するようになっている。第１記録部２２４Ｃは、主制御部２２２に書き込まれた多数の確認用元データを記録する記録手段である。
【００８４】
暗号化部２２８は、上述したように、主制御部２２２から、暗号化をせよとの指示をユーザＩＤとともに受取る場合がある。
かかる指示を受取った場合、暗号化部２２８は第１記録部２２４Ｃから確認用元データを読み出して、それを暗号化するようになっている。暗号化部２２８が確認用元データを暗号化することによって生成されるのが、確認用暗号化データである。確認用暗号化データは、ユーザ端末１００の暗号化部１２５で元データに基いて生成される仮想貨幣暗号化データと同じものとなるようになっている。
暗号化部２２８が第１記録部２２４Ｃに記録されている多数の確認用元データのうちのどれを読み出すか、また、暗号化部２２８が第１記録部２２４Ｃから読み出した確認用元データをどのようにして暗号化して確認用暗号化データにするかという暗号化の過程の詳細については、後述するものとする。
暗号化部２２８は、生成した確認用暗号化データを決済判定部２２６に送るようになっている。
【００８５】
決済判定部２２６には、上述したように、主制御部２２２から仮想貨幣データ（又はそれに含まれていた仮想貨幣暗号化データ）が、暗号化部２２８から少なくとも１つの確認用暗号化データが、それぞれ送られてくる。これらを受取った場合、決済判定部２２６は、決済を認めて良いか否かについての判定である決済判定を行う。その結果、決済判定部２２６は、決済を認めること、及び決済を認めないことのいずれかの内容を含むデータである最終判定データを生成する。
かかる決済判定の過程は、第１実施形態と第２実施形態とで異なる。第２実施形態の決済判定部２２６が最終判定データをどのようにして生成するかについては後述するものとする。
いずれにせよ、最終判定データを生成したら、決済判定部２２６はそれを主制御部２２２に対して送るようになっている。
【００８６】
決済端末３００についての説明は、その構成、機能とも第１実施形態と同じであるから省略する。
【００８７】
次に以上のような第２実施形態の決済システムの使用方法、及び動作について図１９を参照しながら説明する。
【００８８】
まず、かかるシステムを使用するための準備として、各ユーザ端末１００において、ユーザＩＤの設定を行うとともに、各決済端末３００において、決済端末ＩＤの設定を行う。
ユーザＩＤは、各ユーザ端末１００を識別するための、各ユーザ端末１００においてユニークなＩＤであり、一般的には英字、数字、記号の羅列である。決済端末ＩＤも同様である。多数のユーザＩＤが重複しないようにするために、各ユーザ端末１００に対するユーザＩＤを決済装置２００（或いはその管理者等）が発行するようにしてもよい。決済端末ＩＤについても同様である。或いは、ユーザ端末１００のハードウェアに出荷時から埋め込まれている個体識別番号をユーザＩＤとして利用することもできる。決済端末ＩＤについても同様である。
各ユーザ端末１００の管理者は、その入力装置１０２を操作することにより当該ユーザ端末１００についてのユーザＩＤの入力を行う。なお、個体識別番号をユーザＩＤとして用いる場合には、かかる入力は不要である。ユーザＩＤのデータは、入力装置１０２から、インターフェイス１１４に送られ、インターフェイス１１４から制御部１２０に送られる。制御部１２０のデータ入出力部１２３はこれを受取り、主制御部１２１に送る。主制御部１２１は、それを保持し、或いは主制御部１２１内に記録してもよい。
他方、主制御部１２１は、ユーザＩＤのデータをデータ入出力部１２３へと送る。ユーザＩＤのデータは、そこから送受信部へと送られ、ネットワーク４００を介して決済装置２００へと送られる。
決済装置２００は、その送受信部でユーザＩＤのデータを受取る。ユーザＩＤのデータは、送受信部からインターフェイス２１４に送られ、インターフェイス２１４から制御部２２０に送られる。制御部２２０のデータ入出力部２２１はこれを受取り、主制御部２２２に送る。主制御部２２２は、それを保持する、或いは主制御部２２２内に記録する。この処理をすべてのユーザ端末１００が行うことにより、主制御部２２２は、すべてのユーザ端末１００のリストを持つことになる。かかるリストは、誰（どのユーザ端末１００の所有者）のために仮想貨幣データを生成するのか、ということを決済装置２００が特定するために用いられる。
各決済端末３００の管理者は、その入力装置を操作することにより当該決済端末３００についての決済端末ＩＤの入力を行う。決済端末ＩＤのデータは、入力装置から、インターフェイス３１４に送られ、インターフェイス３１４から制御部３２０に送られる。制御部３２０のデータ入出力部３２３はこれを受取り、主制御部３２１に送る。主制御部３２１は、それを保持する、或いは主制御部３２１内に記録する。
他方、主制御部３２１は、決済端末ＩＤのデータをデータ入出力部３２３へと送る。決済端末ＩＤのデータは、そこから送受信部へと送られ、ネットワーク４００を介して決済装置２００へと送られる。
決済装置２００は、その送受信部で決済端末ＩＤのデータを受取る。決済端末ＩＤのデータは、送受信部からインターフェイス２１４に送られ、インターフェイス２１４から制御部２２０に送られる。制御部２２０のデータ入出力部２２１はこれを受取り、主制御部２２２に送る。主制御部２２２は、それを保持する、或いは主制御部２２２内に記録する。この処理をすべての決済装置２００が行うことにより、主制御部２２２は、すべての決済端末３００のリストを持つことになる。かかるリストは、誰（どの決済端末３００の管理者）に対しての支払い（決済）を認めるか、ということを決済装置２００が特定するために用いられる。
【００８９】
まず、仮想貨幣データが生成される。
これには限られないが、第２実施形態では、仮想貨幣データの生成は、開始情報をユーザが自らのユーザ端末１００に入力することから始まる（Ｓ９５１）。
ユーザが開始情報の入力を行う場合、例えば、ユーザは、ディスプレイ１０１上に表示されている図示を省略のアイコンにタッチすればよい。そうすると、その操作内容により開始情報が生成され、生成された開始情報が、入力装置１０２からインターフェイス１１４、データ入出力部１２３を介して主制御部１２１に送られる。
開始情報を受取ると、主制御部１２１は、表示制御部１２２に対して、ユーザＩＤ等の入力をユーザに促すような画像をディスプレイ１０１に表示せよとの指示を送る。この指示を受付けた表示制御部１２２は、ディスプレイ１０１に、例えば、第１実施形態の場合と同様の図１０（Ａ）の如き、ユーザに対して、ユーザＩＤと、ユーザがこれから発行しようとする仮想貨幣データに持たせる金銭的な価値を特定するための金額（例えば、他人に支払を行おうとする該当金額）と、の入力を促す画像を表示する。ユーザは、ディスプレイ１０１上のユーザＩＤと示された部分の右側の矩形の枠内にユーザＩＤを、金額（円）と示された部分の右側の矩形の枠内に上述の金額をそれぞれ入力する（Ｓ９５２）。ユーザが入力したユーザＩＤと金額を特定するための情報である金額情報とについてのデータは、入力装置１０２からインターフェイス１１４を介してデータ入出力部１２３に入力され、主制御部１２１に送られる。ユーザが入力したユーザＩＤと金額情報は、入力中も含めて、主制御部１２１に制御された表示制御部１２２の制御によってディスプレイ１０１に表示されるから、ユーザは、ディスプレイ１０１を確認しながら、ユーザＩＤと金額情報との入力を行うことができる。第１実施形態の場合と同様に、第２実施形態でも、図１０（Ｂ）に示したように、ユーザは、この決済システムを用いて、２５０００円の支払いを行おうとしているものとする。
ユーザＩＤと金額情報の入力が終わったら、ユーザは、ディスプレイ１０１に表示された「決定」と書かれたボタンをクリックする。
開始情報の入力後に入力すべきデータは、この実施形態では、上述のようにユーザＩＤと金額情報である。もっともユーザＩＤは、ユーザが仮想貨幣データをユーザ端末１００で生成する度に入力する必要はなく、例えば、主制御部１２１に予め記録しておくことにより、仮想貨幣データを生成する度のユーザＩＤの入力を省略することも可能である。また、ユーザＩＤと金額情報とに加えて、更に他の情報をユーザが入力することを必須とすることも可能である。
【００９０】
「決定」と書かれたボタンをユーザがクリックすると、ユーザＩＤと金額情報とが、データ入出力部１２３から主制御部１２１に送られる。
主制御部１２１は、ユーザＩＤと金額情報とを受取ると、それらをデータ入出力部１２３へと送る。ユーザＩＤと金額情報は、送受信部からネットワーク４００を介して、決済装置２００に送られる（Ｓ９５３）。
なお、第１実施形態の場合と同様、第２実施形態においても、ネットワーク４００を介して行われる通信はすべて、暗号化通信であってもよい。
【００９１】
決済装置２００は、その送受信部でユーザＩＤと金額情報とを受取る（Ｓ９６１）。送受信部はそれらユーザＩＤと金額情報とをデータ入出力部２２１に送り、データ入出力部２２１はそのデータを主制御部２２２に送る。
主制御部２２２は、ユーザＩＤで特定されるユーザ端末１００を所持するユーザが、金額情報で特定される金額の金銭的な価値を持つ仮想貨幣データを生成して良いか否かの判定である与信判定を行う（Ｓ９６２）。後述するように、特に問題なければ、決済装置２００はユーザ端末１００に対して仮想貨幣データの発行を許可する許可情報を送信することになるが、仮想貨幣データは金銭的な価値のあるデータなのであるから、そのような仮想貨幣データをユーザＩＤと金額情報とを送ってきたユーザが発行して良いか否かについて、予め判定を行うのである。かかる与信判定を、仮想貨幣データの発行をユーザ端末１００が行う前に決済装置２００が行うことにより、その後にユーザ端末１００で発行される仮想貨幣データの信用力が向上する。
これには限られないが、この実施形態における主制御部２２２は、第１実施形態の場合と同様に、与信判定を行う場合、信用情報記録部２２４Ｂに記録されているデータを用いる。信用情報記録部２２４Ｂには、例えば、第１実施形態の場合と同様に、図１１（Ａ）に示したようなデータが記録されている。  
かかるデータを用いて主制御部２２２が実行する与信判定の処理は、既に述べたように第１実施形態と同じで良い。
いずれにせよ、主制御部２２２は、ユーザの与信が認められた場合には、許可情報を生成する。
主制御部２２２は、生成した許可情報を、データ入出力部２２１に送る。データ入出力部２２１は、許可情報を、送受信部に送り、ネットワーク４００を介してユーザ端末１００に送る（Ｓ９６３）。
【００９２】
ユーザ端末１００は、その送受信部で許可情報を受取る（Ｓ９５４）。送受信部は許可情報をデータ入出力部１２３に送り、データ入出力部１２３はそれを主制御部１２１に送る。
許可情報を受取ると主制御部１２１は、先に受け取っていたユーザＩＤと金額情報とに基いて元データを生成する（Ｓ９５５）。第２実施形態では、元データには金額情報が少なくとも含まれる。これには限られないが、この実施形態では、主制御部１２１は、金額情報とユーザＩＤとを単に繋げたものを元データとする。なお、元データには、金額情報が必須であり、ユーザＩＤが含まれていても良いが、更に他の情報が含まれていても良い。例えば、ユーザが開始情報の入力を行った日時についてのタイミング情報、ユーザが開始情報を入力したときのユーザ端末１００の位置（例えば、スマートフォンであれば標準的に搭載されているＧＰＳ（Global Positioning System）の機能を用いれば、ユーザ端末１００の位置情報を検出することは容易である。）についての位置情報等を元データに含めることが可能である。また、ユーザが設定したパスワードや、性別、電話番号等のユーザの属性に関する情報を元データに含めることもできる。とりあえずこの実施形態では、元データは上述の如きものであるとする。
元データは主制御部１２１から、暗号化部１２５に送られる。なお、元データの生成は、元データの元となるユーザＩＤ及び金額情報を主制御部１２１が受取った状態であればいつでも主制御部１２１は実行しうる。したがって、決済装置２００から送られて来た許可情報を主制御部１２１が受取る前であっても、もっと言えば、ユーザＩＤと金額情報の入力に関するＳ９５２の処理が実行された直後であっても、主制御部１２１は元データの生成に関するＳ９５５の処理を実行しうる。
上述したように、決済装置２００からユーザ端末１００に不許可情報が送られてくる場合がある。この場合には、ユーザ端末１００の主制御部１２１は元データの生成を行わず、仮に不許可情報の入手前に先に元データを生成していたとしても、それを暗号化部１２５に送ることがない。つまり、不許可情報を受取ったユーザ端末１００では、後述するような仮想貨幣暗号化データも仮想貨幣データも生成されることがない。不許可情報には、不許可の理由を示す情報が含まれていても良い。かかる情報に基づく不許可の理由を示す画像がユーザ端末１００のディスプレイ１０１に表示されることにより、ユーザが、例えば自己の入金口座の残高不足等の不許可の理由をディスプレイ１０１を目視することで確認できるようになっていても構わない。
【００９３】
暗号化部１２５は、主制御部１２１から元データを受取ると、元データを暗号化する等して仮想貨幣暗号化データとする（Ｓ９５６）。
上述したように、各ユーザ端末１００の暗号化部１２５は、それぞれ異なる方法で暗号化の処理を実行するようになっている。とはいえ、これには限られないがこの実施形態における各ユーザ端末１００の暗号化部１２５で実行される暗号化の方法は、固定された１つの方法である。各ユーザ端末１００で異なる暗号化の処理を実行するため、これには限られないがこの実施形態では、各ユーザ端末１００の暗号化部１２５で実行される暗号化の処理に用いられるアルゴリズムは同一とされているものの、暗号化の処理に用いられる鍵が、それぞれ異なるものとされている。
暗号化部１２５は、そのアルゴリズムと鍵を用いて、主制御部１２１から受取った元データを暗号化して、ある文字列を生成する。そして、元データを暗号化することによって得られた文字列から、所定の規則にしたがって一部の文字を抜き出すことにより新たな文字列を生成する。かかる新たな文字列が、仮想貨幣暗号化データである。このようにして暗号化部１２５は、元データを仮想貨幣暗号化データに変換する。暗号化部１２５が実行する元データを仮想貨幣暗号化データに変換する処理は、第１実施形態の暗号化部２２３Ａで行われた処理と同様で良い。
生成された仮想貨幣暗号化データを、暗号化部１２５は主制御部１２１に送る。
【００９４】
主制御部１２１は、かかる仮想貨幣暗号化データに基いて仮想貨幣データを生成する（Ｓ９５７）。
主制御部１２１は、仮想貨幣暗号化データをそのまま仮想貨幣データとする場合もあるが、この実施形態では、仮想貨幣暗号化データに平文のユーザＩＤを付すことで仮想貨幣データとする。つまり、この実施形態では、例えば、その先頭に付された平文のユーザＩＤと、ユーザＩＤの後に繋げられた仮想貨幣暗号化データと、を組合せたものが仮想貨幣データとなる。仮想貨幣データは、ユーザが支払のために用いる金銭的な価値を持つデータであり、仮想貨幣暗号化データはその本体となる。
仮想貨幣データは、そのままデータ入出力部１２３に送られても良いが、一般的には主制御部１２１からユーザ端末記録部１２４に送られ、そこに記録される。
これにて、仮想貨幣データの生成或いは発行が一先ず終了する。
【００９５】
このように、ユーザ端末１００では、許可情報を決済装置２００から受取ると、それを契機に仮想貨幣データが生成乃至発行される。他方、第２実施形態における決済装置２００では、それと並行して、上述した確認用元データの生成が行われる。
上述したように、Ｓ９６１で、決済装置２００は、ユーザ端末１００からユーザＩＤ及び金額情報を受取る。ユーザＩＤと金額情報とは、主制御部２２２によって受け取られる。これらに基づき、主制御部２２２は、確認用元データを生成し、それを第１記録部２２４Ｃに記録する（Ｓ９６３Ａ）。ここで、確認用元データは、確認用元データの元となるユーザＩＤ及び金額情報を送って来たユーザ端末１００で、当該ユーザＩＤ及び金額情報に基いて生成された許可情報を受取ったユーザ端末１００の主制御部１２１が生成する元データと同じものとなるようにする。
上述したように、ユーザ端末１００の主制御部１２１が生成する元データは、ユーザＩＤと金額情報とを単に組合せたものである。決済装置２００は、ユーザ端末１００からユーザＩＤ及び金額情報を送られているのであるから、その主制御部２２２は、それらを組合せることにより、ユーザ端末１００で生成される元データと同一の確認用元データを生成することができる。
もっとも、ユーザ端末１００で生成される元データは、ユーザＩＤと金額情報以外の情報、例えば、タイミング情報、位置情報、ユーザの属性に関する情報等を元データに含むものである場合もある。そのような場合でも、主制御部２２２で生成される確認用元データはユーザ端末１００で生成される元データと同一でなければならない。例えば、ユーザの属性に関する情報であれば、ユーザがその情報を予め決済装置２００にユーザＩＤと紐付けて登録しておく等しておけば、決済装置２００の主制御部２２２は、確認用元データを生成する場合に改めてその情報の提供をユーザ端末１００から受けなくても、ユーザ端末１００の主制御部１２１で生成される元データと同一の確認用元データを生成することができる。他方、タイミング情報は、厳密さを問わなければ、決済装置２００がユーザ端末１００から送られてきたユーザＩＤ及び金額情報を受取った日時を決済装置２００でそのまま流用することが可能である。しかしながら、ユーザが開始情報を入力したときのユーザ端末１００の位置を特定する、ユーザ端末１００のＧＰＳ等で生成される位置情報については、決済装置２００の主制御部２２２は、確認用元データを生成する場合にその情報の提供をユーザ端末１００から受けなければ、ユーザ端末１００の主制御部１２１で生成される元データと同一の確認用元データを生成することができない。したがって、このような場合には、決済装置２００は、ユーザ端末１００から、ユーザ端末１００の主制御部１２１が生成する元データと同じ確認用元データを生成するための情報の提供をユーザ端末１００から受けなければならないこととなる。
なお、第２実施形態では、暗号化部１２５で実行される暗号化の方法が固定された１通りなのであるから、元データがユーザＩＤと金額情報としか含まない場合には、同一のユーザ端末１００で生成される仮想貨幣データに含まれる仮想貨幣暗号化データのうち、仮想貨幣暗号化データの元となった元データに含まれる金額情報が同一のものは、同一のものとなってしまう。これを嫌うのであれば、同一のユーザ端末１００で多数生成される各元データをそれぞれユニークなものとするべきである。例えば、ここまでで述べたどの例によっても構わないがタイミング情報を元データに含めるとか、或いは変形例１で述べた記番号情報を元データに含めれば、暗号化部１２５で実行される暗号化の方法が常に同一であっても、各仮想貨幣暗号化データは異なるものとなる。記番号である数字が、例えば、その記番号が含められた仮想貨幣データが、そのユーザ端末１００が決済装置２００から受取った何番目の許可情報に基いて生成された仮想貨幣データであるかを示すものなのであれば、決済装置２００は、同一のユーザ端末１００に送った許可情報の数を、各ユーザ端末１００毎に、例えば各ユーザ端末１００のユーザＩＤと紐付けてカウントしていれば、ユーザ端末１００で生成される記番号と同じ記番号を、生成することができる。
以上のような取決めがユーザ端末１００と決済装置２００との間で予めなされており、そのような取決めに従った処理がユーザ端末１００と、決済装置２００との間で実行される。なお、ユーザ端末１００から決済装置２００への、ユーザ端末１００の主制御部１２１が生成する元データと同じ確認用元データを決済装置２００の主制御部２２２が生成できるようにするための情報の提供は、ユーザ端末１００から決済装置２００へのユーザＩＤ及び金額情報の送信についてのＳ９５３と同時のタイミングから、決済装置２００で確認用元データが生成される直前のタイミングまでのいずれかのタイミングで行われれば良い。
いずれにせよ、第１記録部２２４Ｃには確認用元データが記録される。第１記録部２２４Ｃに記録される確認用元データは多数であり、それらはそれぞれ、多数のユーザ端末１００でそれぞれ生成される多数の元データと同じものとなる。
【００９６】
ユーザ端末１００での処理に話を戻す。
仮想貨幣データが発行されたら、ユーザは、支払いを行う相手側である、例えば店舗の店員が管理する決済端末３００に対して、ユーザ端末１００から仮想貨幣データを引き渡す（Ｓ９５８）。かかる仮想貨幣データの引き渡しは、仮想貨幣データがユーザ端末１００で生成された直後に行われても良いし、しばらくの時間、例えば、数日から数ヶ月経ってから行われても良い。かかる仮想貨幣データの引き渡しをいつ行うかはユーザの自由である。
これには限られないがこの実施形態では、仮想貨幣データの引き渡しは、第１実施形態の場合と同様に、ユーザ端末１００のディスプレイ１０１に、表示された二次元バーコードを、決済端末３００が備えるカメラで撮像することによって行われる。
カメラで撮像された画像のデータは、決済端末３００のカメラからインターフェイス３１４を介して、データ入出力部３２３に送られ、そこから主制御部３２１に送られる。主制御部３２１は、その画像データに写った二次元バーコードから、仮想貨幣データを生成（再構築）する。これにより、決済端末３００は、ユーザ端末１００から仮想貨幣データを受領する（Ｓ９７１）。
いずれにせよ、主制御部３２１は一時的に、例えば、少なくともその仮想貨幣データによる支払いが終了するまで、仮想貨幣データを記録する。かかる記録は、ハードウェアとしては、ＲＡＭ３１３上に行われる。
ユーザから仮想貨幣データを受領したら、決済端末３００の管理者等は、決済端末３００の入力装置を操作して、仮想貨幣データを決済装置２００に送るための操作を行う。
かかる操作を行うと、入力装置から、データ入出力部３２３を介して主制御部３２１に、その操作内容が送られる。かかる入力がなされると、主制御部３２１は、仮想貨幣データを、データ入出力部３２３に対して送る。データ入出力部３２３は、それらデータを、送受信部に送り、送受信部はそれらデータを、ネットワーク４００を介して決済装置２００に送る（Ｓ９７２）。このとき、決済端末３００は、仮想貨幣データとともに決済端末ＩＤをも決済装置２００に送る。以下の説明の場合でも、決済を受けようとする決済端末３００は仮想貨幣データとともに決済端末ＩＤを決済装置２００に送る。
【００９７】
決済装置２００は、その送受信部で、決済端末ＩＤのデータと仮想貨幣データとを受取る（Ｓ９６４）。このように、第２実施形態でも、第１実施形態の場合と同様に、ユーザ端末１００から、決済端末３００を経て決済装置２００に仮想貨幣データは戻ってくる。
決済端末ＩＤの付された仮想貨幣データは、インターフェイス２１４、データ入出力部２２１を介して主制御部２２２に送られる。
それらを受取った主制御部２２２は、決済端末ＩＤのデータと仮想貨幣データ（場合によっては、仮想貨幣データに含まれていた仮想貨幣暗号化データ）とを決済判定部２２６へと送り、他方、仮想貨幣データに含まれていたユーザＩＤを暗号化を行えという指示とともに暗号化部２２８へと送る。
仮想貨幣データに含まれていたユーザＩＤとともに暗号化を行なえという指示を受取った暗号化部２２８は、確認用元データを暗号化する処理を実行して確認用元データから確認用暗号化データを生成する（Ｓ９６５）。
このとき、暗号化部２２８は、暗号化を行う対象としての確認用元データを第１記録部２２４Ｃから読み出す。確認用元データは、上述のようにユーザＩＤを含んでいる。第１記録部２２４Ｃから読み出される確認用元データは、主制御部２２２から送られてきたユーザＩＤを含んでいる確認用元データである。なお、第１記録部２２４Ｃに、もし暗号化部２２８が主制御部２２２から受取ったユーザＩＤを含む確認用元データが複数存在する場合には、その複数の確認用元データのすべてを暗号化部２２８は読み出す。
そして、暗号化部２２８は、第１記録部２２４Ｃから読み出した確認用元データを、それが１つの場合にはそれを、複数の場合にはそれらのすべてに対して、ユーザ端末１００における暗号化部１２５で実行されたのと同じ処理を行い、確認用元データを、確認用暗号化データに変換する。
この場合における暗号化の処理は、決済を求めて決済端末３００から送られて来た仮想貨幣データに含まれていた仮想貨幣暗号化データがユーザ端末１００の暗号化部１２５で暗号化されたときに用いられたのと同じ方法とされる。暗号化部２２８は、すべてのユーザ端末１００の暗号化部１２５で暗号化の処理が実行されるときに共通して用いられる暗号化の処理のためのアルゴリズムを保持している。暗号化部２２８は、また、各ユーザ端末１００の暗号化部１２５で暗号化の処理が実行されるときに各暗号化部１２５でそれぞれ用いられるユニークな鍵を、各ユーザ端末１００のユーザＩＤと紐付けて保持している。暗号化部２２８は、確認用元データの暗号化を行う場合、暗号化の処理のための上述のアルゴリズムと、主制御部２２２から送られてきたユーザＩＤと同じユーザＩＤと紐付けられていた暗号化部２２８が保持していた鍵と、を用いて暗号化の処理を実行する。
その結果、確認用元データは暗号化されある文字列が生成される。暗号化部２２８は、生成されたその文字列から所定の規則に基いて一部の文字を抜き出して新たな文字列を生成することにより確認用暗号化データを生成する。生成された確認用暗号化データは、それが複数の場合はすべて、暗号化部２２８から決済判定部２２６に送られる。
【００９８】
決済判定部２２６は、主制御部２２２から仮想貨幣データ（又はそれに含まれていた仮想貨幣暗号化データ）を、暗号化部２２８から少なくとも１つの確認用暗号化データを、それぞれ受取る。
それらを受取った決済判定部２２６は、決済判定を実行する（Ｓ９６６）。仮想貨幣暗号化データの真正性の判定を行うという目的自体は第１実施形態と変わりないが、第２実施形態で実行されるその判定の方法は、第１実施形態の場合と異なる。
決済判定部２２６は、主制御部２２２から仮想貨幣データを受取った場合にはそれから仮想貨幣暗号化データを取出し、その仮想貨幣暗号化データと、決済判定部２２６から受取った少なくとも１つの確認用暗号化データとを、比較する。その結果、確認用暗号化データのうちの少なくとも１つが仮想貨幣暗号化データと一致した場合には、当該仮想貨幣暗号化データは真正なものであると判定する。逆に、確認用暗号化データのすべてが仮想貨幣暗号化データと一致しなかった場合には、その仮想貨幣暗号化データは真正なものでないと判定する。なお、上述したように決済判定部２２６で確認用暗号化データとの同一性を判定される対象は、仮想貨幣データそのものではなく仮想貨幣暗号化データである。したがって、主制御部２２２から決済判定部２２６に送られるのは仮想貨幣データそのものではなく、仮想貨幣暗号化データであっても構わない。
このような方法で仮想貨幣暗号化データの真正性の判定を行えるのは、次のような理屈による。ユーザ端末１００で生成される仮想貨幣暗号化データは、元データを暗号化部１２５で暗号化することによって生成される。他方、決済装置２００で生成される確認用暗号化データは、確認用元データを暗号化部２２８で暗号化することによって生成される。ここで、元データと確認用元データとは上述したように同じものであり、また、ユーザ端末１００の暗号化部１２５で実行される暗号化の方法と、暗号化部２２８で実行される暗号化の方法とは、上述したように、ユーザＩＤを利用して同じものとなるように制御されている。つまり、同じものから同じ方法で生成された仮想貨幣暗号化データと、確認用暗号化データとは同じものとなるはずである。もっとも、ユーザ端末１００で生成された仮想貨幣データが複数存在する場合もありうる。しかしその場合であっても、決済装置２００の第１記録部２２４Ｃに記録されている確認用元データは、すべてのユーザ端末１００で生成されたすべての仮想貨幣データに暗号化された仮想貨幣暗号化データの形で含まれている元データに対応したものであり、また、暗号化部２２８で暗号化を行うために第１記録部２２４Ｃから読み出された確認用暗号化データは、決済端末３００から送られてきた仮想貨幣データに含まれていたユーザＩＤに対応したユーザ端末１００で発行されたもののすべてなのであるから、第１記録部２２４Ｃから読み出された確認用元データのすべてを暗号化部２２８で正しい方法により暗号化し、それに基いて暗号化されたデータの一部である確認用暗号化データを生成すれば、その結果生成される確認用暗号化データのうちの少なくとも１つは、仮想貨幣暗号化データに改竄等がない限り、仮想貨幣暗号化データと一致するはずである。
要するに、同じデータに基いて同じ暗号化の手法を行い、更にそこから同じ規則にしたがって一部のデータを抜き出すことにより同じデータを得られる、或いは同じデータを再現できるということにより、第２実施形態の決済判定部２２６は、仮想貨幣暗号化データの正当性を判定するのである。
なお、第１実施形態で行われていた付加的な判定をも第２実施形態の決済判定でも採用することは自由である。
第２実施形態でも、第１実施形態の場合と同様に、仮想貨幣暗号化データが真正であると決済判定部２２６が判定した場合には、決済判定部２２６は金額情報によって特定されている金額の支払いを認めるという肯定的な内容を示す最終判定データを生成し、そう判定されなかった場合には、決済判定部２２６は、金額情報によって特定されている金額の支払いを認めないという否定的な内容を示す最終判定データを生成する。
いずれにせよ、生成された最終判定データは、決済判定部２２６から主制御部２２２に送られる。
【００９９】
主制御部２２２は、最終判定データを受取り次の処理を行う。
最終判定データが肯定的なものであった場合、主制御部２２２は、最終判定データによって特定される金額の決済端末３００の管理者への支払いの処理を実行する。
最終判定データが肯定的なものであった場合、主制御部２２２は、決済が行われたこと、及びその金額の情報を少なくとも含むデータである肯定的な判定結果データを生成する。
他方、最終判定データが否定的なものであった場合、主制御部２２２は決済処理を行わない。
いずれにせよ、判定結果データは、主制御部２２２から、データ入出力部２２１を介して送受信部に送られ、ネットワーク４００を介して、決済端末３００に送信される（Ｓ９６７）。決済端末３００に対する判定結果データの送信は省略することも可能であるが、通常は行われるであろう。
【０１００】
判定結果データは、決済端末３００の送受信部によって受取られる（Ｓ９７３）。
送受信部によって受取られた判定結果データは、これまでの場合と同様に、主制御部３２１に送られる。
主制御部３２１は、表示制御部３２２に対して、判定結果データに応じた表示をディスプレイに行わせろとの指示を行い、その結果、表示制御部３２２は、ディスプレイに判定結果データに応じた表示を行わせる（Ｓ９７４）。その表示は、第１実施形態のＳ９３４の処理におけるものと同様で良い。
なお、判定結果データの送信をユーザ端末１００に対しても行い、ユーザ端末１００でもそれに基づく画像のディスプレイ１０１での表示を行うようにすることも可能である。
以上で、仮想貨幣データを使用しての、ユーザから決済端末３００の管理者への支払いの処理が終了する。
【０１０１】
なお、以上で説明を省略したが、決済判定部２２６で、確認用暗号化データと同じものであると判定された元データを、第１記録部２２４Ｃから削除することが可能である。これは、決済判定部２２６で、確認用暗号化データと同じものであると判定された元データがどれかということを、決済判定部２２６が主制御部２２２に通知し、更にかかる通知を受けた主制御部２２２が、かかる通知により特定される確認用元データを第１記録部２２４Ｃから削除することにより実現可能である。各仮想貨幣データは、決済装置２００で１度しか決済の対象とならないものであるから、決済の対象となった仮想貨幣データに対応する確認用元データは、二度と使用されることはない。そのような不要となった確認用元データを削除するというのが、上述の処理の目的である。別の言葉で言うと、かかる処理は、一度支払に使用された仮想貨幣データ或いは確認用元データが二重に使用されることを防止するということを目的とする。
【０１０２】
なお、上述の処理では、決済判定部２２６で実行される仮想貨幣暗号化データの真正性の判定では、１つの仮想貨幣暗号化データと、１つ或いは複数の確認用暗号化データの対比が必要であった。他方、決済判定部２２６で行われる真正性の判定を、１つの仮想貨幣暗号化データと、１つの確認用暗号化データの一対一の対比により行うことも可能である。
それは、ユーザ端末１００で生成される仮想貨幣データに第２実施形態内で既に述べた記番号を含めることにより実現可能である。この場合の仮想貨幣データは例えば、ユーザＩＤと、記番号と、仮想貨幣暗号化データとを含んだものとする。記番号は、平文であるものとするが、すべてのユーザ端末１００で同一の方法で暗号化されていてもよい。
このような仮想貨幣データを用いる場合、第１記録部２２４Ｃに記録されるデータは、確認用元データのみではなく、確認用元データと、その確認用元データに対応する記番号を紐付けたものとする。上述したように主制御部２２２は記番号を生成可能なのであるから、主制御部２２２はこのような情報を第１記録部２２４Ｃに記録することができる。
また、このような仮想貨幣データを用いる場合、決済装置２００に決済端末３００等から仮想貨幣データが送られて来たときに、主制御部２２２は、暗号化部２２８に暗号化をせよとの指示とともに、ユーザＩＤのみならず、記番号をも送る。これを受取った暗号化部２２８は、主制御部２２２から受取ったユーザＩＤと同じユーザＩＤを確認用元データの中に含み、且つ主制御部２２２から受取った記番号と紐付けられている確認用元データを、第１記録部２２４Ｃから読み出す。
このような条件を満たす確認用元データは１つだけであるから、結果として暗号化部２２８では、その１つの確認用元データから、１つの確認用暗号化データが生成されることになる。
かかる１つの確認用元データが暗号化部２２８から決済判定部２２６に送られることにより、決済判定部２２６では、仮想貨幣暗号化データの真正性の判定のために、１つの仮想貨幣暗号化データと１つの確認用暗号化データとの対比が行われることとなる。
【０１０３】
＜変形例３＞
変形例３による決済システムは、第２実施形態による決済システムと殆ど同じである。特に、決済端末３００の構成と、そこで実行される処理とは、第２実施形態におけるそれらと変わるところがない。
他方、変形例３においては、仮想貨幣データのデータ構造は、第２実施形態とやや異なる。第２実施形態における仮想貨幣データは、仮想貨幣暗号化データとユーザＩＤとを組合せたものであり、仮想貨幣暗号化データは、金額情報とユーザＩＤとを組合せてなる元データを暗号化して得られた文字列から、その一部を抜き出したデータであった。これに対して、変形例３の仮想貨幣データは、第２実施形態の場合と同じ、仮想貨幣暗号化データ、及びユーザＩＤと、第１実施形態の仮想貨幣データには含まれていなかった本願発明における暗号化条件データと、を含んでいる。
また、変形例３におけるユーザ端末１００及び決済装置２００の構成、及びそれらで実施される処理は、第１実施形態におけるそれらと若干異なる。とはいえ、変形例３のユーザ端末１００及び決済装置２００の構成、及びそれらで実行される処理の大半は、第１実施形態の場合と同じである。
【０１０４】
第２実施形態の決済システムでは、多数の仮想貨幣データのそれぞれに含まれる仮想貨幣暗号化データを生成するにあたってユーザ端末１００の暗号化部１２５で実行される暗号化の手法は、仮想貨幣暗号化データを生成するすべての場合において同一であった。他方、この変形例３では、各ユーザ端末１００の暗号化部１２５で元データから仮想貨幣暗号化データを得るために実行される暗号化の手法は複数である、というか所定のタイミングで変化する。
したがって、変形例３の決済装置２００の暗号化部２２８で実行される確認用元データから確認用暗号化データを生成する場合における暗号化の処理も、同一のユーザ端末１００で発行された仮想貨幣データに含まれている仮想貨幣暗号化データと同一の確認用暗号化データを生成する場合であっても、ユーザ端末１００で行われる暗号化の方法の変化に合わせて（或いは同期させて）適切に変化させられなければならない。より具体的には、決済装置２００の暗号化部２２８は、決済端末３００から受取ったある仮想貨幣データに含まれていた仮想貨幣暗号化データと同じ確認用暗号化データを生成しようとした場合に、真正性の判定の対象となるその仮想貨幣暗号化データが、複数のユーザ端末１００のどれで発行されたものであるかということに加えて、そのユーザ端末１００の暗号化部１２５で実行され得る複数の暗号化の手法のうちどれを用いて暗号化されたのかを把握することができる必要がある。これを可能としているのが、変形例３の決済装置２００の第２実施形態における決済装置２００との相違点である。
乱暴であることを承知で言うなら、変形例３と第２実施形態の関係は、変形例１と第１実施形態の関係と同じである。
以下、第２実施形態との相違点に着目しつつ変形例３のユーザ端末１００及び決済装置２００の構成、及びそこで実行される処理について説明する。特に言及しない点は、相違が無い点である。
【０１０５】
まず、ユーザ端末１００の構成及びそこで行われる処理について説明する。
上述したように変形例３では、暗号化部１２５で行われる暗号化は、所定のタイミングで変わるものとする。例えば、元データの暗号化を３回行う度に、或いは、決済装置２００が置かれている場所の日付が変わる度に、各ユーザ端末１００の暗号化部１２５で元データを暗号化するために用いられる方法が変化するものとする。これには限られないが、変形例３では、元データを暗号化して仮想貨幣暗号化データにする処理を、各ユーザ端末１００における暗号化部１２５が行う度に、各ユーザ端末１００は、暗号化の方法を変えるようになっている。したがって、後述するように、決済装置２００の暗号化部２２８が行う確認用元データから確認用暗号化データを生成する場合における暗号化の処理も、それに合わせて変化する。
暗号化の方法を変化させるには、アルゴリズムを変更する、鍵を変更する、それらの双方を変更するという３種類がありいずれも採用可能ではあるが、変形例３でも変形例１と同様に鍵を変更するものとする。
ユーザ端末１００で鍵を変更できるようにするため、ユーザ端末１００内の機能ブロックには、図２０に示したように鍵生成部１２６が存在する。鍵生成部１２６は暗号化部１２５で暗号化の処理が実行されるときに使用される鍵を生成するものである。鍵生成部１２６は、変形例１で説明した鍵生成部２２７と同じものであり、擬似乱数としての解（鍵）を連続して生成することができるものである。
【０１０６】
次に、変形例３のユーザ端末１００の鍵生成部１２６で実行される鍵の生成の方法、及び鍵を暗号化部１２５に提供するタイミングについて説明する。
鍵生成部１２６が暗号化部１２５に鍵を供給するタイミングは、暗号化部１２５が、元データに対して暗号化の処理を行う直前のタイミングである。
上述したように、暗号化部１２５は、主制御部１２１から元データを受取ると、元データを暗号化する処理を行い、続けて暗号化によって得られた文字列の中から一部を抜出す処理を行う。変形例３の暗号化部１２５は、元データを受取ると、元データの暗号化の処理を行うに先立って、鍵生成部１２６に対して鍵の生成を依頼するデータを送る。このデータを受取った鍵生成部１２６は、鍵のデータを生成して、それを暗号化部１２５に送るようになっている。暗号化部１２５は、不変のアルゴリズムと、提供された鍵とを用いて、元データを暗号化することにより所定の文字列を得て、そしてその文字列の一部を抜出して仮想貨幣暗号化データを得る。
かかる仮想貨幣暗号化データは、第２実施形態の場合と同様に、主制御部１２１へと送られる。ただし、変形例３の場合には、暗号化部１２５は、仮想貨幣暗号化データのみならず、その仮想貨幣暗号化データが何番目に生成されたものであるか（つまり、その仮想貨幣暗号化データを暗号化するのに使用された鍵が何番目の鍵であるのか）を特定するための数字を主制御部１２１へと送る。かかる数字は、これには限られないが例えば、１から始まる連番とすることができ、この実施形態ではそうされている。つまり、１番目に生成された仮想貨幣暗号化データには、「１」というデータが、２番目に生成された仮想貨幣暗号化データには、「２」というデータが、Ｎ番目に生成された仮想貨幣暗号化データには、「Ｎ」というデータをそれぞれ付して、それらデータを暗号化部１２５は主制御部１２１へと送るようになっている。
主制御部１２１は、仮想貨幣暗号化データに、ユーザＩＤと、上述の数字のデータとを平文の状態で付す。かかる数字のデータは、ある仮想貨幣データがその仮想貨幣データを発行したユーザ端末１００で何番目に発行されたかということを示すユニークな通し番号である。これは、結果として、変形例１で述べた記番号情報と同じものとなる。つまり、変形例３の仮想貨幣データは、仮想貨幣暗号化データに、ユーザＩＤ及び記番号を付したものとなる。
【０１０７】
次に、変形例３の決済システムにおける決済装置２００の構成及びそこで行われる処理について説明する。
【０１０８】
変形例３の決済装置２００のハードウェア的な構成は、第２実施形態と同じである。変形例３の決済装置２００の内部には、第２実施形態の場合と同様に機能ブロックが生成される。変形例３の決済装置２００内に生成される機能ブロックを図２１に示す。変形例３における機能ブロックには、第２実施形態には存在しなかった、鍵生成部２２７が存在している。
【０１０９】
変形例３の主制御部２２２も第２実施形態の主制御部２２２の場合と同様、制御部２２０内の全体的な制御を行う。第２実施形態の場合と同様、変形例３における主制御部２２２も、与信判定の処理と決済の処理とを実行するようになっている。
変形例３の主制御部２２２は、第２実施形態の場合と同様、決済装置２００が決済端末３００等から決済を求める仮想貨幣データを受付けたとき、仮想貨幣データ（場合によってはそれに含まれる仮想貨幣暗号化データのみ）を決済判定部２２６に送る他、暗号化部２２８に、暗号化をせよとの指示を、その仮想貨幣データに含まれていたユーザＩＤ、及び記番号とともに送るようになっている。
変形例３の主制御部２２２が与信判定を行うのは、第２実施形態の場合と同様、主制御部２２２が、データ入出力部２２１から、金額情報を受取った場合である。この場合に主制御部２２２が、信用情報記録部２２４Ｂに記録されているデータを利用するのも第２実施形態と同様である。変形例３の信用情報記録部２２４Ｂに記録されているデータも、第２実施形態と変わらない。また、主制御部２２２が与信判定を行った後に行う処理も、第２実施形態の場合と変わりがない。
第２実施形態の場合と同様に、変形例３の主制御部２２２も、決済判定部２２６から、最終判定データを受取る場合がある。最終判定データを受取った後に主制御部２２２が実行する処理は、最終判定データが肯定的であろうと否定的であろうと、第２実施形態と変形例３とで変わりがない。
また、変形例３の主制御部２２２は、第２実施形態の場合と同様、確認用元データを生成する機能を有している。確認用元データの構造、及びその生成方法は第２実施形態と同様である。変形例３の主制御部２２２は、第２実施形態の場合と同様に、生成した確認用元データを、第１記録部２２４Ｃに記録するようになっている。ただし、変形例３において、第１記録部２２４Ｃに記録されるのは、第２実施形態の場合と異なり、元データ、及びそれに対応する記番号である。
【０１１０】
暗号化部２２８は、上述したように、主制御部２２２から、暗号化をせよとの指示をユーザＩＤとともに受取る場合がある。
かかる指示を受取った場合、暗号化部２２８は第１記録部２２４Ｃから確認用元データを読み出して、それを暗号化して、更に暗号化により得られた文字列からその一部を抜出して確認用暗号化データとするようになっている。これ自体は第２実施形態と同じであるが、変形例３では、上述のように暗号化の方法を変更しなければならないので、その点で、暗号化の方法が第２実施形態の場合とは異なる。
暗号化部２２８は、暗号化の処理を変更させる場合に、アルゴリズム、鍵、或いはその双方の変更を行うことができるが、この実施形態ではこれには限られないが、変形例１の場合と同様に鍵を変更するようになっている。暗号化部２２８が暗号化の処理に用いる鍵は、鍵生成部２２７から提供される。変形例３における鍵生成部２２７は、暗号化部２２８に鍵を提供するためのものである。鍵生成部２２７が鍵を生成するタイミングは、暗号化部２２８から鍵の生成の依頼を受けたときであるが、そのより具体的なタイミングについては後述することとする。
変形例３の暗号化部２２８が第１記録部２２４Ｃに記録されている多数の確認用元データのうちのどれを読み出すか、また、暗号化部２２８が第１記録部２２４Ｃから読み出した確認用元データを確認用暗号化データにする処理の詳細については、後述するものとする。
暗号化部２２８は、第２実施形態の場合と同様に、生成した確認用暗号化データを決済判定部２２６に送るようになっている。
【０１１１】
決済判定部２２６は、上述したように、決済判定を行う。決済判定部２２６で実行される処理は、第２実施形態と同様である。決済判定部２２６は、第２実施形態の場合と同じように最終判定データを生成し、それを主制御部２２２に対して送るようになっている。
【０１１２】
変形例３の決済システムの使用方法、及び動作について説明する。
変形例３の決済システムで実行される処理のうち、決済端末３００で実行されるＳ９７１〜Ｓ９７４の処理はすべて第２実施形態と同じである。また、変形例３の決済システムのユーザ端末１００で実行されるＳ９５１〜Ｓ９５８の処理のうちの、元データの暗号化による仮想貨幣暗号化データの生成についてのＳ９５６以外の処理は基本的に、第２実施形態と同じである。
【０１１３】
変形例３の決済システムでも、第２実施形態の場合と同様に、まず、かかるシステムを使用するための準備として、各ユーザ端末１００において、ユーザＩＤの設定を行うとともに、各決済端末３００において、決済端末ＩＤの設定を行う。以降の処理は、第２実施形態で実行された、図１９に示した処理に準ずる。
まず、ユーザ端末１００で、Ｓ９５１からＳ９５３の処理が実行され、決済装置２００で、Ｓ９６１〜Ｓ９６３の処理が実行される。変形例３におけるこれら処理はすべて第２実施形態と同じである。
他方、変形例３においては、決済装置２００で、確認用元データの生成及び確認用元データの第１記録部２２４Ｃへの記録（Ｓ９６３Ａ）が実行される。かかる処理は基本的に、第２実施形態の場合と同様である。この後ユーザ端末１００で生成される元データと同じ確認用元データが、第２実施形態の場合と同様にして生成される。生成された確認用元データは、主制御部２２２によって第１記録部２２４Ｃに記録されるが、第１記録部２２４Ｃに記録される確認用元データには、上述したように記番号が付される。
【０１１４】
そして、ユーザ端末１００では、第２実施形態の場合と同じようにして、Ｓ９５５の処理が実行され、第２実施形態の場合と同じようにして、Ｓ９５６の元データの暗号化、及び暗号化して得られた文字列の一部を抜出すことによる仮想貨幣暗号化データの生成の処理が実行される。
Ｓ９５６の処理では、暗号化部１２５は、鍵生成部１２６に対して鍵の生成を依頼する。そうするとかかる依頼に応じて鍵生成部１２６が生成した鍵が暗号化部１２５に提供されるので、暗号化部１２５は、その鍵と固定のアルゴリズムとを用いて、元データを暗号化する。更に暗号化部１２５は、暗号化して得られた文字列の一部を抜出して仮想貨幣暗号化データとする。
得られた仮想貨幣暗号化データは、暗号化部１２５から主制御部１２１に送られ、ユーザＩＤと記番号とが付されて、仮想貨幣データとなる（Ｓ９５７）。
この仮想貨幣データは、ユーザ端末１００から決済端末３００に引き渡される（Ｓ９５８）。そして、決済端末３００で、Ｓ９７１とＳ９７２の処理が実行され、決済装置２００がその仮想貨幣データを決済端末ＩＤとともに決済端末３００から受取る（Ｓ９６４）。
【０１１５】
決済装置２００において、仮想貨幣データは主制御部２２２に送られる。
主制御部２２２は、その仮想貨幣データ（場合によってはそれに含まれる仮想貨幣暗号化データのみ、以下も同様である。）を決済判定部２２６に送る他、暗号化部２２８に、暗号化をせよとの指示を、その仮想貨幣データに含まれていたユーザＩＤ、及び記番号とともに送る。
かかる指示を受取った暗号化部２２８は、確認用元データを暗号化するべく、暗号化の処理の対象となる確認用元データを第１記録部２２４Ｃから読み出す。読み出される確認用元データは、第１記録部２２４Ｃに記録されている確認用元データのうち、暗号化部２２８が主制御部２２２から受取ったユーザＩＤを含んでおり、且つ暗号化部２２８が主制御部２２２から受取った記番号が付されたものである。かかる確認用元データは、１つだけである。
他方、暗号化部２２８は、鍵生成部２２７に鍵の生成を依頼する。暗号化部２２８は、鍵の生成を鍵生成部２２７に依頼するときに、かかる依頼と一緒に、仮想貨幣データに含まれていたユーザＩＤと、記番号とを鍵生成部２２７に送る。鍵生成部２２７は、受付けたユーザＩＤと紐付けられていた初期解と、解を生成するためのアルゴリズムとを用いて、変形例１の場合と同様の手法を用いて、そのユーザＩＤで特定されるユーザ端末１００で生成されるのと同じ解を生成する。鍵生成部２２７が、幾つ目までの解を連続して生成するかは、「記番号で特定される数字」番目までの解までである。鍵生成部２２７は、最後に生成した解を、暗号化に用いる解として、暗号化部２２８に送る。
暗号化部２２８は、第１記録部２２４Ｃから読み出した１つの確認用元データを、鍵生成部２２７から受取った１つの鍵と、固定のアルゴリズムとで暗号化する（Ｓ９６５Ａ）。暗号化部２２８は、その結果得られた文字列の一部を抜出して確認用暗号化データを生成する。暗号化部２２８は得られた１つの確認用暗号化データを決済判定部２２６に送る。
【０１１６】
そして、決済判定部２２６は、主制御部２２２から送られてきた仮想貨幣データに含まれていた仮想貨幣暗号化データと、暗号化部２２８から受付けた確認用暗号化データとの一致をみることにより、第２実施形態の決済判定部２２６で実行されたのと同様の判定を行う（Ｓ９６６）。
その後、第２実施形態で説明した、決済装置２００で実行されるＳ９６７の処理、及び決済端末３００で実行されるＳ９７３、Ｓ９７４の処理が、変形例３でも実行される。
【０１１７】
なお、変形例３では、ユーザ端末１００で生成される仮想貨幣データに記番号を含めないようにすることができる。
この場合、暗号化部２２８で実行される暗号化の処理の内容が、変形例３のここまでに述べたものと異なるものとなる。暗号化の処理を行えとの指示を主制御部２２２から受取った暗号化部２２８は、かかる指示とともに主制御部２２２からユーザＩＤを受け取っている。
かかる指示を受取った暗号化部２２８は、確認用元データを暗号化するべく、暗号化の処理の対象となる確認用元データを第１記録部２２４Ｃから読み出す。読み出される確認用元データは、第１記録部２２４Ｃに記録されている確認用元データのうち、暗号化部２２８が主制御部２２２から受取ったユーザＩＤを含んでいるものである。かかる確認用元データは、１つだけの場合もあるし複数である場合もある。
他方、暗号化部２２８は、鍵生成部２２７に鍵の生成を依頼する。暗号化部２２８は、鍵の生成を鍵生成部２２７に依頼するときに、かかる依頼と一緒に、仮想貨幣データに含まれていたユーザＩＤを鍵生成部２２７に送る。ここで、鍵生成部２２７は、受付けたユーザＩＤと紐付けられていた初期解と、解を生成するためのアルゴリズムとを用いて、多数の解を生成する。解の数は、それだけの解（鍵）があれば、そのうちのどれかがユーザ端末１００で、仮想貨幣暗号化データを生成する際に使われたものであるという確率が、事実上１００％とみなせるだけの多数である。鍵生成部２２７は、その多数の解（鍵）をすべて暗号化部２２８に送る。
暗号化部２２８は、第１記録部２２４Ｃから読み出した１つ以上の確認用元データを、鍵生成部２２７から受取った多数の鍵と、固定のアルゴリズムとで暗号化して、更にそれにより得られた文字列からその一部を抜出すというこれまで何度も述べた処理を実行する。かかる処理は、確認用元データが複数の場合には、各確認用元データのすべてについてそれぞれ実行される。
その結果、暗号化部２２８では、鍵生成部２２７が生成した鍵の数に暗号化部２２８が第１記録部２２４Ｃから読み出した確認用元データの数を乗じた数の、多数の確認用暗号化データが生成される。多数の確認用暗号化データはすべて、暗号化部２２８から決済判定部２２６へと送られる。
そして、決済判定部２２６は、主制御部２２２から送られてきた仮想貨幣データに含まれていた仮想貨幣暗号化データが、暗号化部２２８から受付けた多数の確認用暗号化データのうちの１つと一致するか否かにより、決済判定を行う。仮想貨幣暗号化データが、多数の確認用暗号化データのうちの１つと一致した場合には決済判定の結果は肯定的なものとなり、多数の確認用暗号化データのどれとも一致しなかった場合には決済判定の結果は否定的なものとなる。
【０１１８】
＜変形例４＞
変形例４による決済システムは、第２実施形態による決済システムと殆ど同じである。特に、ユーザ端末１００と、決済端末３００との構成、及びそこで実行される処理は、第２実施形態におけるそれらと変わるところがない。また、仮想貨幣データのデータ構造も第２実施形態と同じである。
主に異なるのは、決済装置２００の構成、及びそこで実行される処理である。とはいえ、変形例４の決済装置２００の構成、及びそこで実行される処理の大半は、第２実施形態の場合と同じである。
第２実施形態の決済装置２００と変形例４の決済装置２００とは、確認用元データを暗号化して生成された確認用暗号化データを決済判定に用いる、という点では共通する。しかしながら、第２実施形態の決済装置２００では、予め生成しておいた確認用元データを、その確認用元データと同じ元データから生成された仮想貨幣暗号化データを含む仮想貨幣データを決済端末３００等から受取った後に暗号化する等して確認用暗号化データにするようになっているのに対して、変形例４の決済装置２００では、生成した確認用元データを、その確認用元データと同じ元データから生成された仮想貨幣暗号化データを含む仮想貨幣データを決済端末３００等から受取る前に暗号化して確認用暗号化データとするという点で、第２実施形態の決済装置２００と変形例４の決済装置２００とは異なる。
乱暴であることを承知で言うなら、変形例４と第２実施形態の関係は、変形例２と第１実施形態の関係と同じである。
【０１１９】
上述したように、変形例４ではユーザ端末１００、及び決済端末３００の構成、及びそれらが実行する処理は第１実施形態と変わらない。変形例４における仮想貨幣データは、第１実施形態の場合と同様に、仮想貨幣暗号化データにユーザＩＤを付したものである。
【０１２０】
以下、主に、第２実施形態と異なる変形例４の決済システムにおける決済装置２００の構成及びそこで行われる処理について説明する。
変形例４の決済装置２００のハードウェア的な構成は、第２実施形態と同じである。変形例４の決済装置２００の内部には、第２実施形態の場合と同様に機能ブロックが生成される。変形例４の決済装置２００の内部に生成される機能ブロックを図２２に示す。変形例４の決済装置２００における機能ブロックは、概ね第２実施形態におけるそれらと変わりないが、第２実施形態のときに存在した第１記録部２２４Ｃが存在せず、その代わりに第２記録部２２４Ｄが存在する。
【０１２１】
変形例４の主制御部２２２も第２実施形態の場合と同様、制御部２２０内の全体的な制御を行う。第２実施形態の場合と同様、変形例４における主制御部２２２も、与信判定の処理と決済の処理とを実行するようになっている。
ただし、第２実施形態の場合には、主制御部２２２は、決済装置２００が決済端末３００等から決済を求める仮想貨幣データを受付けた後、仮想貨幣データ（場合によってはそれに含まれる仮想貨幣暗号化データのみ）を決済判定部２２６に送る他、暗号化部２２８に、暗号化をせよとの指示を、その仮想貨幣データに含まれていたユーザＩＤとともに送るようになっていたが、変形例４の主制御部２２２は、決済装置２００が決済端末３００等から決済を求める仮想貨幣データを受付けた後に、仮想貨幣データ（場合によってはそれに含まれる仮想貨幣暗号化データのみ）を決済判定部２２６に送るようになっているものの、暗号化部２２８に暗号化をせよとの指示を送ることはない。変形例４の主制御部２２２が、暗号化をせよとの指示を暗号化部２２８に送るのは、決済装置２００が決済端末３００等から決済を求める仮想貨幣データを受付けるか否かとは無関係であり、例えば仮想貨幣データを受付ける前、これには限られないがこの実施形態では、主制御部２２２が許可情報を生成した直後のタイミングである。また、変形例４における主制御部２２２は、暗号化部２２８に暗号化をせよとの指示を送る場合、かかる指示とともに確認用元データをも暗号化部２２８に送るようになっている。
変形例４の主制御部２２２が与信判定を行うのは、第２実施形態の場合と同様、主制御部２２２が、データ入出力部２２１から、金額情報を受取った場合である。この場合に主制御部２２２が、信用情報記録部２２４Ｂに記録されているデータを利用するのも第２実施形態と同様である。変形例４の信用情報記録部２２４Ｂに記録されているデータも、第２実施形態と変わらない。また、主制御部２２２が与信判定を行った後に行う処理も、第２実施形態と変形例４とで変わりがない。
第２実施形態の場合と同様に、変形例４の主制御部２２２も、決済判定部２２６から、最終判定データを受取る場合がある。最終判定データを受取った後に主制御部２２２が実行する処理は、最終判定データが肯定的であろうと否定的であろうと、第２実施形態と変形例４とで変わりがない。
また、変形例４の主制御部２２２は、第２実施形態の主制御部２２２と同じく確認用元データを生成する機能を有している。変形例４の主制御部２２２が有するかかる機能は第２実施形態の場合と同じである。
【０１２２】
暗号化部２２８は、上述したように、主制御部２２２から、確認用元データを受取る場合がある。
かかる指示を受取った場合、暗号化部２２８は主制御部２２２から受取った確認用元データを暗号化するとともに、暗号化して得られた文字列から所定の規則にしたがって文字列を抜出すことにより、確認用暗号化データを生成するようになっている。確認用暗号化データは、ユーザ端末１００の暗号化部１２５で元データに基いて生成される仮想貨幣暗号化データと同じものとなるようになっている。
暗号化部２２８が主制御部２２２から受取った確認用元データをどのようにして確認用暗号化データにするかという確認用暗号化データの生成方法の詳細については、後述するものとする。
暗号化部２２８は、生成した確認用暗号化データを第２記録部２２４Ｄに記録するようになっている。第２記録部２２４Ｄには、多数の確認用暗号化データが記録されることになる。
【０１２３】
決済判定部２２６には、上述したように、主制御部２２２から仮想貨幣データ（又はそれに含まれていた仮想貨幣暗号化データ）が送られてくることがある。これを受取った場合、決済判定部２２６は、決済判定を行う。その結果、決済判定部２２６は、決済を認めること、及び決済を認めないことのいずれかの内容を含むデータである最終判定データを生成する。
かかる決済判定の過程は、第２実施形態と変形例４とで異なる。変形例４の決済判定部２２６が最終判定データをどのようにして生成するかについては後述するものとする。
いずれにせよ、最終判定データを生成したら、決済判定部２２６はそれを主制御部２２２に対して送るようになっている。
【０１２４】
次に変形例４における決済システムの使用方法、及び動作について図２３を参照しながら説明する。
【０１２５】
変形例４でも、第２実施形態の場合と同様に、まず、かかるシステムを使用するための準備として、各ユーザ端末１００において、ユーザＩＤの設定を行うとともに、各決済端末３００において、決済端末ＩＤの設定を行う。
以後、ユーザ端末１００で実行されるＳ９５１〜Ｓ９５８の処理は、第２実施形態と同一であり、決済端末３００で実行されるＳ９７１〜Ｓ９７４の処理も第２実施形態と同一である。また、決済装置２００で実行されるＳ９６１〜Ｓ９６３までの処理と、Ｓ９６４、Ｓ９６７の処理も第２実施形態と同一である。
以下、それら処理も含めて説明する。
【０１２６】
変形例４でも、まず、仮想貨幣データが生成される。
変形例４でも、第２実施形態の場合と同様に、これには限られないが、仮想貨幣データの生成は、開始情報をユーザが自らのユーザ端末１００に入力することから始まる（Ｓ９５１）。
ディスプレイ１０１の表示にしたがいユーザは、ユーザＩＤと金額情報とをそれぞれ入力する（Ｓ９５２）。次いで、ユーザＩＤと金額情報とが、データ入出力部１２３から主制御部１２１に送られる。ユーザＩＤと金額情報は、送受信部からネットワーク４００を介して、決済装置２００に送られる（Ｓ９５３）。
【０１２７】
決済装置２００は、その送受信部でユーザＩＤと金額情報とを受取る（Ｓ９６１）。送受信部はそれらユーザＩＤと金額情報とをデータ入出力部２２１に送り、データ入出力部２２１はそのデータを主制御部２２２に送る。
主制御部２２２は、与信判定を行う（Ｓ９６２）。かかる与信判定の処理は第２実施形態と変形例４で変わりがない。主制御部２２２は、与信判定を行う場合、信用情報記録部２２４Ｂに記録されているデータを用いる。
いずれにせよ、主制御部２２２は、ユーザの与信が認められた場合には、許可情報を生成する。許可情報は、ネットワーク４００を介してユーザ端末１００に送られる（Ｓ９６３）。
【０１２８】
ユーザ端末１００は、その送受信部で許可情報を受取る（Ｓ９５４）。
許可情報を受取るとユーザ端末１００の主制御部１２１は、先に受け取っていたユーザＩＤと金額情報とに基いて元データを生成する（Ｓ９５５）。この元データは、第２実施形態の場合と同様に暗号化部１２５に送られ、それを受取った暗号化部１２５は、元データを暗号化して仮想貨幣暗号化データとする（Ｓ９５６）。なお、変形例４でも、第２実施形態の場合と同様に、各ユーザ端末１００の暗号化部１２５で実行される暗号化の方法は、固定された１つの方法である。また、そして、主制御部１２１は、かかる仮想貨幣暗号化データに基いて仮想貨幣データを生成する（Ｓ９５７）。
このように、ユーザ端末１００では、許可情報を決済装置２００から受取ると、それを契機に仮想貨幣データが生成乃至発行される。他方、変形例４では、それと並行して、確認用元データの生成（Ｓ９６３Ｂ）と、確認用元データを暗号化することによる確認用暗号化データの生成及び第２記録部２２４Ｄへの記録（Ｓ９６３Ｃ）とが行われる。かかるＳ９６３Ｂと、Ｓ９６３Ｃの処理は、例えば、許可情報の送信についてのＳ９６３の処理の直後に行われる。
【０１２９】
上述したように、Ｓ９６１で、決済装置２００は、ユーザ端末１００からユーザＩＤ及び金額情報を受取る。ユーザＩＤと金額情報とは、主制御部２２２によって受け取られる。これらに基づき、主制御部２２２は、第２実施形態の場合と同じようにして確認用元データを生成する（Ｓ９６３Ｂ）。ここで、確認用元データは、確認用元データの元となるユーザＩＤ及び金額情報を送って来たユーザ端末１００で、当該ユーザＩＤ及び金額情報に基いて生成された許可情報を受取ったユーザ端末１００の主制御部１２１が生成する元データと同じものとなるようにする。
主制御部２２２は、生成した確認用元データを、暗号化をせよとの指示とともに暗号化部２２８へと送る。
【０１３０】
確認用元データとともに暗号化を行なえという指示を受取った暗号化部２２８は、確認用元データを暗号化するとともに、暗号化することによって得られた文字列から所定の規則にしたがって一部の文字列を抜出す処理を実行して確認用元データから確認用暗号化データを生成する（Ｓ９６３Ｃ）。
確認用元データは、上述のようにユーザＩＤを含んでいる。他方、暗号化部２２８は、すべてのユーザ端末１００で使用される鍵をユーザＩＤと紐付けて保持している。暗号化部２２８が暗号化の処理を行う場合には、そのユーザＩＤで特定されるユーザ端末１００で使用される鍵と、固定の暗号化の処理のためのアルゴリズムを用いる。
その結果、確認用元データは暗号化され、その後得られた文字列の一部が抜出されることにより、確認用暗号化データに変換されることになる。生成された確認用暗号化データを、暗号化部２２８は第２記録部２２４Ｄへと書き込む。
【０１３１】
他方、仮想貨幣データが発行されたら、ユーザは、支払いを行う相手側である、例えば店舗の店員が管理する決済端末３００に対して、ユーザ端末１００から仮想貨幣データを引き渡す（Ｓ９５８）。
決済端末３００は、ユーザ端末１００から仮想貨幣データを受領する（Ｓ９７１）。
仮想貨幣データは、決済端末ＩＤとともに、決済端末３００からネットワーク４００を介して決済装置２００に送られる（Ｓ９７２）。
【０１３２】
決済装置２００は、その送受信部で、決済端末ＩＤのデータと仮想貨幣データとを受取る（Ｓ９６４）。決済端末ＩＤの付された仮想貨幣データは、第２実施形態と同様に主制御部２２２に送られる。
それらを受取った主制御部２２２は、決済端末ＩＤのデータと仮想貨幣データ（場合によっては、仮想貨幣データに含まれていた仮想貨幣暗号化データ）とを決済判定部２２６へと送る。
【０１３３】
決済判定部２２６は、主制御部２２２から仮想貨幣データ（又はそれに含まれていた仮想貨幣暗号化データ）を受取る。
それを受取った決済判定部２２６は、決済判定を実行する（Ｓ９６６）。仮想貨幣暗号化データの真正性の判定を行うという目的自体は第２実施形態と変わりないが、変形例４で実行されるその判定の方法は、第２実施形態の場合とやや異なる。
決済判定部２２６は、主制御部２２２から仮想貨幣データを受取った場合にはそれから仮想貨幣暗号化データを取出し、その仮想貨幣暗号化データと、第２記録部２２４Ｄに記録されている多数の確認用暗号化データと比較する。多数の確認用暗号化データの少なくとも１つと仮想貨幣暗号化データが一致した場合には、当該仮想貨幣暗号化データは真正なものであると判定する。逆に、確認用暗号化データのすべてが仮想貨幣暗号化データと一致しなかった場合には、その仮想貨幣暗号化データは真正なものでないと判定する。
このような方法で仮想貨幣暗号化データの真正性の判定を行えるのは、第２実施形態の場合と同様の理由による。繰り返しになるが、第２実施形態と変形例４とで異なるのは確認用元データを暗号化して確認用暗号化データにするタイミングのみであるから、確認用暗号化データを用いて仮想貨幣暗号化データの真正性の判定を行える第２実施形態で既に説明した理由により変形例４でも仮想貨幣暗号化データの真正性の判定が可能なのである。
第２実施形態の場合と同様にして生成された最終判定データは、決済判定部２２６から主制御部２２２に送られる。
【０１３４】
主制御部２２２は、最終判定データを受取り第２実施形態と同様に決済処理を行う。また、第２実施形態の場合と同様に、決済装置２００では判定結果データを生成し、判定結果データを、ネットワーク４００を介して決済端末３００に送信する（Ｓ９６７）。
【０１３５】
判定結果データは、決済端末３００の送受信部によって受取られる（Ｓ９７３）。その結果、決済端末３００のディスプレイには、判定結果データに応じた表示が行われる（Ｓ９７４）。
以上により変形例４による、仮想貨幣データを使用しての、ユーザから決済端末３００の管理者への支払いの処理が終了する。
【０１３６】
なお、以上の説明では、仮想貨幣データにはユーザＩＤが含まれているものとしていたが、かかるユーザＩＤは決済判定の実行に関するＳ９６６で使用されていない。つまり、変形例４ではユーザＩＤは、機能していない浮いた状態となっているので、実際のところ変形例４では仮想貨幣データは平文のユーザＩＤを含んでいなくても構わない。
もっとも仮想貨幣データに含まれているユーザＩＤを以下のようにして利用することもできる。その場合、第２記録部２２４Ｄに記録されるデータを若干変える。上述したように第２記録部２２４Ｄには、暗号化部２２８で生成された確認用暗号化データが多数記録されている。ユーザＩＤを利用する場合には、暗号化部２２８は、第２記録部２２４Ｄに、確認用暗号化データと紐付けて、その確認用暗号化データの元となった確認用元データに含まれていたユーザＩＤを記録するようになっていれば良い。こうすることで、第２記録部２２４Ｄに記録された確認用暗号化データは、ユーザＩＤ毎にタグ付けされた状態となる。
そして、決済判定部２２６が主制御部２２２から受取った仮想貨幣データに含まれていた仮想貨幣暗号化データと同一の確認用暗号化データを第２記録部２２４Ｄの中から探すときに、決済判定部２２６が、当該仮想貨幣データに含まれていたユーザＩＤと同一のユーザＩＤにタグ付けられている確認用暗号化データのみを、仮想貨幣暗号化データと同一の確認用暗号化データを探す対象とするようにする。このようにすることにより、第２記録部２２４Ｄに記録されている多数の確認用暗号化データの中で、仮想貨幣暗号化データと同一であるかの判定を行う対象となるデータを減らすことができる。
変形例４でも、第２実施形態の場合と同様に、使用済みの、つまり仮想貨幣暗号化データと一致した確認用暗号化データを第２記録部２２４Ｄから削除するようにすることが可能である。
【０１３７】
＜変形例５＞
変形例５の決済システムは、変形例４と殆ど変わらない。
変形例４では、ユーザ端末１００の暗号化部１２５で仮想貨幣暗号化データの生成のために実行される暗号化の方法も、決済装置２００の暗号化部２２８で確認用暗号化データの生成のために実行される暗号化の方法も、固定された１つの方法であった。これに対して、変形例５では、両暗号化の方法が複数種類である、或いは変化するようになっている。これが、変形例４と変形例５の差分である。
【０１３８】
変形例５は、上述の点を除けば、変形例４と同じである。決済端末３００は、その構成、及びそこで実行される処理のすべてが変形例４と同じでよく、変形例５ではそうされている。ユーザ端末１００は、変形例３のユーザ端末１００と、その構成、及びそこで実行される処理のすべてを同じくする。
以下、主に、変形例４と異なる変形例５の決済システムにおける決済装置２００の構成及びそこで行われる処理について説明する。
【０１３９】
変形例５の決済装置２００のハードウェア的な構成は、変形例４と同じである。変形例５の決済装置２００の内部には、変形例４の場合と殆ど同じ機能ブロックが生成されるが、鍵生成部２２７が存在する点でのみ変形例４の場合と異なる（図２４）。
【０１４０】
変形例５の主制御部２２２も変形例４の主制御部２２２の場合と同様、制御部２２０内の全体的な制御を行う。変形例４の場合と同様、変形例５における主制御部２２２も、与信判定の処理と決済の処理とを実行するようになっている。与信判定の処理と、決済の処理は、変形例４の場合と同じである。信用情報記録部２２４Ｂに記録されるデータ、及びそのデータが与信判定に用いられることも変形例４と同じである。
変形例５の主制御部２２２は、変形例４の場合と同様、確認用元データを生成する機能を有している。確認用元データの構造、及びその生成方法は変形例４と同様である。変形例５の主制御部２２２は、変形例４の場合と同様に、生成した確認用元データを、暗号化を行えという指示とともに暗号化部２２８へと送るようになっている。
【０１４１】
暗号化部２２８は、上述したように、主制御部２２２から、暗号化をせよとの指示を確認用元データとともに受取る場合がある。
かかる指示を受取った場合、暗号化部２２８は、主制御部２２２から受取った確認用元データを暗号化し、暗号化によって得られた文字列から所定の規則にしたがって文字を抜出すことにより確認用暗号化データとするようになっている。これ自体は変形例４と同じであるが、変形例５では、上述のように暗号化の方法を変更しなければならないので、その点で、暗号化の方法が変形例４の場合とは異なる。
暗号化部２２８は、暗号化の処理を変更させる場合に、アルゴリズム、鍵、或いはその双方の変更を行うことができるが、この実施形態ではこれには限られないが、鍵を変更するようになっている。暗号化部２２８が暗号化の処理に用いる鍵は、変形例３の場合と同様に鍵生成部２２７から提供される。鍵生成部２２７が鍵を生成するタイミングは、暗号化部２２８から鍵の生成の依頼を受けたときである。
変形例５の暗号化部２２８が確認用元データをどのようにして暗号化して確認用暗号化データにするかという確認用暗号化データの生成方法の詳細については、後述するものとする。
暗号化部２２８は、生成した確認用暗号化データを、変形例４の場合と同様に第２記録部２２４Ｄに書き込むようになっている。
【０１４２】
決済判定部２２６は、上述したように、決済判定を行う。決済判定部２２６で実行される処理は、変形例４と同様である。決済判定部２２６は、変形例４の場合と同じように最終判定データを生成し、それを主制御部２２２に対して送るようになっている。
【０１４３】
変形例５の決済システムの使用方法、及び動作について説明する。
変形例５の決済システムで実行される処理は、基本的に、変形例４の決済システムで実行される処理の流れを示す図２３に示された流れと同じである。変形例４と変形例５で主に異なるのは、決済装置２００におけるＳ９６３Ｃの処理の詳細である。
【０１４４】
変形例５の決済システムでも、変形例４の場合と同様に、まず、かかるシステムを使用するための準備として、各ユーザ端末１００において、ユーザＩＤの設定を行うとともに、各決済端末３００において、決済端末ＩＤの設定を行う。
まず、ユーザ端末１００で、Ｓ９５１からＳ９５３の処理が実行され、決済装置で、Ｓ９６１〜Ｓ９６３の処理が実行される。変形例５におけるこれら処理はすべて変形例４と同じである。
【０１４５】
ユーザ端末１００は、その送受信部で許可情報を受取る（Ｓ９５４）。
そこから、ユーザ端末１００では、Ｓ９５４〜Ｓ９５７の処理が実行されて、仮想貨幣データが生成、或いは発行される。これら過程は、変形例４で述べたユーザ端末１００で実行される各処理と同一である。
このように、ユーザ端末１００では、許可情報を決済装置２００から受取ると、それを契機に仮想貨幣データが生成乃至発行される。他方、変形例５では、変形例４と同様に、それと並行して、確認用元データの生成（Ｓ９６３Ｂ）と、確認用元データを暗号化することによる確認用暗号化データの生成及び第２記録部２２４Ｄへの記録（Ｓ９６３Ｃ）とが行われる。かかるＳ９６３Ｂと、Ｓ９６３Ｃの処理は、変形例４の場合と同様に、例えば、許可情報の送信についてのＳ９６３の処理の直後に行われる。
【０１４６】
上述したように、Ｓ９６１で、決済装置２００は、ユーザ端末１００からユーザＩＤ及び金額情報を受取る。変形例４の場合と同様に、これらに基づき、主制御部２２２は、確認用元データを生成する（Ｓ９６３Ｂ）。
主制御部２２２は、生成した確認用元データを、暗号化をせよとの指示とともに暗号化部２２８へと送る。
【０１４７】
確認用元データとともに暗号化を行なえという指示を受取った暗号化部２２８は、確認用元データを暗号化する処理を実行して確認用元データから確認用暗号化データを生成する（Ｓ９６３Ｃ）。
暗号化部２２８は、確認用元データを暗号化するための鍵を入手すべく、鍵の生成を鍵生成部２２７に依頼する。そのとき、暗号化部２２８は、確認用元データに含まれていたユーザＩＤを、鍵の生成の依頼とともに鍵生成部２２７に送る。
鍵生成部２２７は、変形例３の場合と同様に、受付けたユーザＩＤと紐付けられていた初期解と、解を生成するためのアルゴリズムとを用いて、そのユーザＩＤで特定されるユーザ端末１００で生成されるのと同じ解を生成する。ここで、鍵生成部２２７が、幾つ目までの解を連続して生成するかは、「直前に生成された解の次の解」までの解までである。ユーザ端末１００で生成される解と、決済端末３００で生成される解とは、同じ順番で生成されたもの同士を比較すれば同じものとなるように同期させられているから、決済端末３００の鍵生成部２２７は、ユーザ端末１００の鍵生成部１２６と同じ鍵を生成することができる。
鍵生成部２２７は、最後に生成した解を、暗号化に用いる解として、鍵生成部２２７は、暗号化部２２８に送る。
暗号化部２２８は、鍵生成部２２７から受取った鍵と、固定の暗号化の処理のためのアルゴリズムを用いて、主制御部２２２から受取った確認用元データを暗号化する。そして、暗号化部２２８は、それにより得られた文字列から所定の規則にしたがって一部の文字を抜出すことにより新たな文字列を生成する。この新たな文字列が確認用暗号化データである。
生成された確認用暗号化データを、暗号化部２２８は第２記録部２２４Ｄへと書き込む。
【０１４８】
以降の決済装置２００と、決済端末３００で行われる処理は、変形例４とすべて同じである。
【０１４９】
なお、以上の説明では、仮想貨幣データにはユーザＩＤが含まれているものとしていたが、変形例４の場合と同様の理由で、仮想貨幣データはユーザＩＤを含んでいなくても構わない。もっとも変形例５でも、仮想貨幣データに含まれているユーザＩＤを変形例４の場合と同様の目的、態様で、利用可能である。
変形例５でも、変形例４の場合と同様に、使用済みの確認用暗号化データを第２記録部２２４Ｄから削除するようにすることが可能である。
【符号の説明】
【０１５０】
１００  ユーザ端末  
１０１  ディスプレイ
１０２  入力装置
１２０  制御部
１２１  主制御部
１２２  表示制御部
１２３  データ入出力部
１２４  ユーザ端末記録部
１２５  暗号化部
１２６  鍵生成部
２００  決済装置
２２０  制御部
２２１  データ入出力部
２２２  主制御部
２２３  仮想貨幣データ生成部
２２３Ａ  暗号化部
２２３Ｂ  結合部
２２４Ａ  基本データ記録部
２２４Ｂ  信用情報記録部
２２４Ｃ  第１記録部
２２４Ｄ  第２記録部
２２６  決済判定部
２２７  鍵生成部
２２８  暗号化部
３００  決済端末
３２０  制御部
３２１  主制御部
３２２  表示制御部
３２３  データ入出力部
４００  ネットワーク
【図１】
2019036139.tif 000003
【図２】
2019036139.tif 000004
【図３】
2019036139.tif 000005
【図４】
2019036139.tif 000006
【図５】
2019036139.tif 000007
【図６】
2019036139.tif 000008
【図７】
2019036139.tif 000009
【図８】
2019036139.tif 000010
【図９】
2019036139.tif 000011
【図１０】
2019036139.tif 000012
【図１１】
2019036139.tif 000013
【図１２】
2019036139.tif 000014
【図１３】
2019036139.tif 000015
【図１４】
2019036139.tif 000016
【図１５】
2019036139.tif 000017
【図１６】
2019036139.tif 000018
【図１７】
2019036139.tif 000019
【図１８】
2019036139.tif 000020
【図１９】
2019036139.tif 000021
【図２０】
2019036139.tif 000022
【図２１】
2019036139.tif 000023
【図２２】
2019036139.tif 000024
【図２３】
2019036139.tif 000025
【図２４】
2019036139.tif 000026