(57)【要約】  本願明細書は、ユーザにより生成されたトランザクションのＩＰアドレスとトランザクションの中の該ユーザのブロックチェーンアドレスとの間のリンクを不明瞭にするために、ブロックチェーンネットワーク上で拡散する前に、複数のブロックチェーンユーザが彼らのトランザクションを交換することを可能にするシステム及び方法を記載する。システム及び方法は、トランザクションをオフチェーンで直接交換するための技術的ソリューションを提供する。方法における参加者は、デポジットを生成すること、及び返金及び補償方式が自動的に実施される方法が参加者間で交換されるトランザクションのブロックチェーンにおける承認に依存するように、彼らのトランザクションを変更することに合意し、従って、セキュリティを向上すると共に匿名性を提供する。当該方法は、任意の数（ｎ＞２）の参加者についてスケーリングされる。
2021530163.tif 000002
【特許請求の範囲】
【請求項１】
ｎ＞２人の参加者の間でブロックチェーントランザクションを交換し、後にブロックチェーン上に記憶するために該ブロックチェーントランザクションをブロックチェーンネットワーク上にブロードキャストするための、コンピュータにより実施される方法であって、
暗号鍵及び関連するブロックチェーンアドレスを生成し、参加者の間で交換するステップと、
参加者の間で交換されるべき前記ブロックチェーントランザクションの各々を、前記トランザクションをブロードキャストすることを担う参加者により請求される返金アウトプットを各ブロックチェーントランザクションに含めることにより、変更するステップと、
前記暗号鍵及び前記関連するブロックチェーンアドレスを用いて１つ以上のデポジットトランザクションを構成し、前記１つ以上のデポジットトランザクションを前記ブロックチェーンに提出するステップであって、前記１つ以上のデポジットトランザクションは、別の参加者にブロックチェーントランザクションを正しくブロードキャストする参加者に返金するため、及び彼らのブロックチェーントランザクションが正しくブロードキャストされなかった場合に参加者を補償するために構成される、ステップと、
前記参加者の間で前記変更されたブロックチェーントランザクションを署名し交換するステップと、
前記１つ以上のデポジットトランザクションのアウトプット及び前記変更されたブロックチェーントランザクションの前記返金アウトプットをインプットのために使用して、返金トランザクションを構成するステップと、
前記１つ以上のデポジットトランザクションの前記アウトプットをインプットのために使用して、補償トランザクションを構成するステップと、
前記補償トランザクション及び前記変更されたブロックチェーントランザクションをブロードキャストするステップと、
前記ブロックチェーン上で前記変更されたブロックチェーントランザクションを確認すると、前記返金トランザクションをブロードキャストするステップであって、参加者の変更されたブロックチェーントランザクションが前記ブロックチェーン上で確認されない場合、前記参加者は前記補償トランザクション内の関連する未使用アウトプットを請求する、ステップと、
を含むコンピュータにより実施される方法。
【請求項２】
暗号鍵及び関連するブロックチェーンアドレスを生成し、参加者の間で交換するステップは、
各参加者が、２つの秘密−公開鍵ペア（ｋｉ１，Ｐｉ１）及び（ｋｉ２，Ｐｉ２）を生成し、
前記参加者が、順序集合｛Ｕ０，Ｕ１，．．．，Ｕｎ−２，Ｕｎ−１｝を実現するためにランダム化され、
各参加者Ｕｉは、前記２つの公開鍵Ｐｉ１及びＰｉ２を２人の他の参加者（Ｕｎ−１及びＵｎ＋１）と交換し、
各参加者Ｕｉは、前記２人の他の参加者により提供される彼らの公開鍵Ｐｉ１及びＰｉ２を用いて、ブロックチェーンアドレスのペア（αｉ，βｉ）を生成し、
各参加者Ｕｉは、ブロックチェーンアドレスの前記ペア（αｉ，βｉ）を前記２人の他の参加者と交換すること、
を含む、請求項１に記載のコンピュータにより実施される方法。
【請求項３】
各参加者により生成された前記ブロックチェーンアドレスのうちの１つ（αｉ）は、前記参加者（Ｕｉ）及び別の参加者（Ｕｉ＋１）の両者からの署名を要求する、請求項１又は２に記載のコンピュータにより実施される方法。
【請求項４】
各参加者（Ｕｉ）により生成された前記ブロックチェーンアドレスのうちの１つ（βｉ）は、別の参加者（Ｕｉ−１）からの署名だけを要求する、請求項１〜３のいずれか一項に記載のコンピュータにより実施される方法。
【請求項５】
各参加者（Ｕｉ）は、秘密−公開鍵ペア（ｙｉ，Ｑｉ）を生成し、前記公開鍵を発行し、前記参加者は、前記鍵ペア（ｙｉ，Ｑｉ）を用いて暗号化チャネルを介して互いに通信できる、請求項１〜４のいずれか一項に記載のコンピュータにより実施される方法。
【請求項６】
前記１つ以上のデポジットトランザクションは、前記１つ以上のデポジットトランザクションのアウトプットがシャッフルされる又は前記１つ以上のデポジットトランザクションのインプットに対してランダム化されるように、構成される、請求項１〜５のいずれか一項に記載のコンピュータにより実施される方法。
【請求項７】
前記参加者は、彼らのデポジットを共通デポジットトランザクションの中で生成する、請求項１〜６のいずれか一項に記載のコンピュータにより実施される方法。
【請求項８】
各参加者は、個々のデポジットトランザクションを生成する、請求項１〜６のいずれか一項に記載のコンピュータにより実施される方法。
【請求項９】
前記デポジットトランザクションは、Ｐ２ＳＨ（Pay  To  Script  Hash）デポジットトランザクションである、請求項１〜８のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１０】
各デポジットは、前記参加者により生成され交換された前記ブロックチェーンアドレスのうちの１つへ、又は時間ΔＴＥの後に、彼らのブロックチェーントランザクションが前記ブロックチェーン上で承認されない場合に、前記デポジットを生成した前記参加者のブロックチェーンアドレスへ、送信されるよう構成される、請求項１〜９のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１１】
前記参加者のための前記デポジットトランザクションは、前記参加者のうちの１人により構成される、請求項１〜１０のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１２】
交換されるべき前記ブロックチェーントランザクションの各々を変更するステップは、別の参加者により提供された前記公開鍵で前記返金アウトプットをロックするステップを含み、前記変更されたトランザクションは、署名され、前記別の参加者へ送信される、請求項１〜１１のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１３】
各参加者Ｕｉは、インプットのために、前記１つ以上のデポジットトランザクションの中のアウトプットＯｉ、及び参加者Ｕｉ−１により生成された前記ブロックチェーントランザクションＴｘｉ−１の中の前記公開アドレスβｉ−１へ送信される前記返金アウトプットを使用して、彼らの返金トランザクションＲｘｉを構成して、参加者Ｕｉの返金が、彼らが参加者Ｕｉ−１のブロックチェーントランザクションＴｘｉ−１を前記ブロックチェーンに含めるために提出することに依存するようにする、請求項１〜１２のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１４】
新たに生成されたトランザクションＲｘｉの中の２つのインプットは、Ｕｉ及びＵｉ−１の署名を要求し、以下の通りである：
インプットｘ（Ｏｉ）が、参加者Ｕｉ及び参加者Ｕｉ−１の署名を要求し、及び
インプットｄ（βｉ−１）が、Ｕｉの署名だけを要求する、
請求項１３に記載のコンピュータにより実施され方法。
【請求項１５】
参加者Ｕｉは、彼らの返金トランザクションＲｘｉを参加者Ｕｉ−１へ送信し、前記参加者Ｕｉ−１は、該返金トランザクションＲｘｉに署名して参加者Ｕｉに返送し、前記参加者Ｕｉは、次に前記トランザクションＲｘｉに署名する、請求項１３又は１４に記載のコンピュータにより実施され方法。
【請求項１６】
各参加者Ｕｉは、前記１つ以上のデポジットトランザクションの中のＯｉ＋１へ送信される前記アウトプットを用いて彼らの補償トランザクションＣｘｉを構成し、参加者Ｕｉは、新たに生成されたトランザクションＣｘｉを参加者Ｕｉ＋１へ送信し、参加者Ｕｉ＋１は、Ｃｘｉに署名して参加者Ｕｉへ戻し、Ｃｘｉの中のインプットｘ（Ｏｉ＋１）はＵｉ及びＵｉ＋１の両者の署名を要求する、請求項１〜１５のいずれか一項に記載のコンピュータにより実施され方法。
【請求項１７】
前記補償トランザクションは、前記参加者が前記交換されたブロックチェーントランザクションをブロードキャストし及び該ブロックチェーントランザクションがブロックチェーンネットワーク上で承認されたと分かるために許容される最大時間を定める時間ΔＴＳの間、ロックされるアウトプットを有する、請求項１〜１６のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１８】
前記補償トランザクション及び前記ブロックチェーントランザクションをブロードキャストするステップは、各参加者Ｕｉが、２つのトランザクションＣｘｉ及びＴｘｉ−１をその順序でブロードキャストすることを含む、請求項１〜１７のいずれか一項に記載のコンピュータにより実施される方法。
【請求項１９】
前記ブロックチェーントランザクションが前記ブロックチェーン上で承認されると、前記返金トランザクションをブロードキャストするステップは、各参加者Ｕｉが、返金トランザクションＲｘｉをブロードキャストし、それにより彼らのデポジットを請求することを含む、請求項１〜１８のいずれか一項に記載のコンピュータにより実施される方法。
【請求項２０】
参加者は、彼らのブロックチェーントランザクションが、時間ΔＴＳの後にブロックチェーン上で承認されないとき、前記補償トランザクションの中の未使用アウトプットを請求できるだけである、請求項１〜１９のいずれか一項に記載のコンピュータにより実施される方法。
【請求項２１】
コンピュータ実行可能命令を含むコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、実行されると、１つ以上のプロセッサを、請求項１乃至２０のいずれか一項に記載の方法を実行するよう構成する、コンピュータ可読記憶媒体。
【請求項２２】
電子装置であって、
インタフェース装置と、
前記インタフェース装置に結合された１つ以上のプロセッサと、
前記１つ以上のプロセッサに結合されたメモリであって、前記メモリはコンピュータ実行可能命令を格納し、前記コンピュータ実行可能命令は、実行されると、前記１つ以上のプロセッサを、請求項１乃至２０のいずれか一項に記載の方法を実行するよう構成する、メモリと、
を含む電子装置。
【請求項２３】
ブロックチェーンネットワークのノードであって、前記ノードは、請求項１〜２０のいずれか一項に記載の方法を実行するよう構成されるノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書及び開示は、概して、ブロックチェーンネットワーク上へのトランザクションの提出及びそれらの拡散の前にオフチェーンでトランザクションを交換するのに適する、コンピュータにより実施される方法及びシステムに関する。本開示は、限定ではなく、Ｂｉｔｃｏｉｎブロックチェーンと共に使用することに特に適する。
【背景技術】
【０００２】
本願明細書では、私たちは、全ての形式の電子的な、コンピュータに基づく、分散型台帳を包含するために用語「ブロックチェーン」を使用する。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、並びにこれらの変形を含む。他のブロックチェーン実装が提案され開発されているが、ブロックチェーン技術の最も広く知られているアプリケーションは、Ｂｉｔｃｏｉｎ台帳である。Ｂｉｔｃｏｉｎは、ここでは、便宜上及び説明の目的で参照されることがあるが、本開示はＢｉｔｃｏｉｎブロックチェーンと共に使用することに限定されず、代替のブロックチェーン実装及びプロトコルが本開示の範囲に包含されることに留意すべきである。
【０００３】
ブロックチェーンは、コンピュータに基づく非集中型の分散型システムとして実装される総意に基づく電子台帳であり、ブロックにより構成され、ブロックはまたトランザクション及び他の情報により構成される。Ｂｉｔｃｏｉｎの場合には、各トランザクションは、ブロックチェーンシステムの中の参加者間でデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも１つのインプット及び少なくとも１つのアウトプットを含む。各ブロックは前のブロックから当該ブロックまでのハッシュを含み、一緒に繋げられて、起源以来ブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能な記録を生成する。トランザクションは、スクリプトとして知られている小さなプログラムを含む。スクリプトは、それらのインプット及びアウトプットを埋め込まれ、トランザクションのアウトプットがどのように及び誰によりアクセス可能であるかを指定する。Ｂｉｔｃｏｉｎプラットフォームでは、これらのスクリプトはスタックに基づくスクリプト言語を用いて記述される。
【０００４】
トランザクションがブロックチェーンに書き込まれるためには、検証されなければならない。幾つかのネットワークノードは、マイナーとして動作し、各トランザクションが検証されることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。例えば、ノードにインストールされたソフトウェアクライアントは、未使用トランザクションアウトプット（unspent  transaction  outputs：UTXO）を参照するトランザクションに対してこの検証作業を実行する。検証は、そのロック及びアンロックスクリプトを実行することにより実行されてよい。ロック及びアンロックスクリプトの実行が真（TRUE）と評価する場合、及び特定の他の条件が満たされた場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれてよい。したがって、トランザクションがブロックチェーンに書き込まれるためには、（ｉ）トランザクションを受信したノードにより検証され、トランザクションが有効な場合には、ノードが該トランザクションをネットワーク内の他のノードに中継する、（ｉｉ）マイナーにより構築された新しいブロックに追加される、（ｉｉｉ）マイニングされる、つまり過去のトランザクションのパブリック台帳に追加される、ことが必要である。トランザクションは、実際に取り消し不可能なトランザクションを作成するために十分な数のブロックがブロックチェーンに追加されると、承認されたと考えられる。
【０００５】
ブロックチェーン技術は、暗号通貨の実装の使用のために最も広く知られているが、デジタル事業家が、Ｂｉｔｃｏｉｎの基づく暗号セキュリティシステム及び新しいシステムを実装するためにブロックチェーンに格納できるデータの両方の使用を開発し始めている。ブロックチェーンが、暗号通貨の分野に限定されない自動化タスク及びプロセスのために使用できれば、非常に有利になる。このようなソリューションは、ブロックチェーンの利益（例えば、永久性、イベントの記録の耐タンパ性、分散型処理、等）を利用しながら、それらの用途をより多様化し得る。
【０００６】
研究の一分野は、「スマートコントラクト」の実装のためのブロックチェーンに基づくコンピュータプログラムの使用である。これらは、機械可読コントラクト又は合意の条項の実行を自動化するよう設計されたコンピュータプログラムである。自然言語で記述される伝統的なコントラクトと異なり、スマートコントラクトは、結果を生成するためにインプットを処理できるルールを含む機械実行可能プログラムであり、これは次に該結果に依存して動作を実行させる。
【０００７】
公開型の公開台帳を提供するブロックチェーンは、任意の関心パーティが、特定のデジタルコイン、デジタルアセット、又はデジタルリソースの、一連のアドレスに渡る移動を追跡する能力を利用可能にする。公開型であり分散型である台帳は、システムを信頼する手段として動作するのに有用であるが、アドレスに渡りトランザクションを追跡するために与えられる能力は、特定の過去のトランザクションに関連するデジタルアセットを分析及び相関可能にしてしまう。この問題を解決するために、セキュリティ及び匿名化ソリューションが開発されている。これは、多くの現実世界の商用トランザクションが、法的理由、商業的理由、又はその両方で、本来機密であるために有用であり得る。従って、ブロックチェーンシステムは、ブロックチェーンの公共特性にも拘わらず、このような商業的トランザクションについてセキュリティ及び機密性の両方を補償することが可能でなければならない。
【０００８】
Ｂｉｔｃｏｉｎ暗号プロトコルにおけるペンネーム（pseudonym）の使用は、匿名支払いを可能にするものと考えられることがあるが、ユーザアイデンティティを発見する様々な調査の成功は、Ｂｉｔｃｏｉｎネットワーク内の匿名性がそれほど容易に達成されないことを示している。匿名性に対する要求が残されているので、本開示は、１つ以上のデジタルアセット支払いの転送をセキュアな方法でオフチェーンで実施するための、複数の種類のトランザクション又はその組み合わせを実装することに基づく種々の技術的ソリューションを提案する。それにより、暗号プロトコル又は１つ以上のコンピューティングリソースの間のデジタルアセットの移転のためのプロトコルのために、アプリケーション層及びネットワーク層の両方で利用可能なセキュリティ及び匿名性のレベルを向上する。
【発明の概要】
【０００９】
本願明細書に記載されるような本開示の第１の態様によると、ｎ＞２人の参加者の間でブロックチェーントランザクションを交換し、後にブロックチェーン上に記憶するために該ブロックチェーントランザクションをブロックチェーンネットワーク上にブロードキャストするための、コンピュータにより実施される方法であって、
暗号鍵及び関連するブロックチェーンアドレスを生成し、参加者の間で交換するステップと、
参加者の間で交換されるべき前記ブロックチェーントランザクションの各々を、前記トランザクションをブロードキャストすることを担う参加者により請求される返金アウトプットを各ブロックチェーントランザクションに含めることにより、変更するステップと、
前記暗号鍵及び前記関連するブロックチェーンアドレスを用いて１つ以上のデポジットトランザクションを構成し、前記１つ以上のデポジットトランザクションを前記ブロックチェーンに提出するステップであって、前記１つ以上のデポジットトランザクションは、別の参加者にブロックチェーントランザクションを正しくブロードキャストする参加者に返金するため、及び彼らのブロックチェーントランザクションが正しくブロードキャストされなかった場合に参加者を補償するために構成される、ステップと、
前記参加者の間で前記変更されたブロックチェーントランザクションを署名し交換するステップと、
前記１つ以上のデポジットトランザクションの前記アウトプット及び前記変更されたブロックチェーントランザクションの前記返金アウトプットをインプットのために使用して、返金トランザクションを構成するステップと、
前記１つ以上のデポジットトランザクションの前記アウトプットをインプットのために使用して、補償トランザクションを構成するステップと、
前記補償トランザクション及び前記変更されたブロックチェーントランザクションをブロードキャストするステップと、
前記ブロックチェーン上で前記変更されたブロックチェーントランザクションを確認すると、前記返金トランザクションをブロードキャストするステップであって、参加者の変更されたブロックチェーントランザクションが前記ブロックチェーン上で確認されない場合、前記参加者は前記補償トランザクション内の関連する未使用アウトプットを請求する、ステップと、
を含むコンピュータにより実施される方法が提供される。
【００１０】
有利なことに、第１の態様の方法は、ユーザにより生成されたトランザクションのＩＰアドレスとトランザクションの中の該ユーザのブロックチェーンアドレスとの間のリンクを不明瞭にするために、ブロックチェーンネットワーク上で拡散する前に、複数のブロックチェーンユーザが彼らのトランザクションを交換することを可能にする方法を提案する。
【００１１】
当該方法は、トランザクションをオフチェーンで直接交換するための技術的ソリューションを提供する。当該方法における参加者は、デポジットを生成すること、及び返金及び補償方式が自動的に実施される方法が参加者間で交換されるトランザクションのブロックチェーンにおける承認に依存するように、彼らのトランザクションを変更することに合意し、従って、セキュリティを向上すると共に匿名性を提供する。当該方法は、任意の数（ｎ＞２）の参加者についてスケーリングされる。
【００１２】
設定されるべき上述の複数の異なる種類のトランザクション、つまり、デポジット、返金、補償、主要、等、及びそれらが互いに相互作用する方法を定義することにより、技術的利点が提供される。本開示は、本願明細書で、これらの種類のトランザクションの各々の構造、及び参加者間の鍵交換メカニズムも議論する。幾つかの実施形態では、中間結果を提供するこのような種類のトランザクションのシーケンスは、正確且つセキュアに行われるべきオフチェーン交換を可能にすると同時に、参加者に関連するＩＰ又はネットワークエンドポイントに関連する匿名性を保護する。更に、後述するように、暗号化チャネル及び／又は署名及び／又はブロックチェーンアドレスのための１つ以上の暗号鍵を計算するための特定のメカニズムが、これらの利益を保証するために提案される。従って及び有利なことに、本開示、特に請求される態様及び実施形態は、分散型台帳に提供される前にオフチェーンで、デジタルアセット、つまり暗号通貨又はトークンに関連付けられ得る１つ以上のトランザクションを実施するための、セキュアな正確且つ拡張可能な技術を提案する。
【００１３】
暗号鍵及び関連するブロックチェーンアドレスを生成し、参加者の間で交換するステップは、
各参加者が、２つの秘密−公開鍵ペア（ｋｉ１，Ｐｉ１）及び（ｋｉ２，Ｐｉ２）を生成し、
前記参加者が、順序集合｛Ｕ０，Ｕ１，．．．，Ｕｎ−２，Ｕｎ−１｝を実現するためにランダム化され、
各参加者Ｕｉは、前記２つの公開鍵Ｐｉ１及びＰｉ２を２人の他の参加者と交換し、
各参加者Ｕｉは、前記２人の他の参加者により提供される彼らの公開鍵Ｐｉ１及びＰｉ２を用いて、ブロックチェーンアドレスのペア（αｉ，βｉ）を生成し、
各参加者Ｕｉは、ブロックチェーンアドレスの前記ペア（αｉ，βｉ）を前記２人の他の参加者と交換すること、
を含む。
【００１４】
更に、各参加者により生成された前記ブロックチェーンアドレスのうちの１つ（αｉ）は、前記参加者（Ｕｉ）及び別の参加者（Ｕｉ＋１）の両者からの署名を要求してよい。更に、各参加者により生成された前記ブロックチェーンアドレスのうちの１つ（βｉ）は、別の参加者（Ｕｉ＋１）からの署名だけを要求してよい。
【００１５】
前述のオプションは、トランザクション交換、返金、及び補償方式において後に使用するために、適切な暗号鍵及び関連するブロックチェーンアドレスがどのように生成され交換できるかの一例を提供する。
【００１６】
各参加者Ｕｉは、秘密−公開鍵ペア（ｙｉ，Ｑｉ）も生成し、公開鍵を発行してよい。これは、トランザクション交換、返金、及び補償方式を実施するとき、鍵ペア（ｙｉ，Ｑｉ）を用いて暗号化チャネルを介して参加者が互いに通信することを可能にする。
【００１７】
前記１つ以上のデポジットトランザクションは、前記１つ以上のデポジットトランザクションのアウトプットがシャッフルされる又は前記１つ以上のデポジットトランザクションのインプットに対してランダム化されるように、構成できる。参加者は、共通デポジットトランザクションの中に彼らのデポジットを生成する。代替として、各参加者は、個別デポジットトランザクションを生成できる。デポジットトランザクションは、Ｐ２ＳＨ（Pay  To  Script  Hash）デポジットトランザクションであり得る。更に、各デポジットは、前記参加者により生成され交換された前記ブロックチェーンアドレスのうちの１つへ、又は時間ΔＴＥの後に、彼らのブロックチェーントランザクションが前記ブロックチェーン上で承認されない場合に、前記デポジットを生成した前記参加者のブロックチェーンアドレスへ、送信されるよう構成できる。また更に、参加者のデポジットトランザクションは、参加者のうちの１人により構成される。
【００１８】
前述のオプションは、トランザクション交換、返金、及び補償方式を実装するために、１つ以上の適切なデポジットトランザクションがどのように生成できるかの一例を提供する。
【００１９】
交換されるべき前記ブロックチェーントランザクションの各々を変更するステップは、別の参加者により提供された前記公開鍵で前記返金アウトプットをロックするステップを含むことができ、前記変更されたトランザクションは、署名され、前記他の参加者へ送信される。各参加者Ｕｉは、１つ以上のデポジットトランザクションの中のアウトプット（つまり、デポジットトランザクションの中で参加者ＵｉによりロックされたアウトプットＯｉ）及び参加者Ｕｉ−１により生成されたブロックチェーントランザクションＴｘｉ−１の中の公開アドレスβｉ−１へ送信される返金アウトプットをインプットのために使用して、彼らの返金トランザクションＲｘｉを構成できる。その結果、参加者Ｕｉの返金は、彼らが参加者Ｕｉ−１のブロックチェーントランザクションＴｘｉ−１をブロックチェーンに含めるために提出することに本質的に依存する。新たに生成されたトランザクションＲｘｉの中の２つのインプットは、Ｕｉ及びＵｉ−１の署名を要求でき、以下の通りである：
インプットｘ（Ｏｉ）が、参加者Ｕｉ及び参加者Ｕｉ−１の署名を要求し、及び
インプットｄ（βｉ−１）が、Ｕｉの署名だけを要求する。
【００２０】
以上に続いて、参加者Ｕｉは、彼らの返金トランザクションＲｘｉを参加者Ｕｉ−１へ送信し、前記参加者Ｕｉ−１は、該返金トランザクションＲｘｉに署名して参加者Ｕｉに返送し、前記参加者Ｕｉは、次に前記トランザクションＲｘｉに署名する。
【００２１】
前述のオプションは、トランザクション交換、返金、及び補償方式を実装するために、適切な返金トランザクションがどのように生成できるかの一例を提供する。
【００２２】
各参加者Ｕｉは、前記１つ以上のデポジットトランザクションの中のＯｉ＋１へ送信される前記アウトプットを用いて彼らの補償トランザクションＣｘｉを構成し、参加者Ｕｉは、新たに生成されたトランザクションＣｘｉを参加者Ｕｉ＋１へ送信し、参加者Ｕｉ＋１は、Ｃｘｉに署名して参加者Ｕｉへ戻し、Ｃｘｉの中のインプットｘ（Ｏｉ＋１）はＵｉ及びＵｉ＋１の両者の署名を要求する。前記補償トランザクションは、前記参加者が前記交換されたブロックチェーントランザクションをブロードキャストし及び該ブロックチェーントランザクションがブロックチェーンネットワーク上で承認されたと分かるために許容される最大時間を定める時間ΔＴＳの間、ロックされるアウトプットを有することができる。
【００２３】
前述のオプションは、トランザクション交換、返金、及び補償方式を実装するために、適切な補償トランザクションがどのように生成できるかの一例を提供する。
【００２４】
補償トランザクション及びブロックチェーントランザクションのブロードキャストは、各参加者Ｕｉが２つのトランザクションＣｘｉ及びＴｘｉ−１をその順序でブロードキャストすることを含む。これは、補償トランザクションが、主要ブロックチェーントランザクションのブロードキャストの前に配置されることを保証する。
【００２５】
前記ブロックチェーントランザクションが前記ブロックチェーン上で承認されると、前記返金トランザクションをブロードキャストするステップは、各参加者Ｕｉが、返金トランザクションＲｘｉをブロードキャストし、それにより彼らのデポジットを請求することを含み得る。更に、参加者は、彼らのブロックチェーントランザクションが、時間ΔＴＳの後にブロックチェーン上で承認されないとき、前記補償トランザクションの中の未使用アウトプットを請求できるだけであってよい。この方法は、前記参加者が前記交換されたブロックチェーントランザクションをブロードキャストし及び該ブロックチェーントランザクションがブロックチェーンネットワーク上で承認されたと分かるために許容される最大時間を定める時間ΔＴＳの間、ロックされるアウトプットを有する補償トランザクションを提供することと一致する。
【００２６】
本開示の実施形態は、様々な形式で提供できる。例えば、実行されると１つ以上のプロセッサをここに記載の方法を実行させるよう構成するコンピュータ実行可能命令を含むコンピュータ可読記憶媒体が提供できる。電子装置であって、インタフェース装置と、インタフェース装置に結合された１つ以上のプロセッサと、１つ以上のプロセッサに結合されたメモリであって、メモリはコンピュータ実行可能命令を格納し、コンピュータ実行可能命令は、実行されると、１つ以上のプロセッサを、ここに記載の方法を実行するよう構成する、メモリと、を含む電子装置も提供できる。ブロックチェーンネットワークのノードも、提供され得る。該ノードは、本願明細書に記載されるような方法を実行するよう構成される。
【図面の簡単な説明】
【００２７】
本開示のこれらの及び他の態様は、本願明細書に記載の実施形態から明らかであり及びそれらを参照して教示される。本開示の実施形態は、単なる例を用いて、添付の図面を参照して以下に説明される。
【図１】参加者Ｕｉの公開鍵及び参加者Ｕｉの最近接近隣の公開鍵の両方を用いて参加者Ｕｉにより生成された２つのアドレス／公開鍵のスキーマを示す。
【図２】参加者Ｕｉにより知られている公開鍵のセットを示す。
【図３】デポジットトランザクションＤｘの中の参加者Ｕｉのデポジットをロックするために、参加者Ｕｉにより生成されたロックスクリプトの一例を示す。
【図４】デポジットトランザクション  の中のアウトプットのシャッフル処理を示す。
【図５】メイントランザクションの交換の前に、４人の参加者が額ｘのＢｉｔｃｏｉｎをデポジットするデポジットトランザクションを示す。
【図６】直接トランザクション交換（direct  transaction  exchange  (DTE)）プロトコルで交換される２つのメイントランザクションを示す。
【図７】デポジットトランザクション及びメイントランザクションを用いて返金トランザクションを構成するためのスキーマを示す。
【図８】デポジットトランザクションの中で送信される資金を用いて補償トランザクションを構成するためのスキーマを示す。
【図９】ｎ−ＤＴＥプロトコルにおける参加者の間のトランザクションの交換を示す。
【図１０】ｎ−ＤＴＥプロトコル（ｎ＝４）について生成されたトランザクションを示す。
【図１１】ｎ−ＤＴＥプロトコルについてタイムラインを示す。
【図１２】ｎ−ＤＴＥプロトコルの一般的概要を示す。
【図１３】種々の実施形態が実装できるコンピューティング環境を示す概略図である。
【発明を実施するための形態】
【００２８】
背景の章で既に示したように、Ｂｉｔｃｏｉｎ暗号プロトコルにおけるペンネーム（pseudonym）の使用は、匿名支払いを可能にするものと考えられることがあるが、ユーザアイデンティティを発見する様々な調査の成功は、Ｂｉｔｃｏｉｎネットワーク内の匿名性がそれほど容易に達成されないことを示している。匿名性に対する要求が残っているので、アプリケーション層及びネットワーク層の両方において暗号通貨プロトコルのために利用可能な匿名性のレベルを向上する種々の技術的ソリューションが開発されている。
【００２９】
本願明細書は、直接トランザクション交換（Direct  Transaction  Exchange  (DTE)）プロトコルの、ｎ＞２人の参加者への拡張を提案する。ＤＴＥプロトコルは、トランザクションの提出及びそれらのＢｉｔｃｏｉｎネットワーク内での拡散の前に、オフチェーンでトランザクションを直接交換するｊためのソリューションを提供する。ＤＴＥプロトコルにおける参加者は、幾らかのコインをデポジットすること、及び返金及び補償方式が実施される方法が参加者間で交換されるトランザクションのブロックチェーンにおける承認に依存するように、彼らのメイントランザクションを変更することに合意する。本願明細書では、ＤＴＥプロトコルをどのように任意の数（ｎ＞２）の参加者へとスケーリングするかが記載される。
【００３０】
暗号通貨ユーザに関連付けられたインターネットプロトコル（Internet  Protocol  (IP)）アドレスは、Ｂｉｔｃｏｉｎネットワークの匿名性を危険に晒すために使用されることがある。実際に、悪意ある敵は、公開鍵をインターネットプロトコル（ＩＰ）アドレスにリンクすることがあり、ユーザにより提出された全部のトランザクションを追跡し得る。更に、ＩＰ情報は、該情報を、例えばインターネットフォーラム及びソーシャルメディアのような他の情報源と組み合わせることにより、現実のユーザのアイデンティティを取得するために使用することもできる。このような状況では、トランザクションの異なるセットについて複数の公開−秘密鍵ペアを生成すること、又は操作の匿名性を高めるための手段としてミキシングサービスに参加することは、成功しない可能性がある［１］。
【００３１】
匿名化解除攻撃は、標準的に、アクティブなＢｉｔｃｏｉｎノードに接続して送信されるトランザクションを監視する「スーパーノード」を用いて実行される。ネットワーク上での対称的な拡散により、ＩＰ公開鍵リンク付けにおいて３０％の成功率が可能である［２］。主に使用されるアルゴリズムは、ピアツーピア（peer−to−peer(P２P)）グラフ構造及び拡散に関する情報を利用する。
【００３２】
通常、Ｂｉｔｃｏｉｎの又は他の暗号通貨のフローを追跡し、及び公開台帳を監視することにより、同一ユーザにより生成された複数のアドレスをリンクできる。この結果は、トランザクショングラフを分析し及びアドレスを一緒にクラスタ化することにより達成できる。
【００３３】
匿名性は、アイデンティティ保護を提供するが依然として弱点及び場合によっては欠点を示すＴｏｒ［３］のようなツールに依存する。実際に、中継システムは、トラフィック分析に対して脆弱な場合があり、それにより、Ｔｏｒへのユーザの「第１ホップ」リンク及びＴｏｒからユーザの通信相手への「最終ホップ」リンクが追跡されパケットをそう感づけるために使用され得る。更に、攻撃は、サービスの拒否を引き起こし、ユーザの匿名性を危険に晒し得る。
【００３４】
Ｂｉｒｙｕｋｏｖ他［２］は、ユーザのペンネームを彼らのＩＰアドレスにリンクすることにより、Ｐ２Ｐネットワークを匿名化解除する方法を提示している。このソリューションは、クライアントの接続するノードのセットに依存し、クライアントアイデンティティ及びトランザクションの起源を一意に決定する。
【００３５】
本願明細書では、Ｂｉｔｃｏｉｎユーザのトランザクションがネットワーク上で拡散する前に、ユーザが彼らのトランザクションを交換することを可能にすることにより、したがって、ユーザにより生成されたトランザクションのＩＰアドレスとトランザクション内のユーザのＢｉｔｃｏｉｎアドレスとの間のリンクを曖昧にすることにより、ネットワーク層におけるユーザの匿名性を実施するプロトコルを提案する。本願明細書で詳述するように、ｎ−ＤＴＥプロトコルは、参加者により生成されるコインのデポジット、及び返金及び補償方式が実施される方法が参加者間で交換されるトランザクションのブロックチェーンにおける承認に依存するように、彼らのメイントランザクションを変更することに依存する。
【００３６】
その最も簡易な形式［４］では、ＤＴＥプロトコルの中で２人の参加者を考える。両方の参加者は、Ｂｉｔｃｏｉｎブロックチェーンに含めるために提出する前に、彼らが交換したいと望むメイントランザクション（Main  Transaction）を生成する。そうするために、及び両方の参加者が彼らの役割を果たすこと、及びプロトコルが完了前に中断される場合に保護されることを補償するために、参加者は、デポジットトランザクションの中に資金をコミットし、彼らの元のトランザクションを変更して、彼らの返金が、交換されたトランザクションがネットワーク上で承認されることを条件とするようにしなければならない。
【００３７】
私たちは、該プロトコルをｎ＞２人の参加者へと拡張することを提案する。ｎ−ＤＴＥプロトコルの中の異なるステップが、ここで詳述される。先ず、鍵生成及び参加者間の交換を説明する。次に、新しく生成された鍵及びアドレスを用いてデポジットトランザクション（Deposit  Transaction）を構成する。参加者間で交換されているメイントランザクション（Main  Transaction）の変更を説明する。次に、プロトコルの返金（Refund）及び補償（Compensation）方式を構成する。最後に、参加者間のトランザクションの交換及び参加者によるブロードキャストを説明する。
【００３８】
＜鍵生成及び交換＞
参加者のメイントランザクションを交換するためにｎ−ＤＴＥプロトコルに参加しているｎ人の個人の集合｛Ｕｉ｜ｉ∈［０，ｎ−１］｝が与えられると、参加者は、以下の方法で公開鍵を生成し交換する。
【００３９】
各参加者Ｕｉは、２つの秘密−公開鍵ペア（ｋｉ１，Ｐｉ１）及び（ｋｉ２，Ｐｉ２）を生成する。
【００４０】
各参加者Ｕｉは、もう１つの短命の（ephemeral）秘密−公開鍵ペア（ｙｉ，Ｑｉ）を生成し、公開鍵を発行してよい。
【００４１】
参加者は、順序集合｛Ｕ０，Ｕ１，．．．，Ｕｎ−２，Ｕｎ−１｝を実現するためにランダム化される。参加者は、公開された鍵ペア（ｙｉ，Ｑｉ）を用いて暗号化チャネルを介して、彼らの近隣と通信できる。
【００４２】
各参加者Ｕｉは、２つの公開鍵Ｐｉ１及びＰｉ２を、彼らの２人の最近接近隣と交換する。一例として、Ｕ０はＰ０１及びＰ０２をＵ１及びＵｎ−１と交換し、一方でＵ１はＰ１１及びＰ１２をＵ０及びＵ２と交換する。
【００４３】
各参加者Ｕｉは、彼らの公開鍵、及び彼らの近隣により提供される公開鍵を用いて、Ｂｉｔｃｏｉｎアドレスのペアを生成する［ここで、私たちは、参加者により生成されたＢｉｔｃｏｉｎ公開鍵を示す；公開鍵Ｐに関連付けられたＢｉｔｃｏｉｎアドレスＡは、次式により与えられる：Ａ＝ＲＩＰＥＭＤ１６０（ＳＨＡ２５６（Ｐ））］。
・Ｕｉ＋１と共有されるマルチシグネチャアドレス：αｉ＝２−２ｍｕｌｔｉｓｉｇ（Ｐｉ１，Ｐｉ＋１１）。
・Ｕｉ＋１と共有されるＤｉｆｆｉｅ−Ｈｅｌｌｍａｎシークレット：βｉ＝Ｐｉ２＋ｃｉ−１，ｉ×Ｇ、ここで、ｃｉ−１，ｉ＝Ｈ（ｋｉ２×Ｐｉ−１２）＝Ｈ（ｋｉ−１２×Ｐｉ２）は、２人の参加者の間で共有されるシークレットである。Ｈ（）は、耐衝突性ハッシュ関数である。
【００４４】
一例として、Ｕ０は、以下の２つのアドレスを生成する。
・α０＝２−２ｍｕｌｔｉｓｉｇ（Ｐ０１，Ｐ１１）、及び、
・β０＝Ｐ０２＋ｃｎ−１，０×Ｇ、ここで、ｃｎ−１，０＝＝Ｈ（ｋ０２×Ｐｎ−１２）＝Ｈ（ｋｎ−１２×Ｐ０２）。
【００４５】
アドレス生成は、図１に示される。
【００４６】
αｉから導出されたアドレスへ送信される資金は、Ｕｉ及びＵｉ＋１の両者からの、彼らの秘密鍵、それぞれｋｉ１及びｋｉ＋１１を用いる署名を必要とする。
【００４７】
βｉから導出されたアドレスへ送信される資金は、ｋｉ−１２＋Ｈ（ｋｉ−１２×Ｐｉ２）により与えられる新しい公開鍵に関連付けられた秘密鍵を用いる、Ｕｉ−１からの署名を必要とする。参加者Ｕｉが公開鍵を生成し、Ｕｉ−１と共有することは容易であるが、後者は、秘密鍵を推測でき、従って、βｉから導出されたアドレスへ送信されるトランザクションのＵＴＸＯに署名できる。
【００４８】
参加者は、次に、彼らの新しく生成した公開鍵／アドレスを交換し、それらの有効性を検証して、これらを構成するために使用された公開鍵を知ることができる。纏めると、図２に示すように、参加者Ｕｉは、２つのアドレスを生成し、彼の左隣Ｕｉ−１と共有される２つのアドレス、及び彼の右隣Ｕｉ＋１と共有される２つのアドレスを知る。
【００４９】
参加者Ｕｉは、彼又は彼女の生成した公開鍵βｉに関連付けられた秘密鍵が分からないことに留意する。一方で、Ｕｉだけが、彼の右隣Ｕｉ＋１により生成された公開鍵βｉ＋１を知っている。
【００５０】
＜デポジットトランザクション＞
このプロトコルの目標は、ｎ人の参加者が彼らのトランザクションを、ブロックチェーン上でブロードキャストする前に交換することであった。私たちは、メイントランザクションを、これらのトランザクションが以下のように交換されていると表す。
【００５１】
ｎ−ＤＴＥプロトコルを達成するよう、及び悪意ある参加者から正直な参加者を守るよう、参加者を奨励するために、私たちは、各参加者が任意の量のＢｉｔｃｏｉｎをデポジットし、その返金が参加者による必要なタスクの完了に成功することを条件とすることを提案する。
【００５２】
このようなデポジットは、種々の方法で生成できる。例えば、参加者は、彼らのデポジットを全て共通Ｂｉｔｃｏｉｎトランザクションの中で生成できる。或いは、各参加者は、彼の／彼女の個々のデポジットトランザクションを生成できる（しかしながら、これは、マイナーに支払われる料金が全体として多くなることを意味する）。以下では、参加者のデポジットを収集するための共通トランザクションを検討する。この選択は、該トランザクションの中のインプットとアウトプットとの間のリンクを不明瞭にするために、シャッフル技術の使用を示唆する。
【００５３】
ｎ人の参加者は、ｎインプット／ｎアウトプットのＰ２ＳＨデポジットトランザクションを生成する。これは以下でＤｘと示され、彼らは全員、事前に合意された量ｘのＢｉｔｃｏｉｎをコミットする。
【００５４】
ＤｘからＵＴＸＯは、２つのトランザクションセットを生成するために、後にプロトコルの中で使用される。
・１つは、返金トランザクションのセットであり、参加者が別の参加者にメイントランザクションをネットワーク上で正しくブロードキャストしたとき、Ｄｘの中で生成されたデポジットの返金のためである。
・１つは、補償トランザクションのセットであり、参加者のメイントランザクションが特定の時間量の後にブロードキャストされない場合に、参加者を補償するためである。
【００５５】
参加者Ｕｉは、Ｄｘの中の彼／彼女のデポジットをロックするスクリプトＬｉを構成する。このスクリプトは、関連付けられたアウトプット量ｘのＢｉｔｃｏｉｎを使用するための２つの選択肢を提供する。
・ＵｉのｘのＢｉｔｃｏｉｎを、それぞれＵｉ−１及びＵｉがそれぞれ彼らの秘密鍵Ｕｉ−１１及びＵｉ１により署名することにより償還可能なアドレス（図２のαｉ−１）へ送信する。
・或いは、Ｄｘがブロックチェーンに含まれた後に続く特定の時点ΔＴＥの後に、Ｕｉにより所有されるアドレスへ送信する。Ｕｉは、新しい（短命の）公開鍵（以下ではＰｉ３と表す）を使用して、後者のアドレスを生成してよい。ロックタイム値は、将来の特定の時点で、メイントランザクションがＢｉｔｃｏｉｎブロックチェーンに含まれることなくプロトコルが終了した場合に、資金がＵｉにより償還可能なように選択される。ロックタイムパラメータは、オペコードＯＰ＿ＣＨＥＣＫＳＥＱＵＥＮＣＥＶＥＲＩＦＹを用いて定められる。Ｂｉｔｃｏｉｎスクリプトシステムのためのこの新しいオペコード（ＯＰ＿ＣＨＥＣＫＳＥＱＵＥＮＣＥＶＥＲＩＦＹ）は、ＢＩＰ１１２で導入され、スクリプトの実行パスがアウトプットの使用された時代に基づき制限されるようにする（https://github.com/bitcoin/bips/blob/master/bip−０１１２.mediawiki)）。
【００５６】
Ｏｉは、参加者Ｕｉにより生成されたアウトプット（パラメータセット）を表す：Ｏｉ：｛Ｌｉ，ｘ｝。Ｕｉにより生成されたｘのＢｉｔｃｏｉｎのデポジットに対するロックスクリプトの一例が図３に示される。
【００５７】
ある参加者は、全てのアウトプットを集め、デポジットトランザクションＤｘを作る責任がある。以下では、Ｕ０を、アウトプットのセットを収集する参加者、及びＤｘに彼／彼女のインプットを追加して署名する最初の参加者として指名する。ｎ−ＤＴＥプロトコルの参加者を外部攻撃から守るために、アウトプットのセットは、ある参加者から別の参加者へと転送される前に、参加者の公開鍵Ｑｉを用いて暗号化される。Ｄｘの中のインプットとアウトプットとの間のリンクを不明瞭にするために、私たちは、各参加者が、彼／彼女の右隣に渡す前に、アウトプットのセットをシャッフルすることを検討する。このように、インプットの順序は、Ｄｘの中のアウトプットの順序と一致しない。代替として、私たちは、署名段階の間に、参加者の順序をランダム化し得る。
【００５８】
アウトプットシャッフル処理は、ＣｉｒｃｌｅＳｈｕｆｆｌｅプロトコル［ＷＰ０３８８］に基づき、最初の参加者Ｕ０が彼／彼女のアウトプットＯ０を次の参加者の公開鍵Ｑ１により暗号化するとき、開始する。暗号化されたアウトプットアドレスは、従って、シャッフルされたアウトプットのセット（set  of  shuffled  outputs  (SSO)）を含む。Ｕ０はＳＳＯをＵ１に渡す。Ｕ１は、ＳＳＯを、彼女の秘密鍵ｙ１を使用して解読し、彼女のアウトプットを追加し、アウトプットをシャッフルし、Ｑ２を用いてＳＳＯを暗号化し、そしてそれをＵ２へ転送する。この処理は、図４で４人の参加者について図示され（ｎ＝３）、Ｕｎ−１に達するまで続く。ここで、ｎは参加者の人数である。
【００５９】
Ｕｎ−１のアウトプットアドレスがＳＳＯに追加された後に、Ｕｎ−１は、最終的なシャッフルを実行し、ＳＳＯをＱ０で暗号化し、ＳＳＯを最初のユーザＵ０へ返送する。ＳＳＯの中のアウトプットアドレスのこの順列（permutation）は、アウトプットがデポジットトランザクションＤｘに含まれる最終的な順序を表す。
【００６０】
Ｕ０は、彼女の秘密鍵ｙ０を用いてＳＳＯを解読し、デポジットトランザクションＤｘを生成する。Ｕ０は、彼／彼女のインプットを追加し、トランザクションに署名し、Ｄｘを次の参加者へ転送する。各参加者は、彼／彼女の選んだアウトプットがトランザクションに含まれていることを確認し、ＳＩＧＨＡＳＨ＿ＡＮＹＯＮＥＣＡＮＰＡＹフラグを有する彼／彼女のインプットに署名する。全ての参加者がＤｘに署名した後に、トランザクションは、最後の参加者により、ブロックチェーンに含まれるために提出される。
【００６１】
図４は、４人の参加者について、Ｄｘトランザクションの説明を示す。
｛Ｕ０，Ｕ１，Ｕ２，Ｕ３｝＝｛Ａｌｉｃｅ，Ｂｏｂ，Ｃａｒｏｌ，Ｄａｖｅ｝
４人の参加者による説明を参照するとき、インデックス｛０，１，２，３｝を｛Ａ，Ｂ，Ｃ，Ｄ｝に変更する。
・各参加者は、トランザクションＤｘに署名し、事実上、参加者の公開鍵から導出したアドレスからｘのＢｉｔｃｏｉｎを使用する。公開鍵は、図５では、Ｐｉ０、ｉ＝０，．．．，３の代わりに、Ｐｉ０、ｉ＝｛Ａ，Ｂ，Ｃ，Ｄ｝と表されることに留意する。
・各々のｘのＢｉｔｃｏｉｎは、新しいアドレスへ送信される（アウトプットはシャッフルされ、従って、インプットと、２人の参加者署名により又は１人の参加者署名により特定時点の後にアンロック可能なアウトプットの順序に留意する）。更に、図３に示したロックスクリプトの中のインデックスｉ＝｛０，１，２，３｝をｉ＝｛Ａ，Ｂ，Ｃ，Ｄ｝に変更する。
・ＯＡ／ＯＢ／ＯＣ／ＯＤは、Ｄｘの中のロックされた、Ａｌｉｃｅ／Ｂｏｂ／Ｃａｒｏｌ／Ｄａｖｅにより使用されるアウトプットを表す。
【００６２】
デポジットトランザクションＤｘがブロックチェーン上で承認されたことを確認すると、参加者は、プロトコルの次の段階、つまり以下に詳述するように彼らのメイントランザクションの交換に入ることができる。彼らがΔＴＥの前にメイントランザクションの交換又はブロードキャストを完了しなかった場合、彼らはＤｘの中の彼らのデポジット、ｘのＢｉｔｃｏｉｎ、を回収し、プロトコルは終了する。
【００６３】
＜メイントランザクション交換＞
ｎ−ＤＴＥプロトコルは、参加者がメイントランザクション交換及びＢｉｔｃｏｉｎネットワーク上でのブロードキャストを完了するよう奨励することを目的とする返金及び補償メカニズムに依存する。このようなメカニズムは、参加者が別の参加者により発行されたメイントランザクションをブロードキャストした後にのみ参加者に対する返金が利用可能であるという方法で、参加者によりコミットされたデポジットトランザクション内のロックされたコインの返金を制約することにより達成できる。そうするために、メイントランザクションをブロードキャストする責任のある参加者の返金トランザクションの中で使用される追加アウトプットを追加することにより、該メイントランザクションを変更することを提案する。
【００６４】
私たちは、参加者のメイントランザクションのフォーマット／構造（ダストとは別のインプット／アウトプット、移転の量、ロックスクリプト）を制限することを望まないが、統一性を目的としてトランザクションは同様のサイズを有するべきであることを主張する。参加者により使用される量は、このプロトコルに関与するマイナー料金より多いが、任意のままである。以下では、簡単のために、各参加者は任意の量のＢｉｔｃｏｉｎを、あるアドレスから別のアドレスへ、Ｐａｙ−ｔｏ−Ｐｕｂｌｉｃ−Ｋｅｙスクリプトを用いて移転することを望むと仮定する。図６の説明では、例えば、Ａｌｉｃｅ（Ｄａｖｅ）が、ｍのＢｉｔｃｏｉｎ（ｐのＢｉｔｃｏｉｎ）を、公開鍵ＳＡ（ＳＤ）から導出したアドレスから、別の公開鍵ＲＡ（ＲＤ）から導出した別のアドレスへ移転したいと望むと仮定する。Ａｌｉｃｅは、必ずしもｍのＢｉｔｃｏｉｎの受信者でなくてよい。
【００６５】
参加者は、ダスト量ｍのＢｉｔｃｏｉｎ（数ｓａｔｏｓｈｉ）に合意し、追加アウトプットを彼らのメイントランザクションに追加する。通常、Ｔｘｉは、参加者Ｕｉにより生成されたメイントランザクションを表し、ｉ＝｛０，１，２，３｝、又は４人の参加者を有する説明ではｉ＝｛Ａ，Ｂ，Ｃ，Ｄ｝である。
【００６６】
一例として、第１参加者Ｕ０（又は図中のＡｌｉｃｅ）は、アウトプット量としてｄを有し及びＵ１（又はＢｏｂ）により前に生成された公開鍵を用いてＰａｙ−ｔｏ−Ｐｕｂｌｉｃ−Ｋｅｙスクリプトの下でロックされた第２アウトプットを追加することにより、彼女のメイントランザクションＴｘ０（又はＴｘＡ）を変更する：β１＝Ｐ１２＋ｃ０，１×Ｇ（又はβＢ＝ＰＢ２＋ｃＡ，Ｂ×Ｇ）。Ａｌｉｃｅは、トランザクションＴｘＡに署名し、それをＢｏｂへ転送する。通常、参加者Ｕｉは、彼／彼女のトランザクションＴｘｉに署名し、それを彼女の近隣Ｕｉ＋１へ送信する。
【００６７】
この処理は、各参加者が彼らの左の最近接近隣のトランザクションを受信するまで続く。図６は、２つのトランザクションＴｘＤ及びＴｘＡの変更、及び最後（Ｄａｖｅ）、最初（Ａｌｉｃｅ）、及び２番目（Ｂｏｂ）の参加者の間での交換を示す。
【００６８】
この時点で、参加者は、受信したメイントランザクションをネットワーク上にブロードキャストしない。
【００６９】
彼らは、先ず、返金及び補償方式を準備する。
・返金方式は、彼／彼女が彼／彼女の左隣Ｕｉ−１のトランザクションＴｘｉ−１をブロードキャストした後に、参加者Ｕｉへの返金を保証する。
・補償方式は、プロトコルが完了せず、彼女のトランザクションTxiが彼女の右隣Ｕｉ＋１によりブロードキャストされず、期限までにブロックチェーンに含まれるために承認されなかった場合に、参加者を補償する。
【００７０】
＜返金トランザクション＞
参加者Ｕｉは、彼／彼女の左隣Ｕｉ−１により生成されたメイントランザクションＴｘｉ−１の処理中である。図６に示すように、Ａｌｉｃｅは、例えば、ＤａｖｅのメイントランザクションＴｘＤの処理中である。
【００７１】
参加者Ｕｉは、デポジットトランザクションＤｘの中のＯｉへ送信されるＵＴＸＯと、Ｕｉ−１により生成されたメイントランザクションＴｘｉ−１の中のβｉ−１へ送信されるダストとをインプットに用いて、彼／彼女の返金トランザクション、つまりＲｘｉを生成する。このように、Ｕｉの返金は、ブロックチェーンに含めるために彼／彼女がＵｉ−１のメイントランザクションＴｘｉ−１を提出することに本質的に依存する。Ｕｉは、彼／彼女の新しく生成された返金トランザクションＲｘｉを、それに（ｋｉ−１１を用いて）部分的に署名しそれをＵｉ返送するＵｉ−１へ、送信する。この新しく生成されたトランザクションＲｘｉの中の２つのインプットは、以下のように、Ｕｉ及びＵｉ−１の署名を要求することに留意する。
・インプットｘ（Ｏｉ）：Ｕｉ及びＵｉ−１のそれぞれの第１秘密鍵ｋｉ１及びｋｉ−１１を用いる、Ｕｉ及びＵｉ−１の署名を要求する。
・インプットｄ（βｉ−１）：Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎシークレット共有方式を用いて取得された公開鍵に関連付けられた秘密鍵を用いる、Ｕｉの署名だけを要求する。ｋｉ２＋ｃｉ−１，ｉ、ここでｃｉ−１，ｉ＝Ｈ（ｋｉ２×Ｐｉ−１２）＝Ｈ（ｋｉ−１２×Ｐｉ２）。
【００７２】
図７は、デポジットトランザクションＤｘのアウトプットＯＢとＡｌｉｃｅのメイントランザクションＴｘＡのアウトプットβＡとを用いてＢｏｂにより生成された返金トランザクションＲｘＢの構成を示す。Ｂｏｂは、彼の返金トランザクションＲＸＢをＡｌｉｃｅへ送信し、Ａｌｉｃｅはそれに署名しそれをＢｏｂへ返送する。この時点で、Ｂｏｂは、トランザクションＲｘＢに署名するが、それをブロードキャストしない。彼がそうした場合、トランザクションは、βＡへ送信されたＢｉｔｃｏｉｎがこの時点で利用可能ではないので、拒否され得る。これらは、トランザクションＴｘＡがブロックチェーン上でブロードキャストされ承認されたときに、使用可能になる。
【００７３】
＜補償トランザクション＞
補償トランザクションは、ある参加者が別の参加者のメイントランザクションをブロードキャストしない場合に対応するために生成される。私たちの例では、Ｂｏｂが、ＡｌｉｃｅのメイントランザクションＴｘＡをブロードキャストしない場合、Ａｌｉｃｅは、Ｂｏｂの不正について補償されるべきである。従って、Ａｌｉｃｅは、デポジットトランザクションＤｘの中のＢｏｂにより使用されたｘのＢｉｔｃｏｉｎ（ＯＢ）をインプットとして取り入れる補償トランザクションＣｘＡを生成する。トランザクションＣｘＡの中のアウトプットは、ｎ−ＤＴＥプロトコルにおける全ての参加者により合意されたＬｏｃｋＴｉｍｅ値ΔＴＳを含む。これは、プロトコルの参加者が、メイントランザクションをブロードキャストし、これらがネットワーク上で承認されるのを確認するために許容される最大時間を反映する。Ａｌｉｃｅは、ＢｏｂへＣｘＡを送信し、ＢｏｂはＣｘＡに署名し、それをＡｌｉｃｅへ返送する。
【００７４】
通常、参加者Ｕｉは、デポジットトランザクションＤｘの中のＯｉ＋１へ送信されるＵＴＸＯを用いて、彼／彼女自身の補償トランザクションを生成する。Ｕｉは、新しく生成されたトランザクションＣｘｉをＵｉ−１へ送信し、Ｕｉ−１は、Ｃｘｉに署名し、それをＵｉ返送する。Ｃｘｉの中のインプットｘ（Ｏｉ＋１）は、Ｕｉ及びＵｉ＋１のそれぞれの第１秘密鍵ｋｉ１及びｋｉ＋１１を用いる、Ｕｉ及びＵｉ−１の署名を要求する。
【００７５】
＜まとめ＞
図９は、ｎ＝４のとき、参加者の間のメイン、返金、及び補償トランザクションの交換を纏めたものである。
・先ず、メイントランザクションが交換され、それらの作成者により、彼らの右側の最近接近隣へ送信される。
・次に、参加者は、返金トランザクションを作成し、これらを署名のために左側の最近接近隣へ送信する。この左側の最近接近隣の公開鍵は、デポジットトランザクションの中のＵＴＸＯに関連付けられたマルチシグネチャアドレスを生成するために使用されたものである。同時に、補償トランザクションが作成され、署名のために右側の最近接近隣へ送信される。この右側の最近接近隣の公開鍵は、デポジットトランザクションの中のＵＴＸＯに関連付けられたマルチシグネチャアドレスを生成するために使用されたものである。
・返金及び補償トランザクションに署名した後に、左及び右隣は、それぞれ、これらをメイントランザクションの作成者へ返送する。
【００７６】
図１０は、ｎ−ＤＴＥプロトコルにおける前述のトランザクションの説明、それらの構造、及び内部依存性を提示する。このプロトコルのために生成された全てのトランザクションが図１０に示されるものではないことに留意する。最初（Ａｌｉｃｅ）及び最後（Ｄａｖｅ）の参加者のメイントランザクション、並びに最初の２人の参加者Ａｌｉｃｅ及びＢｏｂのための返金及び補償トランザクションだけが示される。
【００７７】
＜トランザクションのブロードキャスト＞
適切な返金及び補償トランザクションにより、各参加者Ｕｉは、ネットワーク上に次の２つのトランザクションＣｘｉ及びＴｘｉ−１を、その順序でブロードキャストできる。ブロックチェーン上でＴｘｉ−１が承認されると、参加者Ｕｉは、Ｒｘｉをブロードキャストして、実質的に彼／彼女のデポジットを請求する。時間ΔＴＳの経過後に、Ｕｉが彼／彼女のメイントランザクションＴｘｉがネットワーク上で承認されたことを確認しない場合、彼／彼女は補償トランザクションＣｘｉの中のＵＴＸＯを使用でき、事実上、Ｕｉ＋１により生成されたデポジットを請求する。他方で、ΔＴＳの前に、Ｕｉが彼／彼女のメイントランザクションがブロックチェーンで承認されたことを知った場合、Ｕｉ＋１は当然にＲｘｉ＋１をブロードキャストし、従って、Ｃｘｉ及びＲｘｉ＋１の両方に含まれるＵＴＸＯ  Ｏｉ＋１は既に使用されているので、Ｃｘｉを無効化する。
【００７８】
図１１は、ｎ−ＤＴＥプロトコルのタイムラインを纏めたものである。
・段階１は、Ｂｉｔｃｏｉｎネットワーク上でのデポジットトランザクションＤｘのブロードキャストにより終了する。
・段階２は、参加者の間のメイントランザクション交換、返金及び補償トランザクションの生成、並びにＢｉｔｃｏｉｎブロックチェーンに含むための後者の提出、を含む。
・段階３は、各参加者の右隣のメイントランザクションをブロードキャストするために、各参加者に割り当てられた期間に対応する。
・段階４は、ΔＴＳの前の時間期間を表し、その間、参加者Ｕｉがブロックチェーン上でのＴｘｉ−１の承認を確認した場合、彼／彼女は彼／彼女の返金トランザクションＲｘｉをブロードキャストする。
・段階５は、ΔＴＳとΔＴＥとの間の期間に対応し、その間、参加者が彼らのメイントランザクションがＢｉｔｃｏｉｎブロックチェーン上で承認されたことを確認しない場合、参加者は、彼らの補償トランザクションの中のＵＴＸＯを使用できる。
・段階６は、ΔＴＥの後の期間に対応し、その後、段階２で何かが上手く行かなかった場合、ｎ−ＤＴＥプロトコルは終了してよく、参加者は、当然に彼らのデポジットを回収できる。
【００７９】
図１２は、本願明細書に記載されるようなｎ−ＤＴＥプロトコルの一般的概要を示す。
【００８０】
＜情報交換＞
ｎ−ＤＴＥプロトコルは、ｎ人の参加者の間で公開情報を交換するためのセキュアな方法に依存する。プロトコルにおける参加者は、彼らの公開鍵を交換し、２−ｏｆ−２マルチシグネチャアドレス及び新しい公開鍵を、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎシークレット共有方式を用いて生成する。彼らは、更に彼らのメイントランザクションをブロードキャストするために、及び署名のためにプロトコルの中で生成された他のトランザクション（返金及び補償トランザクション）を交換する。
【００８１】
明示的に言及しないが、私たちは、プロトコルの中で生成される異なるトランザクションの間のリンクを不明瞭にするために、ｎ−ＤＴＥプロトコルの中で構築されるトランザクションの中で使用される（公開鍵に基づく及びマルチシグネチャアドレス）アドレスを生成するときに、各公開鍵を１回だけ使用することを推奨する。
【００８２】
更に、私たちは、メッセージの受信者の公開鍵を用いて、参加者の間で送信される各メッセージ（公開鍵、トランザクション、アドレス）を暗号化することを提唱する。
【００８３】
各参加者Ｕｉは、ネットワーク上で３つのトランザクションを送信する。
・Ｔｘｉ−１：Ｕｉ−１により生成されたメイントランザクション。
・Ｃｘｉ：Ｕｉ＋１が割り当てられた時間内にＴｘｉをブロードキャストしない場合の、Ｕｉのための補償トランザクション。
・Ｒｘｉ：ブロックチェーン上でのＴｘｉ−１の承認後に提出される、Ｕｉのための返金トランザクション。
【００８４】
攻撃者は、これらのトランザクションの中で使用されるアドレスを、ユーザＵｉのＩＰアドレスによりリンクすることに成功するかも知れないが、メイントランザクションがその元の作成者によりネットワークへ送信されないので、トランザクションの作成者のユーザのアドレスとユーザのＩＰアドレスとの間のリンクを不明瞭にするという所望の効果が達成される。デポジットトランザクションＤｘの中のアウトプットの順序がプロトコルの参加者の順序を開示した場合、外部攻撃者は、トランザクションとそれらの元の作成者との間のリンクを再構成するのに十分な知識を取得できるかも知れない。主にその理由から、私たちは、Ｄｘの中のインプットとアウトプットとの間のリンクを不明瞭にするために、Ｄｘの中のアウトプットをシャッフルする方法を説明する。代替として、前述のように、参加者により生成されたデポジットは、個々のデポジットトランザクションの中で行われ得る。
【００８５】
＜結論＞
本願明細書は、ｎ−直接トランザクション交換プロトコル（ｎ−ＤＴＥ）を提案する。該プロトコルは、トランザクションの提出及びそれらのネットワーク内での拡散の前に、オフチェーンでトランザクションを直接交換するためのソリューションを提供する。これは、ユーザにより生成されたトランザクションのＩＰアドレスとトランザクションの中のユーザのビットコインアドレスとの間のリンクを不明瞭にすることを目的とする。従って、ネットワーク上でのユーザの匿名性を実施する。
【００８６】
トランザクション交換は、メイントランザクションのアウトプットに僅かな量（ダスト、dust）のＢｉｔｃｏｉｎを追加し、及びこのダスト及び参加者により生成されたデポジットを含む返金トランザクションを構成することにより、達成される。これは、参加者が、彼らが別の参加者のメイントランザクションをブロードキャストした後に、彼らのデポジットを請求することを可能にする。
【００８７】
このプロトコルの中で割り当てられた時間の間に参加者のメイントランザクションがブロックチェーンに含めるために提出された、該参加者を補償するために、補償方式も実施される。
【００８８】
＜システム概要＞
図１３を参照すると、本開示の少なくとも一実施形態を実施するために使用され得るコンピューティング装置２６００の説明のための簡略ブロック図が提供される。種々の実施形態で、コンピューティング装置２６００は、１つ以上のトランザクションを実施する１つ以上のノード又はサーバ又は他の電子装置のような、上述の及び図示の装置又はシステムのうちのいずれかを実施するために使用されてよい。従って、コンピューティング装置２６００は、ポータブルコンピューティング装置、パーソナルコンピュータ、又は任意の電子コンピューティング装置であってよい。図１３に示すように、コンピューティング装置２６００は、主メモリ２６０８及び永久記憶装置２６１０を含む記憶サブシステム２６０６と通信するよう構成され得る１つ以上のレベルのキャッシュメモリ及びメモリ制御部（集合的に２６０２とラベル付けされる）を備える１つ以上のプロセッサを含んでよい。主メモリ２６０８は、図示のように、動的ランダムアクセスメモリ（ＤＲＡＭ）２６１８及び読み出し専用メモリ（ＲＯＭ）２６２０を含み得る。記憶サブシステム２６０６及びキャッシュメモリ２６０２は、本開示で説明されたようなトランザクション及びブロックに関連付けられた詳細事項のような情報の記憶のために使用されてよい。プロセッサ２６０２は、本開示で説明されたような任意の実施形態のステップ又は機能を提供するために利用されてよい。
【００８９】
プロセッサ２６０２は、１つ以上のユーザインタフェース入力装置２６１２、１つ以上のユーザインタフェース出力装置２６１４、及びネットワークインタフェースサブシステム２６１６とも通信できる。
【００９０】
バスサブシステム２６０４は、コンピューティング装置２６００の種々のコンポーネント及びサブシステムが意図した通りに互いに通信できるようにするメカニズムを提供してよい。バスサブシステム２６０４は、単一のバスとして概略的に示されるが、バスサブシステムの代替の実施形態は、複数のバスを利用してよい。
【００９１】
ネットワークインタフェースサブシステム２６１６は、他のコンピューティング装置及びネットワークへのインタフェースを提供してよい。ネットワークインタフェースサブシステム２６１６は、幾つかの実施形態では、コンピューティング装置２６００の他のシステムからデータを受信し及びそれへデータを送信するインタフェースとして機能してよい。例えば、ネットワークインタフェースサブシステム２６１６は、データ技術者が、装置をネットワークに接続することを可能にする。その結果、データ技術者は、データセンタのような遠隔地にいがなら、データを装置へ送信し、データを装置から受信できる。
【００９２】
ユーザインタフェース入力装置２６１２は、キーボード、統合型マウス、トラックボール、タッチパッド、又はグラフィックタブレットのような指示装置、スキャナ、バーコードスキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンのようなオーディオ入力装置、及び他の種類の入力装置のような、１つ以上のユーザ入力装置を含んでよい。通常、用語「入力装置」の使用は、コンピューティング装置２６００に情報を入力する全ての可能な種類の装置及びメカニズムを含むことを意図する。
【００９３】
１つ以上のユーザインタフェース出力装置２６１４は、ディスプレイサブシステム、プリンタ、又は音声出力装置のような非視覚ディスプレイを含んでよい。ディスプレイサブシステムは、陰極線管（CRT）、液晶ディスプレイ（LCD）、発光ダイオード（LED）ディスプレイ、又はプロジェクションのような平面装置、又は他のディスプレイ装置を含んでよい。通常、用語「出力装置」の使用は、コンピューティング装置２６００から情報を出力する全ての可能な種類の装置及びメカニズムを含むことを意図する。１つ以上のユーザインタフェース出力装置２６１４は、例えば、ユーザインタフェースを提示して、ここに記載したプロセス及び変形を実行するアプリケーションとのユーザ相互作用が適切であるとき、そのような相互作用を実現するために使用されてよい。
【００９４】
記憶サブシステム２６０６は、本開示の少なくとも１つの実施形態の機能を提供する基本プログラミング及びデータ構造を記憶するコンピュータ可読記憶媒体を提供してよい。アプリケーション（例えば、プログラム、コードモジュール、命令）は、１つ以上のプロセッサにより実行されると、本開示の１つ以上の実施形態の機能を提供し、記憶サブシステム２６０６に格納されてよい。これらのアプリケーションモジュール又は命令は、１つ以上のプロセッサ２６０２により実行されてよい。記憶サブシステム２６０６は、更に、本開示に従い使用されるデータを格納するレポジトリを提供する。例えば、主メモリ２６０８及びキャッシュメモリ２６０２は、プログラム及びデータのための揮発性記憶を提供できる。永久記憶装置２６１０は、プログラム及びデータの永久（不揮発性）記憶を提供でき、磁気ハードディスクドライブ、取り外し可能媒体に関連付けられた１つ以上のフロッピディスクドライブ、取り外し可能媒体に関連付けられた１つ以上の光ドライブ（例えば、ＣＤ−ＲＯＭ、又はＤＶＤ、又はＢｌｕｅ−Ｒａｙ）ドライブ、及び他の同様の記憶媒体を含んでよい。このようなプログラム及びデータは、本開示に記載した１つ以上の実施形態のステップを実行するためのプログラム、及び本開示に記載したトランザクション及びブロックに関連付けられたデータを含み得る。
【００９５】
コンピューティング装置２６００は、ポータブルコンピュータ装置、タブレットコンピュータ、ワークステーション、又は後述する任意の他の装置を含む種々のタイプのものであってよい。さらに、コンピューティング装置２６００は、１つ以上のポート（例えば、USB、ヘッドフォンジャック、光コネクタ、等）を通じてコンピューティング装置２６００に接続可能な別の装置を含み得る。コンピューティング装置２６００に接続され得る装置は、光ファイバコネクタを受けるよう構成される複数のポートを含んでよい。したがって、この装置は、光信号を、処理のために装置を接続するポートを通じてコンピューティング装置２６００に送信される電気信号に変換するよう構成されてよい。コンピュータ及びネットワークの絶えず変化する特性により、図１３に示したコンピューティング装置２６００の説明は、装置の好適な実施形態を説明する目的の特定の例としてのみ意図される。図１３に示したシステムより多くの又は少ないコンポーネントを有する多くの他の構成が可能である。
【００９６】
＜範囲＞
上述の実施形態は、本開示を限定するのではなく、説明すること、及び当業者は添付の特許請求の範囲により定められる本開示の範囲から逸脱することなく多くの代替的実施形態を考案できることに留意すべきである。
【００９７】
特許請求の範囲において、括弧内の任意の参照符号は、請求項を限定することを意図しない。用語「有する」及び「含む」（comprising、comprises）等は、任意の請求項又は明細書全体に列挙されたもの以外の要素またはステップの存在を排除しない。本願明細書では、「有する」は「有する又は構成される」を意味し、「含む」は「含む又は構成される」を意味する。要素の単数の参照は、該要素の複数の参照を排除しない。逆も同様である。本開示は、幾つかの別個の要素を含むハードウェアにより、及び適切にプログラムされたコンピュータにより、実装できる。幾つかの手段を列挙する装置クレームでは、これらの手段のうちの幾つかは、１つの同じハードウェアアイテムにより具現化されてよい。単に特定の機能が相互に異なる従属請求項に記載されるという事実は、これらの手段の組み合わせが有利に使用されないことを示さない。
【００９８】
＜列挙される例示的な実施形態（Enumerated  Example  Embodiments(EEE)）＞
（ＥＥＥ１）  ｎ＞２人の参加者の間でブロックチェーントランザクションを交換し、後にブロックチェーン上に記憶するために該ブロックチェーントランザクションをブロックチェーンネットワーク上にブロードキャストするための、コンピュータにより実施される方法であって、
暗号鍵及び関連するブロックチェーンアドレスを生成し、参加者の間で交換するステップと、
参加者の間で交換されるべき前記ブロックチェーントランザクションの各々を、前記トランザクションをブロードキャストすることを担う参加者により請求される返金アウトプットを各ブロックチェーントランザクションに含めることにより、変更するステップと、
前記暗号鍵及び前記関連するブロックチェーンアドレスを用いて１つ以上のデポジットトランザクションを構成し、前記１つ以上のデポジットトランザクションを前記ブロックチェーンに提出するステップであって、前記１つ以上のデポジットトランザクションは、別の参加者にブロックチェーントランザクションを正しくブロードキャストする参加者に返金するため、及び彼らのブロックチェーントランザクションが正しくブロードキャストされなかった場合に参加者を補償するために構成される、ステップと、
前記参加者の間で前記変更されたブロックチェーントランザクションを署名し交換するステップと、
前記１つ以上のデポジットトランザクションの前記アウトプット及び前記変更されたブロックチェーントランザクションの前記返金アウトプットをインプットのために使用して、返金トランザクションを構成するステップと、
前記１つ以上のデポジットトランザクションの前記アウトプットをインプットのために使用して、補償トランザクションを構成するステップと、
前記補償トランザクション及び前記変更されたブロックチェーントランザクションをブロードキャストするステップと、
前記ブロックチェーン上で前記変更されたブロックチェーントランザクションを確認すると、前記返金トランザクションをブロードキャストするステップであって、参加者の変更されたブロックチェーントランザクションが前記ブロックチェーン上で確認されない場合、前記参加者は前記補償トランザクション内の関連する未使用アウトプットを請求する、ステップと、
を含むコンピュータにより実施される方法。
（ＥＥＥ２）  暗号鍵及び関連するブロックチェーンアドレスを生成し、参加者の間で交換するステップは、
各参加者が、２つの秘密−公開鍵ペア（ｋｉ１，Ｐｉ１）及び（ｋｉ２，Ｐｉ２）を生成し、
前記参加者が、順序集合｛Ｕ０，Ｕ１，．．．，Ｕｎ−２，Ｕｎ−１｝を実現するためにランダム化され、
各参加者Ｕｉは、前記２つの公開鍵Ｐｉ１及びＰｉ２を２人の他の参加者（Ｕｎ−１及びＵｎ＋１）と交換し、
各参加者Ｕｉは、前記２人の他の参加者により提供される彼らの公開鍵Ｐｉ１及びＰｉ２を用いて、ブロックチェーンアドレスのペア（αｉ，βｉ）を生成し、
各参加者Ｕｉは、ブロックチェーンアドレスの前記ペア（αｉ，βｉ）を前記２人の他の参加者と交換すること、
を含む、ＥＥＥ１に記載のコンピュータにより実施される方法。
（ＥＥＥ３）  各参加者により生成された前記ブロックチェーンアドレスのうちの１つ（αｉ）は、前記参加者（Ｕｉ）及び別の参加者（Ｕｉ＋１）の両者からの署名を要求する、ＥＥＥ１又は２に記載のコンピュータにより実施される方法。
（ＥＥＥ４）  各参加者（Ｕｉ）により生成された前記ブロックチェーンアドレスのうちの１つ（βｉ）は、別の参加者（Ｕｉ−１）からの署名だけを要求する、ＥＥＥ１〜３のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ５）  各参加者（Ｕｉ）は、秘密−公開鍵ペア（ｙｉ，Ｑｉ）を生成し、前記公開鍵を発行し、前記参加者は、前記鍵ペア（ｙｉ，Ｑｉ）を用いて暗号化チャネルを介して互いに通信できる、ＥＥＥ１〜４のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ６）  前記１つ以上のデポジットトランザクションは、前記１つ以上のデポジットトランザクションのアウトプットがシャッフルされる又は前記１つ以上のデポジットトランザクションのインプットに対してランダム化されるように、構成される、ＥＥＥ１〜５のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ７）  前記参加者は、彼らのデポジットを共通デポジットトランザクションの中で生成する、ＥＥＥ１〜６のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ８）  各参加者は、個々のデポジットトランザクションを生成する、ＥＥＥ１〜６のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ９）  前記デポジットトランザクションは、Ｐ２ＳＨ（Pay  To  Script  Hash）デポジットトランザクションである、ＥＥＥ１〜８のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ１０）  各デポジットは、前記参加者により生成され交換された前記ブロックチェーンアドレスのうちの１つへ、又は時間ΔＴＥの後に、彼らのブロックチェーントランザクションが前記ブロックチェーン上で承認されない場合に、前記デポジットを生成した前記参加者のブロックチェーンアドレスへ、送信されるよう構成される、ＥＥＥ１〜９のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ１１）  前記参加者のための前記デポジットトランザクションは、前記参加者のうちの１人により構成される、ＥＥＥ１〜１０のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ１２）  交換されるべき前記ブロックチェーントランザクションの各々を変更するステップは、別の参加者により提供された前記公開鍵で前記返金アウトプットをロックするステップを含み、前記変更されたトランザクションは、署名され、前記他の参加者へ送信される、ＥＥＥ１〜１１のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ１３）  各参加者Ｕｉは、インプットのために、前記１つ以上のデポジットトランザクションの中のアウトプットＯｉ、及び参加者Ｕｉ−１により生成された前記ブロックチェーントランザクションＴｘｉ−１の中の前記公開アドレスβｉ−１へ送信される前記返金アウトプットを使用して、彼らの返金トランザクションＲｘｉを構成して、参加者Ｕｉの返金が、彼らが参加者Ｕｉ−１のブロックチェーントランザクションＴｘｉ−１を前記ブロックチェーンに含めるために提出することに依存するようにする、ＥＥＥ１〜１２のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ１４）  新たに生成されたトランザクションＲｘｉの中の２つのインプットは、Ｕｉ及びＵｉ−１の署名を要求し、以下の通りである：
インプットｘ（Ｏｉ）が、参加者Ｕｉ及び参加者Ｕｉ−１の署名を要求し、及び
インプットｄ（βｉ−１）が、Ｕｉの署名だけを要求する、
ＥＥＥ１３に記載のコンピュータにより実施され方法。
（ＥＥＥ１５）  参加者Ｕｉは、彼らの返金トランザクションＲｘｉを参加者Ｕｉ−１へ送信し、前記参加者Ｕｉ−１は、該返金トランザクションＲｘｉに署名して参加者Ｕｉに返送し、前記参加者Ｕｉは、次に前記トランザクションＲｘｉに署名する、ＥＥＥ１３又は１４に記載のコンピュータにより実施され方法。
（ＥＥＥ１６）  各参加者Ｕｉは、前記１つ以上のデポジットトランザクションの中のＯｉ＋１へ送信される前記アウトプットを用いて彼らの補償トランザクションＣｘｉを構成し、参加者Ｕｉは、新たに生成されたトランザクションＣｘｉを参加者Ｕｉ＋１へ送信し、参加者Ｕｉ＋１は、Ｃｘｉに署名して参加者Ｕｉへ戻し、Ｃｘｉの中のインプットｘ（Ｏｉ＋１）はＵｉ及びＵｉ＋１の両者の署名を要求する、ＥＥＥ１〜１５のいずれか一項に記載のコンピュータにより実施され方法。
（ＥＥＥ１７）  前記補償トランザクションは、前記参加者が前記交換されたブロックチェーントランザクションをブロードキャストし及び該ブロックチェーントランザクションがブロックチェーンネットワーク上で承認されたと分かるために許容される最大時間を定める時間ΔＴＳの間、ロックされるアウトプットを有する、ＥＥＥ１〜１６のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ１８）  前記補償トランザクション及び前記ブロックチェーントランザクションをブロードキャストするステップは、各参加者Ｕｉが、２つのトランザクションＣｘｉ及びＴｘｉ−１をその順序でブロードキャストすることを含む、ＥＥＥ１〜１７のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ１９）  前記ブロックチェーントランザクションが前記ブロックチェーン上で承認されると、前記返金トランザクションをブロードキャストするステップは、各参加者Ｕｉが、返金トランザクションＲｘｉをブロードキャストし、それにより彼らのデポジットを請求することを含む、ＥＥＥ１〜１８のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ２０）  参加者は、彼らのブロックチェーントランザクションが、時間ΔＴＳの後にブロックチェーン上で承認されないとき、前記補償トランザクションの中の未使用アウトプットを請求できるだけである、ＥＥＥ１〜１９のいずれか一項に記載のコンピュータにより実施される方法。
（ＥＥＥ２１）  コンピュータ実行可能命令を含むコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、実行されると、１つ以上のプロセッサを、ＥＥＥ１乃至２０のいずれか一項に記載の方法を実行するよう構成する、コンピュータ可読記憶媒体。
（ＥＥＥ２２）  電子装置であって、
インタフェース装置と、
前記インタフェース装置に結合された１つ以上のプロセッサと、
前記１つ以上のプロセッサに結合されたメモリであって、前記メモリはコンピュータ実行可能命令を格納し、前記コンピュータ実行可能命令は、実行されると、前記１つ以上のプロセッサを、ＥＥＥ１乃至２０のいずれか一項に記載の方法を実行するよう構成する、メモリと、
を含む電子装置。
（ＥＥＥ２３）  ブロックチェーンネットワークのノードであって、前記ノードは、ＥＥＥ１〜２０のいずれか一項に記載の方法を実行するよう構成されるノード。
【００９９】
参考文献
［１］Venkatakrishnan,  S.B.,  Fanti,  G.  and  Viswanath,  P.,  ２０１７.  Dandelion:  Redesigning  the  Bitcoin  Network  for  Anonymity.  arXiv  preprint  arXiv:１７０１.０４４３９.  https://arxiv.org/pdf/１７０１.０４４３９.pdf
［２］Biryukov,  A.,  Khovratovich,  D.,  &  Pustogarov,  I.  (２０１４,  November).Deanonymisation  of  clients  in  Bitcoin  P２P  network.In  Proceedings  of  the  ２０１４  ACM  SIGSAC  Conference  on  Computer  and  Communications  Security  (pp.１５−２９).ACM.https://arxiv.org/pdf/１４０５.７４１８.pdf
［３］Dingledine,  R.,  Mathewson,  N.,  &  Syverson,  P.  (２００４).Tor:The  second−generation  onion  router.Naval  Research  Lab  Washington  DC.
［４］Ron,  D.,  &  Shamir,  A.  (２０１３,  April).  Quantitative  analysis  of  the  full  bitcoin  transaction  graph.  In  International  Conference  on  Financial  Cryptography  and  Data  Security  (pp.  ６−２４).  Springer,  Berlin,  Heidelberg.
［５］Chakravarty,  S.,  Stavrou,  A.,  &  Keromytis,  A.  D.  (２００８,  November).  Identifying  proxy  nodes  in  a  Tor  anonymization  circuit.  In  Signal  Image  Technology  and  Internet  Based  Systems,  ２００８.  SITIS'０８.  IEEE  International  Conference  on  (pp.  ６３３−６３９).  IEEE.  http://www.cs.columbia.edu/~sc２５１６/papers/septis_paper.pdf
［６］Shah,  D.,  &  Zaman,  T  .(２０１２,  June).  Rumor  centrality:  a  universal  source  detector.  In  ACM  SIGMETRICS  Performance  Evaluation  Review  (Vol.  ４０,  No.  １,  pp.  １９９−２１０).  ACM.  ftp://ftp−sop.inria.fr/maestro/Sigmetrics−Performance−２０１２−papers−and−posters/p１９９.pdf
［７］Shah,  D.,  &  Zaman,  T.  (２０１１).  Rumors  in  a  network:  Who's  the  culprit?  IEEE  Transactions  on  information  theory,  ５７(８),  ５１６３−５１８１.  http://snap.stanford.edu/nipsgraphs２００９/papers/zaman−paper.pdf
［８］https://news.bitcoin.com/dandelion−bitcoin−anonymize−transaction−broadcasts/
【図１】
2021530163.tif 000003
【図２】
2021530163.tif 000004
【図３】
2021530163.tif 000005
【図４】
2021530163.tif 000006
【図５】
2021530163.tif 000007
【図６】
2021530163.tif 000008
【図７】
2021530163.tif 000009
【図８】
2021530163.tif 000010
【図９】
2021530163.tif 000011
【図１０】
2021530163.tif 000012
【図１１】
2021530163.tif 000013
【図１２】
2021530163.tif 000014
【図１３】
2021530163.tif 000015
【国際調査報告】
2021530163.tif 000016
2021530163.tif 000017