哈希公钥能否抵御量子计算的威胁?量子计算机有哪些威胁?
比特币系统中的私钥由随机生成器生成,然后通过椭圆曲线算法(椭圆曲线的离散对数问题)、哈希函数等单向、不可逆算法导出公钥和地址。所以理论上,哈希公钥可以抵御量子计算能力的威胁。即使地址和公钥在网络上是公开的,私钥也不能从中导出。拥有私钥就相当于拥有了比特币的所有权。
公钥、私钥和地址的关系
但实际上,加密资产在交易前只受到哈希函数的保护,因为当使用P2PKH或P2WPKH交易标准(使用公钥和公钥哈希作为脚本)进行交易并输出加密货币时,,公钥就会暴露。
在后量子(PQ)时代,我们广泛使用的基于离散对数的公钥密码系统被认为是被破解的。量子设备可以一次处理一个数据集所有可能的2n个变体。基于此,基于量子计算的Shor算法可以很容易地在多项式时间内分解大整数因子。
也就是说,当你在网络上广播一个交易,而它还没有被区块链接受,那么这些交易就容易受到攻击。。这种攻击的窗口期机会有限,但理论上还是有可能的。如果QC(量子计算机/量子计算机)的处理能力足够强,那么使用QC的黑客就可以使用暴露的公钥。在交易合法执行前暴力破解私钥,然后用其签名创建一个冲突交易,并将该交易中的加密货币发送到自己的地址。
什么';更可怕的是,如果这个黑客本身就是矿工,那么他们除了可以根据公钥计算出私钥来盗取加密货币之外,还可以拒绝确认那些没有向他们发送加密货币的交易。
这无疑是一个令人担忧的情况。但与此同时,人们又自我安慰说,公钥只有在参与交易后(花完加密货币后)才会暴露在账本上,这种情况只发生在极少数账户中。
其实这个数字不容小觑:在公钥暴露的情况下,有超过550万个比特币在交易和输出。这些公钥有的是因为P2PK地址而用于事务输出,有的是用户重复使用的。在前一个事务签名时,公钥是公开的。
基于这个数字,我们可以想象,如果量子计算机强大的计算能力突破了互联网的安全保护,在交易确认之前,就可以利用暴露的公钥计算出私钥。然后黑客就可以盗取这些惊人的比特币,甚至摧毁比特币经济,使其变得一文不值。
不仅仅是区块链,加密货币工具和钱包都存在公钥暴露的问题。在当前的加密货币工具和钱包中没有一个软件把公钥当做私有信息,大多数人也不会';我没有意识到量子计算将如何影响比特币。
很多钱包的做法是将父扩展公钥发送给服务器,这样服务器monitor就可以进行交易,并将数据发送回客户端。。所有使用这些钱包的人(即使只是暂时的),钱包也会将他们的父密钥发送到服务器。服务提供商可以从这些公钥中计算出私钥,并导出所有其他子私钥。。私钥的泄露使得使用过这些钱包的人的加密货币资产变得不安全,随时有被盗的风险。
比特币的扩展公钥的复杂脚本和合约也存在问题。使用脚本实现可编程事务的一个典型例子是多重签名技术,它不对公钥进行散列和加密。在合同中,并非所有的契约参与者都必须相互信任,这意味着其中一方可能是恶意的。一旦出现恶意参与者,他就可以(通过脚本)获得合同中涉及的所有公钥,从而窃取与这些公钥相关的加密货币。。现有的公钥散列可以';不要保护这个。
总之,除了事务,公开公钥的方式还有很多。我们可能会因为使用钱包而暴露公钥。
量子计算机对椭圆曲线离散对数问题(ECDLP)的威胁可能会促使加密界向后量子密码学过渡。目前我们所有使用公钥加密的系统都需要改成可以应对量子攻击的密码系统。
如果量子计算发展缓慢,加密系统有时间切换到更强的功能并重新签名所有资产。但是,如果椭圆曲线突然被破解,系统可以';如果不能及时检测到,那么所有依赖于ECDLP签名算法(ECDSA和Schnorr)的签名都可以被软分段。,从而锁定所有加密货币。根据公钥,用户可以通过提供具有量子阻抗的非暴露或零知识证明来声明私钥的所有权。
比如用户可以通过自己拥有的BIP32种子来证明自己的所有权。
HDwallet
bip0032标准定义的BIP32seed是层次确定性wallet所遵循的标准,层次确定性wallet是一种从单个种子生成树结构并存储多组密钥对(私钥和公钥)的系统。我们只需要保存一个种子来派生所有其他的子项。由于零知识证明的特性,种子本身不会暴露(种子不是公钥和私钥的一部分,没有共享的公共组件)。目前这种方法还是比较安全的。
因此,虽然哈希算法的单向秘密机制使得加密过程不可逆,但由于公钥的暴露,在量子计算能力足够强的情况下,数百万比特币将被窃取,哈希只能提供一种虚假的安全感,现有的解决方案无法应对即将到来的威胁。
当然,这一切都是基于这样的假设"量子计算机的计算能力强到可以从公钥计算出私钥,但是我们没有';我没有意识到这项技术如此强大,以至于我们不能。不能及时升级相应的系统"。
实际上,量子计算机的每一步进步都一览无余。在量子计算机强大到可以破解椭圆曲线上的离散对数问题ECDLP之前,比特币有足够的时间进行反量子签名算法的软分叉。最后,依赖ECDLP的签名将被替换。