首页 > 世链号 > Neutrino:一种保护轻钱包隐私的协议
白兔糖论币  

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

摘要:闪电网络最近非常火,毫无疑问这是一个令人兴奋的发展成果,遗憾的是用户目前必须运行一个完整的节点才能进行交易。本文将介绍一种新的协议——Neutrino,用于轻客户端获取所需资源,在保护隐私的同时无需信任中心服务器。

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

作者/Jimmy Song

来源/bitcoinmagazine

翻译/蓬蒿人

历史小课堂

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

2013年,比特币核心加入BIP0037,使SPV成为可能。BIP0037创建了网络命令,使轻节点可以进行简化支付验证。轻节点现在可以请求在特定块中发生特定事物的证明。这样,轻节点就无需信任服务器,但实际上可以验证提供给它们的数据。

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

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

此外,BIP0037在隐私方面也没有人们想象的那么强大。事实证明,通过寻找特定的模式,服务器可以知道很多关于轻钱包的信息。比如:账户余额,交易对象,甚至是交易内容。

因此,尽管BIP0037自2013年起就出现在核心软件中,但它在很大程度上已经被废弃了。

什么是Neutrino

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

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

多方权衡

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

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

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

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

对你意味着什么

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

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

隐私泄露最终是安全泄漏,因为有关您的信息可能会被用来对付您。

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

结论

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

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:msy2134。