ビットコインコアとWasabiウォレット—ネットワークレベルのプライバシー

Bitcoin Core、より具体的にはフルノードは、Bitcoinウォレットのネットワークレベルのプライバシーの頂点であると考えられています。完全なノードがブロックチェーン全体をダウンロードし、ウォレットの残高をローカルに確立するので、理由を確認するのは難しくありません。そのため、サードパーティがウォレットにあるアドレスとそうでないアドレスを把握する可能性はゼロです。
これをバックエンドサーバーに照会して特定のアドレスに関する情報を取得するか、おそらくさらに悪いBIP37ブルームフィルタリングSPVウォレットプロトコルを使用する他のライトウォレットと比較してください。また、Electrumがあります。これは、ランダムなElectrumサーバーにアドレスを送信します。

ユーザーのUTXOセットを確立する際に情報をあまり漏らさないライトウォレットのビジョンは、何世紀にもわたってビットコイン開発者を悩ませてきました。
実際、BIP37でさえプライバシーの改善として始まりましたが、それは後になってからでした。
しかし、まともな試みがありました。JonasSchnelli、Stratisチームなどの一部の開発者と私は、ユーザーのウォレットの作成からブロックのみをダウンロードするウォレットソフトウェアを作成しました。
Nicolas Dorierなどの一部の開発者はBIP37にパッチを当てようとしましたが、Lightning Labsのスタッフはまったく新しいライトウォレットアーキテクチャを考案しました:BIP157-158。
MoneroWorldの人々は、ノードの実行をクラウドに委任することを望んでいます。
Chris Belcherのような他の人もいました。彼は、「それをやめて」、Electrumクライアントをフルノードに接続できるEPSを作成しました。
最後に、ボックスを販売している企業が、すぐにフルノードを実行するというポジティブな傾向に最近気付きました。

次に、Wasabi Walletがあります。WasabiWalletは、BIP157風のクライアント側フィルタリングライトウォレットであり、完全なノードにも部分的に統合されます。そこで、この記事のトピックを紹介します。ほんの数時間前に、Wasabi Walletを使用して、今日のビットコインで可能な最高のネットワークレベルのプライバシーを実現しました。

用語

V.検証または検証の略。それらは同じ意味で使用されますが、そのうちの1つが正しいと確信しています。検証?

FN、完全ノード、完全検証ノード。これまでに作成されたすべてのBitcoinブロックをダウンロードして検証しますが、私たちの目的(プライバシー)では、ダウンロード部分のみが重要です。
SPVノード、簡易支払い検証ノード。 (それが何であれ)ヘッダーチェーンのみを同期し、マークルマジックを適用することでトランザクションがあることを確認できます。ただし、これは問題ではありません。重要なことは、SPVがプライバシーとは何の関係もないことに注意することです。これは本当にトランザクションが発生したことを確認するための単なる方法です。
拡張により、完全なノードはプライバシーとも関係ありません。ノードがトランザクションの発生を確認する方法を説明しているだけです。もちろん、ブロックチェーン全体を検証します。そうするためには、ブロックチェーン全体をダウンロードする必要があります。これにより、ウォレットUTXOをローカルで取得できます。これは、最もプライベートな方法です。待ってください、それは結局プライバシーと関係がありますか?
フルSPV、フルブロックSPV、フルブロックダウンロードSPVノード。ウォレットの作成からすべてのブロックをダウンロードし、それらに対してSPV検証を実行します。待って、Vの単語を2倍にしただけですか?はい、開発者は一貫性がありません。また、すべてのブロックをダウンロードする完全なSPVウォレットを誰も作成することはありませんが、適切な用語を見つけることは不可能なので、集中検証を行います。

まだ混乱していますか?良い。トピックの微妙な性質を認識できたので、このセクションの残りの部分を非常に単純化しすぎて、もっと寛容になります。

ハイブリッドフルノード。フルノードが同期するまでは軽いノードです。将来、わさびがこんな財布になりたいです。
BIP37。クライアントはブルームフィルターをフルノードに送信し、フルノードはブルームフィルターに一致するデータを送り返します。
ブルームフィルター。セット自体を公開せずに、要素がセット内にあるかどうかをテストできます。
ゴロム米フィルター。 BIP158で使用される小さなブルームフィルター。
クライアント側フィルタリング、ニュートリノフィルタリング、BIP157、BIP158。クライアントはフィルターをフルノードに送信する必要はなく、逆にフルノードがフィルターを作成して代わりにクライアントに送信するという考え方。ここから、クライアントは他のソースからブロックをダウンロードできます。これは、ウォレットのUTXO状態を確立するための適切にプライベートな方法です。
ニュートリノ。 Lightning Labのクライアント側フィルタリングプロトコルの実装。
ワサビがやっていることは何でも。クライアント側のフィルタリングプロトコルの実装。

ズームアウト

ネットワークレベルのプライバシーは戦いの半分にすぎないことを指摘する価値があります。残りの半分はブロックチェーンレベルのプライバシーであり、この記事の範囲外です。

さらに、ネットワークレベルのプライバシーは、2つのサブカテゴリで構成されます。

  1. プライベートUTXO検索
  2. プライベートトランザクションブロードキャスト

ビットコインコア

プライベートUTXO検索

Bitcoin Coreは、これまでに作成されたすべてのブロックをダウンロードし、ウォレットの残高をローカルに確立します。

プライベートトランザクションブロードキャスト

Bitcoin Coreは、暗号化されていないクリアネット上の他のピアにトランザクションをブロードキャストします。
Coreは独自のトランザクションをブロードキャストするだけでなく、mempoolにヒットする他のすべてのトランザクションも伝播するため、他のピアは特定のノードから発信されたトランザクションを判別できません。
しかし、いくつかの論文は、それが防弾ではないと指摘しています。

ビットコイントランザクションの伝播は、特にネットワーク上の到達可能なノードへの多数の発信接続を形成する「スーパーノード」盗聴者に対して、トランザクションのソースをあまり隠しません[1,2,3]。

実際問題ではないかと思われますが、この記事ではコアとWasabiを比較するために詳細を検討するつもりであるため、ここから関連する特定の敵の収集を開始します。

特定された敵

  • 悪意のあるピア
  • スーパーノード

ビットコインコア+ Tor

Bitcoin CoreをTorで使用すると、上記の問題を解決できます。この場合、スーパーノードはIPアドレスへのトランザクションを追跡できません。

私は普遍的な敵であるTorを破ることができるエンティティを検討しますが、これは不正確であることに注意してください。たとえば、出口ノードが関与していない場合、ほとんどのTor攻撃は不可能です。これとCoreの構成可能性など、分析が複雑になるため、ここで線を引きます。
このエンティティは、Torの暗号化そのものではなく、オニオンルーティングを破ることができると思います。

特定された敵

  • Torブレーカー

わさび財布

プライベートトランザクションブロードキャスト

Wasabiは以前、Tor上のP2P接続を維持していませんでした。 Wasabiは非リスニングノードであるため、クリアネットを介して他のP2Pノードを介してトランザクションをブロードキャストすると、ピアはあなたのIPアドレスをトランザクションにリンクできます。これが、Torを介してトランザクションをバックエンドサーバーにブロードキャストしていた理由です。

現在、P2PトラフィックもすべてTorをトンネリングし始めています。

  • タマネギノードにのみ接続するようにして、エンドツーエンドの暗号化が私たちとピア間で実施されるようにしました。これはすべて、出口ノードを使用せずに行います。
  • 異なるTorストリームを介して各ピアに接続します。
  • これにより、トランザクションブロードキャストメカニズムを置き換えることができました。現在、Torを介して1つのピアのみにトランザクションをブロードキャストし、その後すぐにピアを切断します。

プライベートUTXO検索

最後に、興味深い部分に到達しました。 P2P Tor実装の前にWasabiは次のことを行っていました。
バックエンドサーバーは、Torを介してすべてのクライアントに定数フィルターテーブルを提供しました。クライアントはこれらのフィルターから、どのブロックに関心があるかを把握し、これらのブロックといくつかの誤検出ブロックをピアからダウンロードできます。ピアごとに1ブロック。ブロックが取得されると、ピアは切断されました。
これには2つの問題がありました。
Wasabiが接続したすべてのピアが長期間同じエンティティだった場合はどうなりますか?次に、Sybil攻撃エンティティは、クライアントが興味を持っているすべてのブロックを知っているでしょう。その中から、いくつかの情報を取得することができました。疑問が生じますか?クライアントが長期間接続する唯一のピアであることをどのように確認しますか?
2番目の問題は、ISPが長期間にわたってあなたをスパイしている場合はどうでしょうか?これはもっともらしいです。実際、Bitcoin.orgリスティングでのWasabiのプライバシー評価は、Breadウォレットとほぼ同じであると評価されました。これは、BreadがBIP37ウォレットであるため、当然のことです。 ISPが敵である場合、トランザクションがクリアネットを介してブロードキャストされ、ノードがリッスンしていても、それが行われない唯一のトランザクションであるため、ビットコインコアはより壮観な方法で失敗します入ってくるが、ウォレットから出て行くのはノードから発信されたものでなければなりません。
とにかく、WasabiはTorでこれを実行します。オニオンネットワークはエンドツーエンドで暗号化されているため、ISPの敵を直ちに打ち負かし、Sybilの敵のすでに不可能な仕事をさらに不可能にします。 Sybilは長期間、Wasabiに接続するすべてのノードでどのように機能しますか?それとも1つのノードだけですか?クライアントはTorの後ろに隠れています。クライアントは異なるTorストリームを介してすべてのSybilに接続するため、クライアントの2つの接続を結び付けることさえできません。
これを克服できる可能性のある唯一の敵は、タマネギを介して数千のフルノードをセットアップし、Tor自体を破壊する必要があります。

特定された敵

  • ISP
  • タマネギの何千ものフルノードを持つTor Breaker Sybilアタッカー

わさびウォレット+フルノード

プライベートUTXO検索

バックグラウンドで実行されているリスニングフルノード(ビットコインコアだけでなく、フルノード)がある場合、Wasabiは自動的にそれを取得し、ピアにブロックを要求する代わりに、独自のノードからブロックを要求します。この方法でWasabiを使用すると、プライベートUTXO取得に関するBitcoin Coreのプライバシーモデルと同じになります。

すべてを一緒に入れて

結論

有用であるために、セキュリティメトリックは、攻撃者がそれらを克服する際の困難を反映する必要があります。 —エントロピスト

合理的なすべての敵に対して、ネットワークレベルのプライバシーに関するBitcoin CoreとWasabi Walletの比較は意味がないため、この記事は時間の無駄だと思うかもしれません。しかし、あなたは大きく間違っています。この記事は、インターネットでの議論に勝つのに役立つでしょう。そして、最後に、それが本当に重要なことではありませんか?