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

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

▶ 富士通株式会社の特許一覧

特許7172618署名サーバ、署名方法および署名プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-08
(45)【発行日】2022-11-16
(54)【発明の名称】署名サーバ、署名方法および署名プログラム
(51)【国際特許分類】
   G06Q 20/38 20120101AFI20221109BHJP
【FI】
G06Q20/38
【請求項の数】 10
(21)【出願番号】P 2019003858
(22)【出願日】2019-01-11
(65)【公開番号】P2020113085
(43)【公開日】2020-07-27
【審査請求日】2021-10-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】竹内 琢磨
(72)【発明者】
【氏名】東角 芳樹
(72)【発明者】
【氏名】藤本 真吾
(72)【発明者】
【氏名】鎌倉 健
【審査官】岡北 有平
(56)【参考文献】
【文献】特開2018-092446(JP,A)
【文献】米国特許出願公開第2018/0375791(US,A1)
【文献】中国特許出願公開第103441857(CN,A)
【文献】米国特許出願公開第2017/0103391(US,A1)
【文献】Coinbase Connect (Oauth2),[online],2017年02月27日,1-2ページ,[検索日:2022年9月28日], <URL:https://web.archive.org/web/20170226221023/https://developers.coinbase.com/docs/wallet/coinbase-connect/>
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 ー 99/00
(57)【特許請求の範囲】
【請求項1】
利用者からの取引情報を含むトークン発行リクエストの受信に応じて、取引内容の許可範囲を定める許可ルールを前記取引情報に基づいて生成するとともに、前記利用者の代理取引の処理を行うWebアプリケーションに前記許可ルールに対応するトークンを送信し、
前記Webアプリケーションからのトークンを含む前記利用者による取引リクエストに基づく署名発行要求の受信に応じて、前記取引リクエストに含まれる取引内容が前記署名発行要求に含まれる前記トークンに対応する許可ルールで定められた前記許可範囲内か否かに基づき、前記署名発行要求に対応する電子署名の発行可否を判定する処理部、
を備えたことを特徴とする署名サーバ。
【請求項2】
前記取引が、前記利用者による通貨価値を有する金額またはポイントの送金の場合、前記処理部は、
前記利用者からの前記トークン発行リクエスト時には、前記許可ルールに送金額の許可範囲を定め、
前記利用者による送金リクエスト時には、前記送金リクエストに含まれる前記送金額が前記許可ルールで定めた許可範囲内か否かを判定する、
ことを特徴とする請求項1に記載の署名サーバ。
【請求項3】
前記処理部は、
前記送金リクエストに含まれる前記送金額が前記許可ルールで定めた許可範囲内の場合のみ、前記Webアプリケーションに前記取引情報の電子署名を発行可と判定し、前記Webアプリケーションに対して前記電子署名を発行する、
ことを特徴とする請求項2に記載の署名サーバ。
【請求項4】
前記処理部は、
前記利用者による取引処理を認証する認証情報を保持し、当該認証情報を用いて前記電子署名を作成する、
ことを特徴とする請求項3に記載の署名サーバ。
【請求項5】
前記処理部は、
前記利用者からの取引情報を含むトークン発行リクエスト毎に、前記許可ルールの情報として、前記利用者毎の送金元、送金先、前記送金額の許可範囲、前記トークンの情報、をそれぞれ関連付けた情報をテーブルに追加作成し、
前記利用者による送金リクエスト時には、前記テーブルの前記許可ルールを参照し、当該送金リクエストに対応する前記許可ルールを抽出し、抽出した前記許可ルールの前記送金額が前記送金額の許可範囲内であるか否かを判定する、
ことを特徴とする請求項2~4のいずれか一つに記載の署名サーバ。
【請求項6】
前記処理部は、
前記許可ルール作成時の前記取引情報に含まれる前記送金額に所定の係数を掛けた値を前記送金額の許可範囲を規定する最大値および最小値として算出する、
ことを特徴とする請求項2~5のいずれか一つに記載の署名サーバ。
【請求項7】
前記処理部は、
前記利用者、あるいは他の利用者の現在あるいは過去の取引情報に含まれる通貨変換レートを用いて、前記送金額の許可範囲を算出する、
ことを特徴とする請求項2~6のいずれか一つに記載の署名サーバ。
【請求項8】
前記処理部は、
算出した前記許可ルールを前記利用者に通知し、当該利用者の承認により前記許可ルールを用いた判定を行い、
前記利用者の承認拒否時には、前記利用者が作成した前記許可ルールを用いた判定を行う、
ことを特徴とする請求項2~7のいずれか一つに記載の署名サーバ。
【請求項9】
利用者からの取引情報を含むトークン発行リクエストに応じて、取引内容の許可範囲を定める許可ルールを前記取引情報に基づいて生成するとともに、前記利用者の代理取引の処理を行うWebアプリケーションに前記許可ルールに対応するトークンを渡し、
前記利用者による取引リクエストに基づく前記Webアプリケーションからのトークンを含む署名発行要求に応じて、前記取引リクエストに含まれる取引内容が前記署名発行要求に含まれる前記トークンに対応する許可ルールで定めた前記許可範囲内か否かに基づき、前記署名発行要求に対応する電子署名の発行可否を判定する、
処理をコンピュータが実行することを特徴とする署名方法。
【請求項10】
利用者からの取引情報を含むトークン発行リクエストに応じて、取引内容の許可範囲を定める許可ルールを前記取引情報に基づいて生成するとともに、前記利用者の代理取引の処理を行うWebアプリケーションに前記許可ルールに対応するトークンを渡し、
前記利用者による取引リクエストに基づく前記Webアプリケーションからの前記トークンを含む署名発行要求に応じて、前記取引リクエストに含まれる取引内容が前記署名発行要求に含まれる前記トークンに対応する許可ルールで定めた前記許可範囲内か否かに基づき、前記署名発行要求に対応する電子署名の発行可否を判定する、
処理をコンピュータに実行させることを特徴とする署名プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子署名発行にかかる処理を行う署名サーバ、署名方法および署名プログラムに関する。
【背景技術】
【0002】
ブロックチェーンは、仮想通貨の管理システムとして使われており、安全な運用が求められる。仮想通貨やブロックチェーンの種類は爆発的に増加しており、異なる仮想通貨やブロックチェーン間の連携のニーズが高まっている。異なる仮想通貨やブロックチェーンを連携させる際、取引実行には異なる認証情報が必要になる。こうした認証情報をサービス利用者自身が保有して自ら電子署名発行および取引実行するのは、一般の利用者にとって煩雑である。そのため、認証情報の管理、電子署名の発行、および取引の実行を、利用者の許可を得て代理で実行するWebアプリケーションのニーズがある。
【0003】
ブロックチェーンや仮想通貨の管理に関連する従来技術としては、ブロックチェーンを利用した取引に連動して勘定系操作を実行し、実行結果を突き合せて取引の成否を判定する技術がある(例えば、下記特許文献1参照。)。また、利用者に仮想化データトークンにより分散型ブロックチェーン台帳が管理されるノードにアクセス可能な暗号ウォレットが提供され、利用者間で証券を譲渡する技術がある(例えば、下記特許文献2参照。)。また、仮想通貨管理装置が、仮想通貨と法定通貨間の変換率を含む変換依頼をブロックチェーンが格納されたサーバへ送信してブロックをブロックチェーンへ追加させ、仮想通貨と法定通貨の変換後の変換率を受信する技術がある(例えば、下記特許文献3参照。)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-139067号公報
【文献】特表2018-521437号公報
【文献】特開2018-136657号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記のWebアプリケーションのニーズに関して、多くの利用者がアクセスするWebアプリケーションのサーバ上で認証情報を管理すると、認証情報が外部漏洩してしまうリスクがある。そのため、電子署名発行にかかる処理を行う署名サーバを別途用意し、署名サーバはWebアプリケーションのアクセスのみを許可する運用形態が考えられる。その際、署名サーバは、Webアプリケーションを介した利用者からのリクエストによって特定の取引内容に関してのみ署名発行を許可され、Webアプリケーションから事前に許可された取引のリクエストを受け取ったときに電子署名を発行する。また、Webアプリケーションは、署名サーバから受け取った電子署名を用いて、ブロックチェーン上の取引が発行する。
【0006】
上記の運用を行う際に、例えば、仮想通貨の変換では、短時間で通貨変換レートが変動するため、利用者が取引署名を許可した時点と、利用者が実際に送金を行う時点で取引金額が異なる状況が発生することがある。この場合、従来技術では、利用者が意図した許可内容と実際の取引内容との照合ができなかった。
【0007】
一つの側面では、本発明は、利用者の許可内容と取引内容の照合が行えることを目的とする。
【課題を解決するための手段】
【0008】
本発明の一側面によれば、電子署名発行にかかる処理を行う署名サーバは、利用者からの取引情報を含むトークン発行リクエストの受信に応じて、取引内容の許可範囲を定める許可ルールを前記取引情報に基づいて生成するとともに、前記利用者の代理取引の処理を行うWebアプリケーションに前記許可ルールに対応するトークンを送信し、前記Webアプリケーションからのトークンを含む前記利用者による取引リクエストに基づく署名発行要求の受信に応じて、前記取引リクエストに含まれる取引内容が前記署名発行要求に含まれる前記トークンに対応する許可ルールで定められた許可範囲内か否かに基づき、前記署名発行要求に対応する電子署名の発行可否を判定する処理部、を備えたことを要件とする。
【発明の効果】
【0009】
本発明の一態様によれば、利用者の許可内容と取引内容の照合が行えるという効果を奏する。
【図面の簡単な説明】
【0010】
図1図1は、実施の形態1にかかる取引処理にかかる署名サーバの機能を示すブロック図である。
図2図2は、実施の形態1にかかる取引処理の例を説明する図である。
図3図3は、実施の形態1にかかる署名サーバのハードウェア構成例を示す図である。
図4A図4Aは、実施の形態1にかかる取引処理の例を示すフローチャートである。(その1)
図4B図4Bは、実施の形態1にかかる取引処理の例を示すフローチャートである。(その2)
図5図5は、実施の形態1にかかる署名許可時の取引情報の例を示す図表である。
図6図6は、実施の形態1にかかる署名サーバが生成する許可ルールの例を示す図表である。
図7図7は、実施の形態1にかかる署名サーバが保持する許可ルールのテーブルの例を示す図表である。
図8図8は、実施の形態1にかかる送金リクエストの例を示す図表である。
図9図9は、実施の形態1にかかるWebアプリから署名サーバに送付される送金リクエストの例を示す図表である。
図10図10は、実施の形態1にかかる署名サーバで抽出された許可ルールの例を示す図表である。
図11図11は、実施の形態2にかかる取引処理の例を説明する図である。
図12A図12Aは、実施の形態2にかかる取引処理の例を示すフローチャートである。(その1)
図12B図12Bは、実施の形態2にかかる取引処理の例を示すフローチャートである。(その2)
図13図13は、実施の形態2にかかる署名許可時の取引情報の例を示す図表である。
図14図14は、実施の形態2にかかる署名サーバが生成する許可ルールの例を示す図表である。
図15図15は、実施の形態2にかかる署名サーバが保持する許可ルールのテーブルの例を示す図表である。
図16図16は、実施の形態2にかかる送金リクエストの例を示す図表である。
図17図17は、実施の形態2にかかるWebアプリから署名サーバに送付される送金リクエストの例を示す図表である。
図18図18は、実施の形態2にかかる署名サーバで抽出された許可ルールの例を示す図表である。
図19図19は、実施の形態3にかかる許可ルールの決定の他の例を説明する図表である。
図20図20は、従来技術による利用者の権限の代理認証の例を説明する図である。
図21図21は、従来技術によるブロックチェーンの代理取引システムの構成例を説明する図である。
【発明を実施するための形態】
【0011】
以下に図面を参照して、開示の署名サーバ、署名方法および署名プログラムの実施の形態を詳細に説明する。
【0012】
開示の技術は、例えば、ブロックチェーンと、電子署名発行にかかる処理を行う署名サーバによる、代理取引に適用できる。この場合、予め、署名サーバは、利用者の取引情報をもとに取引処理でのパラメータの許可範囲(例えば、送金額の許可範囲)を算出し、この許可範囲の情報を付与した許可ルールを設定する。また、開示の技術では、利用者の認証情報(秘密鍵)を署名サーバが預かり保持する。
【0013】
例えば、利用者のアクセストークンの発行要求時に署名サーバは、取引処理でのパラメータの許可範囲として送金額の許可範囲を含む許可ルールを設定する。この後、時間が経過して利用者が実際に送金リクエストを行う際、署名サーバは、送金リクエストの送金額が、設定済みの送金額の許可範囲内であるか否かを判定する。これにより、署名サーバは、送金リクエストの送金額が、設定してある送金額の許可範囲内であれば電子署名を発行し、Webアプリケーション(Webアプリ)での送金取引を実行させる。Webアプリケーションは、例えば、サーバ・クライアント型のWebアプリケーション、ブロックチェーン上のスマートコントラクト、ブロックチェーン上のプログラムなどを含む。代理取引では、例えば、利用者の権限をWebアプリに委譲して、利用者本人の代わりにWebアプリが取引を実行する。
【0014】
仮想通貨等では、短時間で通貨変換レートが変動するため、利用者が取引を許可した時点(例えば、アクセストークンの発行時点)と、利用者が実際にWebアプリを介して送金リクエストを発行する時点と、で取引金額が異なる状況が発生する。この点、実施の形態では、署名サーバは、代理取引時の利用者の許可内容と取引内容の照合を行うことができる。利用者が実際に送金を行う送金リクエスト時に、もし通貨変換レートが変動しても送金額が許可範囲内であれば、署名サーバが電子署名を発行し、利用者は送金取引を行うことができる。もし送金額が許可範囲外であれば、署名サーバは送金取引を許可せず、利用者は送金取引を行うことができない。これにより、利用者は、署名サーバに設定された送金額の許可範囲内で送金を行うことができる。
【0015】
(実施の形態1)
図1は、実施の形態1にかかる取引処理にかかる署名サーバの機能を示すブロック図である。取引処理にかかる署名サーバA(100)の他に、利用者L、Webアプリ160、ブロックチェーンBCを記載してある。
【0016】
取引処理の流れに沿って説明する。はじめに、利用者Lは、署名サーバA(100)に対し、アクセストークン発行リクエストを送る(ステップS1)。これにより、署名サーバA(100)に取引情報を登録する。
【0017】
署名サーバA(100)は、リクエスト受付/回答部101、許可範囲算出部102、許可ルール登録部103、アクセストークン作成部104、許可ルール判定部105、電子署名作成部106、の各機能を含む。
【0018】
リクエスト受付/回答部101は、アクセストークンの発行リクエストと、署名発行リクエストをそれぞれ受け付ける。署名発行リクエストは、アクセストークンと取引情報を含む。
【0019】
許可範囲算出部102は、アクセストークン発行リクエストの取引情報に基づいて、許可ルールの許可範囲(送金額の許可範囲)を算出する(ステップS2)。許可ルール登録部103は、許可範囲算出部102が算出した許可ルールの許可範囲(送金額の許可範囲)を記録部に記録する(ステップS3)。
【0020】
アクセストークン作成部104は、アクセストークンを取引情報(送金額)と許可ルールに紐付けて(関連付けて)記録部に記録する(ステップS4)。この際、リクエスト受付/回答部101は、Webアプリ160に対しアクセストークンを発行する(ステップS5)。
【0021】
次に、利用者Lが実際に送金取引リクエストをWebアプリ160に送信する(ステップS6)。これにより、Webアプリ160は、署名サーバA(100)に対し、署名発行リクエスト(アクセストークン、取引情報(送金額)を添付)を行う(ステップS7)。
【0022】
許可ルール判定部105は、Webアプリ160から送付された取引情報(送金額)が記録部に記録された許可ルールを満たすか否かを判定する(ステップS8)。後述するが、許可ルール判定部105は、取引情報(送金額)が記録部に記録された許可ルールを満たす場合のみ、電子署名を作成してWebアプリ160に送付する。
【0023】
電子署名作成部106は、署名発行リクエスト内のアクセストークンに対応する取引の電子署名を作成する(ステップS9)。この際、電子署名作成部106は、署名サーバA(100)内部に保持する秘密鍵110を用いて電子署名を作成する。秘密鍵110は、利用者Lの取引処理のアカウントを認証する認証情報に相当する。
【0024】
そして、署名サーバA(100)のリクエスト受付/回答部101は、Webアプリ160に対し、アクセストークンに対応する取引の電子署名を送付する(ステップS10)。Webアプリ160は、ブロックチェーンBCに対し、署名サーバA(100)から送付された電子署名を添付した送金取引を発行する(ステップS11)。
【0025】
図2は、実施の形態1にかかる取引処理の例を説明する図である。実施の形態1では、ブロックチェーン(BC)が一つ、署名サーバA(100)が一つであり、利用者Lから利用者Sに取引処理として送金を行う例について説明する。
【0026】
ここで、利用者Lは、ブロックチェーンBCにアカウントaを持っており、利用者SもブロックチェーンBCにアカウントbを持っているとする。そして、利用者LがブロックチェーンBCに連携するWebアプリ160を介して、アカウントaの仮想通貨を利用者Sのアカウントbに送金するとする。図2に示すWebアプリ160は、利用者Lが保持するスマートフォン等の端末上でWebアプリ160が処理を実行した際の表示画面である。符号150は、Webアプリ160の処理を実際に実行するサーバである。
【0027】
以下、図2の記載内容に基づき、主に署名サーバA(100)が行う処理内容を順次説明する。
【0028】
1.利用者Lは、特定の送金リクエストに限り、利用者Lの代わりに署名サーバA(100)が署名を発行することを許可しておく(ステップS201)。
2.署名サーバA(100)は、利用者Lの取引情報をもとに送金額の許容範囲を算出した許可ルールを作成し、アクセストークンと許可ルールを紐付けて(関連付けて)記録部に登録しておく(ステップS202)。
3.署名サーバA(100)は、Webアプリ160にアクセストークンを発行する(ステップS203)。
【0029】
4.利用者Lは、送金額の情報を含む送金リクエストをWebアプリ160に送付する(ステップS204)。
5.Webアプリ160は、送付されたアクセストークンと、送金額等の取引情報を含む署名発行リクエストを署名サーバA(100)に送付する(ステップS205)。
【0030】
6.署名サーバA(100)は、受け取った送金額を含む取引情報が、受け取ったアクセストークンに紐付く許可ルール(送金額の許可範囲)を満たすか否かを判定する。判定の結果が許可ルールを満たす場合、署名サーバA(100)は、受け取ったアクセストークンに対応する取引情報の電子署名を作成する(ステップS206)。
7.署名サーバA(100)は、作成した電子署名をWebアプリ160に送付する(ステップS207)。
8.Webアプリ160は、受け取った電子署名を添付し、送金取引をブロックチェーンBC上で発行する。
【0031】
図3は、実施の形態1にかかる署名サーバのハードウェア構成例を示す図である。図1に示した署名サーバA(100)は、例えば、図3に示すハードウェアで構成することができる。
【0032】
例えば、署名サーバA(100)は、CPU(Central Processing Unit)301、メモリ302、ネットワークインタフェース(IF)303、記録媒体IF304、記録媒体305、を含む。300は各部を接続するバスである。
【0033】
CPU301は、署名サーバ100の全体の処理を司る処理部として機能する演算処理装置である。メモリ302は、不揮発性メモリおよび揮発性メモリを含む。不揮発性メモリは、例えば、CPU301のプログラムを格納するROM(Read Only Memory)である。揮発性メモリは、例えば、CPU301のワークエリアとして使用されるDRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)等である。
【0034】
ネットワークIF303は、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク310を介して、外部の端末(利用者のPCやスマートフォン等)に通信接続する。
【0035】
記録媒体IF304は、CPU301が処理した情報を記録媒体305との間で読み書きするためのインタフェースである。記録媒体305は、メモリ302を補助する記録装置である。記録媒体305は、例えば、HDD(Hard Disk Drive)や、SSD(Solid State Drive)、USB(Universal Serial Bus)フラッシュドライブ等を用いることができる。
【0036】
メモリ302または記録媒体305に記録されたプログラムをCPU301が実行することにより、図1に示した署名サーバA(100)の各機能を実現する。また、メモリ302や記録媒体305により、図1に示したアクセストークン、許可ルール、電子署名等の情報を記録保持する記録部の機能を実現できる。
【0037】
図3に示したハードウェア構成は、図2に示したWebアプリ用サーバ150や、Webアプリ160を実行する利用者の端末(スマートフォン等)においても同様であり、実施の形態のシステムは、汎用のハードウェア構成を用いて実現できる。
【0038】
図4Aおよび図4Bは、実施の形態1にかかる取引処理の例を示すフローチャートである。図4Aには、主に署名サーバA(100)の処理部(CPU301)が実行する許可ルールの登録フェーズ(図2のステップS201~S203に相当)の各処理の流れを示す。図4Bには、主に署名サーバA(100)の処理部(CPU301)、およびWebアプリ160(例えば、Webアプリ用サーバ150のCPU301)が実行する送金フェーズ(図2のステップS204~S208に相当)の各処理の流れを示す。
【0039】
但し、以下のステップS405,ステップS406は、利用者Lへの許可ルールの検証のためのサブプロセスである。利用者Lの許可ルール検証が不要な場合は、署名サーバA(100)は、ステップS404の処理後、ステップS407を実行処理すればよい。
【0040】
図4Aに示す許可ルールの登録フェーズの処理では、まず、事前準備として、利用者Lの仮想通貨のアカウントの秘密鍵110を預かる署名サーバA(100)を準備する(ステップS401)。
【0041】
そして、利用者Lは、送金元(アカウントa)、送金先(アカウントb)、送金額を指定した取引情報を添付し、アクセストークン発行リクエストを、署名サーバAに送付する(ステップS402)。
【0042】
これにより、署名サーバA(100)は、発行リクエストの取引情報に基づいて許可ルールの許可範囲を算出する(ステップS403)。そして、署名サーバA(100)は、許可範囲(上記送金額の許可範囲)を付与した許可ルールを、利用者Lに送付する(S404)。
【0043】
そして、署名サーバA(100)は、利用者Lの許可ルールに対するレスポンス(許可または拒否)を判定する(ステップS405)。利用者Lのレスポンスが許可であれば(ステップS405:Yes)、署名サーバA(100)は、ステップS407の処理に移行する。一方、利用者Lのレスポンスが拒否であれば(ステップS405:No)、利用者Lによるパラメータ許可範囲(送金額の許可範囲)に基づいて、許可範囲付き許可ルールを生成し(ステップS406)、ステップS407の処理に移行する。
【0044】
次に、署名サーバA(100)は、生成したパラメータ許可範囲を付与した許可範囲付き許可ルールを署名サーバA内部で登録する(ステップS407)。そして、署名サーバA(100)は、新しいアクセストークンを作成し、ステップS402で受け取った取引情報、および登録した許可ルールに紐付けて署名サーバA内部で登録する(ステップS408)。また、署名サーバA(100)は、作成した新しいアクセストークンをWebアプリ160に発行する(ステップS409)。以上により、署名サーバA(100)は、許可ルールの登録フェーズにかかる一連の処理を終了する。
【0045】
次に、図4Bに示す送金フェーズの処理では、はじめに、利用者Lは、送金額の情報を含む送金リクエストをWebアプリ160に送付する(ステップS410)。次に、Webアプリ160は、送付されたアクセストークンを添付し、署名発行リクエストを署名サーバA(100)に送付する(ステップS411)。
【0046】
これにより、署名サーバA(100)は、送金額を含む取引情報が、アクセストークンに紐付く許可範囲付き許可ルール(送金額の許可範囲)を満たすか否かを判定する(ステップS412)。判定の結果が許可ルールを満たす(送金額が許可範囲内の)場合(ステップS413:Yes)、署名サーバA(100)は、ステップS414の処理に移行する。一方、判定の結果が許可ルールを満たさない(送金額が許可範囲外の)場合(ステップS413:No)、署名サーバA(100)は、ステップS417の処理に移行する。
【0047】
ステップS414の処理では、署名サーバA(100)は、受け取ったアクセストークンに対応する取引情報の電子署名を作成する(ステップS414)。次に、署名サーバA(100)は、作成した電子署名をWebアプリ160に送付する(ステップS415)。
【0048】
これにより、Webアプリ160は、受け取った電子署名を添付し、送金取引をブロックチェーンBC上で発行する(ステップS416)。また、ステップS417では、署名サーバA(100)は、Webアプリ160に電子署名を発行しないと回答する(ステップS417)。ステップS416、またはステップS417の処理後、署名サーバA(100)は、送金フェーズにかかる一連の処理を終了する。
【0049】
次に、上記の図4A図4Bを用いて説明した取引処理について、送金の具体例について説明する。ステップS401の事前準備では、利用者LがブロックチェーンBCにアカウントaを持っており、利用者SがブロックチェーンBCにアカウントbを持っている。そして、アカウントaの秘密鍵は、ブロックチェーン用の署名サーバA(100)で管理されている。
【0050】
そして、ステップS402では、利用者Lによるアクセストークン発行リクエストの際、利用者Lのアカウントaの仮想通貨を、利用者Sのアカウントbに送金する。ここで、仮想通貨に比べて、法定通貨(例えばドル$や円¥など)の方が一般に価値が安定しており、法定通貨での価値をもとに署名の発行ルールを構築することを考える。なお、以下の説明では、法定通貨としてドル$を扱う。
【0051】
図5は、実施の形態1にかかる署名許可時の取引情報の例を示す図表である。図5には、ステップS402における利用者Lからのアクセストークン発行リクエストの際、署名サーバA(100)に送付する取引情報500の例を示す。取引情報500は、送金元が「利用者Lのアカウントa」、送金相手が「利用者Sのアカウントb」、送金額が「仮想通貨200ポイント」であったとする。
【0052】
次に、ステップS403では、署名サーバA(100)は、許可範囲を以下の手順で作成する。許可ルール設定時の取引情報に含まれる送金額をXとしたとき、送金リクエストに含まれる送金額Yに対し、下記式(1)に示す許可範囲を算出する。
【0053】
X*(1-K)≦Y≦X*(1+K) …(1)
(但し、Kは、0<K<1を満たす定数)
【0054】
このとき、署名サーバA(100)は、例えば、予めK=0.3と設定したうえで、許可ルール作成時の取引情報に含まれる送金額が仮想通貨100ポイントであったとき、送金リクエストに含まれる送金額Yの許可範囲を、下記式(2)に示す許可ルールを作成する。
70≦Y≦130 …(2)
【0055】
例えば、K=0.3で、図5に示した取引情報500の取引を署名サーバA(100)が受け取った際、ドル/仮想通貨のレートが3.0[ドル/仮想通貨A]であったとする。このとき、上記許可ルールに基づくと、送金額の範囲は、法定通貨換算で420~780ドルの区間内となる。
【0056】
図6は、実施の形態1にかかる署名サーバが生成する許可ルールの例を示す図表である。ステップS403の処理により、署名サーバA(100)は、許可ルール(送金額の許可範囲)600として、送金元「利用者Lのアカウントa」、送金相手「利用者Sのアカウントb」、送金額の範囲「ドル換算で420~780ドル」の情報を含む。
【0057】
また、ステップS408の処理では、署名サーバA(100)は、新規のアクセストークンとして適当な文字列(例えば「P8mOcv+6SW」)を作成する。署名サーバA(100)は、ステップS404で生成した許可ルール(あるいは利用者LがステップS407で作成した許可ルール)を、アクセストークンと紐付け、署名サーバA(100)内部の記録部(テーブル)に新規の許可ルールとして追加する。
【0058】
図7は、実施の形態1にかかる署名サーバが保持する許可ルールのテーブルの例を示す図表である。ステップS408の処理により、署名サーバA(100)は、許可ルールのテーブル700に、新規の許可ルールの行701を追加する。新規の行701の許可ルールは、新規のアクセストークン「P8mOcv+6SW」、送金元「利用者Lのアカウントa」、送金相手「利用者Sのアカウントb」、送金額の範囲「ドル換算で420~780ドル」の各情報を含む。
【0059】
次に、ステップS409の処理では、署名サーバA(100)は、新規のアクセストークン「P8mOcv+6SW」を、Webアプリ160に発行する。
【0060】
図8は、実施の形態1にかかる送金リクエストの例を示す図表である。ステップS410では、利用者Lは、送金リクエスト800をWebアプリ160に送付する。送金リクエスト800は、送金元「利用者Lのアカウントa」、送金相手「利用者Sのアカウントb」、送金額「仮想通貨200ポイント」の情報を含む。
【0061】
図9は、実施の形態1にかかるWebアプリから署名サーバに送付される送金リクエストの例を示す図表である。ステップS411では、Webアプリ160は、受け取った新規のアクセストークンを付与し、送金リクエスト900を署名サーバA(100)に送付する。送金リクエスト900は、送金元「利用者Lのアカウントa」、送金相手「利用者Sのアカウントb」、送金額「仮想通貨200ポイント」、アクセストークン「P8mOcv+6SW」の情報を含む。
【0062】
図10は、実施の形態1にかかる署名サーバで抽出された許可ルールの例を示す図表である。ステップS412では、署名サーバA(100)は、送金リクエスト900に含まれるアクセストークン「P8mOcv+6SW」を基に、署名サーバA(100)が保有する許可ルールのテーブル700から、アクセストークンが一致する行701を抜き出す。そして、抜き出した行701に含まれる許可ルール1000を抽出する。図10に示す許可ルール1000は、図6と同様の情報からなり、送金元「利用者Lのアカウントa」、送金相手「利用者Sのアカウントb」、送金額の範囲「420~780ドル」の情報を含む。
【0063】
そして、ステップS413では、署名サーバA(100)は、受け取った送金リクエスト900の送金額が、抽出した許可ルール1000を満たすか判定する。例えば、送金リクエスト900の際、仮想通貨のレートが署名許可時の3.0から変動して3.2[ドル/仮想通貨]になったとする。このとき、送金額はドル換算で640ドル(レートが3.2[ドル/仮想通貨]であるため)となるが、許可ルール1000(図10)の送金額の範囲内であるため、署名サーバA(100)は、「許可ルールを満たす」と判定する(ステップS413:Yes)。
【0064】
一方、例えば、送金リクエスト900の際の仮想通貨のレートが、署名許可時の3.0から大きく変動して2.0[ドル/仮想通貨]となったとする。この場合、送金額のドルでの価値は400ドルになるため、許可ルール1000の送金額の範囲外となるため、署名サーバA(100)は、「許可ルールを満たさない」と判定する(ステップS413:No)。この場合、ステップS417の処理により、署名サーバA(100)は、Webアプリ160に署名を発行しないと回答する。
【0065】
次に、ステップS414では、署名サーバA(100)は、ステップS413にて「許可ルールを満たす(ステップS413:Yes)」と判定されたときのみ、取引情報に相当する電子署名を作成する。次に、ステップS415では、署名サーバA(100)は、作成した電子署名をWebアプリ160に送付する。
【0066】
そして、ステップS416では、Webアプリ160は、受け取った電子署名を添付し、送金取引をブロックチェーンBC上で発行する。
【0067】
実施の形態1によれば、ブロックチェーンBCが一つ、署名サーバA(100)が一つであり、利用者Lから利用者Sに取引処理として送金を行う場合の通貨レートの変動に対応し、利用者Lの取引の許可内容と、実際の送金時の取引内容を照合できるようになる。署名サーバA(100)は、取引の許可時にアクセストークンを発行する際、送金額の許可範囲を算出しておき、実際の送金時に送金額が許可範囲内の場合のみ電子署名を発行する。送金の取引処理を許可する。
【0068】
これにより、ブロックチェーンBC上で仮想通貨の送金操作を行う利用者Lは、取引を許可したときと、実際に取引リクエストを出すときとの間の時間差や、状況の違いがあった場合でも、送金額が意図した許可内容に沿うか否かを照合できる。また、利用者Lの秘密鍵110は、Webアプリ160に預けることなく署名サーバA(100)上で保持するため、代理取引を安全に実行できるようになる。
【0069】
(実施の形態2)
図11は、実施の形態2にかかる取引処理の例を説明する図である。実施の形態2では、現在の送金額をベースに取引の許可ルールを決定する例について説明する。実施の形態2において、実施の形態1と同様の構成部には同様の符号を付してある。
【0070】
この実施の形態2では、利用者Lが、ブロックチェーンA(仮想通貨A)とブロックチェーンB(仮想通貨B)にそれぞれアカウントa、bを持っているとする。そして、利用者Lが、ブロックチェーン連携のWebアプリ160を介して、アカウントaの仮想通貨Aをアカウントbの仮想通貨Bに変換する例について説明する。
【0071】
アカウントaの秘密鍵110は、ブロックチェーンA用の署名サーバA(100)が管理している。アカウントbの秘密鍵110は、ブロックチェーンB用の署名サーバB(100)が管理している。以下に説明する取引処理では、仮想通貨Aを仮想通貨Bに交換する場合であり、署名サーバA(100)が処理を行う。仮に、仮想通貨Bを仮想通貨Aに変換する場合は、支払い元であるブロックチェーンB用の署名サーバBが必要となる。
【0072】
以下、図11の記載内容に基づき、主に署名サーバA(100)が行う処理内容を順次説明する。
【0073】
1.利用者Lは、特定の送金リクエストに限り、利用者Lの代わりに署名サーバA(100)が署名を発行することを許可しておく(ステップS1101)。
2.署名サーバA(100)は、利用者Lの取引情報をもとに送金額の許容範囲を算出した許可ルールを作成し、アクセストークンと許可ルールを紐付けて(関連付けて)記録部に登録しておく(ステップS1102)。
3.署名サーバA(100)は、Webアプリ160にアクセストークンを発行する(ステップS1103)。
【0074】
4.利用者Lは、送金額の情報を含む送金リクエストをWebアプリ160に送付する(ステップS1104)。
5.Webアプリ160は、送付されたアクセストークンと、送金額等の取引情報を含む署名発行リクエストを署名サーバA(100)に送付する(ステップS1105)。
【0075】
6.署名サーバA(100)は、受け取った送金額を含む取引情報が、受け取ったアクセストークンに紐付く許可ルール(送金額の許可範囲)を満たすか否かを判定する。判定の結果が許可ルールを満たす場合、署名サーバA(100)は、受け取ったアクセストークンに対応する取引情報の電子署名を作成する(ステップS1106)。
7.署名サーバA(100)は、作成した電子署名をWebアプリ160に送付する(ステップS1107)。
8.Webアプリ160は、受け取った電子署名を添付し、送金取引をブロックチェーンA,B上で発行する(ステップS1108)。
【0076】
図12Aおよび図12Bは、実施の形態2にかかる取引処理の例を示すフローチャートである。図12Aには、主に署名サーバA(100)の処理部(CPU301)が実行する許可ルールの登録フェーズ(図11のステップS1101~S1103に相当)の各処理の流れを示す。図12Bには、主に署名サーバA(100)の処理部(CPU301)、およびWebアプリ160(例えば、Webアプリ用サーバ150のCPU301)が実行する送金フェーズ(図11のステップS1104~S1108に相当)の各処理の流れを示す。
【0077】
但し、以下のステップS1205,ステップS1206は、利用者Lへの許可ルールの検証のためのサブプロセスである。利用者Lの許可ルール検証が不要な場合は、署名サーバA(100)は、ステップS1204の処理後、ステップS1207を実行処理すればよい。
【0078】
図12Aに示す許可ルールの登録フェーズの処理では、まず、事前準備として、利用者Lの仮想通貨のアカウントの秘密鍵110を預かる署名サーバA(100)を準備する(ステップS1201)。
【0079】
そして、利用者Lは、送金元(アカウントa)、送金先(アカウントb)、送金額を指定した取引情報を添付し、アクセストークン発行リクエストを、署名サーバAに送付する(ステップS1202)。
【0080】
これにより、署名サーバA(100)は、発行リクエストの取引情報に基づいて許可ルールの許可範囲を算出する(ステップS1203)。そして、署名サーバA(100)は、許可範囲(上記送金額の許可範囲)を付与した許可ルールを、利用者Lに送付する(S1204)。
【0081】
そして、署名サーバA(100)は、利用者Lの許可ルールに対するレスポンス(許可または拒否)を判定する(ステップS1205)。利用者Lのレスポンスが許可であれば(ステップS1205:Yes)、署名サーバA(100)は、ステップS1207の処理に移行する。一方、利用者Lのレスポンスが拒否であれば(ステップS1205:No)、利用者Lによるパラメータ許可範囲(送金額の許可範囲)に基づいて、許可範囲付き許可ルールを生成し(ステップS1206)、ステップS1207の処理に移行する。
【0082】
次に、署名サーバA(100)は、生成したパラメータ許可範囲を付与した許可範囲付き許可ルールを署名サーバA内部で登録する(ステップS1207)。そして、署名サーバA(100)は、新しいアクセストークンを作成し、ステップS1202で受け取った取引情報、および登録した許可ルールに紐付けて署名サーバA内部で登録する(ステップS1208)。また、署名サーバA(100)は、作成した新しいアクセストークンをWebアプリ160に発行する(ステップS1209)。以上により、署名サーバA(100)は、許可ルールの登録フェーズにかかる一連の処理を終了する。
【0083】
次に、図12Bに示す送金フェーズの処理では、はじめに、利用者Lは、送金額の情報を含む送金リクエストをWebアプリ160に送付する(ステップS1210)。次に、Webアプリ160は、送付されたアクセストークンを添付し、署名発行リクエストを署名サーバA(100)に送付する(ステップS1211)。
【0084】
これにより、署名サーバA(100)は、送金額を含む取引情報が、アクセストークンに紐付く許可範囲付き許可ルール(送金額の許可範囲)を満たすか否かを判定する(ステップS1212)。判定の結果が許可ルールを満たす(送金額が許可範囲内の)場合(ステップS1213:Yes)、署名サーバA(100)は、ステップS1214の処理に移行する。一方、判定の結果が許可ルールを満たさない(送金額が許可範囲外の)場合(ステップS1213:No)、署名サーバA(100)は、ステップS1217の処理に移行する。
【0085】
ステップS1214の処理では、署名サーバA(100)は、受け取ったアクセストークンに対応する取引情報の電子署名を作成する(ステップS1214)。次に、署名サーバA(100)は、作成した電子署名をWebアプリ160に送付する(ステップS1215)。
【0086】
これにより、Webアプリ160は、受け取った電子署名を添付し、送金取引をブロックチェーンA,B上で発行する(ステップS1216)。また、ステップS1217では、署名サーバA(100)は、Webアプリ160に電子署名を発行しないと回答する(ステップS1217)。ステップS1216、またはステップS1217の処理後、署名サーバA(100)は、送金フェーズにかかる一連の処理を終了する。
【0087】
次に、上記の図12A図12Bを用いて説明した取引処理について、送金の具体例について説明する。ステップS1201の事前準備では、利用者Lが、ブロックチェーンA(仮想通貨A)と、ブロックチェーンB(仮想通貨B)にそれぞれアカウントa、bを持っている。ここで、アカウントaの秘密鍵は、ブロックチェーンA用の署名サーバAで管理されている。ここで、仮想通貨Aを仮想通貨Bに交換する例を説明するが、仮に、仮想通貨Bを仮想通貨Aに変換する場合は、支払い元であるブロックチェーンB用の署名サーバB(100)が必要となる。
【0088】
そして、ステップS1202では、利用者Lがアカウントaの仮想通貨Aをアカウントbの仮想通貨Bに変換する。ここで、仮想通貨Aに比べて仮想通貨Bの方が価値が安定しており、仮想通貨Bでの価値をもとに署名の発行ルールを構築することとする。但し、この例では、送金元が仮想通貨Aであるため、秘密鍵は署名サーバA(100)で管理されているため、署名サーバA(100)が取引の許可ルールを設定することとする。
【0089】
図13は、実施の形態2にかかる署名許可時の取引情報の例を示す図表である。図13には、ステップS1202における利用者Lからのアクセストークン発行リクエストの際、署名サーバA(100)に送付する取引情報1300の例を示す。取引情報1300は、送金元が「利用者Lのアカウントa(仮想通貨A)」、送金相手が「利用者Lのアカウントb(仮想通貨B)」、送金額が「仮想通貨A200ポイント」であったとする。
【0090】
次に、ステップS1203では、署名サーバA(100)は、許可範囲を以下の手順で作成する。許可ルール設定時の取引情報に含まれる送金額をXとしたとき、送金リクエストに含まれる送金額Yに対し、下記式(3)に示す許可範囲を算出する。
【0091】
X*(1-K)≦Y≦X*(1+K) …(3)
(但し、Kは、0<K<1を満たす定数)
【0092】
このとき、署名サーバA(100)は、予めK=0.3と設定したうえで、許可ルール作成時の取引情報に含まれる送金額が仮想通貨100ポイントであったとき、送金リクエストに含まれる送金額Yの許可範囲を、下記式(4)に示す許可ルールを作成する。
【0093】
70≦Y≦130 …(4)
【0094】
例えば、K=0.3で、図13に示した取引情報1300の取引を署名サーバA(100)が受け取った際、仮想通貨B/仮想通貨Aのレートが3.0[仮想通貨B/仮想通貨A]であったとする。このとき、上記許可ルールに基づくと、送金額の範囲は、仮想通貨B換算で420~780ポイントの区間内となる。
【0095】
図14は、実施の形態2にかかる署名サーバが生成する許可ルールの例を示す図表である。ステップS1203の処理により、署名サーバA(100)は、許可ルール(送金額の許可範囲)1400を作成する。許可ルール(送金額の許可範囲)1400は、送金先「利用者Lのアカウントa(仮想通貨A)」、送金相手「利用者Lのアカウントb(仮想通貨B)」、送金額の範囲「仮想通貨B換算で420~780ポイント」の情報を含む。
【0096】
また、ステップS1208の処理では、署名サーバA(100)は、新規のアクセストークンとして適当な文字列(例えば「P8mOcv+6SW」)を作成する。署名サーバA(100)は、ステップS1204で生成した許可ルール(あるいは利用者LがステップS1207で作成した許可ルール)を、アクセストークンと紐付け、署名サーバA(100)内部の記録部(テーブル)に新規の許可ルールとして追加する。
【0097】
図15は、実施の形態2にかかる署名サーバが保持する許可ルールのテーブルの例を示す図表である。ステップS1208の処理により、署名サーバA(100)は、許可ルールのテーブル1500に、新規の許可ルールの行1501を追加する。新規の行1501は、新規のアクセストークン「P8mOcv+6SW」、送金元「利用者Lのアカウントa(仮想通貨A)」、送金先「利用者Lのアカウントb(仮想通貨B)」、送金額の範囲「仮想通貨B換算で420~780ポイント」の各情報を含む。
【0098】
次に、ステップS1209の処理では、署名サーバA(100)は、新規のアクセストークン「P8mOcv+6SW」を、Webアプリ160に発行する。
【0099】
図16は、実施の形態2にかかる送金リクエストの例を示す図表である。ステップS1210では、利用者Lは、送金リクエスト1600をWebアプリ160に送付する。送金リクエスト1600は、送金元「利用者Lのアカウントa(仮想通貨A)」、送金相手「利用者Lのアカウントb(仮想通貨B)」、送金額「仮想通貨A200ポイント」の情報を含む。
【0100】
図17は、実施の形態2にかかるWebアプリから署名サーバに送付される送金リクエストの例を示す図表である。ステップS1211では、Webアプリ160は、受け取った新規のアクセストークンを付与し、送金リクエスト1700を署名サーバA(100)に送付する。送金リクエスト1700は、送金元「利用者Lのアカウントa(仮想通貨A)」、送金相手「利用者Lのアカウントb(仮想通貨B)」、送金額「仮想通貨A200ポイント」、アクセストークン「P8mOcv+6SW」の情報を含む。
【0101】
図18は、実施の形態2にかかる署名サーバで抽出された許可ルールの例を示す図表である。ステップS1212では、署名サーバA(100)は、送金リクエスト1700のアクセストークン「P8mOcv+6SW」を基に、署名サーバA(100)が保有する許可ルールのテーブル1500から、アクセストークンが一致する行1501を抜き出す。そして、抜き出した行1501に含まれる許可ルール1800を抽出する。図18に示す許可ルール1800は、図14と同様の情報からなり、送金先「利用者Lのアカウントa(仮想通貨A)」、送金相手「利用者Lのアカウントb(仮想通貨B)」、送金額の範囲「仮想通貨B換算で420~780ポイント」の情報を含む。
【0102】
そして、ステップS1213では、署名サーバA(100)は、受け取った送金リクエスト1700の送金額が、抽出した許可ルール1800を満たすか判定する。例えば、送金リクエスト1700の際、仮想通貨のレートが署名許可時の3.0から変動して3.2[仮想通貨B/仮想通貨A]になったとする。このとき、送金額は仮想通貨B換算で640ポイント(レートが3.2[仮想通貨B/仮想通貨A]であるため)となる。この送金額640ポイントは、許可ルール1800(図18)の送金額の範囲内であるため、署名サーバA(100)は、「許可ルールを満たす」と判定する(ステップS1213:Yes)。
【0103】
一方、例えば、送金リクエスト1700の際の仮想通貨のレートが、署名許可時の3.0から大きく変動して2.0[仮想通貨B/仮想通貨A]となったとする。この場合、送金額の仮想通貨Bでの価値は400ポイントになるため、許可ルール1800の送金額の範囲外となるため、署名サーバA(100)は、「許可ルールを満たさない」と判定する(ステップS1213:No)。この場合、ステップS1217の処理により、署名サーバA(100)は、Webアプリ160に署名を発行しないと回答する。
【0104】
次に、ステップS1214では、署名サーバA(100)は、ステップS1213にて「許可ルールを満たす(ステップS1213:Yes)」と判定されたときのみ、取引情報に相当する電子署名を作成する。次に、ステップS1215では、署名サーバA(100)は、作成した電子署名をWebアプリ160に送付する。
【0105】
そして、ステップS1216では、Webアプリ160は、受け取った電子署名を添付し、送金取引をブロックチェーンA,B上で発行する。
【0106】
以上の実施の形態2によれば、利用者Lが2つのブロックチェーンA,Bの仮想通貨A,Bを変換する送金を行う場合の通貨レートの変動に対応し、利用者Lの取引の許可内容と、実際の送金時の取引内容を照合できるようになる。署名サーバA(100)は、取引の許可時にアクセストークンを発行する際、送金額の許可範囲を算出しておき、実際の送金時に送金額が許可範囲内の場合のみ電子署名を発行する。そして、送金の取引処理を許可する。
【0107】
これにより、ブロックチェーンA上で仮想通貨Aの送金操作を行う利用者Lは、取引を許可したときと、実際に取引リクエストを出すときと、の間の時間差や、状況の違いがあった場合でも、送金額が意図した許可内容に沿うか否かを照合できる。また、利用者Lの秘密鍵110は、Webアプリ160に預けることなく署名サーバA(100)上で保持するため、代理取引を安全に実行できるようになる。
【0108】
(実施の形態3)
実施の形態3では、利用者Lの過去の取引を利用して許可ルールを決定する例について説明する。上述した実施の形態1,2で説明した署名サーバA(100)による送金額の許可範囲の算出時(ステップS403,ステップS1203に相当)における他の算出例を説明する。
【0109】
署名サーバA(100)は、許可ルール設定時の取引情報(500,1300)に含まれる送金額をXとしたとき、送金リクエスト(900,1700)に含まれる送金額Yに対し、下記式(5)に示す範囲で許可範囲を算出する。
【0110】
X*(M/U)≦Y≦X*(M/L) …(5)
(但し、Mは直近一定期間の通貨変換レートの平均、Lは直近一定期間の通貨変換レートの95%信頼区間の下限、Uは直近一定期間の通貨変換レートの95%信頼区間の上限である。)
直近一定期間の通貨変換レート、および信頼区間の下限、上限の値は、それぞれ署名サーバA(100)の処理部(CPU301)が記録部(記録媒体305等)に記録しておく。
【0111】
また、通貨変換レートは、基軸通貨(通貨変換の中心となる通貨)を定めたうえで、[仮想通貨/基軸通貨]の比率のレートを用いる。但し、信頼区間の上限と下限の算出の際、通貨変換レートの値の分布は正規分布を仮定する。
【0112】
図19は、実施の形態3にかかる許可ルールの決定の他の例を説明する図表である。例えば、許可ルール作成時の取引情報(500,1300)に含まれる送金額が仮想通貨100ポイントであり、直近1週間の通貨変換レート[仮想通貨/米ドル]が図19に示す状態であるとする。この場合、署名サーバA(100)は、平均と95%信頼区間の計算により、M=15.83、L=13.20、U=18.46を算出する。このとき、X*(M/U)=85.8、X*(M/L)=119.9となり、送金リクエストに含まれる送金額Yの許可範囲として、85.8≦Y≦119.9を算出する。
【0113】
この実施の形態3によれば、過去の一定期間に行った取引の通貨変換レートに基づき送金額の許可範囲を算出することができる。これにより、利用者Lが実際に取引処理した情報に基づいて利用者Lの取引の意向に沿った許可ルールを作成できるようになる。また、上記例では、送金額の許可範囲は、利用者Lの過去の一定期間に行った取引に基づき算出したが、これに限らず、他の利用者の過去の一定期間に行った取引に基づき算出してもよい。例えば、利用者Lが過去の一定期間に取引を行っていない場合等には、他の利用者の過去の一定期間に行った取引に基づき算出した送金額の許可範囲を利用者Lが用いることもでき、取引回数が少ない利用者であっても適切な送金が行えるようになる。
【0114】
(実施の形態4)
実施の形態4では、スマートコントラクトのバリエーション(各種システムへの適用例)について説明する。上述した各実施の形態では、仮想通貨の送金についての代理認証システムへの適用例を説明した。これに限らず、ブロックチェーンにおけるスマートコントラクト発行・操作用のWebアプリ160の代理認証機能についても、同様に適用できる。
【0115】
Webアプリ160からの電子署名発行の要求を署名サーバA(100)が検証する際、スマートコントラクトの実行を行う取引の場合は、引数の値に対して許可範囲を持たせて許可ルールを設定すればよい。なお、この点について、上記各実施の形態では、送金リクエストの際、署名サーバA(100)が送金額の許可範囲を算出して許可ルールを作成している。
【0116】
各種システムへの適用例としては、例えば、スーパーマーケットの惣菜売り場のスマートコントラクトがある。利用者からは、「惣菜300グラムを仮想通貨1ポイントで支払う」権限を予め測量機器に付与する。測量機器が惣菜250~350グラムの範囲で計測したとき、測量機器と連動したスマートコントラクトが利用者の代行で仮想通貨支払いを行う構成とすることができる。
【0117】
このように、仮想通貨に限らず、ポイントカードによる取引等を含め、各種の取引処理におけるスマートコントラクトのパラメータ(許可範囲の設定値や条件)について、上記実施の形態と同様に設定することができる。これにより、利用者の取引の許可内容と、実際のシステム利用時の取引内容を照合できるようになる。また、Webアプリの利用者は、取引を許可したときと、実際に取引リクエストを出すときと、の間の時間差や、状況の違いがあった場合でも、送金額等の取引処理を意図した許可内容に沿って実行できるようになる。
【0118】
(従来技術と実施の形態との差異について)
従来の技術と実施の形態との差異について説明しておく。従来、利用者の権限を他のアプリに委譲する仕組みとして、例えば、OAuth2.0の技術が広く知られている。この技術は、利用者が持つアクセス権限をWebアプリにアクセストークンを使って一部委譲して、Webアプリが利用者の代理で処理を可能にする仕組みである。なお、アクセストークンは、上述したように、利用者の代行として特定の操作に限り許可することを示す記号(文字列)である。
【0119】
図20は、従来技術による利用者の権限の代理認証の例を説明する図である。図20の例では、利用者Lが投稿サイト2010(動画投稿サイト用サーバ2011)、およびSNSサイト2020(SNSサイト用サーバ2021)にそれぞれアクセス権限を有しているとする。そして、予め、利用者LがSNSサイト2020に対し、「動画投稿サイト2010が、利用者L本人の代わりにSNSサイト2020上で投稿を行う」ことを許可しておく(ステップS2001)。この場合、SNSサイト2020は、動画投稿サイト2010にアクセストークンを発行する(ステップS2002)。
【0120】
そして、利用者Lが動画投稿サイト2010に動画を投稿したとする(ステップS2003)。この場合、動画投稿サイト2010は、利用者Lの代行でSNSサイト2020にアクセストークンを添付し、動画を投稿する(ステップS2004)。このように、利用者Lが動画投稿サイト2010に動画を登録した場合、事前に登録したアクセストークンを使って、動画投稿サイト2010が利用者Lの権限を借りて自動でSNSサイト2020に動画等を投稿する際、代理認証することができる。
【0121】
図21は、従来技術によるブロックチェーンの代理取引システムの構成例を説明する図である。上述したOAuth2.0の技術を用いて、図21に示すような代理認証込みの仮想通貨取引システム構成の構築を行ったとする。署名サーバA,B(2101)は、利用者LのブロックチェーンA,B用の秘密鍵2110を保有する。また、図示のように、利用者Lは、Webアプリ2160(Webアプリ用サーバ2150)にアクセス可能である。
【0122】
図21に示したシステム構成における代理認証の流れを順に説明すると、はじめに、利用者Lは、特定の送金リクエスト(送金元、送金相手、送金金額)に限り、署名サーバA,B(2101)が署名を発行することを許可しておく(ステップS2101)。署名サーバA,B(2101)は、アクセストークンを取引情報に紐付けて登録しておく(ステップS2102)。そして、署名サーバA,B(2101)は、アクセストークンをWebアプリ2160に発行する(ステップS2103)。
【0123】
この後、利用者Lにより送金リクエストがあると(ステップS2104)、Webアプリ2160は、署名サーバA,B(2101)に電子署名の発行を要求する(ステップS2105)。署名サーバA,B(2101)は、アクセストークンの仕組みを用いて、取引内容が利用者Lの許可内容と合致しているか検証し(ステップS2106)、合致している場合はWebアプリ2160に署名を発行する(ステップS2107)。これにより、Webアプリ2160は、署名サーバA,B(2101)から受け取った署名を用いて、利用者Lの代理取引としてブロックチェーンA,B上に取引を発行する(ステップS2108)。
【0124】
上記従来技術によるシステム構成では、利用者が意図した許可内容と実際の取引内容との照合が困難であった。例えば、仮想通貨の変換では、短時間で通貨変換レートが変動する。このため、利用者Lが署名を許可した時点(アクセストークン発行時、ステップS2101)と、実際にWebアプリ2160を介した送金を行う時点(送金リクエスト発行時、ステップS2104)とで取引金額が異なることになる。
【0125】
具体例を用いて説明すると、仮想通貨の取引システムにおいて、仮想通貨が基軸となる通貨(例えば、米ドル)とのレートが変動し、かつ署名サーバA,B(2101)の許可ルールを基軸通貨の価値を元に構成したとする。ここで、署名を許可したとき(「利用日:2018年9月14日、15:00、ステップS2101)では「仮想通貨Aと米ドルのレートが2.0USD/仮想通貨A」であったとする。この場合、仮想通貨Aを100ポイント移転させる場合、米ドルにおける価値は200USDである。そのため、署名サーバA,B(2101)は、「利用者が指定された宛先に200USD相当の取引を送るときに署名を渡す」ものとして書名発行ルールを設定している。
【0126】
しかし、実際に送金を行うとき(「利用日:2018年9月14日、15:30、ステップS2104)までの間に仮想通貨のレートが変動し、「仮想通貨Aと米ドルのレートが1.8USD/仮想通貨A」となったとする。この場合、同じ仮想通貨Aを100ポイント移転させる取引であっても、米ドル上での価値は180USDとなり、この取引には署名サーバA,B(2101)は、ステップS2107での署名を発行できない。
【0127】
このように、従来、OAuth2.0の技術を単に代理認証込みの仮想通貨取引システムに適用しただけでは、利用者Lが取引を許可したときと、実際に取引リクエストを出すときに時間差や状況の違いがあると、許可内容と取引内容を照合することができない。この場合、例えば、利用者は、送金額が意図した送金額の許可範囲に沿っているか否かを検討することができない。また、署名サーバが署名を発行しない場合、取引自体を行うことができない。
【0128】
また、従来技術では、Webアプリケーションが利用者の秘密鍵を保持し、取引処理時にブロックチェーンとの間で情報をやり取りしていた。秘密鍵をWebアプリケーションが保持することで代理取引を安全に実行できない恐れも生じた。
【0129】
これに対し、上述した実施の形態では、署名サーバが、利用者の取引情報をもとに送金額の許可範囲を算出した許可ルールを設定しておき、利用者の送金リクエストが許可ルール内か否かを判定する。これにより、Webアプリの利用者が取引を許可したときと、実際に送金リクエストを出すときに時間差や状況の違いにより通貨変換レートが変動しても、署名サーバは、許可ルールに基づき利用者の送金額が意図した許可範囲内であるかを照合できるようになる。加えて、利用者は、送金額の許可範囲で送金することができ、意図しない過小または過大な送金を防ぐことができる。
【0130】
また、実施の形態では、署名サーバが利用者の秘密鍵を保持しており、従来に比して代理取引を安全に実行できるようになる。また、複数のブロックチェーンの連携時においても、対応する複数の署名サーバがそれぞれの利用者の秘密鍵を分散して保持することとなり、複数のブロックチェーンの連携時においても代理取引を安全に実行できるようになる。
【0131】
以上説明した実施の形態によれば、署名サーバは、利用者からの取引情報を含むトークン発行リクエストの受信に応じて、取引内容の許可範囲を定める許可ルールを取引情報に基づいて生成するとともに、利用者の代理取引の処理を行うWebアプリケーションに許可ルールに対応するトークンを送信する。また、Webアプリケーションからのトークンを含む利用者による取引リクエストに基づく署名発行要求の受信に応じて、取引リクエストに含まれる取引内容が署名発行要求に含まれるトークンに対応する許可ルールで定められた許可範囲内か否かに基づき、署名発行要求に対応する電子署名の発行可否を判定する。これにより、トークン発行リクエスト時の取引の許可内容と、実際の取引内容の照合が行える。すなわち、利用者の送金額が意図した送金額の許可範囲に沿うか否かを照合できるようになる。また、署名サーバは、実際の取引内容が許可ルールの許可範囲を満たしているか否かを判定し、満たしていれば、電子署名を発行してWebアプリケーション(Webアプリ)での送金取引を実行させる。そして、実施の形態で行う取引処理は、ブロックチェーンと署名サーバによる代理取引に適用できる。
【0132】
また、取引が、利用者による通貨価値を有する金額またはポイントの送金の場合、署名サーバは、利用者からのトークン発行リクエスト時には、許可ルールに送金額の許可範囲を定める。そして、利用者による実際の送金リクエスト時には、送金リクエストに含まれる送金額が許可ルールで定めた許可範囲内か否かを判定する。これにより、仮想通貨等における送金に適用して、代理取引時の利用者の許可内容と、実際の取引内容の照合を行うことができるようになる。仮想通貨等では、短時間で通貨変換レートが変動するため、利用者が許可した時点(アクセストークンの発行時点)と、利用者が実際にWebアプリを介して送金リクエストを発行する時点と、で同じ送金額でも通貨変換レートの変動で実際の取引金額が異なる状況が発生する。この点、送金額が許可範囲内であるか否かを照合でき、実際の送金時に通貨変換レートで送金額が変動しても許可範囲内にあれば電子署名を発行し、Webアプリによる代理取引を適切に行える。
【0133】
また、署名サーバは、送金リクエストに含まれる送金額が許可ルールで定めた許可範囲内の場合のみ、Webアプリケーションに取引情報の電子署名を発行可と判定し、Webアプリケーションに対して電子署名を発行してもよい。これにより、利用者が実際に送金を行う送金リクエスト時に、送金額が許可範囲内であれば署名サーバが電子署名を発行し、利用者は送金取引を行うことができる。一方、送金額が許可範囲外であれば送金取引を許可しない。また、利用者は、署名サーバに設定された送金額の許可範囲内で送金を行うことができるようになる。
【0134】
また、署名サーバは、利用者による取引処理を認証する認証情報を保持し、認証情報を用いて電子署名を作成してもよい。利用者の認証情報(秘密鍵)を署名サーバが預かり保持することで、従来のようにWebアプリケーションが秘密鍵を保持する必要がなく、代理取引を安全に実行できるようになる。
【0135】
また、署名サーバは、利用者からの取引情報を含むトークン発行リクエスト毎に、許可ルールの情報として、利用者毎の送金元、送金先、送金額の許可範囲、トークンの情報、をそれぞれ関連付けた情報をテーブルに追加作成する。そして、利用者による実際の送金リクエスト時には、テーブルの許可ルールを参照し、送金リクエストに対応する許可ルールを抽出し、抽出した許可ルールの送金額が送金額の許可範囲内であるか否かを判定してもよい。これにより、利用者が取引を行った都度、取引内容の履歴をテーブル化して蓄積していくことができ、利用者別に適した許可ルールを作成できるようになり、利用者別に適した許可ルールに基づき、送金を適正に処理できるようになる。
【0136】
また、署名サーバは、許可ルール作成時の取引情報に含まれる送金額に所定の係数を掛けた値を送金額の許可範囲を規定する最大値および最小値として算出してもよい。これにより、送金額の許可範囲を適切に設定することができ、許可範囲を用いて実際の送金の処理を適切に実行できるようになる。
【0137】
また、署名サーバは、利用者、あるいは他の利用者の現在あるいは過去の取引情報に含まれる通貨変換レートを用いて、送金額の許可範囲を算出してもよい。これにより、利用者の取引状況に対応して送金額の許可範囲を適切に設定できるようになり、利用者別に適した許可ルールに基づき、送金を適正に処理できるようになる。また、取引回数が少ない利用者であっても他の利用者の取引情報を用いて適切な送金が行えるようになる。
【0138】
また、署名サーバは、算出した許可ルールを利用者に通知し、利用者の承認により許可ルールを用いた判定を行い、利用者の承認拒否時には、利用者が作成した許可ルールを用いた判定を行うこととしてもよい。これにより、署名サーバが作成した許可ルールについて、利用者の承認の元で送金を適切に行うことができるようになる。また、署名サーバが作成した許可ルールを利用者が承認拒否したときには、利用者が作成した許可ルールを用いて送金できるため、利用者の意向に沿った送金の取引を行えるようになる。
【0139】
また、前記取引が、一つまたは複数のブロックチェーンのアカウントを利用したスマートコントラクトであってもよく、スマートコントラクトの実行を行う取引の際、Webアプリケーションからの電子署名発行の要求に対し、許可ルールを用いた判定を行う。これにより、実施の形態で説明した取引処理を各種システムに適用でき、適用した各種システムにおける取引処理を、許可ルールを用いて適切に実行できるようになる。
【0140】
なお、本発明の実施の形態で説明した署名方法は、予め用意されたプログラムをサーバ等のプロセッサに実行させることにより実現することができる。本署名方法は、ハードディスク、CD-ROM(Compact Disc-Read Only Memory)、フラッシュメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることにより実行される。また本署名方法は、インターネット等のネットワークを介して配布してもよい。
【0141】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0142】
(付記1)利用者からの取引情報を含むトークン発行リクエストの受信に応じて、取引内容の許可範囲を定める許可ルールを前記取引情報に基づいて生成するとともに、前記利用者の代理取引の処理を行うWebアプリケーションに前記許可ルールに対応するトークンを送信し、
前記Webアプリケーションからのトークンを含む前記利用者による取引リクエストに基づく署名発行要求の受信に応じて、前記取引リクエストに含まれる取引内容が前記署名発行要求に含まれる前記トークンに対応する許可ルールで定められた前記許可範囲内か否かに基づき、前記署名発行要求に対応する電子署名の発行可否を判定する処理部、
を備えたことを特徴とする署名サーバ。
【0143】
(付記2)前記取引が、前記利用者による通貨価値を有する金額またはポイントの送金の場合、前記処理部は、
前記利用者からの前記トークン発行リクエスト時には、前記許可ルールに送金額の許可範囲を定め、
前記利用者による送金リクエスト時には、前記送金リクエストに含まれる前記送金額が前記許可ルールで定めた許可範囲内か否かを判定する、
ことを特徴とする付記1に記載の署名サーバ。
【0144】
(付記3)前記処理部は、
前記送金リクエストに含まれる前記送金額が前記許可ルールで定めた許可範囲内の場合のみ、前記Webアプリケーションに前記取引情報の電子署名を発行可と判定し、前記Webアプリケーションに対して前記電子署名を発行する、
ことを特徴とする付記2に記載の署名サーバ。
【0145】
(付記4)前記処理部は、
前記利用者による取引処理を認証する認証情報を保持し、当該認証情報を用いて前記電子署名を作成する、
ことを特徴とする付記3に記載の署名サーバ。
【0146】
(付記5)前記処理部は、
前記利用者からの取引情報を含むトークン発行リクエスト毎に、前記許可ルールの情報として、前記利用者毎の送金元、送金先、前記送金額の許可範囲、前記トークンの情報、をそれぞれ関連付けた情報をテーブルに追加作成し、
前記利用者による送金リクエスト時には、前記テーブルの前記許可ルールを参照し、当該送金リクエストに対応する前記許可ルールを抽出し、抽出した前記許可ルールの前記送金額が前記送金額の許可範囲内であるか否かを判定する、
ことを特徴とする付記2~4のいずれか一つに記載の署名サーバ。
【0147】
(付記6)前記処理部は、
前記許可ルール作成時の前記取引情報に含まれる前記送金額に所定の係数を掛けた値を前記送金額の許可範囲を規定する最大値および最小値として算出する、
ことを特徴とする付記2~5のいずれか一つに記載の署名サーバ。
【0148】
(付記7)前記処理部は、
前記利用者、あるいは他の利用者の現在あるいは過去の取引情報に含まれる通貨変換レートを用いて、前記送金額の許可範囲を算出する、
ことを特徴とする付記2~6のいずれか一つに記載の署名サーバ。
【0149】
(付記8)前記処理部は、
算出した前記許可ルールを前記利用者に通知し、当該利用者の承認により前記許可ルールを用いた判定を行い、
前記利用者の承認拒否時には、前記利用者が作成した前記許可ルールを用いた判定を行う、
ことを特徴とする付記2~7のいずれか一つに記載の署名サーバ。
【0150】
(付記9)前記取引が、一つまたは複数のブロックチェーンのアカウントを利用したスマートコントラクトであり、
当該スマートコントラクトの実行を行う取引の際、前記Webアプリケーションからの電子署名発行の要求に対し、前記許可ルールを用いた判定を行う、
ことを特徴とする付記1~8のいずれか一つに記載の署名サーバ。
【0151】
(付記10)利用者からの取引情報を含むトークン発行リクエストに応じて、取引内容の許可範囲を定める許可ルールを前記取引情報に基づいて生成するとともに、前記利用者の代理取引の処理を行うWebアプリケーションに前記許可ルールに対応するトークンを渡し、
前記利用者による取引リクエストに基づく前記Webアプリケーションからのトークンを含む署名発行要求に応じて、前記取引リクエストに含まれる取引内容が前記署名発行要求に含まれる前記トークンに対応する許可ルールで定めた前記許可範囲内か否かに基づき、前記署名発行要求に対応する電子書名の発行可否を判定する、
処理をコンピュータが実行することを特徴とする署名方法。
【0152】
(付記11)利用者からの取引情報を含むトークン発行リクエストに応じて、取引内容の許可範囲を定める許可ルールを前記取引情報に基づいて生成するとともに、前記利用者の代理取引の処理を行うWebアプリケーションに前記許可ルールに対応するトークンを渡し、
前記利用者による取引リクエストに基づく前記Webアプリケーションからのトークンを含む署名発行要求に応じて、前記取引リクエストに含まれる取引内容が前記署名発行要求に含まれる前記トークンに対応する許可ルールで定めた前記許可範囲内か否かに基づき、前記署名発行要求に対応する電子署名の発行可否を判定する、
処理をコンピュータに実行させることを特徴とする署名プログラム。
【符号の説明】
【0153】
100 署名サーバ
101 リクエスト受付/回答部
102 許可範囲算出部
103 許可ルール登録部
104 アクセストークン作成部
105 許可ルール判定部
106 電子署名作成部
110 秘密鍵
160 Webアプリ
301 CPU(処理部)
302 メモリ
303 ネットワークインタフェース
305 記録媒体
310 ネットワーク
L 利用者(ユーザ)
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図13
図14
図15
図16
図17
図18
図19
図20
図21