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

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

▶ エヌチェーン ホールディングス リミテッドの特許一覧

特開2024-75710セキュアなオフチェーンのブロックチェーントランザクション
<>
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図1
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図2
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図3
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図4
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図5
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図6
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図7
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図8
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図9
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図10
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図11
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図12
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図13
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図14
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図15
  • 特開-セキュアなオフチェーンのブロックチェーントランザクション 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024075710
(43)【公開日】2024-06-04
(54)【発明の名称】セキュアなオフチェーンのブロックチェーントランザクション
(51)【国際特許分類】
   H04L 9/08 20060101AFI20240528BHJP
   H04L 9/32 20060101ALI20240528BHJP
   G06Q 40/04 20120101ALI20240528BHJP
【FI】
H04L9/08 C
H04L9/32 200Z
H04L9/08 E
G06Q40/04
【審査請求】有
【請求項の数】12
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024045844
(22)【出願日】2024-03-22
(62)【分割の表示】P 2022124614の分割
【原出願日】2018-05-11
(31)【優先権主張番号】1707788.4
(32)【優先日】2017-05-15
(33)【優先権主張国・地域又は機関】GB
(71)【出願人】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】トレヴェサン,トーマス
(57)【要約】      (修正有)
【課題】トランザクションをブロックチェーンに記録するための方法を提供する。
【解決手段】方法300において、パーティは、暗号通貨デポジットを交換所プラットフォームにアタッチし、資金及び返金トランザクションを共有鍵を用いて生成する302。次に、パーティは、デポジットの所有権を第2パーティへ、スライドプロトコルを用いて転送し、新しい返金トランザクション及び新しい共有鍵を生成する304。その後、暗号通貨トランザクションを交換所プラットフォームからデタッチすると決定された場合306Yes、デポジットの現在所有者が、現在共有鍵を用いて、デポジットを交換所からデタッチする308。暗号通貨トランザクションを交換所プラットフォームからデタッチすると決定されなかった場合306No、タイムアウトが終了し、現在受益者が、デポジットを前の所有者に返すために返金トランザクションを発行する310。
【選択図】図3
【特許請求の範囲】
【請求項1】
コンピュータにより実施される方法であって、
ブロックチェーンネットワークの第1ノードにより、交換所プラットフォームからデポジットをデタッチするための、第1エンティティによる要求を受信するステップと、
前記第1ノードにより、前記デポジットのデタッチが許可されるかどうかを決定するステップであって、
前記第1エンティティが前記デポジットの現在の所有者であると決定するステップと、
第1時間期間が終了していないと決定するステップと、
を含むステップと、
前記第1ノードにより、前記第1エンティティに交換所秘密鍵を送信するステップと、
前記第1エンティティにより、前記交換所秘密鍵と前記第1エンティティのアタッチ秘密鍵とに少なくとも部分的に基づき、第1共有鍵を生成するステップと、
前記第1エンティティにより、前記交換所プラットフォームと共に前記第1共有鍵を検証するステップと、
前記第1エンティティにより、前記交換所プラットフォームから前記デポジットをデタッチして前記デポジットを前記第1エンティティに提供するために、前記第1共有鍵を用いてブロックチェーントランザクションを生成するステップと、
を含む、コンピュータにより実施される方法。
【請求項2】
前記生成されたブロックチェーントランザクションは、ブロックチェーンネットワークに記録され、前記トランザクションの記録は、未使用トランザクションアウトプット(UTXO)が前記ブロックチェーンネットワーク上の別のトランザクションのインプットとして使用されることを防ぐ、請求項1に記載のコンピュータにより実施される方法。
【請求項3】
前記第1エンティティが前記デポジットの現在の所有者かどうかを決定するステップは、
前記交換所プラットフォームのアタッチ秘密鍵と前記第1エンティティの前記アタッチ秘密鍵から、第2共有鍵を計算するステップと、
前記第2共有鍵と前記第1共有鍵が等しいことを確認するために、前記第2共有鍵を前記第1共有鍵と比較するステップと、
を含む、請求項1~2のいずれかに記載のコンピュータにより実施される方法。
【請求項4】
前記第1エンティティが前記デポジットの現在の所有者かどうかを決定するステップは、
前記第1エンティティのアタッチ公開鍵を前記交換所プラットフォームの前記アタッチ秘密鍵と結合するステップと、
前記結合の結果と前記第1共有鍵が等しいことを確認するために、前記結合の結果を前記第1共有鍵と比較するステップと、
を含む、請求項1~3のいずれかに記載のコンピュータにより実施される方法。
【請求項5】
前記第1ノードにより、前記デポジットのデタッチが許可されないと決定するステップは、
前記第1エンティティが前記デポジットの現在の所有者ではないと毛定位するステップ、及び/又は、
前記第1時間期間が終了したと決定するステップ、
を含む、請求項1~4のいずれかに記載のコンピュータにより実施される方法。
【請求項6】
前記デポジットのデタッチが許可されないと決定すると、前記方法は、前記デタッチが許可されないことを前記第1エンティティに通知するステップを更に含む請求項5に記載のコンピュータにより実施される方法。
【請求項7】
前記第1時間期間が終了したと決定すると、前記方法は、前記ブロックチェーンネットワークに返金トランザクションをブロードキャストするステップを更に含む請求項5に記載のコンピュータにより実施される方法。
【請求項8】
前記デポジットは第2エンティティにより前記交換所プラットフォームにアタッチされ、前記返金トランザクションは、前記交換所プラットフォームと第2エンティティにより2エンティティの楕円曲線デジタル署名アルゴリズムを使用して共同で署名される、請求項7に記載のコンピュータにより実施される方法。
【請求項9】
前記第1共有鍵は、前記交換所プラットフォームの前記アタッチ秘密鍵を前記第1エンティティの前記アタッチ秘密鍵で乗算することにより生成される、請求項1~8のいずれかに記載のコンピュータにより実施される方法。
【請求項10】
前記デポジットがデタッチされると、前記デポジットを用いて更なるオフチェーン暗号通貨トランザクションが実行できないように、前記交換所プラットフォームの前記アタッチ秘密鍵は破棄される、請求項2~9のいずれかに記載のコンピュータにより実施される方法。
【請求項11】
コンピュータシステムであって、
プロセッサと、
前記プロセッサによる実行の結果として、前記システムに請求項1~10のいずれかに記載のコンピュータにより実施される方法を実行させる実行可能命令を含むメモリと、
を含むコンピュータシステム。
【請求項12】
実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、前記コンピュータシステムに、請求項1~10のいずれかに記載のコンピュータにより実施される方法を少なくとも実行させる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、ブロックチェーン技術及びトランザクションに関し、より詳細には、パーティ間の中間コンピュータシステムを介するオフチェーントランザクションに関する。本発明は、特に、限定ではないが、トランザクションを危険に晒す攻撃者により使用され得る任意の情報を格納することなく、トランザクションプロトコルを実装し及び運用するために信頼できる交換所プラットフォームを介し信頼できないパーティ間でオフチェーントランザクションを生成することに適する。トランザクションは、ブロックチェーンに記録するためにブロックチェーンネットワークにブロードキャストされるよう生成されてよい。したがって、本発明は、トランザクションをブロックチェーンに記録するための、一層セキュアなソリューションを提供する。
【背景技術】
【0002】
本願明細書で、用語「ブロックチェーン」は、あらゆる形式の電子的な、コンピュータに基づく、分散台帳を含むよう使用される。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明の目的で、ここに記載される技術的改良の有用なアプリケーションと呼ばれてよいが、ビットコインは単に技術の有用な適用を提供するだけである。本発明は、ビットコインブロックチェーン及び代替ブロックチェーン実装及びプロトコルと共に使用されることに限定されず、本発明の範囲内に包含される非商業的アプリケーションに関連する実装及びプロトコルを含む。例えば、本発明は、ブロックチェーンの検証及び/又はビットコインのような暗号通貨トランザクションの検証についての同様の制約を有する他のブロックチェーン実装において有用である。一例として、本開示の技術は、暗号通貨の交換が生じるか否かに拘わらず、コンピュータ間交渉を含む他の態様に適用可能である。
【0003】
ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装される総意に基づく電子台帳である。また、ブロックはトランザクションにより構成される。ブロックチェーンは、台帳を管理する中央システムが存在せず且つ台帳のトランザクションが分散型システムのノード間の合意プロトコルを用いて検証されるので、ピアツーピア電子台帳とも呼ばれる。幾つかの例では、「ブロックチェーントランザクション」は、データ及び条件セットを含むフィールド値の構造化された集合を符号化する入力メッセージを表す。条件セットを満たすことは、フィールドセットがブロックチェーンデータ構造に書き込まれるための必要条件である。ビットコインの場合には、各トランザクションは、ブロックチェーンシステム内で参加者間のデジタルアセットの制御の転送を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、スタックに基づくスクリプト言語を用いて記述される。
【0004】
トランザクション(Tx)がブロックチェーンに書き込まれるために、「検証され」なければならない。検証は、ノードにより、ブロック生成能力を備える大部分のノードにより使用される共通ルールセットに基づき決定される。例えば、ビットコインプロトコルでは、幾つかのネットワークノードは、マイナーとしての機能を果たし、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。マイナーは、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。例えば、ノードにインストールされたソフトウェアクライアントは、未使用トランザクションアウトプット(unspent transaction outputs:UTXO)を参照するトランザクションに対して、関連するロック及びアンロックスクリプトを実行することにより、この検証作業を実行する。ロック及びアンロックスクリプトの実行が真と評価した場合、及び特定の他の条件が満たされた場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、i)トランザクションを受信したノードにより検証され(つまり、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し)、ii)マイナーにより構築された新しいブロックに追加し、iii)マイニングされ(つまり、過去のトランザクションの公開台帳に追加される)なければならない。
【0005】
ブロックチェーン技術は、暗号通貨実装の使用で最も広く知られているが、デジタル起業家が、新しいシステムを実装するために、ビットコインの基づく暗号通貨セキュリティシステム、及びブロックチェーンに格納可能なデータの両方の使用を探索し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動タスク及びプロセスのために使用できれば、非常に有利である。このようなソリューションは、それらの用途において一層多様でありながら、ブロックチェーンの利点(例えば、永久的、イベントの耐タンパレコード、分散プロセス、等)を利用できる。
【0006】
ビットコインシステムのようなDLT技術は、中央機関における信頼を要求することなく、アセット又は価値を交換するために、検閲耐性方法を提供する。しかしながら、ビットコインの非集中化及び分散型特性は、拡張性が制限され、トランザクションが処理されるのに相当量の時間を要するという事実を生じる。例えば、新しいブロックが約10分毎に有効にされ、信頼できる方法で確認されたと考えられるために、トランザクションの上位に少なくとも6個のブロックが生成されることが通常推奨される。幾つかの例では、トランザクションは、信頼できる確認のために、これより有意に長く待たなければならない。オンチェーントランザクションのこれらの相当量の遅延は、多くの用途で、特に販売時点の小売において又は為替のようにアセットが高頻度で取引される場合に、許容できない衝突をもたらすことがある。
【0007】
暗号通貨交換は、デジタル通貨エコシステムの機能において役割を果たす。それらは、フィアット通貨をデジタルアセットに及び逆に変換する主要な方法を提供し、ビットコインの他の代替コイン(alt-coins)との取引を可能にし、並びにオフチェーン支払機能を提供する。効率的に運用するために、交換所は、参加者にアセットを最小限の衝突で転送可能にさせなければならない。これは、オンチェーンのトランザクション確認と基本的に両立しない。結果として、大部分の暗号通貨交換所プラットフォームは、顧客デポジット(及び対応する秘密鍵)の制御を保持しており、銀行と同様に振る舞い、顧客口座の残高は私設内部データベースに維持される。これは、特定の交換と相互作用する2つのパーティ間の任意のトランザクションが、即座に実行可能な該内部データベースへの変更のみを要求することを可能にする。顧客デポジットを保持することにより、暗号通貨交換は、伝統的な銀行が口座間の支払を処理するのと同じ方法で、オフチェーントランザクションを実現できる。しかしながら、このような暗号通貨交換は、交換所に登録されたデポジット(及び対応する鍵)と共に顧客により使用されることに限定されることがある。
【0008】
したがって、上述の態様のうちの1つ以上において、ブロックチェーン技術を向上する方法及び装置を提供することが望ましい。
【発明の概要】
【0009】
したがって、本発明によると、添付の請求の範囲に定められるような方法が提供される。
【0010】
以下に更に詳述するように、コンピュータにより実施される方法及び電子装置は、即時オフチェーントランザクションを、コンピュータシステム(例えば、相互に信頼できないコンピュータシステム、「パーティ」とも呼ばれる)間で、トランザクションプロトコルを実装し運用するのに信頼できる交換所プラットフォームを介して、オンチェーントランザクションを必要とすることなく、実施するよう構成される。オフチェーントランザクションは、1つのコンピュータシステムに、異なる環境のブロックチェーンに記録可能な複数のトランザクションを生成することを可能にし、別のコンピュータシステムがトランザクションの生成後に運用された複数のトランザクションに含まれる方法に依存して、適切なトランザクションがブロックチェーンに記録できることを保証する。
【0011】
「オフチェーン」は、動作がブロックチェーンを介して実行されないことを意味してよい。セキュアのままにするために、プラットフォームは、前の状態からの情報を格納せずに、指定アルゴリズムに従うためにのみ信頼されてよい。交換所により格納される情報は、オフチェーントランザクションに基づく追加トランザクションを生成するために必要な完全な鍵を取得する必要がないことがあるので、交換所により格納される情報は、オフチェーントランザクションの有効性を損なうことなく、悪意ある主体により取得できる。さらに、交換の暗号化失敗の場合でさえ(例えば、交換が永久にオフラインになり、又は鍵シェアを損失する)、オフチェーントランザクションの少なくとも幾つかは、ブロックチェーンに記録するのに有効である。
【0012】
後述のように、楕円曲線暗号法の使用を通じて、完全な秘密鍵(及びしたがって、デジタルアセットの所有権)は常に保護され得る。デジタルアセットの即時オフチェーントランザクションを相互に信頼できないパーティ間でここに記載の交換所プラットフォームシステムを介して実施するよう構成されるコンピュータにより実施される方法及び電子装置は、参加者の自律性を維持しながら、オフチェーントランザクションの近即時生成を可能にする。留意すべきことに、「即時」は「実質的に即時」を意味してよく、又はある程度の変動を含む。用語は、本発明の分野の状況に従い、当業者により理解される。
【0013】
したがって、本発明によると、添付の請求の範囲に定められるような方法(及び対応するシステム)が提供され得る。
【0014】
方法は、即時オフチェーントランザクション(Tx)(暗号通貨アプリケーションにおけるような転送とも呼ばれてよい)として記載され得る。追加又は代替として、該方法は、特定トランザクションのブロックチェーンへの記録を保証し又は制御するセキュリティ又は制御方法として記載され得る。説明のための例として、第1コンピュータシステム及び第2コンピュータシステムの動作は、相互に依存してよく、その結果、一方のコンピュータシステムの動作は他方の動作に依存する。例えば、第1コンピュータシステムは、第2コンピュータシステムの動作をトリガしてよいが、第2コンピュータシステムが動作を実行する場合に第1ロジックを実行してよく、第2コンピュータシステムが動作を実行しない場合に第2ロジックを実行してよい。ここに記載の技術は、第1コンピュータシステムに、第2コンピュータシステムが何を行うかに依存して第1ロジックまたは 第2ロジックを実行できるという、暗号学的保証を備えることを可能にする。第1ロジックは、例えば、第1トランザクションのブロックチェーンへの記録を生じてよく、第2ロジックは、例えば、第2トランザクションのブロックチェーンへの記録を生じてよい。一実施形態では、第2コンピュータは、(1)動作の自身の実行が第1トランザクションのブロックチェーンへの記録を可能にすることを保証し、又は(2)動作の実行が第2トランザクションのブロックチェーンへの記録を防ぐことを保証し、又は(3)その両方であることが可能である。
【0015】
したがって、ここに記載の方法は、相互依存コンピュータシステムが、ブロックチェーントランザクションを介して、(他のコンピュータシステム又は交換所プラットフォームと共に)参加者が適切に動作するか否かに拘わらず所望状態に達する能力を可能にする方法で、動作することを許容する。
【0016】
上述のように、ここに記載され及び提案される技術は広範なコンテキストに適用可能である。幾つかのコンテキストはブロックチェーンを利用してデジタルアセットを管理する。デジタルアセットは、トランザクションの中でブロックチェーンに記録される値(value)により表されてよい。デジタルアセットの記録(又は値へと集約する記録の集約)は、デジタルアセットの「転送」又は「転送制御」と呼ばれるような特定トランザクションのブロックチェーンへのエントリのための必要条件であってよい。幾つかの例では、デジタルアセットは、転送が特定コンピュータシステムロジックの実行を可能にする値である。例えば、コンピュータシステムのプログラミングは、ブロックチェーンにおける出現が別のコンピュータにより引き起こされたデジタルアセットの記録に依存してよい。幾つかの例では、デジタルアセット(及びブロックチェーントランザクションセットの中のデジタルアセットに対応する値)は、コンピュータシステムの実行すべき作業量、コンピュータシステムにより処理されるべきデータ、又はコンピュータシステムにより実行されるアルゴリズムへの他の入力を表す。幾つかの例では、デジタルアセットは、暗号通貨の一部又は額であるが、本開示の範囲は概して支払又は暗号通貨を含まない他のコンテキストに広く適用可能である。
【0017】
一実施形態では、トランザクション(Tx)は、交換所プラットフォーム方法を介する相互に信頼できないパーティ間のものである。コンピュータにより実施される方法は、i)第1パーティ(コンピュータシステム又は他の同様のエンティティであってよい)のデジタルアセットを交換所プラットフォームにアタッチするステップであって、(a)前記デジタルアセットに関連付けられた第1共有(暗号)鍵を、前記第1パーティの又はその他の場合に前記第1パーティに関連付けられた鍵及び前記交換所プラットフォームの又はその他の場合に前記交換所プラットフォームに関連付けられた第1鍵を用いて計算し、(b)(1)前記デジタルアセットから任意のパーティに支払可能な資金トランザクションを前記第1共有鍵を用いて生成し、(2)前記資金トランザクションを前記ブロックチェーンネットワークにブロードキャストすることにより、前記デジタルアセットをブロックチェーンネットワークにデポジットする、ことによりアタッチするステップと、ii)前記デジタルアセットを前記第1パーティから前記第2パーティ(コンピュータシステム又は他の同様のエンティティであってよい)に再関連付けするステップであって、(a)前記交換所プラットフォームの第2鍵を前記第2パーティの又はその他の場合に前記第2パーティに関連付けられた鍵を用いて計算し、その結果、(1)前記第1パーティの前記鍵が無効になり、(2)前記第2パーティの前記鍵及び前記交換所プラットフォームの前記第2鍵から計算される、前記デジタルアセットに関連付けられた第2共有鍵が、前記デジタルアセットに関連付けられた前記第1共有鍵と等しくなり、(b)前記交換所プラットフォームの前記第1鍵を前記交換所プラットフォームの第2鍵で置き換える、ことにより再関連付けするステップと、を含んでよい。
【0018】
本発明によると、電子装置が提供され得る。電子装置は、インタフェース装置と、前記インタフェース装置に結合されたプロセッサと、前記プロセッサに結合されたメモリとを含む。前記メモリは、実行されると、本願明細書に記載の方法を実行するよう前記プロセッサを構成するコンピュータ実行可能を格納してよい。
【0019】
本発明によると、コンピュータ可読記憶媒体が提供され得る。コンピュータ可読記憶媒体は、実行されると、本願明細書に記載の方法を実行するようプロセッサを構成するコンピュータ実行可能命令を含む。
【0020】
本発明によると、実行されるとプロセッサを本願明細書に記載の楕円曲線デジタル署名アルゴリズムの機能を実行するよう構成するコンピュータ実行可能命令を含む楕円曲線デジタル署名アルゴリズム(elliptic curve digital signature algorithm:ECDSA)スクリプトを含むコンピュータ可読記憶媒体が提供され得る。
【0021】
本発明によると、実行されるとプロセッサを本願明細書に記載の2者楕円曲線デジタル署名アルゴリズムの機能を実行するよう構成するコンピュータ実行可能命令を含む2者楕円曲線デジタル署名アルゴリズム(two-party ECDSA)スクリプトを含むコンピュータ可読記憶媒体が提供され得る。
【0022】
本発明によると、実行されるとプロセッサを本願明細書に記載の暗号学的にセキュアな疑似乱数生成器の機能を実行するよう構成するコンピュータ実行可能命令を含む暗号各的にセキュアな疑似乱数生成(cryptographically secure pseudo-random number generator:CSPRNG)スクリプトを含むコンピュータ可読記憶媒体が提供され得る。
【0023】
コンピュータにより実施される方法は、デジタルアセットに関連付けられた第1共有鍵を第1パーティの鍵及び交換所プラットフォームの第1鍵を用いて計算するステップと、前記デジタルアセットをブロックチェーンネットワークにアタッチするステップであって、少なくとも、前記デジタルアセットから任意のパーティに支払可能な資金トランザクションを前記第1共有鍵を用いて生成し、前記資金トランザクションを前記ブロックチェーンネットワークにブロードキャストすることにより、アタッチするステップと、前記デジタルアセットを前記第1パーティから第2パーティに再関連付けするステップであって、少なくとも、前記交換所プラットフォームの第2鍵を前記第2パーティの鍵を用いて計算し、その結果、前記第1パーティの前記鍵が無効になり、前記第2パーティの前記鍵及び前記交換所プラットフォームの前記第2鍵から計算された前記デジタルアセットに関連付けられた第2共有鍵が、前記デジタルアセットに関連付けられた前記第1鍵と等しくなる、ステップと、前記交換所プラットフォームの前記第1鍵を前記交換所プラットフォームの第2鍵で置き換えるステップと、を含む方法が提供され得る。
【0024】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記デジタルアセットを前記交換所プラットフォームからデタッチするステップであって、少なくとも、前記第1共有鍵を用いて前記デジタルアセットから前記第2パーティに支払可能な第2資金トランザクションを生成し、前記第2資金トランザクションは前記資金トランザクションに少なくとも部分的に基づき、前記第2資金トランザクションを前記ブロックチェーンネットワークにブロードキャストし、前記第2資金トランザクションをマイニングして、前記デジタルアセットを前記第2パーティに提供することにより、デタッチするステップを更に含む方法が提供され得る。
【0025】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記第1パーティの前記デジタルアセットを前記交換所プラットフォームにアタッチするステップは、前記第1パーティに前記デジタルアセットから第1返金鍵を用いて生成するステップと、第1時間期間の後に前記第1返金トランザクションを前記ブロックチェーンネットワークにブロードキャストするステップと、前記第1返金トランザクションをマイニングして、前記デジタルアセットを前記第1パーティに戻すステップと、を更に含む、方法が提供され得る。
【0026】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記第1返金トランザクションは、前記交換所プラットフォーム及び前記第1パーティにより、2者楕円曲線デジタル署名アルゴリズムを用いて共同署名される、方法が提供され得る。デジタルアセットを第1パーティから第2パーティへ再関連付けするステップは、第2返金鍵を用いて前記デジタルアセットから前記第2パーティに支払可能な第2返金トランザクションを生成するステップと、第2時間期間の後に前記第2返金トランザクションを前記ブロックチェーンネットワークにブロードキャストするステップと、前記第2返金トランザクションをマイニングして、前記デジタルアセットを前記第2パーティに戻すステップと、を含んでよい。前記第2返金トランザクションは、前記交換所プラットフォーム及び前記第2パーティにより、2者楕円曲線デジタル署名アルゴリズムを用いて共同署名される。
【0027】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記第1共有鍵を計算するステップは、第1候補共有鍵を計算するステップであって、少なくとも、楕円曲線暗号法を用いて前記交換所プラットフォームの前記第2鍵に対応する第1公開鍵を計算し、前記第1公開鍵を前記第2パーティに提供し、前記第1公開鍵及び前記第2パーティの前記鍵から、楕円曲線暗号法を用いて、前記第1候補共有鍵を計算する、ことにより、第1候補共有鍵を計算するステップと、第2候補共有鍵を計算するステップであって、少なくとも、楕円曲線暗号法を用いて、前記第2パーティの前記鍵に対応する第2公開鍵を計算し、前記第2公開鍵を前記交換所プラットフォームに提供し、前記第2公開鍵及び前記交換所プラットフォームの前記第2鍵から、楕円曲線暗号法を用いて、前記第2候補共有鍵を計算する、ことにより、第2候補共有鍵を計算するステップと、前記第1候補共有鍵が前記第2候補共有鍵と同じであることを検証するステップと、を含む、方法が提供され得る。
【0028】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記デジタルアセットに関連付けられた前記第2共有鍵は、少なくとも、第1候補共有鍵を計算するステップであって、少なくとも、楕円曲線暗号法を用いて前記交換所プラットフォームの前記第1鍵に対応する第1公開鍵を計算し、前記第1公開鍵を前記第1パーティに提供し、前記第1公開鍵及び前記第1パーティの前記鍵から、楕円曲線暗号法を用いて、前記第1候補共有鍵を計算する、ことにより、第1候補共有鍵を計算するステップと、第2候補共有鍵を計算するステップであって、少なくとも、楕円曲線暗号法を用いて、前記第1パーティの前記鍵に対応する第2公開鍵を計算し、前記第2公開鍵を前記交換所プラットフォームに提供し、前記第2公開鍵及び前記交換所プラットフォームの前記第1鍵から、楕円曲線暗号法を用いて、前記第2候補共有鍵を計算する、ことにより、第2候補共有鍵を計算するステップと、前記第1候補共有鍵が前記第2候補共有鍵と同じであることを検証するステップと、により計算される、方法が提供され得る。
【0029】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記デジタルアセットを前記第1パーティから前記第2パーティに再関連付けするステップは、前記デジタルアセットの一部を前記第1パーティから前記第2パーティに再関連付けするステップを含む、方法が提供され得る。
【0030】
本発明によると、上述のようなコンピュータにより実施される方法であって、交換所プラットフォームの前記第1鍵を前記交換所プラットフォームの前記第2鍵で置き換えるステップは、前記交換所プラットフォームの前記第1鍵にランダム値を乗じて、前記交換所プラットフォームのブラインド第1鍵を生成するステップと、前記交換所プラットフォームの前記ブラインド第1鍵を前記第2パーティに提供するステップと、前記交換所プラットフォームの前記ブラインド第1鍵に前記第2パーティの前記鍵の逆数を乗じて、第1中間鍵を生成するステップと、前記第1中間鍵を前記第1パーティに提供するステップと、前記第1中間鍵に前記第1パーティの前記鍵を乗じて、第2中間鍵を生成するステップと、前記第2中間鍵を前記交換所プラットフォームに提供するステップと、前記第2中間鍵に前記ランダム値の逆数を乗じて、前記交換所プラットフォームの前記第2鍵を生成するステップと、を含む、方法が提供され得る。
【0031】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記交換所プラットフォームの前記第1鍵を前記交換所プラットフォームの前記第2鍵で置き換えるステップは、前記交換所プラットフォームの前記第1鍵を無効にする、方法が提供され得る。
【0032】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記第1パーティの前記鍵は、前記第1パーティによりセキュアに保持される秘密鍵であり、前記交換所プラットフォームの前記第1鍵は、前記交換所プラットフォームによりセキュアに保持される秘密鍵であり、前記第2パーティの前記鍵は、前記第2パーティによりセキュアに保持される秘密鍵であり、前記交換所プラットフォームの前記第2鍵は、前記交換所プラットフォームによりセキュアに保持される秘密鍵である、方法が提供され得る。
【0033】
本発明によると、上述のようなコンピュータにより実施される方法であって、前記交換所プラットフォームは、信頼できる実行環境であって、前記交換所プラットフォームの前記第1鍵を格納し、前記交換所プラットフォームの前記第2鍵を格納し、前記交換所プラットフォームが前記交換所プラットフォームに関連付けられた交換所プロトコルに従っていることのリモートアテステーションを提供する、信頼できる実行環境を含む、方法が提供され得る。
【0034】
本発明によると、システムであって、プロセッサと、前記プロセッサによる実行の結果として前記システムに上述のコンピュータにより実施される方法を実行させる実行可能命令を含むメモリと、を含むシステムが提供され得る。
【0035】
本発明によると、実行可能命令を格納した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、前記コンピュータシステムに上述のコンピュータにより実施される方法を少なくとも実行させる、非一時的コンピュータ可読記憶媒体が提供され得る。
【0036】
本発明の上述の及び他の態様は、本願明細書に記載される実施形態から明らかであり、それらの実施形態を参照して教示される。本発明の実施形態は、単なる例として添付の図面を参照して以下に説明される。
【図面の簡単な説明】
【0037】
図1】例示的なブロックチェーンネットワークのブロック図を示す。
図2】ブロックチェーンネットワーク内のノードとして機能し得る例示的な電子装置のブロック図を示す。
図3】交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションを実行する例示的な処理のフローチャートを示す。
図4】信頼できないパーティ間のオフチェーン暗号通貨トランザクションのアタッチ段階が交換所プラットフォームを用いて実行される例示的環境のブロック図を示す。
図5】交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理のフローチャートを示す。
図6】交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションのアタッチ段階のデータフロー図を示す。
図7】信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階が交換所プラットフォームを用いて実行される例示的環境のブロック図を示す。
図8】交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理のフローチャートを示す。
図9】交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階のデータフロー図の第1部分を示す。
図10】交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階のデータフロー図の第2部分を示す。
図11】信頼できないパーティ間のオフチェーン暗号通貨トランザクションの複数の転送段階が交換所プラットフォームを用いて実行される例示的環境のブロック図を示す。
図12】信頼できないパーティ間のオフチェーン暗号通貨トランザクションのデタッチ段階が交換所プラットフォームを用いて実行される例示的環境のブロック図を示す。
図13】交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理のフローチャートを示す。
図14】信頼できないパーティ間のオフチェーン暗号通貨トランザクションの返金段階が交換所プラットフォームを用いて実行される例示的環境のブロック図を示す。
図15】交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理のフローチャートを示す。
図16】種々の実施形態が実施できる例示的な環境のブロック図を示す。
【発明を実施するための形態】
【0038】
先ず、図1を参照する。図1は、ブロック図の形式で、ブロックチェーンに関連付けられた例示的なブロックチェーンネットワーク100を示す。ブロックチェーンプロトコルの下でブロックチェーンネットワーク100が動作し、該ブロックチェーンプロトコルのインスタンスを実行する分散型電子装置は、ブロックチェーンネットワーク100に参加してよい。このような分散型電子装置は、ノード102として参照され得る。ブロックチェーンプロトコルは、例えばビットコインプロトコルであってよい。
【0039】
ブロックチェーンプロトコルを実行し、ブロックチェーンネットワーク100のノード102を形成する電子装置は、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバのようなコンピュータ、スマートフォンのようなモバイル装置、スマートウォッチのようなウェアラブルコンピュータ、又は他の電子装置を含む様々な種類であってよい。
【0040】
ブロックチェーンネットワーク100のノード102は、有線及び無線通信技術を含み得る適切な通信技術を用いて互いに結合される。このような通信は、ブロックチェーンに関連付けられたプロトコルに従う。例えば、ブロックチェーンがビットコインブロックチェーンである場合、ビットコインプロトコルが使用されてよい。ノード102は、ブロックチェーン上の全てのトランザクションのグローバル台帳を維持する。したがって、グローバル台帳は分散台帳である。各ノード102は、グローバル台帳の完全コピー又は部分コピーを格納してよい。グローバル台帳に影響を与えるノード102によるトランザクションは、他のノード102により検証される。その結果、グローバル台帳の有効性が維持される。ブロックチェーンがproof-of-workに基づくブロックチェーンであるとき、ブロックも、ブロックと共に提出されるproof-of-workをチェックすることにより検証される。
【0041】
ノード102の少なくとも幾つかは、ブロックチェーンネットワーク100のマイナー104として動作する。図1のブロックチェーンネットワーク100は、ブロックチェーン上のトランザクションを促進するために、マイナー104が費用の掛かる計算を実行するproof-of-workブロックチェーンである。例えば、proof-of-workブロックチェーンは、マイナーが暗号化問題を解くことを要求し得る。ビットコインでは、マイナー104がノンスを発見する。その結果、ブロックヘッダは、ダブルSHA-256により、現在の採掘難易度(difficultly)により定められた値より小さい数にハッシュされる。proof-of-workアルゴリズムのために必要なハッシュ能力は、特定数のブロックがその上でマイニングされた後に、トランザクションが事実上不可逆であると見なされることを意味する。暗号化問題を解くマイナー104は、ブロックチェーンの新しいブロックを生成し、新しいブロックを他のノード102にブロードキャストする。他のノード102は、ブロックがブロックチェーンに追加されるべきであると受け入れる前に、マイナー104が実際に暗号化問題を解き、したがって充分なproof-of-workを立証したことを検証する。他のノード102も、ブロック自体が有効であること(例えば、トランザクション及びブロックのブロックヘッダが有効であること)を、ブロックがブロックチェーンに追加されることを許諾する前に検証する。ブロックは、ノード102の総意により、ブロックチェーンに(つまり分散グローバル台帳に)追加される。
【0042】
マイナー104により生成されたブロックは、ノード102によりブロックチェーンにブロードキャストされているトランザクションを含む。例えば、ブロックは、ノード102のうちの1つに関連付けられたアドレスからノード102のうちの別のものに関連付けられたアドレスへのトランザクションを含んでよい。このように、ブロックは、あるアドレスから別のアドレスへのトランザクションのレコードとして機能する。トランザクションがブロックに含まれることを要求したパーティは、彼らが転送を開始すること(例えば、ビットコインの場合には、ビットコインを使用すること)を認可されていることを、彼らの公開鍵に対応する秘密鍵を用いて要求に署名することにより、証明する。要求が有効に署名された場合のみ、転送はブロックに追加されてよい。トランザクションを使用可能なパーティ(例えば、コンピュータシステム)は、トランザクションを「アンロック」することも可能である。
【0043】
ビットコインの場合、公開鍵とアドレスとの間には1対1対応がある。つまり、各公開鍵は単一のアドレスに関連付けられる。したがって、本願明細書でデジタルアセットを公開鍵へ又は公開鍵から転送する(例えば、公開鍵に支払う)、及びデジタルアセットを公開鍵に関連付けられたアドレスへ又は該アドレスから転送するという言及は、共通の動作を表す。
【0044】
ノード102のうちの幾つかは、マイナーとして動作しなくてよく、代わりに検証ノードとして参加してよい。トランザクションの検証は、署名又はロックスクリプト内で指定された他の条件をチェックすること、有効UTXOへの参照を確認すること、等に関連してよい。図1の例は、6個のノード102を含み、そのうちの2個はマイナー104として参加している。実際には、ノード102又はマイナー104の数は異なってよい。多くのブロックチェーンネットワークでは、ノード102及びマイナー104の数は、図1に示した数より遙かに多くてよい。
【0045】
図2は、ブロック図形式で、ブロックチェーンネットワーク(例えば、図1と関連して説明したブロックチェーンネットワーク100のようなブロックチェーンネットワーク)におけるノード(例えば、図1と関連して説明したノード102のうちの1つのようなノード)として機能し得る例示的な電子装置200を示す。例示的な電子装置200は、図1と関連して説明したブロックチェーンネットワークのようなブロックチェーンネットワークにおける、図1と関連して説明したノード102のうちの1つのようなノードとして機能してよい。一実施形態では、ブロックチェーンネットワークは、ピアツーピアブロックチェーンネットワークである。
【0046】
電子装置は、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォンのようなモバイル装置、スマートウォッチのようなウェアラブルコンピュータ、又は別の種類の形式を含む様々な形式をとってよい。
【0047】
電子装置200は、プロセッサ210、メモリ220、及びインタフェース装置230を含む。これらのコンポーネントは、互いに直接又は間接に結合されてよく、互いに通信してよい。例えば、プロセッサ210、メモリ220、及びインタフェース装置230は、バス240を介して互いに通信してよい。メモリ220は、本願明細書に記載の機能を実行するための機械可読命令及びデータを含むコンピュータソフトウェアプログラムを格納する。例えば、メモリは、プロセッサ210により実行されると、電子装置に本願明細書に記載の方法を実行させるプロセッサ実行可能命令を含んでよい。プロセッサ実行可能命令は、プロセッサ210により実行されると、電子装置に、ブロックチェーンネットワーク100(例えば図1と関連して記載したブロックチェーンネットワーク100)に関連付けられたプロトコルを実装させる命令を含んでよい。例えば、命令は、ビットコインプロトコルを実装するための命令を含んでよい。
【0048】
メモリ220は、ブロックチェーンネットワーク(例えば図1と関連して記載したブロックチェーンネットワーク100)のグローバル台帳又はその部分を格納してよい。つまり、メモリ220は、ブロックチェーンの全部のブロック、又は最近のブロックのようなブロックの部分、又は幾つかのブロックの中の情報の部分を格納してよい。
【0049】
メモリ220は図2では単一のブロックにより示されるが、実際には、電子装置200は複数のメモリコンポーネントを含んでよい。メモリコンポーネントは、例えばRAM、HDD、SSD、フラッシュドライブ、等を含む様々な種類であってよい。異なる種類のメモリは、異なる目的に適してよい。さらに、メモリ220はプロセッサ210と別個に示されるが、プロセッサ210は内蔵メモリを含んでよい。
【0050】
図2に示すように、プロセッサ210は、信頼できる実行環境(Trusted Execution Environment:TEE)のようなセキュア領域を含んでよい。TEE250は、電子装置200に、独立した実行、信頼できるアプリケーションの完全性及びアセット機密性のような追加セキュリティを提供する独立実行環境である。TEE250は、TEE250内部にロードされたコンピュータ命令及びデータが機密性及び完全性の観点で保護されることを保証する実行空間を提供する。TEE250は、暗号鍵のような重要リソースの完全性及び機密性を保護するために使用されてよい。TEE250は、少なくとも部分的にハードウェアレベルで実装される。その結果、TEE250内で実行される命令及びデータは、電子装置200の残りの部分からの及び電子装置の所有者のような外部パーティからのアクセス及び操作に対して保護される。TEE250内のデータ及び計算は、TEE250を含むノード(例えば図1と関連して記載したノード102)を作動させるパーティからセキュアにされる。
【0051】
TEE250は、セキュア実行環境(本願明細書で「エンクレーブ(enclave、飛び地)」とも呼ばれる)をインスタンス化し、次にメモリページを1つずつ追加するよう動作し得ると同時に、追加したメモリページを累積的にハッシングする。一実施形態では、メモリページのハッシングは、リモートマシン(例えば、開発者の機械又は別の機械)上で実行される。その結果、リモートマシンは、期待されるハッシュを決定し及び格納する。enclaveの内容は、したがって、任意のリモートマシンにより検証でき、enclaveが承認済みアルゴリズムを実行していることを保証する。この検証は、ハッシュを比較することにより実行されてよい。enclaveは、完全に構築されると、固定化される。TEE250内でコードを実行すること、及びシークレットをコードに送信することが可能であるが、enclaveがロックされると、コードは変更できない。最終ハッシュは、アテステーション(attestation)鍵により署名されてよく、データ所有者が任意のシークレットをenclaveへ送信する前に、データ所有者がそれを検証するために利用可能にされてよい。
【0052】
TEE250は、後述のように、交換所に格納された共有鍵の信頼性及び完全性を保護するために使用されてよい。例えば、TEE250は、秘密鍵シェアの生成及び記憶のために使用されてよい。TEE250は、いかなるメンバーもTEE250内に保持された秘密鍵シェア又は他の秘密鍵シェアに関する情報をメンバー間通信又はenclave間通信から直接取得できないことを保証するためのものである。プロトコルは、閾値のenclaveのセキュリティ侵害(compromise)に対してもロバストである。さらに、TEE250は、リモートアテステーションを可能にし得る。リモートアテステーションは、ノード(例えば、図1と関連して説明したノード102のうちの1つのようなノード)により、TEE250が確実であり且つブロックチェーンネットワーク100により実施されるプロトコルのための承認済みコンピュータ実行可能命令を実行していることを他のノードに証明するために使用されてよい。リモートアテステーションは、TEE250により、特定のコードピースを実行すること、及びenclaveの内部で、enclaveの内部アテステーション鍵により署名されたコードのハッシュを送信することにより、提供されてよい。
【0053】
TEE250は、セキュアな乱数生成器を備えてよい。このセキュアな乱数生成器は、TEEのenclaveの内部にあり、秘密鍵、ランダムチャレンジ、又は他のランダムデータを生成するために使用できる。TEE250は、また、外部メモリからデータを読み出すよう構成されてよく、外部メモリにデータを書き込むよう構成されてよい。このようなデータは、enclave内部にのみ保持されたシークレット鍵により暗号化されてよい。
【0054】
TEE250は、信頼できるプラットフォームモジュール(Trusted Platform Module:TPM)又はIntel Software Guard Extensions(SGX)のような様々なプラットフォームを用いて実装されてよい。SGXは、例えば、リモートアテステーションをサポートする。リモートアテステーションは、enclaveが、署名されたステートメントを、クオート(quote)として知られるメンバーの与えられたハス(has)により特定のenclaveを実行しているプロセッサから取得することを可能にする。Intel Attestation Service(IAS)のような第三者アテステーションサービスは、これらの証明されたステートメントがSGX仕様に従う真正CPUから生じることを認定し得る。
【0055】
本発明は、別のトランザクションのアンロックスクリプト内で提供される未確定データを用いて、ブロックチェーントランザクション(Tx)のロックスクリプト内に埋め込まれる暗号公開鍵を変更するよう構成される方法(及び対応するシステム)を提供し得る。例えば、トランザクションバイトコードをメッセージとして使用するビットコインプロトコルにおける署名チェックオペコード(例えばOP_CHECKSIG)と関連して使用されるとき、トランザクション及びデータの両方が、公開鍵の所有者からの認可又は認証を要求する。これは、それらを変更から守る。
【0056】
本願明細書に記載の方法は、1つ以上のデジタル署名方式を用いて、種々のトランザクションを検証する。デジタル署名方式は、楕円曲線デジタル署名アルゴリズム(Elliptic Curve Digital Signature Algorithm:ECDSA)方式であってよい。デジタル署名は、2者ECDSA方式であってもよい。デジタル署名は、閾値ECDSA方式であってもよい。この方式は、秘密鍵を再構成する必要がなく、及び任意のパーティが彼らの鍵シェアを別のパーティに開示する必要がなく、有効署名を構成するために使用されてよい。例えば、2者ECDSA方式では、2つのパーティが存在し、両者が秘密鍵を再構成する必要がある。しかしながら、ECDSA方式では、共有秘密鍵に対応する署名を生成するとき、秘密鍵は、署名を生成するために再構成される必要がなくてよい。一実施形態では、共有秘密鍵に対応する署名は、共有秘密鍵を再構成する(つまり、再生成する)ことなく生成される。
【0057】
このECDSA方式は、図1に関連して記載したノード102のようなノードにより、不正又は非協力的パーティを識別するために使用され得る様々なメカニズムを含む。例えば、検証可能シークレット共有(verifiable secret sharing:VSS)は、Shamirのシークレット共有(Shamir’s Secret Sharing:SSS)のために必要な多項式を共有するために使用され得る。SSSは、シークレットが部分に分けられ、それ自体のユニークな部分への各々の参加に提供される、シークレット共有の形式である。これらの部分は、シークレットを再構成するために必要であり得る。VSSは、矛盾したシェアが異なるノード102に提供された場合、又はシェアが全ノードにブロードキャストされる隠れシェアと異なり、シェアがノードへ秘密に送信された場合、ノードにより、不正ノード又はメンバーを識別するために使用されてよい。矛盾したシェアは、ノードのうちのいずれかにより識別されてよい。シークレットの共有は、ノードがそれらのシェアを矛盾しないとして検証することを可能にする補助情報を含むことにより、検証可能にされ得る。
【0058】
不正シェアの個々のノードへの送信(つまり、ブロードキャストされる隠れシェアと異なるシェア)は、シェアの意図された受信ノードにより識別できる。ノードへ秘密に送信されている不正シェアの識別は、公然検証可能なシークレット共有(Publically Verifiable Secret Sharing:PVSS)の技術を用いて公に検証可能にできる。このような技術は、PVSSが使用されず及び不正シェアが送信されるときに不正シェアの受信側がオフラインである若しくはネットワークの根本部分から切り離されている場合に起こり得る、不正送信者の識別において起こり得る遅延を回避し得る。
【0059】
矛盾したシェアを異なるノードに提供するような不正行為は、悪意ある行為を阻止するネットワークにより解決され得る。例えば、ノードが他のノードにより悪意あるパーティとして識別されると、多数のノードが協力して該悪意あるパーティにペナルティを科してよい。例えば、ノードは、不正パーティによりブロックチェーンネットワークに預けられた(デジタル通貨、トークン、又は他の掛け金若しくは価値)デジタルアセットに関連する措置を行ってよい。例えば、ブロックチェーンネットワークは、デジタル通貨、トークン、掛け金若しくは価値を使用不可アドレスへ疎転送することにより、それらを焼却(burn)してよい。或いは、ブロックチェーンネットワークは、拒否するという他のノードとの総意に達することにより、このようなデジタルアセットを没収してよい。不正を行うノードではないノードは、不正を行うノードを排除するために協力することにより(例えば、鍵シェアを効果的に無効化することにより、例えば、ノードが議会プロトコルに参加するのを排除することにより、又は秘密鍵を再共有し及び不正を行うノードにシェアを割り当てないことにより)、不正行為を阻止してもよい。
【0060】
上述のECDSA技術は、TEEの使用を通じて拡張されてよい。例えば、閾値ECDSA署名技術は、ここではByzantine敵対者と呼ばれる強力な形式の敵対者を予期している。この種の敵対者は、勝手に振る舞うことがある。例えば、彼らは、署名処理に参加すること又は途中でパーティを停止することを拒否するだけでなく、誠実に参加するふりをして、不正情報を送信することもある。しかしながら、TEEを用い、及びシークレット秘密鍵シェアが格納されるTEEのenclave内で署名に使用するためのデータを生成することにより、enclaveが有意な数において危険に晒される可能性が非常に低いので、追加セキュリティが提供され得る。各TEEが1つより多くの鍵シェアに割り当てられる場合、例えば、起こり得る危険に晒されるTEEの数は、nが充分に大きいと仮定すると、敵対者に対するロバスト性の閾に近付かないことが無理なく期待され得る。これは、鍵シェアの合計数に対して少ない割合の不正敵対者に対して耐性がある場合、プロトコルがセキュアであることを可能にする。
【0061】
例えば、全ノードがTEEを有する場合、enclave内に格納されたシークレットの取得は、TEEの製造者が堕落していないならば、ノードへの物理アクセスによってのみ、多大な努力及び費用によってのみ、達成され得る。このような製造者レベルの堕落は、管理可能であることが期待される。例えば、製造者が、多数の公開鍵が誠実なTEEに対応すると偽って主張しようとした場合、彼らは、秘密鍵シェアへの直接アクセスを獲得し、攻撃を始める可能性がある。しかしながら、このような攻撃は、製造者が他のノードからの支援を伴わずに有効署名を生成できるために、充分な数の鍵シェアを要求し得る。これは、非常に高価になり得る全部の掛け金の大部分を蓄積することを意味し得る。さらに、攻撃を実行することにより、保持している掛け金の価値の大部分が破壊され得る。
【0062】
TEEが使用されるとき、「堕落したノード」に対するプロトコルのロバスト性を意図することが有用である。堕落したノードは、TEEの外部のハードウェアが間違いを含むが、TEEの完全性が危険に晒されないノードである。堕落したノードは、どんな情報をenclaveが受信し及び受信しないかについて制御を有してよい。特に、堕落したノードは、停止し、つまりプロトコルへの参加を控えてよい。プロトコルに提供される情報がenclave内に秘密に保持された秘密鍵により署名される必要のある場合(対応する公開鍵が、アテステーション中に認証された場合)、秘密鍵はenclave自体と同じくらい信頼できる。したがって、堕落したノードは、勝手な(認証された)情報をプロトコルに送信することができず、停止することにより、又は例えば古い情報を提供することにより誤って動作するようenclaveを欺くことを試みることにより、邪魔をしようとするだけである。次に、堕落したノードでは、成功した攻撃は、完全な署名を生成するのに充分な数の部分署名を収集することを必要とし得る。
【0063】
1つ以上の実施形態では、非ECDSA署名方式を含む他の閾値方式が使用されてよい。
【0064】
ブロックチェーンネットワーク内のノードは、選択されたデジタル署名方式に基づき交換所プロトコルを実装してよい。このようなノードは、交換所プロトコルを実装する、メモリ220に格納されたコンピュータ実行可能命令を含んでよい。このような命令は、プロセッサ210により実行されると、(電子装置200のような)ノードに、交換所プロトコルの1つ以上の方法を実行させる。このような方法は、限定ではないが、図3、5、8、13、及び15の処理300、500、800、1300、又は1500のうちの任意の1つ又は組み合わせにより実装される方法をふくみ得る。したがって、交換所プロトコルは、図3、5、8、13、及び15の処理300、500、800、1300、又は1500の1つ以上を含んでよい。処理は、ノードにより実行されてよく、又はブロックチェーンネットワークの他のノードにより協力して実行されてよい。
【0065】
図3は、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションを実行する例示的な処理300をフローチャート形式で示す。処理300は、図1と関連して説明したブロックチェーンネットワーク100のようなブロックチェーンネットワークの、図1と関連して説明したノード102のうちの1つのようなノードにより実行されてよい。つまり、図1と関連して記載したノード102のうちの1つのようなノードは、図3と関連して記載した交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行するために、例示的な処理300を実行してよい。
【0066】
交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理300のステップ302で、パーティは、暗号通貨デポジットを交換所プラットフォームにアタッチし、少なくとも図4~6に関連して後述する共有鍵を用いて資金及び返金トランザクションを生成する。
【0067】
交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理300のステップ304で、パーティは、少なくとも図7~11に関連して後述するように、新しい返金トランザクション及び新しい共有鍵を生成するスライドプロトコルを用いて、デポジットの所有権を第2パーティへ転送する(つまり、デポジットを第1パーティから第2パーティに再関連付けする)。
【0068】
交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理300のステップ306で、交換所プラットフォームから暗号通貨トランザクションをデタッチするか否かが決定される(つまり、現在所有者により、暗号通貨デポジットを請求するか否かが決定される)。
【0069】
交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理300のステップ306で、暗号通貨トランザクションを交換所プラットフォームからデタッチすると決定された場合、交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理300のステップ308で、デポジットの現在所有者は、少なくとも図12及び13に関連して後述するように、現在共有鍵を用いてデポジットを交換からデタッチする。
【0070】
交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理300のステップ306で、暗号通貨トランザクションを交換所プラットフォームからデタッチすると決定されなかった場合、交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションを実行する例示的な処理300のステップ310で、タイムアウト期限切れとなり、現在デポジットの現在所有者は、少なくとも図14及び15に関連して後述するように、現在受取人は、返金トランザクションを発行して、デポジットを前の所有者に返す。
【0071】
図3に示した例示的な処理300で実行される動作のうちの1つ以上は、並列を含む種々の順序及び組み合わせで実行されてよいことに留意する。
【0072】
図4は、信頼できないパーティ間のオフチェーン暗号通貨トランザクションのアタッチ段階が交換所プラットフォームを用いて実行される例示的環境400のブロック図形式で示す。例示的な環境400のブロック図のブロックの各々は、以下に図5及び図6と関連して詳述される。
【0073】
パーティ402は、暗号通貨デポジット406を交換所プラットフォーム408にアタッチすることにより、信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を開始してよい404。一実施形態では、パーティ402は、図1と関連して記載したノード102のうちの1つのようなノードである。暗号通貨406は、ビットコインに基づいてよく、又は交換所プラットフォーム408によりアタッチ可能であると定められた何からの他の同様の暗号通貨に基づいてよい。
【0074】
パーティ402及び交換408は、次に、協力して、共有公開鍵410を生成する。共有公開鍵410は、パーティ402が、本願明細書に記載のようにブロックチェーン416にブロードキャストされる(414)トランザクション412を生成するために使用する。一実施形態では、トランザクション412は、暗号通貨デポジット406から払い出し、共有鍵410を生成可能な任意のパーティに支払可能である(つまり、トランザクション412は、暗号通貨デポジット406からの額を共有公開鍵410に支払う)。一実施形態では、トランザクション412は、暗号通貨デポジット406から払い出し、共有公開鍵410に関連付けられた秘密鍵に対応する署名を提供可能な任意のパーティに支払可能である(つまり、トランザクション412は、暗号通貨デポジット406からの額を共有公開鍵410に関連付けられた秘密鍵に対応する署名を提供可能なエンティティに支払う)。一実施形態では、トランザクション412は、暗号通貨デポジット406の全体を払い出す。一実施形態では、トランザクション412は、暗号通貨デポジット406の一部を払い出し、1つ以上の他のトランザクションは、暗号通貨デポジット406の他の部分を払い出す。共有公開鍵410は、本願明細書に記載のように、パーティ402及び交換所プラットフォーム408の秘密鍵、並びにパーティ402及び交換所プラットフォーム408の公開鍵から生成される。
【0075】
パーティ402は、パーティが何からの時間の経過後に暗号通貨デポジット406を再キャプチャすることを可能にする返金トランザクション418も生成する。一実施形態では、返金トランザクション418時間期間(本願明細書で「タイムアウト」とも呼ばれ、tと表記される)は、1つ以上のコンピュータシステムにより維持される時間のような将来の時間に基づく。一実施形態では、返金トランザクション時間期間は、ブロックチェーン416の将来のブロック高(例えば、ブロックチェーンの現在ブロック数より多いブロックチェーン内のブロック数)に基づく。留意すべきことに、返金トランザクション時間期間は、実質的にアタッチの期待寿命より長くてよい。例えば、期待アタッチ期間が、アタッチが開始したときから30日である場合、返金トランザクション418時間期間は90日であってよい。パーティは、返金トランザクションをブロードキャストするのではなく、返金トランザクション418を保存する。パーティは、後述のように、タイムアウト期限切れのとき、返金トランザクション418をブロードキャストしてよい。
【0076】
図4に示さないが、パーティ402及び交換所プラットフォーム408は、本願明細書に記載のように、2者ECDSAプロトコルを用いて、共有公開鍵410により返金トランザクション418に共同署名する。
【0077】
留意すべきことに、暗号通貨デポジット406のセキュリティは、本願明細書に記載のように2者ECDSAの使用と組み合わせて、完全な秘密鍵の複数分割から導出される。共有公開鍵410はアタッチ中に計算されるが、後述のように、どのパーティも、デタッチにおいて再構成されるまで、どの時点においても完全な秘密鍵を知らない。
【0078】
後述のように鍵シェアは更新されるので、秘密鍵の鍵シェアは無効になる。しかしながら、前のパーティの鍵シェアの無効化は、交換所プラットフォーム408が鍵シェアを置き換え及び鍵シェアの前の値の全ての記録を削除することに依存する。このプロトコルに従う場合、現在交換所プラットフォーム408鍵シェアが現在所有者以外の誰とも衝突しない限り、方式は、アタッチの場合にセキュアにされる。したがって、交換所プラットフォーム408が鍵シェアを置き換え及び鍵シェアの前の値の全ての記録を削除するプロトコルに従うならば、交換所プラットフォーム408は、暗号通貨デポジット406のセキュリティを維持するために信頼される必要がなくてよい。
【0079】
交換所プラットフォーム408が不誠実に振る舞い、鍵シェアの前の反復の記録を保持する場合、交換所プラットフォーム408が完全なキーを再生成するために資金の前の所有者と共謀する可能性がある。この共謀は、ビジネスとして交換所プラットフォーム408の長期的関心である可能性は低い。しかしながら、悪意ある主体は、交換所プラットフォームの主導権を握り、トランザクションが処理されるとき全ての情報を記録する可能性がある。本例では、悪意ある主体は、また、完全なキーを再生成するために、資金の前の所有者と共謀する必要があり得る。攻撃は、交換及びデポジット鍵の両方の同時窃盗、又は資金の前の合法所有者との共謀を必要とするので、悪意ある主体が交換所プラットフォーム408を危うくする可能性は限定的である。
【0080】
上述のように、一実施形態では、交換所プラットフォーム408はTEEを含んでよい。上述の実施形態では、システムのセキュリティを維持するために、交換所プラットフォームが鍵シェアを置換し、鍵シェアの前の値の全ての記録を削除することさえ、要求されない。TEE内で交換所プロトコルを動作させることにより、交換所鍵シェアはTEEにより更に保護される。代替として、TEEは、他の参加者にリモートで、TEE内でプロトコルに従うこと及びその結果、交換所プラットフォーム408が鍵シェアを発見し又は記録することが不可能であることを、証明(アテステーション)できる。このような一実施形態では、交換所プラットフォーム408は、TEE内で出資することを要求される唯一のパーティである。他の参加者は、交換所プロトコルを実装するためにTEEを要求しない。
【0081】
図5は、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500をフローチャート形式で示す。処理500は、図1と関連して説明したブロックチェーンネットワーク100のようなブロックチェーンネットワークの、図1と関連して説明したノード102のうちの1つのようなノードにより実行されてよい。つまり、図1と関連して記載したノード102のうちの1つのようなノードは、図5と関連して記載した交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションのアタッチ段階を実行するために、例示的な処理500を実行してよい。
【0082】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500のステップ502で、パーティは暗号通貨デポジットを交換所にアタッチし始める。
【0083】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500のステップ504で、パーティはアタッチ秘密鍵及び返金秘密鍵を生成する。一実施形態では、パーティは、アタッチ秘密鍵及び返金秘密鍵を、鍵生成サービスにより提供される疑似乱数生成器のような、計算上セキュアな疑似乱数生成器を用いて生成する。
【0084】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500のステップ506で、パーティはアタッチ秘密鍵に対応するアタッチ公開鍵を計算し、アタッチ公開鍵を交換所へ送信する。一実施形態では、パーティは、アタッチ秘密鍵に対応するアタッチ公開鍵を、楕円曲線暗号法(ECC)演算を用いて計算する。
【0085】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500のステップ508で、交換所は交換所秘密鍵を生成する。一実施形態では、交換所は、交換所秘密鍵を、鍵生成サービスにより提供される疑似乱数生成器のような、計算上セキュアな疑似乱数生成器を用いて生成する。
【0086】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500のステップ510で、交換所は交換所秘密鍵に対応する交換所公開鍵を計算し、交換所公開鍵をパーティへ送信する。一実施形態では、交換所は、交換所秘密鍵に対応する交換所公開鍵を、ECCを用いて計算する。
【0087】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500のステップ512で、パーティ及び交換所はそれぞれ、後述のように、それらの秘密鍵及び受信した公開鍵から、共有公開鍵を生成する。一実施形態では、パーティ及び交換所は、共同で彼らの生成した共有公開鍵を他者の生成した共有公開鍵と比較することにより、ここまでに計算を検証できる(例えば、パーティは該パーティの生成した共有公開鍵を交換所の生成した共有公開鍵と比較でき、逆も同様である)。値は同じであるべきである。この点で計算を共同で検証する前に、パーティの生成した共有公開鍵及び交換所の共有公開鍵は、本願明細書で候補共有鍵と呼ばれてよい。したがって、例えば、パーティの生成した共有公開鍵は、本願明細書では第1候補共有価値と呼ばれてよく、交換所の共有公開鍵は、本願明細書では第2候補共有鍵と呼ばれてよい(又はその逆)。パーティ及び交換所は、第1候補共有鍵が第2候補共有鍵と同じであることを検証することにより、この点で共同で計算を検証できる。
【0088】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500のステップ514で、本願明細書に記載のように、パーティは、共有公開鍵を用いて暗号通貨の額を支払うために、暗号通貨トランザクションを生成する。
【0089】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500のステップ516で、パーティは返金秘密鍵に対応する返金公開鍵を計算し、返金公開鍵を交換所へ送信する。一実施形態では、パーティは、返金秘密鍵に対応する返金公開鍵を、ECCを用いて計算する。
【0090】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500のステップ518で、パーティは、タイムアウト値を有する返金トランザクションを、返金公開鍵を用いて生成する。その結果、パーティは、返金秘密鍵を用いて指定されたタイムアウト値の後に返金を請求できる。
【0091】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500のステップ520で、パーティ及び交換所は、後述のように、パーティが将来の使用のために保存する返金トランザクションに共同で署名する。一実施形態では、パーティ及び交換所は、2者ECDSAを用いて、パーティのアタッチ秘密鍵及び交換所のアタッチ秘密鍵に基づき、返金トランザクションに共同で署名する。
【0092】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500のステップ522で、パーティは、パーティのアタッチ秘密鍵及び交換所のアタッチ公開鍵に基づき、返金トランザクションの共同署名を検証する。
【0093】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのアタッチ段階を実行する例示的な処理500のステップ524で、本願明細書に記載のように、パーティは、暗号通貨トランザクションを暗号通貨ネットワークに(例えば、ビットコインネットワークのブロックチェーンに)ブロードキャストする。
【0094】
図5に示した例示的な処理500で実行される動作のうちの1つ以上は、並列を含む種々の順序及び組み合わせで実行されてよいことに留意する。
【0095】
図6は、交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションのアタッチ段階のデータフロー図600を示す。パーティ604は、オフチェーン暗号通貨トランザクションのアタッチ段階を開始し、アタッチ秘密鍵(S)及び返金秘密鍵(Y)を生成する608。パーティ604は、次に、アタッチ公開鍵(S×G)をECCにより計算し610、アタッチ公開鍵を交換所602へ送信する。
【0096】
交換所602は、交換所秘密鍵(SE)を生成し606、アタッチ公開鍵(S×G)をパーティ604から受信することに応答して、交換所アタッチ公開鍵(SE×G)をECCにより計算し612、交換所アタッチ公開鍵をパーティ604へ送信する。
【0097】
パーティ604は、共有公開鍵(A)を、(ECCにより)パーティのアタッチ秘密鍵(S)に交換所のアタッチ公開鍵(SE×G)を乗じることにより計算する616。留意すべきことに、パーティ604は、交換所のアタッチ秘密鍵(SE)へのアクセスを有しないが、交換所602から受信された交換所のアタッチ公開鍵(SE×G)の計算結果へのアクセスを有するだけである。
【0098】
パーティ602は、共有公開鍵(A)を、(ECCにより)交換所のアタッチ秘密鍵(SE)にパーティのアタッチ公開鍵(S×G)を乗じることにより計算する614。本願明細書で使用されるように、(例えば、S×Gの計算における)シンボル「×」は、楕円曲線乗算演算を示し、整数(例えばS)が楕円曲線上の「点」(例えばG)で乗算される。留意すべきことに、交換所602は、パーティのアタッチ秘密鍵(S)へのアクセスを有しないが、パーティ604から受信されたパーティのアタッチ公開鍵(S×G)の計算結果へのアクセスを有するだけである。ECCの特性により、交換所602の共有公開鍵(A)(SE×(S×G))はパーティ604の共有公開鍵(A)(S×(SE×G))と同じであり、共有公開鍵(A)は、共有公開鍵が共有秘密鍵(S)から公開鍵を計算することにより生成された場合、同じである。ここで、共有秘密鍵は(SE*S)又は(S*SE)である。本願明細書で使用されるように、シンボル「*」は、(上述のようにシンボル「×」で示される楕円曲線乗算とは反対に)標準的乗算を示す。したがって、A=S×Gである。
【0099】
図6に示すように、パーティ604は、暗号通貨トランザクション618(Txで示される)を生成し、暗号通貨トランザクション618を暗号通貨ネットワーク620にブロードキャストする。一実施形態では、パーティ604は、図5と関連して記載したように、暗号通貨トランザクション618の暗号通貨ネットワーク620へのブロードキャストを、パーティが返金トランザクションの署名を検証し、アタッチ段階を完了した後まで、遅らせる。
【0100】
パーティ604は、返金公開鍵(B)を返金秘密鍵(Y)からECCにより計算し622(例えば、B=Y×G)、返金公開鍵(B)を用いて、タイムアウト値toを有する返金トランザクション630(Txとして示される)を生成し、返金公開鍵(B)を交換所へ送信する。結果として、後述のように、返金トランザクション630が暗号通貨ネットワーク620にブロードキャストされた場合、返金公開鍵(B)が後に使用できる。
【0101】
パーティ604及び交換所602は、交換所のアタッチ秘密鍵(SE)及びパーティのアタッチ秘密鍵(S)に基づき署名(Sig(SE,S))を計算する628ために2者ECDSAを用いて、返金トランザクション630に共同で署名し、それによりアタッチ段階を完了する。
【0102】
図7は、信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階が交換所プラットフォームを用いて実行される例示的環境700をブロック図形式で示す。第1パーティ702(図7で「パーティ1」として示される)は、本願明細書に記載のように、交換所プラットフォーム704にアタッチされる複数の暗号通貨デポジット708のうちの1つであってよい暗号通貨デポジット706のための、交換所プラットフォーム704との共有鍵710を有する。第1パーティ702は、タイムアウトtを有する返金トランザクション712を有する。
【0103】
図8~10で後述するように、第1パーティ702が暗号通貨デポジット706のうちの一部又は全部の所有権を第2パーティ714(図7で「パーティ2」として示される)へ転送する場合、第2パーティ714及び交換所プラットフォーム704は、新しい共有鍵716を本願明細書に記載の技術を用いて生成し、第2パーティ714は、タイムアウトt-tcを有する返金トランザクション718を生成する。ここで、上述のように、tcは少なくとも部分的に所望のアタッチ期間に基づき選択される。一実施形態では、tcは、ビットコインネットワーク内のトランザクションの期待確認時間より長くなるよう選択される。例えば、ビットコインネットワーク内のトランザクションの期待確認時間が1時間(つまり、10分ごとに6ブロック)である場合、tcは1時間より長くなるよう選択される。第1パーティ702が、暗号通貨デポジット706の一部又は全部の所有権を第2パーティ714へ転送するとき(例えば、第1パーティが暗号通貨デポジットの少なくとも一部の所有権を転送するとき)、所有権を転送する動作は、本願明細書で「暗号通貨デポジットを再関連付けする」又は「デジタルアセットを再関連付けする」(例えば、「デジタルアセットを第1パーティから第2パーティに再関連付けする」又は「デジタルアセットの一部を第1パーティから第2パーティに再関連付けする」)と表されてよい。
【0104】
例えば、所望のアタッチ期間が30日であり、tが所望のアタッチ期間より長くなるよう選択された(例えば90日)場合、tcは、特定パーティへの返金のための充分な時間が生成できるよう、一方で、所有権の充分な数の転送が、暗号通貨デポジット706の終了前に発生できるように、選択されてよい。例えば、tcが30分(又は、一実施形態では、ブロック当たり10分の確認時間で、3ブロック)である場合、t-n*tc(n=2880)が30日(例えば、所望のアタッチ期間)より少なくなる前に、所有権の約2880個の転送が発生できる。言い換えると、tcが30分の場合、1日24時間当たり48個の返金期間があり、60日で2880個の返金期間がある。
【0105】
第2パーティ714及び交換所プラットフォーム704が新しい共有鍵716を生成し、新しい共有鍵716が有効であるとき720、共有鍵716は無効になり722、もはや暗号通貨デポジット706を請求するために使用できない。したがって、常に、1つの共有鍵(例えば、共有鍵710又は新しい共有鍵716)だけが有効であり、この有効な共有鍵は暗号通貨デポジット706の現在所有権を示す。
【0106】
図8は、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800をフローチャート形式で示す。処理800は、図1と関連して説明したブロックチェーンネットワーク100のようなブロックチェーンネットワークの、図1と関連して説明したノード102のうちの1つのようなノードにより実行されてよい。つまり、図1と関連して記載したノード102のうちの1つのようなノードは、図8と関連して記載した交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階を実行するために、例示的な処理800を実行してよい。
【0107】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ802で、第1パーティは交換所にアタッチされた暗号通貨デポジットの所有権を第2パーティへ転送し始める。
【0108】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ804で、第2パーティは新しいアタッチ秘密鍵及び新しい返金鍵を生成する。一実施形態では、第2パーティは、新しいアタッチ秘密鍵及び新しい返金秘密鍵を、鍵生成サービスにより提供される疑似乱数生成器のような、計算上セキュアな疑似乱数生成器を用いて生成する。
【0109】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ806で、交換所は交換所秘密鍵にランダム値を乗じ、結果を第2パーティへ送信する。ランダム値は、交換所秘密鍵が全てのパーティ(第1パーティ及び第2パーティを含む)から隠されるようにするランダム値(本願明細書で、ランダムブラインドナンスとも呼ばれる)である。一実施形態では、ランダム値は、鍵生成サービスにより提供される疑似乱数生成器のような、計算上セキュアな疑似乱数生成器を用いて生成される。
【0110】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ808で、第2パーティは、交換所から受信した値に新しいアタッチ秘密鍵の逆数(つまり、第2パーティのアタッチ秘密鍵の逆数)を乗じて、この乗算の結果を第1パーティへ送信する。
【0111】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ810で、第1パーティは、第2パーティから受信した値に、第1パーティのアタッチ秘密鍵を乗じ、この乗算の結果を交換所へ送信する。
【0112】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ812で、交換所は、第1パーティから受信した値に、ランダム値の逆数を乗じ、この結果を新しい交換所秘密鍵として格納する。第1パーティから受信した値にランダム値の逆数を乗算することにより、交換所プラットフォームは、ステップ806で交換所により実行されたランダムブラインドナンスの初期ブラインドを逆転させる。結果として生じた値は、第1パーティのアタッチ秘密鍵及び第2パーティのアタッチ秘密鍵の逆数と結合した交換所アタッチ秘密鍵である。この結果として生じた値は、交換所の新しいアタッチ秘密鍵になり、交換所の古いアタッチ秘密鍵は破棄される。
【0113】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ814で、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ812の後に、第2パーティのアタッチ秘密鍵は本願明細書に記載のように有効になり、第1パーティのアタッチ秘密鍵は無効になる(つまり、第1パーティのアタッチ秘密鍵はもはや暗号通貨デポジットを分配するために使用できない)。第1パーティのアタッチ秘密鍵はもはや交換所秘密アタッチ鍵(例えば、新しい交換所秘密アタッチ鍵)に対応しなくなるので、第1パーティのアタッチ秘密鍵は、前の交換所アタッチ秘密鍵の破棄に起因して、無効になる。
【0114】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ816で、図5のステップ512と関連して上述したように、第2パーティは、新しいアタッチ秘密鍵を、交換所と共同で検証する(例えば、第2パーティ及び交換所の両者は、共有公開鍵を生成し、生成した値を比較して、それらが同じことを保証する)。
【0115】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ818で、第2パーティは新しい返金公開鍵を新しい返金秘密鍵から計算し、新しい返金公開鍵を交換所へ送信する。一実施形態では、第2パーティは、新しい返金公開鍵を新しい返金秘密鍵からECCを用いて計算する。
【0116】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ820で、本願明細書に記載のように、第2パーティは、第1パーティの返金トランザクションタイムアウト値より前の新しいタイムアウト値を有する新しい返金公開鍵を生成する。
【0117】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ822で、第2パーティ及び交換所は、本願明細書に記載のように、第2パーティが将来の使用のために保存する新しい返金トランザクションに共同で署名する。
【0118】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの転送段階を実行する例示的な処理800のステップ824で、第2パーティは、第2パーティのアタッチ秘密鍵及び交換所のアタッチ公開鍵に基づき、新しい返金トランザクションの共同署名を検証する。
【0119】
図8に示した例示的な処理800で実行される動作のうちの1つ以上は、並列を含む種々の順序及び組み合わせで実行されてよいことに留意する。
【0120】
図9は、交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階のデータフロー図の第1部分900を示す。第1パーティ904(図9及び図10の「パーティ1」として示される)は、オフチェーン暗号通貨トランザクションの転送段階を開始して、交換所902にアタッチされた暗号通貨デポジットの所有権を転送する。図9に示す例では、第1パーティ904は、暗号通貨デポジットの所有権を、第1パーティ904から第2パーティ906(図9及び図10の「パーティ2」として示される)へ転送している。
【0121】
交換所902は、ランダム値(R)を生成し908、該ランダム値を用いて交換所のブラインドアタッチ秘密鍵(RSE)を計算する912。上述のように、ランダム値(本願明細書ではランダム「ブラインドナンス」とも呼ばれる)は、交換所のアタッチ秘密鍵(SE)がパーティのうちのいずれによっても又は任意の悪意ある攻撃者によって決定できないことを保証する。交換所902は、交換所のブラインドアタッチ秘密鍵(RSE)を第2パーティ906へ送信する。
【0122】
第2パーティ906は、上述のように、アタッチ秘密鍵(S)及び返金秘密鍵(Y)を生成する910。第2パーティ906は、交換所のブラインドアタッチ鍵(RSE)にアタッチ秘密鍵のモジュラ逆数(S -1)を乗じることにより、中間鍵値を計算する914。第2パーティ906は、この乗算の結果(RSES -1)を第1パーティ904へ送信する。
【0123】
第1パーティ904は、第2パーティから受信した値(RSES -1)に第1パーティ904のアタッチ秘密鍵(S)を乗じることにより、第2中間鍵値を計算する916。第1パーティ904は、この乗算の結果(RSES -1S)を交換所902へ送信する。
【0124】
交換所902は、第1パーティ904から受信した値(RSES -1S)にランダムブラインドナンス(R)の逆数(R-1)を乗じることにより、新しいアタッチ秘密鍵(SES -1S)を計算する918。交換所902が前のアタッチ秘密鍵(SE)を新しい秘密鍵(SES -1S)で置き換えるとき920、本願明細書に記載のように、第1パーティ904の秘密アタッチ鍵(S)は無効になる922。
【0125】
留意すべきことに、第1パーティ904の秘密アタッチ鍵(S)が無効に成った場合でも922、完全な共有秘密鍵(S)及び対応する共有公開鍵(A)は不変のままであり、しかし、交換所902の新しい秘密アタッチ鍵(SE new)及び第2パーティ906の秘密アタッチ鍵(S)からのみ構成できる。この理由は次の通りである:
Snew=SE newS=(SE oldS -1S)S=(SE oldSS -1)S=(SE oldS)(S -1S)=(SE oldS)=Sold
しかし、交換所902がプロトコルを正しく運用している場合、SnewはSE newSに等しくなく、SE oldはもはや存在しない。
【0126】
図10は、交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階のデータフロー図の第2部分1000を示す。信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階のデータフロー図の第2部分1000は、図9に示したデータフロー図の第1部分900に続く。ここで、第1パーティ904(図10の第1パーティ1004に対応する)は、暗号通貨デポジットの所有権を、第1パーティ904から第2パーティ906(図10の第1パーティ1006に対応する)へ転送している。
【0127】
交換所プラットフォームを用いて実行される信頼できないパーティ間のオフチェーン暗号通貨トランザクションの転送段階のデータフロー図の第2部分1000では、第1パーティ1004は参加しない。第2パーティ1006は、アタッチ秘密鍵(S)に対応するアタッチ公開鍵(S×G)をECCを用いて計算し1008、アタッチ公開鍵を交換所1002(図9に記載の交換所902に対応する)へ送信する。
【0128】
交換所1002は、新しい交換所アタッチ秘密鍵(SE)に対応するアタッチ公開鍵(SE×G)も計算し1010、アタッチ公開鍵を第2パーティ1006へ送信する。
【0129】
第2パーティ1006は、共有公開鍵(A)を、(ECCにより)第2パーティのアタッチ秘密鍵(S)に交換所のアタッチ公開鍵(SE×G)を乗じることにより計算する1014。留意すべきことに、第2パーティ1006は、交換所のアタッチ秘密鍵(SE)へのアクセスを有しないが、交換所1002から受信された交換所のアタッチ公開鍵(SE×G)の計算結果へのアクセスを有するだけである。
【0130】
交換所1002は、共有公開鍵(A)を、(ECCにより)交換所のアタッチ秘密鍵(SE)に第2パーティのアタッチ公開鍵(S×G)を乗じることにより計算する1012。留意すべきことに、交換所1002は、第2パーティのアタッチ秘密鍵(S)へのアクセスを有しないが、第2パーティ1006から受信された第2パーティのアタッチ公開鍵(S×G)の計算結果へのアクセスを有するだけである。ECCの特性により、交換所1002の共有公開鍵(A)(SE×(S×G))は第2パーティ1006の共有公開鍵(A)(S×(SE×G))と同じであり、共有公開鍵(A)は、共有公開鍵が共有秘密鍵(S)から公開鍵を計算することにより生成された場合、同じである。ここで、共有秘密鍵は(SE*S)又は(S*SE)である。したがって、上述のようにA=S×Gである。一実施形態では、転送段階の動作の後に、A及び共有秘密鍵Sの両者は不変のままである。
【0131】
第2パーティ1006は、本願明細書に記載のように、返金公開鍵(B)を返金秘密鍵(Y)からECCにより計算し1016(例えば、B=Y×G)、返金公開鍵(B)を用いて、タイムアウト値to-tcを有する返金トランザクション1024(Txとして示される)を生成し、返金公開鍵(B)を交換所へ送信する。結果として、後述のように、返金トランザクション630が暗号通貨ネットワーク620にブロードキャストされた場合、返金公開鍵(B)が後に使用できる。
【0132】
第2パーティ1006及び交換所1002は、交換所のアタッチ秘密鍵(SE)及び第2パーティのアタッチ秘密鍵(S)に基づき署名(Sig(SE,S))を計算する1022ために2者ECDSAを用いて、返金トランザクション1024に共同で署名し、それにより転送段階を完了する。
【0133】
図11は、信頼できないパーティ間のオフチェーン暗号通貨トランザクションの複数の所有権転送が交換所プラットフォームを用いて実行される例示的環境1100をブロック図形式で示す。交換所プラットフォーム1102は、本願明細書に記載のように、ランダムブラインドナンス(R)で乗算した現在アタッチ秘密鍵(SE)1104を有する。結果(RSE)1108は、パーティ1110(この場合、第4パーティ、「P」と示される)に提供される。図11に示す例では、パーティ1110は所有権の転送先のパーティであり、パーティ1116(この場合、第3パーティ、「P」と示される)は所有権の転送元のパーティである。
【0134】
パーティ1110は、上述のように、結果(RSE)1108を用いて、タイムアウト値t-3tcを有する返金トランザクション1112(Txと示される)を生成する。パーティ1110は、上述のように、結果(RSE)1108を、パーティ1110のアタッチ秘密鍵(S)の逆数(S -1)と結合して、中間鍵値(RSES -1)を生成する。
【0135】
中間鍵値(RSES -1)1114は、タイムアウト値t-2tcを有する前の返金トランザクション1118(Txと示される)を有するパーティ1116に提供される。パーティ1116は、中間鍵値(RSES -1)1114にパーティ1116のアタッチ秘密鍵(S)を乗じることより、中間鍵値(RSES -1)1114を用いて中間鍵値(RSES -1S)1120を生成する。
【0136】
パーティ1116は、中間鍵値(RSES -1S)1120を交換所1102へ送信する。交換所1102は、新しいアタッチ秘密鍵(SES -1S)を中間鍵値(RSES -1S)1120から抽出する。交換所1102は、中間鍵値(RSES -1S)1120からの新しいアタッチ秘密鍵(SES -1S)を用いて、古いアタッチ秘密鍵(SE)を置き換える1122。
【0137】
交換所1102が、中間鍵値(RSES -1S)1120からの新しいアタッチ秘密鍵(SES -1S)を用いて、古いアタッチ秘密鍵(SE)を置き換えると1122、パーティ1116からのアタッチ秘密鍵(S)は無効になる1136。
【0138】
図11に示す例では、交換所1102が中間鍵値(RSES -1S)1120からの新しいアタッチ秘密鍵(SES -1S)を用いて古いアタッチ秘密鍵(SE)を置き換える1122ときより前には、現在アタッチ秘密鍵(SE)1104は、パーティ1124(「P」と示される)からパーティ1116への所有権転送の結果として生成された秘密アタッチ鍵(SES -1S)1128と同じである。同様に、前の秘密アタッチ鍵(SES -1S)1134は、パーティ1130(「P」と示される)からパーティ1124への所有権転送(つまり、上述の第1所有権転送)の結果として生成される。
【0139】
図11に示す例では、パーティ1110の返金トランザクション1112は、t-3tcからt-2tcまで使用可能であり、パーティ1116の前の返金トランザクションは、t-2tcからt-tcまで使用可能であり、パーティ1124の返金トランザクション1126は、t-tcからtまで使用可能であり、パーティ1130(つまり第1パーティ)の返金トランザクション1132は、tの後に使用可能である。
【0140】
図11に示す例では、SEが更新される度に、前の鍵シェアは無効になり、SEが後に漏洩したとしても使用できない。転送の速度は、通信チャネル遅延により及び/又は本願明細書に記載の動作の実行時間により制限されてよい。想定されるように、算術演算のコストは無視でき、ECC演算は現代のCPUにおいてミリ秒未満で計算され得る。2者ECDSAは、より効率的であり、計算に数秒しかかからない。しかしながら、2者ECDSAは返金トランザクションを要求されるだけである。ほぼ即時の転送は、パーティの各々がオンラインであり、転送動作に関連付けられた要求に応答する場合に、行われ得る。
【0141】
所有権の変化の度に、新しい返金トランザクションが生成され、前に発行された返金トランザクションより早くtcに設定されたタイムアウトで署名される。有効になるために、後述のように、返金トランザクションは、タイムアウトが終了した後に、ブロックチェーンネットワークにブロードキャストされなければならない。タイムアウトが終了した後に、返金トランザクションをブロックチェーンネットワークにブロードキャストすることは、交換所が協力しない又はできない場合に、前のバックアップを無効にする。したがって、第1所有者Pについて、タイムアウトはtに設定され、所有者Pnについてタイムアウトはt-ntcに設定される。一実施形態では、交換所の任務は、暗号通貨デポジット毎に、tの記録、値tc、及び現在のnを保つことである。
【0142】
図12は、信頼できないパーティ間のオフチェーン暗号通貨トランザクションのデタッチ段階が交換所プラットフォームを用いて実行される例示的環境1200をブロック図形式で示す。図12に示す例では、パーティ1202(「パーティn+1」と示される)が、交換所1204にアタッチされた暗号通貨デポジット1206のデタッチ1214を開始する。上述のように、暗号通貨デポジット1206は、交換所1204にアタッチされた複数の暗号通貨デポジット1208のうちの1つであってよい。
【0143】
一実施形態では、上述のように例えば前のトランザクションが暗号通貨デポジット1206の1つ以上の部分の所有権を転送したとき、パーティ1202は、暗号通貨デポジット1206の全体量より少ないデタッチ1214を開始してよい。
【0144】
パーティ1202は、現在共有鍵1210により暗号通貨デポジット1206の現在所有者として指定される。現在共有鍵1210は、本願明細書に記載のように交換所のアタッチ秘密鍵(SE)及びパーティ1202のアタッチ秘密鍵(Sn+1)から生成される。図12に示す例では、パーティ1202は、t-ntcのタイムアウトを有する返金トランザクション1212を有し、パーティ1202は現在所有者なので、この返金トランザクションタイムアウトは前の所有者の返金トランザクションのうち最も早い。
【0145】
パーティ1202が暗号通貨デポジット1206の一部又は全部のデタッチ1214を開始するとき、暗号通貨デポジット1206のパーティ1202への進行を提供するトランザクション1216が生成され、暗号通貨デポジット1206は交換所1204からデタッチされる。その結果、暗号通貨デポジット1206を用いる更なるオフチェーン暗号通貨トランザクションは実行できない。一実施形態では、交換所1204のアタッチ秘密鍵(SE)は、細断され又はその他の場合には破棄され、暗号通貨デポジット1206を用いる更なるオフチェーン暗号通貨トランザクションが実行できないことを保証する。
【0146】
図13は、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300をフローチャート形式で示す。処理1300は、図1と関連して説明したブロックチェーンネットワーク100のようなブロックチェーンネットワークの、図1と関連して説明したノード102のうちの1つのようなノードにより実行されてよい。つまり、図1と関連して記載したノード102のうちの1つのようなノードは、図13と関連して記載した交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションのデタッチ段階を実行するために、例示的な処理1300を実行してよい。
【0147】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1302では、上述のように、パーティは、交換所からのデタッチを要求する。
【0148】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1304では、パーティが現在所有者か否か(つまり、パーティが暗号通貨デポジットを分配することを認可されているか否か)が決定される。一実施形態では、共有鍵を交換所のアタッチ秘密鍵(SE)及びパーティのアタッチ秘密鍵(例えば、第nパーティのSn)から計算することにより、パーティが現在所有者であるか否かが決定される。一実施形態では、現在所有者は、現在所有者のアタッチ公開鍵を交換所のアタッチ秘密鍵と結合し、及びその結果を共有公開鍵と比較して、それらが等しいことを保証することにより、現在所有者のアタッチ公開鍵を用いて確認できる。
【0149】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1304で、パーティが現在所有者ではないと決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1306では、デタッチが許可されない。一実施形態では、デタッチを要求するパーティは、enclaveからデタッチが許可されないことを示すメッセージを受信する。
【0150】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1304で、パーティが現在所有者であると決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1308では、本願明細書に記載のように、第1タイムアウト(つまり、最も早い開始時間を有するタイムアウト)に達したか否かが決定される。例えば、第4パーティが現在所有者であり、第4パーティがタイムアウトt-3tcを有する返金トランザクションを有する場合、少なくとも図11と関連して記載されたように、現在時間がタイムアウトt-3tcの前であるならば、第1タイムアウトに達しておらず、現在時間がタイムアウトt-3tcの後であるならば、第1タイムアウトに達している。
【0151】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1308で、第1タイムアウトに達したと決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1310では、暗号通貨デポジットの返金トランザクションが開始し、したがってデタッチは例示的な処理1300のステップ1306で記載したように許可されない。
【0152】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1308で、第1タイムアウトに達していないと決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1312では、デタッチが許可される。
【0153】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1314では、交換所は、現在の交換所秘密鍵をデタッチを要求するパーティへ送信する。
【0154】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1316で、パーティは、交換所秘密鍵及びパーティのアタッチ秘密鍵を用いて、共有鍵を生成する(例えば、共有鍵(S)は交換所の秘密鍵(SE)にパーティの秘密アタッチ鍵(例えば、第nパーティのSn)を乗じることにより生成される)。
【0155】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1318で、上述のように、パーティは、交換所と共に共有鍵を検証する。
【0156】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションのデタッチ段階を実行する例示的な処理1300のステップ1320で、パーティは、共有鍵を用いて、現在時間から最も早いタイムアウトに達するまで暗号通貨デポジットからのUTXOを使用すべきトランザクションを生成する。つまり、パーティは、最も早いタイムアウトに達する前のいつでも、共有鍵を使用してトランザクションを生成する。パーティが、最も早いタイムアウトに達した後に、共有鍵を用いてトランザクションを生成するために待機する場合、トランザクションは返金の中断により失敗し得る。UTXOを「使用する」ことは、技術的意味において、トランザクションのブロックチェーンへの記録が、ブロックチェーン上の別のトランザクションのインプットとしてUTXOが使用されることを妨ぐ場合、例えばUTXOがトランザクションへのインプットとして使用されることを意味する。
【0157】
図13に示した例示的な処理1300で実行される動作のうちの1つ以上は、並列を含む種々の順序及び組み合わせで実行されてよいことに留意する。
【0158】
図14は、信頼できないパーティ間のオフチェーン暗号通貨トランザクションの返金段階が交換所プラットフォームを用いて実行される例示的環境1400をブロック図形式で示す。図14に示す例では、現在時間1402は、t-ntcである。ここで、itは第1タイムアウト期間であり、アタッチ期間より長く(例えば、30日のアタッチ期間に対して、tは90日である)、tcは返金時間である(例えば、30分又は3ブロック)。例えば、481個のパーティ(又は480個の所有権転送)がある場合、現在時間1402はt-480*tcであり、これは90日-30分の480倍であり、又は暗号通貨デポジットのアタッチ後80日である。
【0159】
図14に示す例では、パーティのいずれも、暗号通貨デポジットをデタッチしておらず、返金段階は現在時間に基づき開始する。第1返金期間1406の間、パーティ1408(例えば第481パーティ)は、自身の返金トランザクションをブロックチェーン1412にブロードキャストして、暗号通貨デポジットの返金を取得してよい。第2返金期間1414の間、パーティ1416(例えば第480パーティ)は、自身の返金トランザクションをブロックチェーン1412にブロードキャストして、暗号通貨デポジットの返金を取得してよい。ここで、第1返金期間1406の間、パーティ1408は、暗号通貨デポジットの返金を取得するために自身の返金トランザクションをブロックチェーン1412にブロードキャストしないと仮定する。交換所プロトコルが所有権の無効な転送(例えば、パーティ1416からパーティ1408への所有権の転送)から回復し得るのは第2返金期間1414である。
【0160】
返金処理は、パーティのうちの1つが自身の返金期間中に自身の返金トランザクションをブロックチェーン1412へブロードキャストするのに成功するまで、継続する。返金期間1420が終了し、パーティ1422(例えば第2パーティ)が自身の返金トランザクションをブロックチェーン1412にブロードキャストしない1424場合、パーティ1428(例えば第1パーティ)は、最後の返金期間1426の間に自身の返金トランザクションをブロードキャストできる1430。一実施形態では、交換所は、最後の返金期間1426の後に(例えば、時間tに達した後に)、第1パーティへの返金トランザクションを自動生成する。
【0161】
留意すべきことに、返金トランザクションは、タイムアウト(ビットコインネットワークでは「ロックタイム(locktime)」とも呼ばれる)後にいつでもマイニングできる(つまりブロックチェーン上で使用できる)。つまり、パーティは、返金期間の間に返金トランザクションをマイニングすることに制限されない。パーティについてタイムアウトが経過すると、トランザクションはその時点から有効のままである。概して、最も近いタイムアウトを有するパーティは、パーティのタイムアウトが経過した後に、先ず彼らの返金トランザクションを提出する。第1返金トランザクションが確認されると、同じUTXOを参照する全ての他の返金トランザクションは、無効になる。最も近いタイムアウトを有するパーティは、彼らの返金トランザクションを最も早く提出するよう奨励される。これは、例えば、次のタイムアウト(例えば次のパーティのタイムアウト)まで該提出を遅らせることは、次のパーティが返金トランザクションをマイニングするリスクを生じるからである。例えば、第2返金期間1414の間、パーティ1408及びパーティ1416は、返金トランザクションをブロックチェーン1412にブロードキャストして、暗号通貨デポジットの返金を取得してよい。
【0162】
本願明細書に記載のように、最近の返金トランザクションは、最も早くブロックチェーン内にマイニングできるトランザクションである。したがって、新しい返金トランザクションの方が早く有効になり、したがって最初に使用できるので、古いトランザクション(つまり、後のタイムアウトを有する返金トランザクション)は、重複する。
【0163】
図15は、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500をフローチャート形式で示す。処理1500は、図1と関連して説明したブロックチェーンネットワーク100のようなブロックチェーンネットワークの、図1と関連して説明したノード102のうちの1つのようなノードにより実行されてよい。つまり、図1と関連して記載したノード102のうちの1つのようなノードは、図15と関連して記載した交換所プラットフォームを用いて、信頼できないパーティ間のオフチェーン暗号通貨トランザクションの返金段階を実行するために、例示的な処理1500を実行してよい。
【0164】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1502で、第1タイムアウト期間に達し、本願明細書に記載のように、返金トランザクションは要求側パーティの優先度に従い開始してよい(例えば、新しい所有者は、古い所有者に優る返金優先度を有する)。
【0165】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1504で、第1パーティ(例えば最新の所有者)が選択される。
【0166】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1506で、選択されたパーティのタイムアウトが開始したか否かが、時間t0と、使用された返金期間tcの数に少なくとも部分的に基づき開始するか否かが決定される。
【0167】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1506で、選択されたパーティのタイムアウトが開始していないと決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1508では、返金トランザクションは所定時間において許可されない。想定されるように、最も早いパーティのタイムアウト期間が開始していない場合、後のパーティのうちのいずれかのタイムアウト期間も未だ開始していない。したがって、返金を求め得るパーティは無い。
【0168】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1506で、選択されたパーティのタイムアウトが開始していると決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1510では、次のタイムアウトに達したか否か(つまり、選択されたパーティのタイムアウトが終了したか否か)が、少なくとも使用されている時間t及び返金期間tcの数に基づき決定される。
【0169】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1510で、次のタイムアウトに達したと(つまり、選択されたパーティのタイムアウトが終了したと)決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1512では、選択すべきより早いパーティ(例えば、所有権チェーンの中でより前にあるパーティ)が存在するか否かが決定される。
【0170】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1512で、選択すべきより早いパーティが存在すると決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1504で上述したように、次に早いパーティが選択される。
【0171】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1512で、選択すべきより早いパーティが存在しないと決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1514で、最も早いパーティが選択され、後述のように、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500はステップ1516で継続する。
【0172】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1510で、次のタイムアウトに達したと(つまり、選択されたパーティのタイムアウトが終了したと)決定された場合、交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1516では、ステップ1506及びステップ1510で決定された現在返金期間を有する選択された所有者が、保存した返金トランザクションをブロックチェーンにブロードキャストする。
【0173】
交換所プラットフォームを用いて信頼できないパーティ間でオフチェーン暗号通貨トランザクションの返金段階を実行する例示的な処理1500のステップ1508で、ステップ1506及びステップ1510で決定された現在返金期間を有する選択された所有者は、本願明細書に記載のようにブロードキャストされた返金トランザクションのUTXOを受信する。
【0174】
図15に示した例示的な処理1500で実行される動作のうちの1つ以上は、並列を含む種々の順序及び組み合わせで実行されてよいことに留意する。
【0175】
図16は、本発明の種々の実施形態が実施できる例示的なコンピューティング装置1600をブロック図形式で示す。図16は、本開示の特定の少なくとも一実施形態を実施するために使用され得る例示的なコンピューティング装置1600の簡略ブロック図を示す。種々の実施形態で、例示的なコンピューティング装置1600は、本願明細書に示した上述のシステム又は方法のいずれかを実施するために使用されてよい。例えば、例示的なコンピューティング装置1600は、データサーバ、ウェブサーバ、ポータブルコンピューティング装置、パーソナルコンピュータ、又は任意の電子コンピューティング装置としての使用のために構成されてよい。図16に示すように、例示的なコンピューティング装置1600は、多数の周辺サブシステムとバスシステム1604を介して動作可能に結合され及び通信するよう構成されてよい1つ以上のプロセッサ1602を含んでよい。プロセッサ1602は、本願明細書に記載のように交換所プロトコルを実施するために利用されてよい。これらの周辺サブシステムは、メモリサブシステム1608及びファイル記憶サブシステム1610を含む記憶サブシステム1606、1つ以上のユーザインタフェース入力装置1612、1つ以上のユーザインタフェース出力装置1614、及びネットワークインタフェースサブシステム1616を含んでよい。このような記憶サブシステム1606は、本開示に記載のトランザクション又は動作に関連する情報の一時的又は長期記憶のために使用されてよい。
【0176】
バスサブシステム1604は、例示的コンピューティング装置1600の種々のコンポーネント及びサブシステムに、必要に応じて互いに通信させるメカニズムを提供してよい。バスサブシステム1604は概略的に単一バスとして示されるが、バスサブシステムの代替の実施形態は複数のバスを利用してよい。ネットワークインタフェースサブシステム1616は、他のコンピューティング装置及びネットワークへのインタフェースを提供してよい。ネットワークインタフェースサブシステム1616は、例示的なコンピューティング装置1600からの他のシステムからデータを受信する及びそれへデータを送信するためのインタフェースとして機能してよい。例えば、ネットワークインタフェースサブシステム1616は、ユーザが装置を無線ネットワーク又は本願明細書に記載したような何らかの他のネットワークに接続することを可能にし得る。バスサブシステム1604は、本開示に記載のトランザクション又は動作に関連するデータを、1つ以上のプロセッサ1602に及び/又はシステム外部の他のエンティティにネットワークインタフェースサブシステム1616を介して通信するために利用されてよい。
【0177】
ユーザインタフェース入力装置1612は、キーボード、統合型マウスのようなポインティング装置、タッチパッド、又はグラフィックタブレット、スキャナ、バーコードスキャナ、ディスプレイに内蔵されたタッチスクリーン、音声認識システムのようなオーディオ入力装置、マイクロフォン、及び他の種類の入力装置のような、1つ以上のユーザ入力装置を含んでよい。概して、用語「入力装置」の使用は、コンピューティング装置1600に情報を入力するためのあらゆる可能な種類の装置及びメカニズムを含むことを意図する。1つ以上のユーザインタフェース出力装置1614は、ディスプレイサブシステム、プリンタ、又はオーディオ出力装置のような非視覚ディスプレイ、等を含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)のような平面パネル装置、発光ダイオード(LED)ディスプレイ、又は投影若しくは他のディスプレイ装置を含み得る。概して、用語「出力装置」の使用は、コンピューティング装置1600から情報を出力するためのあらゆる可能な種類の装置及びメカニズムを含むことを意図する。1つ以上の出力装置1614は、例えば、本願明細書に記載の処理及びその変形を実行するアプリケーションとのユーザ相互作用が適切な場合に、該相互作用を助けるために、ユーザインタフェースを提示するために使用されてよい。
【0178】
記憶サブシステム1606は、本開示の少なくとも一実施形態の機能を提供し得る基本プログラミング及びデータ構造を格納するコンピュータ可読記憶媒体を提供してよい。アプリケーション(プログラム、コードモジュール、命令)は、1つ以上のプロセッサにより実行されると、本開示の1つ以上の実施形態の機能を提供してよく、記憶サブシステム1060に格納されてよい。これらのアプリケーションモジュール又は命令は、1つ以上のプロセッサ1602により実行されてよい。記憶サブシステム1606は、さらに、本開示に従い使用されるデータを格納するレポジトリを提供してよい。記憶サブシステム1606は、メモリサブシステム1608及びファイル/ディスク記憶サブシステム1610を含んでよい。
【0179】
記憶サブシステム1608は、プログラム実行中の命令及びデータの記憶のための主ランダムアクセスメモリ(RAM)1618、及び固定命令が格納され得る読み出し専用メモリ(ROM)1620を含む多数のメモリを含み得る。ファイル記憶サブシステム1610は、プログラム及びデータファイル(本願明細書で非一時的コンピュータ可読記憶媒体とも呼ばれる)のための非一時的永久(不揮発性)記憶を提供してよく、ハードディスクドライブ、関連取り外し可能媒体と一緒のフロッピーディスクドライブ、コンパクトディスク読み出し専用メモリ(CD-ROM)ドライブ、光ドライブ、取り外し可能媒体カートリッジ及び他の同様の記憶媒体を含んでよい。
【0180】
例示的なコンピューティング装置1600は、少なくとも1つのローカルクロック1624を含んでよい。ローカルクロック1624は、特定の開始日から生じた時間数を表すカウンタであってよく、例示的なコンピューティング装置1600の内部に統合されて置かれてよい。ローカルクロック1624は、例示的なコンピューティング装置1600のプロセッサ及びその中に含まれる全サブシステム内で、特定クロックパルスにデータ転送を同期化するために使用されてよく、例示的なコンピューティング装置1600とデータセンタ内の他のシステムとの間の同期動作を調整するために使用されてよい。一実施形態では、ローカルクロック1624は原子時計である。別の実施形態では、ローカルクロックはプログラム可能な間隔タイマである。
【0181】
例示的なコンピューティング装置1600は、ポータブルコンピュータ装置、タブレットコンピュータ、ワークステーション、又は本願明細書に記載の任意の他の装置を含む種々の種類であってよい。さらに、例示的なコンピューティング装置1600は、例示的なコンピューティング装置1600に1つ以上のポート1626(例えば、ヘッドホンジャック、光コネクタ、等)を通じて接続され得る別の装置を含んでよい。例示的なコンピューティング装置1600に接続され得る装置は、光ファイバコネクタを受けるよう構成される複数のポートを含んでよい。したがって、例示的なコンピューティング装置1600に接続され得る装置は、光信号を電気信号に変換するよう構成されてよい。該電気信号は、装置を例示的なコンピューティング装置1600に接続するポートを通じて処理のために送信されてよい。コンポーネント及びネットワークの絶え間なく変わる特性により、図16に示す例示的なコンピューティング装置1600の説明は、装置の一実施形態を説明する目的で特定の例としてのみ意図される。図16に示したシステムより多数の又は少数のコンポーネントを有する多くの他の構成が可能である。
【0182】
したがって本明細書と添付図面は限定的ではなく例示的であると解釈すべきである。しかしながら、請求の範囲に記載された本発明の広範な精神及び範囲から逸脱することなく種々の変更を行うことができることが明らかである。
【0183】
他の変形は本開示の精神の範囲内にある。したがって、開示の技術は、種々の変形及び代替構成の影響を受けるが、その特定の図示の実施形態が図面に示され、以上に詳細に記載された。しかしながら、理解されるべき点は、本発明が開示された1又は複数の特定の形式に限定されないこと、むしろ、添付の請求の範囲に記載のように、全ての変形、代案構成及び均等物が本発明の精神及び範囲に包含されることが意図される。
【0184】
開示の実施形態を説明する文脈における用語「a」、「an」、及び「the」、並びに同様の指示対象は(特に、以下の請求項の文脈において)、特に断りの無い限り又は文脈により明確に矛盾しないかぎり、単数及び複数の両方をカバーすると考えられるべきである。用語「含む」、「有する」、「含む」、「伴う」、「備える」(comprising、having、including、containing)は、特に断りのない限り広義の語として考えられるべきである(つまり、「を含む、しかし限定されない」を意味する)。用語「接続される」は、変更されず物理的接続を表すとき、何かが仲介する場合でも、部分的又は全体的に含まれる、取り付けられる又は一緒に結合される、として考えられるべきである。本願明細書において値の範囲の詳述は、本願明細書に特に断りの無い限り、単に、範囲に包含される各々の別個の値を個別に参照することの簡単明瞭な言い方として機能することを意図し、各々の個別の値は、それが本願明細書に個々に詳述されたかのように、本願明細書に組み込まれる。用語「セット」(例えば、「アイテムのセット」)又は「サブセット」の使用は、特に断りの無い限り又は文脈に矛盾しない限り、1つ以上の構成要素を含む空ではない集合として考えられるべきである。さらに、特に注記されない又は文脈に矛盾しない限り、対応するセットの用語「サブセット」は、必ずしも対応するセットの適正なサブセットを示さないが、サブセット及び対応するサブセットは等しくてよい。
【0185】
「A、B、及びCのうちの少なくとも1つ」又は「少なくとも1つのA、B、及びC」の形式の句のような論理的言語は、特に断りの無い限り又は特に明確に文脈に矛盾しない限り、アイテム、後、等がA又はB又はCのいずれか、又はA及びB及びCのセットの任意の空でないサブセットであってよいことを表すために使用されることが理解される。例えば、3つの構成要素を有するセットの説明のための例では、論理的言語「A、B、及びCのうちの少なくとも1つ」又は「少なくとも1つのA、B、及びC」は、以下のセット:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}のうちのいずれかを表す。したがって、このような論理的言語は、通常、特定の実施形態が少なくとも1つのA、少なくとも1つのB、及び少なくとも1つのCのそれぞれが存在必要があることを意味することを意図しない。
【0186】
本願明細書に記載の処理の動作は、本願明細書に示されない限り、又は文脈上明らかに矛盾しない限り、任意の適切な順序で実行できる。本願明細書に記載の処理(又はその変形及び/又は結合)は、実行可能命令により構成される1つ以上のコンピュータシステムの制御下で実行されてよく、1つ以上のプロセッサ上で集合的に実行するコード(例えば、実行可能命令、1つ以上のコンピュータプログラム又は1つ以上のアプリケーション)として、ハードウェアにより、又はそれらの組み合わせで実装されてよい。コードは、コンピュータ可読記憶媒体に、例えば1つ以上のプロセッサにより実行可能な複数の命令を含むコンピュータプログラムの形式で格納されてよい。コンピュータ可読記憶媒体は、非一時的であってよい(つまり、非一時的コンピュータ可読記憶媒体であってよい)。
【0187】
本願明細書で与えられる任意の及び全ての例又は例示的言語(例えば、「のような」)の使用は、単に、本発明の実施形態をより良好に解明することを意図しており、特に断りのない限り本発明の範囲を限定することを意図しない。明細書中のいかなる言語も、本発明の実施に不可欠な任意の非請求要素を示すと考えられるべきではない。
【0188】
本開示の実施形態は、本願明細書に記載され、本発明を実施するために発明者に知られている最適モードを含む。これらの実施形態の変形は、前述の説明を読んだ当業者に明らかになり得る。発明者は、熟練技術者が、これらの変形を適切に利用することを期待し、発明者は、本開示の実施形態が本願明細書に特に記載されたものと異なる方法で実施されることを意図する。したがって、本開示の範囲は、適切な法により許可されるように、添付の請求の範囲に詳述された主題の全ての変形及び均等物を含む。さらに、それらの全ての可能な変形における上述の要素の任意の組み合わせは、本願明細書に特に断りの無い限り又は文脈に明確に矛盾しない限り、本開示の範囲に包含される。
【0189】
留意すべきことに、開示の実施形態を説明する文脈において、特に断りのない限り、「命令」が通常単独で実行しない動作(例えば、データの送信、計算、等)を実行する実行可能命令(コード、アプリケーション、エージェント、等とも呼ばれる)に関する表現の使用は、命令が機械により実行されることを示し、それにより機械に指定された演算を実行させる。
【0190】
留意すべきことに、上述の実施形態は、本発明を限定するのではなく、当業者は添付の請求項により定められる本発明の範囲から逸脱することなく多数の代替の実施形態を考案できる。請求項中、括弧内に記載された如何なる参照符号も、請求項を制限すると見なされるべきではない。用語「有する(comprising又はcomprises)」等は、全体としていかなる請求項中に及び明細書に列挙された以外の要素又はステップの存在を排除するものではない。本願明細書において、「有する(comprises)」は「含む(includes)又は構成される(consists of)」を意味し、「有する(comprising)」は「含む(including)又は構成される(including of)」を意味する。要素の単数の参照は、該要素の複数の存在を排除するものではなく、逆も同様である。本発明は、複数の別個の要素を有するハードウェアにより又は適切にプログラムされたコンピュータにより、実施され得る。複数の手段を列挙している装置の請求項では、これらの複数の手段は、1つの同一のハードウェア要素により実装することができる。特定の量が相互に異なる従属請求項に記載されるという事実は、これらの量の組合せが有利に用いることが出来ないことを示すものではない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
【外国語明細書】