(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-13
(45)【発行日】2024-05-21
(54)【発明の名称】暗号資産の回復のための分散型プロトコルを提供するコンピュータ実装システム及び方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240514BHJP
【FI】
H04L9/32 200B
H04L9/32 200Z
【外国語出願】
(21)【出願番号】P 2022155815
(22)【出願日】2022-09-29
(62)【分割の表示】P 2019565403の分割
【原出願日】2018-06-07
【審査請求日】2022-09-29
(32)【優先日】2017-06-13
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】フレッチャー,ジョン
(72)【発明者】
【氏名】バルトルッチ,シルヴィア
【審査官】金沢 史明
(56)【参考文献】
【文献】特表2017-507629(JP,A)
【文献】DIKSHIT, Pratyush and SINGH, Kunwar,Efficient Weighted Threshold ECDSA for Securing Bitcoin Wallet,Proc. of 2017 ISEA Asia Security and Privacy (ISEASP),2017年02月01日,pp. 1-10,[2022年3月22日検索], <URL: https://ieeexplore.ieee.org/abstract/document/7976994>
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
公開鍵Pkの下でユーザによってブロックチェーン上で保持される1つ以上のデジタル資産を、該1つ以上のデジタル資産にアクセスするための対応する秘密鍵Skが失われた後に回復できるようにする、コンピュータにより実施される方法であって、
前記公開鍵Pkの下で前記ブロックチェーン上で保持され、前記ユーザの前記対応する秘密鍵Skを用いてアクセス可能な前記1つ以上のデジタル資産が、前記ブロックチェーンのネットワーク上でコングレスによって共有される秘密鍵xを用いてもアクセス可能であるように、前記1つ以上のデジタル資産へのアクセスを設定することを有し、
前記コングレスは、前記ブロックチェーンのネットワーク上のユーザのグループを有し、前記コングレスの各員は、秘密鍵シェアx
iを有し、該秘密鍵シェアx
iは、少なくとも秘密鍵シェアの閾値が、前記コングレスの部分署名の結合を通じて有効な署名を生成して前記ユーザに代わって前記1つ以上のデジタル資産にアクセスするために使用されるべきである閾値署名スキームにおいて使用され、
これによって、前記秘密鍵Skが失われる場合に、前記コングレスは、前記ユーザに代わって前記閾値署名スキームを用いて前記1つ以上のデジタル資産にアクセスするように前記ユーザによって通知され得、前記ユーザは、回復パスワードRPwを供給することによって自身の身元を前記コングレスに証明する、
コンピュータにより実施される方法。
【請求項2】
前記回復パスワードRPwは、前記秘密鍵Skのエントロピーよりも低いエントロピーを有し、かつ/あるいは、
前記アクセスを設定することは、前記公開鍵Pkの下で保持される1つ以上のデジタル資産にアクセスするための前記回復パスワードを設定したいという望みを示すように前記ブロックチェーンのネットワーク上で前記コングレスへ送信されるトランザクションT1によって開始される、
請求項1に記載のコンピュータにより実施される方法。
【請求項3】
前記アクセスを設定することは、前記ブロックチェーンのネットワーク上で前記コングレスによって共有される秘密鍵xに関連したデータに対して、前記回復パスワードRPwに関連したデータをマッピングすることを有する、
請求項2に記載のコンピュータにより実施される方法。
【請求項4】
前記ブロックチェーン上で前記マッピングを保持することを更に有し、これによって、前記1つ以上のデジタル資産にアクセスするのに必要な情報は、公開されている、前記ブロックチェーン上で保持される前記マッピングと、非公開である、前記コングレスによって共有される秘密鍵との間で分けられ、かつ/あるいは、
前記マッピングは、前記ブロックチェーンのネットワーク上で前記コングレスによって共有される秘密鍵xに関連したデータと、前記回復パスワードRPwに関連したデータとを結合することを有する、
請求項3に記載のコンピュータにより実施される方法。
【請求項5】
前記回復パスワードRPwに関連したデータは、前記コングレスによって共有される秘密鍵xの上に前記回復パスワードからのマッピングを構成するように、前記コングレスによって共有される前記秘密鍵xに関連したデータと結合され、
前記マッピング自体は、前記コングレスによって共有される前記秘密鍵x又は前記回復パスワードRPwのどちらに関しても何も示さない、
請求項4に記載のコンピュータにより実施される方法。
【請求項6】
各秘密鍵シェアに関連したデータは、前記1つ以上のデジタル資産に関連した公開鍵Pkにより暗号化されるか、あるいは、前記公開鍵Pkは、ブロックヘッダのハッシュと連結される、
請求項5に記載のコンピュータにより実施される方法。
【請求項7】
各秘密鍵シェアに関連したデータは、数量g
xiを有し、該数量g
xiを含む各トランザクションは、前記コングレスの成員と関連付けられる、
請求項5又は6に記載のコンピュータにより実施される方法。
【請求項8】
前記コングレスの成員の夫々からの前記数量g
xiは、それらに一貫性があることを確認するようチェックされ、任意に、
前記数量g
xiが、それらに一貫性があることを確認するためにチェックされると、次の
【数9】
が構成され、g
xは、楕円曲線上の点であり、L
iは、ラグランジュ係数である、
請求項7に記載のコンピュータにより実施される方法。
【請求項9】
前記秘密鍵シェアに関連したデータと前記回復パスワードとの排他的又はXOR演算を実行することを更に有する、
請求項5乃至8のうちいずれか一項に記載のコンピュータにより実施される方法。
【請求項10】
前記マッピングのデータは、秘密鍵Skを用いて署名され、アカウントが存在するプルーフオブワークブロックチェーンにマイニングされる、
請求項5乃至9のうちいずれか一項に記載のコンピュータにより実施される方法。
【請求項11】
請求項1乃至10のうちいずれか一項に記載のコンピュータにより実施される方法を用いて
アクセス設定されているブロックチェーン上で1つ以上のデジタル資産を回復する、コンピュータにより実施される方法であって、
前記1つ以上のデジタル資産を回復したいという望みを示すトランザクションを前記コングレスが受け取るときに、前記閾値署名スキームを用いて前記1つ以上のデジタル資産にアクセスすることを有する、
コンピュータにより実施される方法。
【請求項12】
前記1つ以上のデジタル資産を回復したいという望みを示すように前記コングレスへ送信される前記トランザクションは、回復公開鍵を更に特定し、
前記1つ以上のデジタル資産にアクセスした後に、該1つ以上のデジタル資産は、前記回復公開鍵へ移される、
請求項11に記載のコンピュータにより実施される方法。
【請求項13】
前記1つ以上のデジタル資産を回復したいという望みを示す前記トランザクションを受け取った後に、前記コングレスは、該コングレスが前記1つ以上のデジタル資産の所有者からの拒否トランザクションについて前記ブロックチェーンを監視するチャレンジ期間を開始し、これによって、有効な拒否トランザクションが観測される場合に、前記1つ以上のデジタル資産の回復は中止され、如何なる回復デポジットも没収される、
請求項11又は12に記載のコンピュータにより実施される方法。
【請求項14】
前記チャレンジ期間後に、前記1つ以上のデジタル資産の回復を進めるために第2のトランザクションが要求され、任意に、
前記コングレスへ送信される前記第2のトランザクションは、前記回復パスワードRPwに対応するデータを有する、
請求項13に記載のコンピュータにより実施される方法。
【請求項15】
前記回復パスワードに対応するデータを検証することによって回復は進み、正確と検証される場合には、前記1つ以上のデジタル資産は回復され、不正確な場合には、前記1つ以上のデジタル資産の回復は中止され、如何なる回復デポジットも没収され、任意に、
前記コングレスは、前記回復パスワードに対応するデータを検証するために一時的なプルーフオブステークブロックチェーンを開始する、
請求項14に記載のコンピュータにより実施される方法。
【請求項16】
実行される場合に、プロセッサに、請求項1乃至15のうちいずれか一項に記載の方法を実行させるコンピュータ実行可能命令を有するコンピュータ可読記憶媒体。
【請求項17】
インターフェイスデバイスと、
前記インターフェイスデバイスへ結合されるプロセッサと、
前記プロセッサへ結合され、コンピュータ実行可能命令が記憶されているメモリと
を有し、
前記コンピュータ実行可能命令は、実行されるときに、前記プロセッサに、請求項1乃至15のうちいずれか一項に記載の方法を実行させる、
電子デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、概して、秘密鍵が喪失される場合の暗号資産の回復のための分散型プロトコルに関係がある。本発明は、ビットコインブロックチェーンとともに使用することに特に適しているが、これに限られない。
【背景技術】
【0002】
本文書中、我々は、あらゆる形式の電子的な、コンピュータに基づく分散台帳(distributed ledgers)を含むよう語「ブロックチェーン」を使用する。それらは、合意に基づくブロックチェーン及びトランザクションチェーン技術、許可(permissioned)及び無許可(un-permissioned)台帳、共有台帳、並びにこれらの変形を含む。ブロックチェーン技術の最も広く知られた応用は、他のブロックチェーン実施が提案及び開発されているとはいえ、ビットコイン台帳である。ビットコインが、便宜上、説明のために本明細書で言及され得るが、本発明は、ビットコインブロックチェーンとともに使用することに限られず、代替のブロックチェーン実施及びプロトコルが本発明の適用範囲内にあることが留意されるべきである。
【0003】
ブロックチェーンは、合意に基づく電子台帳であり、これは、トランザクション及び他の情報から成るブロックで構成された、コンピュータに基づく非中央集権型の分散システムとして実装される。ビットコインの場合に、各トランザクションは、ブロックチェーンシステム内の参加者間のデジタル資産の制御の移行を符号化するデータ構造であり、少なくとも1つの入力及び少なくとも1つの出力を含む。ブロックチェーンにその始まり以来書き込まれてきた全てのトランザクションの永久的且つ不変な記録を構成するようブロックどうしが連鎖するように、各ブロックは前のブロックのハッシュを含む。トランザクションは、それらの入力及び出力に埋め込まれたスクリプトとして知られている小さいプログラムを含む。スクリプトは、如何にして誰によってトランザクションの出力がアクセスされ得るかを特定する。ビットコインプラットフォームで、それらのスクリプトは、スタックに基づくスクリプト言語を用いて書かれている。
【0004】
トランザクションがブロックチェーンに書き込まれるために、それは“妥当性確認”(validated)されなければならない。いくつかのネットワークノードは、マイナー(miners)として動作し、各トランザクションが有効であることを確かめる作業を実行し、無効なトランザクションはネットワークから拒絶される。例えば、ノードにインストールされたソフトウェアクライアントは、未使用トランザクション出力(unspent transaction)(UTXO)を参照するトランザクションに対して、この妥当性確認作業を実行する。妥当性確認は、そのlocking及びunlockingスクリプトを実行することによって実行されてよい。locking及びunlockingスクリプトの実行がTRUEになる場合に、且つ、特定の他の条件が満足される場合に、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれ得る。よって、トランザクションがブロックチェーンに書き込まれるために、それは、i)トランザクションを受け取る第1ノードによって妥当性確認され、トランザクションが妥当性確認される場合に、ノードはそれをネットワーク内の他のノードに中継し、ii)マイナーによって構築された新しいブロックに加えられ、iii)マイニング、すなわち、過去のトランザクションの公開台帳に付加、されなければならない。トランザクションは、トランザクションを実際に不可逆にするように十分な数のブロックがブロックチェーンに加えられるときに、確認済みと見なされる。
【0005】
ブロックチェーン技術が暗号通貨実施の使用のために最も広く知られているが、デジタル起業家は、新しいシステムを実装するために、ビットコインが基づく暗号化によるセキュリティシステムと、ブロックチェーン上で保持され得るデータとの両方の使用を探求し始めている。暗号資産の分野に制限されない自動化されたタスク及びプロセスのためにブロックチェーンが使用される場合に、それは大いに有利である。そのような解決法は、ブロックチェーンの利益(例えば、イベントの永久的な耐タンパー性の記録、分散処理など)を活用しながら、それらの用途を広げることができる。
【0006】
研究の一分野は、“スマートコントラクト”の実施のためのブロックチェーンの使用である。それらは、機械が解読できる契約又は同意の条項の実行を自動化するよう設計されたコンピュータプログラムである。自然言語で書かれている従来の契約とは異なり、スマートコントラクトは、結果を生み出すために入力を処理することができるルールを有する機械実行可能プログラムであり、次いでそれらの結果に応じて、実行されるべき動作を引き起こすことができる。
【0007】
ブロックチェーンに関する他の関心分野は、ブロックチェーンにより現実世界のエンティティを表現及び移動するための‘トークン’(又は‘カラードコイン’)の使用である。潜在的に機密又は秘密の項目は、認識できる意味又は値を持たないトークンによって表現され得る。よって、トークンは、現実世界の項目がブロックチェーンから参照されることを可能にする識別子としての機能を果たす。
【0008】
以下の文献には、ブロックチェーン技術のための閾値署名スキーム及びバックアップ技法に関する背景情報が開示されている。
【0009】
Pratyush Dikshit及びKunwar Singh(“Efficient weighted threshold ECDSA for securing bitcoin wallet”,ISEA Asia Security and Privacy,2017)(非特許文献1)には、ビットコインウォレットのための閾値署名スキーム、より具体的には、参加者の異なるグループが、閾値署名スキームのための閾値に到達するために異なる数の他の参加者を必要とするところの一種の閾値署名スキームが開示されている。
【0010】
Goldfeder等(“Securing Bitcoin wallets via a new DSA/ECDSA threshold signature scheme”,8 March 2015)(非特許文献2)にも、参加者のグループの閾数の成員が秘密鍵共有スキームを用いることによってのみデジタル資産がアクセス可能である閾値署名スキームが記載されている。
【0011】
bitcointalkにおけるユーザ“etheipi”による2つの投稿(2013年1月29日、トピック139625及び2013年3月9日、トピック149820)(非特許文献3)は、ウォレットのハード紙によるバックアップコピーが多数の異なるフラグメントに分割可能であり、それにより、ユーザは、そうする必要がある場合に、閾数のハードコピーバックアップフラグメントを用いてウォレットを再構成することができるスキームに関係がある。
【先行技術文献】
【非特許文献】
【0012】
【文献】Pratyush Dikshit and Kunwar Singh,“Efficient weighted threshold ECDSA for securing bitcoin wallet”,ISEA Asia Security and Privacy,2017
【文献】Goldfeder et al.,“Securing Bitcoin wallets via a new DSA/ECDSA threshold signature scheme”,8 March 2015
【文献】bitcointalkにおけるユーザ“etheipi”による2つの投稿(2013年1月29日、トピック139625及び2013年3月9日、トピック149820)
【発明の概要】
【0013】
秘密鍵が喪失される場合の暗号資産の回復は、暗号通貨における有名な未解決問題である。これが達成され得る安全且つ有効な分散型メカニズムの欠如は、広範囲に及ぶ採用に対する最重要の障壁の1つであると一般的に認識されている。
【0014】
本明細書は、デジタル資産にアクセスするための対応する秘密鍵SKが喪失された後に、公開鍵PKの下でユーザによってブロックチェーン上で保持されるデジタル資産の回復を可能にする方法に関係がある。方法は、公開鍵PKの下でブロックチェーン上で保持され、ユーザの対応する秘密鍵SKを用いてアクセス可能なデジタル資産に対するアクセスをセットして、そのデジタル資産が、閾値署名スキームを用いてブロックチェーンネットワーク上でユーザのコングレスによって共有される秘密鍵を用いてもアクセス可能であるようにすることを有する。ユーザが自身の秘密鍵SKを喪失するとき、彼らは、コングレスに、閾値署名スキームを用いてユーザに代わってデジタル資産にアクセスするように通知することができ、ユーザは、回復パスワードRPWを供給することによって自身の身元をコングレスに証明する。
【0015】
本明細書で記載される一態様によれば、1以上のデジタル資産にアクセスするための対応する秘密鍵Skが喪失された後に、公開鍵Pkの下でユーザによってブロックチェーン上で保持される前記1以上のデジタル資産の回復を可能にする、コンピュータにより実施される方法であって、
前記公開鍵Pkの下で前記ブロックチェーン上で保持され、前記ユーザの前記対応する秘密鍵Skを用いてアクセス可能な前記1以上のデジタル資産に対するアクセスをセットして、該1以上のデジタル資産が、前記ブロックチェーン上でコングレスによって共有される秘密鍵xを用いてもアクセス可能であるようにすることを有し、
前記コングレスは、前記ブロックチェーン上のユーザのグループを有し、前記コングレスの各員は、秘密鍵シェアxiを有し、該秘密鍵シェアxiは、少なくとも秘密鍵シェアの閾値が、前記コングレスの部分署名の結合を通じて有効な署名を生成して前記ユーザに代わって前記1以上のデジタル資産にアクセスするために使用されるべきである閾値署名スキームにおいて使用され、
これによって、前記秘密鍵Skが喪失される場合に、前記コングレスは、前記ユーザに代わって前記閾値署名スキームを用いて前記1以上のデジタル資産にアクセスするように前記ユーザによって通知され得、前記ユーザは、回復パスワードRPwを供給することによって自身の身元を前記コングレスに証明する、
前記コンピュータにより実施される方法が提供される。
【0016】
上記の方法は、資産を回復するためにコングレス(congress)の形で閾値署名スキームを使用する。この方法とより標準的な多重署名(multi-signature)法との間の違いは、アカウントが、一人のユーザによって自身の秘密鍵を用いてアクセス可能であるように設定され、ユーザが自身の秘密鍵を喪失して自身の資産自体にアクセスすることができない場合には、ユーザによる要求時にコングレスがその共有秘密鍵システムを使用することによってのみアクセスされる点である。そのようなものとして、ユーザが自身の秘密鍵を喪失する場合を除いて、ユーザが自身の資産にアクセスするために、通常、複数の署名は必要とされない。そのような状況で、次いで、コングレスは、ユーザに代わってアカウントにアクセスするように通知され得る。
【0017】
そうするように要求されるときに且つ正確な回復パスワードの入力時にユーザに代わって資産にアクセスするように合意が必要とされるという点で、このシステムには一定水準の安全性が組み込まれている。すなわち、資産がアクセスされ得る前に、閾数の成員がユーザ要求の妥当性を確認することができる。そのようなものとして、システムは、単一署名システムの使用の容易さと、多重署名システムの安全性とを組み合わせる。コングレスは、そうするための決定に対する合意が順守される場合に、部分署名を生成及び出力するためにのみ秘密鍵シェアを使用するように、構成され得る。
【0018】
攻撃に対するシステムの堅牢性を高めるために、更なる水準の安全性及びインセンティブが与えられ得る。例えば、回復パスワードが設定され得、回復パスワードは、資産にアクセスするためのコングレスへのユーザ要求の妥当性確認プロトコルの部分として使用される。デジタル資産へのアクセスを設定するプロセスは、ブロックチェーン上でコングレスへ送信されるトランザクションT1によって、開始され得る。トランザクションT1は、公開鍵Pkの下で保持される1以上のデジタル資産にアクセスするための回復パスワードを設定したいという望みを示す。1以上のデジタル資産を回復しようとする試みがなされるときに提供される必要がある回復デポジットがセットされ得る。これに関連して、回復デポジットデータが、トランザクションT1において、例えば、トランザクションT1のメタデータにおいて、供給され得る。すなわち、回復デポジットのステイトメントは、メタデータとしてT1に含まれ得る。回復デポジットは、回復が成功する場合には(コングレスの製品に支払われる回復手数料を差し引いて)回収され、回復が不成功である場合には失われる。よって、回復デポジットをセットすると、攻撃者が試行に失敗するたびに回復デポジットを失うため、アカウントへのアクセスを複数回試みることを思いとどまらせることができる。
【0019】
デジタル資産へのアクセスを設定するプロセスは、ブロックチェーンネットワーク上でコングレスによって共有される秘密鍵xに関連するデータに対して、回復パスワードRPwに関連するデータをマッピングすることを更に含むことができる。マッピングは、ブロックチェーンネットワーク上でコングレスによって共有される秘密鍵xに関連するデータと、回復パスワードRPwに関連するデータとを結合することを有することができる。例えば、回復パスワードRPwに関連するデータは、コングレスによって共有される秘密鍵xの上に回復パスワードからのマッピングを構成するように、コングレスによって共有される秘密鍵xに関連するデータと結合され得、マッピング自体は、コングレスによって共有される秘密鍵x又は回復パスワードRPwのどちらに関しても何も示さない。次いで、マッピングは、ブロックチェーン上で保持され得、これによって、1以上のデジタル資産にアクセスするのに必要な情報は、公開されている、ブロックチェーン上で保持されるマッピングと、非公開である、コングレスによって共有される秘密鍵との間で分けられる。更に、ブロックチェーン上でセーブされるマッピングは、マッピング自体が、コングレスによって共有される秘密鍵x又は回復パスワードRPwのどちらに関しても何も示さないように、構成される。
【0020】
そのような結合、マッピング、及び/又は回復デポジットのプロシージャを使用することは、ユーザがパスワードを供給することによって自身の身元をコングレスに証明することができる回復プロセスを可能にする。このパスワードは、任意の低エントロピーであり(よって、容易に記憶可能である。)、一方、プロトコルは安全(特に、回復パスワードに対するブルートフォース(brute-force)攻撃から安全)なままである。例えば、回復パスワードRPwは、秘密鍵Skのエントロピーよりも低いエントロピーを有することができ、システムが安全である間は(例えば、回復デポジットが適切に修正される限りは)6、5、4、3、又は2桁のピンで十分である。
【0021】
回復パスワードから既存の秘密量(コングレス秘密鍵)への上記のマッピングを達成するための方法の例は、次のステップのうちの1以上を含むことができる:
1以上のデジタル資産に関連する公開鍵Pkにより、各秘密鍵シェアに関連するデータを暗号化すること、又は公開鍵Pkをブロックヘッダのハッシュと連結すること;
ここで、各秘密鍵シェアに関連するデータは、数量g
xiを有し、数量g
xiを含む各トランザクションは、コングレスの成員と関連付けられ;
コングレスの成員の夫々からの数量g
xiに一貫性があることを確認するようチェックすること;
数量g
xiが、それらに一貫性があることを確認するためにチェックされると、以下
【数1】
が構成され、g
xは、楕円曲線上の点であり、L
iは、ラグランジュ係数であり;
秘密鍵シェアに関連するデータと回復パスワードとの排他的論理和(XOR)演算を実行して、マッピングを生成すること。
【0022】
マッピングを生成した後、マッピングデータは、秘密鍵Skを用いて署名され、アカウントが存在するプルーフオブワーク(proof-of-work)ブロックチェーン上にマイニングされ得る。例えば、マッピングデータは、アカウントの公開鍵Pkを参照するトランザクションT2によりプルーフオブワークブロックチェーン上にマイニングされ得る。
【0023】
上記のプロシージャは、回復パスワードを設定するために使用され得る。上述の設定へのアクセスを有するブロックチェーン上で1以上のデジタル資産を回復するための、コンピュータにより実施される方法が、次いで、提供される。方法は、ユーザが資産にアクセスするための自身の秘密鍵を喪失したときに、1以上のデジタル資産を回復したいというユーザの望みを示すトランザクションをコングレスが受け取る場合に、閾値署名スキームを用いて1以上のデジタル資産にアクセスすることを有する。秘密鍵Skの使用に比べて資産の移動を開始することは費用のかかる方法であるので、この代替的な方法はユーザが自身の秘密鍵を喪失した場合にのみ使用されると考えられる点に留意されたい。
【0024】
1以上のデジタル資産を回復したいという望みを示すようにコングレスへ送信されるトランザクションは、回復公開鍵を更に特定することができる。従って、1以上のデジタル資産にアクセスした後に、該1以上のデジタル資産は、回復公開鍵へ移され得る。更に、1以上のデジタル資産を回復したいという望みを示すようにコングレスへ送信されるトランザクションは、回復デポジットを更に含むことができる。上述されたように、回復デポジットは、回復が成功する場合には(コングレスの成員に支払われる回復手数料を差し引いて)回収され得るが、回復が不成功である場合には失われる。よって、回復デポジットをセットすると、攻撃者がアカウントへのアクセスを複数回試みることを思いとどまらせることができる。例えば、1以上のデジタル資産を回復したいという望みを示すトランザクションを受け取った後、コングレスは、該コングレスが1以上のデジタル資産の所有者からの拒否(veto)トランザクションについてブロックチェーンを監視するチャレンジ期間を開始することができる。有効な拒否トランザクションが観測される場合に(すなわち、Skによって署名された拒否トランザクション)、1以上のデジタル資産の回復は中止され、如何なる回復デポジットも没収される。有効な拒否トランザクションが観測されない場合には、回復パスワードに対応するデータ、秘密鍵シェアに関連するデータ、及びマッピングデータが全て一致することを検証することによって、回復は続行可能である。一致する場合に、アカウント内の1以上のデジタル資産は、コングレスによって、それらの閾鍵共有システムを用いて回復され得る。不一致の場合には、アカウント内の1以上のデジタル資産の回復は中止され、如何なる回復デポジットも没収される。
【0025】
1つの構成において、チャレンジ期間後に、1以上のデジタル資産の回復を進めるために第2のトランザクションが要求される。資産を回復するためにコングレスへ送信される第2のトランザクションは、回復パスワードRPwに対応するデータを有することができる。回復パスワードに対応するデータを検証することによって、回復は続行可能であり、正確と検証される場合には、1以上のデジタル資産は回復され、不正確な場合には、1以上のデジタル資産の回復は中止され、如何なる回復デポジットも没収される。コングレスは、回復パスワードに対応するデータを検証するために一時的なプルーフオブステーク(proof-of-stake)ブロックチェーン(例えば、後述されるいわゆるゴーストチェーン)を開始することができる。
【0026】
本明細書で記載されるコンピュータにより実施される方法は、コンピュータ実行可能命令を有し、該コンピュータ実行可能命令が、実行されるときに、プロセッサに、本明細書で記載される方法を実行させるコンピュータ可読記憶媒体を提供することによって、実施され得る。更に、インターフェイスデバイスと、該インターフェイスデバイスへ結合されるプロセッサと、該プロセッサへ結合され、コンピュータ実行可能命令が記憶されているメモリとを有し、前記コンピュータ実行可能命令が、実行されるときに、前記プロセッサに、本明細書で記載される方法を実行させる、電子デバイスが提供され得る。
【0027】
本明細書で記載される発明は、以下で提示される背景セクションで論じられる先行技術とは異なる。
【0028】
Pratyush Dikshit及びKunwar Singh(“Efficient weighted threshold ECDSA for securing bitcoin wallet”,ISEA Asia Security and Privacy,2017)(非特許文献1)には、ビットコインウォレットのための閾値署名スキーム、より具体的には、参加者の異なるグループが、閾値署名スキームのための閾値に到達するために異なる数の他の参加者を必要とするところの一種の閾値署名スキームが開示されている。公開鍵PKの下で1人のユーザに対してブロックチェーン上で保持され、1人のユーザの対応する秘密鍵SKを用いてアクセス可能なデジタル資産へのアクセスをセットして、秘密鍵SKが喪失される場合にのみ、ユーザが、コングレスに、閾値署名スキームを用いて自身に代わって1以上のデジタル資産にアクセスするように通知することができるようにし、ユーザは回復パスワードRPWを供給することによって自身の身元の証明をコングレスに提供することの開示又は示唆はない。
【0029】
Goldfeder等(“Securing Bitcoin wallets via a new DSA/ECDSA threshold signature scheme”,8 March 2015)(非特許文献2)にも、参加者のグループの閾数の成員が秘密鍵共有スキームを用いることによってのみデジタル資産がアクセス可能である閾値署名スキームが記載されている。先と同じく、関連する公開鍵及び秘密鍵を単一アクセスアカウントに提供し、閾値署名スキームは、秘密鍵が喪失される場合にのみ用いられ、コングレスは、ユーザによって、ユーザに代わって閾値署名スキームを用いてデジタル資産にアクセスするように通知され、ユーザは、回復パスワードRPWを供給することによって自身の身元をコングレスに証明することの開示又は示唆はない。
【0030】
上記の文献は両方とも、閾値署名スキームが資産にアクセスするために常に使用され、ブロックチェーンネットワーク上の閾数のユーザに署名を要求する閾値署名スキームを対象とする。そのような閾値署名スキームは、当該技術で知られており、安全性を高め且つ1人のユーザがデジタル資産にアクセスして移動することを防ぐのに有用である。また、そのようなスキームは、ユーザのグループの一員が自身の秘密鍵を喪失する場合に、デジタル資産が依然として閾数の残りのユーザによってアクセス可能であるという付加的な効果を奏する。しかし、そのような構成には、多数のユーザが常にデジタル資産にアクセスする必要があるため、このシステムは、如何なる他のユーザも必要とせずにデジタル資産にアクセスすることができるが、ユーザが秘密鍵を喪失する場合に自身のデジタル資産にアクセスすることができる手段を依然として必要とするシステムを設定したいと望む1人のユーザにとっては不都合であるという欠点がある。本発明は、個人のユーザの秘密鍵が失われる場合に、彼らの身元を回復パスワードによって検証しながら資産を回復する手段として、閾値署名スキームを利用することによって、秘密鍵喪失のこの問題に対処する。
【0031】
bitcointalkにおけるユーザ“etheipi”による2つの投稿(2013年1月29日、トピック139625及び2013年3月9日、トピック149820)(非特許文献3)は、ウォレットのハード紙によるバックアップコピーが多数の異なるフラグメントに分割可能であり、それにより、ユーザは、そうする必要がある場合に、閾数のハードコピーバックアップフラグメントを用いてウォレットを再構成することができるスキームに関係がある。これらの開示のどれも、ブロックチェーンネットワーク上のユーザのグループを有し、各員が閾値署名スキームで使用される鍵シェアを有しているコングレスの使用と無関係である。ユーザが自身の秘密鍵を喪失する場合に、ユーザは、回復パスワードRPWを供給することによって自身の身元をコングレスに証明するとともに、ユーザに代わってデジタル資産にアクセスするために閾値署名スキームを用いるようにコングレスの成員に通知することができるという開示又は示唆はない。それら2つの投稿は、1人のユーザが自身のデジタル資産へのアクセスを失うことの問題に関するものである。バックアップシステムを提供する先行技術の方法は、秘密デジタル鍵の印刷用紙コピーの形をとる。しかし、そのような用紙コピーが盗まれる場合に、これは安全上のリスクを提起する。それらの投稿で記載されている方法は、バックアップコピーが、ユーザによって、ユーザによって再構成され得る複数のフラグメントに分割されるところの解決法を提供する。これは、本明細書で提供されるのとは異なる解決法である。本明細書の解決法は、代わりに、ブロックチェーンネットワーク上の複数のユーザを関与させる閾値署名スキームを使用する。
【0032】
本発明のこれら及び他の態様は、本明細書で記載される実施形態を参照して説明され、それらから明らかになるだろう。本発明の実施形態は、これより、単なる一例として、添付の図面を参照して記載される。
【図面の簡単な説明】
【0033】
【
図1】パスワード設定プロシージャのためのスキームを示す。
【
図2】パスワード回復プロトコルのためのスキームを示す。
【発明を実施するための形態】
【0034】
[概要]
2700よりも多いビットコインが、ハードドライブのクラッシュ又は秘密鍵の喪失により事実上失われていると推定されている[https://www.cryptocoinsnews.com/thousands-bitcoins-lost-time/]。クレデンシャルが失われると、数十億の価値があるかもしれないコインが、使用できないウォレットにロックされる。
【0035】
ウォレット回復のための覚えやすいパスワードの使用は、行われることが実行可能且つより有効な手段であると思われた。いわゆるブレインウォレット(brainwallets)は、秘密鍵が失われる場合にファンドを回復するために、ユーザの‘脳’内に記憶され得る簡単なパスワードを使用する。それでもなお、ハッカー及び研究者は、パスワードを回復し且つファンドを盗むためのブルートフォース攻撃が比較的容易に行われることを証明した。
【0036】
最適化が困難な(difficult-to-optimise)ハッシュ関数を複数回使用して簡単なパスワードから秘密鍵を取得するキーストレッチング(key stretching)技術は、攻撃をより計算コストの高いものとするのに役立つが、将来にわたる安全性を保証するものではない。実際、計算能力が向上した新しいハードウェアが作られる可能性があるので、コスト及び実現可能性の観点から計算的な課題はより手頃なものとなる。更には、ストレッチングされた鍵の安全性は、アカウント内のファンドの価値(コンピュータ時間が法定価格であると仮定した場合)が高く評価されることで低下する。これは、解読された場合のペイオフがそれを解読するのに必要な投資の何倍にもなるからである。
【0037】
本明細書は、秘密鍵が失われる場合にファンドを回復するための最初の完全には信頼できない解決法を提示し、ブルートフォースハッキング攻撃に対して一定水準の安全性を維持する。「通常の手段」により自身のファンドの移動を許可する能力を失って(より正確には、自身の秘密鍵の制御を失って)おり、それらのファンドを回復したいとの望むユーザの特定の場合に関心が持たれている。我々の解決法は、コングレス(Congresses)及びゴーストチェーン(Ghost Chains)プロトコルを利用して、キーストレッチングの計算コストを、合意により課された(consensus-imposed)コストにより有効に置き換える。これは、ファンドを回復しようとする試みが不成功であるときにのみ課される。
【0038】
暗号通貨操作の安全性及び機能は、安全な秘密鍵の保管及び保護に大いに依存する。主な問題は、ユーザ秘密鍵の盗難又は紛失である。失われたパスワード、秘密鍵、又はファンドを回復できないことは、暗号通貨の広範囲に及ぶ採用に対する重要な障壁として言及されている[Extance, A. (2015). Bitcoin and beyond. Nature, 526(7571), 21. http://www.nature.com/polopoly_fs/1.18447!/menu/main/topColumns/topLeftColumn/pdf/526021a.pdf]。実際に、ビットコイン秘密鍵を失うことは、オンラインバンキングのパスワードの喪失と一見似ているように見える。しかし、少なくとも2つの重要な違いがある:(i)バンキングシステムでは、トランザクションは追跡可能であり、元に戻すことができ、盗まれたファンドは、不正なトランザクションを破棄することによって回復される可能性がある[Eskandari, S., Barrera, D., Stobert, E., & Clark, J. (2015, February). A first look at the usability of bitcoin key management. In Workshop on Usable Security (USEC). https://users.encs.concordia.ca/~clark/papers/2015_usec.pdf]が、これは、ビットコインのような暗号資産の場合には、トランザクションが不可逆であって、不正行為の場合に仲裁する中央当局が存在しないので、明らかに不可能である;(ii)バンキングパスワードは、ユーザが自身の身元を銀号に証明することと引き換えに回復可能である。本明細書は、暗号化システム(特に、合意に基づく分散台帳)のための(ii)と同等の解決法を提供する。
【0039】
それらの懸案事項に対処するために、種々の解決法が提案されてきた:ユーザは、キー管理サービスを提供するウェブウォレットのような様々なタイプのウォレットの中から選択すること、又はコールドストレージを用いて自身の秘密鍵を保管すること、すなわち、インターネットからアクセスすることができない場所に自身の鍵を置くことができる。しかし、これらのサービスは、プロバイダに信頼が置かれることを要する[Antonopoulos, A. M. (2014). Mastering Bitcoin: unlocking digital cryptocurrencies. O'Reilly Media, Inc.; http://www.coindesk.com/information/how-to-store-your-bitcoins/]。
【0040】
パスワードを失う場合に、ウォレット回復サービスのようなパスワード回復サービスを提供するオンラインのサービス[http://www.coindesk.com/meet-man-will-hack-long-lost-bitcoin-wallet-money/]は、一般的に、ユーザによって提供される情報に応じて、約30%と成功率が低く、このサービスに対して課される手数料は、回復が成功した場合に、ウォレットの価値の最大20%である。そのようなサービスは、アカウント保有者が自身の秘密鍵の暗号化を保ちながら、それを解読するに必要なパスワードを喪失した場合にのみ有効であることができる点に留意されたい。
【0041】
特に興味深いのは、ブレインウォレットのアイディアであり[https://blog.ethereum.org/2014/10/23/information-theoretic-account-secure-brainwallets/]、これによって、秘密鍵は、ユーザによって直接作られた十分に長いパスワード又はパスフレーズをハッシングすることによって、生成される[Franco, P. (2014). Understanding Bitcoin: Cryptography, engineering and economics. John Wiley & Sons]。この解決法は、パスワードがウォレット自体に保管される必要がなく、それはユーザの脳内に保持され得るということで、キー保管問題を解決しようと試みる。https://brainwallet.io/, https://paper.dash.org/ etc.のようなオンラインプラットフォームは、パスワード/パスフレーズ及び何らかのソルト、すなわち、一方向ハッシュ関数への追加入力として使用されるランダムなデータを前提として、決定論的な暗号資産アドレスを容易に生成することができる。
【0042】
ブレインウォレットのパスワードは、同時に安全且つ記憶可能でなければならない:安全性は、パスワードを解読するために攻撃者によって必要とされる時間に基づき、一方、記憶可能性は、思い出されなければならない情報の量に依存する。明らかに、2つの側面は逆の相関関係にあり、選択されるパスワードエントロピーに依存する[Franco, P. (2014). Understanding Bitcoin: Cryptography, engineering and economics. John Wiley & Sons]。
【0043】
そのようなタイプのウォレットに伴う主な問題の1つは、間違いなく、パスワードを解読しようと試みる高いインセンティブであり、これにより、攻撃者は、ウォレット自体にロックされたファンドに完全にアクセスできるようになる。攻撃者は、ブルートフォース解読アルゴリズムを使用して、多くのパスワードを試し、生成されたアドレスが存在し、ファンドを含むかどうかをチェックする。現在の技術によれば、チップは毎秒236回の試行を実行することができる。[Courtois, N., Song, G., & Castellucci, R. (2016). Speed Optimizations in Bitcoin Key Recovery Attacks. IACR Cryptology ePrint Archive, 2016, 103. https://eprint.iacr.org/2016/103.pdf;
https://github.com/ryancdotorg/brainflayer]には、複雑なパスワードが用いられる場合でさえブレインウォレットは安全ではなく、脆弱なキーのブロックチェーンを走査する新しい高速アルゴリズムが利用可能になっていることが示されている。提示された攻撃は、隠すレッドで毎秒16,250個のパスワードを見つけることに成功し、18,000個を超えるブレインウォレットアドレスを解読した。更に、上述されたように、ブレインウォレットの解読は、ハードウェアが改善するにつれて時間とともに容易になるとともに、暗号資産の価値の上昇(これは、これまでの全ての主要な暗号資産の場合に、極めて重要であった。)を前提として、より利益になる。
【0044】
更に、近年、数百万の現実世界の漏洩パスワードがハッカーに利用可能になっており、ハッカーは、それらを使用してユーザの癖を再構成し、より高速なアルゴリズムを設計することができる[https://arstechnica.com/security/2012/08/passwords-under-assault/]。
【0045】
起こり得る更なる脆弱性は、同じパスワードから取得されたブレインウォレットアドレスがトランザクションスクリプトの部分としてブロックチェーン上で保管されているときに現れる可能性がある。複数のアドレスが同じシードから取得されるときにパスワードを推測することは、容易になる。
【0046】
パスワードのエントロピーを依然として低く保ちながら、システムをリバースエンジニアリングする機会を減らすために、1つの選択肢は、堅固な鍵導出関数を使用することにある。このプロセスは、キーストレッチングとも呼ばれ、SHA256、SHA1、などのような、最適化が困難なハッシュ関数を連続して複数回(一般的に約1000回)繰り返し適用することに基づく[https://en.wikipedia.org/wiki/Key_stretching]。このようにして、個々のパスワードをチェックすることには、より時間がかかり、且つ、よりコストがかかるので、攻撃者の作業負荷は増大する。しかし、これらの解決法は、それらが将来においても有効でないということで、不十分であるように思われる。
【0047】
パーソナルコンピュータが毎秒約6500のSHA-1ハッシュを実行することができるとすれば、キーストレッチング解決法は直ちに安全でなくなることが容易に分かる。キーストレッチング問題は、6500ラウンドのハッシュを使用し、約1秒間ユーザを遅延させる可能性がある。攻撃者の視点から、如何なる通常のパスワード試験も、通常、1ハッシュ演算を必要とするので、キーストレッチングを使用することは、攻撃者の作業負荷を216(通常のパスワードに加えられる余分の16ビットのエントロピーに等しい。)倍増やす。ムーアの法則によれば、コンピュータ性能は、速度の関しては、1.5年ごとに2倍になる。すなわち、1.5年ごとにもう1ビットのキーストレッチが容易に決定されるようになる可能性がある。一定水準の安全性を維持するために、キーストレッチングラウンドは、1.5年ごとに倍にされるべきであるが、これは、(i)ユーザがキーストレッチングを実行するためのより高い計算コストと、(ii)キーストレッチングの設計者がこの側面を考慮に入れ、システムの寿命を決定すべきであることとを必要とすることになる。ブロックチェーンマイナーも、‘それらがマイニングしている間に’キーストレッチングプロセスの計算タスクを実行するために使用可能であり、それによって、ほとんど余分のコストはかからない。更に、これは、ユーザのパスワードをマイナーに示さずに行われ得る[https://en.wikipedia.org/wiki/Key_stretching]。しかし、そのような配置はまた、マイナーがユーザのパスワードを‘無料で’ブルートフォースしようと試みることも許すことになる。これは、キーストレッチングの全体の目的をくじく。
【0048】
更には、暗号資産の評価が高まると、ブレインウォレットパスワードのブルートフォースに対する、更に予測が難しくなる更なるインセンティブとなり、ウォレットのセキュリティに対する深刻な脅威となる。
【0049】
本明細書で提案される解決法は、キーストレッチング技術に依存せず、ユーザのパスワード検索のための合意メカニズムを使用する。ユーザの要求及び回復デポジットの支払い(回復が成功する場合に、それから手数料が差し引かれ得る。)があると、コングレスの成員は、要求を妥当性検証し、ファンドをアンロックし、それらを、秘密鍵が要求元に知られている新しいアドレスへ動かすことができる。
【0050】
秘密鍵が喪失されるときの暗号資産の回復のための分散型プロトコルの詳細について論じる場合に、コングレス及びゴーストチェーンプロトコルが、それらが本明細書で記載される暗号資産回復プロトコルの構成において使用されるということで、記載される。
【0051】
[コングレス]
コングレスは、ブロックチェーンネットワーク上で実行され得る。コングレスは、コングレスと関連付けられているプールへの十分な出資額の提案時にブロックチェーンネットワーク内の如何なるノードによっても参加され得る非会員制(open-membership)グループである。例えば、ノードは、コングレスと関連付けられているリソース(例えば、アカウント)へのデジタル資産(例えば、ビットコイン)、トークン、又は他の出資額若しくは価値のようなデジタル資産の移動を通じて、コングレスに参加し得る。コングレスは、秘密鍵シェアの分散生成を通じて、部分的に、担保され得る。各秘密鍵シェアは、トランザクションのための部分署名を生成するためにその所有者によって使用され得る。閾値署名スキームは、部分署名の少なくとも閾値を用いてそのようなトランザクションのための有効な署名を生成するために使用されてよい。成員デポジットは、悪意のある行為に対する没収を前提としている。
【0052】
鍵シェアの分散生成及び他のセキュリティ機能の使用を通じて、鍵シェアは、グループ成員又は非グループ成員による悪意のある活動を防ぐように安全性を保証される。そのような安全性は、閾値署名スキームの使用と結合されて、自治的な非中央集権的グループが形成されることを可能にし、グループは、多数の目的の中のいずれか1つのために使用され得る。より具体的に、閾値署名スキームは、グループが、そのグループに関連する公開鍵によって妨害されたデジタル資産を制御することを可能にする。本明細書中、そのようなコングレスグループは、秘密鍵が喪失される場合の暗号資産の回復のための分散型プロトコルにおいて使用される。
【0053】
コングレスは、次の方法で形成され得る:(i)ブロックチェーンネットワーク内のノードが、コングレス公開鍵と関連付けられている公のグループアドレスへ1以上のデジタル資産を移すためにトランザクションをブロードキャストし、公のグループアドレスは、コングレスの他の成員に関連した1以上の他のデジタル資産と関連付けられている;(ii)コングレスの代わりに部分署名の結合を通じて有効な署名を生成するために公開鍵シェアの少なくとも閾値が使用されるべきである閾値署名スキームにおいて使用されるように秘密鍵シェアを生成し、秘密鍵シェアの他の保有者は、公のグループアドレスへの各々のデジタル資産の移動によってコングレスに参加しているコングレスの他の成員である;(iii)公のグループアドレスからトランザクションのための有効な署名を協働して生成するために秘密鍵シェアを使用する。
【0054】
いくつかの実施において、閾値署名スキームは、楕円曲線デジタル署名アルゴリズムである。
【0055】
いくつかの実施において、コンピュータにより実施される方法は、(i)コングレスの他の成員の中の一員である悪意のあるパーティによる悪意のある活動を検出すること、及び(ii)悪意のあるパーティによって公のグループアドレスへ以前に移されたデジタル資産の少なくとも一部を没収すること、を更に含んでよい。
【0056】
いくつかの実施において、コンピュータにより実施される方法は、(i)再分配要求を検出すること、(ii)新しい公開鍵と関連付けられている新しい公衆アドレスへ公のグループアドレスにある全てのデジタル資産を移すように他のコングレス成員と協働すること、及び(iii)新しい秘密鍵シェアを生成すること、を更に含んでよい。
【0057】
コングレスの注目すべき特徴:
・我々がコングレス公開鍵(Congress public key)(CPK)と呼ぶ共有公開鍵。
・閾値署名の制御下でファンドが預託及び貸記されるための要件は、コングレスが自治グループを形成することができることを意味し、協同的行動が、誠実な成員の閾値によって、非協力的な(すなわち、実際には、悪意のある)成員の任意のサブグループのデポジットの全て又は一部の没収の脅威を通じて強制される。
・秘密鍵の分散生成は、目的が自治的な非中央集権的エンティティを作り出すことであるから、コングレスの極めて重要な特徴である。
・コングレスを去ることは、ファンドの払い戻しによって達成され、これは、現在の成員の閾値によって認可されなければならない。コングレスに参加することは、具体的な実施に応じて、現在の成員の承認を必要としてもしなくてもよい。
【0058】
[ゴーストチェーン]
ゴーストチェーンは、通常、調停(arbitration)(例えば、ディスピュート(dispute)の解決)のためのブロックチェーンである。例えば、目下の適用に関して、ノードは、回復要求を発することによって、彼らがアカウントの所有者であることを主張し、RPwの形で証拠を提示する。この証拠は、調停として構成され得るコングレスによって評価されるべきである。回復要求及び/又はRPwの妥当性は、ディスピュートされてもされなくてもよい。
【0059】
ゴーストチェーンは、一時的にしか存在せず、親ブロックチェーン(ペアレント)上でのディスピュートに応答して展開される。ゴーストチェーン(ゴースト)は、関与しているパーティに様々な証拠を要求し、固定の基準セットに従って調停し、然るべくペアレント上でファンドを分配する。ディスピュートの結果が(任意に、中間計算状態のマークルルート(Markle root)ハッシュとともに)メインチェーンに付託されると、ゴーストは停止する。ゴーストチェーンは、プルーフオブステーク(POS)によって担保され得る。これは、POSにより、プルーフオブワーク(POW)よりも予測可能なブロック時間を有する高頻度のブロックチェーンが可能になり、証拠集めのプロセスがよりずっと効率的なものとなるので、POWよりもゴーストチェーンにとって適切なセキュリティモデルである。
【0060】
ゴーストチェーンは、次の方法で実施され得る:(i)ノードが、グループ成員(すなわち、コングレスの成員)になるために公のグループアドレスへのデジタル資産のデポジットを通じてグループに参加し、グループは、ノードが秘密鍵シェアを制御する閾値署名スキームと関連付けられ、デジタル資産のデポジットは、プルーフオブワークブロックチェーンネットワーク上で行われる;及び(ii)ノードが、グループの他のノードと協働する。例えば、協働は、調停を求める要求を検出することと、調停要求を解決するためにゴーストチェーンを展開し、ゴーストチェーンは、ゴーストチェーンのマイナーがグループの成員であるプルーフオブステークブロックチェーンである、ことと、調停が解決するとゴーストチェーンを終了することとを有してよい。
【0061】
よって、ゴーストチェーンは、一時的なブロックチェーンであってよく、従来のブロックチェーンとは対照的に、1つ以上の基準、目標又は指定された目的が実行又は満足されると終了、消滅及び/又は失効するよう構成され得る。すなわち、ゴーストチェーンは、その目的が達成されると存在するのを止める単一目的のブロックチェーンであってよい。
【0062】
本明細書は、秘密鍵が喪失される場合の暗号資産の回復のための分散型プロトコルを提供するために如何にしてコングレスとゴーストチェーンとが組み合わされ得るかについて記載する。
【0063】
[回復パスワードによるファンドのロック]
アリスが、署名(秘密)鍵Skを用いてアカウントにいくつかの暗号資産を貸記したいと想像されたい。彼女は、自身が署名鍵Skを紛失するかもしれないと心配しており、故に、災害発生時にファンドを回復するための代替方法を望んでいる。この項では、アリスが、覚えることができるほど十分に簡単である回復パスワード(RPw)を供給することによって、(潜在的に)少ない手数料を見返りとして、自身のファンドが回復可能であるように、如何にして自身のアカウントを構成し得るかが説明される。手数料は、ゴーストチェーンのマイナーに支払うために、市場、より具体的には、市場価格によって決定される(合意プロトコルにおける計算ステップの市場価格設定に関する更なる詳細については、イーサリアム(Ethereum)における‘ガス’の概念を参照されたい:https://ethereum.gitbooks.io/frontier-guide/content/costs.html)。後述するように、アリスのアカウントは、ファンドを回復しようと試みられるときに十分な金額のデポジットが必要とされる限りは、非常に簡単な回復パスワードRPwが選択される場合でさえ安全であると見なされる。ファンドのほとんどは、パスワードRPwの回復が成功する場合に、(手数料に応じて)回復できる可能性がある。
【0064】
本明細書中、コングレス及びゴーストチェーンプロトコルの実施は、次を含む:
・コングレスの成員は、プルーフオブワーク(POW)ブロックチェーンM(アリスのアカウントが存在する。)上でセキュリティデポジットを保持している。それらのデポジットの見返りとして、且つ、それらに比例して、成員は、秘密鍵の1以上のシェアを受け取る。
・コングレスの成員は、プルーフオブステーク(POS)代替チェーン(alt-chain)Aをマイニングする。例えば、代替チェーンAはゴーストチェーンであることができる。
・静的なコングレス公開鍵(CPK)が存在し、コングレスの成員iは、信頼される実行環境(Trusted Execution Environments)(TEE)内で、対応する秘密鍵xのシェアxiを保持し、xiが成員に直接アクセス可能でないようにする。TEEは、xiに関する情報を示す如何なる数量も出力しないように構成される。
・TEEは、そうすべきであることがAに関する合意を順守する場合にのみ、xiから取得される数量(例えば、部分署名)を出力する。
【0065】
公開鍵はPkで表され、対応する署名鍵はSkで表される。Gを、離散対数問題が困難である大きい素数位数の巡回群とする。
【数2】
を、反転させることが計算上実行不可能であると思われる衝突困難ハッシュ関数であるとする。
【数3】
を、2つの2進列の間のXOR演算(ビット単位,モジュロ2加算)とし、○を連結(concatenation)とする。
【0066】
[プロトコル]
この項では、回復パスワードの設定及び資産回復フェーズの主なステップについて記載する。また、パスワードリセットプロシージャについても記載する。安全性の議論は、後の項に委ねられる。
【0067】
設定(set-up):
1.アリスは、特別のトランザクションT1を用いてファンドを送る。トランザクションT1は、アカウントに対してRPwをセットしたいという彼女の望むをコングレスに信号により伝える。T1の出力は、(i)Pkの下でロックされた状態で、アリスによって、又は(ii)CPKの下でロックされた状態で、コングレスによって使われ得る。このトランザクションは、資産を回復しようと試みられるときに提供される必要がある回復デポジット(rd)の量を提示する。例えば、T1はMブロックBmにマイニングされる。特に明記しない限り、我々は、如何なる関連情報又は他のトランザクションへの参照もメタデータとして保持することになる。
【0068】
2.コングレスの成員は夫々、数量gxiをアリスへ秘密裏に(Pkにより暗号化して)送る。このとき、G∋g≡g(m):=H1(Bm○Pk)及びm>nは、慣例により固定である。当然、Pkは、例えば、Bmのブロックヘッダのハッシュと連結することもできる。gxiを含むトランザクションの夫々は、成員に属する個々のTEEのシェアIDと関連付けられ、対応する秘密鍵によって署名されるべきである。ある盲目的な数量もトランザクションに含まれ、それにより、xiの一貫性が検証され得る。
【0069】
3.アリスは、成員から受け取った数量に一貫性があると納得すると、
【数4】
を構成する。このとき、L
iは、適切なラグランジュ係数である。一貫性チェックは、検証可能な秘密分散(Verifiable Secret Sharing)プロトコル[https://en.wikipedia.org/wiki/Verifiable_secret_sharing]又はプロトコルの公開検証可能な(Publicly Verifiable)バージョン[Stadler, M. (1996, May). Publicly verifiable secret sharing. In International Conference on the Theory and Applications of Cryptographic Techniques (pp.190-199). Springer Berlin Heidelberg. ftp://ftp.inf.ethz.ch/pub/crypto/publications/Stadle96.pdf]を用いて実行され得る。プロトコルは、i)一貫性のないシェアを識別するために、及びii)パーティに‘秘密裏に送信された’シェアがブロードキャストされる盲目的なシェアと異なるかどうかをチェックするために、使用され得る。
【0070】
4.アリスは、彼女のRPwの2進表現(ASCII)を取得し、それを、パディングした列の長さがg
xの長さと等しいように、例えば、1の後に0を連結することによってパディングする:RPw→RPw○100・・・00。次いで、アリスは、‘パディングされたパスワード’とg
xとの排他的論理和をとる。この
【数5】
は、Skによって署名され、そして、Pkを参照するフラグ付きトランザクションT2を用いてMにマイニングされる。アリスのRPwはこれよりセットされる。g
xはEC上の点であるから、2つの座標を有する。両方の座標の関数である2進列にg
xを変換する様々な方法がある。おそらく、これを行う最も簡単な方法は、両方の座標の連結をハッシングすることである。シンボルにおいて:g
x→H
2(g
x
x○g
y
x)、ここで、g
x
x及びg
y
xは、g
xのx成分及びy成分を表す。文脈によって明らかに暗示されている場合はいつでも、EC上の任意の点が2進列に変換されたと考えられる点で、文書全体で記号のわずかな濫用(abuse of notation)が引き起こされる。
【0071】
資産回復(asset recovery):
1.アリスがSkを喪失する場合に、彼女は、次のように、自身のファンドを回復するためにRPwを使用することができる。アリスは、T1を参照する回復前(pre-recovery)トランザクション(PRT)をブロードキャストし、必要とされる回復デポジットをCPKへ送信する。PRTは、(i)H2(RPw○RPk)を含み、ここで、RPkは、回復公開鍵であり、(この段階で)アリスにのみ知られている新たに生成された公開鍵であるべきであり、且つ、PRTは、(ii)回復プロトコルを実行することを見返りとしてゴーストチェーンAのマイナーに提供される回復手数料(rf)の明細書(statement)を含む(rfは、rdから差し引かれる。)。ファンドは、回復が成功し、rd-rfがアリスに戻った場合に、RPkの下で再ロックされることになる。トランザクションは、デポジットが支払われるアカウントの公開鍵DPkに対応するデポジット署名鍵(DSk)によって署名される。
【0072】
2.正しいデポジットでPRTを観測し、彼らが十分と考える回復手数料を提示することに応答して、コングレスは、固定数のブロックが続くチャレンジ期間を開始する。チャレンジ期間中、コングレスは、(i)同じアカウントを回復しようと試みる更なるPRT、及びSkによって署名された拒否トランザクションのマイニングについて、Mを監視する。拒否トランザクションが観測される場合に、回復プロトコルは中止され、PRTに関連する回復デポジットは没収される。
【0073】
3.有効に署名されてない拒否トランザクションがチャレンジ期間中に観測される場合に、コングレスはゴーストチェーンをインスタンス化する。以前にPRTを送信した如何なるパーティも、これより、PRTを参照する回復トランザクションRTをゴーストチェーンに送信し得る。RTは、(i)RPwを含み、且つ、(ii)RPkを含んでDSkによって署名されるべきである。検証部(verifiers)は、このとき、RPw○RPkが、参照されるPRTに含まれる値にハッシングすることをチェックすべきである。そうでない場合には、このPRTに関連する回復デポジットは没収され、回復手数料が差し引かれ、残りのデポジットは焦げ付く。
【0074】
4.RPw○RPkのハッシュが対応するPRTに含まれる値と一致するRTが存在する場合に、コングレスの成員はg
xi(m)をブロードキャストする。これより、誰もがg
x(m)を再構成し、検証を試みることができる:
【数6】
。(i)検証が成功する場合に、ファンドは、(任意に、回復メカニズムにより)コングレスによってRPkの下で再ロックされ、回復手数料がデポジットから差し引かれ、デポジットの残りはアリスに戻される。あるいは、(ii)検証が失敗する場合に、RPwはリセットされるべきである。真のRPwがチェックの過程で暴露されるので、リセットが必要とされる。なお、アカウントの所有者は、彼らがファンドを回復しようとする不正な試みに気付いた場合に、チャレンジ期間中に拒否トランザクションを発行することになるので、我々は、RPwを推測してこの段階に到達する試みを予期していない点に留意されたい。よって、タイムリーな応答を仮定すれば、リセットは不要である。
【0075】
RPwリセット:アリスは新しいRPwを選択すべきである。コングレス及びアリスは、g(m)→g(m′)=H(B
m′○Pk),m′>mを除いて、設定フェーズのステップ2~4を繰り返す。このとき、B
m′は、全般的に同意された(generally-agreed-upon)Mブロックであり(B
m′は、Aブロック又はそのハッシュであることもできる。要は、それは、回復パスワードをセットする要求がなされる場合に予測され得ないランダムな数量でなければならない。)、回復の試みが失敗したことが確立(すなわち、
【数7】
は検証に失敗している。)されてからしばらく経ってマイニングされる。これより、RPwはリセットされる。このプロセスのための手数料は、リセットを促進したPRTに関連するデポジットから差し引かれる。残りのデポジットは焦げ付く。これは、リセットを実行するコストである、回復デポジットの下限が必要であることを意味することに留意されたい。
【0076】
コメント:資産は、回復機能を維持しながら、アカウントから使用したり、アカウントに預けたりすることができる。これが起こるとき、回復デポジットrdも変化し得る(これは、一定水準の安全性を維持するために必要である。)。‘Pk又はCPK’に支払う如何なるUTXOも回復され得る。それらのトランザクションは、パスワードがPkに対してコングレスによって既に設定されていることを信号により伝えるために、T2も参照する。それらのUTXOが異なるrdを有する場合に、最大のrdが選択される。故に、例えば、アリスは、自身のアカウントから、Pkの下でロックされている全てのUTXOを使用し、‘お釣り’(change)を、‘Pk又はCPK’に支払い且つ一般には別のrd(推定上、これは低い方のrdである。)を提示するUTXOに戻すことによって、支払いを行うことができる。アリスが自身のアカウントに資産を加えたい場合に、彼女は、それらの資産を、‘Pk又はCPK’に支払う出力を有するトランザクションを介して、送信する。このトランザクションは、rdの増大を特定することができ、これは、次いで、彼女のアカウント内の全ての資産に当てはまる。
【0077】
[設計選択及びプロトコルの安全性]
主要目的は、実質的な更なる負荷を成員に負わせることを回避しながら、コングレスの特性を利用することである。コングレス秘密鍵は、成員の‘共同メモリ’(collective memory)に保管された秘密であり、それにより、成員が参加及び退去する場合に、秘密のシェアが再割り当て及び削除される。この考えは、RPwから秘密x(より厳密には、一方向関数を用いてxから取得される数量)への‘マッピング’(XOR)を導出し、このマッピングをブロックチェーンで保持することである。このようにして、RPwを再構成するのに必要な情報は、XOR(公開されている。)とx(非公開である。)との間で、RPwに関する情報が公開部分から取得され得ないように有効に分割される。このアプローチは、成員が彼らのTEE内で如何なる追加の秘密情報も保持する必要性がないことを意味する。唯一の要件は、xの共同メモリを持ち続けることであり、これは、どのようにも行われる。
【0078】
プロトコルの様々なステップの安全性に関するコメント:
設定:
1.回復デポジットは、アカウント内の全ファンドのうちのある割合として提示され得、攻撃者がRPwを推測しようと試みることが非経済的である(すなわち、推測からの期待される利益がマイナスである。)ほど十分に大きくなければならない。(導入部で記載されたキーストレッチングとは際立って対照的に)これは我々のスキームを完全に将来性のあるものにならしめる点に留意されたい。それは、所与のRPwのエントロピー及び回復デポジット(全ファンドの一部)が時間とともに変化しないからである。将来の保証はまた、回復手数料が初期段階でよりもPRTで提示されるべきであることを求める。
【0079】
2.成員の身元をgxiと関連付けることは、彼らがこのサービスを提供する報酬を受け取ることができることを意味する。
【0080】
3.更に、それはまた、彼らが一貫のないgxiを提供していると認められる場合に、彼らが経済的に罰せられ得ることも意味する。
【0081】
4.g
xをランダムであると仮定すると、
【数8】
はランダムである。特に、RPwに関する情報は、g
xの知識なしではXORから導出され得ない。RPwの長さは、パディングのプロセスによって盲目にされる点に留意されたい。
【0082】
図1は、パスワード設定プロシージャのスキームを示す。パスワード設定プロセスは、コングレス公開鍵(CPK)及び要求元のPkの下でファンドをロックするために、T1を送信することによって要求元によって開始される。次いで、コングレスの成員は、彼らの秘密鍵から導出された暗号化されたシェアを送信して、要求元がg
xを計算し、それと彼/彼女の選択したRPwとの排他的論理和をとり、T2において結果をブロードキャストすることを可能にする。
【0083】
資産回復:
1.H2(RPw○RPk)は、RPw及びRPkの両方にコミットする。更に、RPkが(この段階で)アリスにしか知られておらず、典型的なエントロピー(事実上ランダムであって、十分に長い。)を有するとして、極めて低いエントロピーのRPwの場合でさえ、どちらもハッシュから逆行され得ない。提案される回復手数料はこの段階で提示され、計算のために現在の市場価格に応じて異なる場合がある。
【0084】
2.我々は、敵対者がトランザクションを‘フロントランニング’し、特定の情報を奪取して、これを用いて、最初にマイニングされる可能性がある悪意のあるトランザクションを構成することができる可能性を考慮に入れる必要がある。例えば、これは、かなりの確率で大規模マイナーによって達成可能である。この理由により、最初のPRTが観測された後、どれが本物であるかをこの段階では見分ける方法がないので、我々は、他のPRTがマイニングされる時間を考慮に入れる必要がある。(それらのうちの1つが本物である、すなわち、Skが実際に喪失されたと仮定すると)アリスは有効な拒否トランザクションを構成することができないことを思い起こされたい。
【0085】
3.RTは、それが、RPw及びRPkにコミットする確認済みPRTに対応し、回復デポジットを含むべきである場合にのみ、考慮される。検証が失敗する場合に、全ての回復デポジットが失われる。攻撃者には、PRTがマイニングされる時点でRPwに関する情報を得る方法がない。従って、回復される資産の数量及びRPwのエントロピーと比較して回復デポジットが十分に大きい限り、プロトコルは安全である。
【0086】
4.RPwの検証又は試行される検証における最終段階では、真のRPwが明らかになる。
【0087】
RPwリセット:真のRPwは、チェックの過程で明らかになるため。なお、アリスによる拒否トランザクションによるタイムリーな応答を仮定すると、我々は、RPwを推測してこの段階に到達する試みを予期していない点に留意されたい。アカウント保持者がMを監視し、盗難の試みにタイムリーに応答することができることは、暗号通貨の分野では共通の仮定である。一例は、ライトニングネットワーク(Lightning Network)における違反修復トランザクション(Breach Remedy Transaction)の発行である[J. Poon, T. Dryja. The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments, (Draft version 0.5.9.2).オンラインで入手可能:https://lightning.network/lightning-network-paper.pdf]。しかし、ライトニングネットワークでの状況(アカウント内の全てのファンドが失われる可能性がある。)と対照的に、時間内に応答することできないことの我々のプロトコルの結果は、かなり穏やかである(RPwリセット)。
【0088】
図2は、パスワード回復プロトコルのスキームを示す。それは2つのフェーズ、すなわち、回復前フェーズ及び回復フェーズ、から成る。回復前の間、パスワード回復要求がコングレスによって受け取られる。いわゆるチャレンジ期間内に、コングレスはまた、プロシージャを中止するためにウォレットの所有者によって拒否トランザクションが発行されているかどうかを監視する。拒否が発行されていない場合には、ゴーストチェーンが開始され、回復トランザクションが要求元によって発行され、一貫性をチェックされる(資産回復プロトコルの記載において詳述されている。)。成功の場合に、ファンドは新しいアドレスへ移され、要求元によって制御される。不正な試みは、代わりに、デポジットの没収を招く。
【0089】
[パスワードの安全性]
パスワードの強さは、一般的に、パスワードを推測することができるために攻撃者によって必要とされる期待される計算ステップの数として測定される。ランダムに生成されたパスワードの場合に、上述されたように、特定の長さの文字の全てのとり得る組み合わせを試みるブルートフォース攻撃が一般的に使用される。これは、n個の文字から成る長さLのパスワードを考えると、攻撃者は、nLのステップで正確なパスワードを見つけ出す。
【0090】
我々の解決法では、我々は、試みの失敗ごとのコスト、いわゆる回復デポジットを関連付ける。これは、アドレスに保管されているファンドの割合として示され得る。このようにして、攻撃を実行しようとする試みに対する実質的な阻害要因が存在する。
【0091】
例えば、アラビア数字を記号セットとして使用する長さL=3のパスワード、すなわち、n=10、及びデポジットrd=0.01×Fを考えることができる。ここで、Fは、パスワードから導出されるウォレットで利用可能なファンドの量である。パスワードを解読するために、攻撃者は、103回の試行を実行すると予想される。これは、攻撃者に、平均して、アカウント内に保管されているファンドの10倍である103×0.01×F=10Fの負担をかけることになる。よって、回復デポジットを増やすことは、悪意のある攻撃者からのランダムな試行を阻止し、ウォレットの安全性を高めることに相当する。パスワード順列を生成する計算コスト及び関連する暗号資産の価値が変化するとしても、スキームの安全性は一定のままであることに留意されたい。
【0092】
我々のプロトコルでは、攻撃者がパスワードを解読するのに必要な試行の回数を推定することは更に複雑であり、上記の計算は、攻撃に関連したコストの下限を計算するのに有用であり得る。実際に、gxの長さに等しくなるように1の後に0を連結することによってRPwの2進表現がパディングされるところの、設定フェーズ(ポツ4)で記載される‘パディングプロシージャ’のおかげで、攻撃者は、選択されたパスワードの正確な長さを知り得ない。従って、攻撃者は、有効な長さ及びパスワード自体が見つけられるまで、あらゆるL=1,・・・,長さ(gx)について平均してnL繰り返す必要がある。
【0093】
[要約及び結論]
我々は、秘密鍵が失われる場合にファンドを回復するための最初の完全には信頼できない解決法を提示し、ブルートフォースハッキング攻撃に対して一定水準の安全性を維持する。
【0094】
ファンドが回復される場合に我々のスキームではRPwが明らかになるので、それは秘密鍵の喪失のような‘稀な事象’の場合にのみ適切である。それは、比較的に高い手数料を負い、パスワードが毎回リセットされる必要がある((i)それは忘れられる可能性が高いこと、及び(ii)パスワード選択が識別される可能性がある場合の任意のパターンを意味する。)ので、例えば、トランザクションを認証する常用手法としての使用には不適切である。
【0095】
もう1つの欠点は、十分な安全性のために、アカウント所有者がファンドを不正に回復しようとする試みについてブロックチェーンを監視し、チャレンジ期間内に(拒否トランザクションにより)応答する必要がある点である。しかし、これに失敗する結果は、ほとんどの場合に、パスワードのリセットである(例えば、ファンドの喪失とは対照的である。)。
【0096】
上記の実施形態は、本発明を制限するのではなく説明しているのであって、当業者は、添付の特許請求の範囲によって定義される本発明の適用範囲から外れることなしに、多くの代替の実施形態を設計することが可能である点が留意されるべきである。特許請求の範囲において、かっこ内の如何なる参照符号も、特許請求の範囲を制限するものとして解釈されるべきではない。語「有する」(comprising及びcomprises)などは、いずれかの請求項又は明細書の全文に挙げられているもの以外の要素又はステップの存在を除外しない。本明細書中、「有する」(comprises)は、「~を含むか、又はそれらから成る」(includes or consists of)を意味し、「有する」(comprising)は、「~を含むか、又はそれらから成る」(including or consisting of)を意味する。要素の単一参照は、そのような要素の複数参照を除外せず、逆もまた同じである。本発明は、いくつかの個別要素を有するハードウェアを用いて、且つ、適切にプログラムされたコンピュータを用いて、実施されてよい。いくつかの手段を列挙している装置クレームでは、それらの手段のうちのいくつかが、ハードウェアの同一アイテムによって具現されてもよい。特定の手段が相互に異なる請求項で挙げられているという単なる事実は、それらの手段の組み合わせが有利に使用され得ないことを示すものではない。