v2 传输:比特币 P2P 流量陷入停滞

本文为机器翻译
展示原文

比特币杂志

v2 传输:比特币 P2P 流量陷入停滞

近15年来,比特币网络节点间的所有通信都以明文形式传输,没有任何加密。这种情况在2024年随着BIP 324的采纳而改变,该协议引入了用于节点间通信的“v2”传输协议。这一新协议采用机会加密,使得被动攻击者无法读取节点间消息。自Bitcoin Core 26.0添加对该协议的支持,并在27.0版本中默认启用以来,它已被全球绝大多数比特币P2P流量所采用。

退一步讲,比特币节点的主要功能是交换本质上公开的信息:区块链中的区块、内存池中的交易以及其他比特币节点的IP地址。由于这些信息并非秘密信息,因此乍一看,加密传输过程中的信息似乎并无益处。但仔细分析后会发现,比特币流量中包含大量值得保护的元数据。如果大规模攻击者能够看到哪笔交易在何时由哪个IP地址转发,他们就能推断出哪个节点可能是交易的发起者,从而确定交易的创建者。此外,查看节点之间的连接信息也可能揭示某些节点​​的归属,从而使特定公司或矿工的节点成为攻击目标。而对于一些在专制政权下运行节点的用户来说,暴露自己正在运行比特币节点可能并非明智之举。

在中本聪设计的P2P协议中,节点彼此连接,并通过这些连接发送诸如inv (“我有新的区块/交易给你”)、 getdata (“给我那个区块/交易”)、 addr (“这是另一个节点的IP地址”)等消息。随着时间的推移,协议支持的消息集和功能发生了显著变化,包括BIP 37对早期SPV客户端的支持、BIP 152对紧凑型区块中继的支持、BIP 155对Tor v3地址的支持等等。但是,这些消息被编码成字节并通过网络传输的方式——我们称之为传输协议——自2009年以来基本上没有改变。唯一的例外是2010年5月引入了校验和机制。BIP 324是此后首次引入此类机制。

需要注意的是,尽管这可以说是对“比特币协议”的一次相当根本性的改变,但它是完全可选的。它并非共识机制的变更,也无需任何协调或激活机制。它仅用于支持该协议的各个节点之间,但当一个支持 BIP 324 的节点与另一个不支持该协议的节点通信时,它们会回退到使用旧的(“v1”)传输协议。因此,在默认启用该协议的客户端软件发布不到两年后,比特币节点之间的大部分通信最终都使用加密的 v2 传输协议,而这一切并未引起太多关注。

加密比特币流量的想法并非新鲜事。早在 2016 年,比特币核心开发者 Jonas Schnelli 就提出了 BIP 151,该提案允许升级连接以切换到加密模式。然而,该提案并未获得广泛支持。由于这种方法无法隐藏两个节点之间的初始握手过程,因此在 2019 年提出了 BIP 324,旨在彻底改造传输协议。这种更现代的方法引入了一种全新的连接类型,从一开始就进行加密。2021 年,Dhruv Mehta 接手了该提案,并与 Tim Ruffing 和我一起将其发展成一个完整的提案,其中包含一些新功能,例如完全伪随机的字节流、流量整形功能以及可选扩展。我们在 2022 年通过 bitcoin-dev 邮件列表宣布了这项功能,并在收到一些反馈后,于 2022 年和 2023 年期间进行了实现。该功能于 2023 年合并到 Bitcoin Core 中。经过进一步测试,该功能于 2024 年默认对所有连接(与支持的节点)启用。

新协议提供的完全伪随机字节流特性意味着,通过网络传输的字节中没有任何可识别的模式。例如,用于与安全网站(“https://” URL)通信的 TLS 加密了网站的内容,但并未加密 TLS 的使用情况,也未加密(在 2020 年加密客户端 Hello “ECH” 出现之前)请求网站的主机名。BIP 324 之前的 v1 传输方式在每个连接中都会发送一个非常容易识别的固定前 16 个字节,这使得审查防火墙很容易阻止任何具有该模式的连接。相比之下,v2 传输方式完全没有这种模式;从第三方的角度来看,每个字节都是均匀随机的,因此完全不可预测。任何试图阻止比特币流量的实体都需要阻止任何看起来像是随机的流量,这在政治上可能比仅仅阻止类似比特币的流量更困难。实现整个协议的伪随机性最难的部分在于,在握手阶段(加密建立之前),节点需要交换公钥,而公钥并非随机字节。多亏了一种名为 Elligator (2013) 的相当现代的加密技术,特别是其变体 ElligatorSwift (2022),它允许将椭圆曲线公钥编码到看似随机的字节中,才有可能避免这种情况。

值得注意的是,由于比特币网络的公开性,节点间加密传输层所能提供的隐私保护存在显著局限性。比特币节点并不信任其他节点,因此并不真正关心通信对象是谁。比特币节点没有已知的公钥,这就是为什么v2传输层提供的加密是机会主义的且未经认证的;双方只是为每个连接生成一个新的临时密钥。这意味着主动攻击者(例如您的互联网服务提供商)可以发起中间人攻击:他们可以使用v2协议与连接双方通信,但Decrypt并重新加密所有在它们之间流动的通信,从而仍然可以进行监视,甚至可能篡改或审查。然而,关键在于,与像v1传输层那样直接检查未加密的单个消息相比,大规模实施这种攻击的成本要高得多。当然,由于大多数比特币连接都是随意建立到随机的、不受信任的节点上的,因此,想要大规模监视其他节点的攻击者总是可以选择自行启动大量节点,并让网络中的大部分节点连接到这些节点。与中间人攻击类似,大规模实施这种攻击的成本比简单地检查v1数据包要高得多。

因此,BIP 324 不应被视为一项独立的隐私改进,而应被视为一项更宏大计划的一部分,旨在提高对比特币网络进行大规模监控的成本,而无需依赖 Tor 或 I2P 等替代网络。这些替代网络本身也存在一些弊端,例如延迟增加和拒绝服务攻击风险,而这些风险对于网络上的所有节点而言都是不可接受的。BIP 324 还提供了一系列尚未实现的功能,例如流量整形,以避免仅通过观察加密数据包的大小来泄露正在传输的交易信息。希望这些功能在未来几年能够得到更充分的利用。

立即获取《核心议题》!

千万不要错过拥有《核心特刊》的机会——其中收录了许多核心开发人员撰写的文章,解释了他们自己参与的项目!

本文是《比特币杂志》最新一期印刷版“核心特刊”的编者按。我们在此分享,旨在让读者提前了解本期杂志探讨的观点。

这篇文章《v2 传输:比特币 P2P 流量消失》最初发表于Bitcoin Magazine ,作者是Pieter Wuille

来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论