(57)【要約】【課題】ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにするプログラム、情報処理装置、及び情報処理方法を提供すること。【解決手段】情報処理装置に、所定の手数料を指定して、仮想資産を第１アドレスから第２アドレスに移動させる第１取引情報を受信するステップと、ブロックに格納する前の前記第１取引情報が、予め設定された不正条件を満たす場合に、前記第１取引情報よりも高い手数料を指定する第２取引情報であって、仮想資産を前記第１アドレスから前記第２アドレスとは異なるアドレスに移動させる第２取引情報を作成するステップと、前記第２取引情報をブロックチェーンネットワークに送信するステップと、を実行させる、プログラム。【選択図】図１０
2020129283.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に、
所定の手数料を指定して、仮想資産を第１アドレスから第２アドレスに移動させる第１取引情報を受信するステップと、
ブロックに格納する前の前記第１取引情報が、予め設定された不正条件を満たす場合に、前記第１取引情報よりも高い手数料を指定する第２取引情報であって、仮想資産を前記第１アドレスから前記第２アドレスとは異なるアドレスに移動させる第２取引情報を作成するステップと、
前記第２取引情報をブロックチェーンネットワークに送信するステップと、を実行させる、プログラム。
【請求項２】
前記ブロックチェーンネットワークに送信するステップは、
前記第２取引情報として、前記第１アドレスが管理するすべての仮想資産を前記第２アドレスとは異なる前記アドレスに移動させるステップを含む、
請求項１に記載のプログラム。
【請求項３】
前記不正条件は、
前記受信した第１取引情報によって移動する仮想資産の量が所定の量を超えること、又は、所定の期間に受信した前記第１取引情報によって移動する仮想資産の総量が所定の量を超えることを含む、
請求項１又は２に記載のプログラム。
【請求項４】
仮想資産を前記第１アドレスから移動させる取引情報がブロックチェーンネットワークに送信される際に、前記第１アドレスに対応するユーザから該取引情報に関する通知を受け付けるステップをさらに実行し、
前記不正条件は、
受信した前記第１取引情報に対応する前記通知を受信しないことを含む、
請求項１又は２に記載のプログラム。
【請求項５】
前記不正条件は、
受信した前記第１取引情報において、前記第２アドレスが予め設定された移動先に含まれないことを含む、
請求項１又は２に記載のプログラム。
【請求項６】
第１取引情報が不正と判断するための不正条件を記憶する不正条件記憶部と、
所定の手数料により仮想資産を第１アドレスから第２アドレスに移動させる第１取引情報を受信する受信部と、
受信した前記第１取引情報が不正と判断するための要件を満たすか否かを判定する検知部と、
ブロックに格納する前の前記第１取引情報が前記要件を満たす場合に、前記第１取引情報よりも高い手数料を指定する第２取引情報であって、仮想資産を前記第１アドレスから前記第２アドレスとは異なるアドレスに移動させる第２取引情報を作成する取引情報作成部と、
前記第２取引情報をブロックチェーンネットワークに送信する送信部と、を有する、
情報処理装置。
【請求項７】
情報処理装置が、
所定の手数料を指定して、仮想資産を第１アドレスから第２アドレスに移動させる第１取引情報を受信するステップと、
ブロックに格納する前の前記第１取引情報、予め設定された不正条件を満たす場合に、前記第１取引情報よりも高い手数料を指定する第２取引情報であって、仮想資産を前記第１アドレスから前記第２アドレスとは異なるアドレスに移動させる第２取引情報を作成するステップと、
前記第２取引情報をブロックチェーンネットワークに送信するステップと、を実行する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、プログラム、情報処理装置、及び情報処理方法に関する。
【背景技術】
【０００２】
近年、通信機能を有するコンピュータ、スマートフォン、タブレット、携帯電話機などの端末を用いてネットワーク経由により、ユーザが仮想資産の売買取引を行えるようにしたサービスが広く一般に利用されている。例えば、特許文献１には、かかる仮想資産の取引において第三者が暗号鍵を不正に入手した場合などに、不正な取引情報に基づく取引の実行を抑制するための方法として、公開鍵を用いたチャレンジレスポンス認証を用いる方法が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−９３４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
仮想資産の取引は、特定の機関による管理の代わりに、ネットワーク上に存在するブロックチェーンとよばれる仮想資産の取引情報を記した分散型台帳により管理される。通常の中央集権的な仕組みでは中央機関が送金に関するコントロール権を有するが、仮想資産の取引では中央機関が存在しない。そのため、ユーザから第三者への送金が完了した時点で第三者以外が仮想資産にアクセスすることはできないし、また、送金が不正なものであるか否かを判断することもできない。
【０００５】
ここで、特許文献１のように、ユーザに対して取引の都度にその取引情報の正当性をチャレンジレスポンス認証等により確認する方法も考えられる。しかしながら、仮想資産の取引の都度にチャレンジレスポンス認証を求めたのでは、取引が煩わしくなり、取引の迅速性も損なわれるという課題がある。
【０００６】
そのため、中央機関に代わり、暗号鍵を不正に入手した第三者による不正な取引情報を検知し、ユーザに過度の負担を求めることなく、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにする仕組みが求められている。
【０００７】
そこで、本開示は、かかる事情に鑑みてなされたものであり、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにするプログラム、情報処理装置、及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本開示の一実施形態に係るプログラムは、情報処理装置に、所定の手数料を指定して、仮想資産を第１アドレスから第２アドレスに移動させる第１取引情報を受信するステップと、ブロックに格納する前の前記第１取引情報が、予め設定された不正条件を満たす場合に、前記第１取引情報よりも高い手数料を指定する第２取引情報であって、仮想資産を前記第１アドレスから前記第２アドレスとは異なるアドレスに移動させる第２取引情報を作成するステップと、前記第２取引情報をブロックチェーンネットワークに送信するステップと、を実行させる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態の一態様に係る取引システム１の構成を示す。
【図２】図２は、本開示に係る情報処理装置のハードウェア構成の一例を示す。
【図３】図３は、第１実施形態に係るサーバ１１０の機能的な構成を示すブロック図の一例を示す。
【図４】図４は、取引情報ＤＢ３３２が記憶する第１取引情報のデータ構造の一例を示す。
【図５】図５は、取引情報ＤＢ３３２が記憶するブロックチェーンのデータ構造の一例を示す。
【図６】図６は、ルールＤＢ３２３が記憶する条件のデータ構造の一例を示す。
【図７】図７は、秘密鍵ＤＢ３２４が記憶する秘密鍵に関する情報のデータ構造の一例を示す。
【図８】図８は、第１実施形態に係る第１端末１２０Ａ乃至第３端末１２０Ｃの機能的な構成を示すブロック図の一例を示す。
【図９】図９は、第１実施形態における取引システム１が行う処理を示すシーケンス図の一例を示す。
【図１０】図１０は、第１実施形態におけるサーバ１１０における処理のフローチャートの一例を示す。
【図１１】図１１は、第２実施形態における取引システム１が行う処理を示すシーケンス図の一例を示す。
【図１２】図１２は、第２実施形態におけるサーバ１１０における処理のフローチャートの一例を示す。
【発明を実施するための形態】
【００１０】
＜法令遵守＞
本明細書に記載の開示は、実施される場合、本開示を実施する各国の法令を遵守のうえで実施される。また、本明細書に記載の開示は、各国の法令を遵守するために必要な、当業者が成し得る全ての変更、置換、変形、改変、および修正をもって実施される。
【００１１】
本開示に係るプログラム、情報処理装置、及び情報処理方法を実施するための形態について、図面を参照して説明する。
【００１２】
＜システム構成＞
図１は、本開示の一実施形態に係る情報処理方法を有効に実施するための取引システム１の構成を示す。図１に開示されるように、取引システム１では、ネットワーク１３０を介してサーバ１１０Ａ，サーバ１１０Ｂと、端末１２０Ａ、端末１２０Ｂ、端末１２０Ｃが接続される。サーバ１１０Ａ，サーバ１１０Ｂと、端末１２０Ａ，端末１２０Ｂ，端末１２０Ｃは、分散型台帳（以下「ブロックチェーン」ともいう。）を構成している。本開示では、ブロックチェーンは、中央管理者のいないパブリック型の構成として説明するが、これに限定されずプライベート型や、コンソーシアム型でもよい。
【００１３】
本開示において、サーバ１１０Ａと、サーバ１１０Ｂとをそれぞれ区別する必要がない場合は、サーバ１１０Ａとサーバ１１０Ｂとは、それぞれサーバ１１０と表現されてもよい。
【００１４】
本開示において、端末１２０Ａと、端末１２０Ｂと、端末１２０Ｃとをそれぞれ区別する必要がない場合は、端末１２０Ａと端末１２０Ｂと端末１２０Ｃとは、それぞれ端末１２０と表現されてもよい。
【００１５】
本開示において、サーバ１１０と、端末１２０とをそれぞれ区別する必要がない場合は、サーバ１１０と端末１２０とは、それぞれ情報処理装置２００と表現されてもよい。なお、ネットワーク１３０に接続される情報処理装置２００の数は限定されない。
【００１６】
サーバ１１０は、ネットワーク１３０を介してユーザが利用する端末１２０に、所定のサービスを提供する。所定のサービスは、限定でなく例として、決済サービス、金融サービス、電子商取引サービス、インスタントメッセンジャーを代表とするＳＮＳ（Social Networking Service）、楽曲・動画・書籍などのコンテンツ提供サービスなどを含む。ユーザが端末１２０を介して所定のサービスを利用することで、サーバ１１０は１以上の端末１２０に所定のサービスを提供することができる。
【００１７】
必要に応じて、ユーザＸが利用する端末を端末１２０Ｘと表現し、ユーザＸまたは端末１２０Ｘに対応づけられた、所定のサービスにおけるユーザ情報をユーザ情報Ｘと表現する。なお、ユーザ情報とは、所定のサービスにおいてユーザが利用するアカウントに対応付けられたユーザの情報である。ユーザ情報は、限定でなく例として、ユーザにより入力される、または、所定のサービスにより付与される、ユーザの名前、ユーザのアイコン画像、ユーザの年齢、ユーザの性別、ユーザの住所、ユーザの趣味趣向、ユーザの識別子などのユーザに対応づけられた情報、ユーザに対応付けられた電子バリュー（電子マネー）の残高情報、ユーザに対応付けられたクレジットカード情報（クレジットカード番号など）を含み、これらのいずれか一つまたは、組み合わせであってもよい。
【００１８】
ネットワーク１３０は、２以上の情報処理装置２００を接続する役割を担う。ネットワーク１３０は、端末１２０がサーバ１１０に接続した後、データを送受信することができるように接続経路を提供する通信網を意味する。
【００１９】
ネットワーク１３０のうちの１つまたは複数の部分は、有線ネットワークや無線ネットワークであってもよい。ネットワーク１３０は、限定でなく例として、アドホック・ネットワーク（Ad Hoc Network）、イントラネット、エクストラネット、仮想プライベート・ネットワーク（Virtual Private Network：ＶＰＮ）、ローカル・エリア・ネットワーク（Local Area Network：ＬＡＮ）、ワイヤレスＬＡＮ（Wireless LAN：ＷＬＡＮ）、広域ネットワーク（Wide Area Network：ＷＡＮ）、ワイヤレスＷＡＮ（Wireless WAN：ＷＷＡＮ）、大都市圏ネットワーク（Metropolitan Area Network：ＭＡＮ）、インターネットの一部、公衆交換電話網（Public Switched Telephone Network：ＰＳＴＮ）の一部、携帯電話網、ＩＳＤＮｓ（Integrated Service Digital Networks）、無線ＬＡＮｓ、ＬＴＥ（Long Term Evolution）、ＣＤＭＡ（Code Division Multiple Access）、ブルートゥース（Bluetooth（登録商標））、衛星通信など、または、これらの２つ以上の組合せを含むことができる。ネットワーク１３０は、１つまたは複数のネットワーク１３０を含むことができる。
【００２０】
情報処理装置２００は、本開示に記載される機能、および／または、方法を実現できる情報処理装置であればどのような情報処理装置であってもよい。
【００２１】
情報処理装置２００は、限定ではなく例として、スマートフォン、携帯電話（フィーチャーフォン）、コンピュータ（限定でなく例として、デスクトップ、ラップトップ、タブレットなど）、サーバ装置、メディアコンピュータプラットホーム（限定でなく例として、ケーブル、衛星セットトップボックス、デジタルビデオレコーダなど）、ハンドヘルドコンピュータデバイス（限定でなく例として、ＰＤＡ（Personal Digital Assistant）、電子メールクライアントなど）、ウェアラブル端末（限定でなく例として、メガネ型デバイス、時計型デバイスなど）、他種のコンピュータ、またはコミュニケーションプラットホームを含む。
【００２２】
＜ハードウェア（ＨＷ）構成＞
図２を用いて、取引システム１に含まれる情報処理装置２００のＨＷ構成について説明する。
【００２３】
情報処理装置２００は、プロセッサ２０１と、メモリ２０２と、ストレージ２０３と、入出力インタフェース（入出力Ｉ／Ｆ）２０４と、通信インタフェース（通信Ｉ／Ｆ）２０５とを含む。情報処理装置２００のＨＷの各構成要素は、限定でなく例として、バスＢを介して相互に接続される。
【００２４】
情報処理装置２００は、プロセッサ２０１と、メモリ２０２と、ストレージ２０３と、入出力Ｉ／Ｆ２０４と、通信Ｉ／Ｆ２０５との協働により、本開示に記載される機能、および／または、方法を実現する。
【００２５】
プロセッサ２０１は、ストレージ２０３に記憶されるプログラムに含まれるコードまたは命令によって実現する機能、および／または、方法を実行する。プロセッサ２０１は、限定でなく例として、中央処理装置（ＣＰＵ）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphic s Processing Unit）、マイクロプロセッサ（microprocessor）、プロセッサコア（processor core）、マルチプロセッサ（multiprocessor）、ＡＳＩＣ（Application-Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）等を含み、集積回路（ＩＣ（Integrated Circuit）チップ、ＬＳＩ（Large Scale Integration））等に形成された論理回路（ハードウェア）や専用回路によって各実施形態に開示される各処理を実現してもよい。また、これらの回路は、１または複数の集積回路により実現されてよく、各実施形態に示す複数の処理を１つの集積回路により実現されることとしてもよい。また、ＬＳＩは、集積度の違いにより、ＶＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩなどと呼称されることもある。
【００２６】
メモリ２０２は、ストレージ２０３からロードしたプログラムを一時的に記憶し、プロセッサ２０１に対して作業領域を提供する。メモリ２０２には、プロセッサ２０１がプログラムを実行している間に生成される各種データも一時的に格納される。メモリ２０２は、限定でなく例として、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）などを含む。
【００２７】
ストレージ２０３は、プログラムを記憶する。ストレージ２０３は、限定でなく例として、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、フラッシュメモリなどを含む。
【００２８】
通信Ｉ／Ｆ２０５は、ネットワーク１３０を介して各種データの送受信を行う。当該通信は、有線、無線のいずれで実行されてもよく、互いの通信が実行できるのであれば、どのような通信プロトコルを用いてもよい。通信Ｉ／Ｆ２０５は、ネットワーク１３０を介して、他の情報処理装置との通信を実行する機能を有する。通信Ｉ／Ｆ２０５は、各種データをプロセッサ２０１からの指示に従って、他の情報処理装置に送信する。また、通信Ｉ／Ｆ２０５は、他の情報処理装置から送信された各種データを受信し、プロセッサ２０１に伝達する。
【００２９】
入出力Ｉ／Ｆ２０４は、情報処理装置２００に対する各種操作を入力する入力装置、および、情報処理装置２００で処理された処理結果を出力する出力装置を含む。入出力Ｉ／Ｆ２０４は、入力装置と出力装置が一体化していてもよいし、入力装置と出力装置とに分離していてもよい。
【００３０】
入力装置は、ユーザからの入力を受け付けて、当該入力に係る情報をプロセッサ２０１に伝達できる全ての種類の装置のいずれか、または、その組み合わせにより実現される。入力装置は、限定でなく例として、タッチパネル、タッチディスプレイ、キーボード等のハードウェアキーや、マウス等のポインティングデバイス、カメラ（画像を介した操作入力）、マイク（音声による操作入力）を含む。
【００３１】
出力装置は、プロセッサ２０１で処理された処理結果を出力することができる全ての種類の装置のいずれか、または、その組み合わせにより実現される。当該処理結果を映像、および／または、動画像として出力する場合、出力装置は、フレームバッファに書き込まれた表示データに従って、当該表示データを表示することができる全ての種類の装置のいずれかまたはその組み合わせにより実現される。出力装置は、限定でなく例として、タッチパネル、タッチディスプレイ、モニタ（限定でなく例として、液晶ディスプレイ、ＯＥＬＤ（Organic Electroluminescence Display）など）、ヘッドマウントディスプレイ（ＨＤＭ：Head Mounted Display）、プロジェクションマッピング、ホログラム、空気中など（真空であってもよい）に画像やテキスト情報等を表示可能な装置、スピーカ（音声出力）、プリンタなどを含む。なお、これらの出力装置は、３Ｄで表示データを表示可能であってもよい。
【００３２】
本開示の各実施形態のプログラムは、コンピュータに読み取り可能な記憶媒体に記憶された状態で提供されてもよい。 記憶媒体は、「一時的でない有形の媒体」に、プログラムを記憶可能である。プログラムは、限定でなく例として、ソフトウェアプログラムやコンピュータプログラムを含む。
【００３３】
記憶媒体は適切な場合、１つまたは複数の半導体ベースの、または他の集積回路（ＩＣ）（限定でなく例として、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途向けＩＣ（ＡＳＩＣ）など）、ハード・ディスク・ドライブ（ＨＤＤ）、ハイブリッド・ハード・ドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピィ・ディスケット、フロッピィ・ディスク・ドライブ（ＦＤＤ）、磁気テープ、固体ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の適切な記憶媒体、またはこれらの２つ以上の適切な組合せを含むことができる。記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。
【００３４】
また、本開示のプログラムは、当該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して、情報処理装置２００に提供されてもよい。
【００３５】
また、本開示の各実施形態は、プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００３６】
なお、本開示のプログラムは、限定でなく例として、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｙｔｈｏｎなどのスクリプト言語、Ｃ言語、Ｇｏ言語、Ｓｗｉｆｔ、Ｋｏｔｌｉｎ、Ｊａｖａ（登録商標）などのプログラミング言語などを用いて実装される。
【００３７】
情報処理装置２００おける処理の少なくとも一部は、１以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。
【００３８】
情報処理装置２００における処理の少なくとも一部を、他の情報処理装置により行う構成としてもよい。この場合、プロセッサ２０１により実現される各機能部の処理のうち少なくとも一部の処理を、他の情報処理装置で行う構成としてもよい。
【００３９】
＜その他＞
明示的な言及のない限り、本開示の実施形態における判定の構成は必須でなく、判定条件を満たした場合に所定の処理が動作されたり、判定条件を満たさない場合に所定の処理がされたりしてもよい。
【００４０】
本開示では、明記されない限り、または文脈によって示されない限り、「または」は排他的ではなく包含的な意味である。したがって、本開示では、明記されていない限り、または文脈によって示されない限り、「ＡまたはＢ」は「Ａ、Ｂ、またはその両方」を意味する。さらに、「AおよびBの少なくとも一方」は、「A、B、またはその両方」を意味する。さらに、明記されない限り、または文脈によって示されない限り、「a」、「an」、または「the」は「１つまたは複数」を意味するものとする。したがって、本明細書では、別段に明記されない限り、または文脈によって示されない限り、「an A」または「the A」は「１つまたは複数のＡ」を意味する。
【００４１】
本開示は、本開示の実施形態、および／または、実施例に対して、当業者が成し得る全ての変更、置換、変形、改変、および修正を包含する。同様に、適切な場合、添付の特許請求の範囲は、本開示の実施形態、および／または、実施例に対して、当業者が成し得る全ての変更、置換、変形、改変、および修正を包含する。さらに、本開示は、当業者が成し得る、本開示における実施形態、および／または、実施例の１つまたは複数の特徴と、本開示における他の実施形態、および／または、実施例の１つまたは複数の特徴との任意の組合せを包含する。
【００４２】
加えて、特定の機能を実施するように適合される、配置される、能力を有する、構成される、使用可能である、動作可能である、または動作できる装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲での参照は、その装置、システム、または構成要素がそのように適合される、配置される、能力を有する、構成される、使用可能にされる、動作可能にされる、または動作できる限り、その装置、システム、構成要素またはその特定の機能がアクティベートされ、オンにされ、またはロック解除されているか否かに関わらず、その装置、システム、構成要素を包含する。
【００４３】
本開示は、明示されない限り、いずれの実施形態または実施例を実施するに際して、事前に、または、実施の直前にユーザからの同意を取得してもよい。また、取得する同意は、包括的なものでもよく、都度取得するものでもよい。
【００４４】
以下、本開示の一例に係る実施形態について、図面を参照して説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図ではない。すなわち、本開示の一例は、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、以下の図面の記載において、同一または類似の部分には同一または類似の符号を付しており、図面は模式的なものであって、必ずしも実際の寸法や比率等とは一致しない。さらに、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
【００４５】
＜用語＞
実施形態について具体的に説明する前に、まず本開示で使用される用語について説明する。本開示における「仮想資産」とは、仮想通貨や、それに準ずる取引可能な資産を示す。「仮想通貨」とは、原則として、資金決済に関する法律（平成２１年法律第５９号）の第２条第５項第１号および第２号に規定されるもの、または、それに準ずるものであって、紙幣や硬貨のような現物をもたずに電子データとして流通し、ネットワークを通じて不特定多数の間で物品やサービスの対価として使用することができ、中央銀行などの公的な発行主体や管理者が必ずしも存在せずに専門の取引所や販売所で売買され、また、円やドルやユーロなどの実体的な通貨と交換できるものを意味するが、これに限られない。なお、仮想資産はこれに限定されず、ブロックチェーン上に記録された情報であって、ユーザ間で所有権をトランザクションによって送受信可能なものであればよい。
【００４６】
上記仮想資産は、当該仮想資産を所有するユーザから他のユーザに送金することができる。このような仮想資産の取引は、特定の機関による管理の代わりに、ブロックチェーンとよばれる仮想資産の取引情報を記した分散型台帳により管理される。この取引情報は移動元から移動先への仮想資産の転移に関する情報を含むものである。取引情報は、移動元となる仮想資産を所有するユーザが所有する暗号鍵（仮想資産の所有権を証明する鍵）により電子署名され、かつ、ブロックチェーンネットワーク上に送信されて初めて、取引情報が分散型台帳に記録され、有効なものとして扱われる。一例として、暗号鍵により電子署名された取引情報がネットワーク上に送信されると、ブロックチェーンノードがその取引情報の正当性を検証し、検証した複数の取引情報を所定の時間周期毎にブロックというグループにまとめられる。まとめられた新たなブロックがブロックチェーンの末尾に追加されることで、取引情報が分散型台帳に記録される。すなわち、ブロックチェーンにおいては、取引情報を含んだブロックと呼ばれるデータが、時系列に並べられて管理され、仮想資産の移動を記した台帳としての役割を有している。
【００４７】
ユーザが所有する仮想資産を他のユーザに送金する際には、取引情報がブロックチェーンネットワークに送信される。「ブロックチェーンネットワーク」とは、所定の通信プロトコルに従って通信する２以上の情報処理装置２００によって構成されたブロックチェーンに関する情報を共有するネットワークをいう。ブロックチェーンネットワークは一例として、Ｐ２Ｐネットワークである。
【００４８】
このブロックチェーンネットワークに参加するノードは、ネットワーク１３０を介して互いにブロックチェーンに関する情報を直接共有することができる。ここでは、一例として、取引情報はブロードキャスト通信でネットワーク１３０に送信されるとして説明するが、これに限定されず、ユニキャスト通信やマルチキャスト通信によって送信されてもよい。ブロックチェーンネットワークにブロードキャストされた取引情報は、ブロックチェーンネットワークに接続される各情報処理装置２００で受信される。一例として、ブロードキャストされた取引情報は、当該取引情報を受信した情報処理装置２００のうち任意の情報処理装置２００によってブロックに格納される。ブロックチェーンネットワークに送信されたブロックは、ＰｏＷ（Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ）、ＰｏＳ（Ｐｒｏｏｆ  ｏｆ  Ｓｔａｋｅ）などのアルゴリズムによる合意形成を経て、最後に確定したブロックの次につないで記録される。
【００４９】
＜第１実施形態＞
第１実施形態は、端末１２０あるいはサーバ１１０がブロックチェーンネットワークに電子署名された取引情報を送信することにより所定アドレスの有する仮想資産の残高が変動する取引システム１において、サーバ１１０が不正な取引情報がブロックチェーンネットワークに送信されたことを検知した場合に、その不正な取引情報をキャンセルするための取引情報をブロックチェーンネットワークに送信する実施形態である。
【００５０】
この第１実施形態にかかるプログラム、情報処理装置、及び情報処理方法では、サーバ１１０に第１取引情報を不正と判断するための条件を予め記憶させておく。そして、サーバ１１０が不正な取引情報がブロックチェーンネットワークに送信されたことを検知した場合に、その不正な取引情報よりも優先的に分散型台帳に取り込まれるキャンセル用の取引情報をブロックチェーンネットワークに送信する。この際、キャンセル用の取引情報を優先的に分散型台帳に取り込ませるために、サーバ１１０は、不正な取引情報に含まれる手数料を参照して、これよりも高い手数料を指定するキャンセル用の取引情報を作成し、そのキャンセル用の取引情報をブロックチェーンネットワークに送信する。
【００５１】
なお、ここで、取引情報毎に指定される「手数料」（トランザクションフィー）とは、マイニング作業に成功した者（マイナー）がその成功報酬の一部として受け取る仮想資産である。マイニング作業とは、例えば、ＰｏＷ（Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ）やＰｏＳ（Ｐｒｏｏｆ  ｏｆ  Ｓｔａｋｅ）を用いてブロックチェーンネットワークに送信された取引情報の正当性を検証し、複数の取引情報を格納したブロックをブロックチェーンの末尾に追加する作業をいう。
【００５２】
ブロックチェーンネットワークの仕組みにおいて、マイナーはＰｏＷ（Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ）などを成立させるために多量の電気代とマシン代を消費する必要がある。そのため、高い手数料を指定する取引情報を優先してマイニング処理を行う。したがって、各取引情報に指定される手数料の値は、マイナーがその取引情報をブロックに含める作業に対する合理的なインセンティブとして働く。
【００５３】
この取引システム１では、例えば、サーバ１１０と、第１端末１２０Ａと、第２端末１２０Ｂと、第３端末１２０Ｃと、がネットワーク１３０を介して接続される。ここで、サーバ１１０は、不正な取引情報を検知し、その不正な取引情報をキャンセルする取引情報をブロックチェーンネットワークに送信する情報処理装置である。また、第１端末１２０Ａ乃至第３端末１２０Ｃは、それぞれ、取引システム１の利用者が仮想資産の取引のために利用する端末である。より具体的には、第１端末１２０Ａは、仮想資産の移動元となる第１アドレスに対応する端末であり、第２端末１２０Ｂは、仮想資産の移動先となる第２アドレスに対応する端末であり、第３端末１２０Ｃは、限定でなく例として第１アドレスのユーザが管理する他の端末である。
【００５４】
本開示では、第１端末１２０Ａが第１アドレスに対応する端末であり、第２端末１２０Ｂが第２アドレスに対応する端末であり、第３端末１２０Ｃが第３アドレスに対応する端末であるものとする。但し、各アドレス及びそのアドレスに対応する暗号鍵は、必ずしも端末により管理及び使用される必要はない。例えば、端末が暗号鍵を記録するソフトウェア（デスクトップ）ウォレットに代えて、サーバが暗号鍵を記録する場合をウェブ（オンライン）ウォレット、ＵＳＢ等の記録媒体が暗号鍵を記録する場合をハードウェアウォレット、紙媒体が暗号鍵を記録する場合をコールド（ペーパー）ウォレットであってもよい。
【００５５】
なお、以降では暗号鍵は、秘密鍵で暗号化を行い公開鍵で複合化を行う公開鍵暗号方式で用いられる秘密鍵として説明するが、これに限定されず、同じ鍵暗号化と複合化を行う共通鍵暗号方式の共通鍵等、任意の暗号鍵でもよい。また、以下の説明では仮想資産を一例としてビットコインとして説明するがこれに限定されない。
【００５６】
＜第１実施形態の効果＞
かかる第１実施形態によれば、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。より具体的には、第１実施形態では、サーバ１１０が、不正な取引情報よりも高い手数料を指定するキャンセル用の取引情報を作成し、ブロックチェーンネットワークに送信することで、キャンセル用の取引情報を優先的に処理されるよう仕向ける。これにより、ユーザの保有する秘密鍵が悪意のある第三者に知得された場合であっても、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。
【００５７】
＜第１実施形態の機能構成＞
図３〜図７を用いてサーバ１１０及び端末１２０の機能構成を説明する。図３〜図７に開示の各機能部は、情報処理装置２００が備えるプロセッサ２０１と、メモリ２０２と、ストレージ２０３と、入出力Ｉ／Ｆ２０４と、通信Ｉ／Ｆ２０５との協働により実現される。
【００５８】
（１）サーバの機能構成
図３は、第１実施形態に係るサーバ１１０の機能的な構成を示すブロック図の一例を示す。サーバ１１０は、取引システム１において不正な取引情報の検知を行う情報処理装置の一例であり、入出力Ｉ／Ｆ３１１と、通信Ｉ／Ｆ３１２と、記憶部３２０と、制御部３３０とを有する。
【００５９】
入出力Ｉ／Ｆ３１１は、例えば、入出力Ｉ／Ｆ２０４を用いて実現され得る。また、通信Ｉ／Ｆ３１２は、例えば、通信Ｉ／Ｆ２０５を用いて実現され得る。記憶部３２０は、例えば、メモリ２０２及び／又はストレージ２０３を用いて実現され得る。制御部３３０は、例えば、プロセッサ２０１が、記憶部３２０に格納されているプログラムを読みだして実行することで実現され得る。
【００６０】
また、記憶部３２０は、本実施形態にかかるサーバが実行するプログラム３２１と、ブロックチェーンネットワークに送信された取引情報を管理する取引情報ＤＢ３３２と、不正を検知するための条件を管理するルールＤＢ３２３と、秘密鍵ＤＢ３２４と、を格納する。
【００６１】
このプログラム３２１は、例えば、ルールＤＢ３２３を参照して、不正な取引情報を検知し、検知した不正な取引情報が分散型台帳に記録されないよう、キャンセル用の取引情報を作成して送信するためのプログラムである。なお、このプログラム３２１は、コンピュータに読み取り可能な記録媒体に記録されてもよく、この記録媒体からコンピュータにインストールされてもよい。
【００６２】
取引情報ＤＢ３３２には、例えば、ブロックチェーンネットワークに送信された取引情報に関する情報が管理される。取引情報は、仮想資産を移動させる。
【００６３】
取引情報ＤＢ３３２には、ブロックチェーンネットワークに送信された未署名取引情報が管理されていてもよい。未署名取引情報としては、電子署名がされていない取引情報、又は後述するマルチシグネチャ型の電子署名において電子署名数が足りていない取引情報が挙げられる。
【００６４】
図４に、取引情報ＤＢ３３２が記憶する取引情報のデータ構造の一部を模式的に示す。なお、図４に示すデータ構造は一例であり、取引情報は任意のデータ構造とすることが可能である。
【００６５】
取引情報はインプットとアウトプットを含む。アウトプットは、例えば送金金額と解錠条件とが指定されている。解錠条件は、今回送金する仮想資産を別の取引情報で使用する際に必要な条件である。なお、ある取引情報で作成されたアウトプットのうち、未だ別の取引情報のインプットで参照されていないアウトプットをＵＴＸＯともいう。
【００６６】
取引情報のインプットには、今回使用するＵＴＸＯを示す情報（例えばポインタ等である）や、ＵＴＸＯの解放条件が指定されている。解放条件は、ＵＴＸＯを使用するための条件であり、当該ＵＴＸＯが送金された取引情報のアウトプットにおいて指定されている解錠条件に対応する。なお、取引情報は、インプットとアウトプットとを複数含んでも良い。
【００６７】
ここで取引情報Ｔ０１では、２つのインプットと２つのアウトプットとを有している。インプットのそれぞれには、今回送金する仮想資産をユーザAが受け取ったＵＴＸＯを参照する情報と、当該ＵＴＸＯが指定する解錠条件に対応する解放条件（この例ではユーザAの署名と公開鍵）が指定されている。また、アウトプットに、送金金額として、任意の量の仮想資産と、解錠条件として、送金相手の公開鍵のハッシュ値が指定されている。この例では、解錠条件に指定されている公開鍵のハッシュ値が、アウトプットで指定した仮想資産の宛先（アドレス）を意味している。以下の例では、解錠条件で指定されている任意のユーザの公開鍵のハッシュ値を、当該ユーザのアドレスとも呼ぶ。
【００６８】
なお、解錠条件に公開鍵のハッシュ値が指定されている場合は、解放条件は当該公開鍵と、その公開鍵に対応する秘密鍵による署名となる。また、解錠条件の記述の仕方は、図５の例に限定されず、同じ条件を示せればスクリプト等を用いてより簡略化してもよい。
【００６９】
詳細は後述するが、取引情報はマイナーによって検証され、承認されるとブロックと呼ばれる構造体に格納される。この検証・承認の作業をマイニングと呼ぶ。マイニングを行ったマイナーは手数料を得られる。一例として、手数料は、取引情報のインプットに指定したUTXOで移動された仮想資産の総額と、アウトプットで指定した送金金額の差額である。ただし、手数料の指定の仕方はこれに限定されない。例えば送金したい額に上乗せして指定するなど任意の方法でもよい。
【００７０】
取引情報Ｔ０２には、インプットに取引情報Ｔ０１のアウトプット（ＵＴＸＯ）へのポインタと、当該ＵＴＸＯが指定する解錠条件に対応する解放条件（この例では、ユーザBの署名・公開鍵）とが設定されている。また、アウトプットとして、取引情報T01において、ユーザBが受け取った仮想資産のうち送金したい金額（典型的には代金から手数料を引いた金額）と、解錠条件（典型的には送金相手の公開鍵のハッシュ値）とが指定されている。
【００７１】
なお、詳細は後述するが、図４に示した取引情報では、いずれも解錠条件として単一のユーザの公開鍵のハッシュ値（アドレス）が指定されているが、これに限定されない。例えばアウトプットに指定される解錠条件は、複数のユーザを指定して、指定した複数のユーザのうち、所定数以上の署名と公開鍵を、当該アウトプットを参照する取引情報のインプットで指定することを示す解錠条件が指定されてもよい。この場合には、例えばアウトプットの解錠条件としては、複数のユーザの公開鍵のハッシュ値と、そのうち満たすべき数とが指定される。このようなアウトプットの解錠条件を指定して送金することを、マルチシグアドレスに送金するとも呼ぶ。
【００７２】
なお、取引情報の構造は図４の例に限定されず、任意の構造でよい。
【００７３】
次いで、図５に、取引情報ＤＢ３３２が記憶するブロックチェーンのデータ構造の一部を模式的に示す。図５は、時系列順に並んだブロックのうち、Ｎ＋１番目のブロックの構造を示す図である。
【００７４】
ブロックの「ヘッダー」には、例えば、Ｎ番目のブロックのダイジェスト、タイムスタンプ、ターゲット、ナンスが格納される。
【００７５】
「Ｎ番目のブロックのダイジェスト」には、例えば、ブロックチェーンネットワーク上で、サーバ１１０及び端末１２０がそのＮ番目のブロックを一意に識別するための識別情報が格納される。Ｎ番目のブロックのダイジェストとしては、例えば、ブロックのハッシュ値を用いることができる。
【００７６】
「タイムスタンプ」には、ブロックを作成した場合にマイナーが付すタイムスタンプ又はブロックナンバーに関する情報が格納される。
【００７７】
「ターゲット」と「ナンス」は、例えば、ＰｏＷ（Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ）の技術を用いてマイニングを行う場合に用いられる値である。「ターゲット」は、マイニングの難易度に関する値である。「ナンス」は、ブロックを作成するときにマイナーによって作成される任意の値である。
【００７８】
マイニングについて具体的に説明する。マイニングにおいて、マイナーはＮ＋１番目のブロックのダイジェスト（ハッシュ値）がターゲットの値以下となるナンスを発見し、適切なナンスを発見すると、発見したナンスを格納してＮ＋１番目のブロックを作成する。マイニングを行うブロックチェーンノードは、この適切ナンスを発見することを目的に、ナンスの値を変更しながら、繰り返しブロックヘッダーのダイジェストの計算（マイニング）を行う。任意のナンスを含んだブロックヘッダーのダイジェストが、ターゲット以下となる確率は極めて小さいため、マイニングには過大なコストがかかる。
【００７９】
なお、マイニングはＰｏＷの技術を用いる構成に限定されない。例えば各情報処理装置２００は、作成されたブロックのヘッダーがターゲットの値以下になるか否かにかかわらず、ブロックをブロックチェーンの末尾に追加する構成でもよい。この場合、取引情報Ｄ３３２に記憶されるブロックは、ターゲット及びナンスを含まない構成でもよい。さらに、ブロックチェーンがプライベート型やコンソーシアム型である場合には、マイニングが行われない構成でもよい。
【００８０】
ブロックの「ボディ」には、複数の取引情報が格納されている。ブロックに格納された取引情報は、同じタイムスタンプデータを有する。
【００８１】
ルールＤＢ３２３は、不正条件記憶部の一例であり、ルールＤＢ３２３には、取引情報が第１アドレスのユーザが意図しない不正なものであるか否か検知するための不正条件（以下、「不正検知条件」ともいう。）が管理される。ルールＤＢ３２３で管理される各条件は、ユーザごとに異なっていてもよい。
【００８２】
なお、ブロックの構造は図５の例に限定されず、任意の構造でもよい。
【００８３】
図６に、ルールＤＢ３２３が記憶する条件のデータ構造の一部を模式的に示す。図６の例では、仮想資産の保有者のユーザ（以下、説明のために「第１アドレス」と呼ぶ。）と、当該ユーザが保有する仮想資産を移動させる取引情報を不正と判断するための条件とが対応付けられて記憶されている。図６の例では、ユーザが仮想資産を受け取る際に解錠条件として指定されるアドレス（当該ユーザの公開鍵のハッシュ値である。）と、条件とが対応付けられている。一例として、ルールＤＢ３２３に記憶される条件としては、以下のものが挙げられる。
【００８４】
「移動先アドレス」には、仮想資産の移動先（アウトプットの解錠条件に指定されるアドレス）に関する条件を格納することができる。例えば、あるアドレス（第１アドレス）のユーザは、特定のアドレス（第２アドレス）を仮想資産の移動先とすることを予め指定することができる。この場合において、ある取引情報の送金先のアドレスが予め設定された特定の移動先（第２アドレス）に含まれない場合には、サーバ１１０の検知部３３３は、その取引情報を不正と判断することができる。
【００８５】
「取引時間」には、取引情報の送信日時に関する条件を格納することができる。例えば、第１アドレスのユーザは、取引情報をブロックチェーンネットワークに送信する一日のうちの特定の時間帯を予め指定することができる。この場合、第１アドレスから仮想資産を移動させる取引情報が指定された時間帯以外において送信された場合には、サーバ１１０の検知部３３３は、その取引情報を不正と判断することができる。
【００８６】
また、「取引時間」に、第１アドレスのユーザは、取引情報をブロックチェーンネットワークに送信しない特定の期間を予め指定することもできる。例えば、外出その他都合により仮想資産の取引をしない特定の期間が指定されている場合において、その期間内に第１アドレスから仮想資産を移動させる取引情報が送信された場合には、サーバ１１０の検知部３３３は、当該取引情報を不正と判断することができる。
【００８７】
「移動量」には、第１アドレスから一度に移動する仮想資産の量に関する条件を格納することができる。例えば、第１アドレスのユーザは、１つの取引情報により移動する仮想資産の量の上限を予め指定することができる。また、第１アドレスのユーザは、所定の期間内に送信された取引情報により移動する仮想資産の合計量の上限をあらかじめ指定することもできる。この場合、取引情報が指定された上限を超える量の仮想資産を移動させる場合にはサーバ１１０の検知部３３３は、その取引情報を不正と判断することができる。
【００８８】
「通知」には、第１アドレスから仮想資産を移動させる取引情報の送信に際し、当該取引情報に関する通知を別途受信するか否かに関する条件を格納することができる。例えば、第１アドレスのユーザは、第１アドレスから仮想資産を移動させる取引情報の送信前又は送信後に、第１アドレスから仮想資産を移動させる（または移動させた）旨の通知をサーバ１１０に対して行うか否かを予め指定することができる。この通知が「要」となっている場合において、第１アドレスから仮想資産を移動させる取引情報に前後して通知を受信しない場合には、サーバ１１０の検知部３３３は、当該取引情報を不正と判断することができる。
【００８９】
なお、ルールＤＢ３２３は、上述したすべての条件を含む必要はなく、任意の条件から構成されてよい。また、ルールＤＢ３２３は、上述した条件以外の条件を含んでもよい。
【００９０】
秘密鍵ＤＢ３２４は、秘密鍵記憶部の一例であり、秘密鍵ＤＢ３２４には、例えば、第１アドレスの秘密鍵に関する情報が管理される。図７に、秘密鍵ＤＢ３２４が記憶する秘密鍵に関する情報のデータ構造の一部を模式的に示す。
【００９１】
「移動元アドレス」には、仮想資産の移動元アドレス（第１アドレス）に関する情報が格納されている。また、「秘密鍵」には、第１アドレスに対応する秘密鍵に関する情報が格納されている。さらに、「第３アドレス」には、第１アドレスから仮想資産を移動させる取引情報が不正であると検知した場合に、第１アドレスから仮想資産を移動させる宛先に関する情報が格納されていてもよい。
【００９２】
なお、図７では、第３アドレスは、予め、移動元アドレスや秘密鍵と対応付けて記憶する態様を示しているが、これに限定されず、第３アドレスは、その都度ユーザが選択してもよい。
【００９３】
次いで、図３に戻り、制御部３３０について説明する。制御部３３０は、秘密鍵管理部３３１、ルール管理部３３２、検知部３３３と、取引情報作成部３３４と、を有する。
【００９４】
通信Ｉ／Ｆ３１２は、ブロックチェーンネットワークから、取引情報を受信する受信部としての機能も有する。また、通信Ｉ／Ｆ３１２は、第１端末１２０Ａ乃至第３端末１２０Ｃから、要求や通知を受信する受信部としての機能を有する。このような要求や通知としては、第１端末１２０Ａ乃至第３端末１２０Cから受信する、取引情報が不正なものであるか否か検知するための条件の登録要求・変更要求・削除要求、任意のアドレスの秘密鍵に関する情報の登録要求・変更要求・削除要求、及び、第１端末１２０Ａ乃至第３端末１２０Ｃのユーザが自身のアドレスから仮想資産を移動させる取引情報を送信した旨の通知などが挙げられる。
【００９５】
通信Ｉ／Ｆ３１２は、ブロックチェーンネットワークに、取引情報や通知を送信する送信部としての機能を有する。また、通信Ｉ／Ｆ３１２は、第１端末１２０Ａ乃至第３端末１２０Ｃに、通知を送信する送信部としての機能を有する。
【００９６】
これらの機能構成は、プロセッサ２０１が、記憶部３２０に格納されているプログラム３２１を読み出して実行することで実現される。また、サーバ１１０によって実現される機能構成は、実施形態や実施例に応じて、適宜、機能の省略、置換、及び追加が行われてもよい。
【００９７】
秘密鍵管理部３３１は、秘密鍵ＤＢの情報を管理する機能を有する。一例として、サーバ１１０の受信部が第１端末１２０Ａから第１アドレスのユーザの秘密鍵の登録要求を受けた場合には、秘密鍵管理部３３１は、第１アドレスと対応付けてその秘密鍵に関する情報を記憶する。また、秘密鍵に関する情報の更新要求又は削除要求を受けた場合には、秘密鍵管理部３３１は、それら要求に応じて、秘密鍵に関する情報の更新または削除をする。
【００９８】
ルール管理部３３２は、ルールＤＢ３２３の情報を管理する機能を有する。一例として、サーバ１１０の受信部が第１端末１２０Ａから不正検知条件（不正条件）の登録要求を受けた場合には、ルール管理部３３２は、第１アドレスと対応付けてその不正検知条件を記憶する。また、不正検知条件の更新要求又は削除要求を受けた場合には、ルール管理部３３２は、それら要求に応じて、不正検知条件の更新または削除をする。
【００９９】
検知部３３３は、ルールＤＢ３２３に記憶された不正検知条件に基づいて、ブロックに格納される前の取引情報が当該取引情報における仮想資産の移動元のユーザが意図しない不正なものであるか否かを検知する機能を有する。一例として、サーバ１１０の受信部がブロックチェーンネットワークから、ルールDB３２３に不正検知条件が登録されたユーザのアドレスを移動元とする取引情報（検知部３３３の検知対象となる取引情報である。以下、検知対象の取引情報を「第１取引情報」とも呼ぶ。）を受信した場合には、検知部３３３はその取引情報がルールＤＢ３２３に記憶された不正検知条件を満たすか否かを判断する。
【０１００】
第１取引情報が不正検知条件を満たす場合には、検知部３３３は、第１取引情報からその手数料に関する情報を特定する。そして、検知部３３３は、手数料に関する情報とともに、取引情報作成部３３４に対して、不正と判断した第１取引情報よりも高い手数料を指定するキャンセル用の取引情報であって、第１アドレスに対応する暗号鍵により電子署名された取引情報（以下、「第２取引情報」とも呼ぶ。）を作成するよう指示をする。
【０１０１】
一方、第１取引情報が不正検知条件を満たさない場合には、検知部３３３は、第１取引情報が正当なものであると判断する。なお、検知部３３３は、第１取引情報が不正検知条件を満たす又は満たさないと判断した場合に、その旨を第１端末１２０Ａに通知するようサーバ１１０の送信部に指示をしてもよい。
【０１０２】
取引情報作成部３３４は、検知部３３３からの指示に応じて電子署名された第２取引情報を作成して、作成した第２取引情報をブロックチェーンネットワークに送信するようサーバ１１０の送信部に指示する機能を有する。
【０１０３】
一例として、取引情報作成部３３４は、検知部３３３から第１取引情報の手数料に関する情報とともに第２取引情報を送信するよう指示を受けた場合には、第１取引情報よりも高い手数料を指定して、秘密鍵ＤＢを参照して電子署名をしてする第２取引情報を作成する。そして、取引情報作成部３３４は、第２取引情報を速やかにブロックチェーンネットワークに送信するよう送信部に指示をする。なお、第２取引情報がアウトプットに指定する仮想資産の移動先は、特に制限されない。
【０１０４】
これにより、仮想資産の取引システムにおいて、マイナーは、手数料のインセンティブにしたがって、不正な第１取引情報よりも優先的に第２取引情報をブロックチェーン（分散型台帳）に取り込ませることができる。第２取引情報がブロックチェーンに取り込まれることにより、第１取引情報のインプットに指定された未使用トランザクションアウトプットは、使用済トランザクションアウトプットとなる。そのため、第１取引情報による仮想資産の送金をキャンセルさせることができる。
【０１０５】
以下、さらに付加的態様について説明する。
【０１０６】
取引情報作成部３３４は、第２取引情報として、仮想資産を前記第１アドレスから第３アドレスに移動させる第２取引情報を作成することができる。この際、取引情報作成部３３４は、第１アドレスから仮想資産を退避させる移動先として、秘密鍵ＤＢ３２４に記憶された第３アドレスを参照することができる。第３アドレスは、第１アドレスを所有するユーザと同一の者が所有するアドレスであってもよいし、第１アドレスを所有するユーザが信頼する他の者が所有するアドレスであってもよい。ここで、他の者としては、サーバ１１０などが挙げられる。
【０１０７】
これにより、サーバ１１０は、既に悪意のある第三者に秘密鍵が知られた第１アドレスから、仮想資産を退避させることができる。そのため、継続的に不正な第１取引情報がブロックチェーンネットワークに送信されることにより、第１アドレスが保有する仮想資産が脅かされることを回避することができる。
【０１０８】
取引情報作成部３３４は、第１取引情報がブロックチェーンに取り込まれる前に、検知部３３３からの指示に応じて、速やかに第２取引情報をブロックチェーンネットワークに送信することが好ましい。より具体的には、検知部３３３が不正な第１取引情報を検知した場合には、第２取引情報を送信することについて第１アドレスのユーザに問い合わせ等をすることなく、速やかに第２取引情報をブロックチェーンネットワークに送信することができる。
【０１０９】
また、取引情報作成部３３４は、取引情報ＤＢ３２２を参照し、最新のブロックが作成された日時とその日時からの経過時間を監視し、経過時間に応じて、速やかに第２取引情報をブロックチェーンネットワークに送信することができる。例えば、ＰｏｆＷの場合、約１０分毎に新しいブロックが作成される。そのため、新たなブロックが作成される直前には、検知部３３３と取引情報作成部３３４がパフォーマンスを発揮できるよう、プロセッサ２０１、メモリ２０２、及び／又はストレージ２０３を割り当てることが好ましい。
【０１１０】
これにより、第２取引情報の送信前に第１取引情報がブロックチェーンに取り込まれるリスクを低減することができる。
【０１１１】
検知部３３３は、第１取引情報が不正検知条件を満たす場合に、第１取引情報に指定される未使用トランザクションアウトプットに関する情報を特定することができる。この場合、検知部３３３は、第２取引情報が特定した未使用トランザクションアウトプットをインプットに指定するよう取引情報作成部３３４に対して指示をすることができる。この場合、第１取引情報のインプットが複数の未使用トランザクションアウトプットを含む場合には、第２取引情報のインプットに指定される未使用トランザクションアウトプットは、第１取引情報のインプットで指定された未使用トランザクションアウトプットを少なくとも一つ含む。
【０１１２】
これにより、第１取引情報のインプットに指定された未使用トランザクションアウトプットを、より直接的に使用済トランザクションアウトプットとすることができる。そのため、第１取引情報のインプットに指定された未使用トランザクションアウトプットと第２取引情報のインプットに指定された未使用トランザクションアウトプットとが相違することを回避することができる。すなわち、第１取引情報による仮想資産の送金がキャンセルされないリスクを低減することができる。
【０１１３】
取引情報作成部３３４は、インプットとして第１アドレスが有する全ての未使用トランザクションアウトプットを指定した第２取引情報を作成することができる。
【０１１４】
これにより、第２取引情報のインプットに指定された未使用トランザクションアウトプットは、第１取引情報のインプットに指定された未使用トランザクションアウトプットを含むものとなる。そのため、検知部３３３が第１取引情報に指定される未使用トランザクションアウトプットに関する情報を特定するステップを省略することができる。
【０１１５】
（２）端末の機能構成
図８は、第１実施形態に係る第１端末１２０Ａ乃至第３端末１２０Ｃの機能的な構成を示すブロック図の一例を示す。第１端末１２０Ａ乃至第３端末１２０Ｃは、取引システム１において、ユーザが仮想資産の取引に用いる情報処理装置の一例であり、入出力Ｉ／Ｆ８１１と、通信Ｉ／Ｆ８１２と、記憶部８２０と、制御部８３０とを有する。
【０１１６】
入出力Ｉ／Ｆ８１１は、例えば、入出力Ｉ／Ｆ２０４を用いて実現され得る。また、通信Ｉ／Ｆ８１２は、例えば、通信Ｉ／Ｆ２０５を用いて実現され得る。記憶部８２０は、例えば、メモリ２０２及び／又はストレージ２０３を用いて実現され得る。制御部８３０は、例えば、プロセッサ２０１が、記憶部８２０に格納されているプログラムを読みだして実行することで実現され得る。
【０１１７】
入出力Ｉ／Ｆ８２１は、所定の画面を表示し、また、第１端末１２０Ａ乃至第３端末１２０Ｃの画面に表示されたボタンや、第１端末１２０Ａ乃至第３端末１２０Ｃのタッチパネルなどを用いてユーザ操作を受け付けて、操作に関する情報を制御部８３０に出力する。
【０１１８】
第１端末１２０Ａ乃至第３端末１２０Ｃの通信Ｉ／Ｆ８２２は、サーバ１１０に対して、取引情報の作成要求、取引情報のブロックチェーンネットワークへの送信要求、不正検知条件の登録要求、変更要求、及び削除要求、アドレスの秘密鍵に関する情報の登録要求、変更要求、及び削除要求、取引情報を送信した旨の通知を送信したりする送信部としての機能を有する。また、通信Ｉ／Ｆ８２２は、ブロックチェーンネットワークから第２取引情報などを受信したり、サーバ１１０から不正検知条件の登録、更新、及び削除要求に対する完了通知などを受信したりする受信部としての機能を有する。
【０１１９】
第１端末１２０Ａ乃至第３端末１２０Ｃの記憶部８２０は、例えば、第１端末１２０Ａ乃至第３端末１２０Ｃが実行するプログラム８２１及び取引情報ＤＢ８２２を記憶する。このプログラム８２１は、限定ではなく一例として、取引システム１において仮想資産の取引処理を実行させるプログラムである。また、第１端末１２０Ａのプログラム８２１は、不正検知条件や秘密鍵に関する情報の登録、更新、及び削除要求を送信する処理をさらに実行させるプログラムであってもよい。このプログラム８２１は、コンピュータ読み取り可能な記録媒体に記録されてもよく、この記録媒体からコンピュータにインストールされてもよい。
【０１２０】
取引情報ＤＢ８２２は、取引情報ＤＢ３２２と同様の構成とすることができる。
【０１２１】
第１実施形態においては、秘密鍵に関する情報はサーバ１１０の秘密鍵管理ＤＢ３２４により管理されるため、第１端末１２０Ａ乃至第３端末１２０Ｃは秘密鍵を記憶しなくともよい。以下、第１端末１２０Ａ乃至第３端末１２０Ｃは秘密鍵を記憶せず、サーバ１１０が暗号鍵を記録するウェブ（オンライン）ウォレットを前提に説明するが、ウォレットの態様はこれに限定されない。
【０１２２】
第１端末１２０Ａ乃至第３端末１２０Ｃの制御部８３０は、例えば、サーバ１１０に対して、取引情報の作成及び送信について指示をする取引情報作成部８３１、秘密鍵の管理に関する要求を行う秘密鍵管理部８３２と、を有する。なお、第２端末１２０Ｂ及び第３端末１２０Ｃは、秘密鍵管理部８３２を有しない構成としてもよい。
【０１２３】
取引情報作成部８３１は、入出力Ｉ／Ｆ８１１からのユーザ操作を受け付けて、サーバ１１０に対して、取引情報を作成し、ブロックチェーンネットワークに送信するように、指示をする。
【０１２４】
より具体的には、第１端末１２０Ａ乃至第３端末１２０Ｃの取引情報作成部８３１は、アドレスに紐づけられた未使用トランザクションアウトプットを特定するようサーバ１１０に要求する機能と、特定した未使用トランザクションアウトプットを用いて取引情報を作成するようサーバ１１０に要求する機能と、作成した取引情報に秘密鍵による電子署名を行うようサーバ１１０に要求する機能とを有する。これにより、取引情報の作成から取引情報に対する電子署名をサーバ１１０に指示することができる。
【０１２５】
秘密鍵管理部８３２は、入出力Ｉ／Ｆ８１１からのユーザ操作を受け付けて、サーバ１１０に対して、秘密鍵に関する情報の登録、更新、及び削除要求を行うよう第１端末１２０Ａ乃至第３端末１２０Ｃの送信部に指示する機能を有する。
【０１２６】
例えば、サーバ１１０の秘密鍵ＤＢ３２４に秘密鍵に関する情報を登録したい場合には、秘密鍵管理部８３２は、第１アドレスのユーザの操作に応じて、秘密鍵の登録要求をサーバ１１０に送信する。秘密鍵の登録要求に応じて、サーバ１１０の秘密鍵管理部３３１は、秘密鍵に関する情報を秘密鍵ＤＢ３２４に登録するとともに、登録完了通知を第１端末１２０Ａに送信する。
【０１２７】
ルール管理部８３３は、入出力Ｉ／Ｆ８１１からのユーザ操作を受け付けて、サーバ１１０に対して、不正検知条件の登録、更新、及び削除要求を行うよう第１端末１２０Ａ乃至第３端末１２０Ｃの送信部に指示する機能を有する。
【０１２８】
例えば、サーバ１１０のルールＤＢ３２３に不正検知条件を登録したい場合には、ルール管理部８３３は、第１アドレスのユーザの操作に応じて、不正検知条件の登録要求をサーバ１１０に送信する。不正検知条件の登録要求に応じて、サーバ１１０のルール管理部３３２は、不正検知条件をルールＤＢ３３２に登録するとともに、登録完了通知を第１端末１２０Ａに送信する。
【０１２９】
また、第１アドレスのユーザが不正検知条件を更新したい場合には、ルール管理部８３３は、第１アドレスのユーザの操作に応じて、不正検知条件の更新に関する情報をサーバ１１０に送信する。不正検知条件の更新要求に応じて、サーバ１１０のルール管理部３３２は、ルールＤＢ３３２から不正検知条件を更新する第１アドレスを特定し、その不正検知条件を更新する。
【０１３０】
＜第１実施形態の取引システム動作処理＞
図９〜１０を参照し、第１実施形態に係るプログラムの処理について説明する。図９は、第１実施形態における取引システム１が行う処理を示すシーケンス図の一例を示し、図１０は、第１実施形態における情報処理装置における処理のフローチャートの一例を示す。なお、以下で説明する処理手順は一例に過ぎず、各処理は、本開示の技術思想の範囲内において可能な限り変更されてよく、また、適宜、ステップの省略、置換、および追加が可能である。
【０１３１】
（秘密鍵に関する情報及び不正検知条件を記憶する処理）
図９に示すステップＳ９０１において、第１端末１２０Ａの秘密鍵管理部８３２は、ユーザ操作に応じて、秘密鍵に関する情報とともに秘密鍵の登録要求をサーバ１１０に対して送信するよう、通信Ｉ／Ｆ８１２に指示する。サーバ１１０の受信部は、秘密鍵の登録要求に応じて、秘密鍵に関する情報を秘密鍵ＤＢ３２４に記憶するよう、秘密鍵管理部３３１に指示する（ステップＳ９０２、Ｓ１００１）。
【０１３２】
ステップＳ９０３において、第１端末１２０Ａのルール管理部８３３は、ユーザ操作に応じて、不正検知条件の登録要求をサーバ１１０に対して送信するよう、通信Ｉ／Ｆ８１２に指示する。サーバ１１０の受信部は、不正検知条件の登録要求に応じて、不正検知条件をルールＤＢ３２３に記憶するよう、ルール管理部３３２に指示する（ステップＳ９０４、Ｓ１００２）。
【０１３３】
上記のようにして記憶した秘密鍵に関する情報及び不正検知条件は、第１端末１２０Ａから受信する変更要求または削除要求に応じて、サーバ１１０の秘密鍵管理部３３１又はルール管理部３３２が変更または削除することができる。
【０１３４】
（第１取引情報を受信する処理）
ステップＳ９０５，Ｓ１００３において、サーバ１１０の受信部は、ブロックチェーンネットワークから第１取引情報を受信し、取引情報ＤＢ３３２に記憶させる。
【０１３５】
（不正な第１取引情報を検知する処理）
ステップＳ９０６，Ｓ１００４において、サーバ１１０の検知部３３３は、ルールＤＢ３２３に記憶された不正検知条件に基づいて、取引情報ＤＢ３３２に記憶した第１取引情報が不正なものであるか否かを判断する。この際、検知部３３３が対象とする第１取引情報は、ブロックに格納する前の第１取引情報である。
【０１３６】
検知部３３３は、ブロックに格納する前の第１取引情報が不正なものと判断する場合には、その第１取引情報のインプット及びアウトプットに関する情報から手数料を特定する。そして、検知部３３３は、特定した手数料とともに、取引情報作成部３３４に第２取引情報を作成するよう指示をする。なお、検知部３３３は、第１取引情報が不正検知条件の少なくとも一つを満たせば、第１取引情報を不正なものと判断することができる。
【０１３７】
（第２取引情報を送信する処理）
ステップＳ９０７，Ｓ１００５において、取引情報作成部３３４は、第１取引情報よりも高い手数料を指定する第２取引情報を作成し、秘密鍵ＤＢ３２４に記憶した秘密鍵により電子署名を行う。
【０１３８】
ステップＳ９０８，Ｓ１００６において、取引情報作成部３３４は、第２取引情報を速やかにブロックチェーンネットワークに送信するようサーバ１１０の送信部に指示をする。一度不正検知条件がサーバ１１０に登録されると、サーバ１１０は、第１取引情報の受信から処理を開始する。なお、不正件条件や秘密鍵は、ユーザ操作に応じて、適宜変更されてもよい。
【０１３９】
なお、第１実施形態において、第２取引情報として第１取引情報による仮想資産の移動をキャンセルする取引情報を作成し、ブロックチェーンネットワークに送信してもよい。
【０１４０】
これにより、第１アドレスのユーザは、不正な第１取引情報をキャンセルするための防御手段を得ることができる。そのため、例えば、悪意のある第三者は、秘密鍵を知得するインセンティブが低減する。また、例えば、第１アドレスのユーザは、これまで取引に使用してきた第１アドレスを捨ててまで、第３アドレス等に仮想資産を退避させる必要性が低減する。
【０１４１】
具体的な動作処理としては、まず、取引情報作成部３３４は、第１取引情報による仮想資産の移動をキャンセルする第２取引情報を作成し、ブロックチェーンネットワークに送信するようサーバ１１０の送信部に指示する。
【０１４２】
この場合の第２取引情報のデータ構造は、ブロックチェーンネットワークが特定のキャンセル用の取引情報を用意している場合には、その取引情報のデータ構造に準じることができる。キャンセル用の取引情報の一例として、キャンセル対象である第１取引情報を特定するためのトランザクションＩＤと、第１取引情報の手数料よりも高い手数料と、第１アドレスのユーザの電子署名を含むものが挙げられる。
【０１４３】
また、キャンセルに使われる場合の第２取引情報の他の例として、第１アドレスの有する未使用トランザクションアウトプットの全て又は一部を第１アドレスから第１アドレスに移動させる取引情報を利用することもできる。
【０１４４】
この第２取引情報によれば、手数料分が減少すること以外は、仮想資産は第１アドレスから第１アドレスに移動するものとなる。そのため、見た目上は、手数料を支払ってキャンセルをしたことと同等となる。このような取引情報であれば、ブロックチェーンネットワークが特定のキャンセル用の取引情報を用意していないような場合でも、用いることができる。
【０１４５】
＜＜第１実施形態の変形例＞＞
次に、第１実施形態の変形例について説明する。第１実施形態の変形例は、サーバ１１０に代わってあるいは加えて、第１端末１２０Ａが秘密鍵を管理する例である。本変形例では、第１端末１２０Ａが第２取引情報を作成し、送信する処理を行うことができる。
【０１４６】
以下の説明において、上記第１実施形態と同様の機能構成については同一の符号を付すと共に、説明を省略する。また、第１実施形態と同様の作用および効果についても、説明を省略する。以下、第１実施形態との相違点を中心に説明する。
【０１４７】
＜＜変形例の効果＞＞
本変形例によれば、サーバ１１０の秘密鍵管理部３３１、取引情報作成部３３４、及び秘密鍵ＤＢ３２４を利用することなく、第１端末１２０Ａの機能部だけで第２取引情報を利用した第１取引情報のキャンセルを実施することができる。
【０１４８】
そのため、サーバ１１０が攻撃されることにより、サーバ１１０の管理する秘密鍵が流出するリスクを回避することが可能となる。
【０１４９】
＜＜変形例の機能構成＞＞
（１）サーバ１１０の機能構成
本変形例では、サーバ１１０の制御部３３０は、秘密鍵管理部３３１、取引情報作成部３３４、及び秘密鍵ＤＢ３２４を有しなくともよい。
【０１５０】
また、サーバ１１０の検知部３３３は、不正な第１取引情報を検知した場合には、その第１取引情報が指定する手数料等の情報とともに、不正な取引情報を検知した旨の通知を第１端末１２０Ａに対して送信するよう、サーバ１１０の送信部に指示をする。
【０１５１】
（２）端末１２０の機能構成
第１端末１２０Ａの制御部８３０は、例えば、取引情報作成部８３１、秘密鍵管理部８３２と、ルール管理部８３３とを有する。ここで、取引情報作成部８３１は、例えば、端末が取引情報の作成とブロックチェーンネットワークへの送信を行う機能を有する。また、秘密鍵管理部８３２は、例えば、秘密鍵を端末により管理し、その秘密鍵を用いた電子署名を行う機能を有する。以下、各機能部について説明する。
【０１５２】
第１端末１２０Ａの受信部が不正な取引情報を検知した旨の通知をサーバ１１０から受信したときは、取引情報作成部８３１は、第２取引情報を作成し、秘密鍵管理部８３２に電子署名を行うよう指示をする。また、取引情報作成部８３１は、電子署名をした第２取引情報をブロックチェーンネットワーク上に送信するよう第１端末１２０Ａの送信部に指示をする。
【０１５３】
なお、取引情報作成部８３１が第２取引情報を作成し、電子署名を行う処理については、取引情報作成部３３４と同様とすることができる。
【０１５４】
本変形例における取引情報作成部８３１は、入出力Ｉ／Ｆ８１１からのユーザ操作を受け付けて、取引情報を作成し、ブロックチェーンネットワークに送信するように、第１端末１２０Ａ乃至第３端末１２０Ｃの送信部に指示することもできる。
【０１５５】
この場合、第１端末１２０Ａの取引情報作成部８３１は、アドレスに紐づけられた未使用トランザクションアウトプットを特定する機能と、特定した未使用トランザクションアウトプットを用いて取引情報を作成する機能と、作成した取引情報に秘密鍵による電子署名を行う機能とを有する。
【０１５６】
本変形例における秘密鍵管理部８３２は、第１アドレスに対応する秘密鍵を管理し、他の機能部の要求に応じて取引情報に電子署名をする機能を有する。
【０１５７】
例えば、秘密鍵管理部８３２は、不正な取引情報を検知した旨の通知をサーバ１１０から受信したときは、取引情報作成部８３１からの指示に応じて、第２取引情報に電子署名をする。
【０１５８】
＜＜変形例の動作処理＞＞
本変形例では、秘密鍵に関する情報を記憶する処理（Ｓ９０１，Ｓ９０２）を省くことができる。
【０１５９】
また、不正な第１取引情報を検知する処理においては、検知部３３３が、第１取引情報を不正なものと判断する場合には、その第１取引情報が指定する手数料等の情報とともに、不正な取引情報を検知した旨の通知を第１端末１２０Ａに対して送信するよう、サーバ１１０の送信部に指示をする。そして、第２取引情報を送信する処理は、第１端末の取引情報作成部８３１が、サーバ１１０の送信部からの指示に応じて、行うことができる。
【０１６０】
＜第２実施形態＞
第２実施形態は、ユーザはマルチシグアドレス（マルチシグウォレット）を利用して仮想資産の送受信を行う例である。この例では、サーバ１１０がマルチシグアドレスの電子署名に用いる複数の秘密鍵のうちの少なくとも一つを記憶している。マルチシグアドレスのユーザは、自身のアドレスから仮想資産を送金する際に、作成した取引情報に対して自分の秘密鍵で電子署名することに加えて、サーバ１１０に電子署名を依頼する必要がある。典型的には、電子署名の署名依頼は署名対象の取引情報とあわせて、サーバ１１０に送信される。署名依頼を受信すると、サーバ１１０は、受信した取引情報が不正か否かを判断し、不正である場合には、その取引情報に電子署名を行わない。なお、以下では一例として、２of３のマルチシグアドレスの例について説明する。
【０１６１】
また、一例として端末１２０Aにおいて管理されるマルチシグアドレス（第１アドレス）に必要な複数の秘密鍵のうち、サーバ１１０が記憶し署名に用いる秘密鍵を「第１秘密鍵」という。また、端末１２０Aに記憶され、第１アドレスのユーザが署名に用いる秘密鍵を「第２秘密鍵」という。さらに、その他の媒体が記憶し必要に応じて署名に用いる秘密鍵を「第３秘密鍵」という。第３秘密鍵は、第１アドレスのユーザが使用する他の端末（第３端末１２０Ｃ）や他のサーバ１１０Ｂにより管理されていてもよい。また、第３秘密鍵は、第１秘密鍵を記憶するサーバ１１０により管理されていてもよい。
【０１６２】
本開示では、第１端末１２０Ａが第１アドレスに対応する端末であり、第２端末１２０Ｂが第２アドレスに対応する端末であり、第３端末１２０Ｃが第３アドレスに対応する端末であるものとする。なお、本開示では第１乃至第３アドレスはいずれもマルチすぐアドレスであるとする。但し、各アドレス及びそのアドレスに対応する暗号鍵は、必ずしも端末により管理及び使用される必要はない。例えば、端末が暗号鍵を記録するソフトウェア（デスクトップ）ウォレットに代えて、サーバが暗号鍵を記録する場合をウェブ（オンライン）ウォレット、ＵＳＢ等の記録媒体が暗号鍵を記録する場合をハードウェアウォレット、紙媒体が暗号鍵を記録する場合をコールド（ペーパー）ウォレットであってもよい。
【０１６３】
なお、以降では暗号鍵は、秘密鍵で暗号化を行い公開鍵で複合化を行う公開鍵暗号方式で用いられる秘密鍵として説明するが、これに限定されず、同じ鍵暗号化と複合化を行う共通鍵暗号方式の共通鍵等、任意の暗号鍵でもよい。
【０１６４】
＜第２実施形態の効果＞
かかる第２実施形態によれば、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。より具体的には、第２実施形態では、サーバ１１０が、不正な取引情報に対して第１秘密鍵により電子署名を行わないことを決定する。マルチシグアドレスから仮想資産を送金するための取引情報は、必要な数の署名がなされなければとなるまではマイナーによりブロックに取り込まれない。これにより、ユーザの保有する第２秘密鍵が悪意のある第三者に知得された場合であっても、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。
【０１６５】
＜第２実施形態の機能構成＞
以下、第２実施形態の機能構成について説明する。以下の説明において、上記第１実施形態と同様の機能構成については同一の符号を付すと共に、説明を省略する。また、第１実施形態と同様の作用および効果についても、説明を省略する。以下、第１実施形態との相違点を中心に説明する。
【０１６６】
（１）サーバの機能構成
第２実施形態において、サーバ１１０は、取引システム１において署名依頼があった取引情報が不正か否かを判断し、電子署名をするか否かの決定を行う情報処理装置の一例である。記憶部３２０が格納するプログラム３２１は、不正な未署名取引情報については、電子署名を行わないことを決定するためのプログラムである。
【０１６７】
秘密鍵ＤＢ３２４には、第１秘密鍵に関する情報が管理される。
【０１６８】
検知部３３３は、ルールＤＢ３２３に記憶された不正検知条件に基づいて、署名依頼の対象の取引情報が第１アドレスのユーザが意図しない不正なものであるか否かを検知する機能を有する。一例として、サーバ１１０の受信部がブロックチェーンネットワークから未署名取引情報を受信した場合には、検知部３３３はその取引情報がルールＤＢ３２３に記憶された不正検知条件を満たすか否かを判断する。
【０１６９】
取引情報が不正検知条件を満たす場合には、検知部３３３は、その取引情報に第１秘密鍵による電子署名を付さないことを決定し、その旨を取引情報作成部３３４に対して指示をする。
【０１７０】
一方、署名依頼対象の取引情報が不正検知条件を満たさない場合には、検知部３３３は、その取引情報が正当なものであると判断する。そして、検知部３３３は、その取引情報に第１秘密鍵による電子署名を付すよう、取引情報作成部３３４に対して指示をする。
【０１７１】
取引情報作成部３３４は、検知部３３３からの指示に応じて、取引情報に電子署名を行う。これにより、取引情報に必要な数の電子署名数がされることになる。取引情報作成部３３４は署名をした取引情報をブロックチェーンネットワークに送信する。
【０１７２】
これにより、ユーザの意図しない不正な取引情報は未署名のままとなる。そのため、ユーザの保有する第２秘密鍵が悪意のある第三者に知得された場合であっても、ユーザの意図しない不正な取引情報が分散型台帳に記録されないようにすることができる。
【０１７３】
以下、さらに付加的態様について説明する。
【０１７４】
なお、検知部３３３は、未署名取引情報が不正検知条件を満たすと判断した場合に、第１端末１２０Ａのユーザに対して、不正検知条件を満たす取引情報を受信した旨の確認通知を送信するようサーバ１１０の送信部に指示をすることができる。
【０１７５】
これにより、第１端末１２０Ａのユーザは、第三者により自己の管理する第２秘密鍵が知得された可能性があることを速やかに知ることができる。そのため、第１端末１２０Ａのユーザは、仮想資産をより安全なアドレスに退避させるなどの措置を迅速にとることができる。
【０１７６】
また、不正検知条件を満たす取引情報が端末１２０Ａのユーザにより作成されてサーバ１１０に送信された場合も考えられる。このように場合には、確認通知を受信した端末１２０Ａの取引情報作成部８３１は、ユーザ操作に応じて、サーバ１１０に対して、取引情報に対して第１秘密鍵による電子署名を行うよう通知することができる。あるいは、第１アドレスのユーザは別途保存しておいた第３秘密鍵により不正と誤判断された取引情報に電子署名をしてもよい。
【０１７７】
これにより、第１端末１２０Ａのユーザが作成した真正な取引情報であって、何らかの事情により不正検知条件を満たしてしまう取引情報についても、滞りなくブロックに格納させることができる。
【０１７８】
（２）端末の機能構成
第２実施形態における第１端末１２０Ａ乃至第３端末１２０Ｃは、取引システム１において、ユーザが仮想資産の取引に用いる情報処理装置の一例であり、第１実施形態における第１端末１２０Ａ乃至第３端末１２０Ｃと同様の構成とすることができる。
【０１７９】
＜第２実施形態の取引システム動作処理＞
図１１〜１２を参照し、第２実施形態に係るプログラムの処理について説明する。図１１は、第２実施形態における取引システム１が行う処理を示すシーケンス図の一例を示し、図１２は、第２実施形態における情報処理装置における処理のフローチャートの一例を示す。なお、以下で説明する処理手順は一例に過ぎず、各処理は、本開示の技術思想の範囲内において可能な限り変更されてよく、また、適宜、ステップの省略、置換、および追加が可能である。
【０１８０】
（秘密鍵に関する情報及び不正検知条件を記憶する処理）
図１１に示すステップＳ１１０３において、第１端末１２０Ａのルール管理部８３３は、ユーザ操作に応じて、不正検知条件の登録要求をサーバ１１０に対して送信するよう、通信Ｉ／Ｆ８１２に指示する。サーバ１１０の受信部は、不正検知条件の登録要求に応じて、不正検知条件をルールＤＢ３２３に記憶するよう、ルール管理部３３２に指示する（ステップＳ１１０４、Ｓ１２０２）。このとき、サーバ１１０は、不正検知条件の登録要求を行ったユーザごとに鍵ペア（秘密鍵と公開鍵）を生成し、不正検知条件と対応付けて記憶することが好ましい。サーバ１１０において、ユーザごとに異なる秘密鍵を用いて電子署名をすることで、よりセキュリティレベルが向上する。
【０１８１】
上記のようにして記憶した秘密鍵に関する情報及び不正検知条件は、第１端末１２０Ａから受信する変更要求または削除要求に応じて、サーバ１１０の秘密鍵管理部３３１又はルール管理部３３２が変更または削除することができる。
【０１８２】
（未署名取引情報を受信する処理）
ここで、端末１２０Ａの秘密鍵が略取され、悪意のあるユーザ（一例として端末１２０Ｂのユーザとする）によって端末１２０Ａのユーザが所有する仮想資産を盗み取るための取引情報を作成した場合を例に説明する。この例では端末１２０Ａのユーザの仮想資産はマルチシグウォレットで管理されているため、秘密鍵を略取したユーザもサーバ１１０に電子署名を依頼する必要がある。そのため、端末１２０Ｂのユーザは、まず、端末１２０Ａのユーザの仮想資産を任意のアドレスへ移動させる取引情報を作成し、端末１２０Ａから略取した秘密鍵で電子署名する。そして、署名した取引情報をサーバ１１０に送信する。
ステップＳ１１０５，Ｓ１２０３において、サーバ１１０の受信部は、端末１２０Ｂから未署名取引情報を受信し、取引情報ＤＢ３３２に記憶させる。
【０１８３】
（不正な取引情報を検知する処理）
ステップＳ１１０６，Ｓ１２０４において、サーバ１１０の検知部３３３は、ルールＤＢ３２３に記憶された不正検知条件に基づいて、取引情報ＤＢ３３２に記憶した取引情報が不正なものであるか否かを判断する。
【０１８４】
（第１秘密鍵による電子署名をするか否かの決定する処理）
ステップＳ１１０７，Ｓ１２０５において、検知部３３３は、取引情報が不正なものと判断した場合には、取引情報作成部３３４に対して、第１秘密鍵による電子署名を行わないよう指示をする。なお、検知部３３３は、取引情報が不正検知条件の少なくとも一つを満たせば、未署名取引情報を不正なものと判断することができる。
【０１８５】
なお、Ｓ１２０６において、検知部３３３は、取引情報が真正なものと判断する場合には、取引情報作成部３３４に対して、第１秘密鍵による電子署名を行うよう指示をする。
【０１８６】
なお、この第２実施形態によれば、サーバ１１０の管理者が不正により、第１秘密鍵を用いて取引情報を作成した場合であっても、ユーザの使用する第１端末１２０Ａが第２秘密鍵により電子署名を行わないことができる。また、サーバ１１０が攻撃されることにより、サーバ１１０の管理する第１秘密鍵が流出した場合であっても、ユーザの使用する第１端末１２０Ａが第２秘密鍵により電子署名を行わないことができる。これにより、不正な取引情報が分散型台帳に記録されないようにすることができる。
【０１８７】
なお、上述したとおり、本発明は、上記の実施形態及び実施例に限定されるものではなく、その要旨を逸脱しない範囲内において様々な変形が可能である。すなわち、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、秘密鍵に代えて共通鍵を用いてもよいし、ブロックチェーンネットワークは、ブロックチェーンに関する情報をノード間で分散共有するネットワークであれば、必ずしもその通信手段がＰ２Ｐ通信プロトコルに従う必要はない。また、既述の実施形態においてはUTXOに基づいてアドレスの残高を管理する構成について説明したがこれに限定されず、アカウントベースにより残高を管理する構成でもよい。この場合、トランザクションを生成する際には単に送信したい仮想資産の量や手数料の額を直接指定してもよい。
【符号の説明】
【０１８８】
１…取引システム、１１０…サーバ、１１０Ａ…サーバ、１１０Ｂ…サーバ、１２０…端末、１２０Ａ…第１端末、１２０Ｂ…第２端末、１２０Ｃ…第３端末、１３０…ネットワーク、２００…情報処理装置、２０１…プロセッサ、２０２…メモリ、２０３…ストレージ、２０４…入出力インタフェース（入出力Ｉ／Ｆ）、２０５…通信インタフェース（通信Ｉ／Ｆ）、３２０…記憶部、３２１…プログラム、３３２…取引情報ＤＢ、３２３…ルールＤＢ、３２４…秘密鍵ＤＢ、３３０…制御部、３３１…秘密鍵管理部、３３２…ルール管理部、３３３…検知部、３３４…取引情報作成部、８２０…記憶部、８２１…プログラム、８２２…取引情報ＤＢ、８３０…制御部、８３１…取引情報作成部、８３２…秘密鍵管理部、８３３…ルール管理部
【図１】
2020129283.tif 000003
【図２】
2020129283.tif 000004
【図３】
2020129283.tif 000005
【図４】
2020129283.tif 000006
【図５】
2020129283.tif 000007
【図６】
2020129283.tif 000008
【図７】
2020129283.tif 000009
【図８】
2020129283.tif 000010
【図９】
2020129283.tif 000011
【図１０】
2020129283.tif 000012
【図１１】
2020129283.tif 000013
【図１２】
2020129283.tif 000014