主页 > 钱包imtoken官网 > 为什么散列公钥不能抵御量子计算威胁?

为什么散列公钥不能抵御量子计算威胁?

钱包imtoken官网 2023-05-09 07:21:26

哈希算法与比特币_怎样查找比特币哈希值_比特币 哈希谜题

哈希算法与比特币_比特币 哈希谜题_怎样查找比特币哈希值

原创 | “为什么散列公钥实际上不提供任何量子抵抗力?”

编译 | 哈希派——艾德琳

文章字数:2000字左右

阅读时间:约3分钟

怎样查找比特币哈希值_比特币 哈希谜题_哈希算法与比特币

比特币系统中的私钥是由随机数生成器生成的,然后通过椭圆曲线算法(椭圆曲线的离散对数问题)、哈希函数等单向不可逆算法推导出公钥和地址。 所以理论上,哈希公钥可以抵御量子算力的威胁。 即使地址和公钥在网络上公开,也无法从中推导出私钥。 拥有私钥就相当于拥有了比特币的所有权。

哈希算法与比特币_怎样查找比特币哈希值_比特币 哈希谜题

公钥、私钥和地址的关系

但实际上,加密资产在交易前只是受到哈希函数的保护,因为在使用P2PKH或P2WPKH交易标准(使用公钥和公钥哈希作为脚本)交易和输出加密货币时,公钥会因此被曝光。

在后量子 (PQ) 时代,我们广泛使用的基于离散对数的公钥密码系统被认为是可破解的。 Quantum 设备一次可以处理数据集的所有可能的 2^n 变体函数。 基于此,基于量子计算的 Shor 算法可以很容易地在多项式时间内对大整数进行因式分解。

比特币 哈希谜题_哈希算法与比特币_怎样查找比特币哈希值

也就是说,当你向网络广播一笔交易,而它还没有被区块链接受时,这些交易就很容易受到攻击。 这种攻击的窗口机会有限,但理论上还是有可能的。 如果QC(quantum computer/量子计算机)的处理能力足够强,那么使用QC的黑客就可以根据暴露的公钥合法执行交易。 以前,暴力破解私钥然后使用其签名创建冲突交易会将此交易中的加密货币发送到他们自己的地址。

更可怕的是,如果黑客本身就是矿工,他们除了可以根据公钥计算出私钥来窃取加密货币外,还可以拒绝确认没有向他们发送加密货币的交易。

这无疑是一个令人担忧的情况,但同时人们安慰自己认为公钥只有在参与交易后(在加密货币被花费后)才会暴露在账本中,这种情况只发生在极少数人身上。帐户。

事实上,这个数字不应该被低估:当公钥暴露时,超过 550 万比特币正在被交易出去。 这些公钥有的是因为P2PK地址用于交易输出,有的是因为用户重复使用了一个地址,在之前的交易签名时公开了公钥。

基于这个数字,我们可以想象:如果量子计算机强大的计算能力突破了互联网的安全防护,能够在交易确认前利用暴露的公钥计算出私钥,那么黑客就可以窃取这些数字。 惊人的比特币,甚至摧毁了比特币经济,使其一文不值。

怎样查找比特币哈希值_哈希算法与比特币_比特币 哈希谜题

不仅是区块链,加密货币工具和钱包都存在公钥暴露的问题。 在目前的加密货币工具和钱包中,没有一款软件将公钥视为私人信息,大多数人都不知道量子计算将如何影响比特币。

许多钱包的做法是将父扩展公钥发送到服务器,以便服务器可以监控交易并能够将数据发送回客户端。 对于使用这些钱包的每个人(即使只是暂时的),钱包会将他们的父密钥发送到服务器。 服务提供商可以根据这些公钥计算出私钥,并导出所有其他子私钥。 私钥的泄露使得使用过这些钱包的人的加密货币资产不再安全,随时有被盗的风险。

哈希算法与比特币_怎样查找比特币哈希值_比特币 哈希谜题

比特币的扩展公钥

公钥的复杂脚本和合约也存在问题。 使用脚本实现可编程交易的典型例子是多重签名技术Multisigs。 这些脚本不会散列公钥。 在合约中,并非所有合约参与者都必须相互信任,这意味着其中一个参与者可能是恶意的。 一旦出现恶意参与者,他就可以获得合约中涉及的所有公钥(通过脚本),从而窃取与这些公钥相关的加密货币。 现有的公钥散列不能防止这种情况。

怎样查找比特币哈希值_比特币 哈希谜题_哈希算法与比特币

总而言之,除了交易之外,暴露公钥的方式还有很多。 我们可能只是因为使用了钱包而暴露了公钥。

量子计算机对椭圆曲线离散对数问题(ECDLP)的威胁可能促使加密界向后量子密码学过渡,我们目前所有使用公钥加密的系统都需要改为能够抵御量子攻击的密码系统.

如果量子计算发展缓慢,密码系统有时间切换到更强大的功能并重新签署所有资产。 但是,如果椭圆密码曲线突然被破解,系统不能及时检测到,所有依赖ECDLP签名算法的签名(ECDSA和Schnorr)都可以软分割锁定所有加密货币。 基于公钥,用户可以通过提供非公开或抗量子的零知识证明来声明对私钥的所有权。

例如,用户可以通过自己拥有的 BIP32 种子来证明自己的所有权。

比特币 哈希谜题_哈希算法与比特币_怎样查找比特币哈希值

比特币 哈希谜题_怎样查找比特币哈希值_哈希算法与比特币

BIP0032标准定义的HD钱包

BIP32 种子是分层确定性钱包遵循的标准。 它是一种从单个种子(seed)生成树结构来存储多组密钥对(私钥和公钥)的系统。 我们只需要保存一个种子就可以导出所有其他子密钥。 由于零知识证明的特性,种子本身不会暴露(种子不是公钥或私钥的一部分,它们没有共享的公共组件)。 目前,这种方法是比较安全的。

因此,虽然哈希算法的单向保密机制使得加密过程不可逆,但由于公钥的暴露,当量子计算能力足够强大时,数百万比特币会被盗哈希算法与比特币,而哈希只能提供一种错误的安全感,认为现有的解决方案无法应对迫在眉睫的威胁。

当然,这一切都是基于我们假设“量子计算机的计算能力足够强大,可以通过公钥计算出私钥,但我们没有意识到这项技术的强大,未能升级相应的系统及时”。

事实上,量子计算机的每一步进步都“在众目睽睽之下”。 在量子计算机强大到能够破解椭圆曲线上的离散对数问题ECDLP之前哈希算法与比特币,比特币有足够的时间进行抗量子签名算法软解析。 Fork,最终,依赖 ECDLP 的签名将被取代。

怎样查找比特币哈希值_比特币 哈希谜题_哈希算法与比特币

比特币 哈希谜题_哈希算法与比特币_怎样查找比特币哈希值