(57)【要約】  リソースへのアクセス又はリソースの制御を移転するコンピュータにより実施される方法が提供される。前記方法は、第１ブロックチェーントランザクションにデータアイテム（S１）を提供することによりリソースの制御を移転するために償還可能な、ブロックチェーントランザクションを提供するステップであって、前記データアイテムは、開示可能な値（ｓ）及び秘密値（ｋ０）の両方の制御部によってのみ決定可能である、ステップと、制御部が前記データアイテムを決定できるように、前記開示可能な値を前記秘密値の制御部に提供するステップと、を含む。前記方法は、Ｂｉｔｃｏｉｎブロックチェーンを用いて、又は異なるブロックチェーンの組合せを用いて実行されてよい。
2022501887.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実施される方法であって、前記方法は、
第１ブロックチェーントランザクションに少なくともデータアイテムを提供することにより第１リソースへのアクセスを可能にするために償還可能な、前記第１ブロックチェーントランザクションを提供するステップであって、前記データアイテムは、開示可能な値及び秘密値の両方の制御部によってのみ決定可能である、ステップと、
制御部が前記データアイテムを決定できるように、前記開示可能な値を前記秘密値の制御部に提供するステップと、
を含む方法。
【請求項２】
前記データアイテムは、第１暗号鍵ペアのうちの第１秘密鍵を含む、請求項１に記載の方法。
【請求項３】
前記第１ブロックチェーントランザクションは、更に、償還可能になるために、第２暗号鍵ペアのうちの第２秘密鍵を提供する必要があり、前記第２暗号鍵ペアは、前記第１リソースの意図される受信側に関連付けられる、請求項２に記載の方法。
【請求項４】
前記第１秘密鍵は、決定性暗号鍵ペアのうちの決定性秘密鍵であり、前記ペアのうちの決定性公開鍵は、前記第１暗号鍵ペアの第１公開鍵及び前記第２暗号鍵ペアの第２公開鍵を用いて導出される、請求項３に記載の方法。
【請求項５】
前記開示可能な値を前記制御部に提供する前記ステップは、
少なくとも前記データアイテムを第２ブロックチェーントランザクションに提供することにより第２リソースへのアクセスを可能にするために償還可能な、前記第２ブロックチェーントランザクションを提供するステップであって、前記第２ブロックチェーントランザクションの償還は、前記開示可能な値を前記制御部に提供させる、ステップと、
前記第２ブロックチェーントランザクションを償還するステップと、
を含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
請求項１〜５のいずれかのブロックチェーントランザクションの償還は、前記データアイテムに対応する暗号署名を計算し、前記トランザクション内に格納された値を前記計算した署名の少なくとも一部と比較することを含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記秘密値は、デジタル署名処理で使用される一過性の鍵である、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
システムであって、
プロセッサと、
前記プロセッサによる実行の結果として、前記システムに請求項１〜７のいずれか一項に記載の方法を実行させる実行可能命令を含むメモリと、
を含むシステム。
【請求項９】
実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、前記コンピュータシステムに、請求項１〜７のいずれか一項に記載の方法を少なくとも実行させる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、リソースへのアクセス又はリソースの制御のセキュアな移転に関し、特に、１つ以上のブロックチェーントランザクションを用いて送信される暗号鍵を介する、このようなアクセス又は制御のアトミックな（atomic）移転に関する。本開示は、限定ではなく、Ｂｉｔｃｏｉｎプロトコルの任意の変形の中で使用することに特に適する。
【背景技術】
【０００２】
本願明細書では、私たちは、全ての形式の電子的な、コンピュータに基づく、分散型台帳を包含するために用語「ブロックチェーン」を使用する。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、並びにこれらの変形を含む。他のブロックチェーン実装が提案され開発されているが、ブロックチェーン技術の最も広く知られているアプリケーションは、Ｂｉｔｃｏｉｎ台帳である。Ｂｉｔｃｏｉｎは、ここでは、便宜上及び説明の目的で参照されることがあるが、本開示はＢｉｔｃｏｉｎブロックチェーンと共に使用することに限定されず、代替のブロックチェーン実装及びプロトコルが本開示の範囲に包含されることに留意すべきである。用語「ユーザ」は、ここでは、人間またはプロセッサに基づくリソースを表してよい。
【０００３】
ブロックチェーンは、コンピュータに基づく非集中型の分散型システムとして実装されるピアツーピアの電子台帳であり、ブロックにより構成され、ブロックはまたトランザクションにより構成される。各トランザクションは、ブロックチェーンシステムの中の参加者間でデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも１つのインプット及び少なくとも１つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、これらのブロックは一緒に繋げられて、起源以来ブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能な記録を生成する。トランザクションは、スクリプトとして知られている小さなプログラムを含む。スクリプトは、それらのインプット及びアウトプットを埋め込まれ、トランザクションのアウトプットがどのように及び誰によりアクセス可能であるかを指定する。Ｂｉｔｃｏｉｎプラットフォームでは、これらのスクリプトはスタックに基づくスクリプト言語を用いて記述される。
【０００４】
トランザクションがブロックチェーンに書き込まれるためには、検証されなければならない。ネットワークノード（マイナー）は、無効なトランザクションがネットワークから拒否され、各トランザクションが有効であることを保証するために作業を実行する。ノードにインストールされたソフトウェアクライアントは、未使用トランザクション（unspent  transaction,  UTXO）のロック及びアンロックスクリプトを実行することにより、UTXOに対してこの検証作業を実行する。ロック及びアンロックスクリプトの実行が真（TRUE）と評価する場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、（ｉ）トランザクションを受信した第１ノードにより検証され、トランザクションが有効な場合には、ノードが該トランザクションをネットワーク内の他のノードに中継する、（ｉｉ）マイナーにより構築された新しいブロックに追加される、（ｉｉｉ）マイニングされる、つまり過去のトランザクションのパブリック台帳に追加される、ことが必要である。
【０００５】
ブロックチェーン技術は、暗号通貨の実装の使用のために最も広く知られているが、デジタル事業家が、Ｂｉｔｃｏｉｎの基づく暗号セキュリティシステム及び新しいシステムを実装するためにブロックチェーンに格納できるデータの両方の使用を開発し始めている。ブロックチェーンが、暗号通貨の分野に限定されない自動化タスク及びプロセスのために使用できれば、非常に有利になる。このようなソリューションは、ブロックチェーンの利益（例えば、永久性、イベントの記録の耐タンパ性、分散型処理、等）を利用しながら、それらの用途をより多様化し得る。
【０００６】
現在の研究の一分野は、「スマートコントラクト」の実装のためのブロックチェーンに基づくコンピュータプログラムの使用である。これらは、機械可読コントラクト又は合意の条項の実行を自動化するよう設計されたコンピュータプログラムである。自然言語で記述される伝統的なコントラクトと異なり、スマートコントラクトは、結果を生成するためにインプットを処理できるルールを含む機械実行可能プログラムであり、これは次に該結果に依存して動作を実行させる。
【０００７】
別の領域のロックチェーンに関連する関心事項は、ブロックチェーンを介して現実世界のエンティティを表現し及び移転するための、「トークン」（又は「カラードコイン（coloured  coin）」）の使用である。潜在的に極秘の又は秘密のアイテムは、識別可能な意味又は値を有しないトークンにより表すことができる。したがって、トークンは、現実世界のアイテムがブロックチェーンから参照されることを可能にする識別子として機能する。
【０００８】
アトミックスワップ（atomic  swap）の概念は、暗号通貨のコミュニティで既に議論されている。パーティ間の交換は、全参加者が彼らの所望のリソース（例えば、暗号通貨トークン又はコイン）を受信するか又は何もしないという意味で、原子的（atomic）である。記述の時点で、Wikipediaは、アトミックスワップを「信頼される第三者を必要とすることなく、ある暗号通貨の別の暗号通貨への交換を可能にする、暗号通貨において提案された機能」として記述している。伝統的な暗号通貨では、あるパーティが通貨を受信することなく通貨を送信するのを防ぐために、暗号通貨のスワップを実行するために、暗号通貨交換所のような信頼される第三者が必要である。アトミックスワップシステムは、ハッシュ時間ロックされたスマートコントラクトを使用する。その結果、パーティは、指定された時間内にスワップされるべき通貨を供給しなければならず、さもなければ、トランザクションは取り消されるだろう。これは、スワップが行われるか、又は通貨がスワップされないという点でアトミック性を保存する。https://en.wikipedia.org/wiki/Atomic_swap。
【０００９】
従って、多くのセキュリティ違反又は「ハッキング」がMount  Goxのような暗号通貨交換所に関して実行されているが、信頼される第三者の必要を除去することが、搾取及び悪意ある介入のリスクを除去するので、アトミックスワップは、ブロックチェーン上で行われる移転に関してセキュリティの向上を提供する。
【発明の概要】
【００１０】
従って、ブロックチェーン技術により提供される不変性及びトラストレス性を有する、リソースをアトミックに交換する、暗号法によるリソース交換方法を提供することが望ましい。これは、ブロックチェーンの実施されるネットワーク上で行われる交換に関してセキュリティを向上する。
【００１１】
このような改良されたソリューションがここで考案される。
【００１２】
したがって、本開示によると、添付の請求項において定められる方法が提供される。
【００１３】
本開示により、コンピュータにより実施される方法が提供され得る。当該方法は、リソースの制御を移転する方法として記載され得る。当該方法は、ブロックチェーンネットワークに渡り又はそれを介してリソースの移転を制御する。追加で又は代替として、当該方法は、セキュアな移転方法として記載され得る。追加又は代替として、当該方法は、いつ及び／又は誰により被制御リソースがアクセス可能であるかを制御するセキュリティ方法として記述され得る。リソースは、暗号通貨の一部又はトークン化されたアイテム／アセット／エンティティのような、ブロックチェーンに格納されたリソース又はブロックチェーンからの参照であってよい。
【００１４】
前記方法は、
第１ブロックチェーントランザクションに少なくともデータアイテムを提供することにより第１リソースへのアクセスを可能にするために償還可能な、前記第１ブロックチェーントランザクションを提供するステップであって、前記データアイテムは、開示可能な値及び秘密値の両方の制御部によってのみ決定可能である、ステップと、
制御部が前記データアイテムを決定できるように、前記開示可能な値を前記秘密値の制御部に提供するステップと、
を含み得る。本開示の文脈では、「アクセスを可能にする」は、限定ではないが、暗号通貨の額のようなリソースの制御を移転すること、又は文書、オンラインリソース、若しくはセキュリティアクセスコードへのアクセスを可能にすることを含む。
【００１５】
本方法は、１つ以上のブロックチェーンのプロトコルが１つ以上の共通ハッシュ関数を共有することを要求することなく、これらのブロックチェーンを用いてリソースへのアクセス又はリソースの制御をセキュアに転送させることを可能にする。それにより、移転が実施できるブロックチェーンの数を増大させるという利点を提供する。従って、移転の汎用性を向上しながら、このような制御又はアクセスの移転のセキュリティ及び効率が保存される。本方法は、互換性のないネットワーク／ブロックチェーンプロトコルに渡る移転も可能にする。
【００１６】
前記データアイテムは、第１暗号鍵ペアのうちの第１秘密鍵を含んでよい。
【００１７】
前記第１ブロックチェーントランザクションは、更に、償還可能になるために、第２暗号鍵ペアのうちの第２秘密鍵を提供する必要があってよく、前記第２暗号鍵ペアは、前記第１リソースの意図される受信側に関連付けられる。
【００１８】
これは、第１秘密鍵の望ましくない知識を有する任意のアクターが第１トランザクションを償還することを防ぐことにより、前記方法のセキュリティを向上するという利点を提供する。
【００１９】
前記第１秘密鍵は、決定性暗号鍵ペアのうちの決定性秘密鍵であってよく、前記ペアのうちの決定性公開鍵は、前記第１暗号鍵ペアの第１公開鍵及び前記第２暗号鍵ペアの第２公開鍵を用いて導出される。
【００２０】
これは、第１暗号鍵の望ましくない開示が第１トランザクションを傷つけてしまわないように、第１トランザクションを償還する意図された受信者の能力を維持しながら、あるレベルの難読化を提供することにより、本方法のセキュリティを更に向上する。
【００２１】
前記開示可能な値を前記制御部に提供する前記ステップは、
少なくとも前記データアイテムを第２ブロックチェーントランザクションに提供することにより第２リソースへのアクセスを可能にするために償還可能な、前記第２ブロックチェーントランザクションを提供するステップであって、前記第２ブロックチェーントランザクションの償還は、前記開示可能な値を前記制御部に提供させる、ステップと、
前記第２ブロックチェーントランザクションを償還するステップと、を含んでよい。
【００２２】
これは、ハッシュ関数の使用を要求することなく、リソースアクセス又は制御のアトミックスワップが実行されることを可能にする。それにより、共通のハッシュ関数を共有するブロックチェーンプロトコルに対する制限を有しないで、実行されるべきセキュアな同時デジタル交換のメカニズムを提供する。
【００２３】
上述のブロックチェーントランザクションの償還は、前記データアイテムに対応する暗号署名を計算し、前記トランザクション内に格納された値を前記計算した署名の少なくとも一部と比較することを含んでよい。
【００２４】
これは、暗号アルゴリズムの重要な部分をオフブロックで実行可能にする。それにより、ブロックチェーンから暗号セキュリティのレベルを維持するための必要なタスクを提供し、第１トランザクションのサイズを縮小する（従って、記憶要件を低減する）及び方法の効率を向上するという関連する利益を提供する。
【００２５】
秘密値は、デジタル署名処理において使用される一過性の鍵であってよい。
【００２６】
本開示は、プロセッサと、プロセッサによる実行の結果として、システムに本願明細書に記載のコンピュータにより実施される方法のいずれかの実施形態を実行させる実行可能命令を含むメモリと、を含むシステムも提供する。
【００２７】
本開示は、実行可能命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムのプロセッサにより実行された結果として、少なくとも、前記コンピュータシステムに、本願明細書に記載のコンピュータにより実施される方法を実行させる、非一時的コンピュータ可読記憶媒体も提供する。
【００２８】
本開示のこれらの及び他の態様は、本願明細書に記載の実施形態から明らかであり及びそれらを参照して教示される。本開示の実施形態は、単なる例を用いて及び添付の図面を参照して以下に説明される。
【図面の簡単な説明】
【００２９】
【図１】従来技術の識別エンコーディングルール（Distinguished  Encoding  Rules）の表を示す。
【図２】署名の一部を抽出するためのスクリプトを含む表を示す。
【図３】本開示の実施形態のステップを含むフローチャートを示す。
【図４】本開示の実施形態のステップを含むフローチャートを示す。
【図５】本開示の実施形態のステップを含むフローチャートを示す。
【図６】種々の実施形態が実装できるコンピューティング環境を示す概略図である。
【発明を実施するための形態】
【００３０】
標準的なハッシュ関数、例えばＳＨＡ−２５６は、データ構造Ｘをとり、２５６ビットの数値Ｈ（Ｘ）∈Ｚ２５６を出力する。これは、一方向決定的関数である。
Ｘ→Ｈ（Ｘ）
暗号通貨の文脈では、ハッシュ関数はハッシュパズル（hash  puzzle）を生成するために使用できる。これは、プレイメージ（pre−image）Ｘが関数の入力に提供された場合、及びその場合にのみ真（ＴＲＵＥ）である、関数＜Ｓｏｌｖｅ  Ｈ（Ｘ）＞である。つまり、
＜Ｘ＞＜Ｓｏｌｖｅ  Ｈ（Ｘ）＞＝ＴＵＲＥ
ＳＨＡ−２５６では、このような関数は以下によりビットコインスクリプトの中で与えられる。
＜Ｓｏｌｖｅ  Ｈ（Ｘ）＞＝ＯＰ＿ＨＡＳＨ２５６＜Ｈ（Ｘ）＞ＯＰ＿ＥＱＵＡＬＶＥＲＩＦＹ
ハッシュパズルは、トランザクションが償還される場合に、プレイメージＸがＲｅｄｅｅｍスクリプトインプットの中で開示され、従ってブロックチェーン上で可視でなければならないことを保証するために、ブロックチェーントランザクションのＲｅｄｅｅｍスクリプトのようなスクリプトの中で使用されてよい。
【００３１】
［表１］
【００３２】
【表１】
2022501887.tif 000003
ＥＣＤＳＡプロトコルの下では、秘密鍵Ｓ１及びメッセージハッシュＨ（ｍ）の署名は、以下の方法で生成される（メッセージハッシュは誰にでも知られているが、秘密鍵はメッセージに署名する人物にだけ知られていることに留意する）。
【００３３】
第１のステップは、一過性の鍵（ephemeral  key）として知られる乱数ｋ∈Ｚ＊ｎを生成することである。この値から、ｒが導出される。これは、生成元（generator  point）により乗算された一過性の鍵のｘ座標である。
ｒ＝Ｒｘ，    （Ｒｘ，Ｒｙ）＝ｋ・Ｇ
値ｒは、署名の半分を形成する。もう半分ｓは、次式により定義される。
ｓ＝ｋ−１（Ｈ（ｍ）＋Ｓ１＊ｒ）  ｍｏｄ  ｎ
組合せ（ｒ，ｓ）＝Ｓｉｇ  Ｐ１は、ＥＣＤＳＡ署名である。
【００３４】
ＥＣＤＳＡの１つの重要な特徴は、一過性の鍵ｋが分かれば、秘密鍵が以下のように計算できることである。
Ｓ１＝ｒ−１（ｓ＊ｋ−Ｈ（ｍ））  ｍｏｄ  ｎ
署名（ｒ，ｓ）のデータ構造は、何らかの追加符号化データと連結された及びｓの整数値を含む。
【００３５】
識別エンコーディングルール（Distinguished  Encoding  Rules  (DER)）［S.  Blake−Wilson,  D.  Brown,  P.  Lambert,  Use  of  Elliptic  Curve  Cryptography  (ECC)  Algorithms  in  Cryptographic  Message  Syntax  (CMS),  Network  Working  Group  (２００２);  https://tools.ietf.org/html/rfc３２７８］によると、ＥＣＤＳＡ署名（ｒ，ｓ）のデータ構造の特定の符号化は、図１に示す表により与えられる（ダミーｒ及びｓデータ値が使用されることに留意する）。
【００３６】
図１を参照すると、ｓｉｇｈａｓｈタイプを表す最後のバイトは、標準的なＤＥＲ符号化ではないが、ビットコイン署名符号化で使用される。署名の４番目のバイトは、長さｒを表す。これは、ｒのバイナリ表現の先頭ビットが０である場合に３２バイトであり、先頭ビットが１である場合に３３バイトである。この場合、余分なゼロ値バイトがバイト列に追加される。署名の第５バイト〜第３６又は第３７バイトは、値又はｒ自体を表す。
【００３７】
秘密鍵パズルを生成する方法を以下に説明する。
【００３８】
秘密鍵パズルは、所与の公開鍵Ｐ１の秘密鍵Ｓ１を計算可能にするインプットが提供された場合にＴＲＵＥと評価する、Ｒｅｄｅｅｍスクリプト内の関数である。
【００３９】
この形式のパズルは、楕円曲線暗号法（Elliptic  Curve  Cryptography  （ECC)）の公開／秘密鍵ペアの代数の特性が、リソースアクセス及び制御の実装で利用されることを可能にする。２つの公開鍵の和が計算されれば、対応する秘密鍵は、個々の秘密鍵の和になる。
Ｐ１＋Ｐ２＝（Ｓ１＋Ｓ２）・Ｇ
これをハッシュ関数と比べると、２つの値のハッシュの和が計算される場合、対応するプレイメージが通常は個々のプレイメージの和ではない。
Ｈ（Ｘ１＋Ｘ２）≠Ｈ（Ｘ１）＋Ｈ（Ｘ２）
個々のプレイメージのハッシュ値の和がプレイメージの和のハッシュ値に等しいハッシュ関数が存在するが（ハーモニックハッシュ関数として知られる）、これらは通常実装するのに実用できではない。更に、公開／秘密鍵ペアは、データの暗号化／解読、及び楕円曲線デジタル署名アルゴリズム（Elliptic  Curve  Digital  Signature  Algorithm  (ECDSA)）を用いてメッセージの署名を可能にする。
【００４０】
アトミックスワップを実施する際の秘密鍵パズルの例を以下に説明する。これらの例は、ここに開示する方法のユーザが、共通のハッシュ関数を共有しないブロックチェーン上のチェーン間スワップを実行することを可能にする。例は、公開／秘密鍵ペアにより制御されるリソースの制御またはリソースへのアクセスの移転を含む。
【００４１】
本願を通じて、秘密鍵パズルは、ＥＣＣ鍵ペア及びＥＣＤＳＡプロトコルの観点で定式化される。しかしながら、本開示はこれらの規格に限定されない。例えば、方法は、シャノア（Ｓｃｈｎｏｒｒ）署名、ＤＳＡプロトコルによるＲＳＡ鍵ペアにも適用可能である。
【００４２】
上述のように、秘密鍵パズル（private  key  puzzle）は、＜Ｓｏｌｖｅ  Ｐ１＞であり、対応する秘密鍵＜Ｓ１＞に作用する場合にＴＲＵＥと評価する。つまり：
＜Ｓ１＞＜Ｓｏｌｖｅ  Ｐ１＞＝ＴＵＲＥ
このような関数は現在存在しない。＜Ｓｏｌｖｅ  Ｐ１＞をトランザクションＲｅｄｅｅｍスクリプトに含めることは、トランザクションを償還するために、Ｒｅｄｅｅｍスクリプトに提供されるインプットが対応する秘密鍵Ｓ１を含まなければならないことを保証する。これは、Ｓ１がブロックチェーン上で公に露出されることを意味する。しかしながら、少なくとも、ＲｅｄｅｅｍスクリプトがＢｉｔｃｏｉｎブロックチェーン上のブロックチェーントランザクションのＲｅｄｅｅｍスクリプトである場合、このような関数は、トランザクションが構成され使用されることを防ぐ法外に多数のオペレータを必要とし得る。この問題は、以下に詳述される。
【００４３】
楕円曲線点乗算を実行する演算子ＯＰ＿ＥＣＭＵＬＴが存在するとする。これは、楕円曲線上の点、例えば生成元Ｇが、正整数、例えばＳ１∈Ｚ＊ｎにより乗算されることを意味する。つまり：
＜Ｓ１＞＜Ｇ＞ＯＰ＿ＥＣＭＵＬＴ＝＜Ｐ１＞
この場合、秘密鍵パズルは以下により与えられる。
【００４４】
＜Ｓｏｌｖｅ  Ｐ１＞＝＜Ｓ１＞＜Ｇ＞ＯＰ＿ＥＣＭＵＬＴ＜Ｐ１＞ＯＰ＿ＥＱＵＡＬＶＥＲＩＦＹ
しかしながら、現在、このような楕円曲線演算子はビットコインスクリプトの中に存在しない。
【００４５】
２０１８年５月のビットコイン分岐（fork）で以前に廃止された幾つかのオペコード、例えばＯＰ＿ＭＯＤを復元した後に、ビットコインスクリプトの中で楕円曲線乗算を実行するため、つまり他の演算子を用いてＯＰ＿ＥＣＭＵＬＴを構成するために必要な全ての演算子が技術的に揃った。しかしながら、これが可能ではない実用上の理由がある。
【００４６】
このような関数は、最少で２５６回の反復を必要とし、各反復は複雑な演算の幾つかの行を含む。最も顕著なことは、各反復は、モジュラ逆数（modular  inverse）を取るために、拡張ユークリッドアルゴリズムを適用する必要があることである。従って、この必要なスクリプトのサイズは、限界である２０１個のオペコード又は１０ＫＢを遙かに超えるだろう。
【００４７】
これに対して、以下に提示される方法は、僅か数行のオペコードを使用するだけである。
【００４８】
秘密鍵がオフブロックで計算されることを含む、秘密鍵パズルを生成し利用する方法の実施形態が以下に開示される。実施形態では、秘密鍵自体は、Ｒｅｄｅｅｍスクリプトのインプットで露出されず、むしろ、署名のコンポーネントが露出される。
【００４９】
鍵の思想は、アンロックスクリプトが、特定の一過性の鍵に関連する署名を含むことを要求する。対応する秘密鍵は、次に、一過性の鍵を知る者なら誰によっても、署名から計算できる。
【００５０】
ビットコインスクリプトを参照して記載される実施形態は、任意の非標準的なスクリプト演算を使用しない。
【００５１】
関数＜Ｓｏｌｖｅ  Ｐ１，ｒ０＞が構成され、Ｐ１は公開鍵であり、ｒ０は特定の一過性の鍵ｋ０から導出される。この関数は、インプット＜Ｓｉｇ  Ｐ１，ｒ０＞＜Ｐ１＞に対して作用する場合、及びその場合にのみ、ＴＲＵＥと評価する。ここで、＜Ｓｉｇ  Ｐ１，ｒ０＞は特定の一過性の鍵ｋ０を使用するＰ１の署名を示す。知られる一過性の鍵による署名が対応する秘密鍵を露出するので、一旦＜Ｓｉｇ  Ｐ１，ｒ０＞が公にされると、秘密鍵は、ｋ０を知る者なら誰によっても計算され得る。
【００５２】
図２を参照すると、署名のｒ部分を抽出するビットコインスクリプトが開示される。上述の署名のＤＥＲ符号化に従い、ｒ部分を抽出するために、第３６又は第３７バイトまで、第５バイトの署名を分割する必要がある。これは、第４バイトの値に依存する。これは、ビットコインスクリプトにより達成される：
ＯＰ＿３  ＯＰ＿ＳＰＲＩＴ  ＯＰ＿ＮＩＰ  ＯＰ＿１  ＯＰ＿ＳＰＲＩＴ  ＳＯＰ＿ＳＷＡＰ  ＯＰ＿ＳＰＬＩＴ  ＯＰ＿ＤＲＯＰ
公開鍵Ｐ１を検討する。上述のように、対応するアンロックスクリプトが一過性の鍵の制御部に秘密鍵Ｐ１を決定するための十分な情報を露出するように、ロックスクリプトを生成する方法が開示される。
【００５３】
方法は、ｋ０と示される一過性の鍵を使用するＰ１の署名を、アンロックスクリプトに強制的に含めることを含む。Ｓ１と示される対応する秘密鍵は、一過性の鍵を知る者なら誰によっても、署名から計算できる。方法のユーザは、使用すべきｋ０の値に同意している。ユーザは、知られている適切なセキュアな方法を用いて、この値を互いに通信してよい。
【００５４】
上述のように、ＥＣＤＳＡ署名は、２つのコンポーネントから成る。つまり、Ｓｉｇ  Ｐ１＝（ｒ，ｓ）であり、ｒは一過性の鍵ｋ０に直接関連し、それから計算可能である。
【００５５】
一過性の鍵ｋ０に対応するｒ＝Ｒｘの値は、次式を通じて（オフブロックで）計算される：
（Ｒｘ，Ｒｙ）＝ｋ０・Ｇ
一過性の鍵ｋ０を使用するＰ１の署名をインプットとして要求するＲｅｄｅｅｍスクリプトが次に生成される。
【００５６】
［表２］
【００５７】
【表２】
2022501887.tif 000004
ビットコインブロックチェーンと互換性のあるＲｅｄｅｅｍスクリプトの一例が以下に与えられる。
【００５８】
［表３］
【００５９】
【表３】
2022501887.tif 000005
ここで鍵パズルのスクリプト＜Ｓｏｌｖｅ  Ｐ１，ｒ０＞＝
［表４］
【００６０】
【表４】
2022501887.tif 000006
上述の表で、第１行は、公開鍵Ｐ１をオルトスタック（alt−stack）に配置し、署名を複製する。第２行は、正しい一過性の鍵が使用されたことをチェックする。第３行は、オルトスタックから公開鍵を読み出し、署名が有効であることをチェックする。以上で使用したビットコインスクリプト、つまり、ＯＰ＿ＤＵＰ、ＯＰ＿ＴＯＡＬＴＳＴＡＣＫ、及びＯＰ＿ＦＲＯＭＡＬＴＳＴＡＣＫは、厳格な要件ではなく、例えばインプット変数を複製し並べ替える場合には省略できる。
【００６１】
ビットコインスクリプト内で秘密鍵パズルを定式化する代替的方法が存在することに留意する。特に、ＯＰ＿ＳＰＬＩＴの代わりに、ＯＰ＿ＣＡＴを使用できる。この場合、Ｒｅｄｅｅｍスクリプトへのインプットは、ｓコンポーネント（これは、予め決定された一過性の鍵ｋ０及び秘密鍵Ｓ１を用いて計算され得る）のみを含む部分的な署名である。Ｒｅｄｅｅｍスクリプトは、次に、完全な署名（ｒ，ｓ）を生成するために、ｒの予め決定された値を、部分的な署名と連結し得る。この署名は、構成により、所望のｒを有し得る。従って、標準的なｃｈｅｃｋｓｉｇ演算が残される。
【００６２】
アトミックスワップは、２つのトランザクションを参照する。つまり、１つはＡｌｉｃｅからＢｏｂへ、１つはＢｏｂからＡｌｉｃｅへである。アトミックスワップは、両方のトランザクションが償還可能であること、又はいずれも償還可能でないことを保証する。これが生じることを可能にするメカニズムは、Ｒｅｄｅｅｍスクリプト内のハッシュパズルである。アトミックスワップの利点は以下を含む。
・異なるブロックチェーン上の暗号通貨が交換され得る。例えば、ＡｌｉｃｅはＢＣＨをＢｏｂへ送信し、ＢＴＣをＢｏｂから受信してよい。
・同じブロックチェーン上のカラードコイン又は他の形式のトークンが交換されてよい。
【００６３】
現在、異なるブロックチェーンに渡るアトミックな交換は、両方のブロックチェーンがそれらのスクリプト言語において共通のハッシュ関数を共有することを要求することに留意する。本開示の利点は、ブロックチェーンがもはや共通のハッシュ関数を必要としないことである。それにより、多種多様なブロックチェーンに渡るリソースの制御又はリソースへのアクセスの移転を可能にする。さらに、デジタル署名に基づくアトミックな交換により、デジタル署名が対応する公開鍵と一貫性があるかを検証することが可能であり、それにより、交換のセキュリティを向上する。
【００６４】
知られている方法は、本開示の実施形態の後の説明のコンテキストを与えるために以下に記載される。
【００６５】
ＰＡ及びＰＢが、それぞれＡｌｉｃｅ及びＢｏｂのＥＣＤＳＡ公開鍵を示すとする。
１．  Ａｌｉｃｅは、彼女自身にだけ知られているシークレットＡ０∈Ｚ＊ｎを選択する（ｎは、楕円曲線生成元Ｇの次数である）。
２．  Ａｌｉｃｅは、Ｂｏｂに、Ｒｅｄｅｅｍスクリプトによりロックされた資金を送金する。
＜ＣｈｅｃｋＳｉｇ  ＰＢ＞＜Ｓｏｌｖｅ  Ｈ（Ａ０）＞
この段階で、ＢｏｂはＨ（Ａ０）のプレイメージを知らないので、彼は資金を使用できない。
３．  Ｂｏｂは、Ａｌｉｃｅに、Ｒｅｄｅｅｍスクリプトによりロックされた資金を送金する。
＜ＣｈｅｃｋＳｉｇ  ＰＡ＞＜Ｓｏｌｖｅ  Ｈ（Ａ０）＞
４．  ＡｌｉｃｅはＡ０を知っているので、彼女は資金を使用できる。これは、ＡｌｉｃｅのＲｅｄｅｅｍスクリプトのインプットとして、ブロックチェーン上でＡ０を開示する。
【００６６】
Ｂｏｂは、Ａ０が分かり、彼の資金を使用できる。
【００６７】
前述の本開示の秘密鍵パズルは、共有されるハッシュ関数の要件を有しないで、１つ以上のブロックチェーンのユーザ間でアトミックスワップを実施するために使用されてよい。このようなアトミックスワップを実施する方法を以下に説明する。
【００６８】
ハッシュパズルを使用する代わりに、アトミックスワップでは上述の秘密鍵パズルが使用される。これは、知られているアトミックスワップの全部の機能を保持しながら、以下を含む有利な汎用性を可能にする。
・  共通のハッシュ関数を共有しないブロックチェーンに渡るアトミックスワップ。
・  公開／秘密鍵ペアにより制御されるリソースの制御またはリソースへのアクセスのアトミックな交換。
【００６９】
上述のように、ハッシュパズルではなく秘密鍵パズルを使用するとき、Ａｌｉｃｅがトランザクションを償還するとき、ハッシュのプレイメージを開示する代わりに、彼女は、知られている公開鍵の秘密鍵を決定可能にする。この対比は以下の表に示される。
【００７０】
［表５］
【００７１】
【表５】
2022501887.tif 000007
本開示の実施形態は、以下の方法のステップの観点で、図３を参照して説明される。
１．  （１１０）Ａｌｉｃｅは、一過性の鍵ｋ０を選択し、それを、適切なセキュアなチャネルを介してＢｏｂへ送信する。代替として、Ａｌｉｃｅ及びＢｏｂは、ｋ０について合意していてよい。
２．  （１２０）Ａｌｉｃｅは、彼女自身にのみ知られている秘密鍵Ｓ１∈Ｚ＊ｎを選択する。彼女は、対応する公開鍵Ｐ１＝Ｓ１・Ｇを計算する。
３．  （１３０）Ａｌｉｃｅは、Ｒｅｄｅｅｍスクリプトを有するトランザクションＴｘＡを生成する。
＜ＣｈｅｃｋＳｉｇ  ＰＢ＞＜Ｓｏｌｖｅ  Ｐ１，ｒ０＞
ＰＢはＢｏｂの公開鍵であり、＜Ｓｏｌｖｅ  Ｐ１，ｒ０＞は上述の秘密鍵パズルである。この段階で、Ｂｏｂは、公開鍵Ｐ１に対応する秘密鍵、つまりＳ１を知らないので、Ｂｏｂはトランザクションを償還できない。Ａｌｉｃｅは、ＴｘＡをブロックチェーンに提出する。
４．  （１４０）Ｂｏｂは、Ｒｅｄｅｅｍスクリプトを有するトランザクションＴｘＢを生成する。
＜ＣｈｅｃｋＳｉｇ  ＰＡ＞＜Ｓｏｌｖｅ  Ｐ１，ｒ０＞
ここで、ＰＡはＡｌｉｃｅの公開鍵である。Ｂｏｂは、ＴｘＢをブロックチェーンに提出する。
５．  （１５０）ＡｌｉｃｅはＳ１を知っているので、彼女はＴｘＢを償還できる。ＴｘＢのＲｅｄｅｅｍスクリプトのインプットはとして、Ａｌｉｃｅは、特定の一過性の鍵ｋ０を使用してＰ１の署名を提供しなければならない。ＴｘＢにアンロックスクリプトを提示するＲｅｄｅｅｍトランザクションのブロックチェーンへの提出によるＴｘＢの償還は、必ずしもｓの値を公にしない。彼が一過性の鍵ｋ０の値を既に知っているならば、ｓのこの開示は、Ｂｏｂが秘密鍵Ｓ１を計算することを可能にする。（１６０）ＴｘＡ及びＴｘＢの償還について、タイムロック機能を用いて時間制約が存在してよく又は存在しなくてよい。タイムロック機能は、時間が経つと、Ａｌｉｃｅ及びＢｏｂが適切な返金トランザクションをブロックチェーンに提出することにより、ＴｘＡ及びＴｘＢをＡｌｉｃｅ及びＢｏｂに返すことを可能にするよう構成される。
６．  （１７０）ＡｌｉｃｅがＴｘＢを償還した場合、（１８０）Ｂｏｂは、Ｓ１を計算でき、（１９０）ＲｅｄｅｅｍトランザクションのアンロックスクリプトによりＳ１に対応する署名を提供することにより、Ｔｘ１を償還できる。
【００７２】
この方法は、ハッシュパズルに依存しないので、スクリプト言語の中で共通のハッシュ関数を共有しないブロックチェーンに渡り、アトミックスワップを行うために使用できる。必要なことは、スクリプト言語が秘密鍵パズルを生成するための十分な機能を含むことだけである。これは、あまり限定的な要件セットではない。
【００７３】
図４を参照すると、更なる実施形態では、Ａｌｉｃｅ及びＢｏｂは、それぞれ彼ら自身の一過性の鍵ｋＡ及びｋＢ並びに彼ら自身の秘密鍵ＸＡ及びＸＢを選択する。彼らは、上述の非同期の実施形態の彼らが一過性の鍵ｋ０を通信するのと同様の方法で、彼らの一過性の鍵を交換する。Ａｌｉｃｅ及びＢｏｂは、次に、署名コンポーネント、つまり、点ｋＡ・Ｇのｘ成分であるｒＡと、点ｋＢ・Ｇのｘ成分であるｒＢと計算してよい。ＸＡ及びＸＢを用いて計算される署名の残りの署名コンポーネントは、それぞれｓＡ及びｓＢと示され、従って、Ｓｉｇ  ＸＡ＝（ｒＡ，ｓＡ）及びＳｉｇ  ＸＢ＝（ｒＢ，ｓＢ）である。ｋＡ及びｋＢは、本実施形態では同じであってよく又は同じでなくてよい。つまり、共通のｋ０が代わりに使用されてよい。
【００７４】
本実施形態は、以下のステップに従い実行される。
１．  （２１０Ａ、２１０Ｂ）Ａｌｉｃｅ及びＢｏｂは、彼ら自身の一過性の鍵ｋＡ及びｋＢを選択し、それらを互いに通信する。
２．  （２２０Ａ）Ａｌｉｃｅは、彼女自身にのみ知られている秘密鍵ＸＡ∈Ｚ＊ｎを選択する。彼女は、対応する公開鍵ＹＡ＝ＸＡ・Ｇを計算する。
３．  （２３０）Ａｌｉｃｅは、Ｒｅｄｅｅｍスクリプトを有するトランザクションＴｘ１Ａを生成する。
＜ＣｈｅｃｋＳｉｇ  ＰＢ＞＜Ｓｏｌｖｅ  ＹＡ，ＹＢ，ｒＡ，ｒＢ＞
ＰＢはＢｏｂの公開鍵であり、秘密鍵ＸＡ，ＸＢに対応する署名の提供を要求する＜Ｓｏｌｖｅ  ＹＡ，ＹＢ，ｒＡ，ｒＢ＞は秘密鍵パズルである。この段階で、Ｂｏｂは、公開鍵ＹＡに対応する秘密鍵、つまりＸＡを知らないので、Ｂｏｂはトランザクションを償還できない。
４．  （２２０Ｂ）Ｂｏｂは、彼自身にのみ知られている秘密鍵ＸＢ∈Ｚ＊ｎを選択する。彼は、対応する公開鍵ＹＢ＝ＸＢ・Ｇを計算する。
５．  （２４０）Ｂｏｂは、Ｒｅｄｅｅｍスクリプトを有するトランザクションＴｘ１Ｂを生成する。
＜ＣｈｅｃｋＳｉｇ  ＰＡ＞＜Ｓｏｌｖｅ  ＹＡ，ＹＢ，ｒＡ，ｒＢ＞
ここで、ＰＡはＡｌｉｃｅの公開鍵である。
【００７５】
Ｔｘ１Ａ及びＴｘ１Ｂのスクリプトの鍵パズル部分は同一であることに留意する。鍵パズル＜Ｓｏｌｖｅ  ＹＡ，ＹＢ，ｒＡ，ｒＢ＞は、秘密鍵ＸＡ，ＸＢに対応する署名、つまり署名（ｒＡ，ｓＡ）及び（ｒＢ，ｓＢ）の提示を要求する。
【００７６】
（２５０）この時点で、ＡｌｉｃｅはＸＢを知らないか、又はＡｌｉｃｅはｓＢを知らないので彼女はそれを計算できない。同様に、Ｂｏｂは、ＸＡ又はｓＡを知らない。従って、ＡｌｉｃｅもＢｏｂも、Ｔｘ１Ａ又はＴｘ１Ｂを償還するための十分な情報を有しない。Ａｌｉｃｅ及びＢｏｂの両者は、彼らそれぞれの署名コンポーネントｓＡ／ｓＢ又は秘密鍵ＸＡ／ＸＢを互いに通信することにより、誠実に振る舞う。或いは、彼らのうちの一方のみが誠実に振る舞い、或いは、両者とも誠実に振る舞わない。従って、以下の結果のうちの１つが生じ得る。
【００７７】
６Ａ．１）ＡｌｉｃｅがＢｏｂにｓＡ又はＸＡを送信し、ＢｏｂがＡｌｉｃｅにｓＢ又はＸＢを送信する（つまり、両パーティは誠実に振る舞う）。（２９５）従って、Ａｌｉｃｅ及びＢｏｂの両者は、中にある鍵パズルを解くトランザクションＴｘ１Ａ及びＴｘ１ＢのＲｅｄｅｅｍスクリプトに署名を提供するための十分な情報を有する。Ｔｘ１Ａ及びＴｘ１Ｂは、従って、Ｔｘ１Ａ及びＴｘ１Ｂにそれぞれのアンロックスクリプトを提示する支払いトランザクションの提出により、Ｂｏｂ及びＡｌｉｃｅによりそれぞれ償還できる。
【００７８】
６Ｂ．２）ＢｏｂにｓＡ又はＸＡを送信することにより、Ａｌｉｃｅだけが誠実に振る舞い、Ｂｏｂは、Ａｌｉｃｅに正しいｓＢ又はＸＢを送信しない又は何も送信しないことにより、不誠実に振る舞うと仮定する。（２７０）Ｂｏｂは、次に、Ｔｘ１ＡのＲｅｄｅｅｍスクリプトに含まれる鍵パズルを解くために、ＸＡに対応する、アンロックスクリプトの中の署名を提供するＲｅｄｅｅｍトランザクションを提出することにより、Ｔｘ１Ａを償還できる。一旦、Ｂｏｂが、ブロックチェーンに、Ｔｘ１Ａを償還するために構成されたアンロックスクリプトを含むＲｅｄｅｅｍトランザクションを提出すると、署名（ｒＢ，ｓＢ）が公に利用可能にされる。（２８０）それにより、Ａｌｉｃｅは、彼女が一過性の鍵ｋＢを知っているので、彼女が鍵ＸＢを計算することを可能にする値ｓＢに気付き、従ってＴｘ１Ｂを償還するための十分な情報を有することになる。（２９０）Ａｌｉｃｅは、次に、Ｔｘ１ＢのＲｅｄｅｅｍスクリプトに含まれる鍵パズルを解くために、ＸＢに対応する、アンロックスクリプトの中の署名を提供するＲｅｄｅｅｍトランザクションを提出する。
【００７９】
６Ｃ．３）Ａｌｉｃｅ及びＢｏｂのいずれも、他方にｓＡ／ｓＢ又はＸＡ／ＸＢのどれも送信しないとする。（２６０）この場合、トランザクションＴｘ１Ａ及びＴＸ１Ｂは、タイムロック（アクティブな場合）が終了するような時間まで、償還できないままである。タイムロックは、ブロックチェーンに適切なＲｅｄｅｅｍトランザクションを提出するそれらそれぞれのオーナにトランザクションの制御を戻すことを可能にする。
【００８０】
上述の実施形態で説明したようなトランザクションの対称的構成は、鍵パズルにより構成されるトランザクションを用いてアトミックスワップを行うことを可能にする。これは、必要な情報に依存するトランザクションを償還するために該必要な情報を開示するために、ブロックがマイニングされるのをパーティが待つ必要があるのではなく、両方のトランザクションＴｘ１Ａ及びＴｘ１Ｂが、他のパーティへ同時に、それぞれのリソースへのアクセス及びリソースの制御を移転することを可能にする。
【００８１】
１つ以上のリソースへのアクセス又はリソースの制御のアトミックな交換を可能にする本開示の実施形態は、図５を参照して説明される。
【００８２】
本実施形態では、Ａｌｉｃｅは、ＥＣＣ公開／秘密鍵ペアにより、リソースへのアクセスを制御する。このリソースは、一種の暗号通貨の資金であってよく、複数種類の暗号通貨で資金供給されてよく、又は、ウェブアプリ、レンタカー、又は暗号文書へのアクセス、ウェブカメラ又はドア施錠のようなモノのインターネットのスマート装置の制御であってよい。以下に、Ｂｉｔｃｏｉｎプロトコルを用いて、ＢｏｂがＡｌｉｃｅからこのリソースへのアクセスを獲得するための方法が提示される。この交換はアトミックである。つまり、Ａｌｉｃｅは、彼女がＢｏｂから受信したＢＣＨを償還し、Ｂｏｂは、リソースへのアクセス又はリソースの制御を獲得するか、又は何も起こらない。
【００８３】
一例として、ＢｏｂがＡｌｉｃｅへＢＣＨの資金を送金し、ＡｌｉｃｅがＢｏｂへＢＣＨ、Ｅｔｈｅｒｅｕｍ（ＥＴＨ）及びＤＡＳＨの資金を送金することを考える。
【００８４】
この方法は、リソースを制御する秘密鍵を計算するために一過性の鍵の制御部により要求される情報が、アトミックスワップの完了したときに、露出されることを保証する。これは、パーティが被制御リソースへのアクセスを許可する際の信頼の必要を除去する。
【００８５】
方法は、以下のステップを含む。
１．  （３１０）Ａｌｉｃｅは、一過性の鍵ｋ０を選択し、それをＢｏｂに通信する。
２．  （３２０）Ａｌｉｃｅは、彼女自身にのみ知られている秘密鍵Ｓ１∈Ｚ＊ｎを選択する。彼女は、対応する公開鍵Ｐ１＝Ｓ１・Ｇを計算する。この公開鍵は、リソースへのアクセスを制御し、公開的にブロードキャストされる。
【００８６】
（本例では、リソースは、公開鍵Ｐ１でロックされたＢＣＨ、ＥＴＨ、及びＤＡＳＨの資金である。）
３．  （３２５）Ａｌｉｃｅは、Ｂｏｂの公開鍵ＰＢを用いて、決定性公開鍵Ｐ’＝Ｐ１＋ＰＢ＝Ｐ１＋ＳＢ・Ｇを計算し、（３３０）リソースへのアクセスが、公開鍵Ｐ’の秘密鍵Ｓ’＝ＳＢ＋Ｓ１のオーナにより取得できるようにする。例えば、これは、暗号通貨の額をアドレスＰ’へ送信するトランザクションＴｘ’を生成することにより、又は公開鍵Ｐ’により文書を暗号化して、該文書をオープンフォーラム上でブロードキャストすることにより、達成され得る。（本例では、Ａｌｉｃｅは、共通アドレスへのＢＣＨ、ＥＴＨ、ＤＡＳＨトランザクションを生成し、それぞれ共通公開鍵Ｐ’でロックされる。）
４．  （３４０）Ｂｏｂは、ＲｅｄｅｅｍスクリプトでロックされたトランザクションＴｘＢを提出する。
＜ＣｈｅｃｋＳｉｇ  ＰＡ＞＜Ｓｏｌｖｅ  Ｐ１，ｒ０＞
５．  （３７０）ＡｌｉｃｅはＳ１を知っているので、彼女はＴｘＢを償還できる。本例では、これは、ＢＣＨブロックチェーン上で行われる。上述のように、これは、Ｂｏｂが、ＡｌｉｃｅのＲｅｄｅｅｍスクリプトへのインプットの中で提供された情報からＳ１を計算できるようにする。（３６０）Ｔｘ’及びＴｘＢの償還について、タイムロック機能を用いて時間制約が存在してよく又は存在しなくてよい。タイムロック機能は、時間が経つと、Ｔｘ’及びＴｘＢをＡｌｉｃｅ及びＢｏｂに返すことを可能にするよう構成される。
６．  （３７０）Ａｌｉｃｅは、アンロックスクリプトの中のＳ１に対応する署名を提供するＲｅｄｅｅｍトランザクションを提出して、署名のｓ部分をＢｏｂに開示することにより、トランザクションＴｘＢを償還する。
７．  （３８０）Ｂｏｂは、ここでＳ１を計算し、従って（３８５）Ｐ’の秘密鍵Ｓ’＝ＳＢ＋Ｓ１を計算できる。彼は、それにより、Ｐ’により制御されるリソースへのアクセスを獲得する。（本例では、Ｂｏｂは、ここで、公開鍵Ｐ’でロックされたＢＣＨ、ＥＴＨ、及びＤＡＳＨの資金を使用できる。）
秘密鍵Ｓ１がブロックチェーン上で又はその他の場合に公に露出された場合でも、Ｐ’でロックされたリソースにアクセス又は制御できるのはＢｏｂだけである。これは、リソースが、Ｓ１とＢｏｂの秘密鍵との組み合わせによりロックされているからである。この意味で、Ｓ１は、決定性鍵として動作する。
【００８７】
本例では、Ｂｏｂが購入している暗号通貨がそれらのスクリプト言語の特定の演算を含むことはもはや必要ないことがわかる。必要なことは、ＢｏｂがＢＣＨの暗号通貨の集合に支払うこと、トランザクションがＥＣＤＳＡ署名を用いて制御されることだけである。
【００８８】
ＢｏｂのリソースがＡｌｉｃｅにより永遠にロックされることを回避するために、時間ロックされた返金が本方法に導入できる。これは、ＢｏｂのＡｌｉｃｅへの最初のトランザクション以来の、特定の相対時間、例えば２４時間が経過した後に、Ｂｏｂにリソースを返す、ＡｌｉｃｅからＢｏｂへのＢＣＨトランザクションである。
【００８９】
同様に、Ａｌｉｃｅは、特定の時間量が経過した後に、彼女の制御するリソースへのアクセスを彼女自身に戻してよい。複数の暗号通貨の例では、これは、Ｂｏｂのものと同様に、返金トランザクションでもあり得る。
【００９０】
特定の時間量が経過した後に、スワップが完了していない場合に、Ａｌｉｃｅがリソースの制御を彼女自身に戻す必要は無く又は実用的ではない。例えば、リソースが、Ｂｏｂのアクセスが許可された暗号化文書である場合、Ａｌｉｃｅがその文書を無期限に鍵Ｐ’により暗号化されたままにしておくことに不利益はない。
【００９１】
図６を参照すると、本開示の少なくとも一実施形態を実施するために使用され得るコンピューティング装置２６００の説明のための簡略ブロック図が提供される。種々の実施形態で、コンピューティング装置２６００は、上述の図示のシステムのうちのいずれかを実装するために使用されてよい。例えば、コンピューティング装置２６００は、データサーバ、ウェブサーバ、ポータブルコンピューティング装置、パーソナルコンピュータ、又は任意の電子コンピューティング装置として使用するために構成されてよい。図６に示すように、コンピューティング装置２６００は、主メモリ２６０８及び永久記憶装置２６１０を含む記憶サブシステム２６０６と通信するよう構成され得る１つ以上のレベルのキャッシュメモリ及びメモリ制御部（集合的に２６０２とラベル付けされる）を備える１つ以上のプロセッサを含んでよい。主メモリ２６０８は、図示のように、動的ランダムアクセスメモリ（ＤＲＡＭ）２６１８及び読み出し専用メモリ（ＲＯＭ）２６２０を含み得る。記憶サブシステム２６０６及びキャッシュメモリ２６０２は、本開示で説明されたようなトランザクション及びブロックに関連付けられた詳細事項のような情報の記憶のために使用されてよい。プロセッサ２６０２は、本開示で説明されたような任意の実施形態のステップ又は機能を提供するために利用されてよい。
【００９２】
プロセッサ２６０２は、１つ以上のユーザインタフェース入力装置２６１２、１つ以上のユーザインタフェース出力装置２６１４、及びネットワークインタフェースサブシステム２６１６とも通信できる。
【００９３】
バスサブシステム２６０４は、コンピューティング装置２６００の種々のコンポーネント及びサブシステムが意図した通りに互いに通信できるようにするメカニズムを提供してよい。バスサブシステム２６０４は、単一のバスとして概略的に示されるが、バスサブシステムの代替の実施形態は、複数のバスを利用してよい。
【００９４】
ネットワークインタフェースサブシステム２６１６は、他のコンピューティング装置及びネットワークへのインタフェースを提供してよい。ネットワークインタフェースサブシステム２６１６は、幾つかの実施形態では、コンピューティング装置２６００の他のシステムからデータを受信し及びそれへデータを送信するインタフェースとして機能してよい。例えば、ネットワークインタフェースサブシステム２６１６は、データ技術者が、装置をネットワークに接続することを可能にする。その結果、データ技術者は、データセンタのような遠隔地にいがなら、データを装置へ送信し、データを装置から受信できる。
【００９５】
ユーザインタフェース入力装置２６１２は、キーボード、統合型マウス、トラックボール、タッチパッド、又はグラフィックタブレットのような指示装置、スキャナ、バーコードスキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンのようなオーディオ入力装置、及び他の種類の入力装置のような、１つ以上のユーザ入力装置を含んでよい。通常、用語「入力装置」の使用は、コンピューティング装置２６００に情報を入力する全ての可能な種類の装置及びメカニズムを含むことを意図する。
【００９６】
１つ以上のユーザインタフェース出力装置２６１４は、ディスプレイサブシステム、プリンタ、又は音声出力装置のような非視覚ディスプレイを含んでよい。ディスプレイサブシステムは、陰極線管（CRT）、液晶ディスプレイ（LCD）、発光ダイオード（LED）ディスプレイ、又はプロジェクションのような平面装置、又は他のディスプレイ装置を含んでよい。通常、用語「出力装置」の使用は、コンピューティング装置２６００から情報を出力する全ての可能な種類の装置及びメカニズムを含むことを意図する。１つ以上のユーザインタフェース出力装置２６１４は、例えば、ユーザインタフェースを提示して、ここに記載したプロセス及び変形を実行するアプリケーションとのユーザ相互作用が適切であるとき、そのような相互作用を実現するために使用されてよい。
【００９７】
記憶サブシステム２６０６は、本開示の少なくとも１つの実施形態の機能を提供する基本プログラミング及びデータ構造を記憶するコンピュータ可読記憶媒体を提供してよい。アプリケーション（例えば、プログラム、コードモジュール、命令）は、１つ以上のプロセッサにより実行されると、本開示の１つ以上の実施形態の機能を提供し、記憶サブシステム２６０６に格納されてよい。これらのアプリケーションモジュール又は命令は、１つ以上のプロセッサ２６０２により実行されてよい。記憶サブシステム２６０６は、更に、本開示に従い使用されるデータを格納するレポジトリを提供する。例えば、主メモリ２６０８及びキャッシュメモリ２６０２は、プログラム及びデータのための揮発性記憶を提供できる。永久記憶装置２６１０は、プログラム及びデータの永久（不揮発性）記憶を提供でき、磁気ハードディスクドライブ、取り外し可能媒体に関連付けられた１つ以上のフロッピディスクドライブ、取り外し可能媒体に関連付けられた１つ以上の光ドライブ（例えば、ＣＤ−ＲＯＭ、又はＤＶＤ、又はＢｌｕｅ−Ｒａｙ）ドライブ、及び他の同様の記憶媒体を含んでよい。このようなプログラム及びデータは、本開示に記載した１つ以上の実施形態のステップを実行するためのプログラム、及び本開示に記載したトランザクション及びブロックに関連付けられたデータを含み得る。
【００９８】
コンピューティング装置２６００は、ポータブルコンピュータ装置、タブレットコンピュータ、ワークステーション、又は後述する任意の他の装置を含む種々のタイプのものであってよい。さらに、コンピューティング装置２６００は、１つ以上のポート（例えば、USB、ヘッドフォンジャック、光コネクタ、等）を通じてコンピューティング装置２６００に接続可能な別の装置を含み得る。コンピューティング装置２６００に接続され得る装置は、光ファイバコネクタを受けるよう構成される複数のポートを含んでよい。したがって、この装置は、光信号を、処理のために装置を接続するポートを通じてコンピューティング装置２６００に送信される電気信号に変換するよう構成されてよい。コンピュータ及びネットワークの絶えず変化する特性により、図６に示したコンピューティング装置２６００の説明は、装置の好適な実施形態を説明する目的の特定の例としてのみ意図される。図６に示したシステムより多くの又は少ないコンポーネントを有する多くの他の構成が可能である。
【００９９】
上述の実施形態は、本開示を限定するのではなく、説明すること、及び当業者は添付の特許請求の範囲により定められる本開示の範囲から逸脱することなく多くの代替的実施形態を考案できることに留意すべきである。特許請求の範囲において、括弧内の任意の参照符号は、請求項を限定することを意図しない。用語「有する」及び「含む」（comprising、comprises）等は、任意の請求項又は明細書全体に列挙されたもの以外の要素またはステップの存在を排除しない。本願明細書では、「有する」は「有する又は構成される」を意味し、「含む」は「含む又は構成される」を意味する。要素の単数の参照は、該要素の複数の参照を排除しない。逆も同様である。本開示は、幾つかの別個の要素を含むハードウェアにより、及び適切にプログラムされたコンピュータにより、実装できる。幾つかの手段を列挙する装置クレームでは、これらの手段のうちの幾つかは、１つの同じハードウェアアイテムにより具現化されてよい。単に特定の手段が相互に異なる従属請求項に記載されるという事実は、これらの手段の組み合わせが有利に使用されないことを示さない。
【図１】
2022501887.tif 000008
【図２】
2022501887.tif 000009
【図３】
2022501887.tif 000010
【図４】
2022501887.tif 000011
【図５】
2022501887.tif 000012
【図６】
2022501887.tif 000013
【国際調査報告】
2022501887.tif 000014
2022501887.tif 000015