JP2020129283A - プログラム、情報処理装置、及び情報処理方法 - Google Patents
プログラム、情報処理装置、及び情報処理方法 Download PDFInfo
- Publication number
- JP2020129283A JP2020129283A JP2019021780A JP2019021780A JP2020129283A JP 2020129283 A JP2020129283 A JP 2020129283A JP 2019021780 A JP2019021780 A JP 2019021780A JP 2019021780 A JP2019021780 A JP 2019021780A JP 2020129283 A JP2020129283 A JP 2020129283A
- Authority
- JP
- Japan
- Prior art keywords
- transaction information
- address
- information
- terminal
- transaction
- 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.)
- Ceased
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 53
- 238000003672 processing method Methods 0.000 title claims abstract description 8
- 238000001514 detection method Methods 0.000 claims description 94
- 230000005540 biological transmission Effects 0.000 claims description 18
- 238000004891 communication Methods 0.000 description 39
- 238000000034 method Methods 0.000 description 35
- 230000006870 function Effects 0.000 description 28
- 238000012545 processing Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 22
- 230000004048 modification Effects 0.000 description 15
- 238000012986 modification Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 15
- 238000005065 mining Methods 0.000 description 13
- 238000012217 deletion Methods 0.000 description 9
- 230000037430 deletion Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 8
- 238000012508 change request Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000004075 alteration Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 235000003197 Byrsonima crassifolia Nutrition 0.000 description 1
- 240000001546 Byrsonima crassifolia Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 235000019640 taste Nutrition 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
【課題】ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにするプログラム、情報処理装置、及び情報処理方法を提供すること。【解決手段】情報処理装置に、所定の手数料を指定して、仮想資産を第1アドレスから第2アドレスに移動させる第1取引情報を受信するステップと、ブロックに格納する前の前記第1取引情報が、予め設定された不正条件を満たす場合に、前記第1取引情報よりも高い手数料を指定する第2取引情報であって、仮想資産を前記第1アドレスから前記第2アドレスとは異なるアドレスに移動させる第2取引情報を作成するステップと、前記第2取引情報をブロックチェーンネットワークに送信するステップと、を実行させる、プログラム。【選択図】図10
Description
本開示は、プログラム、情報処理装置、及び情報処理方法に関する。
近年、通信機能を有するコンピュータ、スマートフォン、タブレット、携帯電話機などの端末を用いてネットワーク経由により、ユーザが仮想資産の売買取引を行えるようにしたサービスが広く一般に利用されている。例えば、特許文献1には、かかる仮想資産の取引において第三者が暗号鍵を不正に入手した場合などに、不正な取引情報に基づく取引の実行を抑制するための方法として、公開鍵を用いたチャレンジレスポンス認証を用いる方法が記載されている。
仮想資産の取引は、特定の機関による管理の代わりに、ネットワーク上に存在するブロックチェーンとよばれる仮想資産の取引情報を記した分散型台帳により管理される。通常の中央集権的な仕組みでは中央機関が送金に関するコントロール権を有するが、仮想資産の取引では中央機関が存在しない。そのため、ユーザから第三者への送金が完了した時点で第三者以外が仮想資産にアクセスすることはできないし、また、送金が不正なものであるか否かを判断することもできない。
ここで、特許文献1のように、ユーザに対して取引の都度にその取引情報の正当性をチャレンジレスポンス認証等により確認する方法も考えられる。しかしながら、仮想資産の取引の都度にチャレンジレスポンス認証を求めたのでは、取引が煩わしくなり、取引の迅速性も損なわれるという課題がある。
そのため、中央機関に代わり、暗号鍵を不正に入手した第三者による不正な取引情報を検知し、ユーザに過度の負担を求めることなく、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにする仕組みが求められている。
そこで、本開示は、かかる事情に鑑みてなされたものであり、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにするプログラム、情報処理装置、及び情報処理方法を提供することを目的とする。
本開示の一実施形態に係るプログラムは、情報処理装置に、所定の手数料を指定して、仮想資産を第1アドレスから第2アドレスに移動させる第1取引情報を受信するステップと、ブロックに格納する前の前記第1取引情報が、予め設定された不正条件を満たす場合に、前記第1取引情報よりも高い手数料を指定する第2取引情報であって、仮想資産を前記第1アドレスから前記第2アドレスとは異なるアドレスに移動させる第2取引情報を作成するステップと、前記第2取引情報をブロックチェーンネットワークに送信するステップと、を実行させる。
<法令遵守>
本明細書に記載の開示は、実施される場合、本開示を実施する各国の法令を遵守のうえで実施される。また、本明細書に記載の開示は、各国の法令を遵守するために必要な、当業者が成し得る全ての変更、置換、変形、改変、および修正をもって実施される。
本明細書に記載の開示は、実施される場合、本開示を実施する各国の法令を遵守のうえで実施される。また、本明細書に記載の開示は、各国の法令を遵守するために必要な、当業者が成し得る全ての変更、置換、変形、改変、および修正をもって実施される。
本開示に係るプログラム、情報処理装置、及び情報処理方法を実施するための形態について、図面を参照して説明する。
<システム構成>
図1は、本開示の一実施形態に係る情報処理方法を有効に実施するための取引システム1の構成を示す。図1に開示されるように、取引システム1では、ネットワーク130を介してサーバ110A,サーバ110Bと、端末120A、端末120B、端末120Cが接続される。サーバ110A,サーバ110Bと、端末120A,端末120B,端末120Cは、分散型台帳(以下「ブロックチェーン」ともいう。)を構成している。本開示では、ブロックチェーンは、中央管理者のいないパブリック型の構成として説明するが、これに限定されずプライベート型や、コンソーシアム型でもよい。
図1は、本開示の一実施形態に係る情報処理方法を有効に実施するための取引システム1の構成を示す。図1に開示されるように、取引システム1では、ネットワーク130を介してサーバ110A,サーバ110Bと、端末120A、端末120B、端末120Cが接続される。サーバ110A,サーバ110Bと、端末120A,端末120B,端末120Cは、分散型台帳(以下「ブロックチェーン」ともいう。)を構成している。本開示では、ブロックチェーンは、中央管理者のいないパブリック型の構成として説明するが、これに限定されずプライベート型や、コンソーシアム型でもよい。
本開示において、サーバ110Aと、サーバ110Bとをそれぞれ区別する必要がない場合は、サーバ110Aとサーバ110Bとは、それぞれサーバ110と表現されてもよい。
本開示において、端末120Aと、端末120Bと、端末120Cとをそれぞれ区別する必要がない場合は、端末120Aと端末120Bと端末120Cとは、それぞれ端末120と表現されてもよい。
本開示において、サーバ110と、端末120とをそれぞれ区別する必要がない場合は、サーバ110と端末120とは、それぞれ情報処理装置200と表現されてもよい。なお、ネットワーク130に接続される情報処理装置200の数は限定されない。
サーバ110は、ネットワーク130を介してユーザが利用する端末120に、所定のサービスを提供する。所定のサービスは、限定でなく例として、決済サービス、金融サービス、電子商取引サービス、インスタントメッセンジャーを代表とするSNS(Social Networking Service)、楽曲・動画・書籍などのコンテンツ提供サービスなどを含む。ユーザが端末120を介して所定のサービスを利用することで、サーバ110は1以上の端末120に所定のサービスを提供することができる。
必要に応じて、ユーザXが利用する端末を端末120Xと表現し、ユーザXまたは端末120Xに対応づけられた、所定のサービスにおけるユーザ情報をユーザ情報Xと表現する。なお、ユーザ情報とは、所定のサービスにおいてユーザが利用するアカウントに対応付けられたユーザの情報である。ユーザ情報は、限定でなく例として、ユーザにより入力される、または、所定のサービスにより付与される、ユーザの名前、ユーザのアイコン画像、ユーザの年齢、ユーザの性別、ユーザの住所、ユーザの趣味趣向、ユーザの識別子などのユーザに対応づけられた情報、ユーザに対応付けられた電子バリュー(電子マネー)の残高情報、ユーザに対応付けられたクレジットカード情報(クレジットカード番号など)を含み、これらのいずれか一つまたは、組み合わせであってもよい。
ネットワーク130は、2以上の情報処理装置200を接続する役割を担う。ネットワーク130は、端末120がサーバ110に接続した後、データを送受信することができるように接続経路を提供する通信網を意味する。
ネットワーク130のうちの1つまたは複数の部分は、有線ネットワークや無線ネットワークであってもよい。ネットワーク130は、限定でなく例として、アドホック・ネットワーク(Ad Hoc Network)、イントラネット、エクストラネット、仮想プライベート・ネットワーク(Virtual Private Network:VPN)、ローカル・エリア・ネットワーク(Local Area Network:LAN)、ワイヤレスLAN(Wireless LAN:WLAN)、広域ネットワーク(Wide Area Network:WAN)、ワイヤレスWAN(Wireless WAN:WWAN)、大都市圏ネットワーク(Metropolitan Area Network:MAN)、インターネットの一部、公衆交換電話網(Public Switched Telephone Network:PSTN)の一部、携帯電話網、ISDNs(Integrated Service Digital Networks)、無線LANs、LTE(Long Term Evolution)、CDMA(Code Division Multiple Access)、ブルートゥース(Bluetooth(登録商標))、衛星通信など、または、これらの2つ以上の組合せを含むことができる。ネットワーク130は、1つまたは複数のネットワーク130を含むことができる。
情報処理装置200は、本開示に記載される機能、および/または、方法を実現できる情報処理装置であればどのような情報処理装置であってもよい。
情報処理装置200は、限定ではなく例として、スマートフォン、携帯電話(フィーチャーフォン)、コンピュータ(限定でなく例として、デスクトップ、ラップトップ、タブレットなど)、サーバ装置、メディアコンピュータプラットホーム(限定でなく例として、ケーブル、衛星セットトップボックス、デジタルビデオレコーダなど)、ハンドヘルドコンピュータデバイス(限定でなく例として、PDA(Personal Digital Assistant)、電子メールクライアントなど)、ウェアラブル端末(限定でなく例として、メガネ型デバイス、時計型デバイスなど)、他種のコンピュータ、またはコミュニケーションプラットホームを含む。
<ハードウェア(HW)構成>
図2を用いて、取引システム1に含まれる情報処理装置200のHW構成について説明する。
図2を用いて、取引システム1に含まれる情報処理装置200のHW構成について説明する。
情報処理装置200は、プロセッサ201と、メモリ202と、ストレージ203と、入出力インタフェース(入出力I/F)204と、通信インタフェース(通信I/F)205とを含む。情報処理装置200のHWの各構成要素は、限定でなく例として、バスBを介して相互に接続される。
情報処理装置200は、プロセッサ201と、メモリ202と、ストレージ203と、入出力I/F204と、通信I/F205との協働により、本開示に記載される機能、および/または、方法を実現する。
プロセッサ201は、ストレージ203に記憶されるプログラムに含まれるコードまたは命令によって実現する機能、および/または、方法を実行する。プロセッサ201は、限定でなく例として、中央処理装置(CPU)、MPU(Micro Processing Unit)、GPU(Graphic s Processing Unit)、マイクロプロセッサ(microprocessor)、プロセッサコア(processor core)、マルチプロセッサ(multiprocessor)、ASIC(Application-Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等を含み、集積回路(IC(Integrated Circuit)チップ、LSI(Large Scale Integration))等に形成された論理回路(ハードウェア)や専用回路によって各実施形態に開示される各処理を実現してもよい。また、これらの回路は、1または複数の集積回路により実現されてよく、各実施形態に示す複数の処理を1つの集積回路により実現されることとしてもよい。また、LSIは、集積度の違いにより、VLSI、スーパーLSI、ウルトラLSIなどと呼称されることもある。
メモリ202は、ストレージ203からロードしたプログラムを一時的に記憶し、プロセッサ201に対して作業領域を提供する。メモリ202には、プロセッサ201がプログラムを実行している間に生成される各種データも一時的に格納される。メモリ202は、限定でなく例として、RAM(Random Access Memory)、ROM(Read Only Memory)などを含む。
ストレージ203は、プログラムを記憶する。ストレージ203は、限定でなく例として、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリなどを含む。
通信I/F205は、ネットワーク130を介して各種データの送受信を行う。当該通信は、有線、無線のいずれで実行されてもよく、互いの通信が実行できるのであれば、どのような通信プロトコルを用いてもよい。通信I/F205は、ネットワーク130を介して、他の情報処理装置との通信を実行する機能を有する。通信I/F205は、各種データをプロセッサ201からの指示に従って、他の情報処理装置に送信する。また、通信I/F205は、他の情報処理装置から送信された各種データを受信し、プロセッサ201に伝達する。
入出力I/F204は、情報処理装置200に対する各種操作を入力する入力装置、および、情報処理装置200で処理された処理結果を出力する出力装置を含む。入出力I/F204は、入力装置と出力装置が一体化していてもよいし、入力装置と出力装置とに分離していてもよい。
入力装置は、ユーザからの入力を受け付けて、当該入力に係る情報をプロセッサ201に伝達できる全ての種類の装置のいずれか、または、その組み合わせにより実現される。入力装置は、限定でなく例として、タッチパネル、タッチディスプレイ、キーボード等のハードウェアキーや、マウス等のポインティングデバイス、カメラ(画像を介した操作入力)、マイク(音声による操作入力)を含む。
出力装置は、プロセッサ201で処理された処理結果を出力することができる全ての種類の装置のいずれか、または、その組み合わせにより実現される。当該処理結果を映像、および/または、動画像として出力する場合、出力装置は、フレームバッファに書き込まれた表示データに従って、当該表示データを表示することができる全ての種類の装置のいずれかまたはその組み合わせにより実現される。出力装置は、限定でなく例として、タッチパネル、タッチディスプレイ、モニタ(限定でなく例として、液晶ディスプレイ、OELD(Organic Electroluminescence Display)など)、ヘッドマウントディスプレイ(HDM:Head Mounted Display)、プロジェクションマッピング、ホログラム、空気中など(真空であってもよい)に画像やテキスト情報等を表示可能な装置、スピーカ(音声出力)、プリンタなどを含む。なお、これらの出力装置は、3Dで表示データを表示可能であってもよい。
本開示の各実施形態のプログラムは、コンピュータに読み取り可能な記憶媒体に記憶された状態で提供されてもよい。 記憶媒体は、「一時的でない有形の媒体」に、プログラムを記憶可能である。プログラムは、限定でなく例として、ソフトウェアプログラムやコンピュータプログラムを含む。
記憶媒体は適切な場合、1つまたは複数の半導体ベースの、または他の集積回路(IC)(限定でなく例として、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向けIC(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピィ・ディスケット、フロッピィ・ディスク・ドライブ(FDD)、磁気テープ、固体ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の適切な記憶媒体、またはこれらの2つ以上の適切な組合せを含むことができる。記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。
また、本開示のプログラムは、当該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して、情報処理装置200に提供されてもよい。
また、本開示の各実施形態は、プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
なお、本開示のプログラムは、限定でなく例として、JavaScript(登録商標)、Pythonなどのスクリプト言語、C言語、Go言語、Swift、Kotlin、Java(登録商標)などのプログラミング言語などを用いて実装される。
情報処理装置200おける処理の少なくとも一部は、1以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。
情報処理装置200における処理の少なくとも一部を、他の情報処理装置により行う構成としてもよい。この場合、プロセッサ201により実現される各機能部の処理のうち少なくとも一部の処理を、他の情報処理装置で行う構成としてもよい。
<その他>
明示的な言及のない限り、本開示の実施形態における判定の構成は必須でなく、判定条件を満たした場合に所定の処理が動作されたり、判定条件を満たさない場合に所定の処理がされたりしてもよい。
明示的な言及のない限り、本開示の実施形態における判定の構成は必須でなく、判定条件を満たした場合に所定の処理が動作されたり、判定条件を満たさない場合に所定の処理がされたりしてもよい。
本開示では、明記されない限り、または文脈によって示されない限り、「または」は排他的ではなく包含的な意味である。したがって、本開示では、明記されていない限り、または文脈によって示されない限り、「AまたはB」は「A、B、またはその両方」を意味する。さらに、「AおよびBの少なくとも一方」は、「A、B、またはその両方」を意味する。さらに、明記されない限り、または文脈によって示されない限り、「a」、「an」、または「the」は「1つまたは複数」を意味するものとする。したがって、本明細書では、別段に明記されない限り、または文脈によって示されない限り、「an A」または「the A」は「1つまたは複数のA」を意味する。
本開示は、本開示の実施形態、および/または、実施例に対して、当業者が成し得る全ての変更、置換、変形、改変、および修正を包含する。同様に、適切な場合、添付の特許請求の範囲は、本開示の実施形態、および/または、実施例に対して、当業者が成し得る全ての変更、置換、変形、改変、および修正を包含する。さらに、本開示は、当業者が成し得る、本開示における実施形態、および/または、実施例の1つまたは複数の特徴と、本開示における他の実施形態、および/または、実施例の1つまたは複数の特徴との任意の組合せを包含する。
加えて、特定の機能を実施するように適合される、配置される、能力を有する、構成される、使用可能である、動作可能である、または動作できる装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲での参照は、その装置、システム、または構成要素がそのように適合される、配置される、能力を有する、構成される、使用可能にされる、動作可能にされる、または動作できる限り、その装置、システム、構成要素またはその特定の機能がアクティベートされ、オンにされ、またはロック解除されているか否かに関わらず、その装置、システム、構成要素を包含する。
本開示は、明示されない限り、いずれの実施形態または実施例を実施するに際して、事前に、または、実施の直前にユーザからの同意を取得してもよい。また、取得する同意は、包括的なものでもよく、都度取得するものでもよい。
以下、本開示の一例に係る実施形態について、図面を参照して説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図ではない。すなわち、本開示の一例は、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、以下の図面の記載において、同一または類似の部分には同一または類似の符号を付しており、図面は模式的なものであって、必ずしも実際の寸法や比率等とは一致しない。さらに、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
<用語>
実施形態について具体的に説明する前に、まず本開示で使用される用語について説明する。本開示における「仮想資産」とは、仮想通貨や、それに準ずる取引可能な資産を示す。「仮想通貨」とは、原則として、資金決済に関する法律(平成21年法律第59号)の第2条第5項第1号および第2号に規定されるもの、または、それに準ずるものであって、紙幣や硬貨のような現物をもたずに電子データとして流通し、ネットワークを通じて不特定多数の間で物品やサービスの対価として使用することができ、中央銀行などの公的な発行主体や管理者が必ずしも存在せずに専門の取引所や販売所で売買され、また、円やドルやユーロなどの実体的な通貨と交換できるものを意味するが、これに限られない。なお、仮想資産はこれに限定されず、ブロックチェーン上に記録された情報であって、ユーザ間で所有権をトランザクションによって送受信可能なものであればよい。
実施形態について具体的に説明する前に、まず本開示で使用される用語について説明する。本開示における「仮想資産」とは、仮想通貨や、それに準ずる取引可能な資産を示す。「仮想通貨」とは、原則として、資金決済に関する法律(平成21年法律第59号)の第2条第5項第1号および第2号に規定されるもの、または、それに準ずるものであって、紙幣や硬貨のような現物をもたずに電子データとして流通し、ネットワークを通じて不特定多数の間で物品やサービスの対価として使用することができ、中央銀行などの公的な発行主体や管理者が必ずしも存在せずに専門の取引所や販売所で売買され、また、円やドルやユーロなどの実体的な通貨と交換できるものを意味するが、これに限られない。なお、仮想資産はこれに限定されず、ブロックチェーン上に記録された情報であって、ユーザ間で所有権をトランザクションによって送受信可能なものであればよい。
上記仮想資産は、当該仮想資産を所有するユーザから他のユーザに送金することができる。このような仮想資産の取引は、特定の機関による管理の代わりに、ブロックチェーンとよばれる仮想資産の取引情報を記した分散型台帳により管理される。この取引情報は移動元から移動先への仮想資産の転移に関する情報を含むものである。取引情報は、移動元となる仮想資産を所有するユーザが所有する暗号鍵(仮想資産の所有権を証明する鍵)により電子署名され、かつ、ブロックチェーンネットワーク上に送信されて初めて、取引情報が分散型台帳に記録され、有効なものとして扱われる。一例として、暗号鍵により電子署名された取引情報がネットワーク上に送信されると、ブロックチェーンノードがその取引情報の正当性を検証し、検証した複数の取引情報を所定の時間周期毎にブロックというグループにまとめられる。まとめられた新たなブロックがブロックチェーンの末尾に追加されることで、取引情報が分散型台帳に記録される。すなわち、ブロックチェーンにおいては、取引情報を含んだブロックと呼ばれるデータが、時系列に並べられて管理され、仮想資産の移動を記した台帳としての役割を有している。
ユーザが所有する仮想資産を他のユーザに送金する際には、取引情報がブロックチェーンネットワークに送信される。「ブロックチェーンネットワーク」とは、所定の通信プロトコルに従って通信する2以上の情報処理装置200によって構成されたブロックチェーンに関する情報を共有するネットワークをいう。ブロックチェーンネットワークは一例として、P2Pネットワークである。
このブロックチェーンネットワークに参加するノードは、ネットワーク130を介して互いにブロックチェーンに関する情報を直接共有することができる。ここでは、一例として、取引情報はブロードキャスト通信でネットワーク130に送信されるとして説明するが、これに限定されず、ユニキャスト通信やマルチキャスト通信によって送信されてもよい。ブロックチェーンネットワークにブロードキャストされた取引情報は、ブロックチェーンネットワークに接続される各情報処理装置200で受信される。一例として、ブロードキャストされた取引情報は、当該取引情報を受信した情報処理装置200のうち任意の情報処理装置200によってブロックに格納される。ブロックチェーンネットワークに送信されたブロックは、PoW(Proof of Work)、PoS(Proof of Stake)などのアルゴリズムによる合意形成を経て、最後に確定したブロックの次につないで記録される。
<第1実施形態>
第1実施形態は、端末120あるいはサーバ110がブロックチェーンネットワークに電子署名された取引情報を送信することにより所定アドレスの有する仮想資産の残高が変動する取引システム1において、サーバ110が不正な取引情報がブロックチェーンネットワークに送信されたことを検知した場合に、その不正な取引情報をキャンセルするための取引情報をブロックチェーンネットワークに送信する実施形態である。
第1実施形態は、端末120あるいはサーバ110がブロックチェーンネットワークに電子署名された取引情報を送信することにより所定アドレスの有する仮想資産の残高が変動する取引システム1において、サーバ110が不正な取引情報がブロックチェーンネットワークに送信されたことを検知した場合に、その不正な取引情報をキャンセルするための取引情報をブロックチェーンネットワークに送信する実施形態である。
この第1実施形態にかかるプログラム、情報処理装置、及び情報処理方法では、サーバ110に第1取引情報を不正と判断するための条件を予め記憶させておく。そして、サーバ110が不正な取引情報がブロックチェーンネットワークに送信されたことを検知した場合に、その不正な取引情報よりも優先的に分散型台帳に取り込まれるキャンセル用の取引情報をブロックチェーンネットワークに送信する。この際、キャンセル用の取引情報を優先的に分散型台帳に取り込ませるために、サーバ110は、不正な取引情報に含まれる手数料を参照して、これよりも高い手数料を指定するキャンセル用の取引情報を作成し、そのキャンセル用の取引情報をブロックチェーンネットワークに送信する。
なお、ここで、取引情報毎に指定される「手数料」(トランザクションフィー)とは、マイニング作業に成功した者(マイナー)がその成功報酬の一部として受け取る仮想資産である。マイニング作業とは、例えば、PoW(Proof of Work)やPoS(Proof of Stake)を用いてブロックチェーンネットワークに送信された取引情報の正当性を検証し、複数の取引情報を格納したブロックをブロックチェーンの末尾に追加する作業をいう。
ブロックチェーンネットワークの仕組みにおいて、マイナーはPoW(Proof of Work)などを成立させるために多量の電気代とマシン代を消費する必要がある。そのため、高い手数料を指定する取引情報を優先してマイニング処理を行う。したがって、各取引情報に指定される手数料の値は、マイナーがその取引情報をブロックに含める作業に対する合理的なインセンティブとして働く。
この取引システム1では、例えば、サーバ110と、第1端末120Aと、第2端末120Bと、第3端末120Cと、がネットワーク130を介して接続される。ここで、サーバ110は、不正な取引情報を検知し、その不正な取引情報をキャンセルする取引情報をブロックチェーンネットワークに送信する情報処理装置である。また、第1端末120A乃至第3端末120Cは、それぞれ、取引システム1の利用者が仮想資産の取引のために利用する端末である。より具体的には、第1端末120Aは、仮想資産の移動元となる第1アドレスに対応する端末であり、第2端末120Bは、仮想資産の移動先となる第2アドレスに対応する端末であり、第3端末120Cは、限定でなく例として第1アドレスのユーザが管理する他の端末である。
本開示では、第1端末120Aが第1アドレスに対応する端末であり、第2端末120Bが第2アドレスに対応する端末であり、第3端末120Cが第3アドレスに対応する端末であるものとする。但し、各アドレス及びそのアドレスに対応する暗号鍵は、必ずしも端末により管理及び使用される必要はない。例えば、端末が暗号鍵を記録するソフトウェア(デスクトップ)ウォレットに代えて、サーバが暗号鍵を記録する場合をウェブ(オンライン)ウォレット、USB等の記録媒体が暗号鍵を記録する場合をハードウェアウォレット、紙媒体が暗号鍵を記録する場合をコールド(ペーパー)ウォレットであってもよい。
なお、以降では暗号鍵は、秘密鍵で暗号化を行い公開鍵で複合化を行う公開鍵暗号方式で用いられる秘密鍵として説明するが、これに限定されず、同じ鍵暗号化と複合化を行う共通鍵暗号方式の共通鍵等、任意の暗号鍵でもよい。また、以下の説明では仮想資産を一例としてビットコインとして説明するがこれに限定されない。
<第1実施形態の効果>
かかる第1実施形態によれば、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。より具体的には、第1実施形態では、サーバ110が、不正な取引情報よりも高い手数料を指定するキャンセル用の取引情報を作成し、ブロックチェーンネットワークに送信することで、キャンセル用の取引情報を優先的に処理されるよう仕向ける。これにより、ユーザの保有する秘密鍵が悪意のある第三者に知得された場合であっても、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。
かかる第1実施形態によれば、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。より具体的には、第1実施形態では、サーバ110が、不正な取引情報よりも高い手数料を指定するキャンセル用の取引情報を作成し、ブロックチェーンネットワークに送信することで、キャンセル用の取引情報を優先的に処理されるよう仕向ける。これにより、ユーザの保有する秘密鍵が悪意のある第三者に知得された場合であっても、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。
<第1実施形態の機能構成>
図3〜図7を用いてサーバ110及び端末120の機能構成を説明する。図3〜図7に開示の各機能部は、情報処理装置200が備えるプロセッサ201と、メモリ202と、ストレージ203と、入出力I/F204と、通信I/F205との協働により実現される。
図3〜図7を用いてサーバ110及び端末120の機能構成を説明する。図3〜図7に開示の各機能部は、情報処理装置200が備えるプロセッサ201と、メモリ202と、ストレージ203と、入出力I/F204と、通信I/F205との協働により実現される。
(1)サーバの機能構成
図3は、第1実施形態に係るサーバ110の機能的な構成を示すブロック図の一例を示す。サーバ110は、取引システム1において不正な取引情報の検知を行う情報処理装置の一例であり、入出力I/F311と、通信I/F312と、記憶部320と、制御部330とを有する。
図3は、第1実施形態に係るサーバ110の機能的な構成を示すブロック図の一例を示す。サーバ110は、取引システム1において不正な取引情報の検知を行う情報処理装置の一例であり、入出力I/F311と、通信I/F312と、記憶部320と、制御部330とを有する。
入出力I/F311は、例えば、入出力I/F204を用いて実現され得る。また、通信I/F312は、例えば、通信I/F205を用いて実現され得る。記憶部320は、例えば、メモリ202及び/又はストレージ203を用いて実現され得る。制御部330は、例えば、プロセッサ201が、記憶部320に格納されているプログラムを読みだして実行することで実現され得る。
また、記憶部320は、本実施形態にかかるサーバが実行するプログラム321と、ブロックチェーンネットワークに送信された取引情報を管理する取引情報DB332と、不正を検知するための条件を管理するルールDB323と、秘密鍵DB324と、を格納する。
このプログラム321は、例えば、ルールDB323を参照して、不正な取引情報を検知し、検知した不正な取引情報が分散型台帳に記録されないよう、キャンセル用の取引情報を作成して送信するためのプログラムである。なお、このプログラム321は、コンピュータに読み取り可能な記録媒体に記録されてもよく、この記録媒体からコンピュータにインストールされてもよい。
取引情報DB332には、例えば、ブロックチェーンネットワークに送信された取引情報に関する情報が管理される。取引情報は、仮想資産を移動させる。
取引情報DB332には、ブロックチェーンネットワークに送信された未署名取引情報が管理されていてもよい。未署名取引情報としては、電子署名がされていない取引情報、又は後述するマルチシグネチャ型の電子署名において電子署名数が足りていない取引情報が挙げられる。
図4に、取引情報DB332が記憶する取引情報のデータ構造の一部を模式的に示す。なお、図4に示すデータ構造は一例であり、取引情報は任意のデータ構造とすることが可能である。
取引情報はインプットとアウトプットを含む。アウトプットは、例えば送金金額と解錠条件とが指定されている。解錠条件は、今回送金する仮想資産を別の取引情報で使用する際に必要な条件である。なお、ある取引情報で作成されたアウトプットのうち、未だ別の取引情報のインプットで参照されていないアウトプットをUTXOともいう。
取引情報のインプットには、今回使用するUTXOを示す情報(例えばポインタ等である)や、UTXOの解放条件が指定されている。解放条件は、UTXOを使用するための条件であり、当該UTXOが送金された取引情報のアウトプットにおいて指定されている解錠条件に対応する。なお、取引情報は、インプットとアウトプットとを複数含んでも良い。
ここで取引情報T01では、2つのインプットと2つのアウトプットとを有している。インプットのそれぞれには、今回送金する仮想資産をユーザAが受け取ったUTXOを参照する情報と、当該UTXOが指定する解錠条件に対応する解放条件(この例ではユーザAの署名と公開鍵)が指定されている。また、アウトプットに、送金金額として、任意の量の仮想資産と、解錠条件として、送金相手の公開鍵のハッシュ値が指定されている。この例では、解錠条件に指定されている公開鍵のハッシュ値が、アウトプットで指定した仮想資産の宛先(アドレス)を意味している。以下の例では、解錠条件で指定されている任意のユーザの公開鍵のハッシュ値を、当該ユーザのアドレスとも呼ぶ。
なお、解錠条件に公開鍵のハッシュ値が指定されている場合は、解放条件は当該公開鍵と、その公開鍵に対応する秘密鍵による署名となる。また、解錠条件の記述の仕方は、図5の例に限定されず、同じ条件を示せればスクリプト等を用いてより簡略化してもよい。
詳細は後述するが、取引情報はマイナーによって検証され、承認されるとブロックと呼ばれる構造体に格納される。この検証・承認の作業をマイニングと呼ぶ。マイニングを行ったマイナーは手数料を得られる。一例として、手数料は、取引情報のインプットに指定したUTXOで移動された仮想資産の総額と、アウトプットで指定した送金金額の差額である。ただし、手数料の指定の仕方はこれに限定されない。例えば送金したい額に上乗せして指定するなど任意の方法でもよい。
取引情報T02には、インプットに取引情報T01のアウトプット(UTXO)へのポインタと、当該UTXOが指定する解錠条件に対応する解放条件(この例では、ユーザBの署名・公開鍵)とが設定されている。また、アウトプットとして、取引情報T01において、ユーザBが受け取った仮想資産のうち送金したい金額(典型的には代金から手数料を引いた金額)と、解錠条件(典型的には送金相手の公開鍵のハッシュ値)とが指定されている。
なお、詳細は後述するが、図4に示した取引情報では、いずれも解錠条件として単一のユーザの公開鍵のハッシュ値(アドレス)が指定されているが、これに限定されない。例えばアウトプットに指定される解錠条件は、複数のユーザを指定して、指定した複数のユーザのうち、所定数以上の署名と公開鍵を、当該アウトプットを参照する取引情報のインプットで指定することを示す解錠条件が指定されてもよい。この場合には、例えばアウトプットの解錠条件としては、複数のユーザの公開鍵のハッシュ値と、そのうち満たすべき数とが指定される。このようなアウトプットの解錠条件を指定して送金することを、マルチシグアドレスに送金するとも呼ぶ。
なお、取引情報の構造は図4の例に限定されず、任意の構造でよい。
次いで、図5に、取引情報DB332が記憶するブロックチェーンのデータ構造の一部を模式的に示す。図5は、時系列順に並んだブロックのうち、N+1番目のブロックの構造を示す図である。
ブロックの「ヘッダー」には、例えば、N番目のブロックのダイジェスト、タイムスタンプ、ターゲット、ナンスが格納される。
「N番目のブロックのダイジェスト」には、例えば、ブロックチェーンネットワーク上で、サーバ110及び端末120がそのN番目のブロックを一意に識別するための識別情報が格納される。N番目のブロックのダイジェストとしては、例えば、ブロックのハッシュ値を用いることができる。
「タイムスタンプ」には、ブロックを作成した場合にマイナーが付すタイムスタンプ又はブロックナンバーに関する情報が格納される。
「ターゲット」と「ナンス」は、例えば、PoW(Proof of Work)の技術を用いてマイニングを行う場合に用いられる値である。「ターゲット」は、マイニングの難易度に関する値である。「ナンス」は、ブロックを作成するときにマイナーによって作成される任意の値である。
マイニングについて具体的に説明する。マイニングにおいて、マイナーはN+1番目のブロックのダイジェスト(ハッシュ値)がターゲットの値以下となるナンスを発見し、適切なナンスを発見すると、発見したナンスを格納してN+1番目のブロックを作成する。マイニングを行うブロックチェーンノードは、この適切ナンスを発見することを目的に、ナンスの値を変更しながら、繰り返しブロックヘッダーのダイジェストの計算(マイニング)を行う。任意のナンスを含んだブロックヘッダーのダイジェストが、ターゲット以下となる確率は極めて小さいため、マイニングには過大なコストがかかる。
なお、マイニングはPoWの技術を用いる構成に限定されない。例えば各情報処理装置200は、作成されたブロックのヘッダーがターゲットの値以下になるか否かにかかわらず、ブロックをブロックチェーンの末尾に追加する構成でもよい。この場合、取引情報D332に記憶されるブロックは、ターゲット及びナンスを含まない構成でもよい。さらに、ブロックチェーンがプライベート型やコンソーシアム型である場合には、マイニングが行われない構成でもよい。
ブロックの「ボディ」には、複数の取引情報が格納されている。ブロックに格納された取引情報は、同じタイムスタンプデータを有する。
ルールDB323は、不正条件記憶部の一例であり、ルールDB323には、取引情報が第1アドレスのユーザが意図しない不正なものであるか否か検知するための不正条件(以下、「不正検知条件」ともいう。)が管理される。ルールDB323で管理される各条件は、ユーザごとに異なっていてもよい。
なお、ブロックの構造は図5の例に限定されず、任意の構造でもよい。
図6に、ルールDB323が記憶する条件のデータ構造の一部を模式的に示す。図6の例では、仮想資産の保有者のユーザ(以下、説明のために「第1アドレス」と呼ぶ。)と、当該ユーザが保有する仮想資産を移動させる取引情報を不正と判断するための条件とが対応付けられて記憶されている。図6の例では、ユーザが仮想資産を受け取る際に解錠条件として指定されるアドレス(当該ユーザの公開鍵のハッシュ値である。)と、条件とが対応付けられている。一例として、ルールDB323に記憶される条件としては、以下のものが挙げられる。
「移動先アドレス」には、仮想資産の移動先(アウトプットの解錠条件に指定されるアドレス)に関する条件を格納することができる。例えば、あるアドレス(第1アドレス)のユーザは、特定のアドレス(第2アドレス)を仮想資産の移動先とすることを予め指定することができる。この場合において、ある取引情報の送金先のアドレスが予め設定された特定の移動先(第2アドレス)に含まれない場合には、サーバ110の検知部333は、その取引情報を不正と判断することができる。
「取引時間」には、取引情報の送信日時に関する条件を格納することができる。例えば、第1アドレスのユーザは、取引情報をブロックチェーンネットワークに送信する一日のうちの特定の時間帯を予め指定することができる。この場合、第1アドレスから仮想資産を移動させる取引情報が指定された時間帯以外において送信された場合には、サーバ110の検知部333は、その取引情報を不正と判断することができる。
また、「取引時間」に、第1アドレスのユーザは、取引情報をブロックチェーンネットワークに送信しない特定の期間を予め指定することもできる。例えば、外出その他都合により仮想資産の取引をしない特定の期間が指定されている場合において、その期間内に第1アドレスから仮想資産を移動させる取引情報が送信された場合には、サーバ110の検知部333は、当該取引情報を不正と判断することができる。
「移動量」には、第1アドレスから一度に移動する仮想資産の量に関する条件を格納することができる。例えば、第1アドレスのユーザは、1つの取引情報により移動する仮想資産の量の上限を予め指定することができる。また、第1アドレスのユーザは、所定の期間内に送信された取引情報により移動する仮想資産の合計量の上限をあらかじめ指定することもできる。この場合、取引情報が指定された上限を超える量の仮想資産を移動させる場合にはサーバ110の検知部333は、その取引情報を不正と判断することができる。
「通知」には、第1アドレスから仮想資産を移動させる取引情報の送信に際し、当該取引情報に関する通知を別途受信するか否かに関する条件を格納することができる。例えば、第1アドレスのユーザは、第1アドレスから仮想資産を移動させる取引情報の送信前又は送信後に、第1アドレスから仮想資産を移動させる(または移動させた)旨の通知をサーバ110に対して行うか否かを予め指定することができる。この通知が「要」となっている場合において、第1アドレスから仮想資産を移動させる取引情報に前後して通知を受信しない場合には、サーバ110の検知部333は、当該取引情報を不正と判断することができる。
なお、ルールDB323は、上述したすべての条件を含む必要はなく、任意の条件から構成されてよい。また、ルールDB323は、上述した条件以外の条件を含んでもよい。
秘密鍵DB324は、秘密鍵記憶部の一例であり、秘密鍵DB324には、例えば、第1アドレスの秘密鍵に関する情報が管理される。図7に、秘密鍵DB324が記憶する秘密鍵に関する情報のデータ構造の一部を模式的に示す。
「移動元アドレス」には、仮想資産の移動元アドレス(第1アドレス)に関する情報が格納されている。また、「秘密鍵」には、第1アドレスに対応する秘密鍵に関する情報が格納されている。さらに、「第3アドレス」には、第1アドレスから仮想資産を移動させる取引情報が不正であると検知した場合に、第1アドレスから仮想資産を移動させる宛先に関する情報が格納されていてもよい。
なお、図7では、第3アドレスは、予め、移動元アドレスや秘密鍵と対応付けて記憶する態様を示しているが、これに限定されず、第3アドレスは、その都度ユーザが選択してもよい。
次いで、図3に戻り、制御部330について説明する。制御部330は、秘密鍵管理部331、ルール管理部332、検知部333と、取引情報作成部334と、を有する。
通信I/F312は、ブロックチェーンネットワークから、取引情報を受信する受信部としての機能も有する。また、通信I/F312は、第1端末120A乃至第3端末120Cから、要求や通知を受信する受信部としての機能を有する。このような要求や通知としては、第1端末120A乃至第3端末120Cから受信する、取引情報が不正なものであるか否か検知するための条件の登録要求・変更要求・削除要求、任意のアドレスの秘密鍵に関する情報の登録要求・変更要求・削除要求、及び、第1端末120A乃至第3端末120Cのユーザが自身のアドレスから仮想資産を移動させる取引情報を送信した旨の通知などが挙げられる。
通信I/F312は、ブロックチェーンネットワークに、取引情報や通知を送信する送信部としての機能を有する。また、通信I/F312は、第1端末120A乃至第3端末120Cに、通知を送信する送信部としての機能を有する。
これらの機能構成は、プロセッサ201が、記憶部320に格納されているプログラム321を読み出して実行することで実現される。また、サーバ110によって実現される機能構成は、実施形態や実施例に応じて、適宜、機能の省略、置換、及び追加が行われてもよい。
秘密鍵管理部331は、秘密鍵DBの情報を管理する機能を有する。一例として、サーバ110の受信部が第1端末120Aから第1アドレスのユーザの秘密鍵の登録要求を受けた場合には、秘密鍵管理部331は、第1アドレスと対応付けてその秘密鍵に関する情報を記憶する。また、秘密鍵に関する情報の更新要求又は削除要求を受けた場合には、秘密鍵管理部331は、それら要求に応じて、秘密鍵に関する情報の更新または削除をする。
ルール管理部332は、ルールDB323の情報を管理する機能を有する。一例として、サーバ110の受信部が第1端末120Aから不正検知条件(不正条件)の登録要求を受けた場合には、ルール管理部332は、第1アドレスと対応付けてその不正検知条件を記憶する。また、不正検知条件の更新要求又は削除要求を受けた場合には、ルール管理部332は、それら要求に応じて、不正検知条件の更新または削除をする。
検知部333は、ルールDB323に記憶された不正検知条件に基づいて、ブロックに格納される前の取引情報が当該取引情報における仮想資産の移動元のユーザが意図しない不正なものであるか否かを検知する機能を有する。一例として、サーバ110の受信部がブロックチェーンネットワークから、ルールDB323に不正検知条件が登録されたユーザのアドレスを移動元とする取引情報(検知部333の検知対象となる取引情報である。以下、検知対象の取引情報を「第1取引情報」とも呼ぶ。)を受信した場合には、検知部333はその取引情報がルールDB323に記憶された不正検知条件を満たすか否かを判断する。
第1取引情報が不正検知条件を満たす場合には、検知部333は、第1取引情報からその手数料に関する情報を特定する。そして、検知部333は、手数料に関する情報とともに、取引情報作成部334に対して、不正と判断した第1取引情報よりも高い手数料を指定するキャンセル用の取引情報であって、第1アドレスに対応する暗号鍵により電子署名された取引情報(以下、「第2取引情報」とも呼ぶ。)を作成するよう指示をする。
一方、第1取引情報が不正検知条件を満たさない場合には、検知部333は、第1取引情報が正当なものであると判断する。なお、検知部333は、第1取引情報が不正検知条件を満たす又は満たさないと判断した場合に、その旨を第1端末120Aに通知するようサーバ110の送信部に指示をしてもよい。
取引情報作成部334は、検知部333からの指示に応じて電子署名された第2取引情報を作成して、作成した第2取引情報をブロックチェーンネットワークに送信するようサーバ110の送信部に指示する機能を有する。
一例として、取引情報作成部334は、検知部333から第1取引情報の手数料に関する情報とともに第2取引情報を送信するよう指示を受けた場合には、第1取引情報よりも高い手数料を指定して、秘密鍵DBを参照して電子署名をしてする第2取引情報を作成する。そして、取引情報作成部334は、第2取引情報を速やかにブロックチェーンネットワークに送信するよう送信部に指示をする。なお、第2取引情報がアウトプットに指定する仮想資産の移動先は、特に制限されない。
これにより、仮想資産の取引システムにおいて、マイナーは、手数料のインセンティブにしたがって、不正な第1取引情報よりも優先的に第2取引情報をブロックチェーン(分散型台帳)に取り込ませることができる。第2取引情報がブロックチェーンに取り込まれることにより、第1取引情報のインプットに指定された未使用トランザクションアウトプットは、使用済トランザクションアウトプットとなる。そのため、第1取引情報による仮想資産の送金をキャンセルさせることができる。
以下、さらに付加的態様について説明する。
取引情報作成部334は、第2取引情報として、仮想資産を前記第1アドレスから第3アドレスに移動させる第2取引情報を作成することができる。この際、取引情報作成部334は、第1アドレスから仮想資産を退避させる移動先として、秘密鍵DB324に記憶された第3アドレスを参照することができる。第3アドレスは、第1アドレスを所有するユーザと同一の者が所有するアドレスであってもよいし、第1アドレスを所有するユーザが信頼する他の者が所有するアドレスであってもよい。ここで、他の者としては、サーバ110などが挙げられる。
これにより、サーバ110は、既に悪意のある第三者に秘密鍵が知られた第1アドレスから、仮想資産を退避させることができる。そのため、継続的に不正な第1取引情報がブロックチェーンネットワークに送信されることにより、第1アドレスが保有する仮想資産が脅かされることを回避することができる。
取引情報作成部334は、第1取引情報がブロックチェーンに取り込まれる前に、検知部333からの指示に応じて、速やかに第2取引情報をブロックチェーンネットワークに送信することが好ましい。より具体的には、検知部333が不正な第1取引情報を検知した場合には、第2取引情報を送信することについて第1アドレスのユーザに問い合わせ等をすることなく、速やかに第2取引情報をブロックチェーンネットワークに送信することができる。
また、取引情報作成部334は、取引情報DB322を参照し、最新のブロックが作成された日時とその日時からの経過時間を監視し、経過時間に応じて、速やかに第2取引情報をブロックチェーンネットワークに送信することができる。例えば、PofWの場合、約10分毎に新しいブロックが作成される。そのため、新たなブロックが作成される直前には、検知部333と取引情報作成部334がパフォーマンスを発揮できるよう、プロセッサ201、メモリ202、及び/又はストレージ203を割り当てることが好ましい。
これにより、第2取引情報の送信前に第1取引情報がブロックチェーンに取り込まれるリスクを低減することができる。
検知部333は、第1取引情報が不正検知条件を満たす場合に、第1取引情報に指定される未使用トランザクションアウトプットに関する情報を特定することができる。この場合、検知部333は、第2取引情報が特定した未使用トランザクションアウトプットをインプットに指定するよう取引情報作成部334に対して指示をすることができる。この場合、第1取引情報のインプットが複数の未使用トランザクションアウトプットを含む場合には、第2取引情報のインプットに指定される未使用トランザクションアウトプットは、第1取引情報のインプットで指定された未使用トランザクションアウトプットを少なくとも一つ含む。
これにより、第1取引情報のインプットに指定された未使用トランザクションアウトプットを、より直接的に使用済トランザクションアウトプットとすることができる。そのため、第1取引情報のインプットに指定された未使用トランザクションアウトプットと第2取引情報のインプットに指定された未使用トランザクションアウトプットとが相違することを回避することができる。すなわち、第1取引情報による仮想資産の送金がキャンセルされないリスクを低減することができる。
取引情報作成部334は、インプットとして第1アドレスが有する全ての未使用トランザクションアウトプットを指定した第2取引情報を作成することができる。
これにより、第2取引情報のインプットに指定された未使用トランザクションアウトプットは、第1取引情報のインプットに指定された未使用トランザクションアウトプットを含むものとなる。そのため、検知部333が第1取引情報に指定される未使用トランザクションアウトプットに関する情報を特定するステップを省略することができる。
(2)端末の機能構成
図8は、第1実施形態に係る第1端末120A乃至第3端末120Cの機能的な構成を示すブロック図の一例を示す。第1端末120A乃至第3端末120Cは、取引システム1において、ユーザが仮想資産の取引に用いる情報処理装置の一例であり、入出力I/F811と、通信I/F812と、記憶部820と、制御部830とを有する。
図8は、第1実施形態に係る第1端末120A乃至第3端末120Cの機能的な構成を示すブロック図の一例を示す。第1端末120A乃至第3端末120Cは、取引システム1において、ユーザが仮想資産の取引に用いる情報処理装置の一例であり、入出力I/F811と、通信I/F812と、記憶部820と、制御部830とを有する。
入出力I/F811は、例えば、入出力I/F204を用いて実現され得る。また、通信I/F812は、例えば、通信I/F205を用いて実現され得る。記憶部820は、例えば、メモリ202及び/又はストレージ203を用いて実現され得る。制御部830は、例えば、プロセッサ201が、記憶部820に格納されているプログラムを読みだして実行することで実現され得る。
入出力I/F821は、所定の画面を表示し、また、第1端末120A乃至第3端末120Cの画面に表示されたボタンや、第1端末120A乃至第3端末120Cのタッチパネルなどを用いてユーザ操作を受け付けて、操作に関する情報を制御部830に出力する。
第1端末120A乃至第3端末120Cの通信I/F822は、サーバ110に対して、取引情報の作成要求、取引情報のブロックチェーンネットワークへの送信要求、不正検知条件の登録要求、変更要求、及び削除要求、アドレスの秘密鍵に関する情報の登録要求、変更要求、及び削除要求、取引情報を送信した旨の通知を送信したりする送信部としての機能を有する。また、通信I/F822は、ブロックチェーンネットワークから第2取引情報などを受信したり、サーバ110から不正検知条件の登録、更新、及び削除要求に対する完了通知などを受信したりする受信部としての機能を有する。
第1端末120A乃至第3端末120Cの記憶部820は、例えば、第1端末120A乃至第3端末120Cが実行するプログラム821及び取引情報DB822を記憶する。このプログラム821は、限定ではなく一例として、取引システム1において仮想資産の取引処理を実行させるプログラムである。また、第1端末120Aのプログラム821は、不正検知条件や秘密鍵に関する情報の登録、更新、及び削除要求を送信する処理をさらに実行させるプログラムであってもよい。このプログラム821は、コンピュータ読み取り可能な記録媒体に記録されてもよく、この記録媒体からコンピュータにインストールされてもよい。
取引情報DB822は、取引情報DB322と同様の構成とすることができる。
第1実施形態においては、秘密鍵に関する情報はサーバ110の秘密鍵管理DB324により管理されるため、第1端末120A乃至第3端末120Cは秘密鍵を記憶しなくともよい。以下、第1端末120A乃至第3端末120Cは秘密鍵を記憶せず、サーバ110が暗号鍵を記録するウェブ(オンライン)ウォレットを前提に説明するが、ウォレットの態様はこれに限定されない。
第1端末120A乃至第3端末120Cの制御部830は、例えば、サーバ110に対して、取引情報の作成及び送信について指示をする取引情報作成部831、秘密鍵の管理に関する要求を行う秘密鍵管理部832と、を有する。なお、第2端末120B及び第3端末120Cは、秘密鍵管理部832を有しない構成としてもよい。
取引情報作成部831は、入出力I/F811からのユーザ操作を受け付けて、サーバ110に対して、取引情報を作成し、ブロックチェーンネットワークに送信するように、指示をする。
より具体的には、第1端末120A乃至第3端末120Cの取引情報作成部831は、アドレスに紐づけられた未使用トランザクションアウトプットを特定するようサーバ110に要求する機能と、特定した未使用トランザクションアウトプットを用いて取引情報を作成するようサーバ110に要求する機能と、作成した取引情報に秘密鍵による電子署名を行うようサーバ110に要求する機能とを有する。これにより、取引情報の作成から取引情報に対する電子署名をサーバ110に指示することができる。
秘密鍵管理部832は、入出力I/F811からのユーザ操作を受け付けて、サーバ110に対して、秘密鍵に関する情報の登録、更新、及び削除要求を行うよう第1端末120A乃至第3端末120Cの送信部に指示する機能を有する。
例えば、サーバ110の秘密鍵DB324に秘密鍵に関する情報を登録したい場合には、秘密鍵管理部832は、第1アドレスのユーザの操作に応じて、秘密鍵の登録要求をサーバ110に送信する。秘密鍵の登録要求に応じて、サーバ110の秘密鍵管理部331は、秘密鍵に関する情報を秘密鍵DB324に登録するとともに、登録完了通知を第1端末120Aに送信する。
ルール管理部833は、入出力I/F811からのユーザ操作を受け付けて、サーバ110に対して、不正検知条件の登録、更新、及び削除要求を行うよう第1端末120A乃至第3端末120Cの送信部に指示する機能を有する。
例えば、サーバ110のルールDB323に不正検知条件を登録したい場合には、ルール管理部833は、第1アドレスのユーザの操作に応じて、不正検知条件の登録要求をサーバ110に送信する。不正検知条件の登録要求に応じて、サーバ110のルール管理部332は、不正検知条件をルールDB332に登録するとともに、登録完了通知を第1端末120Aに送信する。
また、第1アドレスのユーザが不正検知条件を更新したい場合には、ルール管理部833は、第1アドレスのユーザの操作に応じて、不正検知条件の更新に関する情報をサーバ110に送信する。不正検知条件の更新要求に応じて、サーバ110のルール管理部332は、ルールDB332から不正検知条件を更新する第1アドレスを特定し、その不正検知条件を更新する。
<第1実施形態の取引システム動作処理>
図9〜10を参照し、第1実施形態に係るプログラムの処理について説明する。図9は、第1実施形態における取引システム1が行う処理を示すシーケンス図の一例を示し、図10は、第1実施形態における情報処理装置における処理のフローチャートの一例を示す。なお、以下で説明する処理手順は一例に過ぎず、各処理は、本開示の技術思想の範囲内において可能な限り変更されてよく、また、適宜、ステップの省略、置換、および追加が可能である。
図9〜10を参照し、第1実施形態に係るプログラムの処理について説明する。図9は、第1実施形態における取引システム1が行う処理を示すシーケンス図の一例を示し、図10は、第1実施形態における情報処理装置における処理のフローチャートの一例を示す。なお、以下で説明する処理手順は一例に過ぎず、各処理は、本開示の技術思想の範囲内において可能な限り変更されてよく、また、適宜、ステップの省略、置換、および追加が可能である。
(秘密鍵に関する情報及び不正検知条件を記憶する処理)
図9に示すステップS901において、第1端末120Aの秘密鍵管理部832は、ユーザ操作に応じて、秘密鍵に関する情報とともに秘密鍵の登録要求をサーバ110に対して送信するよう、通信I/F812に指示する。サーバ110の受信部は、秘密鍵の登録要求に応じて、秘密鍵に関する情報を秘密鍵DB324に記憶するよう、秘密鍵管理部331に指示する(ステップS902、S1001)。
図9に示すステップS901において、第1端末120Aの秘密鍵管理部832は、ユーザ操作に応じて、秘密鍵に関する情報とともに秘密鍵の登録要求をサーバ110に対して送信するよう、通信I/F812に指示する。サーバ110の受信部は、秘密鍵の登録要求に応じて、秘密鍵に関する情報を秘密鍵DB324に記憶するよう、秘密鍵管理部331に指示する(ステップS902、S1001)。
ステップS903において、第1端末120Aのルール管理部833は、ユーザ操作に応じて、不正検知条件の登録要求をサーバ110に対して送信するよう、通信I/F812に指示する。サーバ110の受信部は、不正検知条件の登録要求に応じて、不正検知条件をルールDB323に記憶するよう、ルール管理部332に指示する(ステップS904、S1002)。
上記のようにして記憶した秘密鍵に関する情報及び不正検知条件は、第1端末120Aから受信する変更要求または削除要求に応じて、サーバ110の秘密鍵管理部331又はルール管理部332が変更または削除することができる。
(第1取引情報を受信する処理)
ステップS905,S1003において、サーバ110の受信部は、ブロックチェーンネットワークから第1取引情報を受信し、取引情報DB332に記憶させる。
ステップS905,S1003において、サーバ110の受信部は、ブロックチェーンネットワークから第1取引情報を受信し、取引情報DB332に記憶させる。
(不正な第1取引情報を検知する処理)
ステップS906,S1004において、サーバ110の検知部333は、ルールDB323に記憶された不正検知条件に基づいて、取引情報DB332に記憶した第1取引情報が不正なものであるか否かを判断する。この際、検知部333が対象とする第1取引情報は、ブロックに格納する前の第1取引情報である。
ステップS906,S1004において、サーバ110の検知部333は、ルールDB323に記憶された不正検知条件に基づいて、取引情報DB332に記憶した第1取引情報が不正なものであるか否かを判断する。この際、検知部333が対象とする第1取引情報は、ブロックに格納する前の第1取引情報である。
検知部333は、ブロックに格納する前の第1取引情報が不正なものと判断する場合には、その第1取引情報のインプット及びアウトプットに関する情報から手数料を特定する。そして、検知部333は、特定した手数料とともに、取引情報作成部334に第2取引情報を作成するよう指示をする。なお、検知部333は、第1取引情報が不正検知条件の少なくとも一つを満たせば、第1取引情報を不正なものと判断することができる。
(第2取引情報を送信する処理)
ステップS907,S1005において、取引情報作成部334は、第1取引情報よりも高い手数料を指定する第2取引情報を作成し、秘密鍵DB324に記憶した秘密鍵により電子署名を行う。
ステップS907,S1005において、取引情報作成部334は、第1取引情報よりも高い手数料を指定する第2取引情報を作成し、秘密鍵DB324に記憶した秘密鍵により電子署名を行う。
ステップS908,S1006において、取引情報作成部334は、第2取引情報を速やかにブロックチェーンネットワークに送信するようサーバ110の送信部に指示をする。一度不正検知条件がサーバ110に登録されると、サーバ110は、第1取引情報の受信から処理を開始する。なお、不正件条件や秘密鍵は、ユーザ操作に応じて、適宜変更されてもよい。
なお、第1実施形態において、第2取引情報として第1取引情報による仮想資産の移動をキャンセルする取引情報を作成し、ブロックチェーンネットワークに送信してもよい。
これにより、第1アドレスのユーザは、不正な第1取引情報をキャンセルするための防御手段を得ることができる。そのため、例えば、悪意のある第三者は、秘密鍵を知得するインセンティブが低減する。また、例えば、第1アドレスのユーザは、これまで取引に使用してきた第1アドレスを捨ててまで、第3アドレス等に仮想資産を退避させる必要性が低減する。
具体的な動作処理としては、まず、取引情報作成部334は、第1取引情報による仮想資産の移動をキャンセルする第2取引情報を作成し、ブロックチェーンネットワークに送信するようサーバ110の送信部に指示する。
この場合の第2取引情報のデータ構造は、ブロックチェーンネットワークが特定のキャンセル用の取引情報を用意している場合には、その取引情報のデータ構造に準じることができる。キャンセル用の取引情報の一例として、キャンセル対象である第1取引情報を特定するためのトランザクションIDと、第1取引情報の手数料よりも高い手数料と、第1アドレスのユーザの電子署名を含むものが挙げられる。
また、キャンセルに使われる場合の第2取引情報の他の例として、第1アドレスの有する未使用トランザクションアウトプットの全て又は一部を第1アドレスから第1アドレスに移動させる取引情報を利用することもできる。
この第2取引情報によれば、手数料分が減少すること以外は、仮想資産は第1アドレスから第1アドレスに移動するものとなる。そのため、見た目上は、手数料を支払ってキャンセルをしたことと同等となる。このような取引情報であれば、ブロックチェーンネットワークが特定のキャンセル用の取引情報を用意していないような場合でも、用いることができる。
<<第1実施形態の変形例>>
次に、第1実施形態の変形例について説明する。第1実施形態の変形例は、サーバ110に代わってあるいは加えて、第1端末120Aが秘密鍵を管理する例である。本変形例では、第1端末120Aが第2取引情報を作成し、送信する処理を行うことができる。
次に、第1実施形態の変形例について説明する。第1実施形態の変形例は、サーバ110に代わってあるいは加えて、第1端末120Aが秘密鍵を管理する例である。本変形例では、第1端末120Aが第2取引情報を作成し、送信する処理を行うことができる。
以下の説明において、上記第1実施形態と同様の機能構成については同一の符号を付すと共に、説明を省略する。また、第1実施形態と同様の作用および効果についても、説明を省略する。以下、第1実施形態との相違点を中心に説明する。
<<変形例の効果>>
本変形例によれば、サーバ110の秘密鍵管理部331、取引情報作成部334、及び秘密鍵DB324を利用することなく、第1端末120Aの機能部だけで第2取引情報を利用した第1取引情報のキャンセルを実施することができる。
本変形例によれば、サーバ110の秘密鍵管理部331、取引情報作成部334、及び秘密鍵DB324を利用することなく、第1端末120Aの機能部だけで第2取引情報を利用した第1取引情報のキャンセルを実施することができる。
そのため、サーバ110が攻撃されることにより、サーバ110の管理する秘密鍵が流出するリスクを回避することが可能となる。
<<変形例の機能構成>>
(1)サーバ110の機能構成
本変形例では、サーバ110の制御部330は、秘密鍵管理部331、取引情報作成部334、及び秘密鍵DB324を有しなくともよい。
(1)サーバ110の機能構成
本変形例では、サーバ110の制御部330は、秘密鍵管理部331、取引情報作成部334、及び秘密鍵DB324を有しなくともよい。
また、サーバ110の検知部333は、不正な第1取引情報を検知した場合には、その第1取引情報が指定する手数料等の情報とともに、不正な取引情報を検知した旨の通知を第1端末120Aに対して送信するよう、サーバ110の送信部に指示をする。
(2)端末120の機能構成
第1端末120Aの制御部830は、例えば、取引情報作成部831、秘密鍵管理部832と、ルール管理部833とを有する。ここで、取引情報作成部831は、例えば、端末が取引情報の作成とブロックチェーンネットワークへの送信を行う機能を有する。また、秘密鍵管理部832は、例えば、秘密鍵を端末により管理し、その秘密鍵を用いた電子署名を行う機能を有する。以下、各機能部について説明する。
第1端末120Aの制御部830は、例えば、取引情報作成部831、秘密鍵管理部832と、ルール管理部833とを有する。ここで、取引情報作成部831は、例えば、端末が取引情報の作成とブロックチェーンネットワークへの送信を行う機能を有する。また、秘密鍵管理部832は、例えば、秘密鍵を端末により管理し、その秘密鍵を用いた電子署名を行う機能を有する。以下、各機能部について説明する。
第1端末120Aの受信部が不正な取引情報を検知した旨の通知をサーバ110から受信したときは、取引情報作成部831は、第2取引情報を作成し、秘密鍵管理部832に電子署名を行うよう指示をする。また、取引情報作成部831は、電子署名をした第2取引情報をブロックチェーンネットワーク上に送信するよう第1端末120Aの送信部に指示をする。
なお、取引情報作成部831が第2取引情報を作成し、電子署名を行う処理については、取引情報作成部334と同様とすることができる。
本変形例における取引情報作成部831は、入出力I/F811からのユーザ操作を受け付けて、取引情報を作成し、ブロックチェーンネットワークに送信するように、第1端末120A乃至第3端末120Cの送信部に指示することもできる。
この場合、第1端末120Aの取引情報作成部831は、アドレスに紐づけられた未使用トランザクションアウトプットを特定する機能と、特定した未使用トランザクションアウトプットを用いて取引情報を作成する機能と、作成した取引情報に秘密鍵による電子署名を行う機能とを有する。
本変形例における秘密鍵管理部832は、第1アドレスに対応する秘密鍵を管理し、他の機能部の要求に応じて取引情報に電子署名をする機能を有する。
例えば、秘密鍵管理部832は、不正な取引情報を検知した旨の通知をサーバ110から受信したときは、取引情報作成部831からの指示に応じて、第2取引情報に電子署名をする。
<<変形例の動作処理>>
本変形例では、秘密鍵に関する情報を記憶する処理(S901,S902)を省くことができる。
本変形例では、秘密鍵に関する情報を記憶する処理(S901,S902)を省くことができる。
また、不正な第1取引情報を検知する処理においては、検知部333が、第1取引情報を不正なものと判断する場合には、その第1取引情報が指定する手数料等の情報とともに、不正な取引情報を検知した旨の通知を第1端末120Aに対して送信するよう、サーバ110の送信部に指示をする。そして、第2取引情報を送信する処理は、第1端末の取引情報作成部831が、サーバ110の送信部からの指示に応じて、行うことができる。
<第2実施形態>
第2実施形態は、ユーザはマルチシグアドレス(マルチシグウォレット)を利用して仮想資産の送受信を行う例である。この例では、サーバ110がマルチシグアドレスの電子署名に用いる複数の秘密鍵のうちの少なくとも一つを記憶している。マルチシグアドレスのユーザは、自身のアドレスから仮想資産を送金する際に、作成した取引情報に対して自分の秘密鍵で電子署名することに加えて、サーバ110に電子署名を依頼する必要がある。典型的には、電子署名の署名依頼は署名対象の取引情報とあわせて、サーバ110に送信される。署名依頼を受信すると、サーバ110は、受信した取引情報が不正か否かを判断し、不正である場合には、その取引情報に電子署名を行わない。なお、以下では一例として、2of3のマルチシグアドレスの例について説明する。
第2実施形態は、ユーザはマルチシグアドレス(マルチシグウォレット)を利用して仮想資産の送受信を行う例である。この例では、サーバ110がマルチシグアドレスの電子署名に用いる複数の秘密鍵のうちの少なくとも一つを記憶している。マルチシグアドレスのユーザは、自身のアドレスから仮想資産を送金する際に、作成した取引情報に対して自分の秘密鍵で電子署名することに加えて、サーバ110に電子署名を依頼する必要がある。典型的には、電子署名の署名依頼は署名対象の取引情報とあわせて、サーバ110に送信される。署名依頼を受信すると、サーバ110は、受信した取引情報が不正か否かを判断し、不正である場合には、その取引情報に電子署名を行わない。なお、以下では一例として、2of3のマルチシグアドレスの例について説明する。
また、一例として端末120Aにおいて管理されるマルチシグアドレス(第1アドレス)に必要な複数の秘密鍵のうち、サーバ110が記憶し署名に用いる秘密鍵を「第1秘密鍵」という。また、端末120Aに記憶され、第1アドレスのユーザが署名に用いる秘密鍵を「第2秘密鍵」という。さらに、その他の媒体が記憶し必要に応じて署名に用いる秘密鍵を「第3秘密鍵」という。第3秘密鍵は、第1アドレスのユーザが使用する他の端末(第3端末120C)や他のサーバ110Bにより管理されていてもよい。また、第3秘密鍵は、第1秘密鍵を記憶するサーバ110により管理されていてもよい。
本開示では、第1端末120Aが第1アドレスに対応する端末であり、第2端末120Bが第2アドレスに対応する端末であり、第3端末120Cが第3アドレスに対応する端末であるものとする。なお、本開示では第1乃至第3アドレスはいずれもマルチすぐアドレスであるとする。但し、各アドレス及びそのアドレスに対応する暗号鍵は、必ずしも端末により管理及び使用される必要はない。例えば、端末が暗号鍵を記録するソフトウェア(デスクトップ)ウォレットに代えて、サーバが暗号鍵を記録する場合をウェブ(オンライン)ウォレット、USB等の記録媒体が暗号鍵を記録する場合をハードウェアウォレット、紙媒体が暗号鍵を記録する場合をコールド(ペーパー)ウォレットであってもよい。
なお、以降では暗号鍵は、秘密鍵で暗号化を行い公開鍵で複合化を行う公開鍵暗号方式で用いられる秘密鍵として説明するが、これに限定されず、同じ鍵暗号化と複合化を行う共通鍵暗号方式の共通鍵等、任意の暗号鍵でもよい。
<第2実施形態の効果>
かかる第2実施形態によれば、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。より具体的には、第2実施形態では、サーバ110が、不正な取引情報に対して第1秘密鍵により電子署名を行わないことを決定する。マルチシグアドレスから仮想資産を送金するための取引情報は、必要な数の署名がなされなければとなるまではマイナーによりブロックに取り込まれない。これにより、ユーザの保有する第2秘密鍵が悪意のある第三者に知得された場合であっても、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。
かかる第2実施形態によれば、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。より具体的には、第2実施形態では、サーバ110が、不正な取引情報に対して第1秘密鍵により電子署名を行わないことを決定する。マルチシグアドレスから仮想資産を送金するための取引情報は、必要な数の署名がなされなければとなるまではマイナーによりブロックに取り込まれない。これにより、ユーザの保有する第2秘密鍵が悪意のある第三者に知得された場合であっても、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。
<第2実施形態の機能構成>
以下、第2実施形態の機能構成について説明する。以下の説明において、上記第1実施形態と同様の機能構成については同一の符号を付すと共に、説明を省略する。また、第1実施形態と同様の作用および効果についても、説明を省略する。以下、第1実施形態との相違点を中心に説明する。
以下、第2実施形態の機能構成について説明する。以下の説明において、上記第1実施形態と同様の機能構成については同一の符号を付すと共に、説明を省略する。また、第1実施形態と同様の作用および効果についても、説明を省略する。以下、第1実施形態との相違点を中心に説明する。
(1)サーバの機能構成
第2実施形態において、サーバ110は、取引システム1において署名依頼があった取引情報が不正か否かを判断し、電子署名をするか否かの決定を行う情報処理装置の一例である。記憶部320が格納するプログラム321は、不正な未署名取引情報については、電子署名を行わないことを決定するためのプログラムである。
第2実施形態において、サーバ110は、取引システム1において署名依頼があった取引情報が不正か否かを判断し、電子署名をするか否かの決定を行う情報処理装置の一例である。記憶部320が格納するプログラム321は、不正な未署名取引情報については、電子署名を行わないことを決定するためのプログラムである。
秘密鍵DB324には、第1秘密鍵に関する情報が管理される。
検知部333は、ルールDB323に記憶された不正検知条件に基づいて、署名依頼の対象の取引情報が第1アドレスのユーザが意図しない不正なものであるか否かを検知する機能を有する。一例として、サーバ110の受信部がブロックチェーンネットワークから未署名取引情報を受信した場合には、検知部333はその取引情報がルールDB323に記憶された不正検知条件を満たすか否かを判断する。
取引情報が不正検知条件を満たす場合には、検知部333は、その取引情報に第1秘密鍵による電子署名を付さないことを決定し、その旨を取引情報作成部334に対して指示をする。
一方、署名依頼対象の取引情報が不正検知条件を満たさない場合には、検知部333は、その取引情報が正当なものであると判断する。そして、検知部333は、その取引情報に第1秘密鍵による電子署名を付すよう、取引情報作成部334に対して指示をする。
取引情報作成部334は、検知部333からの指示に応じて、取引情報に電子署名を行う。これにより、取引情報に必要な数の電子署名数がされることになる。取引情報作成部334は署名をした取引情報をブロックチェーンネットワークに送信する。
これにより、ユーザの意図しない不正な取引情報は未署名のままとなる。そのため、ユーザの保有する第2秘密鍵が悪意のある第三者に知得された場合であっても、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。
以下、さらに付加的態様について説明する。
なお、検知部333は、未署名取引情報が不正検知条件を満たすと判断した場合に、第1端末120Aのユーザに対して、不正検知条件を満たす取引情報を受信した旨の確認通知を送信するようサーバ110の送信部に指示をすることができる。
これにより、第1端末120Aのユーザは、第三者により自己の管理する第2秘密鍵が知得された可能性があることを速やかに知ることができる。そのため、第1端末120Aのユーザは、仮想資産をより安全なアドレスに退避させるなどの措置を迅速にとることができる。
また、不正検知条件を満たす取引情報が端末120Aのユーザにより作成されてサーバ110に送信された場合も考えられる。このように場合には、確認通知を受信した端末120Aの取引情報作成部831は、ユーザ操作に応じて、サーバ110に対して、取引情報に対して第1秘密鍵による電子署名を行うよう通知することができる。あるいは、第1アドレスのユーザは別途保存しておいた第3秘密鍵により不正と誤判断された取引情報に電子署名をしてもよい。
これにより、第1端末120Aのユーザが作成した真正な取引情報であって、何らかの事情により不正検知条件を満たしてしまう取引情報についても、滞りなくブロックに格納させることができる。
(2)端末の機能構成
第2実施形態における第1端末120A乃至第3端末120Cは、取引システム1において、ユーザが仮想資産の取引に用いる情報処理装置の一例であり、第1実施形態における第1端末120A乃至第3端末120Cと同様の構成とすることができる。
第2実施形態における第1端末120A乃至第3端末120Cは、取引システム1において、ユーザが仮想資産の取引に用いる情報処理装置の一例であり、第1実施形態における第1端末120A乃至第3端末120Cと同様の構成とすることができる。
<第2実施形態の取引システム動作処理>
図11〜12を参照し、第2実施形態に係るプログラムの処理について説明する。図11は、第2実施形態における取引システム1が行う処理を示すシーケンス図の一例を示し、図12は、第2実施形態における情報処理装置における処理のフローチャートの一例を示す。なお、以下で説明する処理手順は一例に過ぎず、各処理は、本開示の技術思想の範囲内において可能な限り変更されてよく、また、適宜、ステップの省略、置換、および追加が可能である。
図11〜12を参照し、第2実施形態に係るプログラムの処理について説明する。図11は、第2実施形態における取引システム1が行う処理を示すシーケンス図の一例を示し、図12は、第2実施形態における情報処理装置における処理のフローチャートの一例を示す。なお、以下で説明する処理手順は一例に過ぎず、各処理は、本開示の技術思想の範囲内において可能な限り変更されてよく、また、適宜、ステップの省略、置換、および追加が可能である。
(秘密鍵に関する情報及び不正検知条件を記憶する処理)
図11に示すステップS1103において、第1端末120Aのルール管理部833は、ユーザ操作に応じて、不正検知条件の登録要求をサーバ110に対して送信するよう、通信I/F812に指示する。サーバ110の受信部は、不正検知条件の登録要求に応じて、不正検知条件をルールDB323に記憶するよう、ルール管理部332に指示する(ステップS1104、S1202)。このとき、サーバ110は、不正検知条件の登録要求を行ったユーザごとに鍵ペア(秘密鍵と公開鍵)を生成し、不正検知条件と対応付けて記憶することが好ましい。サーバ110において、ユーザごとに異なる秘密鍵を用いて電子署名をすることで、よりセキュリティレベルが向上する。
図11に示すステップS1103において、第1端末120Aのルール管理部833は、ユーザ操作に応じて、不正検知条件の登録要求をサーバ110に対して送信するよう、通信I/F812に指示する。サーバ110の受信部は、不正検知条件の登録要求に応じて、不正検知条件をルールDB323に記憶するよう、ルール管理部332に指示する(ステップS1104、S1202)。このとき、サーバ110は、不正検知条件の登録要求を行ったユーザごとに鍵ペア(秘密鍵と公開鍵)を生成し、不正検知条件と対応付けて記憶することが好ましい。サーバ110において、ユーザごとに異なる秘密鍵を用いて電子署名をすることで、よりセキュリティレベルが向上する。
上記のようにして記憶した秘密鍵に関する情報及び不正検知条件は、第1端末120Aから受信する変更要求または削除要求に応じて、サーバ110の秘密鍵管理部331又はルール管理部332が変更または削除することができる。
(未署名取引情報を受信する処理)
ここで、端末120Aの秘密鍵が略取され、悪意のあるユーザ(一例として端末120Bのユーザとする)によって端末120Aのユーザが所有する仮想資産を盗み取るための取引情報を作成した場合を例に説明する。この例では端末120Aのユーザの仮想資産はマルチシグウォレットで管理されているため、秘密鍵を略取したユーザもサーバ110に電子署名を依頼する必要がある。そのため、端末120Bのユーザは、まず、端末120Aのユーザの仮想資産を任意のアドレスへ移動させる取引情報を作成し、端末120Aから略取した秘密鍵で電子署名する。そして、署名した取引情報をサーバ110に送信する。
ステップS1105,S1203において、サーバ110の受信部は、端末120Bから未署名取引情報を受信し、取引情報DB332に記憶させる。
ここで、端末120Aの秘密鍵が略取され、悪意のあるユーザ(一例として端末120Bのユーザとする)によって端末120Aのユーザが所有する仮想資産を盗み取るための取引情報を作成した場合を例に説明する。この例では端末120Aのユーザの仮想資産はマルチシグウォレットで管理されているため、秘密鍵を略取したユーザもサーバ110に電子署名を依頼する必要がある。そのため、端末120Bのユーザは、まず、端末120Aのユーザの仮想資産を任意のアドレスへ移動させる取引情報を作成し、端末120Aから略取した秘密鍵で電子署名する。そして、署名した取引情報をサーバ110に送信する。
ステップS1105,S1203において、サーバ110の受信部は、端末120Bから未署名取引情報を受信し、取引情報DB332に記憶させる。
(不正な取引情報を検知する処理)
ステップS1106,S1204において、サーバ110の検知部333は、ルールDB323に記憶された不正検知条件に基づいて、取引情報DB332に記憶した取引情報が不正なものであるか否かを判断する。
ステップS1106,S1204において、サーバ110の検知部333は、ルールDB323に記憶された不正検知条件に基づいて、取引情報DB332に記憶した取引情報が不正なものであるか否かを判断する。
(第1秘密鍵による電子署名をするか否かの決定する処理)
ステップS1107,S1205において、検知部333は、取引情報が不正なものと判断した場合には、取引情報作成部334に対して、第1秘密鍵による電子署名を行わないよう指示をする。なお、検知部333は、取引情報が不正検知条件の少なくとも一つを満たせば、未署名取引情報を不正なものと判断することができる。
ステップS1107,S1205において、検知部333は、取引情報が不正なものと判断した場合には、取引情報作成部334に対して、第1秘密鍵による電子署名を行わないよう指示をする。なお、検知部333は、取引情報が不正検知条件の少なくとも一つを満たせば、未署名取引情報を不正なものと判断することができる。
なお、S1206において、検知部333は、取引情報が真正なものと判断する場合には、取引情報作成部334に対して、第1秘密鍵による電子署名を行うよう指示をする。
なお、この第2実施形態によれば、サーバ110の管理者が不正により、第1秘密鍵を用いて取引情報を作成した場合であっても、ユーザの使用する第1端末120Aが第2秘密鍵により電子署名を行わないことができる。また、サーバ110が攻撃されることにより、サーバ110の管理する第1秘密鍵が流出した場合であっても、ユーザの使用する第1端末120Aが第2秘密鍵により電子署名を行わないことができる。これにより、不正な取引情報が分散型台帳に記録されないようにすることができる。
なお、上述したとおり、本発明は、上記の実施形態及び実施例に限定されるものではなく、その要旨を逸脱しない範囲内において様々な変形が可能である。すなわち、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、秘密鍵に代えて共通鍵を用いてもよいし、ブロックチェーンネットワークは、ブロックチェーンに関する情報をノード間で分散共有するネットワークであれば、必ずしもその通信手段がP2P通信プロトコルに従う必要はない。また、既述の実施形態においてはUTXOに基づいてアドレスの残高を管理する構成について説明したがこれに限定されず、アカウントベースにより残高を管理する構成でもよい。この場合、トランザクションを生成する際には単に送信したい仮想資産の量や手数料の額を直接指定してもよい。
1…取引システム、110…サーバ、110A…サーバ、110B…サーバ、120…端末、120A…第1端末、120B…第2端末、120C…第3端末、130…ネットワーク、200…情報処理装置、201…プロセッサ、202…メモリ、203…ストレージ、204…入出力インタフェース(入出力I/F)、205…通信インタフェース(通信I/F)、320…記憶部、321…プログラム、332…取引情報DB、323…ルールDB、324…秘密鍵DB、330…制御部、331…秘密鍵管理部、332…ルール管理部、333…検知部、334…取引情報作成部、820…記憶部、821…プログラム、822…取引情報DB、830…制御部、831…取引情報作成部、832…秘密鍵管理部、833…ルール管理部
Claims (7)
- 情報処理装置に、
所定の手数料を指定して、仮想資産を第1アドレスから第2アドレスに移動させる第1取引情報を受信するステップと、
ブロックに格納する前の前記第1取引情報が、予め設定された不正条件を満たす場合に、前記第1取引情報よりも高い手数料を指定する第2取引情報であって、仮想資産を前記第1アドレスから前記第2アドレスとは異なるアドレスに移動させる第2取引情報を作成するステップと、
前記第2取引情報をブロックチェーンネットワークに送信するステップと、を実行させる、プログラム。 - 前記ブロックチェーンネットワークに送信するステップは、
前記第2取引情報として、前記第1アドレスが管理するすべての仮想資産を前記第2アドレスとは異なる前記アドレスに移動させるステップを含む、
請求項1に記載のプログラム。 - 前記不正条件は、
前記受信した第1取引情報によって移動する仮想資産の量が所定の量を超えること、又は、所定の期間に受信した前記第1取引情報によって移動する仮想資産の総量が所定の量を超えることを含む、
請求項1又は2に記載のプログラム。 - 仮想資産を前記第1アドレスから移動させる取引情報がブロックチェーンネットワークに送信される際に、前記第1アドレスに対応するユーザから該取引情報に関する通知を受け付けるステップをさらに実行し、
前記不正条件は、
受信した前記第1取引情報に対応する前記通知を受信しないことを含む、
請求項1又は2に記載のプログラム。 - 前記不正条件は、
受信した前記第1取引情報において、前記第2アドレスが予め設定された移動先に含まれないことを含む、
請求項1又は2に記載のプログラム。 - 第1取引情報が不正と判断するための不正条件を記憶する不正条件記憶部と、
所定の手数料により仮想資産を第1アドレスから第2アドレスに移動させる第1取引情報を受信する受信部と、
受信した前記第1取引情報が不正と判断するための要件を満たすか否かを判定する検知部と、
ブロックに格納する前の前記第1取引情報が前記要件を満たす場合に、前記第1取引情報よりも高い手数料を指定する第2取引情報であって、仮想資産を前記第1アドレスから前記第2アドレスとは異なるアドレスに移動させる第2取引情報を作成する取引情報作成部と、
前記第2取引情報をブロックチェーンネットワークに送信する送信部と、を有する、
情報処理装置。 - 情報処理装置が、
所定の手数料を指定して、仮想資産を第1アドレスから第2アドレスに移動させる第1取引情報を受信するステップと、
ブロックに格納する前の前記第1取引情報、予め設定された不正条件を満たす場合に、前記第1取引情報よりも高い手数料を指定する第2取引情報であって、仮想資産を前記第1アドレスから前記第2アドレスとは異なるアドレスに移動させる第2取引情報を作成するステップと、
前記第2取引情報をブロックチェーンネットワークに送信するステップと、を実行する、
情報処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019021780A JP2020129283A (ja) | 2019-02-08 | 2019-02-08 | プログラム、情報処理装置、及び情報処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019021780A JP2020129283A (ja) | 2019-02-08 | 2019-02-08 | プログラム、情報処理装置、及び情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020129283A true JP2020129283A (ja) | 2020-08-27 |
Family
ID=72174650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019021780A Ceased JP2020129283A (ja) | 2019-02-08 | 2019-02-08 | プログラム、情報処理装置、及び情報処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020129283A (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002358417A (ja) * | 2001-03-30 | 2002-12-13 | Mizuho Corporate Bank Ltd | バンキング処理方法、バンキング処理システム及びバンキング処理プログラム |
JP2007226682A (ja) * | 2006-02-24 | 2007-09-06 | Oki Consulting Solutions Co Ltd | 異常取引防止システムおよび防止方法 |
WO2018022131A1 (en) * | 2016-07-25 | 2018-02-01 | Tbcasoft, Inc. | Digital property management on a distributed transaction consensus network |
-
2019
- 2019-02-08 JP JP2019021780A patent/JP2020129283A/ja not_active Ceased
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002358417A (ja) * | 2001-03-30 | 2002-12-13 | Mizuho Corporate Bank Ltd | バンキング処理方法、バンキング処理システム及びバンキング処理プログラム |
JP2007226682A (ja) * | 2006-02-24 | 2007-09-06 | Oki Consulting Solutions Co Ltd | 異常取引防止システムおよび防止方法 |
WO2018022131A1 (en) * | 2016-07-25 | 2018-02-01 | Tbcasoft, Inc. | Digital property management on a distributed transaction consensus network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11784799B2 (en) | Secure distribution and management of cryptographic keys within a computing environment using distributed ledgers | |
CA3065479C (en) | Secure management of transfers of digital assets between computing devices using permissioned distributed ledgers | |
US20140279403A1 (en) | Methods and systems for executing mobile currency transactions | |
US11336440B2 (en) | Secure management and regeneration of cryptographic keys within a computing environment using permissioned distributed ledgers | |
CA3065463A1 (en) | Secure distribution of digital assets within a computing environment using permissioned distributed ledgers | |
US11501290B2 (en) | Digital currency transfer | |
CN111062717B (zh) | 一种数据转移处理方法、装置和计算机可读存储介质 | |
US12020236B1 (en) | Purchase incentive data structures for mobile wallet applications | |
CN109447601A (zh) | 在区块链网络中执行见证人转移交易的方法 | |
US20220067717A1 (en) | Blockchain system that includes bank nodes each having separate ledgers for identity, digital currency and other functions, and operation method thereof | |
JP2020129284A (ja) | プログラム、情報処理装置、及び情報処理方法 | |
US11887104B1 (en) | Mobile wallet with offline payment | |
JP6521421B1 (ja) | 通貨情報処理装置および通貨情報処理システム | |
JP2020021205A (ja) | 情報処理方法、情報処理装置、およびプログラム | |
US20220198442A1 (en) | Secure communications for mobile wallet applications | |
JP2020134958A (ja) | プログラム、情報処理方法、及び情報処理装置 | |
US11361286B1 (en) | Identifying negotiable instrument fraud using distributed ledger systems | |
JP2020129283A (ja) | プログラム、情報処理装置、及び情報処理方法 | |
JP2020129282A (ja) | プログラム、情報処理装置、及び情報処理方法 | |
US11005882B1 (en) | Reputation-based transaction security | |
KR102070252B1 (ko) | 블록체인 기반 결제 서비스 서버 및 이의 동작 방법 | |
JP7448191B2 (ja) | データ管理システム | |
US20230334470A1 (en) | Blockchain interoperability system for native asset creation | |
US20230368292A1 (en) | Cryptocurrency payment based on a canceled fiat transaction | |
US20230259604A1 (en) | System and method for authenticating users via pattern based digital resources on a distributed development platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220126 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221205 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230127 |
|
A045 | Written measure of dismissal of application [lapsed due to lack of payment] |
Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20230529 |