(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023159328
(43)【公開日】2023-10-31
(54)【発明の名称】分散型台帳に関連するトランザクションのオフチェーン交換のためのコンピュータにより実施されるシステム及び方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20231024BHJP
【FI】
H04L9/32 200Z
H04L9/32 200B
【審査請求】有
【請求項の数】24
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023135302
(22)【出願日】2023-08-23
(62)【分割の表示】P 2020573360の分割
【原出願日】2019-07-03
(31)【優先権主張番号】1810981.9
(32)【優先日】2018-07-04
(33)【優先権主張国・地域又は機関】GB
(71)【出願人】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】バルトルッチ,シルヴィア
(72)【発明者】
【氏名】ベルナト,ポーリーン
(57)【要約】 (修正有)
【課題】分散型台帳に関連するトランザクションのオフチェーン交換のためのシステム及び方法を提供する。
【解決手段】ユーザにより生成されたトランザクションのIPアドレスとトランザクションの中の該ユーザのブロックチェーンアドレスとの間のリンクを不明瞭にするために、ブロックチェーンネットワーク上で拡散する前に、複数のブロックチェーンユーザが彼らのトランザクションをオフチェーンで直接交換する、任意の数(n>2)の参加者についてスケーリングされる方法であって、参加者は、デポジットを生成すること及び返金及び補償方式が自動的に実施される方法が参加者間で交換されるトランザクションのブロックチェーンにおける承認に依存するように、彼らのトランザクションを変更することに合意する。これにより、セキュリティを向上すると共に匿名性を提供する。
【選択図】
図12
【特許請求の範囲】
【請求項1】
n>2人の参加者の間でブロックチェーントランザクションを交換し、後にブロックチェーン上に記憶するために該ブロックチェーントランザクションをブロックチェーンネットワーク上にブロードキャストするための、コンピュータにより実施される方法であって、
暗号鍵及び関連するブロックチェーンアドレスを生成し、参加者の間で交換するステップであって、前記暗号鍵は複数の公開暗号鍵を含み、各々の前記公開暗号鍵は、それぞれの第1参加者の公開鍵とそれぞれの第2参加者の秘密鍵とに基づき、及びそれぞれの第1参加者の秘密鍵とそれぞれの第2参加者の公開鍵とに基づく、ステップと、
参加者の間で交換されるべき前記ブロックチェーントランザクションの各々を、前記ブロックチェーントランザクションをブロードキャストすることを担う参加者により請求される返金アウトプットを各ブロックチェーントランザクションに含めることにより、変更するステップと、
前記暗号鍵及び前記関連するブロックチェーンアドレスを用いて1つ以上のデポジットトランザクションを構成し、前記1つ以上のデポジットトランザクションを前記ブロックチェーンに提出するステップであって、前記1つ以上のデポジットトランザクションは、別の参加者にブロックチェーントランザクションを正しくブロードキャストする参加者に返金するために構成される、ステップと、
前記参加者の間で前記変更されたブロックチェーントランザクションを署名し交換するステップと、
前記1つ以上のデポジットトランザクションのアウトプット及び前記変更されたブロックチェーントランザクションの前記返金アウトプットをインプットのために使用して、返金トランザクションを構成するステップと、
前記ブロックチェーン上で前記変更されたブロックチェーントランザクションが承認されると、前記返金トランザクションをブロードキャストするステップと、
を含むコンピュータにより実施される方法。
【請求項2】
暗号鍵及び関連するブロックチェーンアドレスを生成し、参加者の間で交換するステップは、
各参加者Uiが、2つの秘密-公開鍵ペア(ki
1,Pi
1)及び(ki
2,Pi
2)を生成し、
前記参加者が、順序集合{U0,U1,...,Un-2,Un-1}を実現するためにランダム化され、
各参加者Uiは、前記2つの公開鍵Pi
1及びPi
2を2人の他の参加者(Un-1及びUn+1)と交換し、
各参加者Uiは、前記2人の他の参加者により提供される彼らの公開鍵Pi
1及びPi
2を用いて、ブロックチェーンアドレスのペア(αi,βi)を生成し、
各参加者Uiは、ブロックチェーンアドレスの前記ペア(αi,βi)を前記2人の他の参加者と交換すること、
を含む、請求項1に記載のコンピュータにより実施される方法。
【請求項3】
各参加者により生成された前記ブロックチェーンアドレスのうちの1つ(αi)は、前記参加者(Ui)及び別の参加者(Ui+1)の両者からの署名を要求する、請求項1又は2に記載のコンピュータにより実施される方法。
【請求項4】
各参加者(Ui)により生成された前記ブロックチェーンアドレスのうちの1つ(βi)は、別の参加者(Ui-1)からの署名だけを要求する、請求項1~3のいずれか一項に記載のコンピュータにより実施される方法。
【請求項5】
各参加者(Ui)は、秘密-公開鍵ペア(yi,Qi)を生成し、前記公開鍵を発行し、前記参加者は、前記鍵ペア(yi,Qi)を用いて暗号化チャネルを介して互いに通信できる、請求項1~4のいずれか一項に記載のコンピュータにより実施される方法。
【請求項6】
前記1つ以上のデポジットトランザクションは、前記1つ以上のデポジットトランザクションのアウトプットがシャッフルされる又は前記1つ以上のデポジットトランザクションのインプットに対してランダム化されるように、構成される、請求項1~5のいずれか一項に記載のコンピュータにより実施される方法。
【請求項7】
前記参加者は、彼らのデポジットを共通デポジットトランザクションの中で生成する、請求項1~6のいずれか一項に記載のコンピュータにより実施される方法。
【請求項8】
各参加者は、個々のデポジットトランザクションを生成する、請求項1~6のいずれか一項に記載のコンピュータにより実施される方法。
【請求項9】
前記デポジットトランザクションは、P2SH(Pay To Script Hash)デポジットトランザクションである、請求項1~8のいずれか一項に記載のコンピュータにより実施される方法。
【請求項10】
各デポジットは、生成され前記参加者により交換された前記ブロックチェーンアドレスのうちの1つへ、又は時間ΔTEの後に、彼らのブロックチェーントランザクションが前記ブロックチェーン上で承認されない場合に、前記デポジットを生成した前記参加者のブロックチェーンアドレスへ、送信されるよう構成される、請求項1~9のいずれか一項に記載のコンピュータにより実施される方法。
【請求項11】
前記参加者のための前記デポジットトランザクションは、前記参加者のうちの1人により構成される、請求項1~10のいずれか一項に記載のコンピュータにより実施される方法。
【請求項12】
交換されるべき前記ブロックチェーントランザクションの各々を変更するステップは、別の参加者により提供された前記公開鍵で前記返金アウトプットをロックするステップを含み、前記変更されたトランザクションは、署名され、前記別の参加者へ送信される、請求項1~11のいずれか一項に記載のコンピュータにより実施される方法。
【請求項13】
各参加者Uiは、インプットのために、前記1つ以上のデポジットトランザクションの中のアウトプットOi、及び参加者Ui-1により生成された前記ブロックチェーントランザクションTx
i-1の中の前記公開アドレスβi-1へ送信される前記返金アウトプットを使用して、彼らの返金トランザクションRx
iを構成して、参加者Uiの返金が、彼らが参加者Ui-1のブロックチェーントランザクションTx
i-1を前記ブロックチェーンに含めるために提出することに依存するようにする、請求項1~12のいずれか一項に記載のコンピュータにより実施される方法。
【請求項14】
新たに生成されたトランザクションRx
iの中の2つのインプットは、Ui及びUi-1の署名を要求し、以下の通りである:
インプットx(Oi)が、参加者Ui及び参加者Ui-1の署名を要求し、及び
インプットd(βi-1)が、Uiの署名だけを要求する、
請求項13に記載のコンピュータにより実施される方法。
【請求項15】
参加者Uiは、彼らの返金トランザクションRx
iを参加者Ui-1へ送信し、前記参加者Ui-1は、該返金トランザクションRx
iに署名して参加者Uiに返送し、前記参加者Uiは、次に前記トランザクションRx
iに署名する、請求項13又は14に記載のコンピュータにより実施される方法。
【請求項16】
前記1つ以上のデポジットトランザクションは、参加者のブロックチェーントランザクションが正しくブロードキャストされない場合、前記参加者を補償するよう更に構成され、前記方法は、
前記1つ以上のデポジットトランザクションのアウトプットをインプットとして使用する補償トランザクションを構成するステップと、
前記補償トランザクションと前記変更されたブロックチェーントランザクションをブロードキャストするステップと、
を更に含み、
参加者の変更されたブロックチェーントランザクションが前記ブロックチェーン上で承認されない場合に、前記参加者が前記補償トランザクション内の関連する未使用アウトプットを請求する、請求項1~15のいずれか一項に記載のコンピュータにより実施される方法。
【請求項17】
各参加者Uiは、前記1つ以上のデポジットトランザクションの中のOi+1へ送信される前記アウトプットを用いて彼らの補償トランザクションCx
iを構成し、参加者Uiは、新たに生成されたトランザクションCx
iを参加者Ui+1へ送信し、参加者Ui+1は、Cx
iに署名して参加者Uiへ戻し、Cx
iの中のインプットx(Oi+1)はUi及びUi+1の両者の署名を要求する、請求項16に記載のコンピュータにより実施される方法。
【請求項18】
前記補償トランザクションは、前記参加者が前記交換されたブロックチェーントランザクションをブロードキャストし及び該ブロックチェーントランザクションがブロックチェーンネットワーク上で承認されたと分かるために許容される最大時間を定める時間ΔTSの間、ロックされるアウトプットを有する、請求項16又は17に記載のコンピュータにより実施される方法。
【請求項19】
前記補償トランザクション及び前記ブロックチェーントランザクションをブロードキャストするステップは、各参加者Uiが、2つのトランザクションCx
i及びTx
i-1をその順序でブロードキャストすることを含む、請求項16~18のいずれか一項に記載のコンピュータにより実施される方法。
【請求項20】
前記ブロックチェーントランザクションが前記ブロックチェーン上で承認されると、前記返金トランザクションをブロードキャストするステップは、各参加者Uiが、返金トランザクションRx
iをブロードキャストし、それにより彼らのデポジットを請求することを含む、請求項1~19のいずれか一項に記載のコンピュータにより実施される方法。
【請求項21】
参加者は、彼らのブロックチェーントランザクションが、時間ΔTSの後にブロックチェーン上で承認されないとき、前記補償トランザクションの中の未使用アウトプットを請求できるだけである、請求項16~19のいずれか一項に記載のコンピュータにより実施される方法。
【請求項22】
コンピュータ実行可能命令を含むコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、実行されると、1つ以上のプロセッサを、請求項1~21のいずれか一項に記載の方法を実行するよう構成する、コンピュータ可読記憶媒体。
【請求項23】
電子装置であって、
インタフェース装置と、
前記インタフェース装置に結合された1つ以上のプロセッサと、
前記1つ以上のプロセッサに結合されたメモリであって、前記メモリはコンピュータ実行可能命令を格納し、前記コンピュータ実行可能命令は、実行されると、前記1つ以上のプロセッサを、請求項1~21のいずれか一項に記載の方法を実行するよう構成する、メモリと、
を含む電子装置。
【請求項24】
ブロックチェーンネットワークのノードであって、前記ノードは、請求項1~21のいずれか一項に記載の方法を実行するよう構成されるノード。
【発明の詳細な説明】
【技術分野】
【0001】
本願明細書及び開示は、概して、ブロックチェーンネットワーク上へのトランザクションの提出及びそれらの拡散の前にオフチェーンでトランザクションを交換するのに適する、コンピュータにより実施される方法及びシステムに関する。本開示は、限定ではなく、Bitcoinブロックチェーンと共に使用することに特に適する。
【背景技術】
【0002】
本願明細書では、私たちは、全ての形式の電子的な、コンピュータに基づく、分散型台帳を包含するために用語「ブロックチェーン」を使用する。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、並びにこれらの変形を含む。他のブロックチェーン実装が提案され開発されているが、ブロックチェーン技術の最も広く知られているアプリケーションは、Bitcoin台帳である。Bitcoinは、ここでは、便宜上及び説明の目的で参照されることがあるが、本開示はBitcoinブロックチェーンと共に使用することに限定されず、代替のブロックチェーン実装及びプロトコルが本開示の範囲に包含されることに留意すべきである。
【0003】
ブロックチェーンは、コンピュータに基づく非集中型の分散型システムとして実装される総意に基づく電子台帳であり、ブロックにより構成され、ブロックはまたトランザクション及び他の情報により構成される。Bitcoinの場合には、各トランザクションは、ブロックチェーンシステムの中の参加者間でデジタルアセットの制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックから当該ブロックまでのハッシュを含み、一緒に繋げられて、起源以来ブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能な記録を生成する。トランザクションは、スクリプトとして知られている小さなプログラムを含む。スクリプトは、それらのインプット及びアウトプットを埋め込まれ、トランザクションのアウトプットがどのように及び誰によりアクセス可能であるかを指定する。Bitcoinプラットフォームでは、これらのスクリプトはスタックに基づくスクリプト言語を用いて記述される。
【0004】
トランザクションがブロックチェーンに書き込まれるためには、検証されなければならない。幾つかのネットワークノードは、マイナーとして動作し、各トランザクションが検証されることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。例えば、ノードにインストールされたソフトウェアクライアントは、未使用トランザクションアウトプット(unspent transaction outputs:UTXO)を参照するトランザクションに対してこの検証作業を実行する。検証は、そのロック及びアンロックスクリプトを実行することにより実行されてよい。ロック及びアンロックスクリプトの実行が真(TRUE)と評価する場合、及び特定の他の条件が満たされた場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれてよい。したがって、トランザクションがブロックチェーンに書き込まれるためには、(i)トランザクションを受信したノードにより検証され、トランザクションが有効な場合には、ノードが該トランザクションをネットワーク内の他のノードに中継する、(ii)マイナーにより構築された新しいブロックに追加される、(iii)マイニングされる、つまり過去のトランザクションのパブリック台帳に追加される、ことが必要である。トランザクションは、実際に取り消し不可能なトランザクションを作成するために十分な数のブロックがブロックチェーンに追加されると、承認されたと考えられる。
【0005】
ブロックチェーン技術は、暗号通貨の実装の使用のために最も広く知られているが、デジタル事業家が、Bitcoinの基づく暗号セキュリティシステム及び新しいシステムを実装するためにブロックチェーンに格納できるデータの両方の使用を開発し始めている。ブロックチェーンが、暗号通貨の分野に限定されない自動化タスク及びプロセスのために使用できれば、非常に有利になる。このようなソリューションは、ブロックチェーンの利益(例えば、永久性、イベントの記録の耐タンパ性、分散型処理、等)を利用しながら、それらの用途をより多様化し得る。
【0006】
研究の一分野は、「スマートコントラクト」の実装のためのブロックチェーンに基づくコンピュータプログラムの使用である。これらは、機械可読コントラクト又は合意の条項の実行を自動化するよう設計されたコンピュータプログラムである。自然言語で記述される伝統的なコントラクトと異なり、スマートコントラクトは、結果を生成するためにインプットを処理できるルールを含む機械実行可能プログラムであり、これは次に該結果に依存して動作を実行させる。
【0007】
公開型の公開台帳を提供するブロックチェーンは、任意の関心パーティが、特定のデジタルコイン、デジタルアセット、又はデジタルリソースの、一連のアドレスに渡る移動を追跡する能力を利用可能にする。公開型であり分散型である台帳は、システムを信頼する手段として動作するのに有用であるが、アドレスに渡りトランザクションを追跡するために与えられる能力は、特定の過去のトランザクションに関連するデジタルアセットを分析及び相関可能にしてしまう。この問題を解決するために、セキュリティ及び匿名化ソリューションが開発されている。これは、多くの現実世界の商用トランザクションが、法的理由、商業的理由、又はその両方で、本来機密であるために有用であり得る。従って、ブロックチェーンシステムは、ブロックチェーンの公共特性にも拘わらず、このような商業的トランザクションについてセキュリティ及び機密性の両方を補償することが可能でなければならない。
【0008】
Bitcoin暗号プロトコルにおけるペンネーム(pseudonym)の使用は、匿名支払いを可能にするものと考えられることがあるが、ユーザアイデンティティを発見する様々な調査の成功は、Bitcoinネットワーク内の匿名性がそれほど容易に達成されないことを示している。匿名性に対する要求が残されているので、本開示は、1つ以上のデジタルアセット支払いの転送をセキュアな方法でオフチェーンで実施するための、複数の種類のトランザクション又はその組み合わせを実装することに基づく種々の技術的ソリューションを提案する。それにより、暗号プロトコル又は1つ以上のコンピューティングリソースの間のデジタルアセットの移転のためのプロトコルのために、アプリケーション層及びネットワーク層の両方で利用可能なセキュリティ及び匿名性のレベルを向上する。
【発明の概要】
【0009】
本願明細書に記載されるような本開示の第1の態様によると、n>2人の参加者の間でブロックチェーントランザクションを交換し、後にブロックチェーン上に記憶するために該ブロックチェーントランザクションをブロックチェーンネットワーク上にブロードキャストするための、コンピュータにより実施される方法であって、
暗号鍵及び関連するブロックチェーンアドレスを生成し、参加者の間で交換するステップと、
参加者の間で交換されるべき前記ブロックチェーントランザクションの各々を、前記トランザクションをブロードキャストすることを担う参加者により請求される返金アウトプットを各ブロックチェーントランザクションに含めることにより、変更するステップと、
前記暗号鍵及び前記関連するブロックチェーンアドレスを用いて1つ以上のデポジットトランザクションを構成し、前記1つ以上のデポジットトランザクションを前記ブロックチェーンに提出するステップであって、前記1つ以上のデポジットトランザクションは、別の参加者にブロックチェーントランザクションを正しくブロードキャストする参加者に返金するため、及び彼らのブロックチェーントランザクションが正しくブロードキャストされなかった場合に参加者を補償するために構成される、ステップと、
前記参加者の間で前記変更されたブロックチェーントランザクションを署名し交換するステップと、
前記1つ以上のデポジットトランザクションの前記アウトプット及び前記変更されたブロックチェーントランザクションの前記返金アウトプットをインプットのために使用して、返金トランザクションを構成するステップと、
前記1つ以上のデポジットトランザクションの前記アウトプットをインプットのために使用して、補償トランザクションを構成するステップと、
前記補償トランザクション及び前記変更されたブロックチェーントランザクションをブロードキャストするステップと、
前記ブロックチェーン上で前記変更されたブロックチェーントランザクションを確認すると、前記返金トランザクションをブロードキャストするステップであって、参加者の変更されたブロックチェーントランザクションが前記ブロックチェーン上で確認されない場合、前記参加者は前記補償トランザクション内の関連する未使用アウトプットを請求する、ステップと、
を含むコンピュータにより実施される方法が提供される。
【0010】
有利なことに、第1の態様の方法は、ユーザにより生成されたトランザクションのIPアドレスとトランザクションの中の該ユーザのブロックチェーンアドレスとの間のリンクを不明瞭にするために、ブロックチェーンネットワーク上で拡散する前に、複数のブロックチェーンユーザが彼らのトランザクションを交換することを可能にする方法を提案する。
【0011】
当該方法は、トランザクションをオフチェーンで直接交換するための技術的ソリューションを提供する。当該方法における参加者は、デポジットを生成すること、及び返金及び補償方式が自動的に実施される方法が参加者間で交換されるトランザクションのブロックチェーンにおける承認に依存するように、彼らのトランザクションを変更することに合意し、従って、セキュリティを向上すると共に匿名性を提供する。当該方法は、任意の数(n>2)の参加者についてスケーリングされる。
【0012】
設定されるべき上述の複数の異なる種類のトランザクション、つまり、デポジット、返金、補償、主要、等、及びそれらが互いに相互作用する方法を定義することにより、技術的利点が提供される。本開示は、本願明細書で、これらの種類のトランザクションの各々の構造、及び参加者間の鍵交換メカニズムも議論する。幾つかの実施形態では、中間結果を提供するこのような種類のトランザクションのシーケンスは、正確且つセキュアに行われるべきオフチェーン交換を可能にすると同時に、参加者に関連するIP又はネットワークエンドポイントに関連する匿名性を保護する。更に、後述するように、暗号化チャネル及び/又は署名及び/又はブロックチェーンアドレスのための1つ以上の暗号鍵を計算するための特定のメカニズムが、これらの利益を保証するために提案される。従って及び有利なことに、本開示、特に請求される態様及び実施形態は、分散型台帳に提供される前にオフチェーンで、デジタルアセット、つまり暗号通貨又はトークンに関連付けられ得る1つ以上のトランザクションを実施するための、セキュアな正確且つ拡張可能な技術を提案する。
【0013】
暗号鍵及び関連するブロックチェーンアドレスを生成し、参加者の間で交換するステップは、
各参加者が、2つの秘密-公開鍵ペア(ki
1,Pi
1)及び(ki
2,Pi
2)を生成し、
前記参加者が、順序集合{U0,U1,...,Un-2,Un-1}を実現するためにランダム化され、
各参加者Uiは、前記2つの公開鍵Pi
1及びPi
2を2人の他の参加者と交換し、
各参加者Uiは、前記2人の他の参加者により提供される彼らの公開鍵Pi
1及びPi
2を用いて、ブロックチェーンアドレスのペア(αi,βi)を生成し、
各参加者Uiは、ブロックチェーンアドレスの前記ペア(αi,βi)を前記2人の他の参加者と交換すること、
を含む。
【0014】
更に、各参加者により生成された前記ブロックチェーンアドレスのうちの1つ(αi)は、前記参加者(Ui)及び別の参加者(Ui+1)の両者からの署名を要求してよい。更に、各参加者により生成された前記ブロックチェーンアドレスのうちの1つ(βi)は、別の参加者(Ui+1)からの署名だけを要求してよい。
【0015】
前述のオプションは、トランザクション交換、返金、及び補償方式において後に使用するために、適切な暗号鍵及び関連するブロックチェーンアドレスがどのように生成され交換できるかの一例を提供する。
【0016】
各参加者Uiは、秘密-公開鍵ペア(yi,Qi)も生成し、公開鍵を発行してよい。これは、トランザクション交換、返金、及び補償方式を実施するとき、鍵ペア(yi,Qi)を用いて暗号化チャネルを介して参加者が互いに通信することを可能にする。
【0017】
前記1つ以上のデポジットトランザクションは、前記1つ以上のデポジットトランザクションのアウトプットがシャッフルされる又は前記1つ以上のデポジットトランザクションのインプットに対してランダム化されるように、構成できる。参加者は、共通デポジットトランザクションの中に彼らのデポジットを生成する。代替として、各参加者は、個別デポジットトランザクションを生成できる。デポジットトランザクションは、P2SH(Pay To Script Hash)デポジットトランザクションであり得る。更に、各デポジットは、前記参加者により生成され交換された前記ブロックチェーンアドレスのうちの1つへ、又は時間ΔTEの後に、彼らのブロックチェーントランザクションが前記ブロックチェーン上で承認されない場合に、前記デポジットを生成した前記参加者のブロックチェーンアドレスへ、送信されるよう構成できる。また更に、参加者のデポジットトランザクションは、参加者のうちの1人により構成される。
【0018】
前述のオプションは、トランザクション交換、返金、及び補償方式を実装するために、1つ以上の適切なデポジットトランザクションがどのように生成できるかの一例を提供する。
【0019】
交換されるべき前記ブロックチェーントランザクションの各々を変更するステップは、別の参加者により提供された前記公開鍵で前記返金アウトプットをロックするステップを含むことができ、前記変更されたトランザクションは、署名され、前記他の参加者へ送信される。各参加者Uiは、1つ以上のデポジットトランザクションの中のアウトプット(つまり、デポジットトランザクションの中で参加者UiによりロックされたアウトプットOi)及び参加者Ui-1により生成されたブロックチェーントランザクションTx
i-1の中の公開アドレスβi-1へ送信される返金アウトプットをインプットのために使用して、彼らの返金トランザクションRx
iを構成できる。その結果、参加者Uiの返金は、彼らが参加者Ui-1のブロックチェーントランザクションTx
i-1をブロックチェーンに含めるために提出することに本質的に依存する。新たに生成されたトランザクションRx
iの中の2つのインプットは、Ui及びUi-1の署名を要求でき、以下の通りである:
インプットx(Oi)が、参加者Ui及び参加者Ui-1の署名を要求し、及び
インプットd(βi-1)が、Uiの署名だけを要求する。
【0020】
以上に続いて、参加者Uiは、彼らの返金トランザクションRx
iを参加者Ui-1へ送信し、前記参加者Ui-1は、該返金トランザクションRx
iに署名して参加者Uiに返送し、前記参加者Uiは、次に前記トランザクションRx
iに署名する。
【0021】
前述のオプションは、トランザクション交換、返金、及び補償方式を実装するために、適切な返金トランザクションがどのように生成できるかの一例を提供する。
【0022】
各参加者Uiは、前記1つ以上のデポジットトランザクションの中のOi+1へ送信される前記アウトプットを用いて彼らの補償トランザクションCx
iを構成し、参加者Uiは、新たに生成されたトランザクションCx
iを参加者Ui+1へ送信し、参加者Ui+1は、Cx
iに署名して参加者Uiへ戻し、Cx
iの中のインプットx(Oi+1)はUi及びUi+1の両者の署名を要求する。前記補償トランザクションは、前記参加者が前記交換されたブロックチェーントランザクションをブロードキャストし及び該ブロックチェーントランザクションがブロックチェーンネットワーク上で承認されたと分かるために許容される最大時間を定める時間ΔTSの間、ロックされるアウトプットを有することができる。
【0023】
前述のオプションは、トランザクション交換、返金、及び補償方式を実装するために、適切な補償トランザクションがどのように生成できるかの一例を提供する。
【0024】
補償トランザクション及びブロックチェーントランザクションのブロードキャストは、各参加者Uiが2つのトランザクションCx
i及びTx
i-1をその順序でブロードキャストすることを含む。これは、補償トランザクションが、主要ブロックチェーントランザクションのブロードキャストの前に配置されることを保証する。
【0025】
前記ブロックチェーントランザクションが前記ブロックチェーン上で承認されると、前記返金トランザクションをブロードキャストするステップは、各参加者Uiが、返金トランザクションRx
iをブロードキャストし、それにより彼らのデポジットを請求することを含み得る。更に、参加者は、彼らのブロックチェーントランザクションが、時間ΔTSの後にブロックチェーン上で承認されないとき、前記補償トランザクションの中の未使用アウトプットを請求できるだけであってよい。この方法は、前記参加者が前記交換されたブロックチェーントランザクションをブロードキャストし及び該ブロックチェーントランザクションがブロックチェーンネットワーク上で承認されたと分かるために許容される最大時間を定める時間ΔTSの間、ロックされるアウトプットを有する補償トランザクションを提供することと一致する。
【0026】
本開示の実施形態は、様々な形式で提供できる。例えば、実行されると1つ以上のプロセッサをここに記載の方法を実行させるよう構成するコンピュータ実行可能命令を含むコンピュータ可読記憶媒体が提供できる。電子装置であって、インタフェース装置と、インタフェース装置に結合された1つ以上のプロセッサと、1つ以上のプロセッサに結合されたメモリであって、メモリはコンピュータ実行可能命令を格納し、コンピュータ実行可能命令は、実行されると、1つ以上のプロセッサを、ここに記載の方法を実行するよう構成する、メモリと、を含む電子装置も提供できる。ブロックチェーンネットワークのノードも、提供され得る。該ノードは、本願明細書に記載されるような方法を実行するよう構成される。
【図面の簡単な説明】
【0027】
本開示のこれらの及び他の態様は、本願明細書に記載の実施形態から明らかであり及びそれらを参照して教示される。本開示の実施形態は、単なる例を用いて、添付の図面を参照して以下に説明される。
【
図1】参加者U
iの公開鍵及び参加者U
iの最近接近隣の公開鍵の両方を用いて参加者U
iにより生成された2つのアドレス/公開鍵のスキーマを示す。
【
図2】参加者U
iにより知られている公開鍵のセットを示す。
【
図3】デポジットトランザクションD
xの中の参加者U
iのデポジットをロックするために、参加者U
iにより生成されたロックスクリプトの一例を示す。
【
図4】デポジットトランザクション の中のアウトプットのシャッフル処理を示す。
【
図5】メイントランザクションの交換の前に、4人の参加者が額xのBitcoinをデポジットするデポジットトランザクションを示す。
【
図6】直接トランザクション交換(direct transaction exchange (DTE))プロトコルで交換される2つのメイントランザクションを示す。
【
図7】デポジットトランザクション及びメイントランザクションを用いて返金トランザクションを構成するためのスキーマを示す。
【
図8】デポジットトランザクションの中で送信される資金を用いて補償トランザクションを構成するためのスキーマを示す。
【
図9】n-DTEプロトコルにおける参加者の間のトランザクションの交換を示す。
【
図10】n-DTEプロトコル(n=4)について生成されたトランザクションを示す。
【
図11】n-DTEプロトコルについてタイムラインを示す。
【
図12】n-DTEプロトコルの一般的概要を示す。
【
図13】種々の実施形態が実装できるコンピューティング環境を示す概略図である。
【発明を実施するための形態】
【0028】
背景の章で既に示したように、Bitcoin暗号プロトコルにおけるペンネーム(pseudonym)の使用は、匿名支払いを可能にするものと考えられることがあるが、ユーザアイデンティティを発見する様々な調査の成功は、Bitcoinネットワーク内の匿名性がそれほど容易に達成されないことを示している。匿名性に対する要求が残っているので、アプリケーション層及びネットワーク層の両方において暗号通貨プロトコルのために利用可能な匿名性のレベルを向上する種々の技術的ソリューションが開発されている。
【0029】
本願明細書は、直接トランザクション交換(Direct Transaction Exchange (DTE))プロトコルの、n>2人の参加者への拡張を提案する。DTEプロトコルは、トランザクションの提出及びそれらのBitcoinネットワーク内での拡散の前に、オフチェーンでトランザクションを直接交換するjためのソリューションを提供する。DTEプロトコルにおける参加者は、幾らかのコインをデポジットすること、及び返金及び補償方式が実施される方法が参加者間で交換されるトランザクションのブロックチェーンにおける承認に依存するように、彼らのメイントランザクションを変更することに合意する。本願明細書では、DTEプロトコルをどのように任意の数(n>2)の参加者へとスケーリングするかが記載される。
【0030】
暗号通貨ユーザに関連付けられたインターネットプロトコル(Internet Protocol (IP))アドレスは、Bitcoinネットワークの匿名性を危険に晒すために使用されることがある。実際に、悪意ある敵は、公開鍵をインターネットプロトコル(IP)アドレスにリンクすることがあり、ユーザにより提出された全部のトランザクションを追跡し得る。更に、IP情報は、該情報を、例えばインターネットフォーラム及びソーシャルメディアのような他の情報源と組み合わせることにより、現実のユーザのアイデンティティを取得するために使用することもできる。このような状況では、トランザクションの異なるセットについて複数の公開-秘密鍵ペアを生成すること、又は操作の匿名性を高めるための手段としてミキシングサービスに参加することは、成功しない可能性がある[1]。
【0031】
匿名化解除攻撃は、標準的に、アクティブなBitcoinノードに接続して送信されるトランザクションを監視する「スーパーノード」を用いて実行される。ネットワーク上での対称的な拡散により、IP公開鍵リンク付けにおいて30%の成功率が可能である[2]。主に使用されるアルゴリズムは、ピアツーピア(peer-to-peer(P2P))グラフ構造及び拡散に関する情報を利用する。
【0032】
通常、Bitcoinの又は他の暗号通貨のフローを追跡し、及び公開台帳を監視することにより、同一ユーザにより生成された複数のアドレスをリンクできる。この結果は、トランザクショングラフを分析し及びアドレスを一緒にクラスタ化することにより達成できる。
【0033】
匿名性は、アイデンティティ保護を提供するが依然として弱点及び場合によっては欠点を示すTor[3]のようなツールに依存する。実際に、中継システムは、トラフィック分析に対して脆弱な場合があり、それにより、Torへのユーザの「第1ホップ」リンク及びTorからユーザの通信相手への「最終ホップ」リンクが追跡されパケットをそう感づけるために使用され得る。更に、攻撃は、サービスの拒否を引き起こし、ユーザの匿名性を危険に晒し得る。
【0034】
Biryukov他[2]は、ユーザのペンネームを彼らのIPアドレスにリンクすることにより、P2Pネットワークを匿名化解除する方法を提示している。このソリューションは、クライアントの接続するノードのセットに依存し、クライアントアイデンティティ及びトランザクションの起源を一意に決定する。
【0035】
本願明細書では、Bitcoinユーザのトランザクションがネットワーク上で拡散する前に、ユーザが彼らのトランザクションを交換することを可能にすることにより、したがって、ユーザにより生成されたトランザクションのIPアドレスとトランザクション内のユーザのBitcoinアドレスとの間のリンクを曖昧にすることにより、ネットワーク層におけるユーザの匿名性を実施するプロトコルを提案する。本願明細書で詳述するように、n-DTEプロトコルは、参加者により生成されるコインのデポジット、及び返金及び補償方式が実施される方法が参加者間で交換されるトランザクションのブロックチェーンにおける承認に依存するように、彼らのメイントランザクションを変更することに依存する。
【0036】
その最も簡易な形式[4]では、DTEプロトコルの中で2人の参加者を考える。両方の参加者は、Bitcoinブロックチェーンに含めるために提出する前に、彼らが交換したいと望むメイントランザクション(Main Transaction)を生成する。そうするために、及び両方の参加者が彼らの役割を果たすこと、及びプロトコルが完了前に中断される場合に保護されることを補償するために、参加者は、デポジットトランザクションの中に資金をコミットし、彼らの元のトランザクションを変更して、彼らの返金が、交換されたトランザクションがネットワーク上で承認されることを条件とするようにしなければならない。
【0037】
私たちは、該プロトコルをn>2人の参加者へと拡張することを提案する。n-DTEプロトコルの中の異なるステップが、ここで詳述される。先ず、鍵生成及び参加者間の交換を説明する。次に、新しく生成された鍵及びアドレスを用いてデポジットトランザクション(Deposit Transaction)を構成する。参加者間で交換されているメイントランザクション(Main Transaction)の変更を説明する。次に、プロトコルの返金(Refund)及び補償(Compensation)方式を構成する。最後に、参加者間のトランザクションの交換及び参加者によるブロードキャストを説明する。
【0038】
<鍵生成及び交換>
参加者のメイントランザクションを交換するためにn-DTEプロトコルに参加しているn人の個人の集合{Ui|i∈[0,n-1]}が与えられると、参加者は、以下の方法で公開鍵を生成し交換する。
【0039】
各参加者Uiは、2つの秘密-公開鍵ペア(ki
1,Pi
1)及び(ki
2,Pi
2)を生成する。
【0040】
各参加者Uiは、もう1つの短命の(ephemeral)秘密-公開鍵ペア(yi,Qi)を生成し、公開鍵を発行してよい。
【0041】
参加者は、順序集合{U0,U1,...,Un-2,Un-1}を実現するためにランダム化される。参加者は、公開された鍵ペア(yi,Qi)を用いて暗号化チャネルを介して、彼らの近隣と通信できる。
【0042】
各参加者Uiは、2つの公開鍵Pi
1及びPi
2を、彼らの2人の最近接近隣と交換する。一例として、U0はP0
1及びP0
2をU1及びUn-1と交換し、一方でU1はP1
1及びP1
2をU0及びU2と交換する。
【0043】
各参加者Uiは、彼らの公開鍵、及び彼らの近隣により提供される公開鍵を用いて、Bitcoinアドレスのペアを生成する[ここで、私たちは、参加者により生成されたBitcoin公開鍵を示す;公開鍵Pに関連付けられたBitcoinアドレスAは、次式により与えられる:A=RIPEMD160(SHA256(P))]。
・Ui+1と共有されるマルチシグネチャアドレス:αi=2-2multisig(Pi
1,Pi+1
1)。
・Ui+1と共有されるDiffie-Hellmanシークレット:βi=Pi
2+ci-1,i×G、ここで、ci-1,i=H(ki
2×Pi-1
2)=H(ki-1
2×Pi
2)は、2人の参加者の間で共有されるシークレットである。H()は、耐衝突性ハッシュ関数である。
【0044】
一例として、U0は、以下の2つのアドレスを生成する。
・α0=2-2multisig(P0
1,P1
1)、及び、
・β0=P0
2+cn-1,0×G、ここで、cn-1,0==H(k0
2×Pn-1
2)=H(kn-1
2×P0
2)。
【0045】
【0046】
αiから導出されたアドレスへ送信される資金は、Ui及びUi+1の両者からの、彼らの秘密鍵、それぞれki
1及びki+1
1を用いる署名を必要とする。
【0047】
βiから導出されたアドレスへ送信される資金は、ki-1
2+H(ki-1
2×Pi
2)により与えられる新しい公開鍵に関連付けられた秘密鍵を用いる、Ui-1からの署名を必要とする。参加者Uiが公開鍵を生成し、Ui-1と共有することは容易であるが、後者は、秘密鍵を推測でき、従って、βiから導出されたアドレスへ送信されるトランザクションのUTXOに署名できる。
【0048】
参加者は、次に、彼らの新しく生成した公開鍵/アドレスを交換し、それらの有効性を検証して、これらを構成するために使用された公開鍵を知ることができる。纏めると、
図2に示すように、参加者U
iは、2つのアドレスを生成し、彼の左隣U
i-1と共有される2つのアドレス、及び彼の右隣U
i+1と共有される2つのアドレスを知る。
【0049】
参加者Uiは、彼又は彼女の生成した公開鍵βiに関連付けられた秘密鍵が分からないことに留意する。一方で、Uiだけが、彼の右隣Ui+1により生成された公開鍵βi+1を知っている。
【0050】
<デポジットトランザクション>
このプロトコルの目標は、n人の参加者が彼らのトランザクションを、ブロックチェーン上でブロードキャストする前に交換することであった。私たちは、メイントランザクションを、これらのトランザクションが以下のように交換されていると表す。
【0051】
n-DTEプロトコルを達成するよう、及び悪意ある参加者から正直な参加者を守るよう、参加者を奨励するために、私たちは、各参加者が任意の量のBitcoinをデポジットし、その返金が参加者による必要なタスクの完了に成功することを条件とすることを提案する。
【0052】
このようなデポジットは、種々の方法で生成できる。例えば、参加者は、彼らのデポジットを全て共通Bitcoinトランザクションの中で生成できる。或いは、各参加者は、彼の/彼女の個々のデポジットトランザクションを生成できる(しかしながら、これは、マイナーに支払われる料金が全体として多くなることを意味する)。以下では、参加者のデポジットを収集するための共通トランザクションを検討する。この選択は、該トランザクションの中のインプットとアウトプットとの間のリンクを不明瞭にするために、シャッフル技術の使用を示唆する。
【0053】
n人の参加者は、nインプット/nアウトプットのP2SHデポジットトランザクションを生成する。これは以下でDxと示され、彼らは全員、事前に合意された量xのBitcoinをコミットする。
【0054】
DxからUTXOは、2つのトランザクションセットを生成するために、後にプロトコルの中で使用される。
・1つは、返金トランザクションのセットであり、参加者が別の参加者にメイントランザクションをネットワーク上で正しくブロードキャストしたとき、Dxの中で生成されたデポジットの返金のためである。
・1つは、補償トランザクションのセットであり、参加者のメイントランザクションが特定の時間量の後にブロードキャストされない場合に、参加者を補償するためである。
【0055】
参加者U
iは、D
xの中の彼/彼女のデポジットをロックするスクリプトL
iを構成する。このスクリプトは、関連付けられたアウトプット量xのBitcoinを使用するための2つの選択肢を提供する。
・U
iのxのBitcoinを、それぞれU
i-1及びU
iがそれぞれ彼らの秘密鍵U
i-1
1及びU
i
1により署名することにより償還可能なアドレス(
図2のα
i-1)へ送信する。
・或いは、D
xがブロックチェーンに含まれた後に続く特定の時点ΔT
Eの後に、U
iにより所有されるアドレスへ送信する。U
iは、新しい(短命の)公開鍵(以下ではP
i
3と表す)を使用して、後者のアドレスを生成してよい。ロックタイム値は、将来の特定の時点で、メイントランザクションがBitcoinブロックチェーンに含まれることなくプロトコルが終了した場合に、資金がU
iにより償還可能なように選択される。ロックタイムパラメータは、オペコードOP_CHECKSEQUENCEVERIFYを用いて定められる。Bitcoinスクリプトシステムのためのこの新しいオペコード(OP_CHECKSEQUENCEVERIFY)は、BIP112で導入され、スクリプトの実行パスがアウトプットの使用された時代に基づき制限されるようにする(https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki))。
【0056】
O
iは、参加者U
iにより生成されたアウトプット(パラメータセット)を表す:O
i:{L
i,x}。U
iにより生成されたxのBitcoinのデポジットに対するロックスクリプトの一例が
図3に示される。
【0057】
ある参加者は、全てのアウトプットを集め、デポジットトランザクションDxを作る責任がある。以下では、U0を、アウトプットのセットを収集する参加者、及びDxに彼/彼女のインプットを追加して署名する最初の参加者として指名する。n-DTEプロトコルの参加者を外部攻撃から守るために、アウトプットのセットは、ある参加者から別の参加者へと転送される前に、参加者の公開鍵Qiを用いて暗号化される。Dxの中のインプットとアウトプットとの間のリンクを不明瞭にするために、私たちは、各参加者が、彼/彼女の右隣に渡す前に、アウトプットのセットをシャッフルすることを検討する。このように、インプットの順序は、Dxの中のアウトプットの順序と一致しない。代替として、私たちは、署名段階の間に、参加者の順序をランダム化し得る。
【0058】
アウトプットシャッフル処理は、CircleShuffleプロトコル[WP0388]に基づき、最初の参加者U
0が彼/彼女のアウトプットO
0を次の参加者の公開鍵Q
1により暗号化するとき、開始する。暗号化されたアウトプットアドレスは、従って、シャッフルされたアウトプットのセット(set of shuffled outputs (SSO))を含む。U
0はSSOをU
1に渡す。U
1は、SSOを、彼女の秘密鍵y
1を使用して解読し、彼女のアウトプットを追加し、アウトプットをシャッフルし、Q
2を用いてSSOを暗号化し、そしてそれをU
2へ転送する。この処理は、
図4で4人の参加者について図示され(n=3)、U
n-1に達するまで続く。ここで、nは参加者の人数である。
【0059】
Un-1のアウトプットアドレスがSSOに追加された後に、Un-1は、最終的なシャッフルを実行し、SSOをQ0で暗号化し、SSOを最初のユーザU0へ返送する。SSOの中のアウトプットアドレスのこの順列(permutation)は、アウトプットがデポジットトランザクションDxに含まれる最終的な順序を表す。
【0060】
U0は、彼女の秘密鍵y0を用いてSSOを解読し、デポジットトランザクションDxを生成する。U0は、彼/彼女のインプットを追加し、トランザクションに署名し、Dxを次の参加者へ転送する。各参加者は、彼/彼女の選んだアウトプットがトランザクションに含まれていることを確認し、SIGHASH_ANYONECANPAYフラグを有する彼/彼女のインプットに署名する。全ての参加者がDxに署名した後に、トランザクションは、最後の参加者により、ブロックチェーンに含まれるために提出される。
【0061】
図4は、4人の参加者について、D
xトランザクションの説明を示す。
{U
0,U
1,U
2,U
3}={Alice,Bob,Carol,Dave}
4人の参加者による説明を参照するとき、インデックス{0,1,2,3}を{A,B,C,D}に変更する。
・各参加者は、トランザクションD
xに署名し、事実上、参加者の公開鍵から導出したアドレスからxのBitcoinを使用する。公開鍵は、
図5では、P
i
0、i=0,...,3の代わりに、P
i
0、i={A,B,C,D}と表されることに留意する。
・各々のxのBitcoinは、新しいアドレスへ送信される(アウトプットはシャッフルされ、従って、インプットと、2人の参加者署名により又は1人の参加者署名により特定時点の後にアンロック可能なアウトプットの順序に留意する)。更に、
図3に示したロックスクリプトの中のインデックスi={0,1,2,3}をi={A,B,C,D}に変更する。
・OA/OB/OC/ODは、D
xの中のロックされた、Alice/Bob/Carol/Daveにより使用されるアウトプットを表す。
【0062】
デポジットトランザクションDxがブロックチェーン上で承認されたことを確認すると、参加者は、プロトコルの次の段階、つまり以下に詳述するように彼らのメイントランザクションの交換に入ることができる。彼らがΔTEの前にメイントランザクションの交換又はブロードキャストを完了しなかった場合、彼らはDxの中の彼らのデポジット、xのBitcoin、を回収し、プロトコルは終了する。
【0063】
<メイントランザクション交換>
n-DTEプロトコルは、参加者がメイントランザクション交換及びBitcoinネットワーク上でのブロードキャストを完了するよう奨励することを目的とする返金及び補償メカニズムに依存する。このようなメカニズムは、参加者が別の参加者により発行されたメイントランザクションをブロードキャストした後にのみ参加者に対する返金が利用可能であるという方法で、参加者によりコミットされたデポジットトランザクション内のロックされたコインの返金を制約することにより達成できる。そうするために、メイントランザクションをブロードキャストする責任のある参加者の返金トランザクションの中で使用される追加アウトプットを追加することにより、該メイントランザクションを変更することを提案する。
【0064】
私たちは、参加者のメイントランザクションのフォーマット/構造(ダストとは別のインプット/アウトプット、移転の量、ロックスクリプト)を制限することを望まないが、統一性を目的としてトランザクションは同様のサイズを有するべきであることを主張する。参加者により使用される量は、このプロトコルに関与するマイナー料金より多いが、任意のままである。以下では、簡単のために、各参加者は任意の量のBitcoinを、あるアドレスから別のアドレスへ、Pay-to-Public-Keyスクリプトを用いて移転することを望むと仮定する。
図6の説明では、例えば、Alice(Dave)が、mのBitcoin(pのBitcoin)を、公開鍵S
A(S
D)から導出したアドレスから、別の公開鍵R
A(R
D)から導出した別のアドレスへ移転したいと望むと仮定する。Aliceは、必ずしもmのBitcoinの受信者でなくてよい。
【0065】
参加者は、ダスト量mのBitcoin(数satoshi)に合意し、追加アウトプットを彼らのメイントランザクションに追加する。通常、Tx
iは、参加者Uiにより生成されたメイントランザクションを表し、i={0,1,2,3}、又は4人の参加者を有する説明ではi={A,B,C,D}である。
【0066】
一例として、第1参加者U0(又は図中のAlice)は、アウトプット量としてdを有し及びU1(又はBob)により前に生成された公開鍵を用いてPay-to-Public-Keyスクリプトの下でロックされた第2アウトプットを追加することにより、彼女のメイントランザクションTx
0(又はTx
A)を変更する:β1=P1
2+c0,1×G(又はβB=PB
2+cA,B×G)。Aliceは、トランザクションTx
Aに署名し、それをBobへ転送する。通常、参加者Uiは、彼/彼女のトランザクションTx
iに署名し、それを彼女の近隣Ui+1へ送信する。
【0067】
この処理は、各参加者が彼らの左の最近接近隣のトランザクションを受信するまで続く。
図6は、2つのトランザクションT
x
D及びT
x
Aの変更、及び最後(Dave)、最初(Alice)、及び2番目(Bob)の参加者の間での交換を示す。
【0068】
この時点で、参加者は、受信したメイントランザクションをネットワーク上にブロードキャストしない。
【0069】
彼らは、先ず、返金及び補償方式を準備する。
・返金方式は、彼/彼女が彼/彼女の左隣Ui-1のトランザクションTx
i-1をブロードキャストした後に、参加者Uiへの返金を保証する。
・補償方式は、プロトコルが完了せず、彼女のトランザクションTx
iが彼女の右隣Ui+1によりブロードキャストされず、期限までにブロックチェーンに含まれるために承認されなかった場合に、参加者を補償する。
【0070】
<返金トランザクション>
参加者U
iは、彼/彼女の左隣U
i-1により生成されたメイントランザクションT
x
i-1の処理中である。
図6に示すように、Aliceは、例えば、DaveのメイントランザクションT
x
Dの処理中である。
【0071】
参加者Uiは、デポジットトランザクションDxの中のOiへ送信されるUTXOと、Ui-1により生成されたメイントランザクションTx
i-1の中のβi-1へ送信されるダストとをインプットに用いて、彼/彼女の返金トランザクション、つまりRx
iを生成する。このように、Uiの返金は、ブロックチェーンに含めるために彼/彼女がUi-1のメイントランザクションTx
i-1を提出することに本質的に依存する。Uiは、彼/彼女の新しく生成された返金トランザクションRx
iを、それに(ki-1
1を用いて)部分的に署名しそれをUi返送するUi-1へ、送信する。この新しく生成されたトランザクションRx
iの中の2つのインプットは、以下のように、Ui及びUi-1の署名を要求することに留意する。
・インプットx(Oi):Ui及びUi-1のそれぞれの第1秘密鍵ki
1及びki-1
1を用いる、Ui及びUi-1の署名を要求する。
・インプットd(βi-1):Diffie-Hellmanシークレット共有方式を用いて取得された公開鍵に関連付けられた秘密鍵を用いる、Uiの署名だけを要求する。ki
2+ci-1,i、ここでci-1,i=H(ki
2×Pi-1
2)=H(ki-1
2×Pi
2)。
【0072】
図7は、デポジットトランザクションD
xのアウトプットO
BとAliceのメイントランザクションT
x
Aのアウトプットβ
Aとを用いてBobにより生成された返金トランザクションR
x
Bの構成を示す。Bobは、彼の返金トランザクションR
X
BをAliceへ送信し、Aliceはそれに署名しそれをBobへ返送する。この時点で、Bobは、トランザクションR
x
Bに署名するが、それをブロードキャストしない。彼がそうした場合、トランザクションは、β
Aへ送信されたBitcoinがこの時点で利用可能ではないので、拒否され得る。これらは、トランザクションT
x
Aがブロックチェーン上でブロードキャストされ承認されたときに、使用可能になる。
【0073】
<補償トランザクション>
補償トランザクションは、ある参加者が別の参加者のメイントランザクションをブロードキャストしない場合に対応するために生成される。私たちの例では、Bobが、AliceのメイントランザクションTx
Aをブロードキャストしない場合、Aliceは、Bobの不正について補償されるべきである。従って、Aliceは、デポジットトランザクションDxの中のBobにより使用されたxのBitcoin(OB)をインプットとして取り入れる補償トランザクションCx
Aを生成する。トランザクションCx
Aの中のアウトプットは、n-DTEプロトコルにおける全ての参加者により合意されたLockTime値ΔTSを含む。これは、プロトコルの参加者が、メイントランザクションをブロードキャストし、これらがネットワーク上で承認されるのを確認するために許容される最大時間を反映する。Aliceは、BobへCx
Aを送信し、BobはCx
Aに署名し、それをAliceへ返送する。
【0074】
通常、参加者Uiは、デポジットトランザクションDxの中のOi+1へ送信されるUTXOを用いて、彼/彼女自身の補償トランザクションを生成する。Uiは、新しく生成されたトランザクションCx
iをUi-1へ送信し、Ui-1は、Cx
iに署名し、それをUi返送する。Cx
iの中のインプットx(Oi+1)は、Ui及びUi+1のそれぞれの第1秘密鍵ki
1及びki+1
1を用いる、Ui及びUi-1の署名を要求する。
【0075】
<まとめ>
図9は、n=4のとき、参加者の間のメイン、返金、及び補償トランザクションの交換を纏めたものである。
・先ず、メイントランザクションが交換され、それらの作成者により、彼らの右側の最近接近隣へ送信される。
・次に、参加者は、返金トランザクションを作成し、これらを署名のために左側の最近接近隣へ送信する。この左側の最近接近隣の公開鍵は、デポジットトランザクションの中のUTXOに関連付けられたマルチシグネチャアドレスを生成するために使用されたものである。同時に、補償トランザクションが作成され、署名のために右側の最近接近隣へ送信される。この右側の最近接近隣の公開鍵は、デポジットトランザクションの中のUTXOに関連付けられたマルチシグネチャアドレスを生成するために使用されたものである。
・返金及び補償トランザクションに署名した後に、左及び右隣は、それぞれ、これらをメイントランザクションの作成者へ返送する。
【0076】
図10は、n-DTEプロトコルにおける前述のトランザクションの説明、それらの構造、及び内部依存性を提示する。このプロトコルのために生成された全てのトランザクションが
図10に示されるものではないことに留意する。最初(Alice)及び最後(Dave)の参加者のメイントランザクション、並びに最初の2人の参加者Alice及びBobのための返金及び補償トランザクションだけが示される。
【0077】
<トランザクションのブロードキャスト>
適切な返金及び補償トランザクションにより、各参加者Uiは、ネットワーク上に次の2つのトランザクションCx
i及びTx
i-1を、その順序でブロードキャストできる。ブロックチェーン上でTx
i-1が承認されると、参加者Uiは、Rx
iをブロードキャストして、実質的に彼/彼女のデポジットを請求する。時間ΔTSの経過後に、Uiが彼/彼女のメイントランザクションTx
iがネットワーク上で承認されたことを確認しない場合、彼/彼女は補償トランザクションCx
iの中のUTXOを使用でき、事実上、Ui+1により生成されたデポジットを請求する。他方で、ΔTSの前に、Uiが彼/彼女のメイントランザクションがブロックチェーンで承認されたことを知った場合、Ui+1は当然にRx
i+1をブロードキャストし、従って、Cx
i及びRx
i+1の両方に含まれるUTXO Oi+1は既に使用されているので、Cx
iを無効化する。
【0078】
図11は、n-DTEプロトコルのタイムラインを纏めたものである。
・段階1は、Bitcoinネットワーク上でのデポジットトランザクションD
xのブロードキャストにより終了する。
・段階2は、参加者の間のメイントランザクション交換、返金及び補償トランザクションの生成、並びにBitcoinブロックチェーンに含むための後者の提出、を含む。
・段階3は、各参加者の右隣のメイントランザクションをブロードキャストするために、各参加者に割り当てられた期間に対応する。
・段階4は、ΔT
Sの前の時間期間を表し、その間、参加者U
iがブロックチェーン上でのT
x
i-1の承認を確認した場合、彼/彼女は彼/彼女の返金トランザクションR
x
iをブロードキャストする。
・段階5は、ΔT
SとΔT
Eとの間の期間に対応し、その間、参加者が彼らのメイントランザクションがBitcoinブロックチェーン上で承認されたことを確認しない場合、参加者は、彼らの補償トランザクションの中のUTXOを使用できる。
・段階6は、ΔT
Eの後の期間に対応し、その後、段階2で何かが上手く行かなかった場合、n-DTEプロトコルは終了してよく、参加者は、当然に彼らのデポジットを回収できる。
【0079】
図12は、本願明細書に記載されるようなn-DTEプロトコルの一般的概要を示す。
【0080】
<情報交換>
n-DTEプロトコルは、n人の参加者の間で公開情報を交換するためのセキュアな方法に依存する。プロトコルにおける参加者は、彼らの公開鍵を交換し、2-of-2マルチシグネチャアドレス及び新しい公開鍵を、Diffie-Hellmanシークレット共有方式を用いて生成する。彼らは、更に彼らのメイントランザクションをブロードキャストするために、及び署名のためにプロトコルの中で生成された他のトランザクション(返金及び補償トランザクション)を交換する。
【0081】
明示的に言及しないが、私たちは、プロトコルの中で生成される異なるトランザクションの間のリンクを不明瞭にするために、n-DTEプロトコルの中で構築されるトランザクションの中で使用される(公開鍵に基づく及びマルチシグネチャアドレス)アドレスを生成するときに、各公開鍵を1回だけ使用することを推奨する。
【0082】
更に、私たちは、メッセージの受信者の公開鍵を用いて、参加者の間で送信される各メッセージ(公開鍵、トランザクション、アドレス)を暗号化することを提唱する。
【0083】
各参加者Uiは、ネットワーク上で3つのトランザクションを送信する。
・Tx
i-1:Ui-1により生成されたメイントランザクション。
・Cx
i:Ui+1が割り当てられた時間内にTx
iをブロードキャストしない場合の、Uiのための補償トランザクション。
・Rx
i:ブロックチェーン上でのTx
i-1の承認後に提出される、Uiのための返金トランザクション。
【0084】
攻撃者は、これらのトランザクションの中で使用されるアドレスを、ユーザUiのIPアドレスによりリンクすることに成功するかも知れないが、メイントランザクションがその元の作成者によりネットワークへ送信されないので、トランザクションの作成者のユーザのアドレスとユーザのIPアドレスとの間のリンクを不明瞭にするという所望の効果が達成される。デポジットトランザクションDxの中のアウトプットの順序がプロトコルの参加者の順序を開示した場合、外部攻撃者は、トランザクションとそれらの元の作成者との間のリンクを再構成するのに十分な知識を取得できるかも知れない。主にその理由から、私たちは、Dxの中のインプットとアウトプットとの間のリンクを不明瞭にするために、Dxの中のアウトプットをシャッフルする方法を説明する。代替として、前述のように、参加者により生成されたデポジットは、個々のデポジットトランザクションの中で行われ得る。
【0085】
<結論>
本願明細書は、n-直接トランザクション交換プロトコル(n-DTE)を提案する。該プロトコルは、トランザクションの提出及びそれらのネットワーク内での拡散の前に、オフチェーンでトランザクションを直接交換するためのソリューションを提供する。これは、ユーザにより生成されたトランザクションのIPアドレスとトランザクションの中のユーザのビットコインアドレスとの間のリンクを不明瞭にすることを目的とする。従って、ネットワーク上でのユーザの匿名性を実施する。
【0086】
トランザクション交換は、メイントランザクションのアウトプットに僅かな量(ダスト、dust)のBitcoinを追加し、及びこのダスト及び参加者により生成されたデポジットを含む返金トランザクションを構成することにより、達成される。これは、参加者が、彼らが別の参加者のメイントランザクションをブロードキャストした後に、彼らのデポジットを請求することを可能にする。
【0087】
このプロトコルの中で割り当てられた時間の間に参加者のメイントランザクションがブロックチェーンに含めるために提出された、該参加者を補償するために、補償方式も実施される。
【0088】
<システム概要>
図13を参照すると、本開示の少なくとも一実施形態を実施するために使用され得るコンピューティング装置2600の説明のための簡略ブロック図が提供される。種々の実施形態で、コンピューティング装置2600は、1つ以上のトランザクションを実施する1つ以上のノード又はサーバ又は他の電子装置のような、上述の及び図示の装置又はシステムのうちのいずれかを実施するために使用されてよい。従って、コンピューティング装置2600は、ポータブルコンピューティング装置、パーソナルコンピュータ、又は任意の電子コンピューティング装置であってよい。
図13に示すように、コンピューティング装置2600は、主メモリ2608及び永久記憶装置2610を含む記憶サブシステム2606と通信するよう構成され得る1つ以上のレベルのキャッシュメモリ及びメモリ制御部(集合的に2602とラベル付けされる)を備える1つ以上のプロセッサを含んでよい。主メモリ2608は、図示のように、動的ランダムアクセスメモリ(DRAM)2618及び読み出し専用メモリ(ROM)2620を含み得る。記憶サブシステム2606及びキャッシュメモリ2602は、本開示で説明されたようなトランザクション及びブロックに関連付けられた詳細事項のような情報の記憶のために使用されてよい。プロセッサ2602は、本開示で説明されたような任意の実施形態のステップ又は機能を提供するために利用されてよい。
【0089】
プロセッサ2602は、1つ以上のユーザインタフェース入力装置2612、1つ以上のユーザインタフェース出力装置2614、及びネットワークインタフェースサブシステム2616とも通信できる。
【0090】
バスサブシステム2604は、コンピューティング装置2600の種々のコンポーネント及びサブシステムが意図した通りに互いに通信できるようにするメカニズムを提供してよい。バスサブシステム2604は、単一のバスとして概略的に示されるが、バスサブシステムの代替の実施形態は、複数のバスを利用してよい。
【0091】
ネットワークインタフェースサブシステム2616は、他のコンピューティング装置及びネットワークへのインタフェースを提供してよい。ネットワークインタフェースサブシステム2616は、幾つかの実施形態では、コンピューティング装置2600の他のシステムからデータを受信し及びそれへデータを送信するインタフェースとして機能してよい。例えば、ネットワークインタフェースサブシステム2616は、データ技術者が、装置をネットワークに接続することを可能にする。その結果、データ技術者は、データセンタのような遠隔地にいがなら、データを装置へ送信し、データを装置から受信できる。
【0092】
ユーザインタフェース入力装置2612は、キーボード、統合型マウス、トラックボール、タッチパッド、又はグラフィックタブレットのような指示装置、スキャナ、バーコードスキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンのようなオーディオ入力装置、及び他の種類の入力装置のような、1つ以上のユーザ入力装置を含んでよい。通常、用語「入力装置」の使用は、コンピューティング装置2600に情報を入力する全ての可能な種類の装置及びメカニズムを含むことを意図する。
【0093】
1つ以上のユーザインタフェース出力装置2614は、ディスプレイサブシステム、プリンタ、又は音声出力装置のような非視覚ディスプレイを含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、又はプロジェクションのような平面装置、又は他のディスプレイ装置を含んでよい。通常、用語「出力装置」の使用は、コンピューティング装置2600から情報を出力する全ての可能な種類の装置及びメカニズムを含むことを意図する。1つ以上のユーザインタフェース出力装置2614は、例えば、ユーザインタフェースを提示して、ここに記載したプロセス及び変形を実行するアプリケーションとのユーザ相互作用が適切であるとき、そのような相互作用を実現するために使用されてよい。
【0094】
記憶サブシステム2606は、本開示の少なくとも1つの実施形態の機能を提供する基本プログラミング及びデータ構造を記憶するコンピュータ可読記憶媒体を提供してよい。アプリケーション(例えば、プログラム、コードモジュール、命令)は、1つ以上のプロセッサにより実行されると、本開示の1つ以上の実施形態の機能を提供し、記憶サブシステム2606に格納されてよい。これらのアプリケーションモジュール又は命令は、1つ以上のプロセッサ2602により実行されてよい。記憶サブシステム2606は、更に、本開示に従い使用されるデータを格納するレポジトリを提供する。例えば、主メモリ2608及びキャッシュメモリ2602は、プログラム及びデータのための揮発性記憶を提供できる。永久記憶装置2610は、プログラム及びデータの永久(不揮発性)記憶を提供でき、磁気ハードディスクドライブ、取り外し可能媒体に関連付けられた1つ以上のフロッピディスクドライブ、取り外し可能媒体に関連付けられた1つ以上の光ドライブ(例えば、CD-ROM、又はDVD、又はBlue-Ray)ドライブ、及び他の同様の記憶媒体を含んでよい。このようなプログラム及びデータは、本開示に記載した1つ以上の実施形態のステップを実行するためのプログラム、及び本開示に記載したトランザクション及びブロックに関連付けられたデータを含み得る。
【0095】
コンピューティング装置2600は、ポータブルコンピュータ装置、タブレットコンピュータ、ワークステーション、又は後述する任意の他の装置を含む種々のタイプのものであってよい。さらに、コンピューティング装置2600は、1つ以上のポート(例えば、USB、ヘッドフォンジャック、光コネクタ、等)を通じてコンピューティング装置2600に接続可能な別の装置を含み得る。コンピューティング装置2600に接続され得る装置は、光ファイバコネクタを受けるよう構成される複数のポートを含んでよい。したがって、この装置は、光信号を、処理のために装置を接続するポートを通じてコンピューティング装置2600に送信される電気信号に変換するよう構成されてよい。コンピュータ及びネットワークの絶えず変化する特性により、
図13に示したコンピューティング装置2600の説明は、装置の好適な実施形態を説明する目的の特定の例としてのみ意図される。
図13に示したシステムより多くの又は少ないコンポーネントを有する多くの他の構成が可能である。
【0096】
<範囲>
上述の実施形態は、本開示を限定するのではなく、説明すること、及び当業者は添付の特許請求の範囲により定められる本開示の範囲から逸脱することなく多くの代替的実施形態を考案できることに留意すべきである。
【0097】
特許請求の範囲において、括弧内の任意の参照符号は、請求項を限定することを意図しない。用語「有する」及び「含む」(comprising、comprises)等は、任意の請求項又は明細書全体に列挙されたもの以外の要素またはステップの存在を排除しない。本願明細書では、「有する」は「有する又は構成される」を意味し、「含む」は「含む又は構成される」を意味する。要素の単数の参照は、該要素の複数の参照を排除しない。逆も同様である。本開示は、幾つかの別個の要素を含むハードウェアにより、及び適切にプログラムされたコンピュータにより、実装できる。幾つかの手段を列挙する装置クレームでは、これらの手段のうちの幾つかは、1つの同じハードウェアアイテムにより具現化されてよい。単に特定の機能が相互に異なる従属請求項に記載されるという事実は、これらの手段の組み合わせが有利に使用されないことを示さない。
【0098】
<列挙される例示的な実施形態(Enumerated Example Embodiments(EEE))>
(EEE1) n>2人の参加者の間でブロックチェーントランザクションを交換し、後にブロックチェーン上に記憶するために該ブロックチェーントランザクションをブロックチェーンネットワーク上にブロードキャストするための、コンピュータにより実施される方法であって、
暗号鍵及び関連するブロックチェーンアドレスを生成し、参加者の間で交換するステップと、
参加者の間で交換されるべき前記ブロックチェーントランザクションの各々を、前記トランザクションをブロードキャストすることを担う参加者により請求される返金アウトプットを各ブロックチェーントランザクションに含めることにより、変更するステップと、
前記暗号鍵及び前記関連するブロックチェーンアドレスを用いて1つ以上のデポジットトランザクションを構成し、前記1つ以上のデポジットトランザクションを前記ブロックチェーンに提出するステップであって、前記1つ以上のデポジットトランザクションは、別の参加者にブロックチェーントランザクションを正しくブロードキャストする参加者に返金するため、及び彼らのブロックチェーントランザクションが正しくブロードキャストされなかった場合に参加者を補償するために構成される、ステップと、
前記参加者の間で前記変更されたブロックチェーントランザクションを署名し交換するステップと、
前記1つ以上のデポジットトランザクションの前記アウトプット及び前記変更されたブロックチェーントランザクションの前記返金アウトプットをインプットのために使用して、返金トランザクションを構成するステップと、
前記1つ以上のデポジットトランザクションの前記アウトプットをインプットのために使用して、補償トランザクションを構成するステップと、
前記補償トランザクション及び前記変更されたブロックチェーントランザクションをブロードキャストするステップと、
前記ブロックチェーン上で前記変更されたブロックチェーントランザクションを確認すると、前記返金トランザクションをブロードキャストするステップであって、参加者の変更されたブロックチェーントランザクションが前記ブロックチェーン上で確認されない場合、前記参加者は前記補償トランザクション内の関連する未使用アウトプットを請求する、ステップと、
を含むコンピュータにより実施される方法。
(EEE2) 暗号鍵及び関連するブロックチェーンアドレスを生成し、参加者の間で交換するステップは、
各参加者が、2つの秘密-公開鍵ペア(ki
1,Pi
1)及び(ki
2,Pi
2)を生成し、
前記参加者が、順序集合{U0,U1,...,Un-2,Un-1}を実現するためにランダム化され、
各参加者Uiは、前記2つの公開鍵Pi
1及びPi
2を2人の他の参加者(Un-1及びUn+1)と交換し、
各参加者Uiは、前記2人の他の参加者により提供される彼らの公開鍵Pi
1及びPi
2を用いて、ブロックチェーンアドレスのペア(αi,βi)を生成し、
各参加者Uiは、ブロックチェーンアドレスの前記ペア(αi,βi)を前記2人の他の参加者と交換すること、
を含む、EEE1に記載のコンピュータにより実施される方法。
(EEE3) 各参加者により生成された前記ブロックチェーンアドレスのうちの1つ(αi)は、前記参加者(Ui)及び別の参加者(Ui+1)の両者からの署名を要求する、EEE1又は2に記載のコンピュータにより実施される方法。
(EEE4) 各参加者(Ui)により生成された前記ブロックチェーンアドレスのうちの1つ(βi)は、別の参加者(Ui-1)からの署名だけを要求する、EEE1~3のいずれか一項に記載のコンピュータにより実施される方法。
(EEE5) 各参加者(Ui)は、秘密-公開鍵ペア(yi,Qi)を生成し、前記公開鍵を発行し、前記参加者は、前記鍵ペア(yi,Qi)を用いて暗号化チャネルを介して互いに通信できる、EEE1~4のいずれか一項に記載のコンピュータにより実施される方法。
(EEE6) 前記1つ以上のデポジットトランザクションは、前記1つ以上のデポジットトランザクションのアウトプットがシャッフルされる又は前記1つ以上のデポジットトランザクションのインプットに対してランダム化されるように、構成される、EEE1~5のいずれか一項に記載のコンピュータにより実施される方法。
(EEE7) 前記参加者は、彼らのデポジットを共通デポジットトランザクションの中で生成する、EEE1~6のいずれか一項に記載のコンピュータにより実施される方法。
(EEE8) 各参加者は、個々のデポジットトランザクションを生成する、EEE1~6のいずれか一項に記載のコンピュータにより実施される方法。
(EEE9) 前記デポジットトランザクションは、P2SH(Pay To Script Hash)デポジットトランザクションである、EEE1~8のいずれか一項に記載のコンピュータにより実施される方法。
(EEE10) 各デポジットは、前記参加者により生成され交換された前記ブロックチェーンアドレスのうちの1つへ、又は時間ΔTEの後に、彼らのブロックチェーントランザクションが前記ブロックチェーン上で承認されない場合に、前記デポジットを生成した前記参加者のブロックチェーンアドレスへ、送信されるよう構成される、EEE1~9のいずれか一項に記載のコンピュータにより実施される方法。
(EEE11) 前記参加者のための前記デポジットトランザクションは、前記参加者のうちの1人により構成される、EEE1~10のいずれか一項に記載のコンピュータにより実施される方法。
(EEE12) 交換されるべき前記ブロックチェーントランザクションの各々を変更するステップは、別の参加者により提供された前記公開鍵で前記返金アウトプットをロックするステップを含み、前記変更されたトランザクションは、署名され、前記他の参加者へ送信される、EEE1~11のいずれか一項に記載のコンピュータにより実施される方法。
(EEE13) 各参加者Uiは、インプットのために、前記1つ以上のデポジットトランザクションの中のアウトプットOi、及び参加者Ui-1により生成された前記ブロックチェーントランザクションTx
i-1の中の前記公開アドレスβi-1へ送信される前記返金アウトプットを使用して、彼らの返金トランザクションRx
iを構成して、参加者Uiの返金が、彼らが参加者Ui-1のブロックチェーントランザクションTx
i-1を前記ブロックチェーンに含めるために提出することに依存するようにする、EEE1~12のいずれか一項に記載のコンピュータにより実施される方法。
(EEE14) 新たに生成されたトランザクションRx
iの中の2つのインプットは、Ui及びUi-1の署名を要求し、以下の通りである:
インプットx(Oi)が、参加者Ui及び参加者Ui-1の署名を要求し、及び
インプットd(βi-1)が、Uiの署名だけを要求する、
EEE13に記載のコンピュータにより実施され方法。
(EEE15) 参加者Uiは、彼らの返金トランザクションRx
iを参加者Ui-1へ送信し、前記参加者Ui-1は、該返金トランザクションRx
iに署名して参加者Uiに返送し、前記参加者Uiは、次に前記トランザクションRx
iに署名する、EEE13又は14に記載のコンピュータにより実施され方法。
(EEE16) 各参加者Uiは、前記1つ以上のデポジットトランザクションの中のOi+1へ送信される前記アウトプットを用いて彼らの補償トランザクションCx
iを構成し、参加者Uiは、新たに生成されたトランザクションCx
iを参加者Ui+1へ送信し、参加者Ui+1は、Cx
iに署名して参加者Uiへ戻し、Cx
iの中のインプットx(Oi+1)はUi及びUi+1の両者の署名を要求する、EEE1~15のいずれか一項に記載のコンピュータにより実施され方法。
(EEE17) 前記補償トランザクションは、前記参加者が前記交換されたブロックチェーントランザクションをブロードキャストし及び該ブロックチェーントランザクションがブロックチェーンネットワーク上で承認されたと分かるために許容される最大時間を定める時間ΔTSの間、ロックされるアウトプットを有する、EEE1~16のいずれか一項に記載のコンピュータにより実施される方法。
(EEE18) 前記補償トランザクション及び前記ブロックチェーントランザクションをブロードキャストするステップは、各参加者Uiが、2つのトランザクションCx
i及びTx
i-1をその順序でブロードキャストすることを含む、EEE1~17のいずれか一項に記載のコンピュータにより実施される方法。
(EEE19) 前記ブロックチェーントランザクションが前記ブロックチェーン上で承認されると、前記返金トランザクションをブロードキャストするステップは、各参加者Uiが、返金トランザクションRx
iをブロードキャストし、それにより彼らのデポジットを請求することを含む、EEE1~18のいずれか一項に記載のコンピュータにより実施される方法。
(EEE20) 参加者は、彼らのブロックチェーントランザクションが、時間ΔTSの後にブロックチェーン上で承認されないとき、前記補償トランザクションの中の未使用アウトプットを請求できるだけである、EEE1~19のいずれか一項に記載のコンピュータにより実施される方法。
(EEE21) コンピュータ実行可能命令を含むコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、実行されると、1つ以上のプロセッサを、EEE1乃至20のいずれか一項に記載の方法を実行するよう構成する、コンピュータ可読記憶媒体。
(EEE22) 電子装置であって、
インタフェース装置と、
前記インタフェース装置に結合された1つ以上のプロセッサと、
前記1つ以上のプロセッサに結合されたメモリであって、前記メモリはコンピュータ実行可能命令を格納し、前記コンピュータ実行可能命令は、実行されると、前記1つ以上のプロセッサを、EEE1乃至20のいずれか一項に記載の方法を実行するよう構成する、メモリと、
を含む電子装置。
(EEE23) ブロックチェーンネットワークのノードであって、前記ノードは、EEE1~20のいずれか一項に記載の方法を実行するよう構成されるノード。
【0099】
参考文献
[1]Venkatakrishnan, S.B., Fanti, G. and Viswanath, P., 2017. Dandelion: Redesigning the Bitcoin Network for Anonymity. arXiv preprint arXiv:1701.04439. https://arxiv.org/pdf/1701.04439.pdf
[2]Biryukov, A., Khovratovich, D., & Pustogarov, I. (2014, November).Deanonymisation of clients in Bitcoin P2P network.In Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security (pp.15-29).ACM.https://arxiv.org/pdf/1405.7418.pdf
[3]Dingledine, R., Mathewson, N., & Syverson, P. (2004).Tor:The second-generation onion router.Naval Research Lab Washington DC.
[4]Ron, D., & Shamir, A. (2013, April). Quantitative analysis of the full bitcoin transaction graph. In International Conference on Financial Cryptography and Data Security (pp. 6-24). Springer, Berlin, Heidelberg.
[5]Chakravarty, S., Stavrou, A., & Keromytis, A. D. (2008, November). Identifying proxy nodes in a Tor anonymization circuit. In Signal Image Technology and Internet Based Systems, 2008. SITIS'08. IEEE International Conference on (pp. 633-639). IEEE. http://www.cs.columbia.edu/~sc2516/papers/septis_paper.pdf
[6]Shah, D., & Zaman, T .(2012, June). Rumor centrality: a universal source detector. In ACM SIGMETRICS Performance Evaluation Review (Vol. 40, No. 1, pp. 199-210). ACM. ftp://ftp-sop.inria.fr/maestro/Sigmetrics-Performance-2012-papers-and-posters/p199.pdf
[7]Shah, D., & Zaman, T. (2011). Rumors in a network: Who's the culprit? IEEE Transactions on information theory, 57(8), 5163-5181. http://snap.stanford.edu/nipsgraphs2009/papers/zaman-paper.pdf
[8]https://news.bitcoin.com/dandelion-bitcoin-anonymize-transaction-broadcasts/
【外国語明細書】