コンテンツ

  • 入り口

  • コインミキシングとは何ですか?

  • CoinJoinとは何ですか?

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

  • 否認によるプライバシー

  • 最新のアイデア


入り口

ビットコインはよくデジタル通貨と呼ばれますが、これは議論の余地のある比較です。アリスがボブに現金で 10 ドルを支払った場合、ボブはそのお金がどこから来たのか知りません。後でボブがそのお金をキャロルに渡したとしても、キャロルはアリスが最初からお金を持っていたとは推測できません。

ビットコインはその公共性により異なります。特定のコインの履歴(つまり、未使用のトランザクション出力、つまり UTXO)は、誰でも簡単に調べることができます。このプロセスは、ビットコインが使用されるたびに請求書に取引金額と受取人の名前を書き込むことに似ています。

ただし、パブリック アドレスに名前が存在しないため、ユーザーの身元が簡単に明らかにされることはありません。ただし、ビットコインは完全にプライベートではありません。ブロックチェーン分析はより洗練されており、アドレスと ID をよりうまく結び付けることができています。監視技術に加えて、この目的のために特別に機能するユニットは、暗号通貨ユーザーの身元を明らかにすることもできます。これを防ぐために、トランザクション接続を中断する技術が長年にわたって登場してきました。


コインミキシングとは何ですか?

一般的に、コインミキシングとは、資金を他の資金と交換することで資金を偽装することを目的とした取引を指します。しかし、暗号通貨の世界では、サードパーティが提供するサービスを指すときにコインミキシングがよく使われます。サービスプロバイダーはユーザーのコインを収集し(それに少額の取引手数料を加えます)、送信されたコインと関係のない他のコインをユーザーに返します。これらのサービスは、タンブラーまたはブレンダーとも呼ばれます。

もちろん、このような集中型サービスのセキュリティとプライバシーについてはいくつかの疑問があります。ミキサーがユーザーのお金を返金するという保証や、返されたコインに問題のある取引履歴がないという保証はありません。ミキサーを使用する際に考慮すべきもう 1 つの点は、IP とビットコイン アドレスがサードパーティによって記録される可能性があることです。最終的に、ユーザーは、切断されたコインを受け取ることを期待して、自分の資金を他の人に預けます。

より興味深いアプローチは CoinJoin トランザクションです。これは、かなりの妥当性のある否認を作成します。言い換えれば、CoinJoin トランザクションが行われた後は、ユーザーとこのユーザーの以前のトランザクションとの間の接続を決定的に確立する証拠は作成できません。多くの CoinJoin ソリューションは、ミキサーのより分散化された代替手段を提供します。ユーザーは資金の管理を放棄する必要はありませんが、コーディネーターがプロセスに関与する場合があります。


CoinJoinとは何ですか?

CoinJoin トランザクションは、2013 年にビットコイン開発者のグレゴリー・マクスウェルによって初めて導入されました。彼の記事の中で、彼はこれらのトランザクションがどのように構造化されているか、そしてプロトコルに変更を加えずにプライバシーの大規模な増加からどのように恩恵を受けることができるかについて簡単に述べています。

CoinJoin の本質は、さまざまなユーザーからの入力の組み合わせを 1 つのトランザクションに組み込むことです。その方法 (および理由) を説明する前に、基本的なトランザクション構造について話しましょう。

ビットコイントランザクションはインプットとアウトプットで構成されます。ユーザーがアクションを実行したい場合、UTXO を入力として使用し、出力を決定し、入力に署名します。各入力は独立して署名され、ユーザーは複数の出力 (異なるアドレスに送信される) を作成できることに注意することが重要です。


dört girdi ve iki çıktıya sahip örnek bir işlemin görseli


4 つの入力 (それぞれ 0.2 BTC) と 2 つの出力 (0.7 BTC と 0.09 BTC) を持つトランザクションを調べると、いくつかの仮定を立てることができます。 1 つ目は支払いが行われることです。送信者はプリントアウトの 1 つを人に送り、おつりを自分に送ります。 4 つの入力を使用するため、最も安定した出力がおそらく受信機に送られます。出力で不足している 0.01 BTC は、マイナーに支払われる取引手数料です。

また、送信者が小さな UTXO から大きな UTXO を作成したいと考えている可能性もあり、そのため、目的の 0.7 BTC 数値に達するために小さなエントリを結合します。

私たちが立てることができるもう 1 つの仮定は、各エントリが独立して署名されているという事実に基づいています。この取引は、4 つの異なる当事者によって署名されたエントリーで行われた可能性もあります。この根底には、CoinJoin プロセスを効果的にする原理があります。


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

主なアイデアは、複数の関係者が調整して、インプットと要求されたアウトプットを導入することでプロセスを作成することです。すべての入力を組み合わせると、どの出力がどのユーザーに属するかを確実に言うことはできません。以下の図からプロセスを確認できます。


örnek bir coinjoin'in görseli


ここには、トランザクション間の接続を切断したい 4 人のユーザーがいます。それらは、含めたい入力と出力を伝達するために、それらの間で (またはコーディネーターを通じて) 調整します。

コーディネーターはすべての情報を取得し、それを使用してトランザクションを作成し、トランザクションをネットワークにブロードキャストする前に各参加者に署名させます。ユーザーが署名すると、無効化せずにトランザクションを変更することはできなくなります。したがって、コーディネーターが資金を盗むリスクは排除されます。

このプロセスは、コインを混合するためのブラックボックスとして機能します。新しい UTXO を作成するには、古い UTXO を破棄する必要があります。新旧の UTXO 間の唯一の接続はトランザクション自体ですが、この時点では参加者を分離することはできません。せいぜい、入力の 1 つが参加者によって追加されたと言え、この参加者が結果として得られる出力の新しい所有者になる可能性があります。

しかし、これでも完全な保証はありません。上記のトランザクションを見ると、参加者は 4 人であると結論付けることができますか? 1 人が自分の 4 つの異なるアドレスに資金を送金していますか? 2 人が 2 つの異なる購入を行い、0.2 BTC を自分のアドレスに送り返しますか? 4 人は新しい人に資金を送っていますか、それとも自分自身に送金していますか?これらの質問に対して、私たちには最終的な答えを与えることはできません。


否認によるプライバシー

CoinJoin アプリケーションが存在するという単なる事実だけでも、トランザクションの分析に使用される手法に疑問を抱くのに十分です。 CoinJoin が多くのトランザクションで使用されていると推測できますが、出力の所有者が誰であるかを知る方法はまだありません。これらのアプリケーションの人気が高まるにつれて、すべての入力が同じユーザーに属するという前提が弱まり、その結果、より広範なエコシステム内でプライバシーに向けた大きな一歩が生まれました。

前の例では、トランザクションの匿名性セットは 4 です。これは、出力の所有者がトランザクションに関与する 4 人のユーザーのいずれかである可能性があることを意味します。匿名性セットが大きくなるほど、トランザクションとその元の所有者を結び付けることが難しくなります。幸いなことに、最新の CoinJoin 実装では、ユーザーは信頼を必要とせずに自分の入力を他の数十のユーザーと組み合わせることで、高いレベルの否認可能性を得ることができます。最近、100人分の取引が無事完了しました。


最新のアイデア

コインを混合するためのツールは、プライバシーを重視するすべてのユーザーが恩恵を受けることができる重要なツールです。導入された他のプライバシー アップデート(例: シークレット トランザクション)とは異なり、プロトコルの現在の状態を維持しながらこれらのツールを利用することができます。

サードパーティの完全性と手法を信頼するユーザーにとって、混合サービスは簡単なソリューションを提供します。検証可能で保管されていない代替手段を好む人にとっては、CoinJoin の代替手段が優れています。これらの操作は、技術的な知識のあるユーザーが手動で行うことも、複雑なメカニズムを扱う必要がないソフトウェア ツールを使用して行うこともできます。このようなツールはすでにいくつか存在しており、ユーザーがより高いプライバシーを求めるにつれて、その人気が高まっています。