JP7457406B2 - 仮想通貨システム - Google Patents
仮想通貨システム Download PDFInfo
- Publication number
- JP7457406B2 JP7457406B2 JP2022197819A JP2022197819A JP7457406B2 JP 7457406 B2 JP7457406 B2 JP 7457406B2 JP 2022197819 A JP2022197819 A JP 2022197819A JP 2022197819 A JP2022197819 A JP 2022197819A JP 7457406 B2 JP7457406 B2 JP 7457406B2
- Authority
- JP
- Japan
- Prior art keywords
- remittance
- signature
- information processing
- electronic signature
- virtual currency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 claims description 119
- 230000010365 information processing Effects 0.000 claims description 103
- 230000006870 function Effects 0.000 claims description 34
- 230000005540 biological transmission Effects 0.000 claims description 11
- 230000001186 cumulative effect Effects 0.000 claims description 9
- 238000000034 method Methods 0.000 description 40
- 230000008569 process Effects 0.000 description 34
- 238000012790 confirmation Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 19
- 238000012546 transfer Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 8
- 238000005065 mining Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Description
そして、このブロックチェーンを取引の台帳として活用した仮想通貨(暗号通貨)が知られており、現金に代わる新たな決算手段や送金手段などに用いられてきている。
ブロックチェーンを用いた仮想通貨において、秘密鍵を用いて電子署名を付したトランザクションをユーザがP2Pネットワークに送信すると、そのトランザクションはノードのトランザクションプールに溜め置かれる。
そして、ノードが、トランザクションプール内のトランザクションを検証し、正当なトランザクションをブロックに組み込む処理が行われている(特許文献1、2)。
そのため、ウォレットを実行するノードがクラッキングを受けることで秘密鍵が悪意の第三者に流出すると、その第三者は、秘密鍵を用いて電子署名を自由に生成し、自身のアドレスに対して仮想通貨を送金することが可能となる。その結果、仮想通貨が盗まれる恐れがある、という問題があった。
本発明は、上記の問題点を鑑みてなされたものであり、仮想通貨の使用時に必要な電子署名をより安全に生成して仮想通貨の安全性を高め得る署名装置及び仮想通貨システムを提供することを目的とする。
本発明に係る第1の形態は、送金額を含む取引データと電子署名とを含む仮想通貨の送金情報を作成する送金サーバ装置と、前記取引データを前記送金サーバ装置から供給されて前記電子署名を前記送金サーバ装置に対して供給する情報処理装置に接続され、前記取引データを用いて前記電子署名を生成する署名装置と、を備える仮想通貨システムであって、前記署名装置は、秘密鍵を記憶する記憶部と、前記署名装置が前記情報処理装置に接続された状態で、前記取引データに基づく署名用の値と、前記秘密鍵と、を用いて前記電子署名を生成する署名生成部と、を備え、前記送金サーバ装置は、前記情報処理装置からの要求に基づいて、前記取引データを作成して前記情報処理装置に送信する取引データ送信処理部を備え、前記取引データ送信処理部は、前記送金額が所定の条件を満たすことを条件に前記取引データを前記情報処理装置に送信する仮想通貨システムを特徴とする。
本発明に係る第3の形態は、第1又は第2の形態において、前記署名装置の前記記憶部は、パスワードのハッシュ値をさらに記憶し、前記署名装置の前記署名生成部は、パスワードが入力されたとき、前記記憶部に記憶される前記パスワードのハッシュ値が入力されたパスワードのハッシュ値と一致することを条件に前記電子署名の生成を実行し、前記電子署名を前記情報処理装置に供給する仮想通貨システムを特徴とする。
本実施の形態では、一例として、ソーシャルゲームなどのインターネット上のサービスに対して、利用者がその利用の対価を仮想通貨で支払う状況を説明する。
利用者は、サービスの利用に当たって、運営会社が所持するウォレットのアドレスに対して仮想通貨の送金を行う。
送金された仮想通貨は未使用のUTXO(Unspent Transaction Output)としてネットワーク上に存在しており、送金を受けた運営会社は送金された仮想通貨を利用するために、自らの電子署名によってこれをアンロックする必要がある。仮想通貨の利用とは、例えば、仮想通貨の送金のことである。
なお、本実施形態で説明するサービスを提供する運営会社の説明は、あくまで一例であり、仮想通貨を送金された仮想通貨を、一個人や企業がアンロックして利用するために必要な電子署名を生成する場合にも適用可能である。
図1(a)は、本実施形態のシステムを構成する装置を含むネットワークの構成を示す概略図である。
本実施形態に係るシステム1において、複数の利用者の利用に係る端末装置10と、ソーシャルゲーム等のサービスを提供する運営会社が利用する情報処理装置20と、情報処理装置20からの送金依頼に基づいて送金トランザクションを作成、公開するウォレットサーバ装置40と、ブロックチェーンネットワークに参加してマイニング作業を行うマイナーが用いる多数のマイナー装置30、とがインターネットに接続されている。マイニングのコンセンサスアルゴリズムには、例えば、Proof of Work(PoW)、Proof of Stake(PoS)、及びProof of Importance(PoI)などがある。以下の説明では、Proof of Workのことを、プルーフオブワークともいう。
ウォレットサーバ装置40は、仮想通貨の送金に必要な機能をApplication Programming Interface(API)として外部の情報処理装置20に提供する。情報処理装置20の利用者は、ブロックチェーンや仮想通貨についての知識を有さずとも、ウォレットサーバ装置40を介することで容易に仮想通貨を用いたサービス課金や、送金された仮想通貨の利用を行うことが出来る。
これらのブロックチェーンネットワークは、P2P(Peer to Peer)ネットワークであり、ブロックチェーンネットワークxは仮想通貨Xのネットワーク、ブロックチェーンネットワークyは仮想通貨Yのネットワークである。
各ブロックチェーンネットワークには、それぞれマイナー装置30が多く接続されて、プルーフオブワーク作業を行っている。また、ブロックチェーンネットワーク(仮想通貨)によっては、マイニングとしてプルーフオブワーク作業を行わないものもある。
図1(b)を用いて、ブロックチェーンの概略を説明する。
ブロックチェーンは、逐次発生する取引情報などをブロック単位で接続することにより成立する。
すなわち、ブロックチェーン技術では、取引記録や契約など、内容を保証したいデータ(の集合)をブロックという単位で扱う。このブロックを所定の方法で一繋ぎすなわちチェーン状に接続したものがブロックチェーンである。ブロックチェーンの生成にあたってはハッシュ関数が用いられており、ハッシュ関数は任意長の任意データに対して固定長のハッシュ値を求めるための関数である。
ハッシュ関数には一方向性という特徴があり、任意データからハッシュ値を求めることは容易であるが、逆に、ハッシュ値から元のデータを復元することは現実的には不可能であるとされる。
その結果、図1(b)に示すように、ブロックチェーンの各ブロックは、そのブロックのデータと、直前のブロックのハッシュ値と、Nonce値と、を含んでいる。
なお途中のブロックを改ざんしようとすると、そのブロック以降全てのブロックのNonce値を再計算する必要があるが、上記した総当たりを全てのブロックについて行うしかないため、計算量的に不可能である。
このような特徴を有することで、ブロックチェーンの信頼性は担保されている。
ビットコインをはじめとした仮想通貨においては、仮想通貨の送金は、ネットワーク上に分散して記録される所定単位の仮想通貨(通貨価値)を、利用者の公開鍵あるいは公開鍵ハッシュとしてのアドレスによってロックする処理である。
UTXOは、未使用のトランザクションアウトプットであり、仮想通貨の取引を記述したトランザクションにおいて、他のトランザクションと未だ接続されていないアウトプットである。そして、UTXOは、所有者の公開鍵を記載したScriptPubKeyを含んでいる。
UTXOをロックしている公開鍵の所有者がUTXOの所有者であり、当該UTXOが、その所有者が所有する仮想通貨の残高である。
そして、このトランザクションをブロックチェーンネットワークに対してブロードキャストし、トランザクションが承認されてブロックチェーンに組み込まれることで送金(UTXOの所有権の移転)が行われる。
端末装置にインストールされたウォレットは、利用者の公開鍵あるいは公開鍵ハッシュに紐付けられたUTXOをブロックチェーンネットワークから検索することによって、利用者が有する仮想通貨の残高を利用者に提示することが出来る。
トランザクションは、送金元から送金先への通貨価値の移転を記述したものであり、図2(a)に示すように、送金元を示すフィールドであるインプットと、送金先を示すフィールドであるアウトプットと、を有する。
また、アウトプットは、送金額と、ScirptPubKeyとを含む。
ScriptPubKeyは、このトランザクションに含まれるUTXOをアンロックするための条件を定義したスクリプトである。
ScriptPubKeyには、特定の秘密鍵による電子署名によってアンロックが可能となるようなスクリプトが記述されている。従って、仮想通貨の所有権が、該当する秘密鍵を所有する利用者のものとなる。
インプットは、UTXOを使うために、ScriptSigと呼ばれるUTXOのロックを解除するためのスクリプトを含む。ScriptSigは主に、ScriptPubKeyで要求されるUTXOのアンロックのための電子署名である。
Index1で特定されるScirptPubKeyに対応するアウトプットには、新規トランザクションが接続されていないため、当該アウトプットは、UTXOのままである。
Indexは、前トランザクションにおける接続先のScriptPubKeyを特定するための識別子である。
新規トランザクションのアウトプットは、新規トランザクションのUTXOを、送金先の利用者のアドレスにロックするためのScriptPubKeyが含まれる。ScriptPubKeyは、送金先の利用者の公開鍵にハッシュ関数を適用した公開鍵ハッシュを含む。
新規トランザクションのインプットに付される電子署名は、新規トランザクションのScriptSigを除くデータと、前トランザクションにおける接続されたScriptPubKeyと、のハッシュ値を、秘密鍵を用いて暗号化することで生成される。
なお、以下の説明において、アドレスとは、ハッシュ関数を用いて公開鍵を変換した公開鍵ハッシュである。
Pay-to-Public-Key-Hash(P2PKH)と呼ばれる仮想通貨の送金方式では、公開鍵ハッシュとしてのアドレスに対してUTXOをロックし、公開鍵と、それに対応する電子署名を用いてUTXOをアンロックする。本実施形態では、このP2PKH方式に基づいて説明を行う。
一方で、Pay-to-Public-Key(P2PK)と呼ばれる送金方式も存在する。このP2PK方式では、UTXOを公開鍵そのものでロックしている。そして、UTXOは、公開鍵に対応する電子署名でアンロックすることが出来る。従って、P2PK方式が採用される場合には、公開鍵自体がアドレスであると見なすことも出来る。
アドレスを作成するにあたり、まず、ハードウェアウォレットHWに格納されている秘密鍵を用いて公開鍵が生成される。そして、生成された公開鍵に対してハッシュ関数が適用されることにより、公開鍵ハッシュが生成される。アドレスは、この公開鍵ハッシュを用いて生成される。
そして、公開鍵をサービス利用者に公開し、秘密鍵をハードウェアウォレットHWなど、情報処理装置20から物理的に隔離された場所に格納する。このようなウォレットの形態をコールドウォレットと呼ぶ。逆に、常にオンラインに接続されるPC等に秘密鍵を格納する形態をホットウォレットと呼ぶ。
ハードウェアウォレットHWは、運営会社のPCに備わるUSB I/Fに接続されるUSBドングルとして提供されうる。
運営会社では、送付されたトランザクションIDの正当性を確認し、正当であればユーザアカウントにアイテムを付与する。このようにして、仮想通貨を用いたアイテム課金及びアイテム付与が実現される。
運営会社は、仮想通貨の送金を行わないときには、秘密鍵を格納したハードウェアウォレットHWを金庫などの物理的に安全が確保される場所に保管する。
後述するが、本実施形態のハードウェアウォレットHWは、暗号鍵を保持するのみならず、外部から入力されるトランザクションデータのハッシュ値と、暗号鍵を用いて電子署名値を生成することが出来る。
金庫で保管されるハードウェアウォレットHWは、当然、運営会社の情報処理装置20に接続されておらず、ネットワークからのクラッキングのリスクからは遮断されている。
送金プログラムはWindows(登録商標)あるいはmacOS(登録商標)が動作する通常の構成のPCで動作する。すなわち、情報処理装置20は汎用のコンピュータである。
送金額と送金金額の余剰、送金先は、送金トランザクションのアウトプットに記載される。
送金トランザクションのインプットには、入力トランザクションの出力スクリプトと送金トランザクションの入力スクリプトから計算するトランザクションのハッシュ値に対する電子署名が含まれる。
ウォレットサーバ40は、例えば、トランザクションのScriptSigを除くデータと、前トランザクションのScriptPubKeyとを用いて得られる値のハッシュ値(以下、電子署名用の値ともいう。)を生成する。そして、ウォレットサーバ40は、生成した電子署名用の値を情報処理装置20に送信する。情報処理装置20は、電子署名用の値を受信し、ハードウェアウォレットHWが接続されると、受信した電子署名用の値をハードウェアウォレットHWに入力する。そして、ハードウェアウォレットHWは、入力された電子署名用の値を用いて電子署名を生成する。
本実施形態では、運営会社が仮想通貨の送金(サービス利用者の送金に係るUTXOの利用)を行う場合、(1)において、運営会社の情報処理装置20がウォレットサーバ装置40に対して、送金トランザクションの作成を依頼する。すなわち、情報処理装置20がウォレットサーバ装置40に対して送金依頼を行う。
運営会社の情報処理装置20は、送金依頼として、ウォレットサーバ装置40に対して送金元アドレスと、送金先アドレスと、送金額とを送信する。換言すると、情報処理装置20は、送金元アドレスと送金先アドレスと送金額とを含む送金依頼をウォレットサーバに送信する。送金元アドレスは、運営会社のアドレスである。
この送金依頼は、利用可能なUTXOの一覧を取得して送金元アドレスからいくら送金出来るかを問い合わせることでもある。
ここで、送金元アドレスは、運営会社が、サービス利用者の課金のために用意した公開鍵に基づくアドレスである。従って、運営会社宛に行われた送金に係るUTXOの送金先アドレスは、この送金元アドレスと一致する。
すなわち、送金依頼を受信したウォレットサーバ装置40は、(2)において、ブロックチェーンネットワークを構成するノードサーバNDに問い合わせ、送金元アドレスに係るUTXOを収集する。
そして、ウォレットサーバ装置40は、ノードサーバNDからの情報に基づいて、送金額に対応するインプットを接続し(UTXOを有する1以上のトランザクションを入力とし)、(おつりを含む)送金額と手数料とを出力とした新規のトランザクションデータ(1つ以上の入力元トランザクションのトランザクションID、送金額を含む送金トランザクションのアウトプット)を作成する。このトランザクションデータは、すなわち、ハードウェアウォレットHWにおける電子署名値の生成に用いられる署名用トランザクションデータであり、送金トランザクションからScriptSigを除いたデータである。ウォレットサーバ装置40は、署名用トランザクションデータと、元トランザクションのScriptPubKeyのハッシュ値を演算して電子署名用の値を生成する。
より詳しくは、ウォレットサーバ装置40は、送金元アドレスと送金額とを情報処理装置20から受信すると、受信した送金元アドレスを用いて、ブロックチェーンに記録されているトランザクションを検索し、送金元アドレスに紐付く取引履歴であるトランザクションを検索する。
ウォレットサーバ装置40は、選択したUTXOを含むトランザクションのトランザクションIDと、UTXOのIndexとを取得する。また、ウォレットサーバ装置40は、選択したUTXOをアンロックするための条件が記述されているScriptPubKeyを取得する。
そして、ウォレットサーバ装置40は、取得したトランザクションIDと、Indexと、送金額と、送金先アドレスから求められる送金先の公開鍵ハッシュを含むScriptPubKeyとを含むアウトプットと、取得したScriptPubKeyと、を用いて署名用のハッシュ値を算出する。
ここで、トランザクションIDと、Indexと、送金額と、送金先アドレスから求められる送金先の公開鍵ハッシュを含むScriptPubKeyとを含むアウトプットは、すなわち、送金トランザクションからScriptSigを除いたデータと同等である。
本実施形態の主な実施例においては、情報処理装置20、ハードウェアウォレットHWにおいて、電子署名用の値を生成せず、ハードウェアウォレットHWは、電子署名用の値を用いて電子署名値を生成する。従って、厳密には、ウォレットサーバ装置40から送信されるトランザクションデータは、情報処理装置20及びハードウェアウォレットHWにおいては署名用のトランザクションデータではない。
しかしながら、ウォレットサーバ装置40で電子署名用の値を生成するために用いられたトランザクションデータと同じ内容のトランザクションデータは、便宜上署名用トランザクションデータとして説明する。
(4)において、署名用トランザクションデータ、電子署名用の値を受信した情報処理装置20は、電子署名用の値をハードウェアウォレットHWに入力する。
ハードウェアウォレットHWに入力される情報は、電子署名用の値であるトランザクションデータのハッシュ値である。
ハードウェアウォレットHWは、電子署名用の値を、秘密鍵を用いて暗号化することにより電子署名値を生成する。
(6)において、情報処理装置20は、署名用トランザクションデータに含まれていた入力元トランザクションごとのトランザクションID及びIndex、アウトプット(送金額、ScirptPubKey)のデータと、ハードウェアウォレットHWで生成された電子署名値及び公開鍵から送金用トランザクションデータを組み立て、ウォレットサーバ装置40に送信する。
なお、情報処理装置20は、ハードウェアウォレットHWに格納されている秘密鍵を用いて予め公開鍵を生成する。
(7)において、ウォレットサーバ装置40は、情報処理装置20から送信された送金用トランザクションデータ、電子署名値、及び公開鍵に基づいて、送金トランザクションを組立てる。
すなわち、ウォレットサーバ装置40は、情報処理装置20から送金用トランザクションデータ、電子署名値及び公開鍵を受信すると、受信した電子署名値及び公開鍵を含むScriptSigを含むインプットを生成し、生成したインプットと、送金用トランザクションデータに含まれるアウトプットを記述した送金トランザクションを作成する。
ウォレットサーバ装置40は、作成した送金トランザクションをネットワークに送信する。これによって、送金が行われる。
CPU21は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともに、情報処理装置20の機能を実現するプログラムを実行する。RAM22は、CPU21による処理のために各種のプログラムや一時データ、変数が展開される。
記録媒体24及びROMのすくなくとも一方は、プログラムやデータが格納される。ネットワークI/F25は、端末装置10をネットワークに接続する。IO I/F26は、端末装置10に対して周辺機器を接続する。入力装置27は、例えば、キーボード、マウス、及びタッチパネルなどである。表示装置28は、液晶モニタ、または有機ELなどである。
また、IO I/F26には、秘密鍵を格納して電子署名の作成に利用するハードウェアウォレットHWを接続することが出来る。
図4(b)の処理部は、情報処理装置20における送金プログラムとして機能する。
送金依頼処理部61は、仮想通貨の送金依頼を行う処理部であり、送金依頼として、送金元となる運営会社のアドレス(送金元アドレス、送金先アドレス)及び送金額をウォレットサーバ装置40に送信する。
ここで作成されるトランザクションデータは電子署名生成用のデータとなる。
ウォレットサーバ装置40は、ブロックチェーンから取得された1以上のUTXOに接続した署名用トランザクションデータを作成し、情報処理装置20に送信する。
作成された署名用トランザクションデータは、上記のように入力元のUTXO毎のトランザクションID及びIndexと、送金額、送金先アドレスから求められる送金先の公開鍵ハッシュを含むScriptPubKeyを含むアウトプットと、を含む。
これは送金トランザクションからScriptSigを除いた内容と同等のデータである。
ウォレット制御処理部63は、ハードウェアウォレットHWがUSB I/F25に接続されているとき、データ送受信部62が受信した電子署名用の値をハードウェアウォレットHWに入力し、ハードウェアウォレットHWに電子署名値を生成させ、生成された電子署名値をハードウェアウォレットHWから取得する処理を行う処理部である。
本実施形態に係るハードウェアウォレットHWは、図4に示したように、USB I/F25を介して情報処理装置20に対して着脱可能に接続される構成となっている。
ハードウェアウォレットHWは、秘密鍵を記憶する。そして、ハードウェアウォレットHWは、情報処理装置20から、電子署名用の値が入力されたとき、秘密鍵を用いて、電子署名用の値を暗号化する。これにより、ハードウェアウォレットHWは、電子署名値を生成する。そして、ハードウェアウォレットHWは、生成した電子署名値を情報処理装置20に出力する。
入出力部(接続部)70は、情報処理装置のUSB I/F25に接続され、データや信号の入出力をする。
制御部(回路)71は、電子署名値の生成に係る処理を行う。秘密鍵格納部72aは、秘密鍵を格納する記憶領域である。バッファメモリ72bは、情報処理装置20とのデータのやりとりに用いられる。パスワード格納部72は、電子署名値の生成にあたって行われる認証に用いるパスワード情報が格納される。RTC73は、実時間を計時可能な時計である。
ハッシュ値演算処理部74は、入力された送金トランザクションデータから署名用のハッシュ値を演算する。
後述するが、本実施形態は、ハードウェアウォレットHWが情報処理装置20から入力された電子署名用の値から電子署名値を生成する場合に限定されることはない。
ハードウェアウォレットHWが、情報処理装置20から署名用トランザクションデータを入力され、署名用トランザクションデータに基づいて演算した署名用のハッシュ値を暗号化することによって電子署名値を生成する場合がある。
従って、ハードウェアウォレットHWは、ハッシュ値演算処理部74を備える。
また、その場合、ウォレットサーバ装置40は、署名用トランザクションデータに基づく電子署名用の値を生成せず、署名用トランザクションデータと、署名に必要な前トランザクションのScriptPubKeyをそのまま情報処理装置20に送信する。
送金上限確認部78は、送金額が所定の限度額を超えているか否かを判定する。
なお、ハードウェアウォレットHWが備える送金上限確認部78は、情報処理装置20から署名用トランザクションデータを入力され、その送金トランザクションデータに基づいてハッシュ値演算処理部74が演算した署名用のハッシュ値を、電子署名処理部76が暗号化することによって電子署名値を生成する場合に実行される。
図5に示す構成において、制御部71に含まれる各処理部(ハッシュ値演算処理部74、電子署名生成処理部75、認証部76、コード出力部77、送金上限確認部78)は、ハードウェア回路によって実現可能である。また、制御部71に含まれる各処理部は、ハードウェアウォレットHWにCPUを備え、各処理部がソフトウェアによって実現されてもよい。
情報処理装置20内に秘密鍵が存在することはなく、ハードウェアウォレットHWを情報処理装置20から取り外してしまえば、外部から秘密鍵にアクセスする手段はない。
普段はハードウェアウォレットHWを情報処理装置20に接続せずに管理することで、セキュリティリスクを抑えることが出来る。
仮想通貨を利用する一主体が一つのウォレットを使用することが多く、サービスを運営する運営会社のウォレットが特定された場合に残高がすべて分かってしまうという問題があった。ブロックチェーンにおいてはすべてのトランザクションが公開されるため、アドレスから、運営会社所有の仮想通貨の残高がすべてわかってしまう。
複数の秘密鍵を用意し、対応する夫々の公開鍵(ウォレット)に分散して送金させることで、一部のウォレットが特定されたとしても、すべての残高が特定されることはなく、仮想通貨の所有残高という業務上の秘密といってよい情報を守ることが出来る。
複数の秘密鍵に対応する複数のウォレットに送金を行わせることで、万が一、一つの秘密鍵が漏洩した場合でも、悪意の第三者によって電子署名を生成されて仮想通貨を不正に送金されるリスクを、その秘密鍵に関する範囲内に限定することが出来る。
また、情報処理装置20の送金プログラム(送金依頼処理部61)は、1つの送金依頼において、複数の秘密鍵に対応する複数のウォレット(アドレス)に対する送金依頼を行うことで仮想的に1つのウォレットのように送金することが出来る。
すなわち、複数の秘密鍵のそれぞれに対応する複数の送金元アドレスと、送金額を含む送金依頼をウォレットサーバ装置40に送信し、それぞれのアドレスについ送金を行うことが出来る。
1つのハードウェアウォレットHWに秘密鍵を複数保持して、対応するウォレットを分散的に運用しつつ、仮想的に1つのウォレットのように管理することで利便性を大いに高めることが出来る。
ウォレットの残高は、情報処理装置20が、ブロックチェーンをスキャンすることで行うことが出来る。その場合、情報処理装置20に処理部として残高照会処理部を持たせる。
また、ウォレットサーバ装置40が提供する機能として残高照会を行い、照会結果を情報処理装置20の表示装置に表示させるようにしてもよい。
そこで、サービス利用者に公開鍵を公開する際、複数の公開鍵からランダムに利用者に提示することで、ウォレット間の残高を平均化することが出来る。
アドレスの公開は、情報処理装置20が備える処理部としての公開処理部によって行うことが出来る。
公開処理部は、例えばWebサーバなどの情報公開手段として機能する。公開処理部は、サービス利用料の入金先としてのアドレスの情報を、Webページなどに記載して外部に公開する。そして、サービス利用者は、公開されたアドレスに対して送金を行う。従って、公開処理部が公開するアドレスをランダムに変更することでウォレット間の残高の偏りを防ぐことが出来る。
情報処理装置20の使用者は、ハードウェアウォレットHWが故障した時のために、例えば、表示装置28に表示される送金プログラムのインターフェイス画面からハードウェアウォレットHWに対するコード出力操作を行い、出力されたコードを、情報処理装置20を用いて印刷することが出来る。
印刷したQRコード(登録商標)は、例えば金庫等に保管することで、故障時には新たに用意したハードウェアウォレットHWに秘密鍵を復旧出来るようにする。
上記の認証部76は、情報処理装置20(ウォレット制御処理部63)から、電子署名生成の要求がなされたとき、パスワードの入力を要求する。
情報処理装置20(例えば、ウォレット制御処理部63)は、パスワードの入力画面を表示装置28に表示し、入力装置27を用いたパスワードの入力を受け付ける。
入力されたパスワードは、ハードウェアウォレットHWに入力される。
一方で、入力されたパスワードと予め登録されたパスワードが一致しない場合には、電子署名値の生成処理を行わない。
従って、仮想通貨の送信トランザクションも、ウォレットサーバ装置40に送信されず、送金は行われない。パスワードを知らない第三者によるハードウェアウォレットHWの利用を制限し、仮に、ハードウェアウォレットHWが盗難にあった場合や、紛失した場合でも、安全性を確保することが出来る。
また、同じ組織内でも一部の者のみがハードウェアウォレットHWを使った送金を行えるようにしたい場合も、パスワードによるセキュリティは有用である。
認証の結果、パスワード格納部72cに格納されているハッシュ値と算出されたハッシュ値とが一致した場合に、電子署名生成部75は、電子署名値の生成処理を行う。
すなわち、電子署名生成部75は、情報処理装置20からパスワードが入力されたとき、パスワード格納部72cに格納されるパスワードのハッシュ値が、入力されたパスワードのハッシュ値と一致することを条件に電子署名の生成を実行する。
なお、その際、安全性を高めるために、認証部76による認証に用いるハッシュ値とは異なるハッシュ関数を使用する必要がある。
秘密鍵を、上記認証用のパスワードのハッシュ値で暗号化した場合、秘密鍵の復号用にパスワードのハッシュ値をそのまま記憶すると、パスワードを入力せずとも秘密鍵の暗号化を解除できるからである。
その一方で、パスワードのハッシュ値を記憶しない場合には、認証部76による認証用に入力されたパスワードが正しいか否かを検証することが出来ない。
そして、パスワード格納部72cには、認証部76による認証に用いるパスワードに第1ハッシュ関数を適用して得られた第1ハッシュ値を格納する。
そして、パスワード格納部72aには、上記パスワードに第2ハッシュ関数を適用して得られた第2ハッシュ値を用いて暗号化された秘密鍵を格納する。
第1ハッシュ値と第3ハッシュ値とが一致した場合、認証部76は、入力されたパスワードに第2ハッシュ関数を適用して第2ハッシュ値を算出し、第2ハッシュ値を用いて、暗号化された秘密鍵を復号する。
電子署名処理部75は、復号された秘密鍵と電子署名用の値とを用いて電子署名の生成を実行する。
なお、上記の説明では、秘密鍵又はそのハッシュ値を格納する秘密鍵格納部72aとパスワード又はそのハッシュ値を格納するパスワード格納部72cを区別して説明しているが、単一の記憶領域、あるいは格納部として構成されていてもよい。その場合も、上記と同様の処理が実行可能である。
図6(a)に示すように、ウォレットサーバ装置40は、CPU41と、RAM42と、HDD43と、不図示のROMと、ネットワークI/F44と、を備えている。
CPU41は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともに、ウォレットサーバ装置の機能を実現するプログラムを実行する。
RAM42は、CPU41による処理のために各種のプログラムや一時データ、変数が展開される。
HDD43又はROMの少なくとも一方には、プログラムやデータが格納される。
ネットワークI/F44は、ウォレットサーバ装置40をネットワークに接続する。
送金依頼受信処理部81は、情報処理装置20からの送金依頼を受信する処理を行う処理部である。
送金限度額は、一例には、一つの送金元アドレスからの1回の送金において、送金が可能な最大の仮想通貨の数量(金額)である。
送金上限確認部82は、一つの送金元アドレスからの1回の送金において、送金額が所定の額に至った場合は、限度額に達したと判定する。
また、送金上限確認部82は、1回の送金額が限度額に至らなかった場合でも、1日や数時間など、所定の基準時間内の合計(積算)送金額が所定の額に至った場合は、限度額に達したと判定する。
UTXO探索処理部83は、ブロックチェーンの探索を行わず、署名用トランザクションデータ作成処理部84、署名用トランザクションデータを作成しない。または、データ送受信部87は、署名用トランザクションデータを情報処理装置20に送信しない。
その結果、その送金元アドレスに係る情報処理装置20において電子署名を付与することができず、そのアドレスからの送金は不可能である。
基準時間や制限時間の計時は、ウォレットサーバ装置40が備えるRTC73を用いて行うことが出来る。
このように、公開鍵ごとに送金限度額を設定することで、それを超えた金額の送金を不可能とし、セキュリティを高めることが出来る。
万が一、秘密鍵が盗まれたとしても、限度額以上の送金を行うことはできず、被害を最小限に抑えることが出来る。
署名用トランザクションデータ作成処理部84は、署名用トランザクションデータを作成する処理を行う。
上記したように、署名用トランザクションデータは、入力元トランザクションごとのトランザクションID及びIndexと、アウトプット(送金額、ScirptPubKey)とを含むデータであり、送金トランザクションデータからScriptSigを除いた内容と同等のデータである。
ハッシュ処理部85は、署名用トランザクションデータと前トランザクションのScirptPubKeyとにハッシュ処理を行い、電子署名用の値を生成する処理を行う。
送金トランザクション作成処理部86は、情報処理装置20から送信された、署名用トランザクションデータ、電子署名値、公開鍵を含む情報から送金トランザクションを作成する処理を行う処理部である。
特に、送金トランザクション作成処理部86は、受信した電子署名値、公開鍵からScriptSigを生成する。
端末装置10を利用する利用者が、送金後に、送金トランザクションIDをサーバ装置に入力し、そこで、送金額を確認することで、サービスへの課金が成立する。
ステップS101において、情報処理装置20のCPU21(送金依頼処理部61)は、送金プログラムにおいて送金依頼操作がされたか否かを判定する。
送金依頼操作が行われたと判定した場合(ステップS101でYes)、CPU21(送金依頼処理部61)は、ステップS102において送金依頼をウォレットサーバ装置40に送信する。
送金依頼操作が行われたと判定しなかった場合(ステップS101でNo)、CPU21(ウォレット制御処理部63)は、ステップS103において、電子署名用の値を、ウォレットサーバ装置40から受信したか否かを判定する。
CPU21(ウォレット制御処理部63)は、ステップS105において、ハードウェアウォレットHWで電子署名値の生成が完了したか否かを判定する。
この判定は、ハードウェアウォレットHWのバッファメモリに電子署名値が格納されたか否かを確認することで実行出来る。
未だ電子署名値の生成が完了していないと判定した場合(ステップS105でNo)、CPU21(ウォレット制御処理部63)は、ステップS105に処理を戻し、電子署名値の生成の完了を待機する。
そして、CPU21(データ送受信処理部62)は、ステップS107において、署名用トランザクションデータと、取得した電子証明書と、公開鍵と、を含む送金用トランザクションデータを、ウォレットサーバ装置40に送信する。
ハードウェアウォレットHWの処理は、基本的にハードウェア回路によって行われるものであるが、ソフトウェア処理に準じてフローチャートとして説明する。
ハードウェアウォレットHWの制御部71は、ステップS201において、情報処理装置20から、電子署名用の値の入力があったか否かを判定する。
電子署名用の値の入力があったと判定した場合(ステップS201でYes)制御部71は、ステップS202において、電子署名用の値に基づく電子署名値を生成する。
そして、制御部71は、ステップS203において、生成した電子署名値をバッファメモリに格納し、処理を終了する。
ステップS301において、ウォレットサーバ装置のCPU41(送金依頼受信処理部81)は、情報処理装置20からの送金依頼があったか(送信元アドレス、送金先アドレス、送金額の送信)否かを判定する。
送金依頼があったと判定した場合(ステップS301でYes)、CPU41(送金上限確認処理部82)は、ステップS302において、送金上限確認処理(図11で詳述する)を行う。
そして、CPU41は、ステップS303において、ステップS302の送金上限確認処理で送金元の送金額が、所定の上限値を超えたか(送金制限がかかったか)否かを判定する。これは、ステップS302に対応する図11の処理で立てられるフラグから判断出来る。
上限値を超えた(送金制限がかかった)と判定した場合(ステップS303でYes)、CPU41は、そのまま処理を終了する。署名用トランザクションデータの送信は行われない。
上限値を超えていない(送金制限がかかっていない)と判定した場合(ステップS303でNo)、CPU41(UTXO探索処理部83)は、ステップS304においてブロックチェーンネットワークの探索を開始する。
具体的には、UTXO探索処理部83は受信した送金元アドレスを用いて、ブロックチェーンに記録されているトランザクションを検索し、送金元アドレスに紐付く取引履歴であるトランザクションを検索する。
そのようなUTXOがあると判定した場合(ステップS305でYes)、CPU41(UTXO探索処理部83)は、ステップS306においてUTXOのリストを取得する。
具体的には、UTXO探索処理部83は、検索された送金元アドレスに対応するトランザクションのアウトプットに含まれるUTXOを検索する。そして、UTXO探索処理部83は、送金額と、検索した各UTXOとを比較し、送金額を送金可能であり、且つデータ量がより小さくなる組合せのUTXOを選択する。
UTXO探索処理部83は、選択したUTXOを含むトランザクションのトランザクションIDと、UTXOのIndexとを取得する。また、UTXO探索処理部83は、選択したUTXOをアンロックするための条件が記述されているScriptPubKeyを取得する。
すなわち、署名用トランザクションデータ作成処理部84は、取得したトランザクションID及びIndexと、送金額、送金先アドレスから求められる送金先の公開鍵ハッシュを含むScriptPubKeyを含むアウトプットと、を含む署名用トランザクションデータを作成する。
そして、CPU41(ハッシュ処理部85)は、ステップS308において、署名用トランザクションデータと抽出したScriptPubKeyにハッシュ処理を行い、電子署名用の値を生成する。
ステップS301において、送金依頼がないと判定した場合(ステップS301でNo)、CPU41(データ送受信部87)は、ステップS310において、送金用トランザクションデータを情報処理装置20から受信したか否かを判定する。
送金用トランザクションデータを受信したと判定した場合(ステップS310でYes)、CPU41(送金トランザクション作成処理部86)は、ステップS311において、送金用トランザクションデータに基づいて送金トランザクションの作成を行い、ステップS312において、作成したトランザクションをネットワークに送信する。
ただしそれに限らず、本実施形態において、そのような制限処理は、ハードゥエアウォレットHWで行うようにすることが出来る。
この他の例において、ハードウェアウォレットHWは、情報処理装置20から入力された電子署名用の値から電子署名値を生成するのではなく、情報処理装置20から署名用トランザクションデータそのもの、さらには、前トランザクションのScriptPubKeyのデータを入力される。
署名用トランザクションデータと、署名に必要な前トランザクションのScriptPubKeyを情報処理装置20に送信すればよい。
そして、上記したハードウェアウォレットHWのハッシュ値演算処理部74は、署名用トランザクションデータ、ScriptPubKeyに基づいて演算した署名用のハッシュ値を暗号化する。
電子署名処理部75は、この署名用のハッシュ値を用いて電子署名値を生成する。
ハードウェアウォレットHWで送金額の上限確認及び送金制限を行う場合でも、ウォレットサーバ装置40を同様の処理を行うことは制限されない。
送金限度額は、一例には、一つの送金元アドレスからの1回の送金において、送金が可能な最大の仮想通貨の数量(金額)である。
送金上限確認部78は、一つの送金元アドレスからの1回の送金において、送金額が所定の額に至った場合は、限度額に達したと判定する。
また、送金上限確認部78は、1回の送金額が限度額に至らなかった場合でも、1日や数時間など、所定の基準時間内の合計(積算)送金額が所定の額に至った場合は、限度額に達したと判定する。
その結果、そのアドレスに係る情報処理装置20(ハードウェアウォレットHW)において電子署名を付与することができず、そのアドレスからの送金は不可能である。
一度の送金の場合も、複数の送金の累計額の場合も、送金限度額(上限値)は、アドレス毎に設定することが出来る。基準時間や制限時間の計時は、RTC73を用いて行うことが出来る。
万が一、秘密鍵が盗まれたとしても、限度額以上の送金を行うことはできず、被害を最小限に抑えることが出来る。
ハードウェアウォレットHWの処理は、基本的にハードウェア回路によって行われるものであるが、ソフトウェア処理に準じてフローチャートとして説明する。
ハードウェアウォレットHWの制御部71は、ステップS351において、情報処理装置20から署名用トランザクションデータ及び前トランザクションのScriptPubKeyの入力があったか否かを判定する。
署名用トランザクションデータ等の入力があったと判定した場合(ステップS351でYes)、制御部71は、ステップS352において、送金上限確認処理(図11で詳述する)を行う。
上限値を超えた(送金制限がかかった)と判定した場合(ステップS353でYes)、制御部71は、そのまま処理を終了する。
上限値を超えていない(送金制限がかかっていない)とした場合(ステップS353でNo)、制御部71は、ステップS354において署名用トランザクションデータと前トランザクションのScriptPubKeyとのハッシュ値を算出する。
そして、制御部71は、ステップS356において、生成した電子署名値をバッファメモリに格納し、処理を終了する。
図10において、ウォレットサーバ装置のCPU41による処理として説明するが、ハードウェアウォレットの制御部によっても同様に実行出来る。
CPU41(送金上限確認処理部)は、ステップS401において、現在送金制限中であるか否かを判定する。
制限中ではないと判定した場合(ステップS401でNo)、CPU41は、ステップS402において、今回の送金額が所定額以上であるか否かを判定する。
特定の送金元アドレスからの送金額は、ウォレットサーバ装置での送金確認処理では、送金依頼から知りうる。
また、ウォレットサーバ装置の送金確認処理では、特定の送金元アドレスからの送金額は署名用トランザクションデータから知りうる。
送金額が所定額以上ではないと判定した場合、(ステップS402でNo)、CPU41は、ステップS405において、前回までの積算値があるか否かを判定する。
積算値がないと判定した場合(ステップS405でNo)、CPU41は、ステップS410において、送金額の積算を開始し、ステップS411において、基準時間の計時を開始する。
基準時間が経過していないと判定した場合(ステップS406でNo)、CPU41は、ステップS407において、今回の額の積算を行って、累計額が所定額以上になったか否かを判定する。
所定額以上となったと判定した場合(ステップS407でYes)、CPU41は、ステップS403に処理を移し、制限開始を示すフラグ1を記憶領域にセットし、ステップS404において、制限時間の計時を開始する。
ステップS406において、基準時間が経過したと判定した場合(ステップS406でYes)、CPU41は、ステップS408において累計額をリセットし、ステップS409において、基準時間もリセットする。
ステップS407において、累計額が所定額以上ではないと判定した場合、CPU41は何もせずに処理を終了する。
このような処理を行うことにより、万が一、暗号鍵が流出することとなっても、悪意ある第三者に大量の暗号通貨を盗まれるという危険性がなくなる。
また、図11のように、複数回に亘る送金の合計額に基づいて送金を規制するのではなく、単純に、1回の送金における送金額に規制を設けるようにしてもよい。
すなわち、ステップS401~ステップS404、ステップS412、ステップS413の処理のみを行い、ステップS412でNoと判定した場合には、そのまま処理を終了する。このようにすることで、よりシンプル且つ的確に、真正の所有者自身の使い勝手を損なうことなく大量の暗号通貨が盗まれることを防ぐことが出来る。
Claims (4)
- 送金額を含む取引データと電子署名とを含む仮想通貨の送金情報を作成する送金サーバ装置と、
前記取引データを前記送金サーバ装置から供給されて前記電子署名を前記送金サーバ装置に対して供給する情報処理装置に接続され、前記取引データを用いて前記電子署名を生成する署名装置と、を備える仮想通貨システムであって、
前記署名装置は、
秘密鍵を記憶する記憶部と、
前記署名装置が前記情報処理装置に接続された状態で、前記取引データに基づく署名用の値と、前記秘密鍵と、を用いて前記電子署名を生成する署名生成部と、を備え、
前記送金サーバ装置は、
前記情報処理装置からの要求に基づいて、前記取引データを作成して前記情報処理装置に送信する取引データ送信処理部を備え、
前記取引データ送信処理部は、前記送金額が所定の条件を満たすことを条件に前記取引データを前記情報処理装置に送信することを特徴とする仮想通貨システム。 - 請求項1に記載の仮想通貨システムにおいて、
前記取引データは、送金元アドレスをさらに含み、
前記署名装置の前記署名生成部は、特定の前記送金元アドレスからの送金について、一回の送金における送金額が所定額以上ではなく、所定期間における累計の送金額が所定額以上ではないことを条件に前記電子署名の生成を実行し、前記電子署名を前記情報処理装置に供給することを特徴とする仮想通貨システム。 - 請求項1又は2に記載の仮想通貨システムにおいて、
前記署名装置の前記記憶部は、パスワードのハッシュ値をさらに記憶し、
前記署名装置の前記署名生成部は、パスワードが入力されたとき、前記記憶部に記憶される前記パスワードのハッシュ値が入力されたパスワードのハッシュ値と一致することを条件に前記電子署名の生成を実行し、前記電子署名を前記情報処理装置に供給することを特徴とする仮想通貨システム。 - 請求項1又は2に記載の仮想通貨システムにおいて、
前記署名装置の前記記憶部は、パスワードに第1ハッシュ関数を適用して得られた第1ハッシュ値と、前記パスワードに第2ハッシュ関数を適用して得られた第2ハッシュ値を用いて暗号化された前記秘密鍵と、を記憶し、
前記署名装置の前記署名生成部は、パスワードが入力されたとき、入力されたパスワードに前記第1ハッシュ関数を適用して第3ハッシュ値を算出し、前記第1ハッシュ値と前記第3ハッシュ値とが一致したとき、入力されたパスワードに前記第2ハッシュ関数を適用して第2ハッシュ値を算出し、前記第2ハッシュ値を用いて暗号化された前記秘密鍵を復号し、前記秘密鍵と前記署名用の値とを用いて前記電子署名の生成を実行し、前記電子署名を前記情報処理装置に供給することを特徴とする仮想通貨システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022197819A JP7457406B2 (ja) | 2018-08-20 | 2022-12-12 | 仮想通貨システム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018153948A JP2020031268A (ja) | 2018-08-20 | 2018-08-20 | 仮想通貨システム及び署名装置 |
JP2022197819A JP7457406B2 (ja) | 2018-08-20 | 2022-12-12 | 仮想通貨システム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018153948A Division JP2020031268A (ja) | 2018-08-20 | 2018-08-20 | 仮想通貨システム及び署名装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023024542A JP2023024542A (ja) | 2023-02-16 |
JP7457406B2 true JP7457406B2 (ja) | 2024-03-28 |
Family
ID=69622865
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018153948A Pending JP2020031268A (ja) | 2018-08-20 | 2018-08-20 | 仮想通貨システム及び署名装置 |
JP2022197819A Active JP7457406B2 (ja) | 2018-08-20 | 2022-12-12 | 仮想通貨システム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018153948A Pending JP2020031268A (ja) | 2018-08-20 | 2018-08-20 | 仮想通貨システム及び署名装置 |
Country Status (1)
Country | Link |
---|---|
JP (2) | JP2020031268A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563743B (zh) * | 2020-07-15 | 2020-11-03 | 百度在线网络技术(北京)有限公司 | 一种区块链的转账处理方法、装置、设备和介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002258745A (ja) | 2001-03-06 | 2002-09-11 | Sony Corp | 電子署名装置 |
JP2003143128A (ja) | 2001-11-05 | 2003-05-16 | Open Loop:Kk | 通信システム及び通信方法 |
JP2004140636A (ja) | 2002-10-18 | 2004-05-13 | Nec Corp | 電子文書の署名委任システム、署名委任サーバ及び署名委任プログラム |
JP2009505593A (ja) | 2005-08-22 | 2009-02-05 | ウルトラ プロイズボドニャ エレクトロンスキー ナプラブ デー.オー.オー. | 監視、保守およびサービスデータ交換用の端末装置およびシステム |
JP2017027287A (ja) | 2015-07-21 | 2017-02-02 | 凸版印刷株式会社 | 取引システム、icカード、店舗端末及び取引方法 |
JP2017156859A (ja) | 2016-02-29 | 2017-09-07 | 楽天株式会社 | 情報処理システム、サーバ装置、情報処理方法、及び情報処理プログラム |
JP6341491B1 (ja) | 2017-02-21 | 2018-06-13 | 株式会社三菱Ufj銀行 | 信号処理方法、および信号処理プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0917119A3 (en) * | 1997-11-12 | 2001-01-10 | Citicorp Development Center, Inc. | Distributed network based electronic wallet |
JP3954614B2 (ja) * | 2004-12-28 | 2007-08-08 | 株式会社三菱東京Ufj銀行 | 取引システム |
-
2018
- 2018-08-20 JP JP2018153948A patent/JP2020031268A/ja active Pending
-
2022
- 2022-12-12 JP JP2022197819A patent/JP7457406B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002258745A (ja) | 2001-03-06 | 2002-09-11 | Sony Corp | 電子署名装置 |
JP2003143128A (ja) | 2001-11-05 | 2003-05-16 | Open Loop:Kk | 通信システム及び通信方法 |
JP2004140636A (ja) | 2002-10-18 | 2004-05-13 | Nec Corp | 電子文書の署名委任システム、署名委任サーバ及び署名委任プログラム |
JP2009505593A (ja) | 2005-08-22 | 2009-02-05 | ウルトラ プロイズボドニャ エレクトロンスキー ナプラブ デー.オー.オー. | 監視、保守およびサービスデータ交換用の端末装置およびシステム |
JP2017027287A (ja) | 2015-07-21 | 2017-02-02 | 凸版印刷株式会社 | 取引システム、icカード、店舗端末及び取引方法 |
JP2017156859A (ja) | 2016-02-29 | 2017-09-07 | 楽天株式会社 | 情報処理システム、サーバ装置、情報処理方法、及び情報処理プログラム |
JP6341491B1 (ja) | 2017-02-21 | 2018-06-13 | 株式会社三菱Ufj銀行 | 信号処理方法、および信号処理プログラム |
Non-Patent Citations (3)
Title |
---|
ビットバンク株式会社,できるビットコイン入門 話題の仮想通貨の仕組みから使い方までよく分かる本,第1版,日本,株式会社インプレス,2017年12月21日,pp.164-176 |
山澤 昌夫 ほか,暗号通貨(ビットコイン)・ブロックチェーンの高信頼化へ向けてのMELT-UP活動,2018年 暗号と情報セキュリティシンポジウム概要集,日本,電子情報通信学会,2010年01月19日,pp.1-8 |
株式会社ストーンシステム,最新ブロックチェーンがよ~くわかる本,第1版,日本,株式会社秀和システム,2017年08月01日,pp.54-65 |
Also Published As
Publication number | Publication date |
---|---|
JP2020031268A (ja) | 2020-02-27 |
JP2023024542A (ja) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11818269B2 (en) | Computer-implemented system and method providing a decentralised protocol for the recovery of cryptographic assets | |
US11314891B2 (en) | Method and system for managing access to personal data by means of a smart contract | |
US10600050B1 (en) | Secure custody of a ledger token and/or a quantity of cryptocurrency of a distributed ledger network through binding to a possession token | |
CN110034924B (zh) | 一种数据处理方法和装置 | |
JP6841911B2 (ja) | 情報保護用のシステム及び方法 | |
US20200051041A1 (en) | System and method for arbitrating a blockchain transaction | |
KR102255287B1 (ko) | 블록체인 상에서 일회용 비밀번호를 적용한 신원관리 시스템 | |
TW202020710A (zh) | 用於資訊保護的系統和方法 | |
CN109478298A (zh) | 区块链实现的方法和系统 | |
KR20180114942A (ko) | 분산형 해시 테이블 및 블록체인을 사용하여 컴퓨터 소프트웨어를 보호하기 위한 방법 및 시스템 | |
JP4525609B2 (ja) | 権限管理サーバ、権限管理方法、権限管理プログラム | |
CN105659231A (zh) | 实现对数据的访问 | |
JP7053031B2 (ja) | 情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム | |
JP6786119B2 (ja) | 取引装置、取引方法及び取引プログラム | |
JP2018014567A (ja) | 制御方法、情報処理システム、コンピュータ及び制御プログラム | |
JPWO2019082442A1 (ja) | データ登録方法、データ復号方法、データ構造、コンピュータ、及びプログラム | |
US20200118093A1 (en) | System and method for arbitrating a blockchain transaction | |
JP2001094554A (ja) | 情報送信システム、情報送信装置、情報受信装置、情報送信方法 | |
JP7457406B2 (ja) | 仮想通貨システム | |
JP2001083874A (ja) | 情報提供システム、情報規制装置、情報受信装置及び情報提供方法 | |
WO2019163040A1 (ja) | アクセス管理システム、及びそのプログラム | |
JP2001092880A (ja) | 情報提供システム、リスト送信装置、情報受信装置及び情報提供方法 | |
US20230283466A1 (en) | Content protection system | |
WO2020122095A1 (ja) | 制御方法、サーバ、プログラム、および、データ構造 | |
JP2001067795A (ja) | 情報受信システム及び情報受信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240207 |
|
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: 20240227 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240308 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7457406 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |