(57)【要約】【課題】仮想通貨管理プログラムを提供する。【解決手段】コンピュータ実行可能命令を含む仮想通貨管理プログラムであって、コンピュータ実行可能命令は、プロセッサによって実行されると、コンピュータに、仮想通貨を発行するための第１のトランザクションデータおよび第２のトランザクションデータを生成させ、第１のトランザクションデータは、第１の使用するＵＴＸＯへの参照、仮想通貨の第１のタイプの発行額、第１のユーザＩＤ、第１の秘密鍵から生成された第１のアセットＩＤ、および第１のタイプのトランザクション種別を含み、第２のトランザクションデータは、第２の使用するＵＴＸＯへの参照、第１のタイプの発行額と同額の第２のタイプの発行額、第１のユーザＩＤ、第２の秘密鍵から生成された第２のアセットＩＤ、および第１のタイプのトランザクション種別を含む。【選択図】図５
2018160179.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行可能命令を含む仮想通貨管理プログラムであって、
前記コンピュータ実行可能命令は、プロセッサによって実行されると、コンピュータに、仮想通貨を発行するための第１のトランザクションデータおよび第２のトランザクションデータを生成させ、
前記第１のトランザクションデータは、
第１の使用するＵＴＸＯへの参照、前記仮想通貨の第１のタイプの発行額、第１のユーザＩＤ、第１の秘密鍵から生成された第１のアセットＩＤ、および第１のタイプのトランザクション種別を含み、
前記第２のトランザクションデータは、
第２の使用するＵＴＸＯへの参照、前記第１のタイプの発行額と同額の第２のタイプの発行額、前記第１のユーザＩＤ、第２の秘密鍵から生成された第２のアセットＩＤ、および前記第１のタイプのトランザクション種別を含む
ことを特徴とする仮想通貨管理プログラム。
【請求項２】
前記第１のアセットＩＤおよび前記第２のアセットＩＤはそれぞれ、デジタル証明書により署名されたメタデータを含むことを特徴とする請求項１に記載の仮想通貨管理プログラム。
【請求項３】
前記コンピュータ実行可能命令は、前記コンピュータに、
前記第１のタイプの発行額を移動させるための第３のトランザクションデータを生成させ、
前記第３のトランザクションデータは、第３の使用するＵＴＸＯへの参照、前記第１のタイプの発行額に対応する移動額、第２のユーザＩＤ、前記第１のアセットＩＤ、および第２のタイプのトランザクション種別を含む
ことを特徴とする請求項１または２に記載の仮想通貨管理プログラム。
【請求項４】
前記コンピュータ実行可能命令は、前記コンピュータに、
前記仮想通貨を発行するための第４のトランザクションデータおよび第５のトランザクションデータを生成させ、
前記第４のトランザクションデータは、前記第１のタイプの発行額と関連付けられた第３のタイプの発行額、第４の使用するＵＴＸＯへの参照、前記第１のユーザＩＤ、前記第１のアセットＩＤ、および前記第１のタイプのトランザクション種別を含み、
前記第５のトランザクションデータは、前記第３のタイプの発行額と同額の第４のタイプの発行額、第５の使用するＵＴＸＯへの参照、前記第２のアセットＩＤ、および前記第１のタイプのトランザクション種別を含む
ことを特徴とする請求項３に記載の仮想通貨管理プログラム。
【請求項５】
前記コンピュータ実行可能命令は、前記コンピュータに、
前記第２のタイプの発行額および／または前記第４のタイプの発行額の、一部または全部を償却するための第６のトランザクションデータを生成させ、
前記第６のトランザクションデータは、前記第２のタイプの発行額および／または前記第４のタイプの発行額、第６の使用するＵＴＸＯへの参照、前記第２のタイプの発行額および／または前記第４のタイプの発行額と同額の償却額、前記第１のユーザＩＤ、前記第２のアセットＩＤ、ならびに第３のタイプのトランザクション種別を含む
ことを特徴とする請求項４に記載の仮想通貨管理プログラム。
【請求項６】
前記第４のトランザクションデータに含まれる前記第３のタイプの発行額は、前記第３のトランザクションデータを生成した時点で定められた額であることを特徴とする請求項４に記載の仮想通貨管理プログラム。
【請求項７】
前記第４のトランザクションデータに含まれる前記第３のタイプの発行額は、前記第４のトランザクションデータが生成されるタイミングで算出されることを特徴とする請求項４に記載の仮想通貨管理プログラム。
【請求項８】
相互接続された複数のコンピュータによって実行される仮想通貨管理方法であって、
前記複数のコンピュータのうちの第１のコンピュータは、第１の秘密鍵および第１の公開鍵のペアと、第２の秘密鍵および第２の公開鍵のペアと、前記第１の公開鍵で生成された第１のユーザＩＤを記憶部に記憶しており、
前記第１のコンピュータによって、
仮想通貨を発行するための第１のトランザクションデータおよび第２のトランザクションデータを生成するステップと、
前記生成した第１のトランザクションデータおよび前記生成した第２のトランザクションデータを、前記複数のコンピュータにブロードキャストするステップと
を備え、
前記生成した第１のトランザクションデータは、第１の使用するＵＴＸＯへの参照、前記仮想通貨の第１のタイプの発行額、前記第１のユーザＩＤ、前記第１の秘密鍵から生成された第１のアセットＩＤ、および第１のタイプのトランザクション種別を含み、
前記生成した第２のトランザクションデータは、第２の使用するＵＴＸＯへの参照、
前記第１のタイプの発行額と同額の第２のタイプの発行額、前記第１のユーザＩＤ、前記第２の秘密鍵から生成された第２のアセットＩＤ、および前記第１のタイプのトランザクション種別を含む
ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想通貨管理プログラムおよび方法に関し、特に、従来の仮想通貨管理プログラムおよび方法を利用して、ユーザ間でのあらゆる仮想通貨の資金移動を可能にする仮想通貨管理プログラムおよび方法に関する。
【背景技術】
【０００２】
近年、ピアツーピア（Peer to Peer）型の決済網であるビットコイン（Bitcoin）と称される仮想通貨管理システムが利用されている。ビットコインとは、複数のコンピュータが相互接続された分散型コンピュータネットワークを利用して行われるオンライン仮想通貨またはその仮想通貨を使用したオンライン商取引スキームである。
【０００３】
ビットコインの送金といった取引（以下、「トランザクション」と呼ぶ）では、ハッシュ関数と公開鍵暗号方式とを使用して分散台帳を形成することで、トランザクションの完全性が担保されている。トランザクションは、ビットコインを利用する全てのコンピュータにブロードキャストされ、コンピュータ上で動作するソフトウェアによってトランザクションの正当性が検証される。
【０００４】
図１は、ユーザＡからユーザＢに（トランザクションＡ）、ユーザＢからユーザＣに（トランザクションＢ）、およびユーザＣからユーザＤに（トランザクションＣ）に送金を行う取引の例を示している。各トランザクションは、入力部および出力部を含む。入力部は、送金者の電子署名（送金者の秘密鍵によって生成された）、送金者の公開鍵、および送金者の使用する未使用仮想通貨の情報（ＵＴＸＯ：unspent transaction output）への参照を含み、使用するＵＴＸＯへの参照からは、入金額や送金者のビットコインアドレスが参照することができる。出力部は、出金額、および受取人となるユーザのビットコインアドレスを含む。
【０００５】
ビットコインアドレスとは、ユーザがそれぞれ有する自身の公開鍵から生成されるＩＤである。各ユーザは、複数のビットコインアドレスを生成することができ、このアドレスによって各ユーザ、およびそのユーザがそのアドレスを使用した取引履歴を特定することができる。
【０００６】
ビットコインでは、ビットコインを発行するトランザクションを除き、トランザクションの入力部の入金額と出力部の出金額とが一致する総量保存則を満たされる。
【０００７】
図２に示すように、入力部には、その時点での使用するＵＴＸＯへの参照が含まれ、この情報からＵＴＸＯの現所有者と残高とが参照することができる。例えば、ユーザＡが１００ＢＴＣ（ＢＴＣはビットコインの数量単位）を所有していることが分かる。この状況から、ユーザＢに１０ＢＴＣを送金する場合、残りの９０ＢＴＣはユーザＡ自身に送金する必要がある。このようにして、上述した総量保存則が満たされたままトランザクションは記録され、入力部には使用するＵＴＸＯへの参照を用いることで、通貨の二重譲渡を防止している。
【０００８】
ビットコインの仕組みを利用した（ビットコインにオーバレイする）ブロックチェーン上に様々なアセット（流動資産）を構成可能にする、カラードコインと呼ばれる技術がある。カラードコインは、ビットコインに「色」をつけることで、金・株式・証券・既存通貨その他あらゆる資産（アセット）を表現することができる技術である。
【０００９】
カラードコインは、ビットコインと異なり、カラードコインの発行者が存在する。カラードコインは、それを実装するプログラムを動作させたコンピュータ間でのみ、そのカラードコインによる取引を行うことができる。カラードコインを利用することによって、ビットコインの仕組みを利用して、ユーザ間での融資などを行うことも可能になる。このように、ビットコインを利用した仮想通貨管理システムが開発・利用されつつある。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】ビットバンク株式会社＆『ブロックチェーンの衝撃』編集委員会著、「ブロックチェーンの衝撃」、日経BP社、2016年 6月 8日
【非特許文献２】岡田仁志、高橋 郁夫、山▲崎▼ 重一郎著「仮想通貨  技術・法律・制度」、東洋経済新報社、2015年 5月29日
【発明の概要】
【発明が解決しようとする課題】
【００１１】
金融業務において使用する台帳は、利息を記録できることが必要となる。一方、金融業務において使用する台帳にブロックチェーンを採用することを考えたとき、すべてのアセット発行者は、アセットを無制限に発行することができることになる。
【００１２】
このため、例えば、融資における元本や利息の返済といった、時間の経過などに伴ってアセットを発行したり償却したりする取引を行うと、取引記録全体におけるアセットの総量は一定に保たれず、アセットの総量の管理が難しくなる問題がある。これにより、ブロックチェーンに金融取引を記録しにくいという課題が生じていた。ビットコインおよびカラードコインでも、上述した総量保存則を満たす必要があるが、時間の経過とともに発生する利息の性質上、総量保存則を満たすことができなくなるからである。
【００１３】
本発明は、このような問題に鑑みてなされたものであり、その目的とするところは、金融機関でブロックチェーンを台帳として利用するための、合理的な台帳を構成するにあたり、利息といった時間経過に伴い増減する価値について、当該価値の正当な権利保有者による発行、資金移動、償却といった取引をブロックチェーンに記録する、仮想通貨管理プログラムおよび方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、本発明に係る仮想通貨管理プログラムは、コンピュータ実行可能命令を含む仮想通貨管理プログラムであって、前記コンピュータ実行可能命令は、プロセッサによって実行されると、コンピュータに、仮想通貨を発行するための第１のトランザクションデータおよび第２のトランザクションデータを生成させ、前記第１のトランザクションデータは、第１の使用するＵＴＸＯへの参照、前記仮想通貨の第１のタイプの発行額、第１のユーザＩＤ、第１の秘密鍵から生成された第１のアセットＩＤ、および第１のタイプのトランザクション種別を含み、前記第２のトランザクションデータは、第２の使用するＵＴＸＯへの参照、前記第１のタイプの発行額と同額の第２のタイプの発行額、前記第１のユーザＩＤ、第２の秘密鍵から生成された第２のアセットＩＤ、および前記第１のタイプのトランザクション種別を含むことを特徴とする。
【発明の効果】
【００１５】
本発明に係る仮想通貨管理プログラムによれば、時間経過に伴い増減する価値をブロックチェーンに記録することが可能になるため、仮想通貨とその利息を金融機関が発行し、ブロックチェーンを使用して流通させることが可能になる。この結果、金融取引に仮想通貨およびブロックチェーンを利用することができる場面が拡大する。
【図面の簡単な説明】
【００１６】
【図１】従来技術に従ったビットコインにおけるトランザクションの連鎖関係を示す図である。
【図２】従来技術に従ったビットコインにおけるトランザクションの入力部と出力部との関係を示す図である。
【図３】本発明に係る仮想通貨管理プログラムを実行することによって実装される仮想通貨管理システムの全体の構成の例を示すブロック図である。
【図４】本発明に係る仮想通貨管理プログラムが実行する処理の例を示すフローチャートである。
【図５】本発明一実施形態に係る仮想通貨発行処理および資金移動（融資）に対応するトランザクションデータの例を示す図である。
【図６】本発明の一実施形態に係る利息発行処理に対応するトランザクションデータの例を示す図である。
【図７】本発明の一実施形態に係る資金移動（返済）に対応するトランザクションデータの例を示す図である。
【図８】本発明の一実施形態に係る仮想通貨償却処理に対応するトランザクションデータの例を示す図である。
【発明を実施するための形態】
【００１７】
以下で、本発明に係る仮想通貨管理プログラムおよび方法の詳細を説明する。本発明に係る仮想通貨管理プログラムを実行することによって実装される仮想通貨管理システムは、ビットコインに代表される、既存の仮想通貨管理システム（以下、「既存型仮想通貨管理システム」）を利用するが（既存型仮想通貨管理システムにオーバレイして実装され、既存型仮想通貨管理システムの上位のレイヤで実装される。）、その前提となる既存型仮想通貨管理システムはビットコインに限定されない。
【００１８】
既存型仮想通貨管理システムは、各ユーザが資金移動を実行する際に、コンピュータによってトランザクションデータが生成され、そのトランザクションデータが他のコンピュータにブロードキャストされ、一連のトランザクションの連鎖が検証・記録されるシステムを意味する。ブロードキャストされるトランザクションデータは、それまでのトランザクションに関するデータ（前のトランザクションのハッシュ値）を含み、この構成によって、各ユーザは、一連のトランザクションの履歴を検証することができる。
【００１９】
本明細書において、「資金移動」とは、仮想通貨を利用して一のユーザから別のユーザにその仮想通貨の指定した量が移動することを意味し、仮想通貨での融資、その返済、および送金などを含む。
【００２０】
＜システム構成＞
図３を参照して、本発明の一実施形態に係る仮想通貨管理プログラムを実行することによって実装される仮想通貨管理システムの全体の構成の例を説明する。本発明に係る仮想通貨管理システムは、複数のコンピュータ１ａ（例えば、スマートフォンなどの携帯電話、タブレット端末などの携帯情報端末）、コンピュータ１ｂ（例えば、デスクトップ型パーソナルコンピュータなど）、コンピュータ１ｃ（例えば、ノート型パーソナルコンピュータなど）、およびコンピュータ１ｄ（例えば、データセンター設置型コンピュータなど）（以下、「コンピュータ１」と総称する）を備え、それらはネットワーク２を介して相互に接続されている。ネットワーク２は、インターネットや専用線などである。
【００２１】
コンピュータ１は、本発明に係る仮想通貨管理システムを利用するユーザが使用し、当該仮想通貨管理システムに参加するユーザを構成するコンピュータである。コンピュータ１を使用するユーザは、公開鍵暗号の秘密鍵と公開鍵のペア、および公開鍵から生成されるユーザＩＤを所持する。このユーザＩＤは、上述したビットコインアドレスと同様の役割を果たす。
【００２２】
ユーザは、コンピュータ１を使用して、特定のユーザとの間で資金移動を行い、また第三者の資金移動を検証・記録する。コンピュータ１は、スマートフォンなどの携帯電話、タブレット端末などの携帯情報端末、およびパーソナルコンピュータ（ノート型およびデスクトップ型コンピュータを含む）など、ネットワーク２にアクセス可能な任意のコンピュータを含む。
【００２３】
銀行も、コンピュータ１を用いて、仮想通貨管理システムに参加する。加えて、銀行が用いるコンピュータ１（以下、「銀行コンピュータ」と呼ぶ）のみが、以下で述べるシステム内定義仮想通貨を発行（利息のための発行を含む）および償却することができる。つまり、銀行コンピュータは、既存型仮想通貨システムの上位レイヤで実装される、本発明に係る仮想通貨管理システムによるユーザ間相互ネットワークにおいて、信頼可能な第三者機関の役割を果たす。
【００２４】
次に、図４を参照して、本発明に係る仮想通貨管理システムを構成するコンピュータ１の詳細な構成の例を説明する。
【００２５】
コンピュータ１は、通信部１１、制御部１２、主記憶部１３、補助記憶部１４、および表示部１５を備えている。
【００２６】
通信部１１は、ネットワーク２を介して接続された他のコンピュータ１およびとの間でデータおよび制御情報を送受信するネットワークインタフェースである。
【００２７】
制御部１２は、中央処理装置（ＣＰＵ）とも呼ばれ、上記各構成要素の制御やデータの演算を行う。また、制御部１２は、本発明に係る各種処理を実行するための、補助記憶部１４に格納されている各種プログラムを主記憶部１３に読み取って実行する。
【００２８】
主記憶部１３は、メインメモリとも呼ばれ、他のコンピュータ１からブロードキャストされたトランザクションのデータ、コンピュータ実行可能な命令および当該命令による演算処理後のデータなどを記憶する。
【００２９】
補助記憶部１４は、ハードディスク（ＨＤＤ）などに代表される記憶装置であり、制御部１２に、以下で説明するコンピュータ１によって実行されることになる各種処理を実行させるためのプログラム１６を記憶している。このプログラムを実行したコンピュータ１のみが、本発明に係る仮想通貨管理システムによる資金移動を行うことができる。また、補助記憶部１４には、上述した秘密鍵と公開鍵のペアおよびユーザＩＤが記憶されている。
【００３０】
表示部１５は、制御部１２が補助記憶部１４に記憶されたプログラム１６を実行することによって、ユーザが情報を入力および表示するための入出力インタフェースを表示する。
【００３１】
本発明では、既存型仮想通貨管理システムを利用して本発明に係る仮想通貨管理システムが実装される。既存型仮想通貨管理システムは、コンピュータ１の各々の制御部１２が補助記憶部１４に記憶されたプログラム１６を実行することによって実行される。
【００３２】
本発明に係る仮想通貨管理システムでは、資金移動を行う際に、予め定義された通貨（以下、「システム内定義仮想通貨」）を発行し、その発行されたシステム内定義仮想通貨の資金移動がユーザ間およびユーザ−銀行システム間で行われる。システム内定義仮想通貨は、本発明に係る仮想通貨管理システムで有効な、ユーザ間およびユーザ−銀行システム間での資金移動において表現される価値であり、法定通貨（円、ドルなど）とのレートなどが定義されていても良い。
【００３３】
次に、本発明の一実施形態に係る仮想通貨管理プログラムが実行する処理の例を説明する。
【００３４】
＜システム内定義通貨発行処理＞
まず、銀行コンピュータがシステム内定義通貨を発行する処理の例を説明する。本発明に係る仮想通貨管理システムでは、上述したカラードコインと同様に、システム内定義通貨の発行者が存在するが、そのシステム内定義通貨は、特定の権限を有するユーザのみがシステム内定義通貨の発行（利息発行を含む）および後述する償却を行えるよう制御される。
【００３５】
具体的には、発行するシステム内定義通貨にアセットＩＤが付与される。このアセットＩＤは、銀行の秘密鍵によって生成されるため、他のユーザが同じアセットＩＤを発行することはできない。また、アセットＩＤがどのようなものかを定義したメタデータを定義し、アセットＩＤは、そのメタデータによって、アセットＩＤの発行用トランザクションにリンクすることができる。このメタデータは認証局から発行されたデジタル証明書による署名が行われているため、後述するトランザクションデータを受信した各コンピュータ１は、証明書を確認することでそのアセットＩＤの発行元を確認することができる（発行元を確認することによって、後述するトランザクションの種別ごとにトランザクションの発行が特定のユーザに制限される）。
【００３６】
また、システム内定義通貨を発行および償却する権限を銀行コンピュータ以外のユーザに付与する場合は、銀行コンピュータを認証局としてもよい。本実施形態では、銀行コンピュータのみがシステム内定義通貨を発行（利息発行を含む）および償却することができるものとし、以下の例では、システム内定義通貨で定められた価値である６００ｐ（単位「ｐ」は、便宜上そのように表現している）を発行するものとする。
【００３７】
ここで、銀行コンピュータは、銀行の公開鍵を使用して生成されたユーザＩＤを補助記憶部１４に記憶しているものとする。便宜上、銀行コンピュータのユーザＩＤを銀行ユーザＩＤとする。
【００３８】
まず、銀行コンピュータの制御部１２は、銀行ユーザＩＤを使用して、トランザクションデータ１０１および１０２を生成する。このトランザクションデータ１０１および１０２に対応するトランザクションをそれぞれトランザクション１０１および１０２とする。生成されるトランザクションデータ１０１および１０２の例を図５に示す。
【００３９】
以下で説明する各トランザクションデータは、入力部および出力部を含む。トランザクションデータ１０１の入力部は、銀行の秘密鍵で生成された署名、銀行の公開鍵、およびその時点での使用するＵＴＸＯへの参照を含む。使用するＵＴＸＯへの参照によって、ＵＴＸＯの現所有者（銀行）および残高を参照することができる。銀行ユーザＩＤは、上述したように、例えば、ビットコインではビットコインアドレスに相当し、銀行コンピュータによるこの銀行ユーザＩＤを使用したトランザクションの履歴を参照することができ、よって、システム内定義通貨の発行者（銀行コンピュータ）および発行者のＵＴＸＯを特定することができる。
【００４０】
出力部は、システム内定義仮想通貨の発行額である出金額としてＢＣＣ＝６００ｐ、銀行ユーザＩＤ、アセットＩＤ、およびトランザクション種別を含む。ＢＣＣ（Bank Cashier's Check）は、銀行が発行するシステム内定義通貨を意味する。出力部で設定されるユーザＩＤは、当該トランザクションで発行および資金移動などがされるシステム内定義通貨の宛先を示す。トランザクションデータ１０１では、銀行ユーザＩＤが設定されているので、ＢＣＣ＝６００ｐが銀行コンピュータに発行されることを意味する。
【００４１】
銀行ユーザＩＤは、上述したように、例えば、ビットコインではビットコインアドレスに相当し、銀行コンピュータによるこの銀行ユーザＩＤを使用したトランザクションの履歴を参照することができる。
【００４２】
アセットＩＤは、システム内定義通貨を発行する都度、銀行の秘密鍵を使用して生成され、認証局から発行されたデジタル証明書による署名が行われたメタデータ（アセットＩＤがどのようなものかを定義した）を含む。このアセットＩＤによって、この発行されたＢＣＣの資金移動を行う際に、当該発行されたＢＣＣであることを特定することができる。トランザクション種別は、トランザクションの種別を示す値が設定され、例えば、「１：発行」、「２：送金」、および「３：償却」などであってもよく、トランザクションデータ１０１には、「１：発行」が設定される。
【００４３】
トランザクションデータ１０２の入力部は、トランザクションデータ１０１と同様であるので説明を省略する。出力部は、出金額としてＩＯＵ（I Owe You）、銀行ユーザＩＤ、アセットＩＤ、およびトランザクション種別を含む。ＩＯＵは、銀行が発行する借用証書を意味し、トランザクションデータ１０１のＢＣＣ＝６００ｐと同額の値が設定される。アセットＩＤは、銀行の秘密鍵を使用して生成され、トランザクションデータ１０１のアセットＩＤとは異なる値が設定される（当該アセットＩＤの値は、銀行の秘密鍵によって、トランザクションデータ１０１で生成したアセットＩＤとは異なる計算方法で算出され、またはトランザクションデータ１０１で使用した銀行の秘密鍵とは異なる秘密鍵を使用して生成される）（便宜上、トランザクション１０１および１０２のアセットＩＤをそれぞれアセットＩＤａおよびｂとする）。トランザクション種別、「１：発行」が設定される。
【００４４】
トランザクションデータ１０１および１０２は、銀行の秘密鍵によって暗号化されて、通信部１１によって仮想通貨管理システムを構成する全ユーザのコンピュータ１にブロードキャストされる。トランザクションデータ１０１および１０２を受信したコンピュータ１は、銀行の公開鍵によって復号し、トランザクション１０１および１０２の検証をすることができる。
【００４５】
このようにして、銀行コンピュータによるシステム内定義通貨の発行処理では、トランザクションデータ１０１とその対となるトランザクションデータ１０２が生成され、それぞれ、出力部において発行額である６００ｐがＢＣＣおよびＩＯＵとして設定される。
【００４６】
トランザクション１０１で発行されたＢＣＣは、転々流通する特性を備え、任意のユーザに移動することができる。一方、ＩＯＵは、銀行が発行する借用証書に相当するので、特定のユーザ（例えば、特定のユーザとの取引がある銀行団）への移動のみ認めるなど制御される。この移動の制御は、上述した銀行の秘密鍵によって生成されたアセットＩＤを使用することによって実装される（ＩＯＵを移動させる新たなトランザクションデータが生成され、移動先ユーザの秘密鍵で生成された新たなアセットＩＤ（認証局から発行されたデジタル証明書を含む）が出力部に設定される）。
【００４７】
＜資金移動（融資）処理＞
次に、上記発行されたＢＣＣを銀行コンピュータからユーザＡに移動する処理の例を説明する。本発明に係る仮想通貨管理システムにおいては、銀行コンピュータによって発行されたＢＣＣを通じて、ユーザ間およびユーザ−銀行システム間で資金移動が行われる。この例における資金移動は、銀行コンピュータがユーザＡにＢＣＣ＝６００ｐを融資する例である。
【００４８】
銀行コンピュータの制御部１２は、トランザクション１０１からハッシュ値を生成して、トランザクションデータ１０３を生成する。このトランザクションデータ１０３に対応するトランザクションをトランザクション１０３とする。生成されるトランザクションデータ１０３の例を図５に示す。
【００４９】
トランザクションデータ１０３の入力部は、銀行の秘密鍵で生成された署名、銀行の公開鍵、およびその時点での使用するＵＴＸＯへの参照を含む。この使用するＵＴＸＯへの参照によって、ＵＴＸＯの現所有者（銀行）および残高を参照することができる。なお、銀行コンピュータは、トランザクション１０１および１０２でそれぞれＢＣＣ＝６００ｐおよびＩＯＵ＝６００ｐを発行しているので、この時点での銀行コンピュータのＵＴＸＯは１２００ｐとなる。
【００５０】
出力部は、出金額としてＢＣＣ＝６００ｐ、ユーザＡのユーザＩＤ（以下、便宜上、ユーザＡ  ＩＤとする）、アセットＩＤａ、およびトランザクション種別を含む。アセットＩＤａは、トランザクションデータ１０１で設定された値と同様であり、このＩＤによって、トランザクション１０１で発行されたＢＣＣの資金移動（融資）であることを特定することができる。
【００５１】
トランザクション１０３の宛先として、ユーザＡ  ＩＤが指定されているので、ＢＣＣ＝６００ｐがトランザクション１０３によってユーザＡに移動することになる。トランザクション種別は、例えば、「２：送金」が設定される。
【００５２】
トランザクションデータ１０３は、銀行の秘密鍵によって暗号化されて、通信部１１によって仮想通貨管理システムを構成する全ユーザのコンピュータ１にブロードキャストされる。トランザクションデータ１０３を受信したコンピュータ１は、銀行の公開鍵によって復号し、トランザクション１０３の検証をすることができる。
【００５３】
上述したトランザクションデータ１０１乃至１０３が生成された時点で、ユーザＡは、融資額であるＢＣＣ＝６００ｐを保持し、銀行コンピュータは、同額のＩＯＵを保持しているので、本発明に係る仮想通貨管理システムでは、ユーザＡに融資したＢＣＣに対して、銀行コンピュータが発行した借用証書（ＩＯＵ＝６００ｐ）を管理することができる。この時点での銀行コンピュータのＵＴＸＯは６００ｐであり（トランザクション１０２で発行されたＩＯＵ＝６００ｐ）、ユーザＡのＵＴＸＯは６００ｐである（トランザクション１０３で移動したＢＣＣ＝６００ｐ）。
【００５４】
銀行コンピュータからシステム内定義通貨を通じた融資を受けたユーザＡは、その後、その移動したＢＣＣ＝６００ｐを第三者（ユーザＡ以外の他のユーザ）に移動させてもよい（例えば、当該第三者に対する譲渡でもよい）。この場合、ユーザＡのコンピュータ１は、第三者に移動する額をＢＣＣとして指定し、当該第三者を宛先（出力部に当該第三者のユーザＩＤを含める）としてトランザクション１０３と同様にトランザクションデータを生成する。
【００５５】
以上のように、システム内定義通貨の発行およびその資金移動処理を説明したが、本発明に係る仮想通貨管理システムによれば、特定の権限を有するユーザであれば、任意の額のシステム内定義通貨をいつでも発行することができる。また、システム内定義通貨を発行することができるユーザが制限されるので、システム内定義通貨が乱発されるおそれもなくなる。さらに、ＩＯＵの移動も銀行団などの特定のユーザに制限されることから、権限なき第三者が融資に対する借用証書を有することを防止することができる。
【００５６】
＜利息発行処理＞
次に、銀行コンピュータがトランザクション１０３でユーザＡに融資したＢＣＣに対する利息を発行する処理の例を説明する。本実施形態では、融資額である６００ｐに対する利息（２％）である１２ｐが発行されるものとする。
【００５７】
上述したトランザクションデータ１０３が生成されてから所定の期間が経過した時点で（本実施形態では、所定の期間を経過して利息が発生するときを利息発生時点とし、以下で示す第２の利息発生時点に対して第１の利息発生時点とする）、銀行コンピュータの制御部１２は、トランザクション１０３からハッシュ値を生成して、トランザクションデータ１０４を生成する。また、トランザクション１０２からハッシュ値を生成して、トランザクションデータ１０５を生成する。
【００５８】
第２の利息発生時点では、制御部１２は、トランザクション１０４からハッシュ値を生成して、トランザクションデータ１０６を生成する。また、トランザクション１０５からハッシュ値を生成して、トランザクションデータ１０７を生成する。このトランザクションデータ１０４乃至１０７に対応するトランザクションをそれぞれトランザクション１０４乃至１０７とする。生成されるトランザクションデータ１０４乃至１０７の例を図６に示す。
【００５９】
トランザクションデータ１０４の入力部は、銀行の秘密鍵で生成された署名、銀行の公開鍵、およびその時点での使用するＵＴＸＯへの参照を含む。この使用するＵＴＸＯへの参照によって、ＵＴＸＯの現所有者（銀行）および残高を参照することができる。
【００６０】
出力部は、出金額として、トランザクションデータ１０３のＢＣＣ＝６００ｐに対する利息額であるＢＣＣ＝１２ｐ、銀行ユーザＩＤ、アセットＩＤａ、およびトランザクション種別を含む。
【００６１】
トランザクション１０４の宛先として銀行ユーザＩＤが設定されているので、ＢＣＣ＝１２ｐが銀行コンピュータに発行されることになる。アセットＩＤａは、トランザクションデータ１０３で設定された値と同様であり、このＩＤによって、トランザクション１０３でユーザＡに移動した融資額に対する利息発行であることを特定することができる。トランザクション種別は、例えば、「１：発行」が設定される。
【００６２】
トランザクションデータ１０５の入力部は、トランザクションデータ１０４と同様であるので説明を省略する。出力部は、ＩＯＵ＝１２ｐ、銀行ユーザＩＤ、アセットＩＤ  ２、およびトランザクション種別を含む。アセットＩＤｂ、トランザクションデータ１０２で設定された値と同様である。トランザクション種別は、「１：発行」が設定される
【００６３】
トランザクションデータ１０４および１０５は、銀行の秘密鍵によって署名されて、仮想通貨管理システムを構成する全ユーザのコンピュータ１にブロードキャストされる。トランザクションデータ１０４および１０５を受信したコンピュータ１は、銀行の公開鍵によって、トランザクション１０４および１０５の署名を検証することができる。
【００６４】
また、第２の利息発行時点では、図５に示すように、トランザクションデータ１０６および１０７がそれぞれ、トランザクションデータ１０４および１０５と同様に生成される。
【００６５】
上述したトランザクションデータ１０４乃至１０７が生成された時点で、ユーザＡの融資額であるＢＣＣ＝６００ｐに対し、銀行コンピュータは、利息額であるＩＯＵ＝２４ｐを発行したことになり、本発明に係る仮想通貨管理システムでは、ユーザＡに融資したＢＣＣに対して、銀行コンピュータが発行した利息額に対する借用証書を管理することができる。
【００６６】
この時点で、銀行コンピュータが発行した仮想通貨の合計額は、１２４８ｐであり（トランザクション１０１でＢＣＣ＝６００ｐ、トランザクション１０２でＩＯＵ＝６００ｐ、トランザクション１０４でＢＣＣ＝１２ｐ、トランザクション１０５でＩＯＵ＝１２ｐ、トランザクション１０６でＢＣＣ＝１２ｐ、およびトランザクション１０７でＩＯＵ＝１２ｐ）である。そのうちＢＣＣ＝６００ｐがトランザクション１０３でユーザＡに移動しているので、銀行コンピュータのＵＴＸＯは６４８ｐであり、ユーザＡのＵＴＸＯは６００ｐである。
【００６７】
なお、トランザクション１０４および１０５とトランザクション１０６および１０７とはそれぞれ、第１の利息発生時点および第２の利息発生時点で発行されるトランザクションであるが、トランザクションデータ１０３での融資額（ＢＣＣ＝６００ｐ）の対する利息を予め分割してもよい。例えば、融資額（ＢＣＣ＝６００ｐ）に対する利息額が１４４ｐである場合、その額が予め１２回に分割され（ＢＣＣ＝１２ｐ）、ＢＣＣ＝１２ｐとするトランザクションデータ（以下、「利息発行トランザクションデータ１」）が１２回生成され、ＩＯＵ＝１２ｐとするトランザクションデータ（以下、「利息発行トランザクションデータ２」）が１２回生成される（つまり、トランザクションデータ１０４と同様のトランザクションデータが１２回、トランザクションデータ１０５と同様のトランザクションデータが１２回生成される）。
【００６８】
利息発行トランザクションデータ１および利息発行トランザクションデータ２を生成する際は、参照するＵＴＸＯも１２回に分割されることになる。利息発行トランザクションデータ１および利息発行トランザクションデータ２はそれぞれ、予め１２回分を一度に生成されてもよく、または所定の周期で（例えば、第１の利息発生時点乃至第１２の利息発行時点のそれぞれにおいて）生成されてもよい。
【００６９】
また、利息発行トランザクションデータ１および利息発行トランザクションデータ２で設定される利息額（つまり、ＢＣＣおよびＩＯＵ）は、トランザクションデータ１０３が生成された時点で定められた利率に基づいて算出されてもよく（固定金利）、または、利息発行トランザクションデータ１および利息発行トランザクションデータ２を生成する時点での利率に基づいて算出されてもよい（変動金利）。
【００７０】
＜債務返済処理＞
次に、ユーザＡに移動したＢＣＣ、および上記発行された利息額をユーザＡが返済する処理の例を説明する。この例では、ユーザＡが銀行コンピュータに対し、返済額の合計である６２４ｐを返済することになる。ユーザＡは、本発明に係る仮想通貨管理システムを利用して、本実施形態では説明しないトランザクション（以下、便宜上、トランザクションＸとする）によって返済額である６２４ｐを取得しているものとする（つまり、この時点でのユーザＡのＵＴＸＯが６２４ｐ）。
【００７１】
ユーザＡのコンピュータ１の制御部１２は、トランザクションＸからハッシュ値を生成して、トランザクションデータ１０８を生成する。このトランザクションデータ１０８に対応するトランザクションをトランザクション１０８とする。生成されるトランザクションデータ１０８の例を図７に示す。
【００７２】
トランザクションデータ１０８の入力部は、入金額として、銀行コンピュータへの返済額であるＢＣＣ＝６００ｐ、ＢＣＣ＝１２ｐ、ＢＣＣ＝１２ｐ）、ユーザＡの秘密鍵で生成された署名、ユーザＡの公開鍵、およびその時点での使用するＵＴＸＯへの参照を含む。この使用するＵＴＸＯへの参照によって、ＵＴＸＯの現所有者（ユーザＡ）および残高を参照することができる。
【００７３】
出力部は、出金額として、入金額と同額のＢＣＣ＝６２４ｐ（入金額であるＢＣＣの合計額）、銀行ユーザＩＤ、アセットＩＤａ、およびトランザクション種別を含む。
【００７４】
トランザクション１０８の宛先として、銀行ユーザＩＤが指定されているので、ＢＣＣ＝６２４ｐがトランザクション１０８によって銀行コンピュータに移動（返済される）ことになる。アセットＩＤａは、トランザクションデータ１０１、１０４および１０６で設定された値と同様であり、このＩＤによって、トランザクション１０３で融資した融資額、ならびにトランザクション１０４および１０６で発行された利息に対する返済であることを特定することができる。トランザクション種別は、例えば、「２：送金」が設定される。
【００７５】
トランザクションデータ１０８は、ユーザＡの秘密鍵によって暗号化されて、仮想通貨管理システムを構成する全ユーザのコンピュータ１にブロードキャストされる。トランザクションデータ１０８を受信した他のコンピュータ１は、ユーザＡの公開鍵によって復号し、トランザクション１０８の検証をすることができる。
【００７６】
トランザクション１０７が発行された時点で、銀行コンピュータのＵＴＸＯが６４８ｐであることは上述した。この状態で、トランザクション１０８でＢＣＣ＝６２４ｐが銀行コンピュータに移動したので、この時点での銀行コンピュータのＵＴＸＯは１２７２ｐである。
【００７７】
＜システム内定義通貨償却処理＞
次に、トランザクション１０２、１０５および１０７で発行されたＩＯＵを銀行コンピュータが償却する処理の例を説明する。
【００７８】
銀行コンピュータの制御部１２は、トランザクション１０８からハッシュ値を生成して、トランザクションデータ１０９を生成する。このトランザクションデータ１０９に対応するトランザクションをトランザクション１０９とする。生成されるトランザクションデータ１０９の例を図５に示す。
【００７９】
トランザクションデータ１０９の入力部は、入金額として、トランザクション１０２、１０５および１０７で発行されたＩＯＵ＝６００ｐ、ＩＯＵ＝１２ｐ、およびＩＯＵ＝１２ｐ、銀行の秘密鍵で生成された署名、銀行の公開鍵、ならびにその時点での使用するＵＴＸＯへの参照を含む。この使用するＵＴＸＯへの参照によって、ＵＴＸＯの現所有者（銀行）および残高を参照することができる。
【００８０】
出力部は、出金額として、入金額と同額のＢＣＣ（６２４ｐ）、銀行ユーザＩＤ、アセットＩＤｂ、およびトランザクション種別を含む。アセットＩＤｂは、トランザクションデータ１０２、１０５および１０７で設定された値と同額であり、このＩＤによって、トランザクション１０２、１０５および１０７で発行された仮想通貨およびその利息に対する償却であることを特定することができる。トランザクション種別は、例えば、「３：償却」が設定される。
【００８１】
トランザクションデータ１０９は、銀行の秘密鍵によって署名されて、仮想通貨管理システムを構成する全ユーザのコンピュータ１にブロードキャストされる。トランザクションデータ１０９を受信したコンピュータ１は、銀行の公開鍵によって、トランザクション１０９の署名を検証することができる。
【００８２】
上述したトランザクションデータ１０９が生成されたことによって、銀行コンピュータがそれまで保持していたＩＯＵが全て償却されたことになる（出力部が全て同額のＢＣＣに置き換わる）。これによって、ユーザＡからの融資およびその利息に対する返済がされたことになる。
【００８３】
銀行コンピュータが発行した仮想通貨額の合計額は、１２４８ｐであることは上述した。この時点での銀行コンピュータのＵＴＸＯは１２７２ｐであるので、発行した合計額から２４ｐが増加したことになる。これは、ユーザＡから返済された利息（トランザクション１０５で発行したＩＯＵ＝１２ｐ、およびトランザクション１０７で発行したＩＯＵ＝１２ｐ）に対する返済を受けたことを意味する。
【００８４】
以上説明したように、トランザクション１０１での仮想通貨の発行からその償却までにおいて、各々のトランザクションの入力部および出力部で指定された仮想通貨の額、ならびにＵＴＸＯの整合性が全て保証されている。このようにして、本発明に係る仮想通貨管理システムでは、既存型仮想通貨管理システムでは困難であった利息を発行することができるとともに、総量保存則が満たされ、ひいては、システム内定義通貨の二重譲渡を防止することができる。
【００８５】
なお、トランザクション１０３での資金移動（融資）処理において、ユーザＡに対して融資するＢＣＣの融資額を予め分割し、分割した数のトランザクションを所定の周期で発行してもよい。この場合、分割したトランザクションの入力部および出力部に設定されるＢＣＣは、分割した融資額が設定される（例えば、融資額が６００ｐであり、分割数が６の場合、ＢＣＣは１００ｐであり、６つのトランザクションデータが生成される）。このような構成によって、例えば、月賦払いなどの融資にも対応することができる。
【００８６】
上記トランザクションを分割する例では、後続の利息発行、返済、および償却処理についても、分割したトランザクションのそれぞれに対して実行される。
【００８７】
以上のように、本発明に係る仮想通貨管理プログラムを説明した。本実施形態では、仮想通貨管理システムを融資、その返済、および利息の発行を例としたユーザ間の資金移動に適用する例を説明したが、本発明の適用範囲はそのような例に限定されない。例えば、ユーザ間での売買契約など、システム内定義通貨を通じたユーザ間でのあらゆる資金（価値）移動に適用されてもよい。
【符号の説明】
【００８８】
１ａ  コンピュータ
１ｂ  コンピュータ
１ｃ  コンピュータ
１ｄ  コンピュータ
２    ネットワーク
【図１】
2018160179.tif 000003
【図２】
2018160179.tif 000004
【図３】
2018160179.tif 000005
【図４】
2018160179.tif 000006
【図５】
2018160179.tif 000007
【図６】
2018160179.tif 000008
【図７】
2018160179.tif 000009
【図８】
2018160179.tif 000010