为什么我不庆祝中微子

文章讨论了Neutrino协议的优缺点,重点分析了其在比特币轻客户端中的应用及其潜在的系统性风险,尤其是对矿工信任的依赖问题。作者指出,虽然Neutrino在隐私和轻钱包开发方面有优势,但其长期对比特币生态系统的影响可能不利。

或者说为什么它被错误地庆祝

引言

Neutrino 的目标是为轻量级比特币客户端提供一种简单的方式来同步其钱包的状态,而不泄露你的钱包信息。缺点是,比特币规则不会被验证。这与 BIP 37 有着类似的目标,但以一种更加务实、高效和保护隐私的方式进行。这也使得在其基础上构建钱包变得更容易。

Neutrino 使得 BIP 37 变得过时。我们应该为此感到高兴,因为 BIP 37 在根本上是有缺陷的,应该成为一个考古学的好奇存在。

我期待着移除比特币核心代码中 BIP 37 的 PR。

Neutrino 在 BIP 157BIP 158 中进行了良好的规范,并已经被 Lucas Ontiveronopara73 集成到 NBitcoin 中,因为他们需要它用于 Wasabi 钱包。

一般来说,我对 Neutrino 一直保持较为沉默,其中一个原因是我在计算机科学方面不够深入(也不感兴趣)以判断设计决策。比特币开发者中有足够多的世界级计算机科学专家,使得我对这项讨论完全无用。

我所确信的是:Neutrino 通过提高隐私性,远比 BIP 37 更好,并使得构建轻量级钱包变得更简单。

然而,问题是:它可以以一种从根本上削弱比特币的方式来使用,同时给用户带来短期优势……简而言之,正如 LaurentMT 所说,“最小阻力的路径”在用户体验方面,最终会给矿工带来更多的杠杆。

大家都忘了 1 年半前 B2X 发生的事情了吗?

Twitter 嵌入

访问这个 X 帖子

LaurentMT

@LaurentMT

·

关注

在 X 上查看

我一定很傻,我看不出来 LN 用户摆脱完全节点怎样会使比特币得到改善。LN 在没有强大 L1 层的情况下不会繁荣。 https://theblockcrypto.com/2019/01/18/from-reckless-to-wumbology-lightning-networks-infrastructural-build-out/…

图像

2019年1月19日 12:11 PM

X 广告信息及隐私

78 回复

复制链接

阅读 10 条回复

Twitter 小部件内嵌

好极了!我并不孤单。

Neutrino:好、坏和丑

所以,如果你在手机上使用 Neutrino 基于的轻钱包,这意味着你的手机并没有验证比特币的一致性规则。

因此,如果你的钱包收到区块 X 的过滤器,你怎样判断这个过滤器不是恶意的?

  1. 信任一个随机的第三方节点不会撒谎
  2. 向多个第三方节点咨询,如果超过某一阈值则接受(即,如果 3 个节点同意过滤器是相同的,则接受)
  3. 信任矿工(目前不可能)
  4. 信任你自己的节点

我认为 2 和 4 都是合法的选择。我建议用 4,但我认为 2 发生 Sybil 攻击的可能性足够低。(这个说法完全是主观的)

我认为这里并没有问题。

针对选择 3:有提议将过滤器提交到区块中作为一致性规则的一部分。这将需要一个软分叉,而我将反对,原因将在下一部分详细说明。

但是在评估过滤器是否正确之前,你如何知道区块 X 是否正确?

  1. 信任一个随机的第三方节点不会撒谎
  2. 向多个第三方节点咨询,如果超过某一阈值则接受(即,如果 3 个节点同意该区块存在,则接受)
  3. 信任工作量证明最多的区块
  4. 信任你自己的节点

我想说的是,自始至终,对比特币的系统性风险最大的是 3!

例如,Electrum 钱包使用 1 并允许 4,在我看来,这是轻钱包中最佳的选择。

坏:信任一个随机的第三方节点不会撒谎

优点:

  • 实现非常简单
  • 矿工分叉时用户行为不可预测

缺点:

  • 你可能收到虚假的付款确认
  • Neutrino 在这方面几乎无用(更多细节见下文)

坏:向多个第三方节点咨询,接受区块如果超过阈值

优点:

  • 使得选择 1 攻击变得更困难
  • 矿工分叉时的不可预测性

缺点:

  • 实现更复杂
  • 你仍可能收到虚假的付款确认,此攻击比连接到单一节点更难以实施
  • Neutrino 在这方面几乎无用(更多细节见下文)

丑:信任工作量证明最多的区块

优点:

  • 实现简单
  • 保护 against fake payments(在有针对性攻击的情况下)

缺点:

  • 如果所有用户都使用这个,矿工可以毫无阻力地改变共识

作为一种思考实验,如果 100% 的用户都在运行这个方案,显然矿工会获得很多杠杆,随心所欲地改变共识规则。

当然,认为 100% 的用户会信任工作量证明是不现实的。但这只是程度的问题。虽然我不能使用基数来恰当地量化这个,任何人也不能,但你仍然可以断言,其他条件相同时,11 个用户遵循工作量证明比 10 个使用它的用户给矿工提供了更多的杠杆。

你无法对连接到随机第三方节点的解决方案得出相同的结论。

关于将过滤器作为共识规则的一部分提交的讨论一直存在。我将反对这一点,因为这会鼓励用户信任矿工……在短期内表面上看似安全,但却在长远来看隐埋了风险。

不要指望下一代在关键时刻用香肠帽来拯救这一切。

好:信任你自己的节点

优点:

  • 实现简单
  • 完全验证一致性规则
  • 不可能有虚假支付
  • 不会给矿工带来任何杠杆

缺点:

  • 部署困难(肆无忌惮的推销:除非你使用 BTCPay Server)
  • Neutrino 在这方面几乎无用(更多细节见下文)

Neutrino 在此几乎无用

现在,在这 4 种不同的方式来决定区块是否有效中,唯一有用的是在信任矿工的丑陋情况下,而这在长远上对比特币来说是危险的。让我解释一下:

虽然在手机上验证一致性规则在技术上是可行的,但这并不实用。这会消耗大量带宽和电池,手机并不适合做这种使用。这意味着你需要在某个单独的服务器上运行完整节点,并将你的轻钱包连接到它。

然后,你可以连接到自己的节点,并使用 Neutrino 来同步 téléphone 上的钱包状态。

但你为什么要这样做呢?如果你信任一个服务器,就可以像 Electrum 已经在做的那样直接向其请求你钱包的状态。

以 Neutrino 样式下载过滤器并更新钱包仍然消耗带宽,用户体验差:每次启动时你都需要等待你的钱包同步。如果你只是让一个受信任的服务器为你处理钱包状态,就不会有这样的问题。

我认为 Neutrino 几乎(而不是完全)无用的原因是,它消除了在操作时需要的任何中间件,除了一个比特币完整节点,其不需要完整交易索引,这对于服务器来说是资源消耗型的。(服务器端不需要像 LND、C-Lightning 或 Lightning Charge 所暴露的那样特殊的供应商特定 API)

通过使钱包理解 Neutrino,如果 BIP 157 和 BIP 158 成为比特币核心的一部分,它将表现得像一个标准:你的钱包不依赖于任何其他东西,只需一个比特币完整节点。(我认为这实际上很不错)

我承认,确实存在隐私成分:客户端不会像在 Electrum 的案例中那样将其 UTXO 泄露给随机服务器。但如果你使用闪电网络钱包,你的交易仍然保持私密。

结论

尽管我曾说“Neutrino 让我疯狂”,但我并不讨厌 Neutrino。

然而,我喜欢 Neutrino 的原因与更多比特币爱好者的想法截然不同。

如果你只想要一个在移动设备上工作的闪电节点,Neutrino 是无用的。我们已经有了这个。我们所没有的是一种像 Electrum 一样连接到随机服务器的钱包。但这非常简单,不需要比特币 P2P 更改,且比 Neutrino 更加用户友好且节省带宽(不需要下载过滤器)。

Neutrino 仅仅对不想处理不同 API 查询其闪电节点状态的钱包开发者来说很酷。

但请,在你的钱包中决定使用它并允许用户连接到网络上的随机节点时,请不要使用最高的工作量证明来验证一个区块是否有效。

最好使用阈值机制(你 4 个节点中的 3 个同意一个区块是有效的,那么它就是有效的)。是的,这让你对 Sybil 攻击变得脆弱;如果你对此感到恐惧,请使用完整节点。这样的 Sybil 攻击为了获得盈利需要是有针对性的,而这对于大多数人来说是不会发生的。(如果你害怕丢失资金,你可能不应该将太多钱存放在移动钱包中,使用合适的硬件钱包。)

如果发生分叉,矿工和比特币链存在分歧,用户的钱包将在两个链之间切换并进入某种未定义的破损状态。这使得他们在这一时刻必须做出一个有意识的决策,而不是默认服从矿工的意愿。

通过这样做,你将消除矿工在不利于用户的利益中行为的动机,因为即使是那些对矿工不利、甚至根本不关心的人,他们也需要采取有意识的措施来修复他们钱包的不明确状态。

20 年后的今天,Samson 的帽子将不会在关键时刻拯救大家,因此请提前做出正确的决定。

  • 原文链接: medium.com/@nicolasdorie...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
nicolasdorier
nicolasdorier
江湖只有他的大名,没有他的介绍。