IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ Xクリエーション株式会社の特許一覧 ▶ bacoor dApps株式会社の特許一覧 ▶ 株式会社AI商事の特許一覧

特開2024-54030コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置
<>
  • 特開-コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置 図1
  • 特開-コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置 図2
  • 特開-コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置 図3
  • 特開-コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置 図4
  • 特開-コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置 図5
  • 特開-コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置 図6
  • 特開-コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置 図7
  • 特開-コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置 図8
  • 特開-コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置 図9
  • 特開-コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置 図10
  • 特開-コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024054030
(43)【公開日】2024-04-16
(54)【発明の名称】コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置
(51)【国際特許分類】
   H04L 67/50 20220101AFI20240409BHJP
【FI】
H04L67/50
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022160601
(22)【出願日】2022-10-04
(71)【出願人】
【識別番号】520295029
【氏名又は名称】Xクリエーション株式会社
(71)【出願人】
【識別番号】518003096
【氏名又は名称】Bacoor dApps株式会社
(71)【出願人】
【識別番号】320003367
【氏名又は名称】株式会社AI商事
(74)【代理人】
【識別番号】100111567
【弁理士】
【氏名又は名称】坂本 寛
(72)【発明者】
【氏名】河上 昌浩
(72)【発明者】
【氏名】春名 幸雄
(72)【発明者】
【氏名】竹内 仁
(57)【要約】
【課題】分散型アプリケーションにおけるフィッシングへの効果的な対処の手段を提供する。
【解決手段】開示のコンピュータ実装方法は、ウォレットアプリケーションと接続された又は接続される分散型アプリケーションの安全性を判定し、前記分散型アプリケーションの安全性を判定した結果を、前記ウォレットアプリケーションにおいて表示する、ことを備える。
【選択図】図7
【特許請求の範囲】
【請求項1】
コンピュータによって実行されるコンピュータ実装方法であって、
ウォレットアプリケーションと接続された又は接続される分散型アプリケーションの安全性を判定し、
前記分散型アプリケーションの安全性を判定した結果を、前記ウォレットアプリケーションにおいて表示する、
ことを備える、コンピュータ実装方法。
【請求項2】
前記ウォレットアプリケーションは、前記分散型アプリケーションとの接続を確立するための操作がユーザによって行われるアプリケーションである
請求項1に記載のコンピュータ実装方法。
【請求項3】
前記分散型アプリケーションの安全性を判定した前記結果は、前記ウォレットアプリケーションにおいて、前記操作が行われた後に表示される
請求項2に記載のコンピュータ実装方法。
【請求項4】
前記分散型アプリケーションの安全性を判定した前記結果は、前記ウォレットアプリケーションと接続された前記分散型アプリケーションによって生じたトランザクションを秘密鍵によって電子署名をする操作を前記ウォレットアプリケーションにおいてするためのユーザインターフェースとともに表示される
請求項1に記載のコンピュータ実装方法。
【請求項5】
前記分散型アプリケーションの安全性を判定した前記結果は、分散型アプリケーションが安全であるかどうかを示す判定データを用いて、前記分散型アプリケーションが安全かどうかを判定した結果を含む
請求項1に記載のコンピュータ実装方法。
【請求項6】
前記判定データは、分散型アプリケーションが安全であるかどうかが複数のユーザの操作に基づいて設定された第1判定データを含む
請求項5に記載のコンピュータ実装方法。
【請求項7】
前記判定データは、分散型アプリケーションが安全であるかどうかが管理者によって設定された第2判定データを含む
請求項5又は請求項6に記載のコンピュータ実装方法。
【請求項8】
前記分散型アプリケーションの安全性を判定した前記結果は、前記分散型アプリケーションのドメイン名に基づいて、前記分散型アプリケーションが安全かどうかを判定した結果を含む
請求項1に記載のコンピュータ実装方法。
【請求項9】
前記ウォレットアプリケーションと前記分散型アプリケーションとの接続は、WalletConnectプロトコルに従って行われる
請求項1に記載のコンピュータ実装方法。
【請求項10】
分散型アプリケーションに接続されるウォレットアプリケーションのコンピュータプログラムであって、
前記ウォレットアプリケーションと接続された又は接続される分散型アプリケーションの安全性を判定した結果を表示することをコンピュータに実行させるよう構成されている
コンピュータプログラム。
【請求項11】
分散型アプリケーションに接続されるウォレットアプリケーションのコンピュータプログラムであって、
前記ウォレットアプリケーションと接続された前記分散型アプリケーションによって生じたトランザクションの承認をする操作をするためのユーザインターフェースと、前記ウォレットアプリケーションと接続された分散型アプリケーションの安全性を判定した結果と、を表示することをコンピュータに実行させるよう構成されている
コンピュータプログラム。
【請求項12】
分散型アプリケーションに接続されるウォレットアプリケーションが実行される装置であって、
前記ウォレットアプリケーションと接続された又は接続される分散型アプリケーションの安全性を判定した結果を表示するよう構成されている
装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置に関する。
【背景技術】
【0002】
特許文献1は、フィッシングサイトであるWEBページを検知する検出装置を開示している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-2036号公報
【発明の概要】
【0004】
近年、インターネットは、Web2.0(Web2)から、次世代型のWeb3.0(Web3)へ移行しつつある。Web3.0は、ブロックチェーンなどの分散ネットワークを用いた技術である。すなわち、Web3.0は、典型的には、ブロックチェーンを用いたインターネット技術である。
【0005】
ブロックチェーンなどの分散ネットワーク技術を利用して実行されるアプリケーションは、分散型アプリケーション(Decentralized application:dApp)と呼ばれる。分散型アプリケーションは、中央のサーバによって実行されるソフトウェアである中央集権型アプリケーションとは異なり、ブロックチェーンのように、分散したコンピュータノードによって実行される、非中央集権型のソフトウェアである。
【0006】
このような分散型アプリケーションにおいても、Web2.0におけるWebサイトと同様に、フィッシング詐欺が行われることがある。つまり、従来のWEBサイトにおけるフィッシングサイトと同様に、分散型アプリケーションにおいても、本物の分散型アプリケーションを装った偽のアプリケーションが存在することがある。
【0007】
したがって、分散型アプリケーションにおけるフィッシングへの効果的な対処が望まれる。
【0008】
本発明者らは、分散型アプリケーションにおけるフィッシングへの対処のため、分散型アプリケーションへの接続に用いられるウォレットアプリケーションを利用するという新規な着想を得た。かかる着想に基づく本開示のある側面は、コンピュータ実装方法であって、ウォレットアプリケーションと接続された又は接続される分散型アプリケーションの安全性を判定し、前記分散型アプリケーションの安全性を判定した結果を、前記ウォレットアプリケーションにおいて表示する、ことを備える。
【0009】
本開示の他の側面は、分散型アプリケーションに接続されるウォレットアプリケーションのコンピュータプログラムである。開示のコンピュータプログラムは、前記ウォレットアプリケーションと接続された又は接続される分散型アプリケーションの安全性を判定した結果を表示することをコンピュータに実行させるよう構成されている。
【0010】
他の観点において本開示のコンピュータプログラムは、前記ウォレットアプリケーションと接続された前記分散型アプリケーションによって生じたトランザクションの承認をする操作をするためのユーザインターフェースと、前記ウォレットアプリケーションと接続された分散型アプリケーションの安全性を判定した結果と、を表示することをコンピュータに実行させるよう構成されている。
【0011】
本開示の他の側面は、分散型アプリケーションに接続されるウォレットアプリケーションが実行される装置である。開示の装置は、前記ウォレットアプリケーションと接続された又は接続される分散型アプリケーションの安全性を判定した結果を表示するよう構成されている。
【0012】
更なる詳細は、後述の実施形態として説明される。
【図面の簡単な説明】
【0013】
図1図1は、コンピュータ実装方法の実行に用いられる装置を備えるシステムの構成図である。
図2図2は、分散型アプリケーションとウォレットアプリケーションとの接続確立の手順を示すフロートチャートである。
図3図3は、ブラウザに表示された分散型アプリケーションの画面遷移を示す図である。
図4図4は、二次元コードのスキャンの説明図である。
図5図5は、ウォレットアプリケーションにおける接続の承認操作の説明図である。
図6図6は、接続確立後の分散型アプリケーションの画面である。
図7図7は、安全性判定の手順を示すフローチャート及びウォレットアプリケーションにおける安全性判定結果の表示を示す図である。
図8図8は、判定テーブルの説明図である。
図9図9は、電子署名リクエストを受信したときのウォレットアプリケーションにおける表示画面を示す図である。
図10図10は、投票ユーザインターフェースが表示されたウォレットアプリケーションの表示画面を示す図である。
図11図11は、システムの変形例を示す図である。
【発明を実施するための形態】
【0014】
<1.コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置>
【0015】
(1)実施形態に係る方法は、コンピュータによって実行されるコンピュータ実装方法であって、ウォレットアプリケーションと接続された又は接続される分散型アプリケーションの安全性を判定し、前記分散型アプリケーションの安全性を判定した結果を、前記ウォレットアプリケーションにおいて表示する、ことを備える。
【0016】
実施形態に係る方法によれば、分散型アプリケーションを利用するために用いられるウォレットアプリケーションにおいて、分散型アプリケーションの安全性を判定した結果が表示されるため、ウォレットアプリケーションのユーザは、ウォレットアプリケーションを利用する際に、分散型アプリケーションの安全性を確実に確認することができる。
【0017】
従来のWEB2.0におけるWebサイトでは、ウォレットアプリケーションは用いられない。しかし、WEB3.0におけるWebサイトにログインするには、一般に、ウォレットアプリケーションが必要とされる。したがって、ウォレットアプリケーションが分散型アプリケーションの安全性表示機能を備えることで、ユーザが、そのウォレットアプリケーションを用いる限りは、必ず、安全性表示機能を利用することができ、有利である。
【0018】
(2)前記ウォレットアプリケーションは、前記分散型アプリケーションとの接続を確立するための操作がユーザによって行われるアプリケーションであり得る。
【0019】
(3)前記分散型アプリケーションの安全性を判定した前記結果は、前記ウォレットアプリケーションにおいて、前記操作が行われた後に表示され得る。
【0020】
(4)前記分散型アプリケーションの安全性を判定した前記結果は、前記ウォレットアプリケーションと接続された前記分散型アプリケーションによって生じたトランザクションを秘密鍵によって電子署名をする操作を前記ウォレットアプリケーションにおいてするためのユーザインターフェースとともに表示され得る。
【0021】
(5)前記分散型アプリケーションの安全性を判定した前記結果は、分散型アプリケーションが安全であるかどうかを示す判定データを用いて、前記分散型アプリケーションが安全かどうかを判定した結果を含み得る。
【0022】
(6)前記判定データは、分散型アプリケーションが安全であるかどうかが複数のユーザの操作に基づいて設定された第1判定データを含み得る。
【0023】
(7)前記判定データは、分散型アプリケーションが安全であるかどうかが管理者によって設定された第2判定データを含み得る。
【0024】
(8)前記分散型アプリケーションの安全性を判定した前記結果は、前記分散型アプリケーションのドメイン名に基づいて、前記分散型アプリケーションが安全かどうかを判定した結果を含み得る。
【0025】
(9)前記ウォレットアプリケーションと前記分散型アプリケーションとの接続は、WalletConnectプロトコルに従って行われ得る。
【0026】
(10)実施形態に係るコンピュータプログラムは、分散型アプリケーションに接続されるウォレットアプリケーションのコンピュータプログラムであって、前記ウォレットアプリケーションと接続された又は接続される分散型アプリケーションの安全性を判定した結果を表示することをコンピュータに実行させるよう構成されている。
【0027】
(11)実施形態に係るコンピュータプログラムは、分散型アプリケーションに接続されるウォレットアプリケーションのコンピュータプログラムであって、前記ウォレットアプリケーションと接続された前記分散型アプリケーションによって生じたトランザクションの承認をする操作をするためのユーザインターフェースと、前記ウォレットアプリケーションと接続された分散型アプリケーションの安全性を判定した結果と、を表示することをコンピュータに実行させるよう構成されている。
【0028】
前述のコンピュータプログラムは、コンピュータ読取可能である、非一時的な記録媒体に記録され得る。
【0029】
(12)実施形態に係る装置は、分散型アプリケーションに接続されるウォレットアプリケーションが実行される装置であって、前記ウォレットアプリケーションと接続された又は接続される分散型アプリケーションの安全性を判定した結果を表示する構成されている。
【0030】
<2.コンピュータ実装方法、ウォレットアプリケーションのコンピュータプログラム、及び装置の例>
【0031】
図1は、実施形態に係るコンピュータ実装方法の実行に用いられる装置を備えるシステムの一例を示している。なお、以下及び図面では、分散型アプリケーション10を「dApp」と表記し、ウォレットアプリケーション20を「Wallet」と表記することがある。
【0032】
分散型アプリケーション10(dApp)は、ブロックチェーンなどの分散ネットワーク技術を利用して実行されるソフトウェア(コンピュータプログラム)である。分散型アプリケーション10は、典型的には、ブロックチェーン上で動作するアプリケーションである。分散型アプリケーション10は、Web3.0アプリケーション、Web3.0サイト、又はWeb3.0プラットフォームと呼ばれることもある。なお、スマートコントラクトを利用した分散型アプリケーションは、管理者を必要とせず、スマートコントラクトによって自動的に取引等を実行することができる。分散型アプリケーション10は、ブロックチェーン以外の分散ネットワーク上で動作してもよい。なお、分散ネットワーク100は、例えば、インターネット上に構築される。
【0033】
分散型アプリケーション10は、例えば、暗号資産の取引のためのユーザインターフェースを提供し得る。ユーザは、分散型アプリケーション10にログインし、ユーザが保有する暗号資産を取引する操作を、分散型アプリケーション10上で行うことができる。なお、分散型アプリケーション10は、ユーザの保有する暗号資産を利用するその他の処理のためのユーザインターフェースを提供するよう構成されていてもよい。ユーザの保有する暗号資産を利用するその他の処理は、例えば、ユーザの保有する暗号資産である非代替性トークン(NFT)を用いたゲームのための処理である。
【0034】
なお、分散型アプリケーション10は、少なくともバックエンドが、分散ネットワーク100(分散コンピュータネットワークシステム100)によって実行されればよく、ユーザインターフェースを提供するフロントエンド(クライアントサイド)は、管理者によって中央集権的に管理されるサーバ、又は、ユーザ端末によって実行されてもよい。バックエンドは、例えば、分散ネットワーク100によって実行されるスマートコントラクトによって構成され得る。なお、フロントエンドも、分散ネットワーク100によって実行されてもよい。
【0035】
分散型アプリケーションが利用される代表的な分野として、分散型金融(Decentralized Finance:DiFi)、ブロックチェーンゲーム、及びデジタル通貨などがある。
【0036】
分散型アプリケーション10は、例えば、ユーザのコンピュータ300にインストールされたWebブラウザ30(ブラウザアプリケーション)によって表示され得る。図1において、分散型アプリケーション10の表示に用いられるブラウザ30は、ユーザによって使用されるコンピュータ300にインストールされている。ユーザによって使用されるコンピュータ300は、例えば、デスクトップ又はラップトップなどのパーソナルコンピュータである。
【0037】
コンピュータ300は、プロセッサ310及び記憶装置320を備える。コンピュータ300は、インターネットに接続可能である。記憶装置320は、プロセッサ310に接続されている。記憶装置320は、例えば、一次記憶装置及び二次記憶装置を備える。一次記憶装置は、例えば、RAMである。二次記憶装置は、例えば、ハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)である。記憶装置320は、プロセッサ310によって実行されるコンピュータプログラムであるブラウザ30を備える。プロセッサ310は、記憶装置320に格納されたブラウザ30のコンピュータプログラムを読み出して実行する。コンピュータ300は、ディスプレイ330を備え得る。ブラウザ30は、分散型アプリケーション10を、ディスプレイ330に表示させる。
【0038】
WEBサイトとしての分散型アプリケーション10は、インターネット上のアドレスを示すドメイン名(URL)を有する。ブラウザ30は、ドメイン名によって識別されるIPドレスにアクセスすることで、分散型アプリケーション10を表示する。なお、分散型アプリケーション10は、ブラウザ30以外のアプリケーションによって表示されてもよい。例えば、分散型アプリケーション10は、その分散型アプリケーション10専用のアプリケーションによって表示されてもよい。分散型アプリケーション10専用のアプリケーションは、ユーザのコンピュータにインストールされ得る。
【0039】
分散型アプリケーション10は、暗号資産の取引などのトランザクションを生じさせることができる。暗号資産の取引は、例えば、暗号資産の送信である。トランザクションは、例えば、ユーザが、分散型アプリケーション10上で、暗号資産の取引操作など、トランザクションを生じさせる操作を、行うことによって生じる。生じたトランザクションは、ブロックチェーンなどの分散コンピュータネットワークシステム100の分散台帳に記録される。
【0040】
分散台帳に記録されるトランザクションは、取引者の秘密鍵による電子署名が必要とされる。分散型アプリケーション10によって生じたトランザクションも、電子署名が必要とされる。トランザクションの電子署名は、トランザクションを生じさせる分散型アプリケーション10に接続されたウォレットアプリケーション20における操作によって行われ得る。分散型アプリケーション10によってトランザクションを生じさせる操作が行われた場合、そのトランザクションへの電子署名のリクエストがウォレットアプリケーション20へ送信される。そのリクエストを受信したウォレットアプリケーション20において、電子署名のユーザ操作がなされると、ウォレットアプリケーション20は、分散型アプリケーション10によって生じたトランザクションに電子署名をする処理を実行させる。
【0041】
ウォレットアプリケーション20は、分散型アプリケーション10に接続されるウォレットとしてコンピュータを機能させるソフトウェア(コンピュータプログラム)である。ウォレットアプリケーション20は、単に、「ウォレット」とも呼ばれる。ウォレットアプリケーション20は、分散型アプリケーションに接続するためのインターフェースを提供し得る。
【0042】
図1において、ウォレットアプリケーション20は、ユーザによって使用されるコンピュータであるモバイル端末200にインストールされている。モバイル端末200は、例えば、スマートフォン、タブレット、又はスマートウォッチである。
【0043】
モバイル端末200は、プロセッサ210及び記憶装置220を備えるコンピュータである。モバイル端末200は、インターネット上に接続可能である。記憶装置220は、プロセッサ210に接続されている。記憶装置220は、例えば、一次記憶装置及び二次記憶装置を備える。一次記憶装置は、例えば、RAMである。二次記憶装置は、例えば、ハードディスクドライブ(HDD)又はソリッドステートドライブ(SSD)である。記憶装置220は、プロセッサ210によって実行されるコンピュータプログラムであるウォレットアプリケーション20を備える。記憶装置220は、ブラウザ25も備え得る。プロセッサ310は、記憶装置320に格納されたコンピュータプログラムを読み出して実行する。コンピュータ300は、タッチパネル230を備え得る。ウォレットアプリケーション20が提供する表示画面は、タッチパネル230に表示される。なお、モバイル端末200は、カメラ240も備え得る。カメラ240は、後述の二次元コードのスキャンに用いられ得る。
【0044】
ウォレットアプリケーション20には、ウォレットアプリケーションを保有するユーザのブロックチェーンアカウントが登録されている。ブロックチェーンアカウントは、単に「アカウント」とも呼ばれる。アカウントは、ブロックチェーンの暗号資産の保有者を示す識別子である。識別子としてのアカウントは、ブロックチェーンのアドレスによって構成される。アカウントには、秘密鍵22が対応付けられている。ウォレットアプリケーション20には、アカウントに対応付けて秘密鍵22が登録されている。
【0045】
ユーザは、ウォレットアプリケーション20を利用して、そのウォレットアプリケーション20に登録されているアカウントによって、分散型アプリケーション10にログインすることができる。ユーザがログインすると、分散型アプリケーション10は、ユーザがログインに用いたアカウントのブロックチェーンアドレスに基づいて、ブロックチェーンを参照し、そのブロックチェーンアドレスによって所有されている又はそのブロックチェーンアドレスによって利用可能な暗号資産を把握することができる。分散型アプリケーション10は、その暗号資産の取引に関するトランザクションを、分散型アプリケーション10上でのユーザ操作に応じて、発行する処理を実行させることができる。
【0046】
すなわち、ユーザは分散型アプリケーション10にログインすると、ログインに用いられたアカウントにおいて保有する暗号資産又は利用可能な暗号資産の取引又は利用を、その分散型アプリケーション10上で行うことができる。暗号資産の取引は、例えば、ブラウザ30に表示された分散型アプリケーション10をユーザが操作することによって行われる。暗号資産の取引は、例えば、ユーザが保有する暗号資産を支払手段(通貨)として支払って、デジタルアセットなどの何らかの購入対象を購入することである。また、暗号資産の取引は、暗号資産である非代替性トークン(NFT)を譲渡又は販売することであってもよい。なお、分散型アプリケーション10では、暗号資産の取引が行われる必要はなく、単に、ユーザが保有する暗号資産が何らかの形で利用されれば足りる。
【0047】
ユーザが分散型アプリケーション10にログインした状態(分散型アプリケーションとウォレットアプリケーションとの接続が確立した状態)において、ウォレットアプリケーション20は、その分散型アプリケーション10において実行されるトランザクションの電子署名に用いられ得る。ウォレットアプリケーション20は、分散型アプリケーション10において生じたトランザクションに電子署名をするユーザ操作のためのユーザインターフェースを提供する。
【0048】
トランザクションは、例えば、暗号資産の取引のためのトランザクションである。トランザクションの電子署名には、分散型アプリケーション10へのログインに用いられたアカウントに対応した秘密鍵が用いられる。なお、ここでは、ウォレットアプリケーション20を用いてトランザクションへ電子署名することを、「承認」という。すなわち、トランザクションの承認の際には、秘密鍵によってトランザクションが電子署名される。
【0049】
不正なトランザクションに対して誤って電子署名してしまうと、暗号資産の意図しない流出又は盗難が生じる。このため、不正なトランザクションに電子署名しないように、ユーザは、電子署名の操作の際に、慎重な判断が求められる。不正なトランザクションは、例えば、フィッシングサイトである分散型アプリケーション10において生じることがある。したがって、ユーザは、電子署名のリクエストを送信してきた分散型アプリケーション10が、正式なオフィシャルサイトであるか、偽のフィッシングサイトであるかを、慎重に判断する必要がある。
【0050】
ウォレットアプリケーション20と分散型アプリケーション10との接続は、当該接続のための標準プロトコルに従って実行され得る。当該接続のための標準プロトコルは、例えば、WalletConnectプロトコルである。WalletConnectプロトコルは、ウォレットアプリケーション(Wallet)と分散型アプリケーション(dApp)との間で安全に通信するためのオープンプロトコルである。このプロトコルは、ブリッジサーバ500を使用して、2つのアプリケーション又は装置間のリモート接続を確立し、ペイロードを中継する。
【0051】
WalletConnectプロトコルに準拠したウォレットアプリケーション20と分散型アプリケーション10との接続は、ウォレットアプリケーション20及び分散型アプリケーション10それぞれがWalletConnectクライアント(図示省略)を使用し、それぞれのWalletConnectクライアントがブリッジサーバ500に接続することで行われる。すなわち、ウォレットアプリケーション20と分散型アプリケーション10との接続は、ブリッジサーバ500を介して行われる。なお、WalletConnectプロトコルの更なる詳細については、https://docs.walletconnect.com/ を参照。なお、ウォレットアプリケーション20と分散型アプリケーション10との接続には、秘密鍵による承認を必要としてもよいし、必要としなくてもよい。
【0052】
ウォレット20は、その処理のすべてが端末200で実行されてもよいし、一部の処理がインターネット上のサーバ400によって実行されてもよい。つまり、ウォレットアプリケーション20は、ウォレットとしての処理の一部を、バックエンドであるサーバ400に委ねるものであってもよい。サーバ400によって実行される当該処理は、例えば、分散型アプリケーション10の安全性を判定する処理40である。分散型アプリケーション10の安全性を判定する処理40は、例えば、分散型アプリケーション10が、フィッシングであるかどうかを判定する処理である。安全性を判定する処理40は、例えば、分散型アプリケーション10が安全であるかどうかを示す判定データである判定テーブル45を用いて行われる。安全性を判定する処理40については後述される。
【0053】
図2から図5は、ウォレットアプリケーション20と分散型アプリケーション10との接続手順の一例として、前述のWalletConnectプロトコルに準拠した手順を示している。
【0054】
まず、ブラウザ30によってディスプレイ330に表示された分散型アプリケーション10上で、ユーザが、ログイン操作を行う(ステップS21)。ログイン操作は、例えば、図3に示すように、表示された分散型アプリケーション10の表示領域331(ブラウザ30のウィンドウ領域)に表示されたグラフィカルユーザインターフェースであるログインボタン331Aを選択操作することによって開始される。選択操作は、例えば、マウス操作によって行われる。
【0055】
ログインボタン331Aが選択操作されると、表示領域331は、接続に用いられるウォレットの選択画面になる。ここでは、複数のウォレット選択ボタン331B,331C,331Dの中から、「WalletConnect」のボタン331Bが選択される。
【0056】
「WalletConnect」のボタン331Bが選択されると、表示領域331には、分散型アプリケーション10によってWalletConnectのための二次元コード331Fが表示される(図2のステップS22)。この二次元コード331Fは、WalletConnectのURIを含むQRコード(登録商標)であり、WalletConnectプロトコルに従って生成される。二次元コードに含まれるURIは、WalletConnect標準URIフォーマット(EIP-1328)である。二次元コード331Fは、分散型アプリケーション10のWalletConnectクライアントが、ブリッジサーバ500に接続し、必要な情報をブリッジサーバ500から取得することで生成される。
【0057】
WalletConnectプロトコルに従った接続を確立するための二次元コード331Fは、図4に示すように、ウォレットアプリケーション20がインストールされた端末200によってスキャンされる(図2のステップS23)。より具体的には、ウォレットアプリケーション20は、二次元コードのスキャン機能(読み取り機能)を有し、そのウォレットアプリケーション20によって、端末200において、二次元コード331Fのスキャン処理が実行される。
【0058】
二次元コード331Fに含まれるURIを読み取ったウォレットアプリケーション20は、そのURIに従って、ブリッジサーバ500に接続する。これによって、ブリッジサーバ500を介した、両者10,20の接続が確立する。
【0059】
両者10,20の接続の確立は、ウォレットアプリケーション20によって二次元コード331Fをスキャンした後に、ユーザが、ウォレットアプリケーション20上で、分散型アプリケーション10への接続の承認操作をすることで行われる。
【0060】
接続の承認操作は、次のように行われる。まず、二次元コード331Fをスキャンしたウォレットアプリケーション20は、ブリッジサーバ500から、分散型アプリケーション10へ接続リクエストを受信する。接続リクエストを受信したウォレットアプリケーション20は、図5に示す表示画面231を表示する。表示画面231は、端末200のタッチパネル230(ディスプレイ230)に表示される。表示画面231は、受信した接続リクエストを承認するためのグラフィカルユーザインターフェースとしての承認ボタン231Aを備える。また、表示画面231は、分散型アプリケーション10への接続に用いられるブロックチェーンアカウント(ブロックチェーンアドレス)を選択するためのグラフィカルユーザインターフェース231Bも備える。
【0061】
ユーザは、ユーザが有する1又は複数のアカウントの中から、接続に用いられるアカウントを選択した上で、承認ボタン231Aを選択する操作を行う。ここでは、アカウントとして、ブロックチェーンアドレス「0xAAA..111」が選択される。この場合、分散型アプリケーション10の表示領域331は、ブロックチェーンアドレス「0xAAA..111」のアカウントによって、ユーザがログインした状態の画面になる。なお、図6の表示画面331では、ログイン状態であるため、ログイン状態からログアウトするためのログアウトボタン331Gが表示されているとともに、ログインに用いられたアカウントを示すブロックチェーンアドレス表示331Hが表示されている。また、表示画面331には、ログインに用いられたアカウントにおいて所有されている暗号資産を示す暗号資産表示331Jも表示されている。この暗号資産表示331Jは、分散型アプリケーション10が、ブロックチェーンを参照して、ログインに用いられたアカウントのブロックチェーンアドレスにおいて所有されている暗号資産を把握することによって生成される。
【0062】
ユーザは、ログインした分散型アプリケーション10において、暗号資産表示331Jに表示されている暗号資産の取引を行うことができる。例えば、暗号資産によって、何らかのデジタルアセットを購入したり、他の暗号資産と交換したりすることができる。なお、図6の表示画面331には、暗号資産を使った購入の操作ボタン331Kが設けられている。ユーザが、この購入ボタン331Kを選択操作すると、暗号資産を支払い手段として、購入を行うことができる。購入ボタン331Kが、選択操作されると、購入の対象物の価格に応じた数量の暗号資産が、支払いのため、対象物の売り手に送信される。支払のトランザクション(暗号資産の送信トランザクション)は、前述のように、ウォレットアプリケーション20において、ユーザの秘密鍵による電子署名(トランザクションの承認)がなされることが必要である。
【0063】
図7は、分散型アプリケーション10との接続が確立した後のウォレットアプリケーション20の表示画面231-1,231-1を示している。図7の表示画面231-1,231-2には、ウォレットアプリケーション20が接続している分散型アプリケーション10のドメイン名(URL)を示す「example.com」が表示されている。また、図7の表示画面231-1,231-1には、分散型アプリケーション10への接続に用いられたブロックチェーンアドレス「0xAAA..111」が表示されている。
【0064】
また、ウォレットアプリケーション20の表示画面231-1,231-2は、ウォレットアプリケーションと接続された分散型アプリケーション10の安全性を判定した処理40(図1参照)の結果を表示するよう構成されている。図7において、表示画面231-1(第1表示画面231-1)は、安全であると判定された場合の画面であり、表示画面231-2(第2表示画面231-2)は、安全ではないと判定された場合の画面である。ここでは、一例として、「安全である」とは、オフィシャルサイト(本物のサイト)であると判定されたことであり、「安全ではない」とは、フィッシングサイトであると判定されたことである。
【0065】
安全であると判定された第1表示画面231-1には、一例として、分散型アプリケーション10のドメイン(URL)が安全であると判定されたことを示すマーク231Cが表示される。すなわち、マーク231Cは、安全性を判定した結果(安全であるとの判定結果)を示す。
【0066】
安全ではないと判定された第2表示画面231-2には、一例として、分散型アプリケーション10のドメイン(URL)が安全ではないと判定されたことを示すマーク231Dが表示される。すなわち、マーク231Dは、安全性を判定した結果(安全ではないとの判定結果)を示す。
【0067】
安全ではないと判定された第2表示画面231-2には、安全ではない(フィッシングサイトである)ことを示す警告文表示231Eが表示され得る。この警告文表示231Eも、安全性を判定した結果を示す。図7の警告文表示では、第2表示画面231-2に表示された分散型アプリケーション10のドメイン「example.com」が、フィッシングであると判定された旨が表示される(This site has been identified as a phishing site by users.)。また、ここでの警告文表示231Eは、安全性判定が、一例として、複数のユーザによる安全性の投票結果に基づいて行われたことを示している。ユーザによる安全性の投票については後述される。
【0068】
ユーザは、接続後のウォレットアプリケーション20の表示画面が、第1表示画面231-1であれば、接続した分散型アプリケーション10が安全であることを理解でき、第2表示画面231-2であれば、接続した分散型アプリケーション10が安全ではない可能性があることを理解することができる。
【0069】
また、図7は、ウォレットアプリケーション20のバックエンドであるサーバ400(サーバコンピュータ)によって実行される安全性判定処理40を示している。サーバ400は、安全性判定処理40を実行し、安全性の判定結果を送信する。ウォレットアプリケーション20は、サーバ400から、その判定結果を受信し、その判定結果に応じた表示画面231-1,231-2を、端末200のディスプレイ230に表示させる。なお、安全性判定処理40は、ウォレットアプリケーション20によって、端末200において実行されてもよい。
【0070】
サーバ400は、分散型アプリケーション10の安全性の判定のため、ウォレットアプリケーション20が接続した分散型アプリケーション10のドメイン名(URL)を取得する(ステップS71)。ウォレットアプリケーション20は、分散型アプリケーション10と接続しているため、サーバ400は、ウォレットアプリケーション20を介して、分散型アプリケーション10のドメイン名(URL)を取得できる。
【0071】
サーバ400は、取得したドメイン名(URL)が安全であるかどうかを判定する(ステップS72)。この判定では、一例として、判定テーブル45(判定データ45)を参照することによって、ステップS71で取得したドメイン名が、安全かどうかが識別される(ステップS72)。判定テーブル45は、一例として、サーバ400が備える。
【0072】
図8は、分散型アプリケーションが安全であるかどうかを示す判定テーブル45の一例を示している。図8に示す判定テーブル45は、第1判定データ45Aと、第2判定データ45Bと、を備える。第1判定データ45Aは、分散型アプリケーション(のドメイン名)が安全であるかどうかが複数のユーザの操作に基づいて設定されている。第2判定データ45Bは、分散型アプリケーション(のドメイン名)が安全であるかどうかが管理者によって設定されている。管理者は、例えば、サーバ400の管理者である。
【0073】
第1判定データ45Aは、ウォレットアプリケーション20のユーザの投票に基づいて表示される。投票は、例えば、分散型アプリケーション10がオフィシャルサイト(本物のサイト)であるか、フィッシングサイトであるかの投票である。図8に示す第1判定データ45Aは、その投票の結果を示している。すなわち、図8の第1判定データ45Aは、所定のドメイン名で示されるサイトAについて、オフィシャルサイトであると投票したユーザ数(投票数)が「35」であり、フィッシングサイトであると投票したユーザ数(投票数)が「0」であることを示している。また、図8の第1判定データ45Aは、所定の他のドメイン名で示されるサイトBについて、オフィシャルサイトであると投票したユーザ数(投票数)が「120」であり、フィッシングサイトであると投票したユーザ数(投票数)が「5」であることを示している。
【0074】
サーバ400は、この投票結果を示す第1判定データ45Aに基づいて、分散型アプリケーション10であるサイトの安全性を判定することができる(ステップS73)。例えば、あるサイトについて、オフィシャルサイトであるとの投票数が所定数以上(例えば、100票以上)であり、かつ、(オフィシャルサイト投票数/(オフィシャルサイト投票数+フィッシングサイト投票数)×100)が、所定割合以上(例えば、90%以上)である場合、サーバ400は、そのサイトがオフィシャルサイトであると判定することができる。また、あるサイトについて、フィッシングサイトであるとの投票数が所定数以上(例えば、100票以上)であり、かつ、(フィッシングサイト投票数/(オフィシャルサイト投票数+フィッシングサイト投票数)×100)が、所定割合以上(例えば、90%以上)である場合、サーバ400は、そのサイトがフィッシングであると判定することができる。サーバ400は、あるサイトが、オフィシャルサイトであるともフィッシングサイトであるとも判定できない場合、「不明」であると判定することができる(ステップS74)。不明である場合、判定結果として、不明である旨を表示することができる(図示省略)。
【0075】
第2判定データ45Bは、複数のサイトC,Dそれぞれについて、そのサイトがオフィシャルサイトであるかフィッシングサイトであるかが、管理者によって設定されている。例えば、図8では、所定のドメインを有するサイトCは、オフィシャルサイトとして登録され、所定の他のドメインを有するサイトDは、フィッシングサイトとして登録されている。サーバ400は、この第2判定データ45Bに基づいて、分散型アプリケーション10であるサイトの安全性を判定することができる(ステップS73)。
【0076】
管理者によって設定された第2判定データ45Bによって、安全性を判定すると、安全性が判明している主なサイトについて、確実な判定が行える。一方で、第2判定データ45Bが必要であると、次々に発生するフィッシングサイト及び新しく登場するオフィシャルサイトに対応する必要が生じ、管理者の負担が大きくなる。これに対して、第1判定データ45Aは、ユーザ投票によって設定されるため、次々に発生するフィッシングサイト等へ対応することができる。したがって、管理者の負担を軽減できる。なお、判定テーブル45は、第1判定データ45Aを備えるが、第2判定データ45Bを備えなくてもよい。逆に、判定テーブル45は、第2判定データ45Bを備えるが、第1判定データ45Aを備えてもよい。また、判定テーブル45が、両方のデータ45A,45Bを備えることで、主なサイトの判定を確実に行いつつ、次々に発生するフィッシングサイト及び新しく登場するオフィシャルサイトへの対応を容易に行うことができる。
【0077】
なお、あるサイトが、第1判定データ45A及び第2判定データ45Bの両方に登録されている場合、サーバ400は、いずれかのデータ45A,45Bを優先して判定すればよい。例えば、第1判定データ45Aを優先する場合、第2判定データ45Bを用いた判定結果にかかわらず、第1判定データ45Aを用いた判定結果が、最終的な判定結果として採用される。逆に、第2判定データ45Bを優先する場合、第1判定データ45Aを用いた判定結果にかかわらず、第2判定データ45Bを用いた判定結果が、最終的な判定結果として採用される。
【0078】
以上の判定の結果は、サーバ400から、端末200のウォレットアプリケーション20へ送信される。ウォレットアプリケーション20は、判定結果を、表示画面231-1,231-2に表示させる。この判定結果は、分散型アプリケーション10のドメイン名に基づいて、分散型アプリケーション10が安全かどうかを判定した結果を含む。
【0079】
なお、前述の説明では、安全性判定は、ウォレットアプリケーション20と分散型アプリケーション10との接続が確立した後に行われるが、接続が確立する前に行われてもよい。すなわち、安全性の判定は、ウォレットアプリケーションと接続される分散型アプリケーションの安全性の判定であってもよい。例えば、図5の表示画面231が表示される際に、判定結果が表示されるように、ウォレットアプリケーション20が接続リクエストを受信した後、かつ、接続が確立する前に安全性判定が行われてもよい。接続確立であっても、ウォレットアプリケーション20は、分散型アプリケーション10のドメイン(URL)は、接続リクエストを送信したブリッジサーバ500を介して、取得可能であるため、サーバ400は、分散型アプリケーション10のドメインを取得可能である。
【0080】
例えば、安全性の判定の結果は、図5に示す表示画面231に表示されてもよい。図5の表示画面231に安全性判定結果が表示されると、ユーザは、接続を確立する前に、接続しようとする分散型アプリケーション10の安全性を把握できる。したがって、ユーザは、安全性判定結果を考慮して、接続の承認操作をするかどうかを決めることができる。例えば、分散型アプリケーション10が安全でなければ、ユーザは、接続リクエストを拒否する操作(図5の「Reject」ボタンの操作)をして、接続の確立を回避できる。
【0081】
さて、ウォレットアプリケーション20と分散型アプリケーション10との接続が確立して、ユーザが分散型アプリケーション10にログインした状態になると、ユーザは、分散型アプリケーション10上で、ブロックチェーンに記録されるトランザクションが発生する操作(例えば、図6の購入ボタン331Kの選択操作)をすることができる。
【0082】
分散型アプリケーション10において、トランザクションが発生する操作がなされると、ユーザの秘密鍵による電子署名(トランザクションの承認)のため、分散型アプリケーション10から、ウォレットアプリケーション20へ、電子署名リクエストが送信される。図9に示すように、ウォレットアプリケーション20が電子署名リクエストを受信すると(ステップS91)、ウォレットアプリケーションの表示画面231-1,231-2において、トランザクションを承認するかどうかの操作をするためのグラフィカルユーザインターフェース231Fが表示される。このグラフィカルユーザインターフェース231Fは、承認ボタン231G(「Approve」)と、拒否ボタン231H(「Reject」)と、を含み得る。図9のユーザインターフェース231Fは、電子署名リクエストが受信されると、図7の表示画面231-1,231-2に追加的に表示される。
【0083】
図9の表示画面231-1,231-2では、分散型アプリケーション10のトランザクションを承認するためのユーザインターフェース231Fが、分散型アプリケーション10の安全性判定結果231C,231D,231Eとともに表示されるため、ユーザは、トランザクションの承認操作をする際に、分散型アプリケーション10が安全かどうかを容易に認識することができる。したがって、安全な分散型アプリケーション10のトランザクション(正常なトランザクション)を承認し、安全でない分散型アプリケーション10のトランザクション(不正なトランザクション)は承認しないことができる。不正なトランザクションを承認(電子署名)しないことで、暗号資産の意図しない流出又は盗難を防止できる。
【0084】
本実施形態のように、ブラウザ30とは別のアプリケーションであるウォレットアプリケーション20によって、安全性判定結果を表示することは、安全性判定結果をブラウザに表示する場合に比べて、有利である。
【0085】
例えば、安全性判定結果を、Webサイトを表示するためのブラウザにおいて表示するには、ブラウザの拡張機能として、Webサイトの安全性表示機能を、ブラウザにアドインすることが考えられる。しかし、分散型アプリケーションの安全性表示の機能をブラウザが備えるだけでは、以下の問題が生じる。
【0086】
すなわち、ブラウザには、様々な種類があるが、分散型アプリケーションの表示のためユーザが使用したいブラウザ用の適切なプラグインプログラムが存在するとは限らない。ユーザが使用したいブラウザに安全性表示機能を追加するためのアドインプログラムが存在しない場合、分散型アプリケーションの安全性表示機能を利用することができない。
【0087】
また、同一のユーザが、複数のブラウザを利用することがある。この場合、ユーザが利用し得る複数のブラウザ全てに安全性表示機能を追加されていないと、ユーザは、利用するブラウザによっては、安全に、分散型アプリケーションに接続できないことがある。
【0088】
さらに、ユーザは、複数人で共用されるコンピュータにインストールされたブラウザで、分散型アプリケーションに接続したいことがある。しかし、複数人で共用されるコンピュータの場合、個々のユーザは、自由に、ブラウザの拡張機能をアドインできないことがあるため、したがって、ユーザは、分散型アプリケーションの安全性表示機能を利用することができない。
【0089】
このように、ブラウザが分散型アプリケーションの安全性表示機能を備え得るとしても、ユーザが、その機能を利用できないケースが多く想定されるため、問題がある。
【0090】
かかる問題は、安全性判定結果をブラウザにおいて表示するのではなく、本実施形態のようにブラウザとは別のウォレットアプリケーションにおいて、分散型アプリケーションの安全性を判定した結果を表示することで解決される。一般に、ユーザが、分散型アプリケーションに接続するためには、ウォレットアプリケーションが必要とされる。したがって、ウォレットアプリケーションが分散型アプリケーションの安全性表示機能を備えることで、ユーザが、そのウォレットアプリケーションを用いる限りは、必ず、安全性表示機能を利用することができる。したがって、ユーザが、分散型アプリケーションの安全性表示機能を利用できないという、前述の問題が解消され得る。
【0091】
さて、図10は、ウォレットアプリケーション20のユーザが、分散型アプリケーション10のサイトの安全性を投票するための表示画面231-3の一例を示している。この表示画面231-3は、ウォレットアプリケーション20と分散型アプリケーション10との接続が確立した後に、端末200のディスプレイ230に、図7の表示画面231-、231-2が表示される前に表示され得る。
【0092】
表示画面231-3は、投票のためのグラフィカルユーザインターフェース231Jを備える。ユーザインターフェース231Jが表示される表示画面231-3は、図7の表示画面231-、231-2と同様に、接続した分散型アプリケーション10のドメイン(URL)と接続に用いられたブロックチェーンアドレスとを含む。
【0093】
ユーザインターフェース231Jは、接続した分散型アプリケーション10が安全であるかどかを投票する操作を行えるよう構成されている。ユーザインターフェース231Jは、一例として、非オフィシャルサイトボタン231Kと、オフィシャルサイトボタン231Lと、を備える。
【0094】
非オフィシャルサイトボタン231Kは、ウォレットアプリケーション20が接続した分散型アプリケーション10が非オフィシャルサイト(フィッシングサイト)であるとユーザが判断している場合に操作されるユーザインターフェースである。非オフィシャルサイトボタン231Kが操作された場合、「フィッシングサイト投票」になる。ウォレットアプリケーション20は、サーバ400へ、そのサイトについてフィッシングサイト投票があったことを送信する。この場合、サーバ400は、第1判定データにおいて、そのサイトに対するフィッシングサイト投票数を+1する。
【0095】
オフィシャルサイトボタン231Lは、ウォレットアプリケーション20が接続した分散型アプリケーション10がオフィシャルサイトであるとユーザが判断している場合に操作されるユーザインターフェースである。オフィシャルサイトボタン231Lが操作された場合、「オフィシャルサイト投票」になる。ウォレットアプリケーション20は、サーバ400へ、そのサイトについてオフィシャルサイト投票があったことを送信する。この場合、サーバ400は、第1判定データにおいて、そのサイトに対するオフィシャルサイト投票数を+1する。
【0096】
ある分散型アプリケーション10のサイトに対する投票は、1ユーザについて1投票とすることができる。この場合、ユーザが、未投票のサイトにログインした場合、ユーザインターフェース231Jが表示されるが、投票済みのサイトにログインした場合、ユーザインターフェース231Jは、表示されない。
【0097】
なお、前述の説明では、分散型アプリケーション10を表示するブラウザ30と、ウォレットアプリケーション20とは、異なる端末300,200に存在していたが、図11に示すように、ブラウザ25とウォレットアプリケーション20とが同一の端末200に存在していてもよい。この場合も、WalletConnectプロトコルに従って、接続を確立することができる。
【0098】
図11に示すように、ブラウザ25とウォレットアプリケーション20とが同一の端末200に存在する場合、端末200のブラウザ25に表示された分散型アプリケーション10において、「WalletConnect」のボタン331Bが選択されると、ディープリンクによって、端末200のウォレットアプリケーション20が起動し、図5に示す表示画面231が、端末200のディスプレイ230に表示される。ディープリンクによって、例えば、WalletConnect標準URIフォーマット(EIP-1328)のURIが、分散型アプリケーション10からウォレットアプリケーション20へ送信される。図5の画面231が端末200に表示されれば、ブラウザ25に表示された分散型アプリケーション10とウォレットアプリケーション20との接続を確立することができる。
【0099】
本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
【符号の説明】
【0100】
10 :分散型アプリケーション
20 :ウォレットアプリケーション
22 :秘密鍵
25 :ブラウザ
30 :ブラウザ
40 :安全性判定処理
45 :判定データ
45A :第1判定データ
45B :第2判定データ
100 :分散ネットワーク
200 :モバイル端末
210 :プロセッサ
220 :記憶装置
230 :タッチパネル
231 :表示画面
231-1 :表示画面
231-2 :表示画面
231-3 :表示画面
231A :承認ボタン
231B :グラフィカルユーザインターフェース
231C :安全性判定結果
231D :安全性判定結果
231E :安全性判定結果
231F :グラフィカルユーザインターフェース
231G :承認ボタン
231H :拒否ボタン
231J :グラフィカルユーザインターフェース
231K :オフィシャルサイトボタン
231K :非オフィシャルサイトボタン
231L :オフィシャルサイトボタン
240 :カメラ
300 :コンピュータ
310 :プロセッサ
320 :記憶装置
330 :ディスプレイ
331 :表示領域
331A :ログインボタン
331B :ウォレット選択ボタン
331C :ウォレット選択ボタン
331D :ウォレット選択ボタン
331F :二次元コード
331G :ログアウトボタン
331H :ブロックチェーンアドレス表示
331J :暗号資産表示
331K :購入ボタン
400 :サーバ
500 :ブリッジサーバ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11