主页 > imtoken苹果钱包 > Neutrino:保护轻钱包隐私的协议

Neutrino:保护轻钱包隐私的协议

imtoken苹果钱包 2023-01-27 07:27:24

比特币轻客户端_比特币轻钱包java_比特币李笑比特币身价

作者/几米宋

来源/比​​特币杂志

翻译/八好人

历史课

比特币轻钱包java_比特币轻客户端_比特币李笑比特币身价

在 2008 年编写的原始白皮书中,中本聪描述了一种称为 SPV(简化支付验证)的东西。 SPV 是关于轻节点如何在不下载、验证或存储整个区块链的情况下验证支付。 这应该是轻钱包的基础,不幸的是,最初的比特币核心软件没有实现简化支付验证,因此轻客户端无法以保护隐私的方式访问进行 SPV 所需的数据。

2013年,Bitcoin Core加入BIP0037,使SPV成为可能。 BIP0037 创建了网络命令,可以通过轻节点简化支付验证。 轻节点现在可以请求证明在特定区块中发生了特定事件。 这样,轻节点不需要信任服务器,而是可以实际验证呈现给它们的数据。

为此,轻客户端向服务器提供了一个过滤器。 然后,服务器对新区块中的所有交易运行过滤器,并将这些交易连同它们在区块中的证明报告给客户端。 然后客户验证这些证明并查看交易以查看它们是否属于钱包。

不幸的是,BIP0037 有一些缺点。 它被认为难以实施,大多数轻钱包选择使用其他东西。 例如,Electrum 钱包使用自己的专有协议,不保护隐私。 Mycelium 钱包调用由 Mycelium Corporation 运行的服务器。 此外,还有拒绝服务向量(通过运行大量过滤器)来利用响应 BIP0037 请求的服务器。

比特币李笑比特币身价_比特币轻客户端_比特币轻钱包java

此外,BIP0037 并不像人们想象的那么强烈的隐私问题。 事实证明,服务器可以通过寻找特定模式来了解很多关于轻钱包的信息。 例如:账户余额、交易对象,甚至交易内容。

因此,尽管 BIP0037 自 2013 年以来一直在核心软件中,但它在很大程度上已被弃用。

什么是中微子?

Neutrino 是一个验证支付的协议,大部分工作是在客户端完成的。 现在,同一块中的所有交易(从技术上讲,除了 OP_RETURN 输出之外的每个输入和输出的 ScriptPubKeys)都被压缩并发送给客户端,而不是服务器为客户端过滤交易。 现在,客户端需要确定它是否处理任何事务。 如果任何交易与钱包相关,那么客户端将请求整个区块来验证交易。

比特币轻客户端_比特币轻钱包java_比特币李笑比特币身价

普通块的大小约为 1.4MB,但经过压缩(从技术上讲,将每个 ScriptPubKey 散列为 64 位),每个块可以产生大约 20KB 的超压缩数据。 由于这个超压缩块对于每个轻客户端都是相同的,因此消除了服务器的拒绝服务漏洞。 这也意味着服务器除了想要查看的块之外,不会获得关于轻客户端的任何特殊信息,这意味着隐私泄漏要少得多。

多重权衡

当然,除了增加隐私,我们还需要权衡一些其他的东西。 首先,有更多的数据来回发送。 虽然带宽从1.4MB减少了很多到20KB,但是BIP0037可以减少的更多,因为对于钱包参与交易的区块,服务器只传输大约3KB的数据; 对于没有交易的区块,只传输 80 字节的数据。 假设每天一笔交易,对于 BIP0037,每个区块大约是 100 字节,这意味着从带宽的角度来看比特币轻客户端,Neutrino 的成本更高。

此外,客户端还需要进行额外的验证,以证明服务器发送的数据是真实的。

比特币轻客户端_比特币李笑比特币身价_比特币轻钱包java

在查找钱包参与的交易时保护隐私。通常,这些是钱包收到钱时的交易。 然而对于汇款,Neutrino 并没有真正帮助,并且仍然存在很多隐私问题(尽管 Tor 和 Dandelion 可以提供帮助)。

最后,为了促进 Neutrino,每个区块可能都需要对 coinbase 交易做出新的承诺,这需要软分叉。

这对你意味着什么

事实证明,Neutrino 不仅对比特币钱包有用,对闪电网络也很有用。 目前设置一个闪电节点很困难,部分原因是你必须运行一个需要很长时间才能同步的完整节点。 Neutrino 在 btcd 中可用,但尚未在比特币核心中使用,因此在比特币核心软件使用 Neutrino 之前,轻钱包将很难找到节点来获取数据。 因此,Wasabi 不得不使用类似的超压缩块数据制作自己的服务器。

比特币轻客户端_比特币李笑比特币身价_比特币轻钱包java

一旦 Neutrino 进入比特币核心,闪电钱包将更容易作为轻客户端运行,并且你的比特币钱包在隐私方面将更加有效。 这并不意味着你将完全匿名,尤其是在进行链上分析时,但你可以获得全节点目前享有的大部分隐私,而无需存储、传输或验证整个区块链。

隐私泄露最终是安全泄露比特币轻客户端,因为有关您的信息可能会被用来对付您。

与使用 Neutrino 协议的钱包进行交易意味着您的比特币交易,无论是在链上还是在闪电网络上,都不太容易泄露信息。

综上所述

中微子是一项早该出现的技术。 大多数使用轻节点软件的人都必须在某种程度上信任外部组织,这对密码朋克来说并不理想。 通过使用 Neutrino,钱包开发人员现在可以创建不需要信任服务器的真正独立的钱包。