JP2016218633A - 仮想通貨管理プログラム、及び仮想通貨管理方法 - Google Patents

仮想通貨管理プログラム、及び仮想通貨管理方法 Download PDF

Info

Publication number
JP2016218633A
JP2016218633A JP2015101225A JP2015101225A JP2016218633A JP 2016218633 A JP2016218633 A JP 2016218633A JP 2015101225 A JP2015101225 A JP 2015101225A JP 2015101225 A JP2015101225 A JP 2015101225A JP 2016218633 A JP2016218633 A JP 2016218633A
Authority
JP
Japan
Prior art keywords
transaction
user
virtual currency
verification
transaction information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015101225A
Other languages
English (en)
Other versions
JP5858507B1 (ja
Inventor
賢爾 斉藤
Kenji Saito
賢爾 斉藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ORB Inc
Original Assignee
ORB Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ORB Inc filed Critical ORB Inc
Priority to JP2015101225A priority Critical patent/JP5858507B1/ja
Application granted granted Critical
Publication of JP5858507B1 publication Critical patent/JP5858507B1/ja
Publication of JP2016218633A publication Critical patent/JP2016218633A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

【課題】マイニングに必要な端末の処理能力及び記憶容量を低減することが可能な、仮想通貨管理プログラム、及び仮想通貨管理方法を提供する。【解決手段】コンピュータとネットワークを介して接続され、取引情報の正当性を検証可能な端末装置に、第2の取引情報の正当性の検証を依頼する検証依頼手段、第1の取引情報に含まれる前記第1のユーザの識別子と、第2の取引情報に含まれる第2のユーザの電子署名とに基づいて、第2のユーザが前記第1のユーザであるかを検証する検証手段、第1の取引情報及びタイムスタンプに基づいて生成される発掘情報が所定の条件を満たすタイムスタンプを探索する探索手段、端末装置及び検証手段での検証結果が正当であり、探索手段によって所定の条件を満たすタイムスタンプが探索された場合に、第2の取引情報が承認されたことを示す承認情報をネットワークに配信する配信手段、として機能させる。【選択図】図1

Description

本発明は、仮想通貨管理プログラム、及び仮想通貨管理方法等に関する。
近年、円やドルといった現実の貨幣による物品の取引だけでなく、電子マネー等の仮想通貨を用いた商取引が行われている。非特許文献1には、ビットコインと呼ばれる仮想通貨を用いて取引を行う技術について開示されている。
ビットコインによる取引では、ハッシュ関数と公開鍵暗号方式とを用いて、取引データの完全性が担保されている。暗号技術を用いて行われた取引(以下、ビットコインの取引を「トランザクション」とも呼ぶ)は、ビットコインを利用する全端末に対してブロードキャストで配信される。配信されたトランザクションは、マイナー(発掘者)と呼ばれる端末ソフトウェアによって正当性が検証され、承認されると発掘されたブロックにまとめられ、ブロックチェーンと呼ばれる台帳に記録される。
非特許文献1には、ブロックチェーンにブロックを追加する場合に、マイナーにマイニングと呼ばれる処理を行わせることによって、トランザクションの改ざんを防ぐ方法が開示されている。非特許文献1に記載の方法では、マイニングにおいて、マイナーは、それぞれが作成中のブロックに収集した複数のトランザクションと、ブロックチェーンの現在の末尾のブロックのハッシュ値と、任意の値とを格納する。そして、作成中のブロックに対して、ハッシュ関数を適用した場合のハッシュ値が、あらかじめネットワーク内で合意されているターゲット以下の値が得られるまで、格納する任意の値を順に増やしていく。
斉藤賢爾著、「これでわかった ビットコイン [生き残る通貨の条件]」、初版、太郎次郎社エディタス、2014年5月5日、p.87−89
非特許文献1に記載の方法では、マイナーがマイニングを行うには、処理能力の高い端末を用いる必要がある。また、マイニングに用いる端末には、取引の履歴すべてを自端末に保存しておく必要もある。そのため、携帯端末のような処理能力が低い端末や記憶容量の小さな端末では、マイニングに参加できない。
そこで、本発明は、上記事情に鑑み、マイニングに必要な端末の処理能力及び記憶容量を低減することが可能な、仮想通貨管理プログラム、及び仮想通貨管理方法を提供することを目的とするものである。
本発明による仮想通貨管理プログラムは、コンピュータを、第1の仮想通貨を送金する取引における、第1の仮想通貨及び送金先の第1のユーザの識別子を含む第1の取引情報と、第1の仮想通貨の少なくとも一部である第2の仮想通貨を送金する第2の取引における、第2の仮想通貨、送金元の第2のユーザの電子署名、及び送金先の第3のユーザの識別子を含む第2の取引情報と、を記憶する記憶手段、コンピュータとネットワークを介して接続され、取引情報の正当性を検証可能な端末装置に、第2の取引情報の正当性の検証を依頼する検証依頼手段、第1の取引情報に含まれる前記第1のユーザの識別子と、第2の取引情報に含まれる第2のユーザの電子署名とに基づいて、第2のユーザが前記第1のユーザであるかを検証する検証手段、第1の取引情報及びタイムスタンプに基づいて生成される発掘情報が所定の条件を満たすタイムスタンプを探索する探索手段、端末装置及び検証手段での検証結果が正当であり、探索手段によって所定の条件を満たすタイムスタンプが探索された場合に、第2の取引情報が承認されたことを示す承認情報をネットワークに配信する配信手段、として機能させるものを含む。
また、本発明による仮想通貨管理方法は、コンピュータが、第1の仮想通貨を送金する取引における、第1の仮想通貨及び送金先の第1のユーザの識別子を含む第1の取引情報と、第1の仮想通貨の少なくとも一部である第2の仮想通貨を送金する第2の取引における、第2の仮想通貨、送金元の第2のユーザの電子署名、及び送金先の第3のユーザの識別子を含む第2の取引情報と、を記憶する記憶ステップと、コンピュータとネットワークを介して接続され、取引情報の正当性を検証可能な端末装置に、第2の取引情報の正当性の検証を依頼する検証依頼ステップと、第1の取引情報に含まれる第1のユーザの識別子と、第2の取引情報に含まれる第2のユーザの電子署名とに基づいて、第2のユーザが第1のユーザであるかを検証する検証ステップと、第1の取引情報及びタイムスタンプに基づいて生成される発掘情報が所定の条件を満たすタイムスタンプを探索する探索ステップと、端末装置及び検証ステップでの検証結果が正当であり、探索ステップによって所定の条件を満たすタイムスタンプが探索された場合に、第2の取引情報が承認されたことを示す承認情報をネットワークに配信する配信ステップと、を実行する方法を含む。
本発明のプログラムは、CD−ROM等の光学ディスク、磁気ディスク、半導体メモリなどの各種の記録媒体を通じて、又は通信ネットワークなどを介してダウンロードすることにより、コンピュータにインストール又はロードすることができる。
また、本明細書等において、「部」とは、単に物理的構成を意味するものではなく、その構成が有する機能をソフトウェアによって実現する場合も含む。また、1つの構成が有する機能が2つ以上の物理的構成により実現されても、2つ以上の構成の機能が1つの物理的構成により実現されてもよい。
本発明によれば、マイニングに必要な端末の処理能力及び記憶容量を低減することが可能な、仮想通貨管理プログラム、及び仮想通貨管理方法を提供することができる。
本発明の実施形態における仮想通貨システムの構成図である。 本発明の実施形態におけるクライアント端末の機能ブロックの一例を示す図である。 本発明の実施形態におけるブロックの構造の一例を模式的に示す図である。 本発明の実施形態における仮想通貨の、経過時間と減価額との対応関係の一例を示す図である。 本発明の実施形態におけるトランザクションの一例を示す図である。 本発明の実施形態におけるクライアント端末の機能ブロックの一例を示す図である。 本発明の実施形態における携帯端末の検証処理の流れの一例を示す図である。 本発明の実施形態における携帯端末の発掘処理の流れの一例を示す図である。 本発明の実施形態におけるマイニング処理の流れの一例を示す図である。 本発明の実施形態における端末のハードウェア構成の一例を示す図である。
[第1の実施形態]
以下、本発明の実施の形態の1つについて詳細に説明する。なお、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。また、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。さらに、当業者であれば、以下に述べる各要素を均等なものに置換した実施の形態を採用することが可能であり、かかる実施の形態も本発明の範囲に含まれる。またさらに、必要に応じて示す上下左右等の位置関係は、特に断らない限り、図示の表示に基づくものとする。さらにまた、図面における各種の寸法比率は、その図示の比率に限定されるものではない。
<1.システム構成の概要>
図1は、仮想通貨システム10の構成の一例を示している。図1に示すように、仮想通貨システム10は、本発明に係る仮想通貨管理プログラムをインストールした、複数のクライアント端末同士が互いに通信を行う、P2Pの構成となっている。図1の例では、仮想通貨を用いて取引を行うユーザのクライアント端末を端末100A〜C(以下、端末100A〜Cをまとめて「端末100」とも呼ぶ。)、トランザクションの検証や承認を行うユーザのクライアント端末を、携帯端末200、ノード300、及び管理ノード400として説明する。本実施形態において、携帯端末200は、ノード300及び管理ノード400と比較して、記憶容量が小さく処理能力の低い端末である。
端末100、携帯端末200、ノード300、及び管理ノード400は、インターネットや専用線等のネットワークNに接続されたコンピュータである。具体的には、端末100として、例えば携帯電話やスマートフォン、PC(Personal Computer)、PDA(Personal Digital Assistants)、タブレット、ウェアラブル(Wearable)端末等が挙げられる。また、携帯端末200として、例えば携帯電話やスマートフォン、PDA、タブレット、ウェアラブル端末等が挙げられる。さらに、ノード300又は管理ノード400として、例えばPCやサーバ装置等が挙げられる。ネットワークNに有線又は無線で接続された端末100、携帯端末200、ノード300、及び管理ノード400が、互いに通信可能に設定されることにより、仮想通貨システム10を構成する。なお、本実施形態において、仮想通貨システム10は、P2P型のシステムであるとして説明するが、これに限定されるものではない。例えば、仮想通貨システム10は、クラウドコンピューティング形式のシステムとして構成されてもよい。この場合、ユーザは、仮想通貨システム10のコンピュータ処理をネットワーク経由でサービスとして利用する。また、仮想通貨システム10は、ASP(Application Service Provider)のサーバを含むシステムとして構成されてもよい。
<2.仮想通貨の概要>
まず、仮想通貨システム10によって提供される仮想通貨(以下、仮想通貨システム10によって提供される仮想通貨を「オーブ」とも呼ぶ。)の概要について説明する。オーブは既存のビットコインと同様に、インターネットを用いたP2Pデジタル通貨であり、公開鍵暗号方式とハッシュ関数を用いたデジタル署名によって取引情報の完全性が担保されている。また、オーブの取引に関する情報や履歴は、仮想通貨システム10全体で分散して管理される。なお、本実施形態においてオーブは最小単位が「1Orb」である通貨として説明する。
オーブを利用するユーザは、まず仮想通貨管理プログラムをインストールする必要がある。仮想通貨管理プログラムには、ウォレットツールとマイニングツールとが含まれていることが望ましい。ウォレットツールは、オーブの購入やオーブを用いた取引を行うために必要なツールである。一方、マイニングツールは、オーブを用いた取引の完全性や整合性を検証し、取引を承認するために必要なツールである。
ウォレットツールをクライアント端末にインストールしたユーザは、ネットワークNに一意なID(識別子)を取得する必要がある。IDは、例えば、ユーザのメールアドレスと任意の単語とを組み合わせた文字列のハッシュ値である。生成したIDは、オーブの購入や送金に利用する公開鍵と紐づけられて管理される。IDを取得したユーザは、オーブを購入することができるようになる。「オーブを購入する」とは、仮想通貨システム10に新たなオーブを発生させることをいう。具体的には、ユーザによって、任意の金額の現実の通貨からオーブへと換金されることを指す。
さらにユーザは、購入したオーブを他のユーザに送金することができる。「オーブを送金する」とは、元の所有者から新たな所有者へとオーブの受け渡しが行われることをいう。
オーブの購入や送金に関するデータ(以下、オーブの購入や送金に関するデータを「トランザクション」とも呼ぶ。特に、オーブの購入に関するデータを「通貨発生トランザクション」とも呼ぶ。)は、後述するブロックチェーンと呼ばれる構造体によって管理される。ブロックチェーンは、ブロックと呼ばれるデータが時系列に並べられたものであり、オーブの送金を記した台帳としての役割を有している。マイニングツールをウォレットツールに加えてクライアント端末にインストールしたユーザ(以下、ウォレットツールのみをインストールしたユーザを単に「ユーザ」と呼び、ウォレットツールとマイニングツールとをインストールしたユーザを「マイナー」と呼ぶ。)は、トランザクションの正当性を検証し、正当なトランザクションを承認することができる。さらにマイナーは、承認済みのトランザクションから構成されるブロックを生成(以下、ブロックを生成することを「ブロックを発掘する」とも呼ぶ。)して、ブロックチェーンにつなぐことができる。
なお、オーブは、購入時から時間の経過とともに、減価するように構成されている。そのため、オーブを購入したユーザは、オーブが減価によって消滅してしまう前に消費する必要がある。オーブが減価するように構成されることで、ユーザは投資の対象とせず、結果として、オーブの価値を安定させることが可能になる。
<3.機能構成>
次に、図2を参照して、本実施形態に係る仮想通貨管理プログラムをインストールした端末100、携帯端末200、ノード300、及び管理ノード400の機能構成について説明する。
<3−1.ウォレットツールの機能>
図2は、ウォレットツールをインストールした、端末100の機能ブロック図の一例を示す図である。ウォレットツールをインストールした端末100には、トランザクションDB131と、ブロック情報DB132と、公開鍵情報DB133と、口座情報DB134と、送金受付部101と、インプットデータ作成部102と、アウトプットデータ作成部103と、トランザクション配信部104とが構築されることが望ましい。
トランザクション情報DB131には、端末100、携帯端末200、ノード300、又は管理ノード400が、ネットワークNにブロードキャストで配信したトランザクションの履歴が保存されている。1つのトランザクションには、通常、インプットデータ、アウトプットデータ、トランザクションが発生した時刻、トランザクションが後述するブロックチェーンに追加された時刻が含まれることが望ましい。なお、オーブの購入時に配信される通貨発生トランザクションには、インプットデータは含まれないとしてもよい。
アウトプットデータには、送金されるオーブの金額と、送金先のユーザのIDとが含まれていることが望ましい。なお、アウトプットデータは、送金先のユーザのIDの代わりに、送金先のユーザを特定できる情報を含めばよく、例えば、送金先ユーザの公開鍵を含んでもよい。
インプットデータには、少なくとも、ポインタと、電子署名とが含まれている。ポインタは、今回送金するオーブを送金元ユーザが受け取ったトランザクションのアウトプットデータへのポインタである。また電子署名は、後述する電子署名作成処理によって作成される送金元ユーザの電子署名である。
オーブを用いた取引では、過去に受け取った、又は購入したオーブを送金対象として指定し、別のユーザへと送金する。そのため、送金を行う際には、過去のトランザクションから、送金元ユーザが送金先ユーザとなったアウトプットデータを今回の送金対象として指定する必要がある。このように、オーブのトランザクションは、インプットデータが1つ前のアウトプットデータへのポインタを有する構造をしている。その結果、すべてのトランザクションは、通貨発生トランザクションまでポインタを介して数珠つなぎとなるデータ構造となっている。
ブロック情報DB132には、生成されたブロックに関する情報が保存されている。ブロックには、マイナーが正当性を検証して承認した複数のトランザクションが格納されている。オーブの購入や送金は、ブロックチェーンと呼ばれる構造体によって管理されている。ブロックチェーンは、ブロックと呼ばれるデータが時系列に並べられたものである。ブロックチェーンは仮想通貨システム10の全端末が共有するが、ユーザはブロックチェーンのうち自己が関心をもつ部分のみを所持していればよい。マイナーはブロックチェーンの全体を所持していることが望ましい。
図3は、ブロックのデータ構造の一例を模式的に示す図である。
図3の例では、ブロックB01には、ブロックヘッダーBH01、及び複数のトランザクションT11、T12が含まれている。さらに、ブロックヘッダーBH01には、サブヘッダーSH01及びブロックB01に含まれる複数のトランザクションT01、T02のダイジェストが含まれている。ダイジェストは、電子データの要約である。例えば、電子データを所定のハッシュ関数(例えば、SHA−256等)に代入することにより得られるハッシュ値、電子データのダイジェストとすることができる。
サブヘッダーSH01は、ブロックヘッダーBH01のヘッダーである。サブヘッダーSH01には、ブロックB01の1つ前のブロックのブロックヘッダーのダイジェストと、ブロックB01を発掘したユーザのID、及びタイムスタンプが含まれている。
また、ブロック情報DB132には、後述するチェックポイントが保存されていてもよい。チェックポイントは、ブロックの一種である。チェックポイントは、前回挿入されたチェックポイントから今回挿入するチェックポイントの間にブロックチェーンにつながれるブロックを確定させ、ブロック内のトランザクションを改ざんできなくする。チェックポイントは、例えば、ブロックと同様に、承認済みのトランザクションを含む。なお、チェックポイントは、トランザクションを含まない空のブロックとしてもよい。
公開鍵情報DB133には、仮想通貨システム10に含まれる全ユーザのIDと、公開鍵とが対応付けられて保存されている。なお、一つのIDに複数の公開鍵が対応づけられているとしてもよい。
口座情報DB134には、端末100を利用するユーザの秘密鍵が保存されている。
送金受付部101は、ユーザから送金先のユーザと送金する金額との指定を受け付ける。送金受付部101は、送金受付画面を端末100のディスプレイに提示することが望ましい。また、送金受付部101は通貨購入画面をディスプレイに提示して、ユーザからオーブの購入を受け付けてもよい。
インプットデータ作成部102は、送金受付部101が受け付けた送金金額に応じてインプットデータを作成する。インプットデータ作成部102は、インプットデータを作成するために、以下の4つの処理を行う。
・送金対象検索処理
・減価額計算処理
・ポインタ指定処理
・電子署名作成処理
(送金対象検索処理)
インプットデータ作成部102は、送金対象検索処理として、まず、送金対象として用いることができるアウトプットデータを有するトランザクションをトランザクション情報DB131から検索することができる。例えば、インプットデータ作成部102は、トランザクション情報DB131から、送金元ユーザのIDが、送金先IDとして指定されているアウトプットを有するトランザクションであって、他のトランザクションのインプットデータのポインタとして指定されていないアウトプットデータを有するトランザクションを抽出することが望ましい。
(減価額計算処理)
次に、インプットデータ作成部102は、抽出したトランザクションのアウトプットデータに含まれる送金金額を参照し、現在までに減額した金額(減価額)を計算する。まず、インプットデータ作成部102は、抽出したトランザクションのインプットデータに含まれるポインタを順次参照していき、通貨発生トランザクションを抽出する。そして、インプットデータ作成部102は、通貨発生トランザクションのトランザクション発生時刻を参照し、現在時刻との差分に基づいて減価率を計算する。
図4は、時間の経過とオーブの残高率との対応関係の一例を示す図である。図4の例では、オーブが購入されてから10日経過するごとに現在の金額から10%減価する様子を示している。オーブの減価率が図4の表のように定義されている場合には、インプットデータ作成部102は、例えば、購入から22日経過したオーブに対しては、現在の残高は購入時の残高の81%であり、減価率は19%であると算出する。なお、オーブの減価の態様は図4の例に限定されず、例えば、時間の経過ごとに一定金額が減額されてもよいし、時間の経過につれて減価率が変化してもよい。
インプットデータ作成部102は、抽出したトランザクションのアウトプットデータの金額と計算した現在の減価率を用いて、当該金額の減価額を計算することができる。
(ポインタ指定処理)
次に、インプットデータ作成部102は、送金受付部101が受け付けた送金金額に基づいて、抽出したトランザクションの中から、ポインタを指定するのに適したアウトプットデータを選択する。具体的には、インプットデータ作成部102は、抽出したアウトプットデータの金額と、計算した減価率とに基づいて、各アウトプットデータの残高を計算する。そして、計算した残高が、送金受付部101が受け付けた送金金額を上回っているアウトプットデータへのポインタを、今回のインプットデータとして指定することができる。
なお、計算した残高が、送金受付部101が受け付けた送金金額を上回っているアウトプットデータが存在しない場合には、本実施形態では、インプットデータ作成部102は、送金金額をいくつかの金額へ分割したうえで、再度、計算した残高が分割した金額を上回っているアウトプットデータを検索することが望ましい。なお、これに限定されず、今回の送金金額よりも大きな金額のアウトプットデータを有するトランザクションが存在しない場合には、インプットデータ作成部102は、複数のアウトプットデータのポインタを指定するために複数のインプットデータを作成するとしてもよい。
インプットデータ作成部102は、送金受付部101が複数のユーザへの送金を受け付けた場合には、受け付けた送金金額の合計金額に基づいてポインタを選択することが望ましい。
(電子署名作成処理)
さらに、インプットデータ作成部102は、送金元ユーザの電子署名を作成する。例えば、インプットデータ作成部102は、電子署名を格納する部分を除く、作成中のトランザクションのデータ全体から、ハッシュ関数を使ってダイジェストを生成する。そして、インプットデータ作成部102は、生成したダイジェストを送金元ユーザの秘密鍵で暗号化することで電子署名を作成することができる。
図2に戻り、各機能ブロックの機能の続きについて説明する。
アウトプットデータ作成部103は、送金受付部101が受け付けた、送金先のユーザと送金する金額とに基づいて、アウトプットデータを作成する。例えば、アウトプットデータ作成部103は、公開鍵情報DB133を参照して、送信先ユーザに対応するIDをアウトプットデータに指定することができる。
また、アウトプットデータ作成部103は、インプットデータ作成部102がポインタを指定したアウトプットデータの残高から、今回の送金金額の合計金額を減算し、差額を、送金元ユーザ宛の送金としてアウトプットデータを作成することが望ましい。
なお、アウトプットデータ作成部103は、送金受付部101が、ユーザからオーブの購入を受け付けた場合には、オーブの購入を入力したユーザを送金先ユーザとして、アウトプットデータを作成することが望ましい。
トランザクション配信部104は、今回の送金に関するトランザクションを作成し、ネットワークNへと配信する。トランザクション配信部104は、以下の2種類のトランザクションを作成する処理を行う。
・通常トランザクション(以下、通常トランザクションのことを単に「トランザクション」とも呼ぶ。)
・通貨発生トランザクション
(通常トランザクション)
通常トランザクションは、オーブの送金が行われた場合に、トランザクション配信部104が配信するトランザクションである。通常トランザクションには、インプットデータと、アウトプットデータと、トランザクションが発生した時刻と、トランザクションがブロックチェーンに追加された時刻とが含まれる。
トランザクション配信部104は、インプットデータ作成部102が作成したインプットデータと、アウトプットデータ作成部103が作成したアウトプットデータと、を通常トランザクションに格納し、さらに現在時刻をトランザクション発生時刻に指定して、通常トランザクションをネットワークNへブロードキャストで配信することができる。
(通貨発生トランザクション)
通貨発生トランザクションは、オーブが購入された場合にトランザクション配信部104が配信するトランザクションである。すべてのトランザクションは、インプットデータのポインタを参照していくと通貨発生トランザクションに収束する。
通貨発生トランザクションには、インプットデータは含まれないことが望ましい。トランザクション配信部104は、アウトプットデータ作成部103が作成した、オーブの購入を入力したユーザを送金先ユーザとするアウトプットデータを通貨発生トランザクションに格納し、さらに現在時刻をトランザクション発生時刻に指定して、通貨発生トランザクションをネットワークNにブロードキャストで配信することができる。
<3−2.オーブ送金処理フロー>
次に図5を用いて、ユーザAがユーザBへオーブを送金する際の処理フローについて説明する。図5は、ユーザAが端末100Aを用いて、購入したオーブをユーザBへ送金する場合のトランザクションを模式的に示した図である。
この例では、オーブの送金元ユーザであるユーザAが利用する端末を端末100A、オーブの送金先ユーザであるユーザBが利用する端末をそれぞれ端末100Bとして説明する。また、図5の例においても、経過時間とオーブの減価率とは図4に示した対応関係にあるとして説明する。
図5において、ブロックB02は、ブロックチェーンの末尾のブロックであり、ブロックB01はブロックB02の1つ前のブロックであるとする。また、トランザクションT11は通貨発生トランザクションであり、トランザクションT12は、ユーザAからユーザBへのオーブの送金に関する通常トランザクションである。さらに、O11〜O13はそれぞれアウトプットデータを表し、I11はインプットデータを表している。
まず、ユーザAがオーブを10000Orb購入するとする。この場合、送金受付部101によって、通貨購入画面が端末100Aのディスプレイに提示される。ユーザAは提示された通貨購入画面から、購入するオーブの金額を10000Orbとして指定する。このとき、アウトプットデータ作成部103は、送金金額を10000Orb、送金先をとしてユーザAのIDを指定してアウトプットデータO11を作成する。
次に、トランザクション配信部104が、アウトプットデータO11をトランザクションT11に格納し、現在時刻をトランザクション発生時刻に指定して、通貨発生トランザクションを作成し、ネットワークNに配信する。配信した通貨発生トランザクションが、後述するマイナーの発掘処理によって、承認され、ブロックチェーンにつながれると、ユーザAは購入したオーブを取引に使えるようになる。
ユーザAは、例えば、オーブの購入から11日後に、購入したオーブの一部(7000Orb)をユーザBに対して送金するとする。この場合、インプットデータ作成部102が、まず送金対象検索処理を実行し、これまでにユーザAが送金先ユーザとして指定されているアウトプットデータを有するトランザクションを検索する。図5の例では、該当するトランザクションがトランザクションT11だけであるため、インプットデータ作成部102はトランザクションT11を抽出する。
次に、インプットデータ作成部102は、減価額計算処理を実行し、アウトプットデータO11の減価額を計算する。今回の送金は、オーブの購入から11日後に行われているため、減価率は10%である。そのため、インプットデータ作成部102は、アウトプットデータO11の減価額は、1000Orbであると算出する。インプットデータ作成部102は、算出した減価額(1000Orb)をアウトプットデータO11の送金金額(10000Orb)から減算し、アウトプットデータO11の残高を9000Orbであると算出する。これは、今回の送金金額である7000Orbを上回っているため、インプットデータ作成部102は、アウトプットデータO11のポインタを、今回のインプットデータI11に指定する。さらにインプットデータ作成部102は、電子署名作成処理を実行する。具体的には、電子署名を格納する部分を除く、作成中のトランザクションのデータ全体にハッシュ関数を用いてダイジェストを作成する。そして、口座情報DB134に保存されたユーザAの秘密鍵を用いてインプットデータ作成部102は、生成したダイジェストを暗号化して電子署名を作成する。
次に、アウトプットデータ作成部103は、送金金額を7000Orb、送金先としてユーザBのIDを指定して、アウトプットデータO12を作成する。さらに、アウトプットデータ作成部103は、アウトプットデータO11の残高9000Orbから今回のアウトプットデータO12の送金金額である7000Orbを減算し、差分である2000Orbを、ユーザAのIDを送金先とするアウトプットデータO13を作成する。
トランザクション配信部104は、インプットデータI11と、アウトプットデータO12と、アウトプットデータO13とをトランザクションT12に格納し、現在時刻をトランザクション発生時刻に指定して、トランザクションT12を配信する。
なお、上述の例で、送金金額が例えば9500Orbである場合、送金金額がアウトプットデータO11の残高である9000Orbを上回っているため、インプットデータ作成部102は、アウトプットデータO11のポインタを指定することができない。この場合、インプットデータ作成部102は、送金金額を例えば9000Orbと500Orbとの2つの金額に分割することができる。このとき、インプットデータ作成部102は、それぞれの送金金額に対応するインプットデータを作成し、ポインタで参照するアウトプットデータを検索することが望ましい。さらにこの場合、アウトプットデータ作成部103は、送金金額が9000Orbのアウトプットデータをと、500Orbのアウトプットデータとをそれぞれ作成するとしてもよい。
このように本実施形態に係るウォレットツールが、オーブが時間の経過とともに減額するように、端末100を機能させることで、オーブは投資の対象とされにくくなり、通貨価値の変動を抑えることが可能となる。
<3−3.マイニングツールの機能>
本実施形態では、一例として、マイニングツールは、モバイル版と、通常版と、管理ノード版とがあるものとして説明する。なお、これに限定されず、マイニングツールは、1種類のみとして、インストール後に端末の種類や権限に応じて適切な機能を使い分けるとしてもよい。
(A)モバイル版
図6(A)は、ウォレットツールに加えて、モバイル版のマイニングツールがインストールされた、携帯端末200の機能ブロック図の一例を示す図である。マイニングツール(モバイル版)がインストールされた携帯端末200には、上述したウォレットツールによって作成される機能ブロックに加えて、検証部201と、発掘部202と、報酬計算部203とが構築されることが望ましい。
なお、モバイル版のマイニングツールがインストールされた場合には、トランザクション情報DB131、及びブロック情報DB132には、取引に関する全データは保存されていないことが望ましい。例えば、携帯端末200には、後述する検証部201の検証対象となるトランザクションに関するデータのみが、保存されてもよい。また、携帯端末200のブロック情報DB132には、直近の数個分のブロックに関するデータのみが保存されてもよい。さらに、モバイル版のマイニングツールがインストールされた場合には、公開鍵情報DB133には、ネットワークN内の全ユーザのIDと公開鍵は保存されなくてもよい。例えば、ネットワークN内に膨大な数のユーザが接続している場合には、携帯端末200には、一部のユーザのIDと公開鍵とが保存されていればよい。
検証部201は、受信したトランザクションの正当性を検証して承認するために、以下の3つの処理を実行する。
・ID検証処理
・完全性検証処理
・整合性問合せ処理
検証部201は上記2つの処理の結果、完全性と整合性とが認められたトランザクションを正当なトランザクションであると承認することができる。
(ID検証処理)
検証部201は、ID検証処理として、今回送金を行った送金元ユーザが、送金したオーブの正当な所有者であったかを、IDを検証することによって確認する。例えば、検証部201は、受信した送金トランザクションのインプットデータに含まれる電子署名と、ポインタが参照するアウトプットデータに含まれるIDとが、同一のユーザのものであるか否かを検証する。
具体的には、まず、検証部201は、受信した送金トランザクションのインプットデータから送金元ユーザの電子署名を取得する。また、検証部201は、受信した送金トランザクションのインプットデータに含まれるポインタが参照するアウトプットデータに格納されている、IDを取得する。
次に、検証部201は、ノード300に問合せを行い、取得したIDに対応する公開鍵を取得する。さらに、検証部201は、取得した公開鍵で、送金トランザクションに含まれていた電子署名を復号できるかを検証する。復号できた場合には、検証部201は、送金を行ったユーザが、送金したオーブの正しい所有者であったと認証する。
このように、本実施形態に係る仮想通貨管理プログラムによれば、送金元ユーザの認証をIDによって行う。これによって、ユーザが公開鍵を更新した場合でも、更新前と同じユーザであると識別することができる。
(完全性検証処理)
検証部201は、完全性検証処理として、受信したトランザクションに対して改ざんが行われていないかを検証する。具体的には、検証部201は、まず公開鍵情報DB133を参照して、受信したトランザクションのインプットデータに含まれる電子署名を、もとの所有者の公開鍵で復号して、インプットデータ作成部102が作成したダイジェストを取り出す。さらに検証部201は、受信したトランザクションのデータ全体のうち電子署名を格納する部分を除いたデータから、ハッシュ関数を用いてダイジェストを生成する。検証部201は、復号したダイジェストと生成したダイジェストとが一致するか否かを検証し、一致する場合にはトランザクションデータの完全性を承認することができる。検証部201は、トランザクションに含まれるすべてのインプットデータの電子署名を検証できた場合に、当該トランザクションの完全性を承認することができる。
(整合性問合せ処理)
検証部201は、整合性問合せ処理として、受信したトランザクションが有するインプットデータが、ブロックチェーン全体として整合性がとれているか否かをノード300に問い合わせる。例えば、検証部201は、インプットデータの残高が、アウトプットデータの金額より上回っているかをノード300に問合せる。
また、検証部201は、整合性問合せ処理として、検証対象のトランザクションのインプットデータと同じアウトプットデータを参照しているトランザクションがすでに承認されていないかをノード300に問い合わせることができる。
検証部201は、ノード300に問い合わせた結果、トランザクションに含まれるすべてのインプットデータの整合性が承認できた場合に、当該トランザクションの整合性を承認することができる。
図7は、検証部201の、検証処理の流れを示すフローチャートである。
まず、検証部201は、トランザクション情報DB131を参照し、携帯端末200がブロードキャストで受信したトランザクションから、未検証のインプットデータを有するトランザクションを検索する(S01)。未検証のインプットデータを有するトランザクションを発見した場合(S01:YES)には、当該未検証のトランザクションに含まれる全てのインプットデータを、ノード300へ問合せる対象のインプットデータとする(S11)。
他に未検証のインプットデータを有するトランザクションがない場合(S01:NO)には、検証部201は、問合せ対象のインプットデータについて、ノード300に検証を依頼する(S02)。後述するノード300の検証処理によって、不適切なインプットデータが見つかった場合(S03:YES)には、検証部201は、当該不適切なインプットデータを含むトランザクションを、後述する発掘部202が生成するブロックから除外する(S12)。
次に、検証部201は、ノード300によって整合性が検証されたトランザクションに対して、ID検証処理及び完全性検証処理を実施する(S04、S05)。ID検証処理及び完全性検証処理の結果、適切であることが検証できなかったトランザクション(S05:NO)を、検証部201は、発掘部202が生成するブロックから除外する(S06)。全てのトランザクションについて、ID検証処理及び完全性検証処理が完了するまで、検証部201は、S04〜S06の処理を繰り返し実行する。
発掘部202は、正当なトランザクションを格納するブロックを生成するために、ブロック発掘の処理を行う。具体的には、発掘部202は、ブロックを生成する場合に、1つ前のブロックヘッダーのダイジェストと、自分の識別子と、タイムスタンプとを格納してサブヘッダーを作成する。
発掘部202は、作成したサブヘッダーのダイジェストを、ハッシュ関数を用いて計算する。発掘部202は、ダイジェストの値が、所定の値(以下、「ターゲット値」とも呼ぶ。)以下になるまで、タイムスタンプを変更して繰り返し計算を行う。適切なタイムスタンプの値を発見し、当該タイムスタンプをブロックに格納すると、発掘部202は、当該ブロックを、ブロックチェーンの末尾につなぐことができる。
ターゲット値は、システム全体でのオーブの流通量と、携帯端末200のユーザが保有するオーブの量に基づいて設定される。
ターゲット値を求めるために、発掘部202は、ブロック情報DB132を参照して、システム全体でのオーブの流通量と、携帯端末200のユーザが保有するオーブの量を取得する。携帯端末200が、ブロック情報DB132に一部の取引の情報しか保存していない場合には、発掘部202は、オーブの流通量を例えば管理ノード400やノード300に問い合わせてもよい。発掘部202は、取得したオーブの流通量と、自ユーザの保有量とに基づいて、マイニング処理におけるターゲット値を算出する。例えば、発掘部202は、ターゲットの値を以下の式1に基づいて設定することができる。
Figure 2016218633
上述の式1で求められる、ターゲット値は、比較的大きい値となる。そのため、携帯端末200のように処理能力が低い端末であっても、比較的容易にブロックを発掘することができる。
図8は、発掘部202の発掘処理の流れを示すフローチャートである。
発掘部202は、1つ前のブロックヘッダーのダイジェストと、自ユーザの識別子とを生成するブロックのサブヘッダーに格納する(S21)。次に、発掘部202は、システム全体のオーブの流通量と、自分のオーブの保有量とに基づいて、ターゲット値を設定する(S22)。発掘部202は、サブヘッダーに格納するタイムスタンプを繰り返し変更して、サブヘッダーのダイジェストがターゲット値以下になるタイムスタンプを探索する(S23、S24)。サブヘッダーのダイジェストがターゲット値以下になるタイムスタンプが発見されると(S24:YES)、発掘部202は、発見したタイムスタンプをサブヘッダーに格納し、ブロックを生成する。
報酬計算部203は、ブロックに格納した正当なトランザクションの減価額に基づいて、マイナーの報酬を計算する。例えば、報酬計算部203は、インプットデータのポインタとして指定されたアウトプットデータの金額の、減価額の合計をマイナーの報酬として計算してもよい。具体的には、報酬計算部203は、インプットデータに含まれるポインタを順次参照していき、通貨発生トランザクションを抽出する。そして、報酬計算部203は、通貨発生トランザクションのトランザクション発生時刻を参照し、現在時刻との差分に基づいて減価率を計算する。この処理は、インプットデータ作成部102の減価額計算処理と同様の処理であってもよい。報酬計算部203は、発掘部202が生成したブロックに格納される各トランザクションの減価額の合計をマイナーの報酬として計算することができる。
さらに報酬計算部203は、送金金額を計算した報酬の金額、送信先を携帯端末200を利用するマイナーに指定して、アウトプットデータを作成して、当該アウトプットデータに基づいて通貨発生トランザクションを作成することが望ましい。報酬計算部203は作成した通貨発生トランザクションを、ネットワークNにブロードキャストで配信する。この通貨発生トランザクションは生成するブロックに含めることでブロードキャストすることが望ましい。この通貨発生トランザクションがネットワークNに接続しているいずれかのマイナーの端末によって承認されることで、携帯端末200を利用するマイナーは、報酬を受け取ることができる。
(B)通常版
図6(B)は、ウォレットツールに加えて、通常版のマイニングツールがインストールされた、ノード300の機能ブロック図の一例を示す図である。マイニングツールがインストールされたノード300には、上述したウォレットツールによって作成される機能ブロックに加えて、検証部301と、上述した発掘部202と、報酬計算部203とが構築されることが望ましい。
検証部301は、受信したトランザクションの正当性を検証するために、以下の3つの処理を実行する。
・ID検証処理
・完全性検証処理
・整合性検証処理
検証部301は上記2つの検証処理の結果、完全性と整合性とが認められたトランザクションを正当なトランザクションであると承認することができる。
(ID検証処理)
検証部301が行うID検証処理は、検証部201のID検証処理と同様である。
(完全性検証処理)
検証部301が行う完全性検証処理は、検証部201の完全性検証処理と同様である。
(整合性検証処理)
検証部301は、整合性検証処理として、受信したトランザクションがブロックチェーン全体として整合性がとれた取引であるか否かを検証する。具体的には、検証部301は、上述した減価額計算処理と同様の処理を実行して、インプットデータの残高を計算して、計算した残高がアウトプットデータの金額より上回っているか検証する。
また、検証部301は、整合性検証処理として、検証対象のトランザクションのインプットデータと同じアウトプットデータを参照しているトランザクションがすでに承認されていないかを確認して二重取引の検証を行うとしてもよい。具体的には、検証部301は、ブロック情報DB132を参照して、ブロックチェーンにつながれたブロックに含まれるトランザクションのインプットデータのポインタが参照するアウトプットデータを抽出する。さらに検証部301は、今回の検証対象のトランザクションのインプットデータとして指定されたポインタが参照するアウトプットデータが、すでに参照されているものか否かを検証する。今回の検証対象のトランザクションのインプットデータとして指定されたポインタが参照するアウトプットデータが、過去のトランザクションのインプットデータからポインタを指定されていない場合、検証部301は、今回の検証対象のトランザクションのインプットデータの整合性を承認することができる。
検証部301は、トランザクションに含まれるすべてのインプットデータの整合性が承認できた場合に、当該トランザクションの整合性を承認することができる。
検証部301は、整合性検証処理を、他のノードや携帯端末200からの問い合わせに応じて行うとしてもよい。さらに、検証部301は、携帯端末200からの問い合わせに応じて、指定されたIDに対応する公開鍵を、ノード300の公開鍵情報DB133から抽出することができる。検証部301は、抽出した公開鍵を、携帯端末200に送信することができる。
(C)管理ノード版
図6(C)は、ウォレットツールに加えて、管理ノード版のマイニングツールがインストールされた、管理ノード400の機能ブロック図の一例を示す図である。管理ノード版のマイニングツールがインストールされた管理ノード400には、上述したウォレットツールによって作成される機能ブロックに加えて、チェックポイント生成部401と、上述した検証部301と、発掘部202と、報酬計算部203とが構築されることが望ましい。
チェックポイント生成部401は、チェックポイントを生成して、ブロックチェーンに挿入する。
チェックポイント生成部401は、前回挿入されたチェックポイントから、今回挿入するチェックポイントの間につながれる、すべてのブロックに含まれるトランザクションを検証できる。例えば、チェックポイント生成部401は、これらのトランザクションに対して、上述した検証部301のID検証処理と、完全性検証処理と、整合性検証処理とを行うことができる。
チェックポイント生成部401は、枝分かれしたブロックチェーンが存在した場合には、検証の結果、適切であると判断したブロックチェーンの最後尾にチェックポイントを挿入する。これによって、不適切なブロックチェーンは切断されることになる。
チェックポイント生成部401は、ブロックチェーンの最後のブロックが生成されてから、例えば、60秒経過してもブロックが生成されなかった場合、強制的にチェックポイントを挿入することができる。さらに、チェックポイント生成部401は、最後のチェックポイント挿入から1時間経過した場合にも、強制的にチェックポイントを挿入する。これによって、トランザクションがいつまでも承認されないという事態を防ぐことが可能になる。
<3−4.マイニング処理フロー>
図9を参照して、モバイル版のマイニングツールがインストールされた携帯端末200がブロックの発掘を行う場合の、仮想通貨システムの処理フローについて説明する。
まず、携帯端末200の発掘部202は、ターゲット値を設定する。具体的には、システム内のオーブの流通量と携帯端末200の所有者の、オーブの保有量とに基づいて、ターゲット値を設定することができる。ターゲット値を設定すると、携帯端末200の発掘部202は、ターゲット値以下となるタイムスタンプを探索する(S501)。
適切なタイムスタンプを発見すると、次に、携帯端末200の検証部201は、受信したトランザクションのインプットデータの正当性をノード300に問い合わせる(S502)。ノード300の検証部301は、問合せに応じて、インプットデータの正当性の検証を行う(S503)。
携帯端末200は、検証結果をノード300から受信する(S504)。このとき、検証の結果、不適切であるとされたインプットデータを有するトランザクションは、生成されるブロックから除外される。携帯端末200は、残りのトランザクションのうち、IDと完全性の検証ができたトランザクションについて、正当であると承認し(S505)、ブロックに格納する。携帯端末200は、生成したブロックをブロードキャストでネットワークNに配信する(S506)。
ノード300及び管理ノード400は、受信したブロックを、各々のブロック情報DB132に保存する(S507、S508)。
ブロックが生成されてから60秒間、次のブロックが生成されない場合、または、最後にチェックポイントが生成されてから1時間経過した場合には、管理ノード400のチェックポイント生成部401は、チェックポイント生成し、配信する(S511)。
配信されたチェックポイントは、携帯端末200及びノード300のブロック情報DB132に保存される(S512、S513)。
このように、本実施形態に係る仮想通貨システムによれば、携帯端末200は、トランザクションの検証の一部を、ノード300に代行してもらうことができる。これによって、処理能力や記憶容量が小さな端末であっても、ブロックの発掘に参加することができる。さらに、本実施形態に係る仮想通貨システムによれば、管理ノード400は、定期的にチェックポイントを生成する。これによって、取引データの改ざんを防ぐことができ、取引の安全性を担保することが可能になる。
<4 ハードウェア構成>
以下、図10を参照して、上述してきた端末100、携帯端末200、ノード300、及び管理ノード400をコンピュータ800により実現する場合のハードウェア構成の一例を説明する。なお、それぞれの装置の機能は、複数台の装置に分けて実現することもできる。
図10に示すように、コンピュータ800は、プロセッサ801、メモリ803、記憶装置805、入力I/F部807、データI/F部809、通信I/F部811、及び表示装置813を含む。
プロセッサ801は、メモリ803に記憶されているプログラムを実行することによりコンピュータ800における様々な処理を制御する。例えば、端末100の送金受付部101やインプットデータ作成部102、アウトプットデータ作成部103、トランザクション配信部104、携帯端末200、ノード300、管理ノード400の検証部201、301や発掘部202、報酬計算部203などは、メモリ803に一時記憶された上で、主にプロセッサ801上で動作するプログラムとして実現可能である。
メモリ803は、例えばRAM(Random Access Memory)等の記憶媒体である。メモリ803は、プロセッサ801によって実行されるプログラムのプログラムコードや、プログラムの実行時に必要となるデータを一時的に記憶する。
記憶装置805は、例えばハードディスクドライブ(HDD)やフラッシュメモリ等の不揮発性の記憶媒体である。記憶装置805は、オペレーティングシステムや、上記各構成を実現するための各種プログラムを記憶する。この他、記憶装置805は、トランザクション情報DB131や、ブロック情報DB132、公開鍵情報DB133、口座情報DB134を記憶することも可能である。このようなプログラムやデータは、必要に応じてメモリ803にロードされることにより、プロセッサ801から参照される。
入力I/F部807は、ユーザからの入力を受け付けるためのデバイスである。入力I/F部807の具体例としては、キーボードやマウス、タッチパネル、各種センサ、ウェアラブル・デバイス等が挙げられる。入力I/F部807は、例えばUSB(Universal Serial Bus)等のインタフェースを介してコンピュータ800に接続されても良い。
データI/F部809は、コンピュータ800の外部からデータを入力するためのデバイスである。データI/F部809の具体例としては、各種記憶媒体に記憶されているデータを読み取るためのドライブ装置等がある。データI/F部809は、コンピュータ800の外部に設けられることも考えられる。その場合、データI/F部809は、例えばUSB等のインタフェースを介してコンピュータ800へと接続される。
通信I/F部811は、コンピュータ800の外部の装置と有線又は無線により、ネットワークNを介したデータ通信を行うためのデバイスである。通信I/F部811は、コンピュータ800の外部に設けられることも考えられる。その場合、通信I/F部811は、例えばUSB等のインタフェースを介してコンピュータ800に接続される。
表示装置813は、各種情報を表示するためのデバイスである。表示装置813の具体例としては、例えば液晶ディスプレイや有機EL(Electro−Luminescence)ディスプレイ、ウェアラブル・デバイスのディスプレイ等が挙げられる。表示装置813は、コンピュータ800の外部に設けられても良い。その場合、表示装置813は、例えばディスプレイケーブル等を介してコンピュータ800に接続される。
[その他の実施形態]
以上、本発明の実施形態について述べたが、本発明は既述の実施形態に限定されるものではなく、本発明の技術的思想に基づいて各種の変形及び変更が可能である。
例えば、既述の実施形態において、マイニングツールは、ウォレットツールと合わせてインストールされる構成として説明したが、これに限定されない。例えば、携帯端末200は、ウォレットツールがインストールされずに、マイニングツールがインストールされた構成としてもよい。この場合、携帯端末200には、検証部201、発掘部202、及び報酬計算部203とあわせて、トランザクション情報DB131、ブロック情報DB132、及び公開鍵情報DB133がインストールされることが望ましい。また、既述の実施形態において、仮想通貨は時間の経過とともに減価する構成を例に説明したが、これに限定されず、減価しないものであってもよい。さらに、仮想通貨は電子的に資産として管理や取引されるものであればよく、現実の通貨や株、債券、土地等に対応するものであってもよい。
10 仮想通貨システム
100 端末
101 送金受付部
102 インプットデータ作成部
103 アウトプットデータ作成部
104 トランザクション配信部
131 トランザクション情報DB
132 ブロック情報DB
133 公開鍵情報DB
134 口座情報DB
200 携帯端末
201 検証部
202 発掘部
203 報酬計算部
300 ノード
301 検証部
400 管理ノード
401 チェックポイント生成部
N ネットワーク

Claims (5)

  1. コンピュータを、
    第1の仮想通貨を送金する取引における、前記第1の仮想通貨及び送金先の第1のユーザの識別子を含む第1の取引情報と、前記第1の仮想通貨の少なくとも一部である第2の仮想通貨を送金する第2の取引における、前記第2の仮想通貨、送金元の第2のユーザの電子署名、及び送金先の第3のユーザの識別子を含む第2の取引情報と、を記憶する記憶手段、
    前記コンピュータとネットワークを介して接続され、取引情報の正当性を検証可能な端末装置に、前記第2の取引情報の正当性の検証を依頼する検証依頼手段、
    前記第1の取引情報に含まれる前記第1のユーザの識別子と、前記第2の取引情報に含まれる前記第2のユーザの電子署名とに基づいて、前記第2のユーザが前記第1のユーザであるかを検証する検証手段、
    前記第1の取引情報及びタイムスタンプに基づいて生成される発掘情報が所定の条件を満たす前記タイムスタンプを探索する探索手段、
    前記端末装置及び前記検証手段での検証結果が正当であり、前記探索手段によって前記所定の条件を満たす前記タイムスタンプが探索された場合に、前記第2の取引情報が承認されたことを示す承認情報を前記ネットワークに配信する配信手段、
    として機能させる仮想通貨管理プログラム。
  2. 前記所定の条件は、
    前記発掘情報に所定のハッシュ関数を用いて算出したハッシュ値が、前記コンピュータを利用するユーザが保有する仮想通貨の保有量とに基づく値以下であることを特徴とする、請求項1に記載の仮想通貨管理プログラム。
  3. 請求項1または2に記載の仮想通貨管理プログラムが実行される前記コンピュータと、
    前記ネットワークを介して前記コンピュータと接続される管理装置と、
    を備え、
    前記管理装置は、
    前記配信手段から前記承認情報が第1の期間配信されなかった場合、前記第1の期間に発生した取引情報が確定されたことを示す確定情報を前記ネットワークに配信する確定手段を有する、
    仮想通貨管理システム。
  4. 前記確定手段は、さらに、前記確定情報が、第2の期間配信されなかった場合、前記第2の期間に発生した取引情報が確定されたことを示す前記確定情報を前記ネットワークに配信することを特徴とする請求項3に記載の仮想通貨管理システム。
  5. コンピュータが、
    第1の仮想通貨を送金する取引における、前記第1の仮想通貨及び送金先の第1のユーザの識別子を含む第1の取引情報と、前記第1の仮想通貨の少なくとも一部である第2の仮想通貨を送金する第2の取引における、前記第2の仮想通貨、送金元の第2のユーザの電子署名、及び送金先の第3のユーザの識別子を含む第2の取引情報と、を記憶する記憶ステップと、
    前記コンピュータとネットワークを介して接続され、取引情報の正当性を検証可能な端末装置に、前記第2の取引情報の正当性の検証を依頼する検証依頼ステップと、
    前記第1の取引情報に含まれる前記第1のユーザの識別子と、前記第2の取引情報に含まれる前記第2のユーザの電子署名とに基づいて、前記第2のユーザが前記第1のユーザであるかを検証する検証ステップと、
    前記第1の取引情報及びタイムスタンプに基づいて生成される発掘情報が所定の条件を満たす前記タイムスタンプを探索する探索ステップと、
    前記端末装置及び前記検証ステップでの検証結果が正当であり、前記探索ステップによって前記所定の条件を満たす前記タイムスタンプが探索された場合に、前記第2の取引情報が承認されたことを示す承認情報を前記ネットワークに配信する配信ステップと、
    を実行する仮想通貨管理方法。
JP2015101225A 2015-05-18 2015-05-18 仮想通貨管理プログラム、及び仮想通貨管理方法 Active JP5858507B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015101225A JP5858507B1 (ja) 2015-05-18 2015-05-18 仮想通貨管理プログラム、及び仮想通貨管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015101225A JP5858507B1 (ja) 2015-05-18 2015-05-18 仮想通貨管理プログラム、及び仮想通貨管理方法

Publications (2)

Publication Number Publication Date
JP5858507B1 JP5858507B1 (ja) 2016-02-10
JP2016218633A true JP2016218633A (ja) 2016-12-22

Family

ID=55301013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015101225A Active JP5858507B1 (ja) 2015-05-18 2015-05-18 仮想通貨管理プログラム、及び仮想通貨管理方法

Country Status (1)

Country Link
JP (1) JP5858507B1 (ja)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018032080A (ja) * 2016-08-22 2018-03-01 株式会社 みずほ銀行 カストディ支援システム及びカストディ支援方法
WO2018124297A1 (ja) 2016-12-28 2018-07-05 株式会社Okeios Bcn(ブロックチェーンネットワーク)を使用したデータ利用方法、システムおよびそのプログラム
JP2018112827A (ja) * 2017-01-10 2018-07-19 日本電信電話株式会社 情報処理システム
WO2018158960A1 (ja) * 2017-03-03 2018-09-07 A・Tコミュニケーションズ株式会社 情報処理装置、情報処理方法、及びプログラム
JP6445211B1 (ja) * 2018-08-23 2018-12-26 寛 鳥居 送金指示装置、送金指示方法、送金指示プログラム及び送金指示システム
JP2019009772A (ja) * 2017-06-26 2019-01-17 マイオメガ システムズ ゲーエムベーハーMyOmega Systems GmbH ネットワーク上でデバイスの情報を追跡するための、ブロックチェーンの使用
JP2019101797A (ja) * 2017-12-04 2019-06-24 株式会社A.L.I.Technologies マイニング処理の分散管理システム及びその方法
JP2019145095A (ja) * 2018-01-22 2019-08-29 アバイア インコーポレーテッド セキュアインタラクションにおけるサービス運用妨害攻撃を検出するための方法及びデバイス
JP2020017256A (ja) * 2018-07-23 2020-01-30 株式会社日立製作所 ブロックチェーンにおける検証を行うシステム
WO2020039645A1 (ja) * 2018-08-23 2020-02-27 寛 鳥居 送金指示装置、送金指示方法、送金指示プログラム及び送金指示システム
JP2020509445A (ja) * 2017-03-28 2020-03-26 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンコンセンサス形成の方法およびデバイス
JP2020057427A (ja) * 2019-12-23 2020-04-09 株式会社A.L.I.Technologies マイニング処理の分散管理システム及びその方法
JP2020098402A (ja) * 2018-12-17 2020-06-25 寛 鳥居 送金指示装置、送金指示方法、送金指示プログラム及び送金指示システム
JP2020518907A (ja) * 2017-05-08 2020-06-25 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーントランザクションの並列検証のためのシステム及び方法
KR20200139780A (ko) * 2018-05-16 2020-12-14 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 그래프 데이터 처리 방법, 그래프 데이터 계산 태스크들을 공개하는 방법 및 디바이스, 저장 매체 및 컴퓨터 장치
WO2021172589A1 (ja) * 2020-02-28 2021-09-02 株式会社シーズ 情報処理システム、及びプログラム
US11314727B2 (en) 2017-08-22 2022-04-26 Nec Corporation Blockchain management apparatus, blockchain management method, and program
JP2022541834A (ja) * 2019-09-24 2022-09-27 京▲東▼科技信息技▲術▼有限公司 インテリジェント契約実行方法および装置
JP7464091B2 (ja) 2017-12-28 2024-04-09 日本電気株式会社 システム、制御装置、マイニングユニットの制御方法及びプログラム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107145768B (zh) * 2016-03-01 2021-02-12 华为技术有限公司 版权管理方法和系统
WO2017170997A1 (ja) * 2016-03-31 2017-10-05 株式会社bitFlyer 階層型ネットワークシステム、これに用いられるノード及びプログラム
KR20220088507A (ko) * 2016-05-04 2022-06-27 실비오 미칼리 분산 거래 전파 및 검증 시스템
KR20180138217A (ko) * 2016-05-19 2018-12-28 청, 시아 총 적용된 암호 ip 관리 방법 및 시스템
US10713731B2 (en) * 2016-07-22 2020-07-14 Nec Corporation Method for secure ledger distribution and computer system using secure distributed ledger technology
JP2018077714A (ja) * 2016-11-10 2018-05-17 株式会社野村総合研究所 取引管理プログラム、取引管理システム、及び取引管理方法
JP6386009B2 (ja) * 2016-11-15 2018-09-05 株式会社三菱総合研究所 仮想通貨システム
CN106991334B (zh) 2016-11-24 2021-03-02 创新先进技术有限公司 一种数据存取的方法、系统及装置
JP6729334B2 (ja) * 2016-12-06 2020-07-22 富士通株式会社 トランザクション管理方法、トランザクション管理プログラム及びトランザクション管理装置
CN107016606A (zh) * 2016-12-08 2017-08-04 阿里巴巴集团控股有限公司 一种资源处理方法及装置
CN111724150B (zh) * 2017-03-28 2023-11-24 创新先进技术有限公司 一种业务请求的处理方法及装置
CN107360206B (zh) * 2017-03-29 2020-03-27 创新先进技术有限公司 一种区块链共识方法、设备及系统
JP7156274B2 (ja) * 2017-05-16 2022-10-19 ソニーグループ株式会社 情報処理装置および情報処理方法
JP6469276B2 (ja) * 2018-03-09 2019-02-13 株式会社三菱総合研究所 仮想通貨システム
KR102599873B1 (ko) 2018-04-13 2023-11-07 주식회사 넥슨코리아 서로 다른 블록체인에 기반하는 암호화폐의 거래 서비스를 제공하는 방법 및 장치
JP7143142B2 (ja) * 2018-08-08 2022-09-28 株式会社三菱総合研究所 仮想通貨システム
CN112926972B (zh) * 2019-12-05 2024-04-09 中移物联网有限公司 一种基于区块链的信息处理方法、区块链系统及终端
JP7268233B1 (ja) 2022-08-03 2023-05-02 Kddi株式会社 情報処理装置、情報処理方法及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130054471A1 (en) * 2007-04-19 2013-02-28 Gideon Samid Bit Currency: Transactional Trust Tools
US20130166455A1 (en) * 2011-12-23 2013-06-27 Douglas Feigelson Creating and using digital currency
US20150006895A1 (en) * 2009-06-01 2015-01-01 Maidsafe Foundation Distributed network system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130054471A1 (en) * 2007-04-19 2013-02-28 Gideon Samid Bit Currency: Transactional Trust Tools
US20150006895A1 (en) * 2009-06-01 2015-01-01 Maidsafe Foundation Distributed network system
US20130166455A1 (en) * 2011-12-23 2013-06-27 Douglas Feigelson Creating and using digital currency

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018032080A (ja) * 2016-08-22 2018-03-01 株式会社 みずほ銀行 カストディ支援システム及びカストディ支援方法
US11636477B2 (en) 2016-12-28 2023-04-25 Takayuki Nakamura Data usage method, system, and program thereof employing blockchain network (BCN)
WO2018124297A1 (ja) 2016-12-28 2018-07-05 株式会社Okeios Bcn(ブロックチェーンネットワーク)を使用したデータ利用方法、システムおよびそのプログラム
JP2018112827A (ja) * 2017-01-10 2018-07-19 日本電信電話株式会社 情報処理システム
WO2018158960A1 (ja) * 2017-03-03 2018-09-07 A・Tコミュニケーションズ株式会社 情報処理装置、情報処理方法、及びプログラム
JP2020509445A (ja) * 2017-03-28 2020-03-26 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンコンセンサス形成の方法およびデバイス
JP7434448B2 (ja) 2017-05-08 2024-02-20 エヌチェーン ライセンシング アーゲー ブロックチェーントランザクションの並列検証のためのシステム及び方法
JP7114629B2 (ja) 2017-05-08 2022-08-08 エヌチェーン ホールディングス リミテッド ブロックチェーントランザクションの並列検証のためのシステム及び方法
JP2020518907A (ja) * 2017-05-08 2020-06-25 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーントランザクションの並列検証のためのシステム及び方法
JP2022136219A (ja) * 2017-05-08 2022-09-15 エヌチェーン ホールディングス リミテッド ブロックチェーントランザクションの並列検証のためのシステム及び方法
JP2019009772A (ja) * 2017-06-26 2019-01-17 マイオメガ システムズ ゲーエムベーハーMyOmega Systems GmbH ネットワーク上でデバイスの情報を追跡するための、ブロックチェーンの使用
US11314727B2 (en) 2017-08-22 2022-04-26 Nec Corporation Blockchain management apparatus, blockchain management method, and program
JP2019101797A (ja) * 2017-12-04 2019-06-24 株式会社A.L.I.Technologies マイニング処理の分散管理システム及びその方法
JP7464091B2 (ja) 2017-12-28 2024-04-09 日本電気株式会社 システム、制御装置、マイニングユニットの制御方法及びプログラム
JP2019145095A (ja) * 2018-01-22 2019-08-29 アバイア インコーポレーテッド セキュアインタラクションにおけるサービス運用妨害攻撃を検出するための方法及びデバイス
US11108811B2 (en) 2018-01-22 2021-08-31 Avaya Inc. Methods and devices for detecting denial of service attacks in secure interactions
US11847488B2 (en) 2018-05-16 2023-12-19 Tencent Technology (Shenzhen) Company Limited Graph data processing method, method and device for publishing graph data computational tasks, storage medium, and computer apparatus
JP7158801B2 (ja) 2018-05-16 2022-10-24 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 グラフデータ処理方法、グラフデータの計算タスクの配布方法、装置、コンピュータプログラム、及びコンピュータ機器
KR20200139780A (ko) * 2018-05-16 2020-12-14 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 그래프 데이터 처리 방법, 그래프 데이터 계산 태스크들을 공개하는 방법 및 디바이스, 저장 매체 및 컴퓨터 장치
JP2021523474A (ja) * 2018-05-16 2021-09-02 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 グラフデータ処理方法、グラフデータの計算タスクの配布方法、装置、コンピュータプログラム、及びコンピュータ機器
KR102485652B1 (ko) 2018-05-16 2023-01-06 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 그래프 데이터 처리 방법, 그래프 데이터 계산 태스크들을 공개하는 방법 및 디바이스, 저장 매체 및 컴퓨터 장치
JP2020017256A (ja) * 2018-07-23 2020-01-30 株式会社日立製作所 ブロックチェーンにおける検証を行うシステム
US10911240B2 (en) 2018-07-23 2021-02-02 Hitachi, Ltd. Off-chain blockchain storage with validation
JP2020030631A (ja) * 2018-08-23 2020-02-27 寛 鳥居 送金指示装置、送金指示方法、送金指示プログラム及び送金指示システム
WO2020039645A1 (ja) * 2018-08-23 2020-02-27 寛 鳥居 送金指示装置、送金指示方法、送金指示プログラム及び送金指示システム
JP6445211B1 (ja) * 2018-08-23 2018-12-26 寛 鳥居 送金指示装置、送金指示方法、送金指示プログラム及び送金指示システム
JP7161191B2 (ja) 2018-12-17 2022-10-26 寛 鳥居 送金指示装置、送金指示方法、送金指示プログラム及び送金指示システム
JP2020098402A (ja) * 2018-12-17 2020-06-25 寛 鳥居 送金指示装置、送金指示方法、送金指示プログラム及び送金指示システム
JP2022541834A (ja) * 2019-09-24 2022-09-27 京▲東▼科技信息技▲術▼有限公司 インテリジェント契約実行方法および装置
JP7273241B2 (ja) 2019-09-24 2023-05-12 京▲東▼科技信息技▲術▼有限公司 インテリジェント契約実行方法および装置
JP2020057427A (ja) * 2019-12-23 2020-04-09 株式会社A.L.I.Technologies マイニング処理の分散管理システム及びその方法
WO2021172589A1 (ja) * 2020-02-28 2021-09-02 株式会社シーズ 情報処理システム、及びプログラム

Also Published As

Publication number Publication date
JP5858507B1 (ja) 2016-02-10

Similar Documents

Publication Publication Date Title
JP5858507B1 (ja) 仮想通貨管理プログラム、及び仮想通貨管理方法
JP5858506B1 (ja) 仮想通貨管理プログラム、及び仮想通貨管理方法
JP5871347B1 (ja) 仮想通貨管理プログラム、及び仮想通貨管理方法
CN111566649B (zh) 使用公有侧链验证存储在联盟区块链中的数据的完整性
US20200374126A1 (en) Method for storing an object on a plurality of storage nodes
US10592642B2 (en) Systems and methods for decentralized content distribution
EP3439231A1 (en) Private node, processing method for private node, and program for same
US11729000B2 (en) Methods and systems for introducing self-contained intent functionality into decentralized computer networks
US11314885B2 (en) Cryptographic data entry blockchain data structure
US11329819B2 (en) Information processing system, method for changing public key, program, and method for building information processing system
JP2020077347A (ja) 情報処理システム、データ提供方法、および情報処理システムの製造方法
US20240137280A1 (en) Methods and systems for introducing self-contained intent functionality into decentralized computer networks
Xu et al. A blockchain based micro payment system for smart devices
JPWO2019163040A1 (ja) アクセス管理システム、及びそのプログラム
CN114531941A (zh) 多标准区块链协议
US11445015B2 (en) Information processing apparatus and method for processing information
KR102671054B1 (ko) 중앙은행 디지털 화폐를 위한 결제 방법 및 시스템
KR101986690B1 (ko) 메시지 종단간 암호화를 위한 키 체인 관리 방법 및 시스템
JP2021096503A (ja) 電子資産管理方法、及び電子資産管理装置
KR102503987B1 (ko) 블록체인에 기초하여 데이터의 분석 서비스를 제공하는 시스템 및 시스템의 동작 방법
JP2020031268A (ja) 仮想通貨システム及び署名装置
US11948144B2 (en) Knowledge-based authentication for asset wallets
KR20220134126A (ko) 바우처 승인 정보를 제공하는 방법 및 디바이스
JP2022002351A (ja) 情報処理装置、情報処理方法、およびプログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151210

R150 Certificate of patent or registration of utility model

Ref document number: 5858507

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250