# 抗量子区块链和加密货币全分析Part 6

By [abcmint.eth](https://paragraph.com/@abcmint) · 2021-12-28

---

为什么BTC容易受到量子攻击，比今天的估计还要快？

区块链的交易是通过公私钥加密技术来保护的. 当达到一定的临界水平时，今天使用的密钥对将面临风险。 量子计算机在发展到一定程度时 可以从公钥中提取出私钥。 所以，如果一个攻击者可以得到一个公钥，那么他就可以用量子计算机找到私钥。 而由于他同时拥有公钥和私钥，他就可以控制并将资金发送到他拥有的地址。

当ECDSA和RSA等公钥私钥加密技术 被破解时，将会是所有不使用量子抗衡签名方案的区块链的问题。 本文之所以介绍BTC，是因为我将作为参考。 在那篇论文中，作者已经计算出了何时将有BTC风险的估计，同时将BTC的封锁时间作为了机会之窗。

BTC的误解："如果您不重用地址，则BTC具有抗量子。 ”

只要仅使用一次地址，人们就会认为BTC具有抗量子。 BTC使用公钥的哈希版本作为发送地址。 因此，直到您进行交易后，才会公开完整的原始公钥。 因此，从理论上讲，所有资金都是在哈希哈希的公钥上注册，而不是在完整的原始公钥上注册，这意味着原始公钥是不公开的。 即使是量子计算机也无法从哈希的公钥中获取原始公钥，因此，量子计算机也不会从公钥中获取私钥。 但是，如果您进行交易，则您从中寄出资金的地址的公钥将以完整形式发布在区块链上。 因此，如果您只发送一部分资金，而其余资金留在旧地址上，则您剩余的资金将位于已发布的公钥上，因此容易受到量子攻击。 因此，解决方法是将同一笔交易中的剩余资金转移到新地址。 这样，您的资金将再次使用哈希的公钥而不是完整的原始公钥在区块链上注册。

如果您由于对区块链背后的技术不是很熟悉而已经迷失了方向，我将尝试以更熟悉的方式来解释上述内容：

您可以通过公私钥对来控制资金。 您的资金已在您的公钥上注册。 您可以创建交易，需要签名才能生效。 如果您拥有私钥，则只能创建签名并签署交易。 将其视为您的电子邮件地址（公共密钥）和密码（私人密钥）。 很多人得到了您的电子邮件地址，但只有您才有了密码。 因此，类推就是，如果您获得了地址和密码，则可以访问您的邮件并发送电子邮件（交易）。 如果有合适的量子计算机，人们可以使用它来计算您的密码（私钥），前提是他们拥有您的电子邮件地址（公钥）。

现在，因为BTC在进行交易之前不会在任何地方显示您的完整公钥。 听起来很安全。 这意味着在您进行交易之前，您的公钥是私有的。 什么是哈希的简短解释：哈希是方程式的结果。 通常使用单向哈希函数，在这种情况下，您无法从输出中获取原始输入。 （由于数学的性质，即使使用量子计算机也是如此）每次在相同原始输入上使用相同的哈希函数（例如IFUHE8392ISHF），您将始终获得相同的输出（例如G）。 这样，您就可以将硬币存放在公用密钥" IFUHE8392ISHF"上，而在链上，则将它们记录在" G"上。

因此，您的资金是在公钥的"哈希"上注册在区块链上的。 在这种情况下，公钥的哈希也是您的"电子邮件地址"。 因此，您将" G"作为发送BTC的地址。

如前所述：既然是这样，即使对于量子计算机，也无法从公钥的哈希中派生公钥，只要公钥仅以哈希形式进行注册，您的硬币就是安全的。 一种明显的安全方法是，永远不要重复使用地址，并且始终确保付款时将剩余的资金转至新的新地址。 （有些钱包可以为您做到这一点。 ）从理论上讲，如果使用正确，这将使BTC具有抗量子。 实际上，这是不正确的。 即使您只使用一次地址，您的公开密钥也将暴露足够长的时间，以至于量子计算机被黑客入侵。

已经公开的公钥。

但是，在此之前，还有一个常常被忽视的观点：不仅您的个人BTC的安全很重要，而且其他用户资金的安全也很重要。 如果其他人被黑客入侵，那么黑客本身的消息以及市场对该消息的反应将影响市场价格。 或者，如果像Satoshi账户这样的大账户要被黑客入侵并丢弃，则黑客入侵的消息可能会变得更糟。 个人无法控制他人的行为。 因此，即使一个人可以确保仅以哈希形式注册其公共密钥，其他人也可能不会这样做，或者即使您从未从您的地址进行交易，您也可能甚至不知道他们的公共密钥在某些情况下是公开的。

最近，BTC开发人员Pieter Wuille在Twitter上承认了这。

中 也承认了。 （40：00及以后）他甚至进一步解释了如何以其他几种方式公开公钥，除了将交易发送到"基本上公开了所有公钥"的程度。 "如果其他所有人都丢失了比特币，您将保留所有这些毫无价值的BTC。" 哪些是由于黑客攻击了不在哈希有公钥的地址上的BTC百分比而导致价值下降的风险的确认？

44：00"它从未被用作抗量子保护。 它不能用作抗量子保护。 确实有这种想法，但事实并非如此。 即使这样做了，也仍然不清楚如何再次花费BTC，因为您必须公开公钥才能花费硬币。 ”

大量地址实际上公开了完整的公共密钥有几个原因：

只有未使用的地址才是量子安全的，但实际上，有很多人在重用地址。 （为澄清：未使用，我的意思是仅用于存入资金而未用于进行交易的地址。 因为如果您进行存入或其他人将资金作为付款转移到您的地址，则您的公钥会保留隐藏，但是如果您从该地址到另一个地址进行交易，您的公钥将被显示。 有关详细说明，请参阅。 ）

使用P2PK UTXO进行比特币交易：这是不对公钥进行 哈希而是完整发布期间的较旧地址。 （约177万BTC属于这一类别）（第7页）这包括Satoshi资金。

比特币用户将其公共密钥发布在比特币分叉上，例如，比特币现金或比特币黄金。 （[https://eprint.iacr.org/2018/213.pdf第7页）](https://eprint.iacr.org/2018/213.pdf%E7%AC%AC7%E9%A1%B5%EF%BC%89)

在论坛或付款渠道中（例如，闪电网络\[51\]），其他任何公开密钥的公开，例如为确保完整性而签名的消息的一部分。

（[https://eprint.iacr.org/2018/213.pdf第7页）](https://eprint.iacr.org/2018/213.pdf%E7%AC%AC7%E9%A1%B5%EF%BC%89)

。 大约请参见。

劫持交易

但是，即使您认为上述情况是可以接受的风险，只是因为您自己将确保从未使用过地址，然后才发布哈希的公共密钥，直到进行交易才是错误的安全感。 仅当您从不进行交易时，它才有效，因此，如果您从不花费您的资金，则该方法才有效。 为什么？ 公钥在进行交易时会显示出来，因此从您从设备发送公钥的那一刻起，便可以对其进行劫持。

充分理解以下两点很重要：

1.）如何发送交易？

所有者拥有私钥和公钥，并使用它们来登录安全环境，即钱包。 这可以是联网或离线的。 一旦放在钱包里，他便说出他想寄多少钱以及寄到什么地址。

当他发送交易时，它将被广播到网络。 但是在发送实际交易之前，它会形成一个由钱包创建的包裹。 这是发件人看不见的。

该程序包最终会携带以下大致信息：指向资金来源地址的公钥，转账金额，资金转账地址（取决于区块链，可能是哈希公钥或资金将转移到的地址的原始公钥）。 该包还包含最重要的内容：由钱包创建的签名，该签名来自私钥-公钥组合。 该签名向矿工证明您是合法所有者，并且您可以从该公钥中导出资金。

然后，此包从安全钱包环境发送到多个节点。 节点不需要信任发件人或建立发件人的"身份"，因为发件人通过添加与公钥相对应的签名来证明他是合法的所有者。 而且，由于该交易已签名并且不包含任何机密信息，私钥或凭据，因此可以使用任何方便的基础网络传输将其公开广播。 只要可以到达将其传播到网络中的节点，如何传输到第一个节点就无关紧要。

2.）如何在区块链上确认/完成交易并进行注册？

将交易发送到网络后，就可以对其进行处理了。 等待添加到块中。 交易不会立即添加到区块中。 它取决于添加到交易中的费用以及需要添加的交易量。 在高峰时间，可能需要比平时更长的时间。 节点将捆绑交易以验证并在下一个块上注册。 验证是在称为阻止时间的时间段内完成的。 如果是BTC，则为10分钟。

如果我们处理上面写的信息，我们将看到有两个时刻可以实际看到公钥，而交易尚未完成并已在区块链上注册。 所以 ：

1：在此期间，交易从发送方发送到节点

2：在此期间，节点验证交易。 （块时间）

在第2时刻发生的攻击：在封锁时间内发生劫持

介绍如何利用第二个人的地址劫持交易并进行自己的新交易，并在第2时刻2：在区块时间（即节点验证交易的时间）期间，将他的硬币发送到您拥有的地址：

"（未处理的交易）在将交易广播到网络之后，在将其放置在区块链上之前，它有遭受量子攻击的危险。 如果可以在将交易放入区块链之前从广播公钥中获取秘密密钥，则攻击者可以使用该秘密密钥将新交易从相同地址广播到他自己的地址。 如果攻击者随后确保此新交易首先放在区块链上，那么他可以有效地窃取原始地址后面的所有比特币。 " （第8页，第3点。 ）

因此，这意味着BTC显然不是量子安全的区块链。 因为一旦您动用资金并用于付款或将其发送到另一个地址，您就必须进行交易，并且有可能遭受量子攻击。

在第2时刻发生的攻击：抢劫预堵时间。

故事还没有结束。 这篇论文没有描述预拦截时间劫持的可能性。

回到纸上。 如前所述：在进行交易时，您的公开密钥至少要暴露在封闭时间内。 对于BTC，此封锁时间为10分钟。 在那段时间内，您的公钥是可见的，并且如本文所述，可以劫持一笔交易，并且可以使用量子计算机来进行伪造交易。 因此，关键点被确定为量子计算机可以在10分钟之内从公共密钥派生私人密钥的时刻。 他们根据那10分钟的时间，计算（估算）质量控制开始对BTC构成威胁的年限。 （"据我们最乐观的估计，早在2027年就可能存在一台量子计算机，该量子计算机可以在不到10分钟的时间内打破椭圆曲线签名方案，这是比特币中使用的阻塞时间。

但是，在矿工选择交易并开始在区块上工作之前，该交易会添加到采矿池中，并等待在那里进行选择。 此选择不是即时的，因此出现了另一个开始使用公钥的机会。 现在在高峰时段，由于事务堆积而网络无法足够快地处理事务量，事务可以在池中停留一段时间。 因此，在这些时候，机会窗口可能会非常严重地增加，并且公开密钥的暴露时间会延长。

但是，您也可以通过基于网络的攻击（例如DDoS，BGP路由攻击，NSA Quantum Insert，Eclipse攻击等）来人为地延长10分钟。 （我并不是说您通过使用基于网络的攻击来延长阻止时间，而是在确认交易之前延长了访问公钥的时间。 ）比特币的风险要早于本文所计算的。

同样，其他哈希其公钥且具有较短区块时间的区块链也可以想象自己比BTC更长的时间是安全的。 但是随着时间范围的延长，您可以在其中推导出私钥，它们也将更容易受到攻击。

不久前，一次证明它可以达到目的。 有一篇关于日食攻击的文章。 使区块链在最大容量上工作，意味着交易将等待更长的时间被添加到区块中。 这个时间需要添加到块时间上，从而延长了可以有时间从公共密钥派生私有密钥的时间。

现在看来这是固定的，但是它表明总是有可能发生新的攻击，并且当激励是正确的（像几十亿美元的权利）时，这些攻击可能是专门为某些区块链设计的。

第1时刻的攻击：MITM攻击

MITM攻击可能在公开密钥公开的第一刻就找到了公共密钥。 （在将事务从发送方发送到节点的过程中。 ）如所解释的，这些发送到网络的事务包含可以拦截的公共密钥。 这意味着，如果您拦截交易（以及与此同时的公钥）并同时延迟其到达区块链网络的时间，则您将花费额外的时间使用量子计算机从公钥中导出私钥。 完成此操作后，您将在原始交易到达并确认之前发送自己的交易。 这样，您就可以将资金从被盗地址发送到您选择的地址。 结果将是您有额外的10、20、30分钟（或者可以延迟原始事务的时间长）来导出公钥。 因此，速度较慢的量子计算机会构成威胁。 这意味着，与现在假设的情况相比，早期的量子计算机模型可能对加密货币构成威胁。 由于攻击发生在网络外部，因此无需搞乱网络就可以做到这一点。

当MITM攻击和其他提到的劫持交易方式对BTC构成威胁时，其他区块链将很容易受到相同的攻击。

此时，由于现在没有量子计算机可用，公钥对攻击者将毫无用处。一旦有合适大小的量子计算机可用，就会成为问题。对于抗量子区块链，情况有所不同。 MITM攻击和劫持对等抗量子区块链毫无用处，因为使用了抗量子密钥。

---

*Originally published on [abcmint.eth](https://paragraph.com/@abcmint/part-6)*
