(57)【要約】      （修正有）【課題】ブロックチェーン方式において、受信者の承諾なしに取引が成立するという脆弱性を解消するための取引作成プロトコル、及び受信者アドレス作成方法を提供する。【解決手段】初めに、送信者が、受信者アドレスを記入せず、自身のアドレスと検証用の公開鍵、電子署名を添付した情報を受信者に送信する。次いで、受信者が、送付された電子署名を検証して検証可能であれば自身の秘密鍵で電子署名を除く取引に対して電子署名を作成し、秘密鍵に対応する公開鍵と電子署名で新たなアドレスを作成して受信者アドレスに設定して前記公開鍵と電子署名を送信者に返送する。【効果】ある取引で公開された受信者アドレスがそれ以降の取引でも使用できることを防ぎ、受信者の承諾なしに取引が成立するという従来プロトコルの脆弱性が解消できる。【選択図】図２
2020150428.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーン方式での取引作成プロトコルにおいて、送信者が送信者アドレスの通知と署名を受信者に送信して受信者が送信者アドレスを検証するステップと、受信者が受信者アドレスを作成・返信して送信者が受信者アドレスを受信・検証するステップと、送信者がブロック全体の署名を作成するステップと、送信者が作成したブロックをP2Pネットワークへブロードキャストするステップとを含むことを特徴とする、ブロックチェーン取引作成プロトコル。
【請求項２】
ブロックチェーン方式での取引情報に含まれる受信者アドレスを、前記受信者が、受信者の公開鍵と取引情報の名を用いて作成することを特徴とする、請求項１に記載のブロックチェーンアドレス作成方法。
【請求項３】
ブロックチェーン方式での取引作成プロトコルにおいて、送信者が送信者アドレスの通知と署名を受信者に送信して受信者が送信者アドレスを検証するステップと、受信者が受信者アドレスを入金先アドレスとして設定し、送金先アドレスとしての受信者アドレスを作成・返信して送信者が受信者アドレスを受信・検証するステップと、送信者がブロック全体の署名を作成するステップと、受信者が入金先アドレスである受信者アドレスの署名を作成するステップと、受信者が作成したブロックをP2Pネットワークへブロードキャストするステップとを含むことを特徴とする、ブロックチェーン取引作成プロトコル。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク上での仮想通貨等の送受信方式として知られているブロックチェーン取引作成のためのプロトコル、及び取引に用いられるブロックチェーンアドレスの作成方法に関し、より詳細には、受信者の承諾なしに取引が成立するというブロックチェーン方式の脆弱性（以下、受信者承諾なしの取引が成立することを「本脆弱性」と略記することがある。）を解消するための取引作成プロトコル、及び受信者アドレスの作成方法に関する。
【背景技術】
【０００２】
仮想通貨等の送受信方式として、ある時間内に行われたネットワーク参加者間の幾つかの取引を纏めて一つのブロックとし、各ブロックデータを要約したハッシュ値を引き継ぎながら、複数のブロックを時系列的に連結（チェーン）した情報を、自身もネットワーク参加者であるマイナーが承認してネットワーク参加者全員が確認＆管理する、図１にその概要を示す「ブロックチェーン方式」が知られている。（例えば、非特許文献１）
【０００３】
ブロックチェーン方式は大規模な中央管理機関を必要としない次世代の分散型管理システムとして期待されているが、発明者等は、鋭意検討の結果、現状のブロックチェーン方式には「悪意のあるネットワーク参加者によって、受信者の承諾なしの取引が成立してしまう。」ことを見出した。
すなわち、図１からも判るように、各取引には、匿名化はされているが送金先として記した受信者のアドレスが情報として含まれており、SNS情報等から受信者の個人名が特定されれば、図１に送金元として記した送信者から受信者に電子通貨、トークンを送付することで、受信者の承諾なしの取引（承諾なしの貸付、ウィルスの送付等）が成立してしまう。
【０００４】
本脆弱性はブロックチェーン方式でのプロトコル（以下、「通常プロトコル」と略記することがある。）に存在する以下の仕組みに起因して発生しており、本脆弱性の解消には通常プロトコルの一部を変更する必要がある。
１．送信者が取引を作成してネットワーク参加者にブロードキャストする。
２．受信者のアドレスが取引情報の中で公開されている。
３．ある取引で公開されたアドレスがそれ以降の取引でも使用できる。
【０００５】
一方、ブロックチェーン方式での代替可能性の低さを解消するための仕組みとしてPay-to-EndPointプロトコル（例えば、非特許文献２）が知られている。
Pay-to-EndPointプロトコルは実際の取引に先だって送信者から受信者に必要な情報を送信し、受信者がそれを確認した後に送受信者間で取引に必要な情報をやり取りし、受信者が取引をネットワークにブロードキャストする方式であり、受信者の承諾なしには取引が実行されることはない。
受信者が承諾をした後に取引が実行されるという点で本脆弱性が解消できたかに見えるが、ある取引に通常プロトコルを用いるかPay-to-EndPointプロトコルを用いるかは送信者が決定できること、通常プロトコルでの取引によって作成される取引情報とPay-to-EndPointプロトコルでの取引によって作成される取引情報との区別がつかないという点で、本脆弱性の解消にはなっていない。
すなわち、悪意の送信者が通常のプロトコルを用いて取引を成立させることができる可能性が残されており、また、マイナーがPay-to-EndPointプロトコルでの取引のみを選択して承認するということができない。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Satoshi Nakamoto,“Bitcoin:A pee-to-peer electronic cash system,”2009.（https://bitcoin.org/bitcoin.pdf）
【非特許文献２】Matthew Haywood,“Improving privacy using Pay-to-EndPoint,” 2018.  (https://blockstream.com/2018/08/08/improving-privacy-using-pay-to-endpoint/)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ブロックチェーン方式において、ある取引で公開された受信者アドレスがそれ以降の取引でも使用できることを不可能とすることで、受信者の承諾なしに取引が成立するという通常プロトコルの脆弱性を解消するための新たな取引作成プロトコル、及び受信者アドレス作成方法を提供する。
【課題を解決するための手段】
【０００８】
係る目的を達成するための本発明のブロックチェーン取引作成プロトコル、及びブロックチェーンアドレス作成方法は、初めに、送信者が、送金先アドレス（すなわち、受信者アドレス）を記入せず、自身のアドレスと検証用の公開鍵、電子署名を添付した取引情報を受信者に送信し、次いで、受信者が、送付された電子署名を検証して検証可能であれば自身の秘密鍵で電子署名を除く取引に対して電子署名を作成し、秘密鍵に対応する公開鍵と電子署名で新たなアドレス（以下、nアドレスと略記することがある。）を作成して受信者アドレスに設定して前記公開鍵と電子署名を送信者に返信し、その後、返信を受けた送信者が、受信者の電子署名を検証し、検証可能であれば取引全体の情報に対して電子署名を行ってブロードキャストするステップからなることを特徴とする。
電子署名は良く知られた「公開鍵暗号方式」、「ハッシュ値」を用いた方法等によって作成可能であり、詳細な説明は割愛する。（以下、同様）
【０００９】
係る目的を達成するための本発明のブロックチェーン取引作成プロトコル、及びブロックチェーンアドレス作成方法は、初めに、送信者が、送金先アドレス（すなわち、受信者アドレス）を記入せず、自身のアドレスと検証用の公開鍵、電子署名を添付した取引情報を受信者に送信し、
次いで、受信者が自身の入金先アドレスを設定し、自身の入金先アドレスが記入された取引に対して電子署名を行い、秘密鍵に対応する公開鍵と電子署名で新たなアドレスを作成して受信者アドレスに設定して、受信者が取引をネットワークにブロードキャストすることとしても良い。
【発明の効果】
【００１０】
本発明によれば、各取引で使用される受信者のアドレスはその都度新たに作成されて他の取引には使用することができず、本脆弱性を解消することができる。
【００１１】
さらに、Pay-to-EndPointプロトコルと組み合わせた拡張実施によって、本脆弱性と代替可能性の低さを合わせて解消した状態で、ブロックチェーン方式を運用することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】ブロックチェーン方式の一例を示す図
【図２】本発明のブロックチェーン取引作成プロトコル、及びブロックチェーンアドレス作成方法の一実施例の概要を示す図
【図３】図２のステップ１００で、送信者から受信者に送信される情報を示す図
【図４】図２のステップ２００で、受信者側で実施される検証、nアドレスの作成を示す図
【図５】図２のステップ２００で、受信者から送信者に返信される情報を示す図
【図６】図２のステップ４００で、送信者からブロードキャストされる取引情報を示す図
【図７】マイナーによって実施される検証手順の概要を示す図
【図８】図２のステップ１００の詳細な手続きを示す図
【図９】図８のステップ１１０で送信者から受信者に送信されるnアドレスに関する情報を示す図
【図１０】本発明のブロックチェーン取引作成プロトコル、及びブロックチェーンアドレス作成方法の他の実施例の概要を示す図
【図１１】図１０のステップ４１０で、受信者からブロードキャストされる取引情報を示す図
【発明を実施するための形態】
【００１３】
（実施形態１）
本発明の一実施形態を、図２から図９を用いて説明する。
図において、類似の手順、手続き等のステップについては同一の番号を附して説明を省略することがある。
【００１４】
図２は本発明の取引作成プロトコル、及びアドレス作成方法において、送信者側で設定する情報、受信者側で設定する情報、送受信者間での情報のやり取りをステップ毎に示したものであり、各ステップで設定する情報及び情報のやり取りは以下のとおりである。
ステップ１００（S100）
送信者が出金先アドレスを設定せず、自身の入金先アドレスと検証用の公開鍵、電子署名を添付したものを受信者に送信する。このとき、入金先アドレスが確かに送信者のものであることを証明するために、送信者はアドレス作成に用いた公開鍵と、出金先アドレスが設定されてない取引情報に対しての電子署名を添付する。受信者は電子署名を検証し、検証可能であればステップ２００に進む。
図３は送信者から送信される情報を示したものである。
ステップ２００（S200）
受信者は自身の秘密鍵で、電子署名を除く取引に対して電子署名を作成し、秘密鍵に対応する公開鍵と電子署名とでnアドレスを作成する。
図４は受信者側での検証、nアドレスの作成手順を模式的に示したものである。
受信者はnアドレスを出金先アドレスに設定し、nアドレス作成に使用した公開鍵と電子署名を添付して、送信者に返信する。
図５は受信者から送信者に返信される情報を示したものである。
ステップ３００（S300）
送信者は受信者からの返信を受け取って受信者の電子署名を検証し、検証可能であれば、取引全体の情報に対して電子署名をする。
ステップ４００（S400）
送信者はネットワークに作成した取引情報をブロードキャストする。
図６は送信者によってブロードキャストされる取引情報を示したものである。
【００１５】
マイナーは送信者からブロードキャストされた取引情報について、取引の出金先アドレスとして使用されているnアドレスの検証用として、公開鍵とその取引情報の電子署名が記されている場合には、取引情報のハッシュ値と電子署名を公開鍵により復号した値が等しいかを判定し、等しい時に電子署名と公開鍵からnアドレスを作成し、ブロードキャストされた取引情報の出金先アドレスのnアドレスと等しいか検証する。検証できた場合には、マイナーはナンスの探索を行い、ナンスを記して取引を承認されたブロックとして分散台帳に記載する。検証できなかった場合には、当該取引をナンス探索の対象としない。
図７はマイナーによる承認手続きの概要を模式的に示したものである。
【００１６】
さらにステップ１００の送信者による送信者アドレスの通知と署名の送信と受信者による送信者アドレスの検証について、図８、図９を用いて詳細に説明する。
ステップ１１０（S110）
送信者、受信者は入金先アドレスがnアドレスか、一般的なアドレスかの判定を行い、入金先アドレスがnアドレスでない場合にはステップ１５０に進み、図３に示したよう送信者は送信者の公開鍵と署名を受信者に送信し、受信者はその署名を検証する手続きを行う。一方、入金先アドレスがnアドレスである場合には、ステップ１２０に進む。
ステップ１２０（S120）
送信者はnアドレスが出金先アドレスとして利用された取引を表すPre Indexという情報を公開鍵の代わりに取引情報に記載する。受信者はPre Indexを辿ることにより、nアドレスに関連する公開鍵が対応する取引に記録されている取引情報をブロックチェーンより参照する。
図９は入金先アドレスがnアドレスであった場合に受信者に送られる情報を示したものである。
ステップ１３０（S130）
受信者は送信者のnアドレスが参照した取引のnアドレスであることを検証する。
ステップ１４０（S140）
受信者は、参照した取引に記載のnアドレスの公開鍵を使って、nアドレスを送信者のアドレスとする取引の電子署名を検証することで、入金先のnアドレスの持ち主が送信者であることを確認する。
ステップ１５０（S150）
図３に示したよう送信者は送信者の公開鍵と署名を受信者に送信し、受信者はその署名を検証する手続きを行う。
【００１７】
以上の説明から判るように、本発明の取引作成プロトコル、及びアドレス作成方法によれば、受信者のnアドレスは当該取引のみに使用されて有効なアドレスであり、ブロードキャストによってネットワーク参加者に公開されたとしても、悪意のネットワーク参加者がnアドレスを利用して受信者個人を特定することは不可能であり、脆弱性の原因となる「ある取引で公開されたアドレスがそれ以降の取引でも使用できる。」ことを回避することで、ブロックチェーン方式の脆弱性を解消することができる。
【００１８】
（実施形態２）
本発明の他の実施形態について、図１０、図１１を用いて説明する。
【００１９】
図１０は本発明の他の実施形態を示したものであり、図２に示したステップ２００、ステップ３００、ステップ４００に代えてステップ２１０、ステップ３１０、ステップ４１０を実施する。
ステップ２１０（S210）
受信者は自身の入金先アドレスを設定した取引情報を作成し、秘密鍵で当該取引に対して電子署名を作成し、秘密鍵に対応する公開鍵と電子署名とでnアドレスを作成して、公開鍵と電子署名とnアドレスを取引情報に追加して受信者に送信する。送信者は受信者アドレスを受信し、受信者アドレスを検証し、ステップ３１０に進む。
ステップ３１０（S310）
送信者は受信者のアドレスを含めた取引の情報に対する署名を作成し、署名を追加した取引情報を受信者に送信する。更新された署名が追加された取引情報を受け取った受信者は自身が設定した入金先アドレスの公開鍵と署名を取引情報に記載し、ステップ４１０に進む。
ステップ４１０（S410）
受信者はネットワークに作成した取引情報をブロードキャストする。
図１１は受信者からブロードキャストされる取引情報を示したものである。
【００２０】
図１０に示した実施形態によって、通常プロトコルの本脆弱性と代替可能性の低下を同時に解消することができるブロックチェーン取引作成プロトコルを実現することができる。
【産業上の利用可能性】
【００２１】
本発明によれば、受信者の承諾なしに取引が成立するという脆弱性が解消されたブロックチェーン方式を実現することができる。
【符号の説明】
【００２２】
S100：ステップ１００
S110：ステップ１１０
S120：ステップ１２０
S130：ステップ１３０
S140：ステップ１４０
S150：ステップ１５０
S200：ステップ２００
S210：ステップ２１０
S300：ステップ３００
S310：ステップ３１０
S400：ステップ４００
S410：ステップ４１０
【図１】
2020150428.tif 000003
【図２】
2020150428.tif 000004
【図３】
2020150428.tif 000005
【図４】
2020150428.tif 000006
【図５】
2020150428.tif 000007
【図６】
2020150428.tif 000008
【図７】
2020150428.tif 000009
【図８】
2020150428.tif 000010
【図９】
2020150428.tif 000011
【図１０】
2020150428.tif 000012
【図１１】
2020150428.tif 000013