首页 > 比特币 > 正文

在比特币世界中生活 10 多年向我们表明,比特币开发者还有很长的路要走,而 2019 年 3 月创建的 BIP 324 可能是这条道路上的下一个重要步骤。

BIP 由总部位于瑞士的比特币开发商和Shift Cryptosecurity Jonas Schnelli 的联合创始人撰写,以帮助解决人们对比特币同行之间交换信息的担忧。

“比特币:点对点电子现金系统”是比特币白皮书的标题,正如它所暗示的那样,P2P 层是比特币网络的主要组成部分,但也是效率低下和现有理论攻击向量的层. 比特币潜在研究和升级的主要领域之一是 P2P 网络,该领域最近的一些突出发展引起了很多关注,包括蒲公英(BIP 156)和Erlay等提案。

那么什么是P2P网络架构呢?在比特币出现之前,最成功的 P2P 网络实施出现在文件共享服务应用程序中:最初是 Napster(由中央服务器目录部分集中),后来是 BitTorrent。

在理想的配置中,P2P 网络不应该有任何层次结构(所有节点都是平等的),节点应该统一分担网络负载。互连节点网格的这一基本层有助于比特币抗审查。与洪流网络一样,政府已采取行动在搜索引擎级别阻止它们。人们只能阻止洪流搜索引擎,但要杀死 P2P 洪流网络要困难得多——几乎不可能。这些网络的主要问题是:使用它们有多私密? 

比特币 P2P 层的问题

比特币当前 P2P 实现的问题之一是缺乏对消息传输层的强制加密。它使比特币容易受到中间人 (MITM) 攻击。MITM 攻击是通过秘密连接到两个对等点并在它们之间中继通信来执行的,因此当通信真正被攻击者控制时,双方都认为他们是在直接对话。有“被动”和“主动”MITM 攻击,被动 MITM 攻击者只观察网络状态,主动攻击者操纵其流量。 

比特币协议中节点之间发送的消息没有加密,只是以纯文本形式发送,这对攻击向量开放了整个协议。互联网服务提供商 (ISP)、WiFi 提供商或其他对手可以执行 MITM 攻击以读取您的所有入站和出站连接,而无需以对等方的身份连接到您。从理论上讲,这可以用来拦截甚至阻止特定数据的中继,例如与受制裁实体之间的交易。 

由于比特币缺乏消息加密,一个国家的 ISP 可能能够将比特币交易数据包检测为 MITM,查看其中包含的纯数据,然后将其阻止。他们可能会攻击矿工并延迟他们对区块的验证。或者像PRISM这样的监视程序可能会选择通过 MITM 攻击被动地观察所有比特币流量,并在发现它不批准的交易时,拦截或阻止它。对 P2P 网络的协同攻击甚至可以在大陆或国家层面分割比特币网络,称为“分区攻击”。

目前实施的比特币隐私可能最重要的是:即使 MITM 攻击确实发生,受影响的对等方也无法确认。

但是,作为比特币社区,我们为什么不能满足于使用VPN 或 Tor等工具来混淆或加密流量呢?由于 Tor 是一个加密的洋葱路由网络,它隐藏了交易的端点,因此从理论上讲,ISP 不可能以这种方式跟踪活动。但是使用 Tor 加密的 P2P 服务也有缺点,主要是关于 Tor 与 HTTP(S) 以外的层的集成研究不足、理论攻击的可能性以及可能引入攻击向量的Bitcoin Core 软件的一些依赖问题。

比特币 P2P 层的潜在解决方案

这就是 Schnelli 创建一组比特币改进提案 (BIP) 来解决该问题的原因。BIP 151 涵盖了节点之间流量的加密,而 BIP 150 讲述了节点可选的身份验证,该身份验证基于椭圆曲线数字签名算法 (ECDSA) 私钥/公钥密码术。
对于狂热的读者,建议从Aaron van Wirdum 的这篇BIP 151 文章开始,因为该 BIP 是第一个针对 P2P 层缺乏隐私提出解决方案的人。自该提案发布以来,一些各方已开始将该解决方案实施到各种比特币客户端实施中,Schnelli 决定采用新的、升级的BIP,编号为 324。 

BIP 324 旨在让比特币节点可以判断他们是否是 MITM 攻击的受害者。虽然坏人仍然可以连接到对等点 A 并假装是对等点 B 并可以连接到对等点 B 并假装是对等点 A,但实际的对等点 A 和 B 可以看到它们没有相同的会话 ID,并且是 MITM 攻击者正在拦截他们的通讯。尽管这些对等方可能还希望利用其他身份验证机制,但这超出了 BIP 324 的范围。

“在当前未加密的消息传输中,BGP 劫持、块延迟攻击和消息篡改成本低廉,并且可以秘密执行(无法检测的 MITM),”正如BIP 摘要所说的那样。“添加机会性加密会增加攻击者被检测到的风险。对等运营商可以比较加密会话 ID 或使用其他形式的身份验证方案来识别攻击。”

最终,潜在的 MITM 攻击者仍然能够读取比特币区块链上的未加密数据,因为它是开放和分散的。因此,在实践中,该解决方案可能最有助于防止非对等实体(如 ISP 和开放 WiFi 提供商)可以过滤特定交易并拦截或阻止它们。当然,PRISM 可以通过简单地成为网络上的对等点来观察比特币流量。尽管潜在的攻击者监听未加密的流量更为微不足道:如果可以监控 MITM 攻击,这些被动的区块链观察者将不得不权衡监控 P2P 消息的好处和被发现的负面影响。

尽管如此,BIP 324 实际上只是加强比特币 P2P 层抵御恶意 MITM 攻击的基石。确定 MITM 攻击是否对比特币构成真正威胁,或者确定它们不会构成真正威胁,这可能成为开发工作中的关键一步。但是,如果没有 BIP 324 建议的工具,就很难收集这些数据。 

BIP 324 专注于提供缓解被动 MITM 攻击的工具,而与 BIP 150 的共同实施为主动 MITM 攻击提供了一些潜在的工具。

握手

BIP 324 中描述的第一个动作是“握手”。这是为 P2P 层上的对等点之间的进一步通信建立协议的行为。 

如果在两方之间没有发送其他消息作为通过向对方发送公钥(从临时椭圆曲线 secp256k1 加密函数导出)来开始联系的方式,则应启动此握手。正如此类密钥模式的名称所暗示的(短暂的),每次成功执行握手后,都应从内存 (RAM) 中清除密钥。因此,攻击者将无法拦截这些密钥或解码此特定连接的历史消息传输。
这个攻击向量需要访问受害者的内存,所以这个问题在 P2P 加密和认证的范围内可能可以忽略不计。

共享秘密对于建立端到端的加密通信至关重要,并且只有在攻击者获得私钥和对方的公钥时才能计算出来。后者对于攻击者来说相当简单,但根据设计,不应传输私钥,因此攻击者无法使用等式的这一部分。 

握手的最后一步是导出对称加密密钥——用于加密消息的实际秘密——并计算会话 ID。 

加密

从现在开始,各方可以相互发送消息,而不必担心他们的内容被任何第三方观看。 

那么,当消息被加密时实际上会发生什么?与 BIP 151 类似,该提案提取了密码原语 ChaCha20 和 Poly1305 的最佳部分。加密不仅会产生积极的结果。通常,它通过使消息更大更重来计算,从而使通信变慢。在不涉及太多细节的情况下,一种新的、提议的消息结构甚至可以使加密消息更小、计算速度更快,这一切都是因为选择了上述正确的加密原语。相比之下,未加密的比特币核心客户端目前使用发送消息的双 SHA-256 哈希(加密标准)校验和(截断为 4 个字节),它仍然是中本聪原始实现的遗物。 

该提议只是使比特币更加私密和可替代的努力的一个组成部分。它对比特币共识规则没有任何影响,它甚至假设了选择加入的行为。与比特币核心更新一样,某些节点可能无法返回握手。简而言之,BIP 324 是向后兼容的,这在其缓解 MITM 攻击的现实世界中可能被视为负面。 

在将这个提议(连同 BIP 150)实施到比特币核心之后,我们可以期待更少的中间人攻击,或者至少有一个工具可以让我们比较会话 ID 并识别攻击。此外,值得一提的是,尽管该提案并未涵盖在加密初始化(称为首次使用信任)期间避免 MITM 攻击的方案,但 BIP 150 确实在其范围内。

猜你喜欢
发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论信息