導入

ビットコインはデジタル現金とみなされることが多いですが、これには疑問の余地があります。アリスがボブに 10 ドルを現金で支払った場合、ボブはその現金がどこから来たのかを知る方法がありません。ボブが 10 ドルをキャロルに送金したとき、キャロルはその 10 ドルが元々アリスからのものであることを知る由がありません。

しかし、ビットコインの本質的な公共性により、状況は異なります。特定のトークン (未使用のトランザクション出力、正確には UTXO) の履歴は、誰でも見ることができます。これは、取引金額と参加者の名前を請求書に書き込むのとよく似ています。

ただし、パブリック アドレスは匿名にすることができるため、ユーザーは自分の身元を簡単に隠すことができます。しかし、ビットコインはその痕跡を完全に隠すことはできません。ブロックチェーンの分析テクノロジーはますます成熟しており、アドレスと ID を効果的に照合できるようになりました。他の監視技術に加えて、専用の組織は暗号通貨ユーザーの匿名化を解除することもできます。この問題を解決するために、アンバンドル取引のためのさまざまな技術が市場に登場しました。


トークンミキシングとは何ですか?

大まかに言えば、トークンミキシングとは、スワップを通じて資金を混合するすべての操作を指します。ただし、暗号通貨の世界では、コインの混合はサードパーティによって提供されます。サービスプロバイダーは通常、ユーザーのトークンを (少額の手数料とともに) 受け取り、その後、送信されたトークンとは関係のないいくつかのトークンを返します。このようなサービスは、タンブラーまたはコイン ミキサーとも呼ばれます。

もちろん、このような集中型サービスのセキュリティと匿名性には疑問があります。ユーザーには、ミキサーが資金を返すか、返されたトークンが何らかの形で汚染されていないという保証はありません。さらに、ミキサーを使用する場合、IP アドレスとビットコイン アドレスも第三者によって記録される可能性があります。トークンの混合の結果、ユーザーは無関係なトークンを取得することを期待して自分の資金の管理を放棄することになります。

現在、ユーザーに大きな拒否の余地を与える「CoinJoinトランザクション」と呼ばれる新しいスキームが存在します。言い換えれば、CoinJoin を使用すると、ユーザーと過去の取引とのつながりを示す正確な証拠が消去されます。多くの CoinJoin ソリューションは、ミキサーの分散型代替品となります。コーディネーターが介入することは可能ですが、ユーザーは資金管理の権利を放棄する必要はありません。


コインジョインとは何ですか?

CoinJion 取引は 2013 年に登場し、ビットコイン開発者のグレゴリー・マクスウェルによって最初に提案されました。その投稿の中で、彼はそのような取引の構造と、プロトコルを変更せずに高いプライベートリターンを得る方法を簡単に紹介しました。

基本的に、CoinJoin トランザクションには複数のユーザーからの入力が組み込まれます。このテクノロジーがどのように機能するかを説明する前に、まず基礎となるトランザクションの構造を理解しましょう。

ビットコイントランザクションはインプットとアウトプットで構成されます。ユーザーがトランザクションを行う場合、UTXO を入力として受け取り、出力を指定し、入力に署名します。各入力は独立して署名されますが、ユーザーは複数の出力 (異なるアドレスをターゲットとする) を設定できることに注意してください。


image of an example transaction with four inputs and two outputs


4 つの入力 (それぞれ 0.2 BTC) と 2 つの出力 (0.7 BTC と 0.09 BTC) で構成される特定のトランザクションを例として、それについて一連の仮定を立てることができます。まず支払いが行われるのを確認します。送信者は出力の 1 つを誰かに送信し、その後お釣りを受け取ります。このトランザクションは 4 つの入力を使用するため、より大きな出力を受信者に送信する必要があります。マイナーに料金を支払う必要があり、出力では 0.01 BTC が失われることに注意してください。

送信者は、大きな UTXO を作成して、小さな入力を組み合わせて 0.7 BTC の目標出力を達成したい場合もあります。

各入力が独立して署名されていると仮定することもできます。このトランザクションでは、最大 4 つの当事者が入力に署名します。これがまさに CoinJoin の仕組みです。


CoinJoinはどのように機能しますか?

中心的な考え方は、複数の当事者が協力してトランザクションを作成し、各当事者が入力と期待される出力を提供するということです。すべての入力がブレンドされると、他の人は出力とユーザーの間の対応関係を識別できなくなります。次の図を見てみましょう。


image of an example coinjoin


図に示すように、4 人の参加者がトランザクション間の相関関係を壊したいと考えています。これらは相互に調整して (または専用のコーディネーターを通じて)、カウントしたい入力と出力を宣言します。​

コーディネーターはこのすべての情報を取得してトランザクションに組み込み、ネットワークにブロードキャストする前にすべての参加者に署名してもらいます。ユーザーが署名すると、トランザクションは無効になるまで変更できません。したがって、コーディネーターは資金を盗むことができません。​

このトランザクションは、コイン混合のブラックボックスとして機能します。新しい UTXO を作成するために最初の UTXO を破棄することを忘れないでください。新旧の UTXO 間の唯一の接続はトランザクション自体であり、もちろん参加者を区別することはできません。理想的な状況は、入力を提供する参加者がいて、出力結果の所有者である可能性があることを知っていることだけです。

そうであっても、100%確信を持つことはできません。上記のトランザクションを見て、参加者が 4 人であると誰が確信できるでしょうか。それとも、4 つのアドレスに資金を送金しているのは 1 人だけですか?それとも、2 人がそれぞれ 2 回購入し、各アドレスに 0.2 BTC が付与されますか? 4 人が新たな参加者に資金を送金したり、その資金が個人に還流した可能性もあります。具体的な状況を判断することはできません。


「否認」によるプライバシーの保護

CoinJoin 実装の出現は、トランザクション分析方法に疑問を投げかけるのに十分でした。多くの場合、CoinJoin が発生したと推測できますが、出力所有者を特定できません。このテクノロジーがより一般的になるにつれて、すべての入力が同じユーザーによって所有されているという前提が徐々に弱まってきます。広範で包括的なエコシステムにおいて、プライバシーは劇的に改善されました。

上の例では、匿名のトランザクション セットに 4 人の入力所有者がおり、出力所有者はこれら 4 人のいずれかになる可能性があると想定しています。匿名性セットが大きくなるほど、トランザクションと元の所有者との間の対応関係が見つかる確率は低くなります。幸いなことに、最近の CoinJoin スキームにより、数十人のユーザーがトラストレスな方法で入力を融合できるようになり、「否認可能性」が大幅に向上しました。最近、CoinJoin は数百件の取引の実行に成功しました。


要約する

プライバシーに細心の注意を払うユーザーにとって、通貨混合は非常に効果的な補助手段です。機密取引などの提案されているプラ​​イバシー アップグレードとは異なり、このテクノロジーは既存のプロトコルと互換性があります。

サードパーティの誠実さと効果的な方法を信頼するユーザーにとって、通貨混合サービスはシンプルで便利です。検証可能なソリューションまたは非管理ソリューションを好むユーザーにとって、CoinJoin は優れた選択肢です。技術に精通したユーザーは、手動またはソフトウェア ツールを使用して、より複雑なメカニズムを抽象化できます。今日、プライバシーの必要性が高まるにつれ、このようなツールは市場でますます人気が高まるでしょう。