713 / 736ANON

Bitcoin Anonymity Networks

用于比特币节点的 Tor、I2P 与 CJDNS

Bitcoin Anonymity Networks 是让节点在不直接暴露普通互联网地址的情况下建立或接受 P2P 连接的传输层;Bitcoin Core 支持 Tor v3、I2P 和 CJDNS,但每种网络保护的流量部分和限制都不同。

它们是比特币节点通信的独立网络路径:Tor 使用 SOCKS proxy 与 onion services,I2P 使用 SAM 接口隧道,CJDNS 则是加密的 IPv6 overlay;这些机制不改变 transaction、blockchain 或 consensus,也不能单独保证用户匿名。

匿名网络处理节点之间的传输,而不是 Bitcoin transaction 的内容。它可以向对端隐藏普通 IP 地址或增加路径观察难度,但公开金额、地址关联、timing 与 on-chain heuristics 仍是独立问题。 [5]

Bitcoin Core 可通过 Tor SOCKS proxy 路由出站连接,并为入站连接创建 Tor v3 onion service。从版本 22.0 起它忽略 Tor v2 地址;错误配置可能让 DNS 或 clearnet 流量绕过预定路径,因此 -proxy、-onion、-onlynet、-bind 与 firewall 必须配合。 [1]

I2P 连接使用带 SAM 接口的外部 I2P router,通常位于 127.0.0.1:7656。Bitcoin Core 从版本 22.0 起支持 I2P,并在接受连接时默认生成持久 I2P 地址及密钥;使用 -i2pacceptincoming=0 时,每个出站连接采用临时地址,但 I2P 对端仍会看到发起者地址。 [2]

CJDNS 是使用 fc00::/8 地址和基于 public key routing 的加密 IPv6 overlay。Bitcoin Core 从版本 23.0 起通过 -cjdnsreachable 支持它;文档明确说明 CJDNS 不会向中间 routers 隐藏发送者和接收者,peers 较少时也不应只依赖它。 [3]

BIP 155 引入了 sendaddrv2 与 addrv2 消息,使用可变长度地址,并为 Tor v3、I2P 和 CJDNS 设置独立 network IDs。Node 因而能保存和 gossip 这些 endpoints;仅宣布地址不能证明该 node 使用此网络,也不能证明特定流量经由它传输。 [4]

同时使用多种网络可提高可用性,并因 node 拥有通往 peers 的不同路径而增加 eclipse 或 partition attack 的难度。同一配置也可能关联看似独立的 identities:攻击者可比较 uptime、行为、共同宣布的地址,或 clearnet 与 overlay network 上的流量。 [1]

Tor、I2P 与 CJDNS 在 latency、可用 peers 数量、endpoint 可见性和 Sybil resistance 上有不同取舍。onlynet 模式可限制向其他网络泄漏,但更小的 peer 集合可能拖慢同步并增加对少数 nodes 的依赖;任何选项都无法修复 wallet 错误或 blockchain analysis。 [3]

核验必须查看实际 sockets 与 node 状态:getnetworkinfo、-netinfo、-addrinfo 和 getpeerinfo 会显示本地地址、已知 endpoints 数量和具体 connections。除 Bitcoin Core 配置外,还要检查运行中的 Tor 或 I2P router、CJDNS interface、DNS path、binds、firewall,以及入站和出站流量是否确实使用预定网络。 [2]

要获得更完整的理解,请将本词条与以下词条结合阅读: Bitcoin 隐私, Full Node, Bitcoin Core, Dandelion++, 交易, Lightning Routing. 反向关联还来自: 平行城(Paralelní Polis), Reusable Proofs of Work, Mix Network, Sybil Attack.

01Tor 会使 Bitcoin transaction 匿名吗?

不会。Tor 可隐藏 node 的网络路径或普通 IP 地址,但 transaction 仍公开写入 blockchain。Coin selection、地址复用、金额、timing 及与 exchange 的关联,即使 Tor 正常工作也可能识别用户。

02哪种匿名网络最适合 Bitcoin?

没有 threat model 就没有统一答案。Tor 支持最广,I2P 提供不同的内部网络,CJDNS 是快速加密 overlay,但不会以相同方式隐藏 endpoints。经过核验的配置、独立 peers 数量和对 identity correlation 的限制比名称更重要。

DOC · 001Bitcoin Core — Tor support in Bitcoin文档 DOC · 002Bitcoin Core — I2P support文档 DOC · 003Bitcoin Core — CJDNS support文档 DOC · 004BIP 155 — addrv2 message规范 DOC · 005Tor Project — How Onion Services Work文档
修订日期: 来源优先 · 非投资建议