(57)【要約】  コンピュータにより実施される方法が提供され得る。当該方法は、例えばビットコインネットワークのようなブロックチェーンネットワークを用いて実装されてよい。コンピュータにより実施される方法は、ｉ）第１パーティのデジタルアセットを交換所プラットフォームにアタッチするステップであって、（ａ）前記デジタルアセットに関連付けられた第１共有鍵を、前記第１パーティの鍵及び前記交換所プラットフォームの第１鍵を用いて計算し、（ｂ）（１）前記デジタルアセットから任意のパーティに支払可能な資金トランザクションを前記第１共有鍵を用いて生成し、（２）前記資金トランザクションを前記ブロックチェーンネットワークにブロードキャストすることにより、前記デジタルアセットをブロックチェーンネットワークにデポジットする、ことによりアタッチするステップと、ｉｉ）前記デジタルアセットを前記第１パーティから前記第２パーティに再関連付けするステップであって、（ａ）前記交換所プラットフォームの第２鍵を前記第２パーティの鍵を用いて計算し、その結果、（１）前記第１パーティの前記鍵が無効になり、（２）前記第２パーティの前記鍵及び前記交換所プラットフォームの前記第２鍵から計算される、前記デジタルアセットに関連付けられた第２共有鍵が、前記デジタルアセットに関連付けられた前記第１共有鍵と等しくなり、（ｂ）前記交換所プラットフォームの前記第１鍵を前記交換所プラットフォームの第２鍵と置き換える、ことにより再関連付けするステップと、を含む。
2020520152.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実施される方法であって、
第１エンティティに関連付けられた鍵と交換所プラットフォームに関連付けられた第１鍵を用いて、第１共有鍵を計算するステップと、
第１ブロックチェーントランザクションをブロックチェーンに記録させるステップであって、少なくとも、
前記第１共有鍵へのアクセスを有するコンピュータシステムによりアンロック可能なように前記第１ブロックチェーントランザクションを生成し、
前記第１ブロックチェーントランザクションをブロックチェーンネットワークにブロードキャストすることにより、
前記第１ブロックチェーントランザクションをブロックチェーンに記録させるステップと、
第２ブロックチェーントランザクションを前記ブロックチェーンに記録させるステップであって、少なくとも、
第２エンティティに関連付けられた鍵を用いて、前記交換所プラットフォームに関連付けられた第２鍵を計算し、その結果、
前記第１エンティティに関連付けられた前記鍵が無効になり、
第２共有鍵が、前記第２エンティティに関連付けられた前記鍵から計算され、前記交換所プラットフォームに関連付けられた前記第２鍵が、前記第１共有鍵と等しくなり、
前記交換所プラットフォームに関連付けられた前記第１鍵を、前記交換所プラットフォームに関連付けられた前記第２鍵で置き換えることにより、
第２ブロックチェーントランザクションを前記ブロックチェーンに記録させるステップと、
を含む方法。
【請求項２】
前記第１共有鍵を用いてデジタルアセットから前記第２エンティティへ支払可能な第２ブロックチェーントランザクションを生成するステップであって、前記第２ブロックチェーントランザクションは資金トランザクションに少なくとも部分的に基づく、ステップと、
前記第２ブロックチェーントランザクションを前記ブロックチェーンネットワークにブロードキャストするステップと、
を更に含む請求項１に記載のコンピュータにより実施される方法。
【請求項３】
前記第１エンティティのデジタルアセットを前記交換所プラットフォームにアタッチするステップは、
第１返金鍵を用いて、前記第１エンティティに支払可能な第１返金トランザクションを生成するステップと、
第１時間期間の後に、前記第１返金トランザクションを前記ブロックチェーンネットワークにブロードキャストするステップと、
を更に含む、請求項１又は２に記載のコンピュータにより実施される方法。
【請求項４】
前記第１返金トランザクションは、前記交換所プラットフォーム及び前記第１エンティティにより、２者楕円曲線デジタル署名アルゴリズムを用いて共同署名される、請求項１乃至３のいずれか一項に記載のコンピュータにより実施される方法。
【請求項５】
前記第２ブロックチェーントランザクションを前記ブロックチェーンに記録させる前記ステップは、
第２返金鍵を用いて、前記第２エンティティに支払可能な第２返金トランザクションを生成するステップと、
第２時間期間の後に、前記第２返金トランザクションを前記ブロックチェーンにブロードキャストするステップと、
を更に含む、請求項１又は４のいずれか一項に記載のコンピュータにより実施される方法。
【請求項６】
前記第２返金トランザクションは、前記交換所プラットフォーム及び前記第２エンティティにより、２者楕円曲線デジタル署名アルゴリズムを用いて共同署名される、請求項５に記載のコンピュータにより実施される方法。
【請求項７】
前記第１共有鍵を計算するステップは、
第１候補共有鍵を計算するステップであって、少なくとも、
楕円曲線暗号法を用いて前記交換所プラットフォームに関連付けられた前記第２鍵に対応する第１公開鍵を計算し、
前記第１公開鍵を前記第２エンティティに提供し、
前記第１公開鍵及び前記第２エンティティに関連付けられた前記鍵から、楕円曲線暗号法を用いて、前記第１候補共有鍵を計算する、
ことにより、第１候補共有鍵を計算するステップと、
第２候補共有鍵を計算するステップであって、少なくとも、
楕円曲線暗号法を用いて、前記第２エンティティに関連付けられた前記鍵に対応する第２公開鍵を計算し、
前記第２公開鍵を前記交換所プラットフォームに提供し、
前記第２公開鍵及び前記交換所プラットフォームに関連付けられた前記第２鍵から、楕円曲線暗号法を用いて、前記第２候補共有鍵を計算する、
ことにより、第２候補共有鍵を計算するステップと、
前記第１候補共有鍵が前記第２候補共有鍵と同じであることを検証するステップと、
を含む、請求項１乃至６のいずれか一項に記載のコンピュータにより実施される方法。
【請求項８】
前記第２共有鍵は、少なくとも、
第１候補共有鍵を計算するステップであって、少なくとも、
楕円曲線暗号法を用いて前記交換所プラットフォームに関連付けられた前記第１鍵に対応する第１公開鍵を計算し、
前記第１公開鍵を前記第１エンティティに提供し、
前記第１公開鍵及び前記第１エンティティに関連付けられた前記鍵から、楕円曲線暗号法を用いて、前記第１候補共有鍵を計算する、
ことにより、第１候補共有鍵を計算するステップと、
第２候補共有鍵を計算するステップであって、少なくとも、
楕円曲線暗号法を用いて、前記第１エンティティに関連付けられた前記鍵に対応する第２公開鍵を計算し、
前記第２公開鍵を前記交換所プラットフォームに提供し、
前記第２公開鍵及び前記交換所プラットフォームに関連付けられた前記第１鍵から、楕円曲線暗号法を用いて、前記第２候補共有鍵を計算する、
ことにより、第２候補共有鍵を計算するステップと、
前記第１候補共有鍵が前記第２候補共有鍵と同じであることを検証するステップと、
により計算される、請求項１乃至７のいずれか一項に記載のコンピュータにより実施される方法。
【請求項９】
前記第２ブロックチェーントランザクションを前記ブロックチェーンに記録させるステップは、前記第２ブロックチェーントランザクションを前記第２エンティティによりアンロックさせるステップを含む、請求項１乃至８のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１０】
交換所プラットフォームに関連付けられた前記第１鍵を前記交換所プラットフォームの前記第２鍵で置き換えるステップは、
前記交換所プラットフォームに関連付けられた前記第１鍵にランダム値を乗じて、前記交換所プラットフォームに関連付けられたブラインド第１鍵を生成するステップと、
前記交換所プラットフォームに関連付けられた前記ブラインド第１鍵を前記第２エンティティに提供するステップと、
前記交換所プラットフォームに関連付けられた前記ブラインド第１鍵に前記第２エンティティに関連付けられた前記鍵の逆数を乗じて、第１中間鍵を生成するステップと、
前記第１中間鍵を前記第１エンティティに提供するステップと、
前記第１中間鍵を前記第１エンティティに関連付けられた前記鍵を乗じて、第２中間鍵を生成するステップと、
前記第２中間鍵を前記交換所プラットフォームに提供するステップと、
前記第２中間鍵に前記ランダム値の逆数を乗じて、前記交換所プラットフォームに関連付けられた前記第２鍵を生成するステップと、
を含む、請求項１乃至９のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１１】
前記交換所プラットフォームに関連付けられた前記第１鍵を前記交換所プラットフォームに関連付けられた前記第２鍵で置き換えるステップは、前記交換所プラットフォームに関連付けられた前記第１鍵を無効にする、請求項１乃至１０のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１２】
前記第１エンティティに関連付けられた前記鍵は、前記第１エンティティによりセキュアに保持される秘密鍵であり、
前記交換所プラットフォームに関連付けられた前記第１鍵は、前記交換所プラットフォームによりセキュアに保持される秘密鍵であり、
前記第２エンティティに関連付けられた前記鍵は、前記第２エンティティによりセキュアに保持される秘密鍵であり、
前記交換所プラットフォームに関連付けられた前記第２鍵は、前記交換所プラットフォームによりセキュアに保持される秘密鍵である、請求項１乃至１１のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１３】
前記交換所プラットフォームは、信頼できる実行環境であって、
前記交換所プラットフォームに関連付けられた前記第１鍵を格納し、
前記交換所プラットフォームに関連付けられた前記第２鍵を格納し、
前記交換所プラットフォームが前記交換所プラットフォームに関連付けられた交換所プロトコルに従っていることのリモートアテステーションを提供する、
信頼できる実行環境を含む、請求項１乃至１２のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１４】
システムであって、
プロセッサと、
前記プロセッサによる実行の結果として前記システムに請求項１乃至１３のいずれか一項に記載のコンピュータにより実施される方法を実行させる実行可能命令を含むメモリと、
を含むシステム。
【請求項１５】
実行可能命令を格納した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、前記コンピュータシステムに請求項１乃至１３のいずれか一項に記載のコンピュータにより実施される方法を少なくとも実行させる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、ブロックチェーン技術及びトランザクションに関し、より詳細には、パーティ間の中間コンピュータシステムを介するオフチェーントランザクションに関する。本発明は、特に、限定ではないが、トランザクションを危険に晒す攻撃者により使用され得る任意の情報を格納することなく、トランザクションプロトコルを実装し及び運用するために信頼できる交換所プラットフォームを介し信頼できないパーティ間でオフチェーントランザクションを生成することに適する。トランザクションは、ブロックチェーンに記録するためにブロックチェーンネットワークにブロードキャストされるよう生成されてよい。したがって、本発明は、トランザクションをブロックチェーンに記録するための、一層セキュアなソリューションを提供する。
【背景技術】
【０００２】
本願明細書で、用語「ブロックチェーン」は、あらゆる形式の電子的な、コンピュータに基づく、分散台帳を含むよう使用される。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明の目的で、ここに記載される技術的改良の有用なアプリケーションと呼ばれてよいが、ビットコインは単に技術の有用な適用を提供するだけである。本発明は、ビットコインブロックチェーン及び代替ブロックチェーン実装及びプロトコルと共に使用されることに限定されず、本発明の範囲内に包含される非商業的アプリケーションに関連する実装及びプロトコルを含む。例えば、本発明は、ブロックチェーンの検証及び／又はビットコインのような暗号通貨トランザクションの検証についての同様の制約を有する他のブロックチェーン実装において有用である。一例として、本開示の技術は、暗号通貨の交換が生じるか否かに拘わらず、コンピュータ間交渉を含む他の態様に適用可能である。
【０００３】
ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装される総意に基づく電子台帳である。また、ブロックはトランザクションにより構成される。ブロックチェーンは、台帳を管理する中央システムが存在せず且つ台帳のトランザクションが分散型システムのノード間の合意プロトコルを用いて検証されるので、ピアツーピア電子台帳とも呼ばれる。幾つかの例では、「ブロックチェーントランザクション」は、データ及び条件セットを含むフィールド値の構造化された集合を符号化する入力メッセージを表す。条件セットを満たすことは、フィールドセットがブロックチェーンデータ構造に書き込まれるための必要条件である。ビットコインの場合には、各トランザクションは、ブロックチェーンシステム内で参加者間のデジタルアセットの制御の転送を符号化するデータ構造であり、少なくとも１つのインプット及び少なくとも１つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、スタックに基づくスクリプト言語を用いて記述される。
【０００４】
トランザクション（Tx）がブロックチェーンに書き込まれるために、「検証され」なければならない。検証は、ノードにより、ブロック生成能力を備える大部分のノードにより使用される共通ルールセットに基づき決定される。例えば、ビットコインプロトコルでは、幾つかのネットワークノードは、マイナーとしての機能を果たし、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。マイナーは、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。例えば、ノードにインストールされたソフトウェアクライアントは、未使用トランザクションアウトプット（unspent  transaction  outputs：UTXO）を参照するトランザクションに対して、関連するロック及びアンロックスクリプトを実行することにより、この検証作業を実行する。ロック及びアンロックスクリプトの実行が真と評価した場合、及び特定の他の条件が満たされた場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、ｉ）トランザクションを受信したノードにより検証され（つまり、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し）、ｉｉ）マイナーにより構築された新しいブロックに追加し、ｉｉｉ）マイニングされ（つまり、過去のトランザクションの公開台帳に追加される）なければならない。
【０００５】
ブロックチェーン技術は、暗号通貨実装の使用で最も広く知られているが、デジタル起業家が、新しいシステムを実装するために、ビットコインの基づく暗号通貨セキュリティシステム、及びブロックチェーンに格納可能なデータの両方の使用を探索し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動タスク及びプロセスのために使用できれば、非常に有利である。このようなソリューションは、それらの用途において一層多様でありながら、ブロックチェーンの利点（例えば、永久的、イベントの耐タンパレコード、分散プロセス、等）を利用できる。
【０００６】
ビットコインシステムのようなDLT技術は、中央機関における信頼を要求することなく、アセット又は価値を交換するために、検閲耐性方法を提供する。しかしながら、ビットコインの非集中化及び分散型特性は、拡張性が制限され、トランザクションが処理されるのに相当量の時間を要するという事実を生じる。例えば、新しいブロックが約１０分毎に有効にされ、信頼できる方法で確認されたと考えられるために、トランザクションの上位に少なくとも６個のブロックが生成されることが通常推奨される。幾つかの例では、トランザクションは、信頼できる確認のために、これより有意に長く待たなければならない。オンチェーントランザクションのこれらの相当量の遅延は、多くの用途で、特に販売時点の小売において又は為替のようにアセットが高頻度で取引される場合に、許容できない衝突をもたらすことがある。
【０００７】
暗号通貨交換は、デジタル通貨エコシステムの機能において役割を果たす。それらは、フィアット通貨をデジタルアセットに及び逆に変換する主要な方法を提供し、ビットコインの他の代替コイン（alt−coins）との取引を可能にし、並びにオフチェーン支払機能を提供する。効率的に運用するために、交換所は、参加者にアセットを最小限の衝突で転送可能にさせなければならない。これは、オンチェーンのトランザクション確認と基本的に両立しない。結果として、大部分の暗号通貨交換所プラットフォームは、顧客デポジット（及び対応する秘密鍵）の制御を保持しており、銀行と同様に振る舞い、顧客口座の残高は私設内部データベースに維持される。これは、特定の交換と相互作用する２つのパーティ間の任意のトランザクションが、即座に実行可能な該内部データベースへの変更のみを要求することを可能にする。顧客デポジットを保持することにより、暗号通貨交換は、伝統的な銀行が口座間の支払を処理するのと同じ方法で、オフチェーントランザクションを実現できる。しかしながら、このような暗号通貨交換は、交換所に登録されたデポジット（及び対応する鍵）と共に顧客により使用されることに限定されることがある。
【０００８】
したがって、上述の態様のうちの１つ以上において、ブロックチェーン技術を向上する方法及び装置を提供することが望ましい。
【発明の概要】
【０００９】
したがって、本発明によると、添付の請求の範囲に定められるような方法が提供される。
【００１０】
以下に更に詳述するように、コンピュータにより実施される方法及び電子装置は、即時オフチェーントランザクションを、コンピュータシステム（例えば、相互に信頼できないコンピュータシステム、「パーティ」とも呼ばれる）間で、トランザクションプロトコルを実装し運用するのに信頼できる交換所プラットフォームを介して、オンチェーントランザクションを必要とすることなく、実施するよう構成される。オフチェーントランザクションは、１つのコンピュータシステムに、異なる環境のブロックチェーンに記録可能な複数のトランザクションを生成することを可能にし、別のコンピュータシステムがトランザクションの生成後に運用された複数のトランザクションに含まれる方法に依存して、適切なトランザクションがブロックチェーンに記録できることを保証する。
【００１１】
「オフチェーン」は、動作がブロックチェーンを介して実行されないことを意味してよい。セキュアのままにするために、プラットフォームは、前の状態からの情報を格納せずに、指定アルゴリズムに従うためにのみ信頼されてよい。交換所により格納される情報は、オフチェーントランザクションに基づく追加トランザクションを生成するために必要な完全な鍵を取得する必要がないことがあるので、交換所により格納される情報は、オフチェーントランザクションの有効性を損なうことなく、悪意ある主体により取得できる。さらに、交換の暗号化失敗の場合でさえ（例えば、交換が永久にオフラインになり、又は鍵シェアを損失する）、オフチェーントランザクションの少なくとも幾つかは、ブロックチェーンに記録するのに有効である。
【００１２】
後述のように、楕円曲線暗号法の使用を通じて、完全な秘密鍵（及びしたがって、デジタルアセットの所有権）は常に保護され得る。デジタルアセットの即時オフチェーントランザクションを相互に信頼できないパーティ間でここに記載の交換所プラットフォームシステムを介して実施するよう構成されるコンピュータにより実施される方法及び電子装置は、参加者の自律性を維持しながら、オフチェーントランザクションの近即時生成を可能にする。留意すべきことに、「即時」は「実質的に即時」を意味してよく、又はある程度の変動を含む。用語は、本発明の分野の状況に従い、当業者により理解される。
【００１３】
したがって、本発明によると、添付の請求の範囲に定められるような方法（及び対応するシステム）が提供され得る。
【００１４】
方法は、即時オフチェーントランザクション（Tx）（暗号通貨アプリケーションにおけるような転送とも呼ばれてよい）として記載され得る。追加又は代替として、該方法は、特定トランザクションのブロックチェーンへの記録を保証し又は制御するセキュリティ又は制御方法として記載され得る。説明のための例として、第１コンピュータシステム及び第２コンピュータシステムの動作は、相互に依存してよく、その結果、一方のコンピュータシステムの動作は他方の動作に依存する。例えば、第１コンピュータシステムは、第２コンピュータシステムの動作をトリガしてよいが、第２コンピュータシステムが動作を実行する場合に第１ロジックを実行してよく、第２コンピュータシステムが動作を実行しない場合に第２ロジックを実行してよい。ここに記載の技術は、第１コンピュータシステムに、第２コンピュータシステムが何を行うかに依存して第１ロジックまたは  第２ロジックを実行できるという、暗号学的保証を備えることを可能にする。第１ロジックは、例えば、第１トランザクションのブロックチェーンへの記録を生じてよく、第２ロジックは、例えば、第２トランザクションのブロックチェーンへの記録を生じてよい。一実施形態では、第２コンピュータは、（１）動作の自身の実行が第１トランザクションのブロックチェーンへの記録を可能にすることを保証し、又は（２）動作の実行が第２トランザクションのブロックチェーンへの記録を防ぐことを保証し、又は（３）その両方であることが可能である。
【００１５】
したがって、ここに記載の方法は、相互依存コンピュータシステムが、ブロックチェーントランザクションを介して、（他のコンピュータシステム又は交換所プラットフォームと共に）参加者が適切に動作するか否かに拘わらず所望状態に達する能力を可能にする方法で、動作することを許容する。
【００１６】
上述のように、ここに記載され及び提案される技術は広範なコンテキストに適用可能である。幾つかのコンテキストはブロックチェーンを利用してデジタルアセットを管理する。デジタルアセットは、トランザクションの中でブロックチェーンに記録される値（value）により表されてよい。デジタルアセットの記録（又は値へと集約する記録の集約）は、デジタルアセットの「転送」又は「転送制御」と呼ばれるような特定トランザクションのブロックチェーンへのエントリのための必要条件であってよい。幾つかの例では、デジタルアセットは、転送が特定コンピュータシステムロジックの実行を可能にする値である。例えば、コンピュータシステムのプログラミングは、ブロックチェーンにおける出現が別のコンピュータにより引き起こされたデジタルアセットの記録に依存してよい。幾つかの例では、デジタルアセット（及びブロックチェーントランザクションセットの中のデジタルアセットに対応する値）は、コンピュータシステムの実行すべき作業量、コンピュータシステムにより処理されるべきデータ、又はコンピュータシステムにより実行されるアルゴリズムへの他の入力を表す。幾つかの例では、デジタルアセットは、暗号通貨の一部又は額であるが、本開示の範囲は概して支払又は暗号通貨を含まない他のコンテキストに広く適用可能である。
【００１７】
一実施形態では、トランザクション（Tx）は、交換所プラットフォーム方法を介する相互に信頼できないパーティ間のものである。コンピュータにより実施される方法は、ｉ）第１パーティ（コンピュータシステム又は他の同様のエンティティであってよい）のデジタルアセットを交換所プラットフォームにアタッチするステップであって、（ａ）前記デジタルアセットに関連付けられた第１共有（暗号）鍵を、前記第１パーティの又はその他の場合に前記第１パーティに関連付けられた鍵及び前記交換所プラットフォームの又はその他の場合に前記交換所プラットフォームに関連付けられた第１鍵を用いて計算し、（ｂ）（１）前記デジタルアセットから任意のパーティに支払可能な資金トランザクションを前記第１共有鍵を用いて生成し、（２）前記資金トランザクションを前記ブロックチェーンネットワークにブロードキャストすることにより、前記デジタルアセットをブロックチェーンネットワークにデポジットする、ことによりアタッチするステップと、ｉｉ）前記デジタルアセットを前記第１パーティから前記第２パーティ（コンピュータシステム又は他の同様のエンティティであってよい）に再関連付けするステップであって、（ａ）前記交換所プラットフォームの第２鍵を前記第２パーティの又はその他の場合に前記第２パーティに関連付けられた鍵を用いて計算し、その結果、（１）前記第１パーティの前記鍵が無効になり、（２）前記第２パーティの前記鍵及び前記交換所プラットフォームの前記第２鍵から計算される、前記デジタルアセットに関連付けられた第２共有鍵が、前記デジタルアセットに関連付けられた前記第１共有鍵と等しくなり、（ｂ）前記交換所プラットフォームの前記第１鍵を前記交換所プラットフォームの第２鍵で置き換える、ことにより再関連付けするステップと、を含んでよい。
【００１８】
本発明によると、電子装置が提供され得る。電子装置は、インタフェース装置と、前記インタフェース装置に結合されたプロセッサと、前記プロセッサに結合されたメモリとを含む。前記メモリは、実行されると、本願明細書に記載の方法を実行するよう前記プロセッサを構成するコンピュータ実行可能を格納してよい。
【００１９】
本発明によると、コンピュータ可読記憶媒体が提供され得る。コンピュータ可読記憶媒体は、実行されると、本願明細書に記載の方法を実行するようプロセッサを構成するコンピュータ実行可能命令を含む。
【００２０】
本発明によると、実行されるとプロセッサを本願明細書に記載の楕円曲線デジタル署名アルゴリズムの機能を実行するよう構成するコンピュータ実行可能命令を含む楕円曲線デジタル署名アルゴリズム（elliptic  curve  digital  signature  algorithm：ECDSA）スクリプトを含むコンピュータ可読記憶媒体が提供され得る。
【００２１】
本発明によると、実行されるとプロセッサを本願明細書に記載の２者楕円曲線デジタル署名アルゴリズムの機能を実行するよう構成するコンピュータ実行可能命令を含む２者楕円曲線デジタル署名アルゴリズム（two−party  ECDSA）スクリプトを含むコンピュータ可読記憶媒体が提供され得る。
【００２２】
本発明によると、実行されるとプロセッサを本願明細書に記載の暗号学的にセキュアな疑似乱数生成器の機能を実行するよう構成するコンピュータ実行可能命令を含む暗号各的にセキュアな疑似乱数生成（cryptographically  secure  pseudo−random  number  generator：CSPRNG）スクリプトを含むコンピュータ可読記憶媒体が提供され得る。
【００２３】
コンピュータにより実施される方法は、デジタルアセットに関連付けられた第１共有鍵を第１パーティの鍵及び交換所プラットフォームの第１鍵を用いて計算するステップと、前記デジタルアセットをブロックチェーンネットワークにアタッチするステップであって、少なくとも、前記デジタルアセットから任意のパーティに支払可能な資金トランザクションを前記第１共有鍵を用いて生成し、前記資金トランザクションを前記ブロックチェーンネットワークにブロードキャストすることにより、アタッチするステップと、前記デジタルアセットを前記第１パーティから第２パーティに再関連付けするステップであって、少なくとも、前記交換所プラットフォームの第２鍵を前記第２パーティの鍵を用いて計算し、その結果、前記第１パーティの前記鍵が無効になり、前記第２パーティの前記鍵及び前記交換所プラットフォームの前記第２鍵から計算された前記デジタルアセットに関連付けられた第２共有鍵が、前記デジタルアセットに関連付けられた前記第１鍵と等しくなる、ステップと、前記交換所プラットフォームの前記第１鍵を前記交換所プラットフォームの第２鍵で置き換えるステップと、を含む方法が提供され得る。
【００２４】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記デジタルアセットを前記交換所プラットフォームからデタッチするステップであって、少なくとも、前記第１共有鍵を用いて前記デジタルアセットから前記第２パーティに支払可能な第２資金トランザクションを生成し、前記第２資金トランザクションは前記資金トランザクションに少なくとも部分的に基づき、前記第２資金トランザクションを前記ブロックチェーンネットワークにブロードキャストし、前記第２資金トランザクションをマイニングして、前記デジタルアセットを前記第２パーティに提供することにより、デタッチするステップを更に含む方法が提供され得る。
【００２５】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記第１パーティの前記デジタルアセットを前記交換所プラットフォームにアタッチするステップは、前記第１パーティに前記デジタルアセットから第１返金鍵を用いて生成するステップと、第１時間期間の後に前記第１返金トランザクションを前記ブロックチェーンネットワークにブロードキャストするステップと、前記第１返金トランザクションをマイニングして、前記デジタルアセットを前記第１パーティに戻すステップと、を更に含む、方法が提供され得る。
【００２６】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記第１返金トランザクションは、前記交換所プラットフォーム及び前記第１パーティにより、２者楕円曲線デジタル署名アルゴリズムを用いて共同署名される、方法が提供され得る。デジタルアセットを第１パーティから第２パーティへ再関連付けするステップは、第２返金鍵を用いて前記デジタルアセットから前記第２パーティに支払可能な第２返金トランザクションを生成するステップと、第２時間期間の後に前記第２返金トランザクションを前記ブロックチェーンネットワークにブロードキャストするステップと、前記第２返金トランザクションをマイニングして、前記デジタルアセットを前記第２パーティに戻すステップと、を含んでよい。前記第２返金トランザクションは、前記交換所プラットフォーム及び前記第２パーティにより、２者楕円曲線デジタル署名アルゴリズムを用いて共同署名される。
【００２７】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記第１共有鍵を計算するステップは、第１候補共有鍵を計算するステップであって、少なくとも、楕円曲線暗号法を用いて前記交換所プラットフォームの前記第２鍵に対応する第１公開鍵を計算し、前記第１公開鍵を前記第２パーティに提供し、前記第１公開鍵及び前記第２パーティの前記鍵から、楕円曲線暗号法を用いて、前記第１候補共有鍵を計算する、ことにより、第１候補共有鍵を計算するステップと、第２候補共有鍵を計算するステップであって、少なくとも、楕円曲線暗号法を用いて、前記第２パーティの前記鍵に対応する第２公開鍵を計算し、前記第２公開鍵を前記交換所プラットフォームに提供し、前記第２公開鍵及び前記交換所プラットフォームの前記第２鍵から、楕円曲線暗号法を用いて、前記第２候補共有鍵を計算する、ことにより、第２候補共有鍵を計算するステップと、前記第１候補共有鍵が前記第２候補共有鍵と同じであることを検証するステップと、を含む、方法が提供され得る。
【００２８】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記デジタルアセットに関連付けられた前記第２共有鍵は、少なくとも、第１候補共有鍵を計算するステップであって、少なくとも、楕円曲線暗号法を用いて前記交換所プラットフォームの前記第１鍵に対応する第１公開鍵を計算し、前記第１公開鍵を前記第１パーティに提供し、前記第１公開鍵及び前記第１パーティの前記鍵から、楕円曲線暗号法を用いて、前記第１候補共有鍵を計算する、ことにより、第１候補共有鍵を計算するステップと、第２候補共有鍵を計算するステップであって、少なくとも、楕円曲線暗号法を用いて、前記第１パーティの前記鍵に対応する第２公開鍵を計算し、前記第２公開鍵を前記交換所プラットフォームに提供し、前記第２公開鍵及び前記交換所プラットフォームの前記第１鍵から、楕円曲線暗号法を用いて、前記第２候補共有鍵を計算する、ことにより、第２候補共有鍵を計算するステップと、前記第１候補共有鍵が前記第２候補共有鍵と同じであることを検証するステップと、により計算される、方法が提供され得る。
【００２９】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記デジタルアセットを前記第１パーティから前記第２パーティに再関連付けするステップは、前記デジタルアセットの一部を前記第１パーティから前記第２パーティに再関連付けするステップを含む、方法が提供され得る。
【００３０】
本発明によると、上述のようなコンピュータにより実施される方法であって、交換所プラットフォームの前記第１鍵を前記交換所プラットフォームの前記第２鍵で置き換えるステップは、前記交換所プラットフォームの前記第１鍵にランダム値を乗じて、前記交換所プラットフォームのブラインド第１鍵を生成するステップと、前記交換所プラットフォームの前記ブラインド第１鍵を前記第２パーティに提供するステップと、前記交換所プラットフォームの前記ブラインド第１鍵に前記第２パーティの前記鍵の逆数を乗じて、第１中間鍵を生成するステップと、前記第１中間鍵を前記第１パーティに提供するステップと、前記第１中間鍵に前記第１パーティの前記鍵を乗じて、第２中間鍵を生成するステップと、前記第２中間鍵を前記交換所プラットフォームに提供するステップと、前記第２中間鍵に前記ランダム値の逆数を乗じて、前記交換所プラットフォームの前記第２鍵を生成するステップと、を含む、方法が提供され得る。
【００３１】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記交換所プラットフォームの前記第１鍵を前記交換所プラットフォームの前記第２鍵で置き換えるステップは、前記交換所プラットフォームの前記第１鍵を無効にする、方法が提供され得る。
【００３２】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記第１パーティの前記鍵は、前記第１パーティによりセキュアに保持される秘密鍵であり、前記交換所プラットフォームの前記第１鍵は、前記交換所プラットフォームによりセキュアに保持される秘密鍵であり、前記第２パーティの前記鍵は、前記第２パーティによりセキュアに保持される秘密鍵であり、前記交換所プラットフォームの前記第２鍵は、前記交換所プラットフォームによりセキュアに保持される秘密鍵である、方法が提供され得る。
【００３３】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記交換所プラットフォームは、信頼できる実行環境であって、前記交換所プラットフォームの前記第１鍵を格納し、前記交換所プラットフォームの前記第２鍵を格納し、前記交換所プラットフォームが前記交換所プラットフォームに関連付けられた交換所プロトコルに従っていることのリモートアテステーションを提供する、信頼できる実行環境を含む、方法が提供され得る。
【００３４】
本発明によると、システムであって、プロセッサと、前記プロセッサによる実行の結果として前記システムに上述のコンピュータにより実施される方法を実行させる実行可能命令を含むメモリと、を含むシステムが提供され得る。
【００３５】
本発明によると、実行可能命令を格納した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、前記コンピュータシステムに上述のコンピュータにより実施される方法を少なくとも実行させる、非一時的コンピュータ可読記憶媒体が提供され得る。
【００３６】
本発明の上述の及び他の態様は、本願明細書に記載される実施形態から明らかであり、それらの実施形態を参照して教示される。本発明の実施形態は、単なる例として添付の図面を参照して以下に説明される。
【図面の簡単な説明】
【００３７】
【図１】例示的なブロックチェーンネットワークのブロック図を示す。
【図２】ブロックチェーンネットワーク内のノードとして機能し得る例示的な電子装置のブロック図を示す。
【図３】交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションを実行する例示的な処理のフローチャートを示す。
【図４】信頼できないパーティ間のオフチェーン暗号通貨トランザクションのアタッチ段階が交換所プラットフォームを用いて実行される例示的環境のブロック図を示す。
【図５】交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理のフローチャートを示す。
【図６】交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションのアタッチ段階のデータフロー図を示す。
【図７】信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階が交換所プラットフォームを用いて実行される例示的環境のブロック図を示す。
【図８】交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理のフローチャートを示す。
【図９】交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階のデータフロー図の第１部分を示す。
【図１０】交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階のデータフロー図の第２部分を示す。
【図１１】信頼できないパーティ間のオフチェーン暗号通貨トランザクションの複数の転送段階が交換所プラットフォームを用いて実行される例示的環境のブロック図を示す。
【図１２】信頼できないパーティ間のオフチェーン暗号通貨トランザクションのデタッチ段階が交換所プラットフォームを用いて実行される例示的環境のブロック図を示す。
【図１３】交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理のフローチャートを示す。
【図１４】信頼できないパーティ間のオフチェーン暗号通貨トランザクションの返金段階が交換所プラットフォームを用いて実行される例示的環境のブロック図を示す。
【図１５】交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理のフローチャートを示す。
【図１６】種々の実施形態が実施できる例示的な環境のブロック図を示す。
【発明を実施するための形態】
【００３８】
先ず、図１を参照する。図１は、ブロック図の形式で、ブロックチェーンに関連付けられた例示的なブロックチェーンネットワーク１００を示す。ブロックチェーンプロトコルの下でブロックチェーンネットワーク１００が動作し、該ブロックチェーンプロトコルのインスタンスを実行する分散型電子装置は、ブロックチェーンネットワーク１００に参加してよい。このような分散型電子装置は、ノード１０２として参照され得る。ブロックチェーンプロトコルは、例えばビットコインプロトコルであってよい。
【００３９】
ブロックチェーンプロトコルを実行し、ブロックチェーンネットワーク１００のノード１０２を形成する電子装置は、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバのようなコンピュータ、スマートフォンのようなモバイル装置、スマートウォッチのようなウェアラブルコンピュータ、又は他の電子装置を含む様々な種類であってよい。
【００４０】
ブロックチェーンネットワーク１００のノード１０２は、有線及び無線通信技術を含み得る適切な通信技術を用いて互いに結合される。このような通信は、ブロックチェーンに関連付けられたプロトコルに従う。例えば、ブロックチェーンがビットコインブロックチェーンである場合、ビットコインプロトコルが使用されてよい。ノード１０２は、ブロックチェーン上の全てのトランザクションのグローバル台帳を維持する。したがって、グローバル台帳は分散台帳である。各ノード１０２は、グローバル台帳の完全コピー又は部分コピーを格納してよい。グローバル台帳に影響を与えるノード１０２によるトランザクションは、他のノード１０２により検証される。その結果、グローバル台帳の有効性が維持される。ブロックチェーンがproof−of−workに基づくブロックチェーンであるとき、ブロックも、ブロックと共に提出されるproof−of−workをチェックすることにより検証される。
【００４１】
ノード１０２の少なくとも幾つかは、ブロックチェーンネットワーク１００のマイナー１０４として動作する。図１のブロックチェーンネットワーク１００は、ブロックチェーン上のトランザクションを促進するために、マイナー１０４が費用の掛かる計算を実行するproof−of−workブロックチェーンである。例えば、proof−of−workブロックチェーンは、マイナーが暗号化問題を解くことを要求し得る。ビットコインでは、マイナー１０４がノンスを発見する。その結果、ブロックヘッダは、ダブルＳＨＡ−２５６により、現在の採掘難易度（difficultly）により定められた値より小さい数にハッシュされる。proof−of−workアルゴリズムのために必要なハッシュ能力は、特定数のブロックがその上でマイニングされた後に、トランザクションが事実上不可逆であると見なされることを意味する。暗号化問題を解くマイナー１０４は、ブロックチェーンの新しいブロックを生成し、新しいブロックを他のノード１０２にブロードキャストする。他のノード１０２は、ブロックがブロックチェーンに追加されるべきであると受け入れる前に、マイナー１０４が実際に暗号化問題を解き、したがって充分なproof−of−workを立証したことを検証する。他のノード１０２も、ブロック自体が有効であること（例えば、トランザクション及びブロックのブロックヘッダが有効であること）を、ブロックがブロックチェーンに追加されることを許諾する前に検証する。ブロックは、ノード１０２の総意により、ブロックチェーンに（つまり分散グローバル台帳に）追加される。
【００４２】
マイナー１０４により生成されたブロックは、ノード１０２によりブロックチェーンにブロードキャストされているトランザクションを含む。例えば、ブロックは、ノード１０２のうちの１つに関連付けられたアドレスからノード１０２のうちの別のものに関連付けられたアドレスへのトランザクションを含んでよい。このように、ブロックは、あるアドレスから別のアドレスへのトランザクションのレコードとして機能する。トランザクションがブロックに含まれることを要求したパーティは、彼らが転送を開始すること（例えば、ビットコインの場合には、ビットコインを使用すること）を認可されていることを、彼らの公開鍵に対応する秘密鍵を用いて要求に署名することにより、証明する。要求が有効に署名された場合のみ、転送はブロックに追加されてよい。トランザクションを使用可能なパーティ（例えば、コンピュータシステム）は、トランザクションを「アンロック」することも可能である。
【００４３】
ビットコインの場合、公開鍵とアドレスとの間には１対１対応がある。つまり、各公開鍵は単一のアドレスに関連付けられる。したがって、本願明細書でデジタルアセットを公開鍵へ又は公開鍵から転送する（例えば、公開鍵に支払う）、及びデジタルアセットを公開鍵に関連付けられたアドレスへ又は該アドレスから転送するという言及は、共通の動作を表す。
【００４４】
ノード１０２のうちの幾つかは、マイナーとして動作しなくてよく、代わりに検証ノードとして参加してよい。トランザクションの検証は、署名又はロックスクリプト内で指定された他の条件をチェックすること、有効UTXOへの参照を確認すること、等に関連してよい。図１の例は、６個のノード１０２を含み、そのうちの２個はマイナー１０４として参加している。実際には、ノード１０２又はマイナー１０４の数は異なってよい。多くのブロックチェーンネットワークでは、ノード１０２及びマイナー１０４の数は、図１に示した数より遙かに多くてよい。
【００４５】
図２は、ブロック図形式で、ブロックチェーンネットワーク（例えば、図１と関連して説明したブロックチェーンネットワーク１００のようなブロックチェーンネットワーク）におけるノード（例えば、図１と関連して説明したノード１０２のうちの１つのようなノード）として機能し得る例示的な電子装置２００を示す。例示的な電子装置２００は、図１と関連して説明したブロックチェーンネットワークのようなブロックチェーンネットワークにおける、図１と関連して説明したノード１０２のうちの１つのようなノードとして機能してよい。一実施形態では、ブロックチェーンネットワークは、ピアツーピアブロックチェーンネットワークである。
【００４６】
電子装置は、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォンのようなモバイル装置、スマートウォッチのようなウェアラブルコンピュータ、又は別の種類の形式を含む様々な形式をとってよい。
【００４７】
電子装置２００は、プロセッサ２１０、メモリ２２０、及びインタフェース装置２３０を含む。これらのコンポーネントは、互いに直接又は間接に結合されてよく、互いに通信してよい。例えば、プロセッサ２１０、メモリ２２０、及びインタフェース装置２３０は、バス２４０を介して互いに通信してよい。メモリ２２０は、本願明細書に記載の機能を実行するための機械可読命令及びデータを含むコンピュータソフトウェアプログラムを格納する。例えば、メモリは、プロセッサ２１０により実行されると、電子装置に本願明細書に記載の方法を実行させるプロセッサ実行可能命令を含んでよい。プロセッサ実行可能命令は、プロセッサ２１０により実行されると、電子装置に、ブロックチェーンネットワーク１００（例えば図１と関連して記載したブロックチェーンネットワーク１００）に関連付けられたプロトコルを実装させる命令を含んでよい。例えば、命令は、ビットコインプロトコルを実装するための命令を含んでよい。
【００４８】
メモリ２２０は、ブロックチェーンネットワーク（例えば図１と関連して記載したブロックチェーンネットワーク１００）のグローバル台帳又はその部分を格納してよい。つまり、メモリ２２０は、ブロックチェーンの全部のブロック、又は最近のブロックのようなブロックの部分、又は幾つかのブロックの中の情報の部分を格納してよい。
【００４９】
メモリ２２０は図２では単一のブロックにより示されるが、実際には、電子装置２００は複数のメモリコンポーネントを含んでよい。メモリコンポーネントは、例えばRAM、HDD、SSD、フラッシュドライブ、等を含む様々な種類であってよい。異なる種類のメモリは、異なる目的に適してよい。さらに、メモリ２２０はプロセッサ２１０と別個に示されるが、プロセッサ２１０は内蔵メモリを含んでよい。
【００５０】
図２に示すように、プロセッサ２１０は、信頼できる実行環境（Trusted  Execution  Environment：TEE）のようなセキュア領域を含んでよい。TEE２５０は、電子装置２００に、独立した実行、信頼できるアプリケーションの完全性及びアセット機密性のような追加セキュリティを提供する独立実行環境である。TEE２５０は、TEE２５０内部にロードされたコンピュータ命令及びデータが機密性及び完全性の観点で保護されることを保証する実行空間を提供する。TEE２５０は、暗号鍵のような重要リソースの完全性及び機密性を保護するために使用されてよい。TEE２５０は、少なくとも部分的にハードウェアレベルで実装される。その結果、TEE２５０内で実行される命令及びデータは、電子装置２００の残りの部分からの及び電子装置の所有者のような外部パーティからのアクセス及び操作に対して保護される。TEE２５０内のデータ及び計算は、TEE２５０を含むノード（例えば図１と関連して記載したノード１０２）を作動させるパーティからセキュアにされる。
【００５１】
TEE２５０は、セキュア実行環境（本願明細書で「エンクレーブ（enclave、飛び地）」とも呼ばれる）をインスタンス化し、次にメモリページを１つずつ追加するよう動作し得ると同時に、追加したメモリページを累積的にハッシングする。一実施形態では、メモリページのハッシングは、リモートマシン（例えば、開発者の機械又は別の機械）上で実行される。その結果、リモートマシンは、期待されるハッシュを決定し及び格納する。enclaveの内容は、したがって、任意のリモートマシンにより検証でき、enclaveが承認済みアルゴリズムを実行していることを保証する。この検証は、ハッシュを比較することにより実行されてよい。enclaveは、完全に構築されると、固定化される。TEE２５０内でコードを実行すること、及びシークレットをコードに送信することが可能であるが、enclaveがロックされると、コードは変更できない。最終ハッシュは、アテステーション（attestation）鍵により署名されてよく、データ所有者が任意のシークレットをenclaveへ送信する前に、データ所有者がそれを検証するために利用可能にされてよい。
【００５２】
TEE２５０は、後述のように、交換所に格納された共有鍵の信頼性及び完全性を保護するために使用されてよい。例えば、TEE２５０は、秘密鍵シェアの生成及び記憶のために使用されてよい。TEE２５０は、いかなるメンバーもTEE２５０内に保持された秘密鍵シェア又は他の秘密鍵シェアに関する情報をメンバー間通信又はenclave間通信から直接取得できないことを保証するためのものである。プロトコルは、閾値のenclaveのセキュリティ侵害（compromise）に対してもロバストである。さらに、TEE２５０は、リモートアテステーションを可能にし得る。リモートアテステーションは、ノード（例えば、図１と関連して説明したノード１０２のうちの１つのようなノード）により、TEE２５０が確実であり且つブロックチェーンネットワーク１００により実施されるプロトコルのための承認済みコンピュータ実行可能命令を実行していることを他のノードに証明するために使用されてよい。リモートアテステーションは、TEE２５０により、特定のコードピースを実行すること、及びenclaveの内部で、enclaveの内部アテステーション鍵により署名されたコードのハッシュを送信することにより、提供されてよい。
【００５３】
TEE２５０は、セキュアな乱数生成器を備えてよい。このセキュアな乱数生成器は、TEEのenclaveの内部にあり、秘密鍵、ランダムチャレンジ、又は他のランダムデータを生成するために使用できる。TEE２５０は、また、外部メモリからデータを読み出すよう構成されてよく、外部メモリにデータを書き込むよう構成されてよい。このようなデータは、enclave内部にのみ保持されたシークレット鍵により暗号化されてよい。
【００５４】
TEE２５０は、信頼できるプラットフォームモジュール（Trusted  Platform  Module：TPM）又はIntel  Software  Guard  Extensions（SGX）のような様々なプラットフォームを用いて実装されてよい。SGXは、例えば、リモートアテステーションをサポートする。リモートアテステーションは、enclaveが、署名されたステートメントを、クオート（quote）として知られるメンバーの与えられたハス（has）により特定のenclaveを実行しているプロセッサから取得することを可能にする。Intel  Attestation  Service（IAS）のような第三者アテステーションサービスは、これらの証明されたステートメントがSGX仕様に従う真正CPUから生じることを認定し得る。
【００５５】
本発明は、別のトランザクションのアンロックスクリプト内で提供される未確定データを用いて、ブロックチェーントランザクション（Tx）のロックスクリプト内に埋め込まれる暗号公開鍵を変更するよう構成される方法（及び対応するシステム）を提供し得る。例えば、トランザクションバイトコードをメッセージとして使用するビットコインプロトコルにおける署名チェックオペコード（例えばOP_CHECKSIG）と関連して使用されるとき、トランザクション及びデータの両方が、公開鍵の所有者からの認可又は認証を要求する。これは、それらを変更から守る。
【００５６】
本願明細書に記載の方法は、１つ以上のデジタル署名方式を用いて、種々のトランザクションを検証する。デジタル署名方式は、楕円曲線デジタル署名アルゴリズム（Elliptic  Curve  Digital  Signature  Algorithm：ECDSA）方式であってよい。デジタル署名は、２者ECDSA方式であってもよい。デジタル署名は、閾値ECDSA方式であってもよい。この方式は、秘密鍵を再構成する必要がなく、及び任意のパーティが彼らの鍵シェアを別のパーティに開示する必要がなく、有効署名を構成するために使用されてよい。例えば、２者ECDSA方式では、２つのパーティが存在し、両者が秘密鍵を再構成する必要がある。しかしながら、ECDSA方式では、共有秘密鍵に対応する署名を生成するとき、秘密鍵は、署名を生成するために再構成される必要がなくてよい。一実施形態では、共有秘密鍵に対応する署名は、共有秘密鍵を再構成する（つまり、再生成する）ことなく生成される。
【００５７】
このECDSA方式は、図１に関連して記載したノード１０２のようなノードにより、不正又は非協力的パーティを識別するために使用され得る様々なメカニズムを含む。例えば、検証可能シークレット共有（verifiable  secret  sharing：VSS）は、Shamirのシークレット共有（Shamir’s  Secret  Sharing：SSS）のために必要な多項式を共有するために使用され得る。SSSは、シークレットが部分に分けられ、それ自体のユニークな部分への各々の参加に提供される、シークレット共有の形式である。これらの部分は、シークレットを再構成するために必要であり得る。VSSは、矛盾したシェアが異なるノード１０２に提供された場合、又はシェアが全ノードにブロードキャストされる隠れシェアと異なり、シェアがノードへ秘密に送信された場合、ノードにより、不正ノード又はメンバーを識別するために使用されてよい。矛盾したシェアは、ノードのうちのいずれかにより識別されてよい。シークレットの共有は、ノードがそれらのシェアを矛盾しないとして検証することを可能にする補助情報を含むことにより、検証可能にされ得る。
【００５８】
不正シェアの個々のノードへの送信（つまり、ブロードキャストされる隠れシェアと異なるシェア）は、シェアの意図された受信ノードにより識別できる。ノードへ秘密に送信されている不正シェアの識別は、公然検証可能なシークレット共有（Publically  Verifiable  Secret  Sharing：PVSS）の技術を用いて公に検証可能にできる。このような技術は、ＰVSSが使用されず及び不正シェアが送信されるときに不正シェアの受信側がオフラインである若しくはネットワークの根本部分から切り離されている場合に起こり得る、不正送信者の識別において起こり得る遅延を回避し得る。
【００５９】
矛盾したシェアを異なるノードに提供するような不正行為は、悪意ある行為を阻止するネットワークにより解決され得る。例えば、ノードが他のノードにより悪意あるパーティとして識別されると、多数のノードが協力して該悪意あるパーティにペナルティを科してよい。例えば、ノードは、不正パーティによりブロックチェーンネットワークに預けられた（デジタル通貨、トークン、又は他の掛け金若しくは価値）デジタルアセットに関連する措置を行ってよい。例えば、ブロックチェーンネットワークは、デジタル通貨、トークン、掛け金若しくは価値を使用不可アドレスへ疎転送することにより、それらを焼却（burn）してよい。或いは、ブロックチェーンネットワークは、拒否するという他のノードとの総意に達することにより、このようなデジタルアセットを没収してよい。不正を行うノードではないノードは、不正を行うノードを排除するために協力することにより（例えば、鍵シェアを効果的に無効化することにより、例えば、ノードが議会プロトコルに参加するのを排除することにより、又は秘密鍵を再共有し及び不正を行うノードにシェアを割り当てないことにより）、不正行為を阻止してもよい。
【００６０】
上述のECDSA技術は、TEEの使用を通じて拡張されてよい。例えば、閾値ECDSA署名技術は、ここではByzantine敵対者と呼ばれる強力な形式の敵対者を予期している。この種の敵対者は、勝手に振る舞うことがある。例えば、彼らは、署名処理に参加すること又は途中でパーティを停止することを拒否するだけでなく、誠実に参加するふりをして、不正情報を送信することもある。しかしながら、TEEを用い、及びシークレット秘密鍵シェアが格納されるTEEのenclave内で署名に使用するためのデータを生成することにより、enclaveが有意な数において危険に晒される可能性が非常に低いので、追加セキュリティが提供され得る。各TEEが１つより多くの鍵シェアに割り当てられる場合、例えば、起こり得る危険に晒されるTEEの数は、ｎが充分に大きいと仮定すると、敵対者に対するロバスト性の閾に近付かないことが無理なく期待され得る。これは、鍵シェアの合計数に対して少ない割合の不正敵対者に対して耐性がある場合、プロトコルがセキュアであることを可能にする。
【００６１】
例えば、全ノードがTEEを有する場合、enclave内に格納されたシークレットの取得は、TEEの製造者が堕落していないならば、ノードへの物理アクセスによってのみ、多大な努力及び費用によってのみ、達成され得る。このような製造者レベルの堕落は、管理可能であることが期待される。例えば、製造者が、多数の公開鍵が誠実なTEEに対応すると偽って主張しようとした場合、彼らは、秘密鍵シェアへの直接アクセスを獲得し、攻撃を始める可能性がある。しかしながら、このような攻撃は、製造者が他のノードからの支援を伴わずに有効署名を生成できるために、充分な数の鍵シェアを要求し得る。これは、非常に高価になり得る全部の掛け金の大部分を蓄積することを意味し得る。さらに、攻撃を実行することにより、保持している掛け金の価値の大部分が破壊され得る。
【００６２】
TEEが使用されるとき、「堕落したノード」に対するプロトコルのロバスト性を意図することが有用である。堕落したノードは、TEEの外部のハードウェアが間違いを含むが、TEEの完全性が危険に晒されないノードである。堕落したノードは、どんな情報をenclaveが受信し及び受信しないかについて制御を有してよい。特に、堕落したノードは、停止し、つまりプロトコルへの参加を控えてよい。プロトコルに提供される情報がenclave内に秘密に保持された秘密鍵により署名される必要のある場合（対応する公開鍵が、アテステーション中に認証された場合）、秘密鍵はenclave自体と同じくらい信頼できる。したがって、堕落したノードは、勝手な（認証された）情報をプロトコルに送信することができず、停止することにより、又は例えば古い情報を提供することにより誤って動作するようenclaveを欺くことを試みることにより、邪魔をしようとするだけである。次に、堕落したノードでは、成功した攻撃は、完全な署名を生成するのに充分な数の部分署名を収集することを必要とし得る。
【００６３】
１つ以上の実施形態では、非ECDSA署名方式を含む他の閾値方式が使用されてよい。
【００６４】
ブロックチェーンネットワーク内のノードは、選択されたデジタル署名方式に基づき交換所プロトコルを実装してよい。このようなノードは、交換所プロトコルを実装する、メモリ２２０に格納されたコンピュータ実行可能命令を含んでよい。このような命令は、プロセッサ２１０により実行されると、（電子装置２００のような）ノードに、交換所プロトコルの１つ以上の方法を実行させる。このような方法は、限定ではないが、図３、５、８、１３、及び１５の処理３００、５００、８００、１３００、又は１５００のうちの任意の１つ又は組み合わせにより実装される方法をふくみ得る。したがって、交換所プロトコルは、図３、５、８、１３、及び１５の処理３００、５００、８００、１３００、又は１５００の１つ以上を含んでよい。処理は、ノードにより実行されてよく、又はブロックチェーンネットワークの他のノードにより協力して実行されてよい。
【００６５】
図３は、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションを実行する例示的な処理３００をフローチャート形式で示す。処理３００は、図１と関連して説明したブロックチェーンネットワーク１００のようなブロックチェーンネットワークの、図１と関連して説明したノード１０２のうちの１つのようなノードにより実行されてよい。つまり、図１と関連して記載したノード１０２のうちの１つのようなノードは、図３と関連して記載した交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行するために、例示的な処理３００を実行してよい。
【００６６】
交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理３００のステップ３０２で、パーティは、暗号通貨デポジットを交換所プラットフォームにアタッチし、少なくとも図４〜６に関連して後述する共有鍵を用いて資金及び返金トランザクションを生成する。
【００６７】
交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理３００のステップ３０４で、パーティは、少なくとも図７〜１１に関連して後述するように、新しい返金トランザクション及び新しい共有鍵を生成するスライドプロトコルを用いて、デポジットの所有権を第２パーティへ転送する（つまり、デポジットを第１パーティから第２パーティに再関連付けする）。
【００６８】
交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理３００のステップ３０６で、交換所プラットフォームから暗号通貨トランザクションをデタッチするか否かが決定される（つまり、現在所有者により、暗号通貨デポジットを請求するか否かが決定される）。
【００６９】
交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理３００のステップ３０６で、暗号通貨トランザクションを交換所プラットフォームからデタッチすると決定された場合、交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理３００のステップ３０８で、デポジットの現在所有者は、少なくとも図１２及び１３に関連して後述するように、現在共有鍵を用いてデポジットを交換からデタッチする。
【００７０】
交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理３００のステップ３０６で、暗号通貨トランザクションを交換所プラットフォームからデタッチすると決定されなかった場合、交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理３００のステップ３１０で、タイムアウト期限切れとなり、現在デポジットの現在所有者は、少なくとも図１４及び１５に関連して後述するように、現在受取人は、返金トランザクションを発行して、デポジットを前の所有者に返す。
【００７１】
図３に示した例示的な処理３００で実行される動作のうちの１つ以上は、並列を含む種々の順序及び組み合わせで実行されてよいことに留意する。
【００７２】
図４は、信頼できないパーティ間のオフチェーン暗号通貨トランザクションのアタッチ段階が交換所プラットフォームを用いて実行される例示的環境４００のブロック図形式で示す。例示的な環境４００のブロック図のブロックの各々は、以下に図５及び図６と関連して詳述される。
【００７３】
パーティ４０２は、暗号通貨デポジット４０６を交換所プラットフォーム４０８にアタッチすることにより、信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を開始してよい４０４。一実施形態では、パーティ４０２は、図１と関連して記載したノード１０２のうちの１つのようなノードである。暗号通貨４０６は、ビットコインに基づいてよく、又は交換所プラットフォーム４０８によりアタッチ可能であると定められた何からの他の同様の暗号通貨に基づいてよい。
【００７４】
パーティ４０２及び交換４０８は、次に、協力して、共有公開鍵４１０を生成する。共有公開鍵４１０は、パーティ４０２が、本願明細書に記載のようにブロックチェーン４１６にブロードキャストされる（４１４）トランザクション４１２を生成するために使用する。一実施形態では、トランザクション４１２は、暗号通貨デポジット４０６から払い出し、共有鍵４１０を生成可能な任意のパーティに支払可能である（つまり、トランザクション４１２は、暗号通貨デポジット４０６からの額を共有公開鍵４１０に支払う）。一実施形態では、トランザクション４１２は、暗号通貨デポジット４０６から払い出し、共有公開鍵４１０に関連付けられた秘密鍵に対応する署名を提供可能な任意のパーティに支払可能である（つまり、トランザクション４１２は、暗号通貨デポジット４０６からの額を共有公開鍵４１０に関連付けられた秘密鍵に対応する署名を提供可能なエンティティに支払う）。一実施形態では、トランザクション４１２は、暗号通貨デポジット４０６の全体を払い出す。一実施形態では、トランザクション４１２は、暗号通貨デポジット４０６の一部を払い出し、１つ以上の他のトランザクションは、暗号通貨デポジット４０６の他の部分を払い出す。共有公開鍵４１０は、本願明細書に記載のように、パーティ４０２及び交換所プラットフォーム４０８の秘密鍵、並びにパーティ４０２及び交換所プラットフォーム４０８の公開鍵から生成される。
【００７５】
パーティ４０２は、パーティが何からの時間の経過後に暗号通貨デポジット４０６を再キャプチャすることを可能にする返金トランザクション４１８も生成する。一実施形態では、返金トランザクション４１８時間期間（本願明細書で「タイムアウト」とも呼ばれ、t０と表記される）は、１つ以上のコンピュータシステムにより維持される時間のような将来の時間に基づく。一実施形態では、返金トランザクション時間期間は、ブロックチェーン４１６の将来のブロック高（例えば、ブロックチェーンの現在ブロック数より多いブロックチェーン内のブロック数）に基づく。留意すべきことに、返金トランザクション時間期間は、実質的にアタッチの期待寿命より長くてよい。例えば、期待アタッチ機関が、アタッチが介したときから３０日である場合、返金トランザクション４１８時間期間は９０日であってよい。パーティは、返金トランザクションをブロードキャストするのではなく、返金トランザクション４１８を保存する。パーティは、後述のように、タイムアウト期限切れのとき、返金トランザクション４１８をブロードキャストしてよい。
【００７６】
図４に示さないが、パーティ４０２及び交換所プラットフォーム４０８は、本願明細書に記載のように、２者ECDSAプロトコルを用いて、共有公開鍵４１０により返金トランザクション４１８に共同署名する。
【００７７】
留意すべきことに、暗号通貨デポジット４０６のセキュリティは、本願明細書に記載のように２者ECDSAの使用と組み合わせて、完全な秘密鍵の複数分割から導出される。共有公開鍵４１０はアタッチ中に計算されるが、後述のように、どのパーティも、デタッチにおいて再構成されるまで、どの時点においても完全な秘密鍵を知らない。
【００７８】
後述のように鍵シェアは更新されるので、秘密鍵の鍵シェアは無効になる。しかしながら、前のパーティの鍵シェアの無効化は、交換所プラットフォーム４０８が鍵シェアを置き換え及び鍵シェアの前の値の全ての記録を削除することに依存する。このプロトコルに従う場合、現在交換所プラットフォーム４０８鍵シェアが現在所有者以外の誰とも衝突しない限り、方式は、アタッチの場合にセキュアにされる。したがって、交換所プラットフォーム４０８が鍵シェアを置き換え及び鍵シェアの前の値の全ての記録を削除するプロトコルに従うならば、交換所プラットフォーム４０８は、暗号通貨デポジット４０６のセキュリティを維持するために信頼される必要がなくてよい。
【００７９】
交換所プラットフォーム４０８が不誠実に振る舞い、鍵シェアの前の反復の記録を保持する場合、交換所プラットフォーム４０８が完全なキーを再生成するために資金の前の所有者と共謀する可能性がある。この共謀は、ビジネスとして交換所プラットフォーム４０８の長期的関心である可能性は低い。しかしながら、悪意ある主体は、交換所プラットフォームの主導権を握り、トランザクションが処理されるとき全ての情報を記録する可能性がある。本例では、悪意ある主体は、また、完全なキーを再生成するために、資金の前の所有者と共謀する必要があり得る。攻撃は、交換及びデポジット鍵の両方の同時窃盗、又は資金の前の合法所有者との共謀を必要とするので、悪意ある主体が交換所プラットフォーム４０８を危うくする可能性は限定的である。
【００８０】
上述のように、一実施形態では、交換所プラットフォーム４０８はTEEを含んでよい。上述の実施形態では、システムのセキュリティを維持するために、交換所プラットフォームが鍵シェアを置換し、鍵シェアの前の値の全ての記録を削除することさえ、要求されない。TEE内で交換所プロトコルを動作させることにより、交換所鍵シェアはTEEにより更に保護される。代替として、TEEは、他の参加者にリモートで、TEE内でプロトコルに従うこと及びその結果、交換所プラットフォーム４０８が鍵シェアを発見し又は記録することが不可能であることを、証明（アテステーション）できる。このような一実施形態では、交換所プラットフォーム４０８は、TEE内で出資することを要求される唯一のパーティである。他の参加者は、交換所プロトコルを実装するためにTEEを要求しない。
【００８１】
図５は、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００をフローチャート形式で示す。処理５００は、図１と関連して説明したブロックチェーンネットワーク１００のようなブロックチェーンネットワークの、図１と関連して説明したノード１０２のうちの１つのようなノードにより実行されてよい。つまり、図１と関連して記載したノード１０２のうちの１つのようなノードは、図５と関連して記載した交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションのアタッチ段階を実行するために、例示的な処理５００を実行してよい。
【００８２】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００のステップ５０２で、パーティは暗号通貨デポジットを交換所にアタッチし始める。
【００８３】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００のステップ５０４で、パーティはアタッチ秘密鍵及び返金秘密鍵を生成する。一実施形態では、パーティは、アタッチ秘密鍵及び返金秘密鍵を、鍵生成サービスにより提供される疑似乱数生成器のような、計算上セキュアな疑似乱数生成器を用いて生成する。
【００８４】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００のステップ５０６で、パーティはアタッチ秘密鍵に対応するアタッチ公開鍵を計算し、アタッチ公開鍵を交換所へ送信する。一実施形態では、パーティは、アタッチ秘密鍵に対応するアタッチ公開鍵を、楕円曲線暗号法（ECC）演算を用いて計算する。
【００８５】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００のステップ５０８で、交換所は交換所秘密鍵を生成する。一実施形態では、交換所は、交換所秘密鍵を、鍵生成サービスにより提供される疑似乱数生成器のような、計算上セキュアな疑似乱数生成器を用いて生成する。
【００８６】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００のステップ５１０で、交換所は交換所秘密鍵に対応する交換所公開鍵を計算し、交換所公開鍵をパーティへ送信する。一実施形態では、交換所は、交換所秘密鍵に対応する交換所公開鍵を、ECCを用いて計算する。
【００８７】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００のステップ５１２で、パーティ及び交換所はそれぞれ、後述のように、それらの秘密鍵及び受信した公開鍵から、共有公開鍵を生成する。一実施形態では、パーティ及び交換所は、共同で彼らの生成した共有公開鍵を他者の生成した共有公開鍵と比較することにより、ここまでに計算を検証できる（例えば、パーティは該パーティの生成した共有公開鍵を交換所の生成した共有公開鍵と比較でき、逆も同様である）。値は同じであるべきである。この点で計算を共同で検証する前に、パーティの生成した共有公開鍵及び交換所の共有公開鍵は、本願明細書で候補共有鍵と呼ばれてよい。したがって、例えば、パーティの生成した共有公開鍵は、本願明細書では第１候補共有価値と呼ばれてよく、交換所の共有公開鍵は、本願明細書では第２候補共有鍵と呼ばれてよい（又はその逆）。パーティ及び交換所は、第１候補共有鍵が第２候補共有鍵と同じであることを検証することにより、この点で共同で計算を検証できる。
【００８８】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００のステップ５１４で、本願明細書に記載のように、パーティは、共有公開鍵を用いて暗号通貨の額を支払うために、暗号通貨トランザクションを生成する。
【００８９】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００のステップ５１６で、パーティは返金秘密鍵に対応する返金公開鍵を計算し、返金公開鍵を交換所へ送信する。一実施形態では、パーティは、返金秘密鍵に対応する返金公開鍵を、ECCを用いて計算する。
【００９０】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００のステップ５１８で、パーティは、タイムアウト値を有する返金トランザクションを、返金公開鍵を用いて生成する。その結果、パーティは、返金秘密鍵を用いて指定されたタイムアウト値の後に返金を請求できる。
【００９１】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００のステップ５２０で、パーティ及び交換所は、後述のように、パーティが将来の使用のために保存する返金トランザクションに共同で署名する。一実施形態では、パーティ及び交換所は、２者ECDSAを用いて、パーティのアタッチ秘密鍵及び交換所のアタッチ秘密鍵に基づき、返金トランザクションに共同で署名する。
【００９２】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００のステップ５２２で、パーティは、パーティのアタッチ秘密鍵及び交換所のアタッチ公開鍵に基づき、返金トランザクションの共同署名を検証する。
【００９３】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理５００のステップ５２４で、本願明細書に記載のように、パーティは、暗号通貨トランザクションを暗号通貨ネットワークに（例えば、ビットコインネットワークのブロックチェーンに）ブロードキャストする。
【００９４】
図５に示した例示的な処理５００で実行される動作のうちの１つ以上は、並列を含む種々の順序及び組み合わせで実行されてよいことに留意する。
【００９５】
図６は、交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションのアタッチ段階のデータフロー図６００を示す。パーティ６０４は、オフチェーン暗号通貨トランザクションのアタッチ段階を開始し、アタッチ秘密鍵（S１）及び返金秘密鍵（Y１）を生成する６０８。パーティ６０４は、次に、アタッチ公開鍵（S１×G）をECCにより計算し６１０、アタッチ公開鍵を交換所６０２へ送信する。
【００９６】
交換所６０２は、交換所秘密鍵（SE）を生成し６０６、アタッチ公開鍵（S１×G）をパーティ６０４から受信することに応答して、交換所アタッチ公開鍵（SE×G）をECCにより計算し６１２、交換所アタッチ公開鍵をパーティ６０４へ送信する。
【００９７】
パーティ６０４は、共有公開鍵（A）を、（ECCにより）パーティのアタッチ秘密鍵（S１）に交換所のアタッチ公開鍵（SE×G）を乗じることにより計算する６１６。留意すべきことに、パーティ６０４は、交換所のアタッチ秘密鍵（SE）へのアクセスを有しないが、交換所６０２から受信された交換所のアタッチ公開鍵（SE×G）の計算結果へのアクセスを有するだけである。
【００９８】
パーティ６０２は、共有公開鍵（A）を、（ECCにより）交換所のアタッチ秘密鍵（SE）にパーティのアタッチ公開鍵（S１×G）を乗じることにより計算する６１４。本願明細書で使用されるように、（例えば、S１×Gの計算における）シンボル「×」は、楕円曲線乗算演算を示し、整数（例えばS１）が楕円曲線上の「点」（例えばG）で乗算される。留意すべきことに、交換所６０２は、パーティのアタッチ秘密鍵（S１）へのアクセスを有しないが、パーティ６０４から受信されたパーティのアタッチ公開鍵（S１×G）の計算結果へのアクセスを有するだけである。ECCの特性により、交換所６０２の共有公開鍵（A）（SE×（S１×G））はパーティ６０４の共有公開鍵（A）（S１×（SE×G））と同じであり、共有公開鍵（A）は、共有公開鍵が共有秘密鍵（S）から公開鍵を計算することにより生成された場合、同じである。ここで、共有秘密鍵は（SE＊S１）又は（S１＊SE）である。本願明細書で使用されるように、シンボル「＊」は、（上述のようにシンボル「×」で示される楕円曲線乗算とは反対に）標準的乗算を示す。したがって、A＝S×Gである。
【００９９】
図６に示すように、パーティ６０４は、暗号通貨トランザクション６１８（Tx０で示される）を生成し、暗号通貨トランザクション６１８を暗号通貨ネットワーク６２０にブロードキャストする。一実施形態では、パーティ６０４は、図５と関連して記載したように、暗号通貨トランザクション６１８の暗号通貨ネットワーク６２０へのブロードキャストを、パーティが返金トランザクションの署名を検証し、アタッチ段階を完了した後まで、遅らせる。
【０１００】
パーティ６０４は、返金公開鍵（B１）を返金秘密鍵（Y１）からECCにより計算し６２２（例えば、B１＝Y１×G）、返金公開鍵（B１）を用いて、タイムアウト値toを有する返金トランザクション６３０（Ｔｘ１として示される）を生成し、返金公開鍵（B１）を交換所へ送信する。結果として、後述のように、返金トランザクション６３０が暗号通貨ネットワーク６２０にブロードキャストされた場合、返金公開鍵（B１）が後に使用できる。
【０１０１】
パーティ６０４及び交換所６０２は、交換所のアタッチ秘密鍵（SE）及びパーティのアタッチ秘密鍵（S１）に基づき署名（Sig（SE,S１））を計算する６２８ために２者ECDSAを用いて、返金トランザクション６３０に共同で署名し、それによりアタッチ段階を完了する。
【０１０２】
図７は、信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階が交換所プラットフォームを用いて実行される例示的環境７００をブロック図形式で示す。第１パーティ７０２（図７で「パーティ１」として示される）は、本願明細書に記載のように、交換所プラットフォーム７０４にアタッチされる複数の暗号通貨デポジット７０８のうちの１つであってよい暗号通貨デポジット７０６のための、交換所プラットフォーム７０４との共有鍵７１０を有する。第１パーティ７０２は、タイムアウトt０を有する返金トランザクション７１２を有する。
【０１０３】
図８〜１０で後述するように、第１パーティ７０２が暗号通貨デポジット７０６のうちの一部又は全部の所有権を第２パーティ７１４（図７で「パーティ２」として示される）へ転送する場合、第２パーティ７１４及び交換所プラットフォーム７０４は、新しい共有鍵７１６を本願明細書に記載の技術を用いて生成し、第２パーティ７１４は、タイムアウトt０−tcを有する返金トランザクション７１８を生成する。ここで、上述のように、tcは少なくとも部分的に所望のアタッチ期間に基づき選択される。一実施形態では、tcは、ビットコインネットワーク内のトランザクションの期待確認時間より長くなるよう選択される。例えば、ビットコインネットワーク内のトランザクションの期待確認時間が１時間（つまり、１０分ごとに６ブロック）である場合、tcは１時間より長くなるよう選択される。第１パーティ７０２が、暗号通貨デポジット７０６の一部又は全部の所有権を第２パーティ７１４へ転送するとき（例えば、第１パーティが暗号通貨デポジットの少なくとも一部の所有権を転送するとき）、所有権を転送する動作は、本願明細書で「暗号通貨デポジットを再関連付けする」又は「デジタルアセットを再関連付けする」（例えば、「デジタルアセットを第１パーティから第２パーティに再関連付けする」又は「デジタルアセットの一部を第１パーティから第２パーティに再関連付けする」）と表されてよい。
【０１０４】
例えば、所望のアタッチ期間が３０日であり、t０が所望のアタッチ期間より長くなるよう選択された（例えば９０日）場合、tcは、特定パーティへの返金のための充分な時間が生成できるよう、一方で、所有権の充分な数の転送が、暗号通貨デポジット７０６の終了前に発生できるように、選択されてよい。例えば、tcが３０分（又は、一実施形態では、ブロック当たり１０分の確認時間で、３ブロック）である場合、t０−n＊tc（n＝２８８０）が３０日（例えば、所望のアタッチ期間）より少なくなる前に、所有権の約２８８０個の転送が発生できる。言い換えると、tcが３０分の場合、１日２４時間当たり４８個の返金期間があり、６０日で２８８０個の返金期間がある。
【０１０５】
第２パーティ７１４及び交換所プラットフォーム７０４が新しい共有鍵７１６を生成し、新しい共有鍵７１６が有効であるとき７２０、共有鍵７１６は無効になり７２２、もはや暗号通貨デポジット７０６を請求するために使用できない。したがって、常に、１つの共有鍵（例えば、共有鍵７１０又は新しい共有鍵７１６）だけが有効であり、この有効な共有鍵は暗号通貨デポジット７０６の現在所有権を示す。
【０１０６】
図８は、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００をフローチャート形式で示す。処理８００は、図１と関連して説明したブロックチェーンネットワーク１００のようなブロックチェーンネットワークの、図１と関連して説明したノード１０２のうちの１つのようなノードにより実行されてよい。つまり、図１と関連して記載したノード１０２のうちの１つのようなノードは、図８と関連して記載した交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階を実行するために、例示的な処理８００を実行してよい。
【０１０７】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８０２で、第１パーティは交換所にアタッチされた暗号通貨デポジットの所有権を第２パーティへ転送し始める。
【０１０８】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８０４で、第２パーティは新しいアタッチ秘密鍵及び新しい返金鍵を生成する。一実施形態では、第２パーティは、新しいアタッチ秘密鍵及び新しい返金秘密鍵を、鍵生成サービスにより提供される疑似乱数生成器のような、計算上セキュアな疑似乱数生成器を用いて生成する。
【０１０９】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８０６で、交換所は交換所秘密鍵にランダム値を乗じ、結果を第２パーティへ送信する。ランダム値は、交換所秘密鍵が全てのパーティ（第１パーティ及び第２パーティを含む）から隠されるようにするランダム値（本願明細書で、ランダムブラインドナンスとも呼ばれる）である。一実施形態では、ランダム値は、鍵生成サービスにより提供される疑似乱数生成器のような、計算上セキュアな疑似乱数生成器を用いて生成される。
【０１１０】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８０８で、第２パーティは、交換所から受信した値に新しいアタッチ秘密鍵の逆数（つまり、第２パーティのアタッチ秘密鍵の逆数）を乗じて、この乗算の結果を第１パーティへ送信する。
【０１１１】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８１０で、第１パーティは、第２パーティから受信した値に、第１パーティのアタッチ秘密鍵を乗じ、この乗算の結果を交換所へ送信する。
【０１１２】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８１２で、交換所は、第１パーティから受信した値に、ランダム値の逆数を乗じ、この結果を新しい交換所秘密鍵として格納する。第１パーティから受信した値にランダム値の逆数を乗算することにより、交換所プラットフォームは、ステップ８０６で交換所により実行されたランダムブラインドナンスの初期ブラインドを逆転させる。結果として生じた値は、第１パーティのアタッチ秘密鍵及び第２パーティのアタッチ秘密鍵の逆数と結合した交換所アタッチ秘密鍵である。この結果として生じた値は、交換所の新しいアタッチ秘密鍵になり、交換所の古いアタッチ秘密鍵は破棄される。
【０１１３】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８１４で、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８１２の後に、第２パーティのアタッチ秘密鍵は本願明細書に記載のように有効になり、第１パーティのアタッチ秘密鍵は無効になる（つまり、第１パーティのアタッチ秘密鍵はもはや暗号通貨デポジットを分配するために使用できない）。第１パーティのアタッチ秘密鍵はもはや交換所秘密アタッチ鍵（例えば、新しい交換所秘密アタッチ鍵）に対応しなくなるので、第１パーティのアタッチ秘密鍵は、前の交換所アタッチ秘密鍵の破棄に起因して、無効になる。
【０１１４】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８１６で、図５のステップ５１２と関連して上述したように、第２パーティは、新しいアタッチ秘密鍵を、交換所と共同で検証する（例えば、第２パーティ及び交換所の両者は、共有公開鍵を生成し、生成した値を比較して、それらが同じことを保証する）。
【０１１５】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８１８で、第２パーティは新しい返金公開鍵を新しい返金秘密鍵から計算し、新しい返金公開鍵を交換所へ送信する。一実施形態では、第２パーティは、新しい返金公開鍵を新しい返金秘密鍵からECCを用いて計算する。
【０１１６】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８２０で、本願明細書に記載のように、第２パーティは、第１パーティの返金トランザクションタイムアウト値より前の新しいタイムアウト値を有する新しい返金公開鍵を生成する。
【０１１７】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８２２で、第２パーティ及び交換所は、本願明細書に記載のように、第２パーティが将来の使用のために保存する新しい返金トランザクションに共同で署名する。
【０１１８】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理８００のステップ８２４で、第２パーティは、第２パーティのアタッチ秘密鍵及び交換所のアタッチ公開鍵に基づき、新しい返金トランザクションの共同署名を検証する。
【０１１９】
図８に示した例示的な処理８００で実行される動作のうちの１つ以上は、並列を含む種々の順序及び組み合わせで実行されてよいことに留意する。
【０１２０】
図９は、交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階のデータフロー図の第１部分９００を示す。第１パーティ９０４（図９及び図１０の「パーティ１」として示される）は、オフチェーン暗号通貨トランザクションの転送段階を開始して、交換所９０２にアタッチされた暗号通貨デポジットの所有権を転送する。図９に示す例では、第１パーティ９０４は、暗号通貨デポジットの所有権を、第１パーティ９０４から第２パーティ９０６（図９及び図１０の「パーティ２」として示される）へ転送している。
【０１２１】
交換所９０２は、ランダム値（R）を生成し９０８、該ランダム値を用いて交換所のブラインドアタッチ秘密鍵（RSE）を計算する９１２。上述のように、ランダム値（本願明細書ではランダム「ブラインドナンス」とも呼ばれる）は、交換所のアタッチ秘密鍵（SE）がパーティのうちのいずれによっても又は任意の悪意ある攻撃者によって決定できないことを保証する。交換所９０２は、交換所のブラインドアタッチ秘密鍵（RSE）を第２パーティ９０６へ送信する。
【０１２２】
第２パーティ９０６は、上述のように、アタッチ秘密鍵（S２）及び返金秘密鍵（Y２）を生成する９１０。第２パーティ９０６は、交換所のブラインドアタッチ鍵（RSE）にアタッチ秘密鍵のモジュラ逆数（S２−１）を乗じることにより、中間鍵値を計算する９１４。第２パーティ９０６は、この乗算の結果（RSES２−１）を第１パーティ９０４へ送信する。
【０１２３】
第１パーティ９０４は、第２パーティから受信した値（RSES２−１）に第１パーティ９０４のアタッチ秘密鍵（S１）を乗じることにより、第２中間鍵値を計算する９１６。第１パーティ９０４は、この乗算の結果（RSES２−１S１）を交換所９０２へ送信する。
【０１２４】
交換所９０２は、第１パーティ９０４から受信した値（RSES２−１S１）にランダムブラインドナンス（R）の逆数（R−１）を乗じることにより、新しいアタッチ秘密鍵（SES２−１S１）を計算する９１８。交換所９０２が前のアタッチ秘密鍵（SE）を新しい秘密鍵（SES２−１S１）で置き換えるとき９２０、本願明細書に記載のように、第１パーティ９０４の秘密アタッチ鍵（S１）は無効になる９２２。
【０１２５】
留意すべきことに、第１パーティ９０４の秘密アタッチ鍵（S１）が無効に成った場合でも９２２、完全な共有秘密鍵（S）及び対応する共有公開鍵（A）は不変のままであり、しかし、交換所９０２の新しい秘密アタッチ鍵（SEnew）及び第２パーティ９０６の秘密アタッチ鍵（S２）からのみ構成できる。この理由は次の通りである：
Snew=SEnewS２=(SEoldS２−１S１)S２=(SEoldS１S２−１)S２=(SEoldS１)(S２−１S２)=(SEoldS１)=Sold
しかし、交換所９０２がプロトコルを正しく運用している場合、SnewはSEnewS１に等しくなく、SEoldはもはや存在しない。
【０１２６】
図１０は、交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階のデータフロー図の第２部分１０００を示す。信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階のデータフロー図の第２部分１０００は、図９に示したデータフロー図の第１部分９００に続く。ここで、第１パーティ９０４（図１０の第１パーティ１００４に対応する）は、暗号通貨デポジットの所有権を、第１パーティ９０４から第２パーティ９０６（図１０の第１パーティ１００６に対応する）へ転送している。
【０１２７】
交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階のデータフロー図の第２部分１０００では、第１パーティ１００４は参加しない。第２パーティ１００６は、アタッチ秘密鍵（S２）に対応するアタッチ公開鍵（S２×G）をECCを用いて計算し１００８、アタッチ公開鍵を交換所１００２（図９に記載の交換所９０２に対応する）へ送信する。
【０１２８】
交換所１００２は、新しい交換所アタッチ秘密鍵（SE）に対応するアタッチ公開鍵（SE×G）も計算し１０１０、アタッチ公開鍵を第２パーティ１００６へ送信する。
【０１２９】
第２パーティ１００６は、共有公開鍵（A）を、（ECCにより）第２パーティのアタッチ秘密鍵（S２）に交換所のアタッチ公開鍵（SE×G）を乗じることにより計算する１０１４。留意すべきことに、第２パーティ１００６は、交換所のアタッチ秘密鍵（SE）へのアクセスを有しないが、交換所１００２から受信された交換所のアタッチ公開鍵（SE×G）の計算結果へのアクセスを有するだけである。
【０１３０】
交換所１００２は、共有公開鍵（A）を、（ECCにより）交換所のアタッチ秘密鍵（SE）に第２パーティのアタッチ公開鍵（S２×G）を乗じることにより計算する１０１２。留意すべきことに、交換所１００２は、第２パーティのアタッチ秘密鍵（S２）へのアクセスを有しないが、第２パーティ１００６から受信された第２パーティのアタッチ公開鍵（S２×G）の計算結果へのアクセスを有するだけである。ECCの特性により、交換所１００２の共有公開鍵（A）（SE×（S２×G））は第２パーティ１００６の共有公開鍵（A）（S２×（SE×G））と同じであり、共有公開鍵（A）は、共有公開鍵が共有秘密鍵（S）から公開鍵を計算することにより生成された場合、同じである。ここで、共有秘密鍵は（SE＊S２）又は（S２＊SE）である。したがって、上述のようにA＝S×Gである。一実施形態では、転送段階の動作の後に、A及び共有秘密鍵Sの両者は不変のままである。
【０１３１】
第２パーティ１００６は、本願明細書に記載のように、返金公開鍵（B２）を返金秘密鍵（Y２）からECCにより計算し１０１６（例えば、B２＝Y２×G）、返金公開鍵（B２）を用いて、タイムアウト値to−tcを有する返金トランザクション１０２４（Ｔｘ２として示される）を生成し、返金公開鍵（B１）を交換所へ送信する。結果として、後述のように、返金トランザクション６３０が暗号通貨ネットワーク６２０にブロードキャストされた場合、返金公開鍵（B１）が後に使用できる。
【０１３２】
第２パーティ１００６及び交換所１００２は、交換所のアタッチ秘密鍵（SE）及び第２パーティのアタッチ秘密鍵（S２）に基づき署名（Sig（SE,S２））を計算する１０２２ために２者ECDSAを用いて、返金トランザクション１０２４に共同で署名し、それにより転送段階を完了する。
【０１３３】
図１１は、信頼できないパーティ間のオフチェーン暗号通貨トランザクションの複数の所有権転送が交換所プラットフォームを用いて実行される例示的環境１１００をブロック図形式で示す。交換所プラットフォーム１１０２は、本願明細書に記載のように、ランダムブラインドナンス（R）で乗算した現在アタッチ秘密鍵（SE）１１０４を有する。結果（RSE）１１０８は、パーティ１１１０（この場合、第４パーティ、「P４」と示される）に提供される。図１１に示す例では、パーティ１１１０は所有権の転送先のパーティであり、パーティ１１１６（この場合、第３パーティ、「P３」と示される）は所有権の転送元のパーティである。
【０１３４】
パーティ１１１０は、上述のように、結果（RSE）１１０８を用いて、タイムアウト値t０−３tcを有する返金トランザクション１１１２（Tx４と示される）を生成する。パーティ１１１０は、上述のように、結果（RSE）１１０８を、パーティ１１１０のアタッチ秘密鍵（S４）の逆数（S４−１）と結合して、中間鍵値（RSES４−１）を生成する。
【０１３５】
中間鍵値（RSES４−１）１１１４は、タイムアウト値t０−２tcを有する前の返金トランザクション１１１８（Tx３と示される）を有するパーティ１１１６に提供される。パーティ１１１６は、中間鍵値（RSES４−１）１１１４にパーティ１１１６のアタッチ秘密鍵（S３）を乗じることより、中間鍵値（RSES４−１）１１１４を用いて中間鍵値（RSES４−１S３）１１２０を生成する。
【０１３６】
パーティ１１１６は、中間鍵値（RSES４−１S３）１１２０を交換所１１０２へ送信する。交換所１１０２は、新しいアタッチ秘密鍵（SES４−１S３）を中間鍵値（RSES４−１S３）１１２０から抽出する。交換所１１０２は、中間鍵値（RSES４−１S３）１１２０からの新しいアタッチ秘密鍵（SES４−１S３）を用いて、古いアタッチ秘密鍵（SE）を置き換える１１２２。
【０１３７】
交換所１１０２が、中間鍵値（RSES４−１S３）１１２０からの新しいアタッチ秘密鍵（SES４−１S３）を用いて、古いアタッチ秘密鍵（SE）を置き換えると１１２２、パーティ１１１６からのアタッチ秘密鍵（S３）は無効になる１１３６。
【０１３８】
図１１に示す例では、交換所１１０２が中間鍵値（RSES４−１S３）１１２０からの新しいアタッチ秘密鍵（SES４−１S３）を用いて古いアタッチ秘密鍵（SE）を置き換える１１２２ときより前には、現在アタッチ秘密鍵（SE）１１０４は、パーティ１１２４（「P２」と示される）からパーティ１１１６への所有権転送の結果として生成された秘密アタッチ鍵（SES３−１S２）１１２８と同じである。同様に、前の秘密アタッチ鍵（SES２−１S１）１１３４は、パーティ１１３０（「P２」と示される）からパーティ１１２４への所有権転送（つまり、上述の第１所有権転送）の結果として生成される。
【０１３９】
図１１に示す例では、パーティ１１１０の返金トランザクション１１１２は、t０−３tcからt０−２tcまで使用可能であり、パーティ１１１６の前の返金トランザクションは、t０−２tcからt０−tcまで使用可能であり、パーティ１１２４の返金トランザクション１１２６は、t０−tcからt０まで使用可能であり、パーティ１１３０（つまり第１パーティ）の返金トランザクション１１３２は、t０の後に使用可能である。
【０１４０】
図１１に示す例では、SEが更新される度に、前の鍵シェアは無効になり、SEが後に漏洩したとしても使用できない。転送の速度は、通信チャネル遅延により及び／又は本願明細書に記載の動作の実行時間により制限されてよい。想定されるように、算術演算のコストは無視でき、ECC演算は現代のCPUにおいてミリ秒未満で計算され得る。２者ECDSAは、より効率的であり、計算に数秒しかかからない。しかしながら、２者ECDSAは返金トランザクションを要求されるだけである。ほぼ即時の転送は、パーティの各々がオンラインであり、転送動作に関連付けられた要求に応答する場合に、行われ得る。
【０１４１】
所有権の変化の度に、新しい返金トランザクションが生成され、前に発行された返金トランザクションより早くtcに設定されたタイムアウトで署名される。有効になるために、後述のように、返金トランザクションは、タイムアウトが終了した後に、ブロックチェーンネットワークにブロードキャストされなければならない。タイムアウトが終了した後に、返金トランザクションをブロックチェーンネットワークにブロードキャストすることは、交換所が協力しない又はできない場合に、前のバックアップを無効にする。したがって、第１所有者P１について、タイムアウトはt０に設定され、所有者Pnについてタイムアウトはt０−ntcに設定される。一実施形態では、交換所の任務は、暗号通貨デポジット毎に、t０の記録、値tc、及び現在のnを保つことである。
【０１４２】
図１２は、信頼できないパーティ間のオフチェーン暗号通貨トランザクションのデタッチ段階が交換所プラットフォームを用いて実行される例示的環境１２００をブロック図形式で示す。図１２に示す例では、パーティ１２０２（「パーティn＋１」と示される）が、交換所１２０４にアタッチされた暗号通貨デポジット１２０６のデタッチ１２１４を開始する。上述のように、暗号通貨デポジット１２０６は、交換所１２０４にアタッチされた複数の暗号通貨デポジット１２０８のうちの１つであってよい。
【０１４３】
一実施形態では、上述のように例えば前のトランザクションが暗号通貨デポジット１２０６の１つ以上の部分の所有権を転送したとき、パーティ１２０２は、暗号通貨デポジット１２０６の全体量より少ないデタッチ１２１４を開始してよい。
【０１４４】
パーティ１２０２は、現在共有鍵１２１０により暗号通貨デポジット１２０６の現在所有者として指定される。現在共有鍵１２１０は、本願明細書に記載のように交換所のアタッチ秘密鍵（SE）及びパーティ１２０２のアタッチ秘密鍵（Sn+１）から生成される。図１２に示す例では、パーティ１２０２は、t０−ntcのタイムアウトを有する返金トランザクション１２１２を有し、パーティ１２０２は現在所有者なので、この返金トランザクションタイムアウトは前の所有者の返金トランザクションのうち最も早い。
【０１４５】
パーティ１２０２が暗号通貨デポジット１２０６の一部又は全部のデタッチ１２１４を開始するとき、暗号通貨デポジット１２０６のパーティ１２０２への進行を提供するトランザクション１２１６が生成され、暗号通貨デポジット１２０６は交換所１２０４からデタッチされる。その結果、暗号通貨デポジット１２０６を用いる更なるオフチェーン暗号通貨トランザクションは実行できない。一実施形態では、交換所１２０４のアタッチ秘密鍵（SE）は、細断され又はその他の場合には破棄され、暗号通貨デポジット１２０６を用いる更なるオフチェーン暗号通貨トランザクションが実行できないことを保証する。
【０１４６】
図１３は、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００をフローチャート形式で示す。処理１３００は、図１と関連して説明したブロックチェーンネットワーク１００のようなブロックチェーンネットワークの、図１と関連して説明したノード１０２のうちの１つのようなノードにより実行されてよい。つまり、図１と関連して記載したノード１０２のうちの１つのようなノードは、図１３と関連して記載した交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションのデタッチ段階を実行するために、例示的な処理１３００を実行してよい。
【０１４７】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３０２では、上述のように、パーティは、交換所からのデタッチを要求する。
【０１４８】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３０４では、パーティが現在所有者か否か（つまり、パーティが暗号通貨デポジットを分配することを認可されているか否か）が決定される。一実施形態では、共有鍵を交換所のアタッチ秘密鍵（SE）及びパーティのアタッチ秘密鍵（例えば、第nパーティのSn）から計算することにより、パーティが現在所有者であるか否かが決定される。一実施形態では、現在所有者は、現在所有者のアタッチ公開鍵を交換所のアタッチ秘密鍵と結合し、及びその結果を共有公開鍵と比較して、それらが等しいことを保証することにより、現在所有者のアタッチ公開鍵を用いて確認できる。
【０１４９】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３０４で、パーティが現在所有者ではないと決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３０６では、デタッチが許可されない。一実施形態では、デタッチを要求するパーティは、enclaveからデタッチが許可されないことを示すメッセージを受信する。
【０１５０】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３０４で、パーティが現在所有者であると決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３０８では、本願明細書に記載のように、第１タイムアウト（つまり、最も早い開始時間を有するタイムアウト）に達したか否かが決定される。例えば、第４パーティが現在所有者であり、第４パーティがタイムアウトt０−３tcを有する返金トランザクションを有する場合、少なくとも図１１と関連して記載されたように、現在時間がタイムアウトt０−３tcの前であるならば、第１タイムアウトに達しておらず、現在時間がタイムアウトt０−３tcの後であるならば、第１タイムアウトに達している。
【０１５１】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３０８で、第１タイムアウトに達したと決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３１０では、暗号通貨デポジットの返金トランザクションが開始し、したがってデタッチは例示的な処理１３００のステップ１３０６で記載したように許可されない。
【０１５２】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３０８で、第１タイムアウトに達していないと決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３１２では、デタッチが許可される。
【０１５３】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３１４では、交換所は、現在の交換所秘密鍵をデタッチを要求するパーティへ送信する。
【０１５４】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３１６で、パーティは、交換所秘密鍵及びパーティのアタッチ秘密鍵を用いて、共有鍵を生成する（例えば、共有鍵（S）は交換所の秘密鍵（SE）にパーティの秘密アタッチ鍵（例えば、第nパーティのSn）を乗じることにより生成される）。
【０１５５】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３１８で、上述のように、パーティは、交換所と共に共有鍵を検証する。
【０１５６】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理１３００のステップ１３２０で、パーティは、共有鍵を用いて、現在時間から最も早いタイムアウトに達するまで暗号通貨デポジットからのUTXOを使用すべきトランザクションを生成する。つまり、パーティは、最も早いタイムアウトに達する前のいつでも、共有鍵を使用してトランザクションを生成する。パーティが、最も早いタイムアウトに達した後に、共有鍵を用いてトランザクションを生成するために待機する場合、トランザクションは返金の中断により失敗し得る。UTXOを「使用する」ことは、技術的意味において、トランザクションのブロックチェーンへの記録が、ブロックチェーン上の別のトランザクションのインプットとしてUTXOが使用されることを妨ぐ場合、例えばUTXOがトランザクションへのインプットとして使用されることを意味する。
【０１５７】
図１３に示した例示的な処理１３００で実行される動作のうちの１つ以上は、並列を含む種々の順序及び組み合わせで実行されてよいことに留意する。
【０１５８】
図１４は、信頼できないパーティ間のオフチェーン暗号通貨トランザクションの返金段階が交換所プラットフォームを用いて実行される例示的環境１４００をブロック図形式で示す。図１４に示す例では、現在時間１４０２は、t０−ntcである。ここで、itは第１タイムアウト期間であり、アタッチ期間より長く（例えば、３０日のアタッチ期間に対して、t０は９０日である）、tcは返金時間である（例えば、３０分又は３ブロック）。例えば、４８１個のパーティ（又は４８０個の所有権転送）がある場合、現在時間１４０２はt０−４８０＊tcであり、これは９０日−３０分の４８０倍であり、又は暗号通貨デポジットのアタッチ後８０日である。
【０１５９】
図１４に示す例では、パーティのいずれも、暗号通貨デポジットをデタッチしておらず、返金段階は現在時間に基づき開始する。第１返金期間１４０６の間、パーティ１４０８（例えば第４８１パーティ）は、自身の返金トランザクションをブロックチェーン１４１２にブロードキャストして、暗号通貨デポジットの返金を取得してよい。第２返金期間１４１４の間、パーティ１４１６（例えば第４８０パーティ）は、自身の返金トランザクションをブロックチェーン１４１２にブロードキャストして、暗号通貨デポジットの返金を取得してよい。ここで、第１返金期間１４０６の間、パーティ１４０８は、暗号通貨デポジットの返金を取得するために自身の返金トランザクションをブロックチェーン１４１２にブロードキャストしないと仮定する。交換所プロトコルが所有権の無効な転送（例えば、パーティ１４１６からパーティ１４０８への所有権の転送）から回復し得るのは第２返金期間１４１４である。
【０１６０】
返金処理は、パーティのうちの１つが自身の返金期間中に自身の返金トランザクションをブロックチェーン１４１２へブロードキャストするのに成功するまで、継続する。返金期間１４２０が終了し、パーティ１４２２（例えば第２パーティ）が自身の返金トランザクションをブロックチェーン１４１２にブロードキャストしない１４２４場合、パーティ１４２８（例えば第１パーティ）は、最後の返金期間１４２６の間に自身の返金トランザクションをブロードキャストできる１４３０。一実施形態では、交換所は、最後の返金期間１４２６の後に（例えば、時間t０に達した後に）、第１パーティへの返金トランザクションを自動生成する。
【０１６１】
留意すべきことに、返金トランザクションは、タイムアウト（ビットコインネットワークでは「ロックタイム（locktime）」とも呼ばれる）後にいつでもマイニングできる（つまりブロックチェーン上で使用できる）。つまり、パーティは、返金期間の間に返金トランザクションをマイニングすることに制限されない。パーティについてタイムアウトが経過すると、トランザクションはその時点から有効のままである。概して、最も近いタイムアウトを有するパーティは、パーティのタイムアウトが経過した後に、先ず彼らの返金トランザクションを提出する。第１返金トランザクションが確認されると、同じUTXOを参照する全ての他の返金トランザクションは、無効になる。最も近いタイムアウトを有するパーティは、彼らの返金トランザクションを最も早く提出するよう奨励される。これは、例えば、次のタイムアウト（例えば次のパーティのタイムアウト）まで該提出を遅らせることは、次のパーティが返金トランザクションをマイニングするリスクを生じるからである。例えば、第２返金期間１４１４の間、パーティ１４０８及びパーティ１４１６は、返金トランザクションをブロックチェーン１４１２にブロードキャストして、暗号通貨デポジットの返金を取得してよい。
【０１６２】
本願明細書に記載のように、最近の返金トランザクションは、最も早くブロックチェーン内にマイニングできるトランザクションである。したがって、新しい返金トランザクションの方が早く有効になり、したがって最初に使用できるので、古いトランザクション（つまり、後のタイムアウトを有する返金トランザクション）は、重複する。
【０１６３】
図１５は、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００をフローチャート形式で示す。処理１５００は、図１と関連して説明したブロックチェーンネットワーク１００のようなブロックチェーンネットワークの、図１と関連して説明したノード１０２のうちの１つのようなノードにより実行されてよい。つまり、図１と関連して記載したノード１０２のうちの１つのようなノードは、図１５と関連して記載した交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションの返金段階を実行するために、例示的な処理１５００を実行してよい。
【０１６４】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５０２で、第１タイムアウト期間に達し、本願明細書に記載のように、返金トランザクションは要求側パーティの優先度に従い開始してよい（例えば、新しい所有者は、古い所有者に優る返金優先度を有する）。
【０１６５】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５０４で、第１パーティ（例えば最新の所有者）が選択される。
【０１６６】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５０６で、選択されたパーティのタイムアウトが開始したか否かが、時間t０と、使用された返金期間tcの数に少なくとも部分的に基づき開始するか否かが決定される。
【０１６７】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５０６で、選択されたパーティのタイムアウトが開始していないと決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５０８では、返金トランザクションは所定時間において許可されない。想定されるように、最も早いパーティのタイムアウト期間が開始していない場合、後のパーティのうちのいずれかのタイムアウト期間も未だ開始していない。したがって、返金を求め得るパーティは無い。
【０１６８】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５０６で、選択されたパーティのタイムアウトが開始していると決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５１０では、次のタイムアウトに達したか否か（つまり、選択されたパーティのタイムアウトが終了したか否か）が、少なくとも使用されている時間t０及び返金期間tcの数に基づき決定される。
【０１６９】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５１０で、次のタイムアウトに達したと（つまり、選択されたパーティのタイムアウトが終了したと）決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５１２では、選択すべきより早いパーティ（例えば、所有権チェーンの中でより前にあるパーティ）が存在するか否かが決定される。
【０１７０】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５１２で、選択すべきより早いパーティが存在すると決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５０４で上述したように、次に早いパーティが選択される。
【０１７１】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５１２で、選択すべきより早いパーティが存在しないと決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５１４で、最も早いパーティが選択され、後述のように、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００はステップ１５１６で継続する。
【０１７２】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５１０で、次のタイムアウトに達したと（つまり、選択されたパーティのタイムアウトが終了したと）決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５１６では、ステップ１５０６及びステップ１５１０で決定された現在返金期間を有する選択された所有者が、保存した返金トランザクションをブロックチェーンにブロードキャストする。
【０１７３】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理１５００のステップ１５０８で、ステップ１５０６及びステップ１５１０で決定された現在返金期間を有する選択された所有者は、本願明細書に記載のようにブロードキャストされた返金トランザクションのUTXOを受信する。
【０１７４】
図１５に示した例示的な処理１５００で実行される動作のうちの１つ以上は、並列を含む種々の順序及び組み合わせで実行されてよいことに留意する。
【０１７５】
図１６は、本発明の種々の実施形態が実施できる例示的なコンピューティング装置１６００をブロック図形式で示す。図１６は、本開示の特定の少なくとも一実施形態を実施するために使用され得る例示的なコンピューティング装置１６００の簡略ブロック図を示す。種々の実施形態で、例示的なコンピューティング装置１６００は、本願明細書に示した上述のシステム又は方法のいずれかを実施するために使用されてよい。例えば、例示的なコンピューティング装置１６００は、データサーバ、ウェブサーバ、ポータブルコンピューティング装置、パーソナルコンピュータ、又は任意の電子コンピューティング装置としての使用のために構成されてよい。図１６に示すように、例示的なコンピューティング装置１６００は、多数の周辺サブシステムとバスシステム１６０４を介して動作可能に結合され及び通信するよう構成されてよい１つ以上のプロセッサ１６０２を含んでよい。プロセッサ１６０２は、本願明細書に記載のように交換所プロトコルを実施するために利用されてよい。これらの周辺サブシステムは、メモリサブシステム１６０８及びファイル記憶サブシステム１６１０を含む記憶サブシステム１６０６、１つ以上のユーザインタフェース入力装置１６１２、１つ以上のユーザインタフェース出力装置１６１４、及びネットワークインタフェースサブシステム１６１６を含んでよい。このような記憶サブシステム１６０６は、本開示に記載のトランザクション又は動作に関連する情報の一時的又は長期記憶のために使用されてよい。
【０１７６】
バスサブシステム１６０４は、例示的コンピューティング装置１６００の種々のコンポーネント及びサブシステムに、必要に応じて互いに通信させるメカニズムを提供してよい。バスサブシステム１６０４は概略的に単一バスとして示されるが、バスサブシステムの代替の実施形態は複数のバスを利用してよい。ネットワークインタフェースサブシステム１６１６は、他のコンピューティング装置及びネットワークへのインタフェースを提供してよい。ネットワークインタフェースサブシステム１６１６は、例示的なコンピューティング装置１６００からの他のシステムからデータを受信する及びそれへデータを送信するためのインタフェースとして機能してよい。例えば、ネットワークインタフェースサブシステム１６１６は、ユーザが装置を無線ネットワーク又は本願明細書に記載したような何らかの他のネットワークに接続することを可能にし得る。バスサブシステム１６０４は、本開示に記載のトランザクション又は動作に関連するデータを、１つ以上のプロセッサ１６０２に及び／又はシステム外部の他のエンティティにネットワークインタフェースサブシステム１６１６を介して通信するために利用されてよい。
【０１７７】
ユーザインタフェース入力装置１６１２は、キーボード、統合型マウスのようなポインティング装置、タッチパッド、又はグラフィックタブレット、スキャナ、バーコードスキャナ、ディスプレイに内蔵されたタッチスクリーン、音声認識システムのようなオーディオ入力装置、マイクロフォン、及び他の種類の入力装置のような、１つ以上のユーザ入力装置を含んでよい。概して、用語「入力装置」の使用は、コンピューティング装置１６００に情報を入力するためのあらゆる可能な種類の装置及びメカニズムを含むことを意図する。１つ以上のユーザインタフェース出力装置１６１４は、ディスプレイサブシステム、プリンタ、又はオーディオ出力装置のような非視覚ディスプレイ、等を含んでよい。ディスプレイサブシステムは、陰極線管（CRT）、液晶ディスプレイ（LCD）のような平面パネル装置、発光ダイオード（LED）ディスプレイ、又は投影若しくは他のディスプレイ装置を含み得る。概して、用語「出力装置」の使用は、コンピューティング装置１６００から情報を出力するためのあらゆる可能な種類の装置及びメカニズムを含むことを意図する。１つ以上の出力装置１６１４は、例えば、本願明細書に記載の処理及びその変形を実行するアプリケーションとのユーザ相互作用が適切な場合に、該相互作用を助けるために、ユーザインタフェースを提示するために使用されてよい。
【０１７８】
記憶サブシステム１６０６は、本開示の少なくとも一実施形態の機能を提供し得る基本プログラミング及びデータ構造を格納するコンピュータ可読記憶媒体を提供してよい。アプリケーション（プログラム、コードモジュール、命令）は、１つ以上のプロセッサにより実行されると、本開示の１つ以上の実施形態の機能を提供してよく、記憶サブシステム１０６０に格納されてよい。これらのアプリケーションモジュール又は命令は、１つ以上のプロセッサ１６０２により実行されてよい。記憶サブシステム１６０６は、さらに、本開示に従い使用されるデータを格納するレポジトリを提供してよい。記憶サブシステム１６０６は、メモリサブシステム１６０８及びファイル／ディスク記憶サブシステム１６１０を含んでよい。
【０１７９】
記憶サブシステム１６０８は、プログラム実行中の命令及びデータの記憶のための主ランダムアクセスメモリ（RAM）１６１８、及び固定命令が格納され得る読み出し専用メモリ（ROM）１６２０を含む多数のメモリを含み得る。ファイル記憶サブシステム１６１０は、プログラム及びデータファイル（本願明細書で非一時的コンピュータ可読記憶媒体とも呼ばれる）のための非一時的永久（不揮発性）記憶を提供してよく、ハードディスクドライブ、関連取り外し可能媒体と一緒のフロッピーディスクドライブ、コンパクトディスク読み出し専用メモリ（CD−ROM）ドライブ、光ドライブ、取り外し可能媒体カートリッジ及び他の同様の記憶媒体を含んでよい。
【０１８０】
例示的なコンピューティング装置１６００は、少なくとも１つのローカルクロック１６２４を含んでよい。ローカルクロック１６２４は、特定の開始日から生じた時間数を表すカウンタであってよく、例示的なコンピューティング装置１６００の内部に統合されて置かれてよい。ローカルクロック１６２４は、例示的なコンピューティング装置１６００のプロセッサ及びその中に含まれる全サブシステム内で、特定クロックパルスにデータ転送を同期化するために使用されてよく、例示的なコンピューティング装置１６００とデータセンタ内の他のシステムとの間の同期動作を調整するために使用されてよい。一実施形態では、ローカルクロック１６２４は原子時計である。別の実施形態では、ローカルクロックはプログラム可能な間隔タイマである。
【０１８１】
例示的なコンピューティング装置１６００は、ポータブルコンピュータ装置、タブレットコンピュータ、ワークステーション、又は本願明細書に記載の任意の他の装置を含む種々の種類であってよい。さらに、例示的なコンピューティング装置１６００は、例示的なコンピューティング装置１６００に１つ以上のポート１６２６（例えば、ヘッドホンジャック、光コネクタ、等）を通じて接続され得る別の装置を含んでよい。例示的なコンピューティング装置１６００に接続され得る装置は、光ファイバコネクタを受けるよう構成される複数のポートを含んでよい。したがって、例示的なコンピューティング装置１６００に接続され得る装置は、光信号を電気信号に変換するよう構成されてよい。該電気信号は、装置を例示的なコンピューティング装置１６００に接続するポートを通じて処理のために送信されてよい。コンポーネント及びネットワークの絶え間なく変わる特性により、図１６に示す例示的なコンピューティング装置１６００の説明は、装置の一実施形態を説明する目的で特定の例としてのみ意図される。図１６に示したシステムより多数の又は少数のコンポーネントを有する多くの他の構成が可能である。
【０１８２】
したがって本明細書と添付図面は限定的ではなく例示的であると解釈すべきである。しかしながら、請求の範囲に記載された本発明の広範な精神及び範囲から逸脱することなく種々の変更を行うことができることが明らかである。
【０１８３】
他の変形は本開示の精神の範囲内にある。したがって、開示の技術は、種々の変形及び代替構成の影響を受けるが、その特定の図示の実施形態が図面に示され、以上に詳細に記載された。しかしながら、理解されるべき点は、本発明が開示された１又は複数の特定の形式に限定されないこと、むしろ、添付の請求の範囲に記載のように、全ての変形、代案構成及び均等物が本発明の精神及び範囲に包含されることが意図される。
【０１８４】
開示の実施形態を説明する文脈における用語「a」、「an」、及び「the」、並びに同様の指示対象は（特に、以下の請求項の文脈において）、特に断りの無い限り又は文脈により明確に矛盾しないかぎり、単数及び複数の両方をカバーすると考えられるべきである。用語「含む」、「有する」、「含む」、「伴う」、「備える」（comprising、having、including、containing）は、特に断りのない限り広義の語として考えられるべきである（つまり、「を含む、しかし限定されない」を意味する）。用語「接続される」は、変更されず物理的接続を表すとき、何かが仲介する場合でも、部分的又は全体的に含まれる、取り付けられる又は一緒に結合される、として考えられるべきである。本願明細書において値の範囲の詳述は、本願明細書に特に断りの無い限り、単に、範囲に包含される各々の別個の値を個別に参照することの簡単明瞭な言い方として機能することを意図し、各々の個別の値は、それが本願明細書に個々に詳述されたかのように、本願明細書に組み込まれる。用語「セット」（例えば、「アイテムのセット」）又は「サブセット」の使用は、特に断りの無い限り又は文脈に矛盾しない限り、１つ以上の構成要素を含む空ではない集合として考えられるべきである。さらに、特に注記されない又は文脈に矛盾しない限り、対応するセットの用語「サブセット」は、必ずしも対応するセットの適正なサブセットを示さないが、サブセット及び対応するサブセットは等しくてよい。
【０１８５】
「A、B、及びCのうちの少なくとも１つ」又は「少なくとも１つのA、B、及びC」の形式の句のような論理的言語は、特に断りの無い限り又は特に明確に文脈に矛盾しない限り、アイテム、後、等がA又はB又はCのいずれか、又はA及びB及びCのセットの任意の空でないサブセットであってよいことを表すために使用されることが理解される。例えば、３つの構成要素を有するセットの説明のための例では、論理的言語「A、B、及びCのうちの少なくとも１つ」又は「少なくとも１つのA、B、及びC」は、以下のセット：｛A｝、｛B｝、｛C｝、｛A,B｝、｛A,C｝、｛B,C｝、｛A,B,C｝のうちのいずれかを表す。したがって、このような論理的言語は、通常、特定の実施形態が少なくとも１つのA、少なくとも１つのB、及び少なくとも１つのCのそれぞれが存在必要があることを意味することを意図しない。
【０１８６】
本願明細書に記載の処理の動作は、本願明細書に示されない限り、又は文脈上明らかに矛盾しない限り、任意の適切な順序で実行できる。本願明細書に記載の処理（又はその変形及び／又は結合）は、実行可能命令により構成される１つ以上のコンピュータシステムの制御下で実行されてよく、１つ以上のプロセッサ上で集合的に実行するコード（例えば、実行可能命令、１つ以上のコンピュータプログラム又は１つ以上のアプリケーション）として、ハードウェアにより、又はそれらの組み合わせで実装されてよい。コードは、コンピュータ可読記憶媒体に、例えば１つ以上のプロセッサにより実行可能な複数の命令を含むコンピュータプログラムの形式で格納されてよい。コンピュータ可読記憶媒体は、非一時的であってよい（つまり、非一時的コンピュータ可読記憶媒体であってよい）。
【０１８７】
本願明細書で与えられる任意の及び全ての例又は例示的言語（例えば、「のような」）の使用は、単に、本発明の実施形態をより良好に解明することを意図しており、特に断りのない限り本発明の範囲を限定することを意図しない。明細書中のいかなる言語も、本発明の実施に不可欠な任意の非請求要素を示すと考えられるべきではない。
【０１８８】
本開示の実施形態は、本願明細書に記載され、本発明を実施するために発明者に知られている最適モードを含む。これらの実施形態の変形は、前述の説明を読んだ当業者に明らかになり得る。発明者は、熟練技術者が、これらの変形を適切に利用することを期待し、発明者は、本開示の実施形態が本願明細書に特に記載されたものと異なる方法で実施されることを意図する。したがって、本開示の範囲は、適切な法により許可されるように、添付の請求の範囲に詳述された主題の全ての変形及び均等物を含む。さらに、それらの全ての可能な変形における上述の要素の任意の組み合わせは、本願明細書に特に断りの無い限り又は文脈に明確に矛盾しない限り、本開示の範囲に包含される。
【０１８９】
留意すべきことに、開示の実施形態を説明する文脈において、特に断りのない限り、「命令」が通常単独で実行しない動作（例えば、データの送信、計算、等）を実行する実行可能命令（コード、アプリケーション、エージェント、等とも呼ばれる）に関する表現の使用は、命令が機械により実行されることを示し、それにより機械に指定された演算を実行させる。
【０１９０】
留意すべきことに、上述の実施形態は、本発明を限定するのではなく、当業者は添付の請求項により定められる本発明の範囲から逸脱することなく多数の代替の実施形態を考案できる。請求項中、括弧内に記載された如何なる参照符号も、請求項を制限すると見なされるべきではない。用語「有する（comprising又はcomprises）」等は、全体としていかなる請求項中に及び明細書に列挙された以外の要素又はステップの存在を排除するものではない。本願明細書において、「有する（comprises）」は「含む（includes）又は構成される（consists  of）」を意味し、「有する（comprising）」は「含む（including）又は構成される（including  of）」を意味する。要素の単数の参照は、該要素の複数の存在を排除するものではなく、逆も同様である。本発明は、複数の別個の要素を有するハードウェアにより又は適切にプログラムされたコンピュータにより、実施され得る。複数の手段を列挙している装置の請求項では、これらの複数の手段は、１つの同一のハードウェア要素により実装することができる。特定の量が相互に異なる従属請求項に記載されるという事実は、これらの量の組合せが有利に用いることが出来ないことを示すものではない。
【図１】
2020520152.tif 000003
【図２】
2020520152.tif 000004
【図３】
2020520152.tif 000005
【図４】
2020520152.tif 000006
【図５】
2020520152.tif 000007
【図６】
2020520152.tif 000008
【図７】
2020520152.tif 000009
【図８】
2020520152.tif 000010
【図９】
2020520152.tif 000011
【図１０】
2020520152.tif 000012
【図１１】
2020520152.tif 000013
【図１２】
2020520152.tif 000014
【図１３】
2020520152.tif 000015
【図１４】
2020520152.tif 000016
【図１５】
2020520152.tif 000017
【図１６】
2020520152.tif 000018
【国際調査報告】
2020520152.tif 000019
2020520152.tif 000020