专栏名称: 闪电HSL
读书分享
目录
相关文章推荐
巴比特资讯  ·  DeepSeek淘金热:日入百万,20天过亿 ... ·  22 小时前  
巴比特资讯  ·  两极反转,外国人开始在X上卖中国AI的课了? ·  22 小时前  
巴比特资讯  ·  被 DeepSeek ... ·  昨天  
巴比特资讯  ·  为什么中国只有一个 DeepSeek? ·  昨天  
51好读  ›  专栏  ›  闪电HSL

论述SPV钱包的安全性,以及普通用户是否有必要运行完整节点

闪电HSL  · 公众号  · 比特币  · 2017-05-31 18:20

正文

为什么比特币用户应该理解“ SPV 安全”

你不需要理解引擎是如何驱动汽车。同样的,你不需要为了使用比特币而去了解让比特币运作的“引擎”。

但是,如果你打算参与公开对话,或者对比特币未来发表观点,这里有些事情是你应该知道的。

扩容大战

如果你还没有意识到的话,在比特币开发者、企业、矿工和投资者之间有一场内战。议题就是如何对网络进行“扩容”。

简单来说:一方想要遵循比特币点对点的最初设想和拥有更大区块的计划;另一方希望保持小区块,同时将比特币转移到一个结算网络。

你的观点比你的想法更重要

比特币是一个数十亿美元的系统。如果你认为强大的企业利益团体不会想尽所有办法试图操纵这个系统,就太天真了。

那么,你从哪里切入正题?

喜剧家 George Carlin 的一句名言放在这很合适。强大的特殊利益团体想要的是什么?

他们想为自己谋取的更多,为他人谋取的更少。但是我要告诉你,他们不想要的是什么。他们不希望市民具有批判性思维。他们不希望人们见多识广,受过良好教育 他们对这些没有兴趣。这对他们没有任何好处。这与他们的利益是相悖的。——乔治·卡林( George Carlin

小区块爱好者的纸牌屋

维基百科上对“纸牌屋”的解释:“纸牌屋”的来源可以追溯到 1645 年,指一个建筑或观点建立在不牢靠的基础上,或者一旦移除必要元素就会崩塌。

“比特币作为结算网络”的论点的逻辑类似于:

“网络上大多数的用户应该运行全节点,因此为了让大家能够负担得起运行全节点,我们要限制带宽和存储成本,因此我们别无选择只能保持小区块。”

大多数用户不需要运行全节点

如果我们揭穿这隐含的假设,纸牌屋顷刻倒塌。

支持“大多数用户应该运行全节点”的论据广义上分为两类: a) 对网络有好处; b) 对于保证用户安全是必要的。前一个论点我们将在另一篇文章中单独论述。现在,让我们简单地研究一下用户这个观点。

从一开始就存在的简单支付验证( SPV

首先, SPV 并不是新事物。在中本聪的白皮书——比特币:一个点对点的电子现金系统的第八章就对 SPV 进行了描述。比特币钱包,例如 Electrum 成功地使用 SPV 几年了,没有任何问题,同时他们省去了用户运行全节点的麻烦。

SPV 如何运作?

简而言之, SPV 让你能够验证你的交易而不用管任何其他人的交易。

SPV 提供两个关键成分: a) 它保证了你的交易在区块中; b) 当额外区块被添加到区块链的时候,它提供证明(工作量证明)。

你真正需要知道的事情是,一个交易是否有效。

SPV 的安全限制是什么?用户运行全节点有什么好处?

由于 SPV 钱包不能检查区块上任意其他的交易,理论上,区块有可能是无效的。在 99% 的时间,这不是个问题,因为我们可以连接到很多不同的节点,并确保这些人都对这个区块链上的区块达成共识。

偶尔可能会出现不寻常的情况。例如,采取了一个新的共识规则,相对较大的节点群体因为忘了升级而没有使用新规则。需要花费很长的时间,这些不兼容的节点才能从网络上分裂出去,但是在这期间, SPV 节点可能暂时性被欺骗,认为没有升级的节点是处在正确的最长链。(在多个区块之后,将很明显可以看到最长有效区块链)。

这就是为什么运行全节点被说成是可提供了“更快”安全性——因为如果你可以自己验证所有的交易,就没必要等到额外的确认之后来解决这种类型的罕见案例。

此外,理论上运行全节点提供了更多的隐私,因为 SPV 客户端必须与全节点互相沟通并请求特定地址和交易的信息。

SPV 用户会遭到故意攻击吗?

这是不可能的(没有任何案例被记载)。

理论上,一个攻击应该已经设置了大量的伪装节点,防止你在“真实”的比特币网路上找到任意诚实的节点。

如果你的 SPV 钱包找到哪怕一个诚实节点,攻击将受到阻止,因为它可以验证,诚实节点包含最长链的工作证明。

此外,为了维持攻击,攻击者不得不在相当难度水平上保持挖矿,来持续延长他们的链。这要求大量的算力,而大量的算力是非常昂贵的,因此这在经济上是不可行的。

两条好消息

1. 意识到 SPV 钱包不仅仅依赖于其他网络节点来决定最长区块链是很重要的。它监听最长区块链的头部:区块链的头部拥有数量最多的工作证明。一个好的 SPV 实现还保证这个工作量证明处于适当的算力难度水平。那些对此有怀疑的人可以检查 Electrum 代码运行状态。

2. 当然,运行这种钱包对你的私钥安全性没有任何影响。

我们一直听到的“ SPV 欺诈证明”是什么?

欺诈证明提议试图增加在这些情况中的安全性,如上所述‘非兼容区块链包含的工作量证明比兼容的区块链包含的更多’。

但是在这些情况中,安全提升是很小的。

声称保护用户安全需要 SPV 欺诈证明显然是错误的。

Tomas van der Wansem, 最近一篇欺诈证明提案的作者,认为:

与流行的信念相反,欺诈证明 SPV 和全节点都并没有比 SPV 节点更安全 我担心比特币原始扩容模式目前的萧条和放弃不是由缺少欺诈证明引起的,而是由对比特币安全性和扩容模式引起。

结论

SPV 钱包提供更高水平的安全性,大多数用户不需要运行全节点。有了这些信息,对于你的比特币钱包,你可以享受内心的平静了 你还可以帮助打击那些来自错误假设的邪恶观点。

注脚:

一个 SPV 钱包还需要“听”转到你的地址的交易。它使用布隆过滤器或者持有 UTXO 集的服务器实现这个功能。

原文链接:https://medium.com/@jonaldfyookball/why-every-bitcoin-user-should-understand-spv-security-520d1d45e0b9







请到「今天看啥」查看全文