主页 > imtoken新版app官网下载 > 深入探讨比特币的安全模型

深入探讨比特币的安全模型

imtoken新版app官网下载 2023-06-15 05:27:39

当难度值为27,000,000,000时,挖矿需要计算约27,000,000,000 2^48 / 65535 = 1.16 10^20个哈希函数。

1.16 10^20 散列 0.1 J / 10^9 散列 = 1.16 10^10 J*

1.16 10^10 J = 3,222 kw/h $0.10 kw/h = $322(创建每个区块所需的平均电力成本)

因此,通过提议的修改,如果 Sybil 攻击者完全包围了一个需要从头开始同步的全新节点,它几乎可以免费从任何块开始向该节点发送假块数据。 如果 Sybil 完全包围了一个已经同步到块 320,000 之后的节点,则从块 320,000 开始向该节点发送每个假块的成本为 322 美元。

简而言之,如果一个实体完全控制了你节点的网络连接,那么无论使用哪种方法来检查节点的初始同步,攻击成本都比较低; 如果您的节点的网络连接不受任何实体控制,来自攻击者的块很容易被忽略。

此外比特币协议与安全性,每个区块链系统都将被纳入节点软件。 您可能会将“共享历史”(即分类帐)视为一种社会契约——一旦一个区块足够旧,网络中的所有参与者都会达成共识,即该区块永远不会回滚。 当开发人员使用较早开采的区块并使用它来创建检查点时,它更像是一种可接受的健全性检查,而不是对历史的客观描述。

除了检查点之外,节点如何实现自引导也是一个问题。 目前,比特币节点的引导过程是检查该节点是否在本地存储了它之前从对等方那里学到的数据。 如果没有,节点将查询一组“DNS 种子”。 这些种子负责维护连接良好的比特币节点列表,并将该列表返回给您的节点。

从代码中我们可以看出,Bitcoin Core 0.13 目前使用由 Pieter Wuille、Matt Corallo、Luke Dashjr、Christian Decker、Jeff Garzik 和 Jonas Schnelli 运​​行的 DNS 种子。 任何人都可以使用 Pieter Wuille 的比特币种子生成器软件或 Matt Corallo 的软件来运行 DNS 种子。 但是,他们必须说服全节点实施的开发人员将他们的 DNS 种子主机添加到对方的软件中。

新节点的引导过程仅依赖6个DNS种子,这似乎又是一个极度中心化的单点问题。 但是不要忘记,比特币的安全模型只需要你连接到一个诚实的对等节点,就足以抵御女巫攻击了。

因此,一个新节点只需要能够连接到一个未妥协的 DNS 种子,它返回诚实节点的 IP 地址。 然而,如果所有 DNS 节点由于某种原因变得无法访问,则有一个后备方案——软件中内置的受信任节点 IP 地址列表,随每个新版本更新。

哪种比特币钱包安全_比特币协议与安全性_走比特币洗钱安全吗

在围绕这些初始化参数构建的安全模型下,全节点运营商无需相信 X DNS 种子或 Y Bitcoin Core 软件开发者会为其提供真实数据,只需要相信 1/X DNS 节点没有遭受攻击, 或 1/Y 比特币核心软件开发人员诚实地审查硬编码对等更改的有效性。

没有绝对的安全

从更深层次来说,当你运行一个全节点时,你在一定程度上信任你所运行的硬件和软件。

有许多方法可以检查二进制文件的签名与 van der Laan 的签名以验证软件的真实性,但很少有人愿意这样做。 至于如何验证硬件的可靠性,这是一个棘手的问题。 如果您需要安全的硬件解决方案,最接近的选择是 ORWL。 如果有人试图篡改 ORWL,就会触发其“自毁”机制。

哪种比特币钱包安全_比特币协议与安全性_走比特币洗钱安全吗

但是,由于 CPU、RAM 等重要硬件通常是专有的,您永远无法 100% 确定它们不会受到损害。

比特币的去中心化制衡

当你开始审视比特币系统中不同参与者之间的关系时,你会发现自己陷入了迷雾之中。

比特币协议与安全性_走比特币洗钱安全吗_哪种比特币钱包安全

运行全节点的目的是保护您的财务主权。 这意味着一旦您安装并运行了特定版本的软件,您就与该软件以及所有其他网络参与者签订了协议——不仅您将遵守该软件的规则,而且其他网络参与者也必须遵守这些规则跟着。

因此,如果人们想要对软件规则进行向后不兼容的更改,您必须运行新版本的软件以表示您明确同意这些规则更改。 另一方面,如果它是向后兼容的规则更改,即使您不同意,也可以在网络中强制执行。

有人对比特币内部的去中心化制衡做了一个高层次的总结:

哪种比特币钱包安全_比特币协议与安全性_走比特币洗钱安全吗

比特币治理的三个主要分支:

需要注意的是,全节点软件不会自动更新,这是设计使然。 自动更新将使权力的平衡向有利于开发人员的方向倾斜,允许开发人员在未经节点和矿工许可的情况下强制更改规则。

遗憾的是,虽然规则变更在技术层面上可能是向后兼容的,但多年的经验告诉我们,足够有创意的软分叉也可以实现违反旧版本规则的变更。 例如,Vitalik Buterin 曾经提到过这样一个想法:比特币的出块时间将通过软分叉从 10 分钟缩短到 2 分钟,这必然会加快比特币的发行速度。

面对不利的软分叉,全节点有一张王牌:用硬分叉与其他支持软分叉的矿工划清界限。 这(按设计)难以执行,并引发了许多关于如何衡量共识和找到具有高经济权重的节点的问题。

比特币协议与安全性_走比特币洗钱安全吗_哪种比特币钱包安全

从技术上讲,这种硬分叉可以通过将挖掘算法从双 SHA256 更改为另一种哈希函数来实现。 一旦成功,所有 SHA256 ASIC 矿工将无法开采比特币。 因此,节点运营者应时刻警惕比特币生态的变化,提醒矿工如果越权可能被替换的风险。

许多博弈论都在讨论矿工运营及其对比特币安全的威胁,在我之前的帖子中,我推测了挖矿生态系统可能会发生怎样的变化。 虽然比特币挖矿不像它希望的那样集中,但到目前为止它运作良好。 这是因为比特币矿工投入了如此多的资金,他们不会冒着巨大损失的风险在一个人人注视的系统中作恶。

SPV 安全

许多比特币用户使用轻量级客户端而不是完整节点访问网络,因为它们消耗的资源少得多,同时仍提供强大的安全性。

使用简单支付验证 (SPV) 的客户下载整个链上所有区块的区块头的完整副本。 这意味着自比特币诞生以来,下载和存储需求随着时间的推移呈线性增长。 有关详细信息,请参阅比特币白皮书的第 8 节。

比特币协议与安全性_哪种比特币钱包安全_走比特币洗钱安全吗

中本聪在白皮书中写道,SPV 客户端“无法验证交易本身,但通过将交易与区块链关联起来,可以看到网络中的节点已经接受了交易。随着越来越多的区如果区块被在链上,它进一步确认网络已经接受了交易。” SPV 假设在 X 块确认后伪造交易的成本非常高。

SPV 看起来和全节点一样安全,但它引入了一个额外的假设:只要一个区块头和工作量证明有效,它包含的所有交易也是有效的。 由于 SPV 客户端并不验证本文第 1 节中提到的所有共识规则,它们假设响应交易查询请求的节点已经验证了共识规则。

走比特币洗钱安全吗_比特币协议与安全性_哪种比特币钱包安全

另一个较小的安全差异是同行可能会隐瞒您的信息。 如果你运行一个完整的节点,节点可以对你隐藏未确认的交易和区块。 但是一旦你从你的同行那里得到一个区块,没有人可以向你隐藏该区块中的任何交易。 另一方面,如果你运行的是 SPV 客户端,节点可能会为你提供区块头,然后在相应的区块中保留交易。

SPV 客户端可以查询一个地址的关联交易。 尽管节点用虚假交易来欺骗 SPV 客户端的代价很高(需要用足够的 PoW 挖出一个区块),但他们可以谎称 SPV 客户端用来查询交易的布隆过滤器(bloom filter)没有结果。 另一点需要注意的是,由于 Bloom 过滤器的缺陷,SPV 遭受严重的隐私泄露。

BitcoinJ 有一篇关于 SPV 安全模型的优秀文章。 关于未确认的交易,他们说:

在 SPV 模式下,只要你连接的节点向你转发了一笔交易,你就只能相信这笔交易是有效的。 如果攻击者可以确保你连接的节点都是他的,他们就可以向你发送一个完全无效的交易(花不存在的钱),你会接受这个交易是有效的。

对于普通用户来说,SPV的安全性已经“够高”了。 尽管如此,我们可以通过 SPV 欺诈证明来改进它。 虽然已经有一些关于欺诈证明的讨论,但关于如何将它们构建到比特币协议中的建议尚未实现。

比特币网络没有 127.0.0.1

如果你没有运行一个完整的节点(并实际使用它来验证交易),你至少在某种程度上信任第三方比特币协议与安全性,这在安全模型中有所不同。 请注意,这并不要求所有用户和企业直接在比特币核心的 RPC API 之上构建他们的软件。

一些替代基础设施配置包括但不限于:

比特币协议与安全性_走比特币洗钱安全吗_哪种比特币钱包安全

1)使用Android版比特币钱包、GreenAddress或其他手机钱包配置只查询自己的全节点钱包。

比特币协议与安全性_走比特币洗钱安全吗_哪种比特币钱包安全

2)在SPV节点库(如BitcoinJ)上构建应用,并设置这些应用只连接自己的全节点。 在 BitcoinJ 中,这可以通过定义您自己的 SeedPeer 并在初始化期间将其传递给您的 PeerGroup 来实现。 使用 libbitcoin,您可以使用此示例来定义到特定节点的网络连接。

3) 构建与比特币核心的 JSON-RPC API 兼容的代理服务器。 这个API不仅会向第三方服务发送一些调用,还会通过调用本地全节点自动验证第三方服务返回的数据。 BitGo 的 BitGoD 软件就是一个例子。 这种混合模式提供了两全其美的优势:您可以使用第三方提供的高级功能,同时保留您自己的财务主权。

全节点:为了自由

显然,运行自己的全节点是最安全的选择,需要最少的假设。 构建一台能够运行可靠的全节点的计算机只需要几百美元。 您不妨计算一下,然后决定是否值得为保护您的财务主权而付出代价。

感谢 Kristov Atlas、Eric Martindale、Andrew Miller 和 Kiara Roble 对本文的审阅和反馈。

(结束)

原文链接:作者:Jameson Lopp 译者&校对:敏敏&阿健

本文首发于:

本文参与登联社区写作激励计划,好文章好收益,欢迎正在阅读的你加入。