(57)【要約】【課題】不正なトランザクションの実行を抑制すること。【解決手段】管理装置３０は、ノード間で行われたトランザクションで使用された公開鍵に関する公開鍵情報が分散データベースに格納されているか否かを判定し、公開鍵を用いたチャレンジレスポンス認証がトランザクションを行ったノード間で成功しているか否かを判定し、公開鍵情報が分散データベースに格納されており、かつチャレンジレスポンス認証が成功している場合に、公開鍵を用いたトランザクションに関する情報を分散データベースに格納する。【選択図】図６
2018093434.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実行されるトランザクション管理方法であって、コンピュータが、
ノード間で行われたトランザクションで使用された公開鍵に関する公開鍵情報が分散データベースに格納されているか否かを判定し、
前記公開鍵を用いたチャレンジレスポンス認証が前記トランザクションを行った前記ノード間で成功しているか否かを判定し、
前記公開鍵情報が前記分散データベースに格納されており、かつ前記チャレンジレスポンス認証が成功している場合に、前記公開鍵を用いた前記トランザクションに関する情報を前記分散データベースに格納する、
ことを特徴とするトランザクション管理方法。
【請求項２】
前記公開鍵情報、前記チャレンジレスポンス認証に関する認証情報、および前記公開鍵を用いた前記トランザクションに関する情報を１つのトランザクション情報として前記分散データベースに格納することを特徴とする請求項１に記載のトランザクション管理方法。
【請求項３】
前記公開鍵が前記分散データベースに格納されているか否かを判定し、
前記分散データベースに格納されていない場合に、前記公開鍵情報を前記分散データベースに格納することを特徴とする請求項１または２に記載のトランザクション管理方法。
【請求項４】
前記公開鍵および前記公開鍵を用いて生成された第１の情報を含む前記公開鍵情報を前記分散データベースに格納することを特徴とする請求項３に記載のトランザクション管理方法。
【請求項５】
前記チャレンジレスポンス認証が成功している場合に認証成功を示す情報を含む認証情報を前記分散データベースに格納することを特徴とする請求項１〜４のいずれか一項に記載のトランザクション管理方法。
【請求項６】
前記公開鍵および秘密情報を用いて生成されたチャレンジコードを送信するチャレンジ送信処理と、
前記チャレンジコードを用いて生成されたレスポンスコードを受信するレスポンス受信処理と、
前記レスポンスコードと、前記公開鍵を用いて生成された第１の情報および前記秘密情報を用いて生成されたコードとが一致する場合に、チャレンジレスポンス認証が成功したことを示すアクセプトコードを送信するアクセプト送信処理と、
に関する前記認証情報を前記分散データベースに格納することを特徴とする請求項５に記載のトランザクション管理方法。
【請求項７】
前記チャレンジレスポンス認証ごとに異なる前記秘密情報を用いて生成されたチャレンジコードを送信するチャレンジ送信処理に関する前記認証情報を前記分散データベースに格納することを特徴とする請求項６に記載のトランザクション管理方法。
【請求項８】
トランザクションを管理するコンピュータに、
ノード間で行われたトランザクションで使用された公開鍵に関する公開鍵情報が分散データベースに格納されているか否かを判定し、
前記公開鍵を用いたチャレンジレスポンス認証が前記トランザクションを行った前記ノード間で成功しているか否かを判定し、
前記公開鍵情報が前記分散データベースに格納されており、かつ前記チャレンジレスポンス認証が成功している場合に、前記公開鍵を用いた前記トランザクションに関する情報を前記分散データベースに格納する、
処理を実行させることを特徴とするトランザクション管理プログラム。
【請求項９】
ノード間で行われたトランザクションで使用された公開鍵に関する公開鍵情報が分散データベースに格納されているか否かを判定する公開鍵判定部と、
前記公開鍵を用いたチャレンジレスポンス認証が前記トランザクションを行った前記ノード間で成功しているか否かを判定する認証判定部と、
前記公開鍵情報が前記分散データベースに格納されており、かつ前記チャレンジレスポンス認証が成功している場合に、前記公開鍵を用いた前記トランザクションに関する情報を前記分散データベースに格納する格納処理部と、
を有することを特徴とするトランザクション管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランザクション管理方法、トランザクション管理プログラム及びトランザクション管理装置に関する。
【背景技術】
【０００２】
例えばＢｉｔｃｏｉｎ（登録商標）など、暗号通貨を取引する場合、Ｐ２Ｐネットワーク上で公開鍵を用いた取引（トランザクション）が行われる。例えば払込装置から受取装置への払込が行われる場合、トランザクションの管理装置が、払込装置の秘密鍵で署名された払込トランザクションを秘密鍵とペアになる公開鍵を用いて検証する。これにより、不正な払込トランザクションが除外され、払込装置から受取装置への払込が正当に行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−８１１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の技術では、払込装置以外の暗号通貨所有者から受取装置への払込が発生する可能性がある。
【０００５】
すなわち、払込装置の秘密鍵および公開鍵のペア（鍵ペア）と第三者の鍵ペアとが一致すると、払込装置による払込が行われたにもかかわらず、第三者から受取装置への払込が発生してしまう。鍵ペアは、例えばコンピュータによって自動的に作成される乱数に基づいて生成される。従って、払込装置の鍵ペアと第三者の鍵ペアとが偶然一致してしまう可能性がある。あるいは、払込装置が第三者の鍵ペアを例えば不正に入手して利用することで、第三者にとって意図しない払込が発生する可能性がある。このように、万が一鍵ペアが一致した場合に、不正なトランザクションが実行されてしまう。
【０００６】
１つの側面では、本発明は、不正なトランザクションの実行を抑制できるトランザクション管理方法、トランザクション管理プログラム及びトランザクション管理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一態様では、コンピュータにより実行されるトランザクション管理方法であって、コンピュータが、ノード間で行われたトランザクションで使用された公開鍵に関する公開鍵情報が分散データベース（もしくはPoW(Proof  of  Work)等により一意的に管理されるブロックチェーン(分散台帳)）に格納されているか否かを判定し、前記公開鍵を用いたチャレンジレスポンス認証が前記トランザクションを行った前記ノード間で成功しているか否かを判定し、前記公開鍵情報が前記分散データベースに格納されており、かつ前記チャレンジレスポンス認証が成功している場合に、前記公開鍵を用いた前記トランザクションに関する情報を前記分散データベースに格納する。
【発明の効果】
【０００８】
不正なトランザクションの実行を抑制できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例に係るトランザクションシステムを説明するための図である。
【図２】図２は、Ｐ２Ｐネットワークを用いた暗号通貨の払込トランザクションを説明するための図である。
【図３】図３は、払込トランザクションを説明するための図である。
【図４】図４は、ブロックチェーンを説明するための図である。
【図５】図５は、鍵ペアが重複した場合の払込トランザクションを説明するための図である。
【図６】図６は、実施例に係るチャレンジレスポンス認証を用いた払込トランザクションを説明するための図である。
【図７】図７は、実施例に係る払込装置の機能的構成を示すブロック図である。
【図８】図８は、公開鍵情報を含む払込トランザクションを説明するための図である。
【図９】図９は、実施例に係る受取装置の機能的構成を示すブロック図である。
【図１０】図１０は、認証情報を含む払込トランザクションを説明するための図である。
【図１１】図１１は、実施例に係る管理装置の機能的構成を示すブロック図である。
【図１２】図１２は、実施例に係る払込トランザクションを実行するための処理のシーケンス図である。
【図１３】図１３は、実施例に係る公開鍵登録要求処理の一例を示すフローチャートである。
【図１４】図１４は、実施例に係る公開鍵登録処理の一例を示すフローチャートである。
【図１５】図１５は、実施例に係る認証処理の一例を示すフローチャートである。
【図１６】図１６は、実施例に係る認証登録処理の一例を示すフローチャートである。
【図１７】図１７は、実施例に係る払込処理の一例を示すフローチャートである。
【図１８】図１８は、実施例に係る払込承認処理の一例を示すフローチャートである。
【図１９】図１９は、実施例に係るトランザクション管理プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して本願に係るトランザクション管理方法、トランザクション管理プログラム及びトランザクション管理装置について説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１１】
［システム構成］
図１は、実施例に係るトランザクションシステムを説明するための図である。図１に示すトランザクションシステム１は、Ｐ２Ｐ（peer  to  peer）ネットワークＮを介して接続されるノード１０、２０、３０間で暗号通貨の取引を行うことで、政府や中央銀行のような中央機関を介さずに通貨取引サービスを提供するものである。ノード３０は複数ノードで構成されることもあり、その場合ＰｏＷ（Proof  of  Work）等の合意メカニズムにより一意的に分散データベース（database、ＤＢ）の更新を行う。
【００１２】
図１に示すように、トランザクションシステム１は、Ｐ２ＰネットワークＮを介して接続されるノード１０、２０、３０を備える。トランザクションシステム１では、各ノード間で暗号通貨の取引が行われる。ここでは、ノード１０からノード２０へ暗号通貨の払込が実行されるものとする。すなわち、ノード１０が払込装置、ノード２０が受取装置、ノード３０がトランザクションＴｘを管理する管理装置であるものとする。
【００１３】
この場合、例えば払込装置（ノード）１０から管理装置（ノード）３０に対して、受取装置（ノード）２０に対する払込の承認要求がＰ２ＰネットワークＮを介して送信される。管理装置３０は、承認要求を受けて、かかる払込を検証し承認する。管理装置３０は払込の承認をＰ２ＰネットワークＮにブロードキャストすることで、払込に関する情報をＰ２ＰネットワークＮ上の分散データベース（database、ＤＢ）に格納する。なお、例えば管理装置３０が複数存在する場合は、ＰｏＷ（Proof  of  Work）等の合意メカニズムにより一意的に払込に関する情報を分散データベースに格納するものとする。これにより、払込装置１０から受取装置２０への払込が完了する。
【００１４】
このような払込トランザクションＴｘで取引される暗号通貨は、公開鍵および秘密鍵の鍵ペアを用いた電子署名を利用して取引が行われる仮想的な通貨である。Ｐ２ＰネットワークＮを用いてかかる暗号通貨の払込トランザクションＴｘを行うトランザクションシステムとして、例えばＢｉｔｃｏｉｎが知られている。本実施例では、トランザクションシステム１がＢｉｔｃｏｉｎである場合を例にとって説明する。そこで、まず、図２〜図４を用いて一般的なＢｉｔｃｏｉｎにおける払込トランザクションＴｘについて説明する。
【００１５】
なお、Ｐ２ＰネットワークＮを用いてかかる暗号通貨の払込トランザクションＴｘを行うトランザクションシステムとしては、Ｂｉｔｃｏｉｎ以外にも、例えば、Ｍｏｎａｃｏｉｎ、Ｌｉｔｅｃｏｉｎ等種々のトランザクションシステムがある。また、かかるトランザクションシステム１で取引が行われるものは、暗号通貨に限られない。トランザクションシステム１で行われる取引の対象となるものは、例えば株式、債券等の金融商品等、Ｐ２ＰネットワークＮ上で取引を行え、所定の価値を有する商品が挙げられる。なお、かかる場合、払込トランザクションＴｘの代わりに、商品の売買等のトランザクションが行われる。
【００１６】
図２は、Ｐ２ＰネットワークＮを用いた暗号通貨の払込トランザクションＴｘを説明するための図である。図２に示すように、払込装置１０は、ランダムな数字列を用いて秘密鍵Ｋｐａを生成する。払込装置１０は、秘密鍵Ｋｐａから公開鍵Ｋａを生成する。同様に、受取装置２０も秘密鍵ＫＰｂおよび公開鍵Ｋｂを生成する。受取装置２０は、公開鍵Ｋｂをハッシュ化及びエンコードすることで公開アドレスＡｂを生成し、払込装置１０に対して公開アドレスＡｂを通知する。なお、公開アドレスＡｂの通知方法は、例えば電子メールで通知してもよく、Ｗｅｂ上で公開することで通知してもよい。払込装置１０が受取装置２０の公開アドレスＡｂを取得できればよく通知方法の手段は問わない。
【００１７】
払込装置１０は、受取装置２０から公開アドレスＡｂを取得すると、公開アドレスＡｂに払込を行う旨の払込情報を含む払込データＤｐを生成する。払込装置１０は、かかる払込データＤｐに秘密鍵Ｋｐａで署名を行い、署名後の払込データＤｐを含む払込トランザクションＴｘをＰ２ＰネットワークＮにブロードキャストすることで、管理装置３０に対して払込の承認要求を行う。
【００１８】
管理装置３０は、Ｐ２ＰネットワークＮを介して払込トランザクションＴｘを取得すると、かかる払込装置１０の公開鍵Ｋａを用いて払込データＤｐがＫａに対応する秘密鍵Ｋｐａで署名されたものか否かの検証を行う。
【００１９】
払込トランザクションＴｘが有効である場合、管理装置３０は、かかる払込トランザクションＴｘを分散データベースに格納することで、払込を承認する。これにより、払込装置１０から受取装置２０への払込が完了する。
【００２０】
上述した払込には、一般的にウォレットと呼ばれるソフトウェアが用いられる。すなわち、ノード１０、２０は、ウォレットをコンピュータにダウンロードしてＰ２ＰネットワークＮに接続することで、払込装置、受取装置のいずれかの機能を実現する。また、ノード３０が行うＤＢの管理にはマイニング等の合意メカニズムを実装したソフトウェア・ハードウェアが用いられる。なお、ウォレットは、鍵ペアの生成や公開アドレスの生成、払込トランザクションＴｘ等の送信などを行うことで、暗号通貨の管理を行うソフトウェアである。また、ウォレットがダウンロードされるコンピュータとしては、パーソナルコンピュータ、スマートフォン、タブレット端末等が挙げられる。マイニング等のトランザクション管理を行うコンピュータとしては、サーバあるいはＬＳＩ等の専用ハードウェアが挙げられる。
【００２１】
また、ここでは、ノード１０が払込装置、ノード２０が受取装置、ノード３０が管理装置であるとしたが、これに限定されない。例えばノード２０からノード３０に対して払込が行われる場合は、ノード２０が払込装置、ノード３０が受取装置となる。また、トランザクションシステム１が備えるノードの数は３つに限定されない。ノードの数は、３つ以上であってもよい。
【００２２】
続いて、図３を用いて暗号通貨の払込トランザクションＴｘの詳細について説明する。図３は、払込トランザクションＴｘを説明するための図である。
【００２３】
暗号通貨は、取引（トランザクション）の連鎖として表現される。利用者（図２の払込装置１０）は、別の利用者（図２の受取装置２０）に暗号通貨を払い込む場合、トランザクションＴｘの内容を払込装置１０の秘密鍵ＫＰａを用いて電子的に署名し、その内容が払込装置１０の意図したものであることを保証する。
【００２４】
具体的に、例えば図３に示すように、利用者Ｚから利用者Ａに払込が行われ、次に、利用者Ａから利用者Ｂに払込が行われ、利用者Ｂから利用者Ｃに払込が行われたものとする。
【００２５】
図３において、例えば払込装置１０である利用者Ａから受取装置２０である利用者Ｂに払込が行われる場合について説明する。かかる場合、利用者Ａは、利用者Ｚから利用者Ａへの払込トランザクションＴｘ１のハッシュ値と、利用者Ｂの公開鍵Ｋｂをハッシュ化したハッシュ値とを秘密鍵ＫＰａで署名した払込トランザクションＴｘ２をＰ２ＰネットワークＮにブロードキャストする。これにより、払込トランザクションＴｘ１の次に払込トランザクションＴｘ２が追加される。なお、利用者Ｂの公開鍵Ｋｂをハッシュ化したハッシュ値が利用者Ｂの公開アドレスＡｂに相当する。
【００２６】
利用者Ｂや管理装置３０（図２参照）など、トランザクションシステム１に含まれるノードは、利用者Ａの公開鍵Ｋａで、払込トランザクションＴｘ２を検証し、払込トランザクションＴｘ１のハッシュ値および利用者Ｂの公開アドレスＡｂと照合する。これにより、トランザクションシステム１に含まれるノードは、払込トランザクションＴｘ２の改変の有無を判定でき、払込トランザクションＴｘ２の有効性を検証できる。
【００２７】
利用者Ｂから利用者Ｃに払込が行われる場合も同様である。すなわち、払込装置１０である利用者Ｂは、払込トランザクションＴｘ２のハッシュ値と受取装置２０である利用者Ｃの公開鍵Ｋｃのハッシュ値とを秘密鍵ＫＰｂで署名した払込トランザクションＴｘ３をＰ２ＰネットワークＮにブロードキャストする。これにより、払込トランザクションＴｘ２の次に払込トランザクションＴｘ３が追加され、例えば管理装置３０（図２参照）によって払込トランザクションＴｘ３の有効性が検証される。
【００２８】
このように、払込装置１０から受取装置２０に払込を行う場合、前回の払込トランザクションＴｘに含まれる公開鍵によって、今回の払込トランザクションＴｘの有効性が検証される。したがって、払込装置１０になれるのは、前回の払込トランザクションＴｘに含まれる公開鍵とペアになる秘密鍵を有する利用者に限られる。そのため、秘密鍵は、他の利用者と重複しないよう、あるいは第三者に漏洩しないように管理される。
【００２９】
しかしながら、上述したように、秘密鍵は、乱数を用いて生成される。乱数は、一般的に、ある数値をシード（seed）値として用いた疑似乱数生成関数などによる特定の演算によって算出される。したがって、同じシード値を用いた場合、同じ乱数が生成されてしまう。
【００３０】
乱数が同じである場合、かかる乱数を用いて生成した秘密鍵も同じになる。このように、シード値が一致した場合など、払込装置１０の秘密鍵が第三者の秘密鍵と偶然一致してしまう可能性がある。この場合、秘密鍵を用いて生成される公開鍵も一致してしまう。そのため、払込装置１０が意図していないにもかかわらず、第三者の暗号通貨を受取装置２０に払い込んでしまう恐れがある。また、払込装置１０が第三者の秘密鍵を不正に入手した場合も、第三者の暗号通貨を受取装置２０に払い込むことが可能となる。
【００３１】
このように、管理装置３０が払込トランザクションＴｘの有効性を検証しただけでは、不正な払込トランザクションＴｘが実行されてしまう可能性がある。そこで、本実施例に係るトランザクションシステム１では、払込装置１０と受取装置２０との間で鍵ペアを用いたチャレンジレスポンス認証を行い、かかる認証結果も含めて払込トランザクションＴｘを検証することで、不正なトランザクションＴｘの実行を抑制する。かかる点については、図５を用いて後述することとし、ここでは、一般的な払込トランザクションＴｘの説明を続けるものとする。
【００３２】
続いて、図４を用いて管理装置３０による払込トランザクションＴｘの承認について説明する。図４は、ブロックチェーンＢＣを説明するための図である。管理装置３０は、払込トランザクションＴｘを含むブロックＢ２をブロックチェーンＢＣの末尾に追加することで、かかる払込トランザクションＴｘを承認する。すなわち、ブロックチェーンＢＣが分散データベースであり、管理装置３０はブロックチェーンＢＣに新たなブロックＢ２を追加することで、分散データベースに承認した払込トランザクションＴｘを格納する。
【００３３】
図４に示すように、各ブロックＢ１、Ｂ２は、ハッシュ値と、Ｎｏｎｃｅと、複数の払込トランザクションＴｘとを格納する。ハッシュ値は、一つ前のブロックＢ１とそれに含まれるＮｏｎｃｅを用いて生成される値であり、所定の条件を満たしている。管理装置３０は、所定の条件を満たすハッシュ値を生成することができるＮｏｎｃｅを発見することで、ブロックＢ２をブロックチェーンＢＣに追加することができる。これにより、ブロックチェーンＢＣに一貫したトランザクションＴｘの履歴が記録されることになる。
【００３４】
Ｎｏｎｃｅを発見する演算を行っているノードはマイナーと呼ばれる。Ｎｏｎｃｅを発見したマイナーが本実施例での管理装置３０としてブロックＢ２をブロックチェーンＢＣに追加することで払込トランザクションＴｘを承認する。
【００３５】
かかるＮｏｎｃｅを発見するためには、全数探索・総当りでハッシュ演算を行わなければならず、演算量（仕事量）が非常に大きくなる。トランザクションシステム１では、かかる仕事量の大きさによって、ブロックチェーンＢＣに一貫したトランザクションＴｘの履歴が記録されるようにし、暗号通貨の偽造を防止している（プルーフ・オブ・ワーク、proof  of  work）。
【００３６】
次に、図５を用いて、鍵ペアが重複した場合の払込トランザクションＴｘについて説明する。図５は、鍵ペアが重複した場合の払込トランザクションＴｘを説明するための図である。上述したように、例えば乱数生成関数のシード値が一致している場合などにおいて、複数のノード１０、４０の秘密鍵ＫＰおよび公開鍵Ｋの鍵ペアが一致することがある。
【００３７】
この場合、例えばノード１０が払込装置として受取装置２０への払込を管理装置３０に承認するよう承認要求を行ったとしても、管理装置３０は、ノード４０から受取装置２０への払込を承認してしまう。そのため、払込装置１０から受取装置２０への払込が行われず、ノード４０から受取装置２０への払込が行われてしまう。
【００３８】
このように、複数のノード１０、４０で鍵ペアが一致してしまうと不正な払込トランザクションＴｘが実行されてしまう。そこで、本実施例に係るトランザクションシステム１では、払込装置１０と受取装置２０との間で鍵ペアを用いたチャレンジレスポンス認証を行い、かかる認証結果も含めて払込トランザクションＴｘを検証することで、不正なトランザクションＴｘの実行を抑制する。かかる点について、図６を用いて説明する。
【００３９】
図６は、実施例に係るチャレンジレスポンス認証を用いた払込トランザクションＴｘを説明するための図である。
【００４０】
管理装置３０は、払込装置１０および受取装置２０間で行われた払込トランザクションＴｘで使用された公開鍵Ｋａに関する公開鍵情報が分散データベースに格納されているか否かを判定する。管理装置３０は、公開鍵Ｋａを用いたチャレンジレスポンス認証が払込トランザクションＴｘを行った払込装置１０および受取装置２０間で成功しているか否かを判定する。管理装置３０は、公開鍵情報が分散データベースに格納されており、かつチャレンジレスポンス認証が成功している場合に、公開鍵Ｋａを用いた払込トランザクションＴｘに関する情報を分散データベースに格納する。
【００４１】
図６に示すように、払込装置１０は、秘密鍵ＫＰａを用いて公開鍵Ｋａを生成する。払込装置１０は、秘密情報ｄを生成し、秘密情報ｄおよび公開鍵Ｋａに基づいて第１の情報ｄ×Ｋａを生成する。払込装置１０は、公開鍵Ｋａおよび第１の情報ｄ×Ｋａを公開鍵情報Ｉｋとして、Ｐ２ＰネットワークＮにブロードキャストする。かかる公開鍵情報Ｉｋは、管理装置３０によって分散データベースに格納される。
【００４２】
なお、ここでは、秘密情報ｄに公開鍵Ｋａを乗算することで第１の情報ｄ×Ｋａを生成する場合について説明したが、第１の情報の生成方法はこれに限定されない。秘密情報ｄおよび公開鍵Ｋａに基づいて第１の情報を生成すればよく、例えば公開鍵Ｋａに秘密情報ｄを乗算することで第１の情報Ｋａ×ｄを生成してもよい。あるいは、公開鍵Ｋａをｄ乗して、第１の秘密情報Ｋａ＾ｄを生成してもよく、秘密情報ｄをＫａ乗することで、第１の情報ｄ＾Ｋａを生成してもよい。
【００４３】
次に、払込装置１０から受取装置２０へ払込を行う場合、払込装置１０および受取装置２０は、まず公開鍵情報Ｉｋを用いたチャレンジレスポンス認証を行う。チャレンジレスポンス認証が成功した場合、例えば受取装置２０が認証結果をブロードキャストする。
【００４４】
その後、払込装置１０は、受取装置２０から公開アドレスＡｂを取得し、払込トランザクションＴｘをＰ２ＰネットワークＮにブロードキャストすることで、管理装置３０に対して払込の承認要求を行う。なお、払込トランザクションＴｘは、図２に示す払込トランザクションＴｘと同じであるため説明を省略する。
【００４５】
管理装置３０は、払込装置１０から承認要求を受け取ると、公開鍵情報Ｉｋが分散データベースに格納されているか否かを判定することで、公開鍵Ｋａを検証する。管理装置３０は、公開鍵情報Ｉｋが分散データベースに格納されている場合、公開鍵情報Ｉｋに含まれる公開鍵Ｋａが有効であると判定する。
【００４６】
次に、管理装置３０は、払込装置１０と受取装置２０の間で行われたチャレンジレスポンス認証を検証する。例えば受取装置２０によってチャレンジレスポンス認証が成功した旨の認証結果がブロードキャストされている場合、管理装置３０はチャレンジレスポンス認証が有効であると判定する。
【００４７】
管理装置３０は、公開鍵Ｋａが有効であり、チャレンジレスポンス認証が有効であると判定された場合に、公開鍵Ｋａを用いて署名後の払込データＤｐが有効であるか否かの検証を行う。
【００４８】
払込トランザクションＴｘが有効である場合、管理装置３０は、かかる払込トランザクションＴｘを分散データベースに格納することで、払込を承認する。これにより、払込装置１０から受取装置２０への払込が完了する。
【００４９】
このように、管理装置３０は、払込装置１０の鍵ペアが有効であり、払込装置１０と受取装置２０との間で行われたチャレンジレスポンス認証が成功している場合に、払込トランザクションＴｘを承認する。これにより、鍵ペアの重複を抑制し、不正なトランザクションＴｘの実行を抑制することができる。
【００５０】
［払込装置１０の構成］
続いて、図７を用いて、実施例に係るトランザクションシステム１が備える払込装置１０の構成について説明する。図７は、本実施例に係る払込装置１０の機能的構成を示すブロック図である。
【００５１】
図７には、符号１１〜符号１４に対応する機能部が示されているが、これはあくまで一例に過ぎず、図示された機能部の一部を省略したり、図示以外の機能部が払込装置１０に備わることを妨げない。例えば、パーソナルコンピュータが払込装置１０として実装される場合、パーソナルコンピュータが標準装備する機能部、例えば入力デバイス、画像または音声の出力デバイスなどの機能部を有することとしてもかまわない。
【００５２】
図７に示すように、払込装置１０は、あくまで一例として、通信部１１と、鍵生成部１２と、レスポンス生成部１３と、払込処理部１４とを有する。
【００５３】
通信部１１は、Ｐ２ＰネットワークＮを介して、他の装置、例えば受取装置２０や管理装置３０などとの間で通信制御を行うインタフェースである。
【００５４】
一実施形態として、通信部１１には、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。例えば、通信部１１は、受取装置２０からチャレンジレスポンス認証に関するチャレンジコードを受信したり、払込トランザクションＴｘの承認要求を管理装置３０へ送信したりする。
【００５５】
鍵生成部１２は、公開鍵情報Ｉｋを生成する処理部である。
【００５６】
一実施形態として、鍵生成部１２は、受取装置２０に対する払込を行う前に、公開鍵情報Ｉｋを生成する。例えば、鍵生成部１２は、第１の乱数および第２の乱数をそれぞれ生成する。あるいは、鍵生成部１２は、一つの乱数を生成し、それを２つに分割することで、第１、第２の乱数を生成することもできる。鍵生成部１２は、第１の乱数を用いて秘密鍵ＫＰａを生成する。鍵生成部１２は、例えば、ＥＣＤＳＡ（Elliptic  Curve  Digital  Signature  Algorithm）に基づいて秘密鍵ＫＰａを用いて公開鍵Ｋａを生成する。また、鍵生成部１２は、第２の乱数を秘密情報ｄとして、秘密情報ｄと公開鍵Ｋａとのスカラー倍算を行い、第１の情報ｄ×Ｋａを生成する。なお、スカラー倍算とは、楕円曲線上におけるかけ算である。なお、ここでは、公開鍵暗号方式としてＥＣＤＳＡを用いる場合について説明するが、これに限定されない。例えばＲＳＡ暗号など楕円曲線を用いた暗号アルゴリズム以外のアルゴリズムを用いることができる。
【００５７】
鍵生成部１２は、生成した公開鍵Ｋａと第１の情報ｄ×Ｋａを公開鍵情報Ｉｋとして通信部１１を介してＰ２ＰネットワークＮにブロードキャストすることで、管理装置３０に公開鍵情報Ｉｋの登録要求を行う。
【００５８】
一実施形態として、鍵生成部１２は、払込トランザクションＴｘを用いて公開鍵情報Ｉｋの登録要求を行う。例えば、鍵生成部１２は、公開鍵情報Ｉｋを含む払込トランザクションＴｘをブロードキャストすることで、公開鍵情報Ｉｋの登録要求を行う。
【００５９】
図８は、公開鍵情報Ｉｋを含む払込トランザクションＴｘを説明するための図である。図８に示すように、払込トランザクションＴｘには、払込装置１０の電子署名等、払込装置１０が行う払込に関する情報（払込情報）を格納する領域の他に、その他の情報を格納することができる拡張領域Ｆが含まれる。そこで、鍵生成部１２は、かかる拡張領域Ｆに生成した公開鍵Ｋａおよび第１の情報ｄ×Ｋａを含む公開鍵情報Ｉｋを格納した払込トランザクションＴｘを生成する。これにより、鍵生成部１２は、払込トランザクションＴｘを用いて公開鍵情報Ｉｋの登録要求を管理装置３０に対して行うことができる。
【００６０】
なお、かかる登録要求は、払込装置１０が行うものであり、払込先が存在しない。そのため、払込装置１０の鍵生成部１２は、例えば実在しない利用者Ｘの架空の公開鍵Ｋｘを用いて生成した公開アドレスＡｘを払込先にした払込トランザクションＴｘを生成する。あるいは、払込装置１０自身に払込を行うようにすることもできる。すなわち、払込装置１０自身の公開アドレスＡａを払込先にした払込トランザクションＴｘを生成することもできる。または、トランザクションシステム１が、公開鍵情報Ｉｋの登録要求を行うための公開アドレスＡ０を用意しておき、鍵生成部１２がかかる公開アドレスＡ０を払込先にした払込トランザクションＴｘを生成することもできる。なお、以下、公開鍵情報Ｉｋを含む払込トランザクションＴｘを公開鍵トランザクションＴｘｋとも記載する。
【００６１】
このように、鍵生成部１２は、秘密鍵ＫＰａおよび公開鍵Ｋａの鍵ペアを生成することができる他、公開鍵Ｋａを含む公開鍵情報Ｉｋを生成することができる。さらに鍵生成部１２は、公開鍵情報Ｉｋの登録要求を管理装置３０に対して行うことができる。
【００６２】
レスポンス生成部１３は、チャレンジレスポンス認証におけるレスポンスコードＲＣを生成する処理部である。
【００６３】
一実施形態として、レスポンス生成部１３は、通信部１１を介して、受取装置２０からチャレンジコードＣＣを取得した場合に、チャレンジコードＣＣと秘密情報ｄとのスカラー倍算を行い、レスポンスコードｄ＾ＣＣを生成する。レスポンス生成部１３は、生成したレスポンスコードｄ＾ＣＣを受取装置２０へ送信する。
【００６４】
払込処理部１４は、払込トランザクションＴｘを生成する処理部である。
【００６５】
一実施形態として、払込処理部１４は、通信部１１を介して、チャレンジレスポンス認証の成功の通知を受け取ると、受取装置２０から公開アドレスＡｂを取得する。払込処理部１４は、秘密鍵ＫＰａを用いて電子的に署名を行い、今回の払込トランザクションＴｘを生成する（図３参照）。払込処理部１４は、生成した払込トランザクションＴｘを、通信部１１を介してＰ２ＰネットワークＮにブロードキャストすることで、管理装置３０に払込トランザクションＴｘの承認要求を行う。
【００６６】
［受取装置２０の構成］
次に、図９を用いて、本実施例に係るトランザクションシステム１が備える受取装置２０の構成について説明する。図９は、実施例に係る受取装置２０の機能的構成を示すブロック図である。
【００６７】
図９には、符号２１〜符号２４に対応する機能部が示されているが、これはあくまで一例に過ぎず、図示された機能部の一部を省略したり、図示以外の機能部が受取装置２０に備わることを妨げない。例えば、パーソナルコンピュータが受取装置２０として実装される場合、パーソナルコンピュータが標準装備する機能部、例えば入力デバイス、画像または音声の出力デバイスなどの機能部を有することとしてもかまわない。
【００６８】
図９に示すように、受取装置２０は、あくまで一例として、通信部２１と、チャレンジ生成部２２と、アクセプト判定部２３と、アクセプト生成部２４とを有する。
【００６９】
通信部２１は、Ｐ２ＰネットワークＮを介して、他の装置、例えば払込装置１０や管理装置３０などとの間で通信制御を行うインタフェースである。
【００７０】
一実施形態として、通信部２１には、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。例えば、通信部２１は、払込装置１０からチャレンジレスポンス認証に関するレスポンスコードＲＣを受信したり、チャレンジレスポンス認証に関する認証情報の登録要求を管理装置３０へ送信したりする。
【００７１】
チャレンジ生成部２２は、チャレンジレスポンス認証におけるチャレンジコードＣＣを生成する処理部である。
【００７２】
一実施形態として、チャレンジ生成部２２は、払込装置１０から払込を受ける場合に先だって、チャレンジコードＣＣを生成し、通信部２１を介して払込装置１０にチャレンジコードＣＣを送信する。チャレンジ生成部２２は、例えば通信部２１を介して払込装置１０の公開鍵情報Ｉｋを取得する。チャレンジ生成部２２は、例えば乱数生成関数を用いて秘密情報ｕをランダムに生成する。なお、秘密情報ｕは、チャレンジレスポンス認証を行う度に新たに生成される。チャレンジ生成部２２は、生成した秘密情報ｕと公開鍵情報Ｉｋに含まれる公開鍵Ｋａとのスカラー倍算を行い、チャレンジコードＣＣ＝ｕ＾Ｋａを生成する。チャレンジ生成部２２は、通信部２１を介して生成したチャレンジコードＣＣを払込装置１０に送信する。
【００７３】
アクセプト判定部２３は、払込装置１０から取得したレスポンスコードＲＣに基づいて、チャレンジレスポンス認証に成功（アクセプト）したか否かを判定する処理部である。
【００７４】
一実施形態として、アクセプト判定部２３は、通信部２１を介して払込装置１０からレスポンスコードＲＣを取得する。上述したように、レスポンスコードＲＣは、チャレンジコードＣＣと秘密情報ｄとのスカラー倍算を行ったものであり、ＲＣ＝ｄ＾ＣＣである。ここで、チャレンジコードＣＣは、ＣＣ＝ｕ＾Ｋａであるため、レスポンスコードＲＣは、ＲＣ＝ｄ＾（ｕ＾Ｋａ）となる。また、アクセプト判定部２３は、払込装置１０から取得した公開鍵情報Ｉｋに含まれる第１の情報ｄ×Ｋａと秘密情報ｕとのスカラー倍算を行って検証コードＶＣ＝ｕ＾（ｄ×Ｋａ）を生成する。アクセプト判定部２３は、生成した検証コードＶＣ＝ｕ＾（ｄ×Ｋａ）とレスポンスコードＲＣ＝ｄ＾（ｕ＾Ｋａ）とが一致する場合、チャレンジレスポンス認証に成功したと判定する。
【００７５】
アクセプト生成部２４は、アクセプト判定部２３がチャレンジレスポンス認証に成功したと判定した場合にアクセプトコードＡＣを生成する処理部である。
【００７６】
一実施形態として、アクセプト生成部２４は、アクセプト判定部２３からチャレンジレスポンス認証に成功したとの判定結果を取得した場合に、アクセプトコードＡＣを生成する。アクセプト生成部２４は、アクセプトコードＡＣを含むチャレンジレスポンス認証に関する認証情報Ｉａを生成する。例えば、アクセプト生成部２４は、チャレンジコードＣＣ、レスポンスコードＲＣおよびアクセプトコードＡＣを含む認証情報Ｉａを生成する。
【００７７】
一実施形態として、アクセプト生成部２４は、通信部２１を介して認証情報Ｉａを含む払込トランザクションＴｘをブロードキャストすることで、払込装置１０に認証成功を通知するとともに、管理装置３０に認証情報Ｉａの登録要求を行う。
【００７８】
図１０は、認証情報Ｉａを含む払込トランザクションＴｘを説明するための図である。上述したように払込トランザクションＴｘには、払込に関する情報を格納する領域の他に拡張領域Ｆが含まれる。アクセプト生成部２４は、かかる拡張領域ＦにチャレンジコードＣＣ、レスポンスコードＲＣおよびアクセプトコードＡＣを含む認証情報Ｉａを格納した払込トランザクションＴｘを生成し、Ｐ２ＰネットワークＮにブロードキャストする。これにより、アクセプト生成部２４は、払込トランザクションＴｘを用いて認証情報Ｉａを払込装置１０に通知できるとともに、かかる認証情報Ｉａの登録要求を管理装置３０に対して行うことができる。
【００７９】
一実施形態として、アクセプト生成部２４は、払込装置１０を払込先とし、認証情報Ｉａを含む払込トランザクションＴｘを生成する。これにより、認証を行った相手が払込装置１０であることを管理装置３０に対して通知することができる。なお、認証情報Ｉａを含む払込トランザクションＴｘの払込先は払込装置１０に限定されない。例えば、受取装置２０自身に払込を行うようにすることもできる。すなわち、受取装置２０自身の公開アドレスＡｂを払込先にした払込トランザクションＴｘを生成することもできる。または、トランザクションシステム１が、認証情報Ｉａの登録要求を行うための公開アドレスＡ０を用意しておき、アクセプト生成部２４がかかる公開アドレスＡ０を払込先にした払込トランザクションＴｘを生成することもできる。なお、以下、認証情報Ｉａを含む払込トランザクションＴｘを認証トランザクションＴｘａとも記載する。
【００８０】
［管理装置３０の構成］
図１１を用いて、本実施例に係るトランザクションシステム１が備える管理装置３０の構成について説明する。図１１は、実施例に係る管理装置３０の機能的構成を示すブロック図である。
【００８１】
図１１には、符号３１〜符号３８に対応する機能部が示されているが、これはあくまで一例に過ぎず、図示された機能部の一部を省略したり、図示以外の機能部が管理装置３０に備わることを妨げない。例えば、パーソナルコンピュータが管理装置３０として実装される場合、パーソナルコンピュータが標準装備する機能部、例えば入力デバイス、画像または音声の出力デバイスなどの機能部を有することとしてもかまわない。
【００８２】
図１１に示すように、管理装置３０は、あくまで一例として、通信部３１と、鍵Ｔｘ登録部３２と、認証Ｔｘ登録部３３と、払込Ｔｘ登録部３４とを有する。
【００８３】
通信部３１は、Ｐ２ＰネットワークＮを介して、他の装置、例えば払込装置１０や受取装置２０などとの間で通信制御を行うインタフェースである。
【００８４】
一実施形態として、通信部３１には、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。例えば、通信部３１は、払込装置１０から払込トランザクションＴｘを受信したり、払込トランザクションＴｘの承認結果を払込装置１０や受取装置２０へ送信したりする。
【００８５】
鍵Ｔｘ登録部３２は、公開鍵トランザクションＴｘｋを受け取った場合に、公開鍵情報Ｉｋの登録を行う処理部である。
【００８６】
一実施形態として、鍵Ｔｘ登録部３２は、公開鍵トランザクションＴｘｋを受け取った場合、公開鍵情報Ｉｋに含まれる公開鍵Ｋａがすでに分散データベース（ブロックチェーンＢＣ）に格納されているか否かを判定する。鍵Ｔｘ登録部３２は、公開鍵Ｋａが分散データベースに格納されていない場合に、公開鍵トランザクションＴｘｋを分散データベースに格納することで、公開鍵情報Ｉｋを分散データベースに登録する。具体的に鍵Ｔｘ登録部３２は、例えば公開鍵トランザクションＴｘｋを含むブロックを新たに生成し、ブロックチェーンＢＣの末尾に追加することで、公開鍵トランザクションＴｘｋを分散データベースに格納する（図４参照）。鍵Ｔｘ登録部３２は、通信部３１を介して公開鍵情報Ｉｋの登録結果を払込装置１０に通知する。
【００８７】
認証Ｔｘ登録部３３は、認証トランザクションＴｘａを受け取った場合に、認証情報Ｉａの登録を行う処理部である。
【００８８】
一実施形態として、認証Ｔｘ登録部３３は、受け取った認証トランザクションＴｘａに含まれる認証情報ＩａにチャレンジコードＣＣ、レスポンスコードＲＣおよびアクセプトコードＡＣが含まれるか否かを判定する。また、認証Ｔｘ登録部３３は、認証情報Ｉａがすでに分散データベースに格納されているか否かを判定する。認証Ｔｘ登録部３３は、認証情報ＩａにチャレンジコードＣＣ、レスポンスコードＲＣおよびアクセプトコードＡＣが含まれており、認証情報Ｉａが分散データベースに格納されていない場合に、認証情報Ｉａを分散データベースに格納する。具体的に認証Ｔｘ登録部３３は、例えば認証トランザクションＴｘａを含むブロックを新たに生成し、ブロックチェーンＢＣの末尾に追加することで、認証トランザクションＴｘａを分散データベースに格納する（図４参照）。認証Ｔｘ登録部３３は、通信部３１を介して認証情報Ｉａの登録結果を受取装置２０に通知する。
【００８９】
払込Ｔｘ登録部３４は、払込装置１０から受取装置２０への払込情報を含む払込トランザクションＴｘを受け取った場合に、払込の承認を行って払込トランザクションＴｘの登録を行う処理部である。払込Ｔｘ登録部３４は、あくまで一例として、公開鍵判定部３５と、認証判定部３６と、承認判定部３７と、格納処理部３８とを有する。
【００９０】
公開鍵判定部３５は、払込トランザクションＴｘを検証するための公開鍵Ｋａが分散データベースに登録されているか否かを判定する処理部である。
【００９１】
一実施形態として、公開鍵判定部３５は、通信部３１を介して分散データベースに払込装置１０の公開鍵情報Ｉｋが格納されている場合、払込トランザクションＴｘを検証するための公開鍵Ｋａが登録されていると判定する。公開鍵判定部３５は、判定結果を承認判定部３７に通知する。
【００９２】
認証判定部３６は、公開鍵情報Ｉｋを用いたチャレンジレスポンス認証に関する認証情報Ｉａが分散データベースに登録されているか否かを判定する処理部である。
【００９３】
一実施形態として、認証判定部３６は、通信部３１を介して分散データベースに認証情報Ｉａが格納されているか否かを判定する。認証情報Ｉａが格納されている場合、認証判定部３６は、分散データベースから認証情報Ｉａを取得し、かかる認証情報Ｉａがチャレンジレスポンス認証の成功を示す情報であるか否かを判定する。認証判定部３６は、認証情報Ｉａがチャレンジレスポンス認証の成功を示す情報である場合、認証情報Ｉａが登録されていると判定する。認証判定部３６は、判定結果を承認判定部３７に通知する。
【００９４】
承認判定部３７は、公開鍵判定部３５および認証判定部３６の判定結果に応じて、払込トランザクションＴｘを検証し、払込を認証するか否かを判定する処理部である。
【００９５】
一実施形態として、承認判定部３７は、公開鍵Ｋａおよび認証情報Ｉａが分散データベースに登録されている場合に、払込トランザクションＴｘの検証を行う。公開鍵Ｋａおよび認証情報Ｉａの少なくとも一方が分散データベースに登録されていない場合、承認判定部３７は、払込トランザクションＴｘの検証を行わず、払込の承認を却下する。なお、払込トランザクションＴｘの検証は、例えば図２等を用いて上述した払込トランザクションＴｘの検証と同じであるため説明を省略する。
【００９６】
一実施形態として、承認判定部３７は、払込トランザクションＴｘの検証結果に基づいて払込トランザクションＴｘを承認する場合、承認する旨を格納処理部３８に通知する。また、承認判定部３７は、払込トランザクションＴｘを承認しない場合、承認しない旨を例えば通信部３１を介して払込装置１０および受取装置２０に通知する。
【００９７】
換言すると、承認判定部３７は、公開鍵トランザクションＴｘｋ、認証トランザクションＴｘａおよび払込トランザクションＴｘの全てに問題がない場合に払込トランザクションＴｘを認証することとなる。これにより、承認判定部３７は、例えば重複した鍵ペアを用いた払込トランザクションＴｘなど、不正なトランザクションＴｘの承認を却下することができ、不正なトランザクションＴｘの実行を抑制することができる。
【００９８】
格納処理部３８は、承認判定部３７が払込トランザクションＴｘを承認した場合に、払込トランザクションＴｘを分散データベースに格納する処理部である。
【００９９】
一実施形態として、格納処理部３８は、払込トランザクションＴｘを分散データベースに格納する。これにより、管理装置３０は払込トランザクションＴｘの承認を完了し、払込装置１０から受取装置２０への払込が完了する。なお、格納処理部３８が、払込トランザクションＴｘを分散データベース（ブロックチェーンＢＣ）に格納する方法は、例えば図４を用いて上述した方法と同じであるため説明を省略する。
【０１００】
一実施形態として、格納処理部３８は、例えば払込トランザクションＴｘに公開鍵情報Ｉｋおよび認証情報Ｉａを含めて分散データベースに格納する。具体的には、格納処理部３８は、払込トランザクションＴｘの拡張領域Ｆに公開鍵情報Ｉｋおよび認証情報Ｉａを格納する。これにより、格納処理部３８は、払込トランザクションＴｘ、公開鍵トランザクションＴｘｋおよび認証トランザクションＴｘａを１つのトランザクションＴｘとして分散データベースに格納することができる。あるいは、公開鍵情報Ｉｋまたは認証情報Ｉａのいずれか一方を払込トランザクションＴｘに含めることもできる。これにより、例えば払込装置１０などのトランザクションシステム１に含まれるノードが、払込トランザクションＴｘを参照することで、公開鍵情報Ｉｋおよび認証情報Ｉａも参照することができる。そのため、ノードはより容易に公開鍵情報Ｉｋおよび認証情報Ｉａを参照することができ、払込トランザクションＴｘの正当性をより容易に確認することができる。
【０１０１】
［処理の流れ］
図１２〜図１８を用いて、トランザクションシステム１で実行される処理について説明する。まず図１２を用いてトランザクションシステム１で実行される処理の流れについて説明する。図１２は、実施例に係る払込トランザクションＴｘを実行するための処理のシーケンス図である。図１２に示す処理には、公開鍵情報Ｉｋを登録する処理Ｓ１、チャレンジレスポンス認証を実行する処理Ｓ２および払込トランザクションＴｘを登録する処理Ｓ３が含まれる。
【０１０２】
払込装置１０から受取装置２０に対して払込が行われる場合、まず払込装置１０と管理装置３０との間で公開鍵情報Ｉｋを登録する処理Ｓ１が行われる。
【０１０３】
図１２に示すように、払込装置１０は、公開鍵情報Ｉｋを生成し（ステップＳ１０）、生成した公開鍵情報Ｉｋの登録要求を管理装置３０に対して行う（ステップＳ１１）。管理装置３０は、公開鍵情報Ｉｋの登録要求を受けて、かかる公開鍵情報Ｉｋを登録するか否かを判定する（ステップＳ１２）。管理装置３０は、公開鍵情報Ｉｋを登録すると判定すると、分散データベース（分散ＤＢ）に公開鍵情報Ｉｋを登録する（ステップＳ１３）。
【０１０４】
続いて、払込装置１０および受取装置２０は、チャレンジレスポンス認証を実行する処理Ｓ２を行う。
【０１０５】
図１２に示すように、受取装置２０は、分散ＤＢから払込装置１０の公開鍵情報Ｉｋを取得する（ステップＳ２０）。受取装置２０は、取得した公開鍵情報Ｉｋを用いてチャレンジコードＣＣを生成し（ステップＳ２１）、払込装置１０に送信する（ステップＳ２２）。
【０１０６】
チャレンジコードＣＣを受け取った払込装置１０は、レスポンスコードＲＣを生成し（ステップＳ２３）、受取装置２０に送信する（ステップＳ２４）。
【０１０７】
レスポンスコードＲＣを受け取った受取装置２０は、レスポンスコードＲＣに基づいてチャレンジレスポンス認証に成功し、認証をアクセプトするか否かを判定する（ステップＳ２５）。チャレンジレスポンス認証に成功し、認証をアクセプトする場合、受取装置２０は、認証トランザクションＴｘａをブロードキャストすることで、アクセプトを払込装置１０に通知する（ステップＳ２６）とともに、認証情報Ｉａの登録を管理装置３０に対して要求する（ステップＳ２７）。
【０１０８】
管理装置３０は、認証情報Ｉａの登録要求を受けて、かかる認証情報Ｉａを登録するか否かを判定する（ステップＳ２８）。管理装置３０は、認証情報Ｉａを登録すると判定すると、分散ＤＢに認証情報Ｉａを登録する（ステップＳ２９）。
【０１０９】
払込装置１０と受取装置２０との間でチャレンジレスポンス認証が成功した場合に、払込トランザクションＴｘを登録する処理Ｓ３が払込装置１０と管理装置３０との間で行われる。
【０１１０】
払込装置１０は、受取装置２０に払込を行う払込トランザクションＴｘ（払込Ｔｘ）を生成し（ステップＳ３０）、管理装置３０に対して払込Ｔｘの承認を要求する（ステップＳ３１）。
【０１１１】
管理装置３０は、払込Ｔｘの承認要求を受けると、分散ＤＢから公開鍵情報Ｉｋ、認証情報Ｉａを取得する（ステップＳ３２）。管理装置３０は、取得した公開鍵情報Ｉｋ、認証情報Ｉａおよび払込Ｔｘに基づき、払込Ｔｘを承認するか否かを判定する（ステップＳ３３）。払込Ｔｘを承認する場合、管理装置３０は、分散ＤＢに払込Ｔｘを格納することで、払込Ｔｘの登録を行う（ステップＳ３４）とともに、払込装置１０および受取装置２０に払込Ｔｘの承認を通知する（ステップＳ３５）。
【０１１２】
なお、図１２では、払込装置１０から受取装置２０に対して払込を行う場合に公開鍵情報Ｉｋを登録するようにしているが、これに限定されない。払込装置１０が一度公開鍵情報Ｉｋを登録し、その後、複数回にわたって公開鍵情報Ｉｋを用いて払込を行う場合は、再度公開鍵情報Ｉｋを登録する必要はない。すなわち、払込装置１０は、始めて公開鍵情報Ｉｋを用いて払込を行う場合に、公開鍵情報Ｉｋを登録すればよい。したがって、払込装置１０が、例えばウォレットをダウンロードし、トランザクションシステム１に参加するタイミングで公開鍵情報Ｉｋを登録してもよい。
【０１１３】
また、図１２では、払込装置１０から受取装置２０に対して払込を行う場合にチャレンジレスポンス認証を実行するようにしているが、これに限定されない。払込装置１０と受取装置２０との間で公開鍵情報Ｉｋを用いたチャレンジレスポンス認証が少なくとも１回は実行されている場合、公開鍵情報Ｉｋを用いたチャレンジレスポンス認証を省略することもできる。すなわち、払込装置１０が、受取装置２０に対して始めて公開鍵情報Ｉｋを用いて払込を行う場合に、チャレンジレスポンス認証を行うようにしてもよい。あるいは、払込装置１０および受取装置２０が、前回チャレンジレスポンス認証を行ってから所定期間が経過していない場合に、チャレンジレスポンス認証を省略することもできる。これにより、例えば払込装置１０が受取装置２０に対して繰り返し払込を行う場合に、チャレンジレスポンス認証を省略することができ払込の処理にかかる時間を短縮することができる。
【０１１４】
また、図１２では、処理Ｓ１〜Ｓ３において、分散ＤＢへの登録を１つの管理装置３０が行う場合について示しているが、これに限定されない。処理Ｓ１〜Ｓ３で分散ＤＢへの登録を行う管理装置３０がそれぞれ異なっていてもよい。
【０１１５】
また、上述した例では、払込装置１０および受取装置２０が払込トランザクションＴｘを用いて公開鍵情報Ｉｋおよび認証情報Ｉａを送信するとしたが、これに限定されない。例えば、払込装置１０および受取装置２０が、それぞれ公開鍵情報Ｉｋおよび認証情報Ｉａを送信するためのトランザクションＴｘを生成し、送信するようにしてもよい。この場合、かかるトランザクションＴｘには払込先の情報等、払込に関する情報を含める必要がないため、トランザクションＴｘの情報量を削減することができる。
【０１１６】
また、上述した例では、管理装置３０が、公開鍵情報Ｉｋおよび認証情報Ｉａを、払込トランザクションＴｘと同じ分散データベース（ブロックチェーンＢＣ）に格納するとしたが、これに限定されない。例えば、公開鍵情報Ｉｋおよび認証情報Ｉａをそれぞれ格納する分散データベース（ブロックチェーンＢＣ）を個別に用意することもできる。
【０１１７】
続いて、図１３〜図１８を用いて、トランザクションシステム１の各装置で実行される処理の詳細について説明する。まず、図１３を用いて、払込装置１０が実行する公開鍵登録要求処理について説明する。図１３は、実施例に係る公開鍵登録要求処理の一例を示すフローチャートである。公開鍵登録要求処理は、例えば払込装置１０から受取装置２０へ払込を行う場合であって、公開鍵情報Ｉｋをまだ登録していない場合に実行される。
【０１１８】
図１３に示すように、鍵生成部１２は、公開鍵情報Ｉｋを生成し（ステップＳ１０１）、管理装置３０に対して公開鍵情報Ｉｋの登録を要求する（ステップＳ１０２）。鍵生成部１２は、公開鍵情報Ｉｋが登録されたか否かを判定する（ステップＳ１０３）。鍵生成部１２は、公開鍵情報Ｉｋが登録されなかった場合（ステップＳ１０３Ｎｏ）、ステップＳ１０１に戻り、別の公開鍵情報Ｉｋを生成する。鍵生成部１２は、公開鍵情報Ｉｋが登録された場合（ステップＳ１０３Ｙｅｓ）、処理を終了する。
【０１１９】
次に、図１４を用いて、管理装置３０が実行する公開鍵登録処理について説明する。図１４は、実施例に係る公開鍵登録処理の一例を示すフローチャートである。公開鍵登録処理は、例えば管理装置３０が払込装置１０から公開鍵情報Ｉｋの登録要求を受信した場合に実行される。
【０１２０】
図１４に示すように、鍵Ｔｘ登録部３２は、公開鍵情報Ｉｋの登録要求を受信すると（ステップＳ２０１）、公開鍵情報Ｉｋに含まれる公開鍵Ｋａがすでに分散データベースに登録されているか否かを判定する（ステップＳ２０２）。鍵Ｔｘ登録部３２は、公開鍵Ｋａがすでに分散データベースに登録されている場合（ステップＳ２０２Ｙｅｓ）、払込装置１０に対して公開鍵情報Ｉｋの登録を却下し（ステップＳ２０３）、処理を終了する。
【０１２１】
鍵Ｔｘ登録部３２は、公開鍵Ｋａが分散データベースに登録されていない場合（ステップＳ２０２Ｎｏ）、公開鍵情報Ｉｋを分散データベースに登録し（ステップＳ２０４）、公開鍵情報Ｉｋの登録完了を払込装置１０に通知する（ステップＳ２０５）。なお、公開鍵情報ＩｋをＰ２ＰネットワークＮにブロードキャストすることで公開鍵情報Ｉｋを分散データベースに登録する場合、鍵Ｔｘ登録部３２は、ステップＳ２０５の登録完了の通知を省略することができる。
【０１２２】
図１５を用いて、受取装置２０が実行する認証処理について説明する。図１５は、実施例に係る認証処理の一例を示すフローチャートである。認証処理は、払込装置１０から受取装置２０への払込が行われる場合に実行される。
【０１２３】
図１５に示すように、チャレンジ生成部２２は、取得した公開鍵情報Ｉｋを用いてチャレンジコードＣＣを生成し（ステップＳ３０１）、払込装置１０に送信する（ステップＳ３０２）。
【０１２４】
アクセプト判定部２３は、検証コードＶＣを計算し（ステップＳ３０３）、払込装置１０からレスポンスコードＲＣを受信すると（ステップＳ３０４）、受信したレスポンスコードＲＣと検証コードＶＣとが一致するか否かを判定する（ステップＳ３０５）。アクセプト判定部２３がレスポンスコードＲＣと検証コードＶＣとが一致しないと判定した場合（ステップＳ３０５Ｎｏ）、アクセプト生成部２４は、払込装置１０に対して払込を拒否し（ステップＳ３０６）、処理を終了する。
【０１２５】
アクセプト判定部２３がレスポンスコードＲＣと検証コードＶＣとが一致すると判定した場合（ステップＳ３０５Ｙｅｓ）、アクセプト生成部２４は、生成したアクセプトコードＡＣを含む認証情報Ｉａを払込装置１０に送信し（ステップＳ３０７）、管理装置３０に対して認証情報Ｉａの登録を要求する（ステップＳ３０８）。なお、アクセプト生成部２４が、認証情報ＩａをＰ２ＰネットワークＮにブロードキャストすることで、認証情報Ｉａの登録を要求する場合、アクセプト生成部２４は、ステップＳ３０７の認証情報Ｉａの送信を省略することもできる。また、ステップＳ３０３とステップＳ３０４の処理は順番を入れ替えてもよく、また同時に処理を実行してもよい。
【０１２６】
図１６を用いて、管理装置３０が実行する認証登録処理について説明する。図１６は、実施例に係る認証登録処理の一例を示すフローチャートである。認証登録処理は、例えば管理装置３０が受取装置２０から認証情報Ｉａの登録要求を受信した場合に実行される。
【０１２７】
図１６に示すように、認証Ｔｘ登録部３３は、受取装置２０から認証情報Ｉａの登録要求を受信すると（ステップＳ４０１）、認証情報Ｉａを検証する（ステップＳ４０２）。認証Ｔｘ登録部３３は、例えば認証情報ＩａにチャレンジコードＣＣ、レスポンスコードＲＣおよびアクセプトコードＡＣの全てが含まれているか否かを判定することで、認証情報Ｉａの検証を行う。
【０１２８】
認証Ｔｘ登録部３３は、認証情報Ｉａの検証結果、認証情報Ｉａに問題がないか否かを判定する（ステップＳ４０３）。認証情報Ｉａに問題がある場合（ステップＳ４０３Ｎｏ）、認証Ｔｘ登録部３３は、認証情報Ｉａの登録を却下し（ステップＳ４０４）、処理を終了する。
【０１２９】
認証Ｔｘ登録部３３は、認証情報Ｉａに問題がない場合（ステップＳ４０３Ｙｅｓ）、認証情報Ｉａがすでに分散データベースに登録されているか否かを判定する（ステップＳ４０５）。認証Ｔｘ登録部３３は、認証情報Ｉａがすでに分散データベースに登録されている場合（ステップＳ４０５Ｙｅｓ）、ステップＳ４０４にて払込装置１０に対して認証情報Ｉａの登録を却下し、処理を終了する。
【０１３０】
認証Ｔｘ登録部３３は、分散データベースに認証情報Ｉａが登録されていない場合（ステップＳ４０５Ｎｏ）、認証情報Ｉａを分散データベースに登録し（ステップＳ４０６）、認証情報Ｉａの登録完了を払込装置１０および受取装置２０に通知する（ステップＳ４０７）。なお、認証情報ＩａをＰ２ＰネットワークＮにブロードキャストすることで、認証情報Ｉａを分散データベースに登録する場合、認証Ｔｘ登録部３３は、ステップＳ４０７の登録完了の通知を省略することもできる。
【０１３１】
図１７を用いて、払込装置１０が実行する払込処理について説明する。図１７は、実施例に係る払込処理の一例を示すフローチャートである。払込処理は、払込装置１０から受取装置２０への払込が行われる場合であって、払込装置１０と受取装置２０との間でチャレンジレスポンス認証が行われる場合に実行される。
【０１３２】
図１７に示すように、レスポンス生成部１３は、受取装置２０からチャレンジコードＣＣを受信すると（ステップＳ５０１）、レスポンスコードＲＣを生成し（ステップＳ５０２）、受取装置２０に送信する（ステップＳ５０３）。払込処理部１４は、受取装置２０との間のチャレンジレスポンス認証が成功したか否かを判定する（ステップＳ５０４）。払込処理部１４は、例えば受取装置２０からアクセプトコードＡＣを受信し、管理装置３０から認証情報Ｉａの登録完了通知を受信した場合に、チャレンジレスポンス認証が成功したと判定する。
【０１３３】
払込処理部１４は、アクセプトコードＡＣまたは認証情報Ｉａの登録完了通知の少なくとも一方を受信しなかった場合、チャレンジレスポンス認証に失敗したと判定して（ステップＳ５０４Ｎｏ）、払込を行わずに処理を終了する。
【０１３４】
払込処理部１４は、アクセプトコードＡＣおよび認証情報Ｉａの登録完了通知の両方を受信した場合、チャレンジレスポンス認証に成功した判定として（ステップＳ５０４Ｙｅｓ）、受取装置２０への払込Ｔｘの承認を管理装置３０に要求する（ステップＳ５０５）。
【０１３５】
図１８を用いて、管理装置３０が実行する払込承認処理について説明する。図１８は、実施例に係る払込承認処理の一例を示すフローチャートである。払込承認処理は、管理装置３０が払込装置１０から払込Ｔｘの承認要求を受信した場合に実行される。
【０１３６】
図１８に示すように、払込Ｔｘ登録部３４が払込Ｔｘ承認の要求を受信すると（ステップＳ６０１）、認証判定部３６が分散データベースに有効な認証情報Ｉａが格納されているか検索し（ステップＳ６０２）、有効な認証情報Ｉａを取得したか判定する（ステップＳ６０３）。有効な認証情報Ｉａとは、払込装置１０と受取装置２０との間のチャレンジレスポンス認証の成功を示す情報である。認証判定部３６は、有効な認証情報Ｉａを取得できなかった場合、すなわちチャレンジレスポンス認証に失敗した場合（ステップＳ６０３Ｎｏ）、払込Ｔｘの承認を却下し（ステップＳ６０４）、処理を終了する。
【０１３７】
認証判定部３６が有効な認証情報Ｉａを取得した場合、すなわちチャレンジレスポンス認証に成功した場合（ステップＳ６０３Ｙｅｓ）、公開鍵判定部３５が分散データベースに公開鍵情報Ｉｋが格納されているか検索し（ステップＳ６０５）、公開鍵情報Ｉｋを取得したか判定する（ステップＳ６０６）。公開鍵判定部３５は、公開鍵情報Ｉｋを取得できなかった場合（ステップＳ６０６Ｎｏ）、ステップＳ６０４に進み、払込Ｔｘの承認を却下して処理を終了する。
【０１３８】
公開鍵判定部３５が公開鍵情報Ｉｋを取得した場合（ステップＳ６０６Ｙｅｓ）、承認判定部３７は、払込Ｔｘに含まれる払込情報を検証し（ステップＳ６０７）、払込情報に問題がないか否かを判定する（ステップＳ６０８）。払込情報に問題がある場合（ステップＳ６０８Ｎｏ）、承認判定部３７はステップＳ６０４に進み、払込Ｔｘの承認を却下して処理を終了する。
【０１３９】
払込情報に問題がない場合（ステップＳ６０８Ｙｅｓ）、格納処理部３８は、払込Ｔｘを分散データベースに格納することで、払込Ｔｘを承認し（ステップＳ６０９）、承認完了を払込装置１０および受取装置２０に通知する（ステップＳ６１０）。
【０１４０】
なお、払込ＴｘをＰ２ＰネットワークＮにブロードキャストすることで払込Ｔｘを分散データベースに登録する場合、格納処理部３８は、ステップＳ６１０の承認完了の通知を省略することができる。
【０１４１】
また、管理装置３０は、ステップＳ６０２、Ｓ６０３とステップＳ６０５、Ｓ６０６とを入れ替えて払込認証処理を実行してもよい。あるいは、管理装置３０が、ステップＳ６０２、Ｓ６０３とステップＳ６０５、Ｓ６０６とを同時に実行するようにしてもよい。
【０１４２】
［効果の一側面］
上述してきたように、本実施形態に係る管理装置３０は、払込装置１０と受取装置２０との間で行われた払込トランザクションＴｘで使用された公開鍵Ｋａに関する公開鍵情報Ｉｋが分散データベースに格納されているか否かを判定する。管理装置３０は、公開鍵Ｋａを用いたチャレンジレスポンス認証が払込トランザクションＴｘを行った払込装置１０と受取装置２０との間で成功しているか否かを判定する。管理装置３０は、公開鍵情報Ｉｋが分散データベースに格納されており、かつチャレンジレスポンス認証が成功している場合に、公開鍵Ｋａを用いた払込トランザクションＴｘに関する情報を分散データベースに格納する。これによって、重複した秘密鍵ＫＰａおよび公開鍵Ｋａを用いた不正な払込トランザクションＴｘが分散データベースに登録されにくくなり、不正な払込トランザクションＴｘの実行を抑制することができる。
【０１４３】
また、本実施形態に係る管理装置３０は、公開鍵情報Ｉｋ、チャレンジレスポンス認証に関する認証情報Ｉａ、および公開鍵Ｋａを用いた払込トランザクションＴｘに関する情報を１つのトランザクション情報として分散データベースに格納する。これにより、例えば払込装置１０などのトランザクションシステム１に含まれるノードが、払込トランザクションＴｘを参照することで、公開鍵情報Ｉｋおよび認証情報Ｉａも参照することができる。そのため、ノードはより容易に公開鍵情報Ｉｋおよび認証情報Ｉａを参照することができ、払込トランザクションＴｘの正当性をより容易に確認することができる。
【０１４４】
また、本実施形態に係る管理装置３０は、公開鍵Ｋａが分散データベースに格納されているか否かを判定し、分散データベースに格納されていない場合に、公開鍵情報Ｉｋを分散データベースに格納する。これにより、管理装置３０は、公開鍵Ｋａを含む公開鍵情報Ｉｋの重複を避けることができ、鍵ペアの重複による不正な払込トランザクションＴｘの実行を抑制することができる。
【０１４５】
また、本実施形態に係る管理装置３０は、公開鍵Ｋａおよび公開鍵Ｋａを用いて生成された第１の情報ｄ×Ｋａを含む公開鍵情報Ｉｋを分散データベースに格納する。これにより、払込装置１０と受取装置２０とが、第１の情報ｄ×Ｋａを用いたチャレンジレスポンス認証を行うことができ、鍵ペアの重複による不正な払込トランザクションＴｘの実行を抑制することができる。
【０１４６】
また、本実施形態に係る管理装置３０は、チャレンジレスポンス認証が成功している場合に認証成功を示す情報を含む認証情報Ｉａを分散データベースに格納する。これにより、管理装置３０は、チャレンジレスポンス認証が成功している場合に、払込トランザクションＴｘを分散データベースに格納することができる。したがって、管理装置３０は、不正な払込トランザクションＴｘの実行を抑制することができる。
【０１４７】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、公開鍵判定部３５または認証判定部３６を管理装置３０の外部装置としてネットワーク経由で接続するようにしてもよい。また、公開鍵判定部３５または認証判定部３６を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の管理装置３０の機能を実現するようにしてもよい。この他、上記の実施例では、上記の払込装置１０、受取装置２０および管理装置３０がパーソナルコンピュータにウォレットがインストールされることで実装される場合を例示したが、必ずしもパーソナルコンピュータにインストールされることで実装されずともかまわず、暗号通貨の払込トランザクションＴｘ等をアウトソーシングによって提供するクラウドとして実装することとしてもかまわない。
【０１４８】
［トランザクション管理プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１９を用いて、上記の実施例と同様の機能を有する管理プログラムを実行するコンピュータの一例について説明する。なお、ここでは、管理装置３０が行う処理を、トランザクション管理プログラムをコンピュータで実行することで実現する場合を例にとって説明するが、払込装置１０および受取装置２０が行う処理も同様である。
【０１４９】
図１９は、実施例に係る管理プログラムを実行するコンピュータのハードウェア構成例を示す図である。図１９に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部３１とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【０１５０】
ＨＤＤ１７０には、図１９に示すように、上記の実施例で示した鍵Ｔｘ登録部３２、認証Ｔｘ登録部３３および払込Ｔｘ登録部３４と同様の機能を発揮するトランザクション管理プログラム１７０ａが記憶される。このトランザクション管理プログラム１７０ａは、図１１に示した鍵Ｔｘ登録部３２、認証Ｔｘ登録部３３および払込Ｔｘ登録部３４の各構成要素と同様、統合又は分離してもかまわない。
【０１５１】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０からトランザクション管理プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、トランザクション管理プログラム１７０ａは、図１９に示すように、トランザクション管理プロセス１８０ａとして機能する。このトランザクション管理プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうちトランザクション管理プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、トランザクション管理プロセス１８０ａが実行する処理の一例として、図１４に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【０１５２】
なお、上記のトランザクション管理プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にトランザクション管理プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体からトランザクション管理プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などにトランザクション管理プログラム１７０ａを記憶させておき、コンピュータ１００がこれらからトランザクション管理プログラム１７０ａを取得して実行するようにしてもよい。
【符号の説明】
【０１５３】
１    トランザクションシステム
１０    払込装置
１１    通信部
１２    鍵生成部
１３    レスポンス生成部
１４    払込処理部
２０    受取装置
２１    通信部
２２    チャレンジ生成部
２３    アクセプト判定部
２４    アクセプト生成部
３０    管理装置
３１    通信部
３２    鍵Ｔｘ登録部
３３    認証Ｔｘ登録部
３４    払込Ｔｘ登録部
３５    公開鍵判定部
３６    認証判定部
３７    承認判定部
３８    格納処理部
【図１】
2018093434.tif 000003
【図２】
2018093434.tif 000004
【図３】
2018093434.tif 000005
【図４】
2018093434.tif 000006
【図５】
2018093434.tif 000007
【図６】
2018093434.tif 000008
【図７】
2018093434.tif 000009
【図８】
2018093434.tif 000010
【図９】
2018093434.tif 000011
【図１０】
2018093434.tif 000012
【図１１】
2018093434.tif 000013
【図１２】
2018093434.tif 000014
【図１３】
2018093434.tif 000015
【図１４】
2018093434.tif 000016
【図１５】
2018093434.tif 000017
【図１６】
2018093434.tif 000018
【図１７】
2018093434.tif 000019
【図１８】
2018093434.tif 000020
【図１９】
2018093434.tif 000021