# 我们离抗量子区块链的采用还有多远? ## 概述 最近,微软发布了它们在量子计算机上的新进展,量子芯片Majorana 1,[Microsoft’s Majorana 1 chip carves new path for quantum computing](https://news.microsoft.com/source/features/innovation/microsofts-majorana-1-chip-carves-new-path-for-quantum-computing/),其创造了一种名为拓扑导体的新材料,并使得一种原本只存在于理论的微观粒子Majorana成为现实,目前该芯片被放置了8个比特,但微软生成该芯片可被扩展至百万量子比特。 目前整个区块链的密码学根基,即哈希算法与椭圆曲线密码学依然安全,根据Mara的报告[Bitcoin vs. Quantum Computing: More Hype Than Reality](https://www.mara.com/posts/bitcoin-vs-quantum-computing-more-hype-than-reality),要在一小时内破解ECDSA需要2.17亿个物理量子比特,即使使用五年来计算也需要数千个,而目前最强大的量子计算机,也只有不过一百来个量子比特。 即便我们已默认实用的量子计算机可能几十年后才会出现,但是考虑到AI在近几年的飞速发展,AI的智能进化一次次震动我们,我开始怀疑是否一旦找到可行的突破口,由美国,中国以及全世界天资卓越又勤奋的科学家和工程团队,将会以我们想象不到的速度将量子计算机推向实用。 接下来,我会以我了解的知识来科普,目前的区块链系统离抗量子还有多远?有哪些区块链系统正在或者已经可以被认为是踏入了抗量子区块链的大门。但我需要声明,我不懂量子物理,对抗量子密码学的了解也不够深入,一切都来源于公开可搜索到的信息。 ## 分析基础 我们大致可以将任何一个区块链系统分成三层,网络层,共识层,以及执行层。一旦有必要,网络层升级到抗量子是最简单的,所以我将专注于讨论共识层和执行层的抗量子性。 最常用的共识算法有两种,即Proof of Work以及Proof of Stake。 对于PoW,目前只要选用的哈希算法安全合理,如Sha256,Sha512,Sha3,Blake2b,Blake3,PoW共识算法可以被认为是抗量子的,Grover's algorithm可以实现√N的复杂度在一个大小为N的数据集中找到对应的值,这将使得基于量子计算机的矿机会更快挖到块,但是由于所有的PoW区块链都有难度调整机制,这只不过会将对应链的难度推高到更高的位置,PoW本身依然安全。 对于PoS,目前几乎所有的PoS系统都不抗量子,它们都实用基于椭圆曲线密码学的签名算法来进行签名或者计算VRF。 在PoS链中,Algorand正在计划逐步将其推向抗量子。但是抗量子签名算法的签名或者公钥的体积一般比基于ECC的要大得多,这对于共识信息的同步有极大影响,所以最终要么接收更少的节点参与,要么提高带宽准入门槛。同时,由于长程攻击的存在,量子计算机可以轻松破解历史验证人的私钥,然后任何分叉出新的最长链。 在共识层面,另一个值得讨论的是zkRollup,由于大部分zkRollup最终依然使用Groth16进行最终的链上验证,这也是基于椭圆曲线密码学的,而使用STARK进行验证,将只依赖哈希。 而对于执行层,使用何种非对称密码学是影响抗量子性的关键因素,而目前统治这一领域的仍然是椭圆曲线密码学。对于合约地执行,由于所有节点只是简单地从一个输入计算出一个结果,这当然不会受抗量子影响,除非其中又依赖了别的密码学组件。 ## BTC BTC在共识层面可以认为是抗量子的,因为它只依赖哈希算法,即使当前使用的Sha256不再安全,通过硬分叉更换哈希算法也比让所有用户更新密码学算法要简单得多。 BTC在执行层,有一部分可以认定为抗量子,在Taproot升级之前,最流行的地址格式是p2pkh,即使用公钥的哈希作为收款地址,如果保持一个地址只使用一次的用法,这会使得量子计算机也难以攻破。 但在其他方面,量子计算机给BTC还是会带来巨大的威胁。首先,在p2pkh被推出并广泛使用之前,p2pk是最主要的地址格式,该格式直接使用ecdsa的公钥作为地址,因从无法抗量子,中本聪的百万BTC就保存在这种格式下。其次,在Taproot升级后,大量用户开始转用p2tr地址,该格式使用schnorr公钥作为地址,一样存在风险。 即使所有当前的用户愿意将资产迁移至抗量子计算机,但当中本聪以及许多BTC老OG的地址被破解,天量BTC砸盘也会使得BTC一文不值。 ## ETH 在共识层面,ETH已经从PoW转向了PoS,由于ETH的PoS需要支持数以万计的验证人,签名算法的聚合能力就显得非常重要,将签名聚合可以显著降低通信开销,所以ETH在共识层大量使用了BLS签名,这也是基于ECC的签名算法。如果ETH想要将当前的共识算法升级成抗量子,那么它要么改回PoW,要么缩小节点集大小,要么寻找一种聚合性能良好的抗量子签名,或者基于STARK的签名。 另外,ETH的路线图上还有诸多非抗量子的密码学,比如说EIP4844升级,引入了基于KZG承诺的blob,所有使用blob的Layer2都会因此而受量子计算机威胁。而无状态路线图使用的Verkle Tree,目前是基于IPA承诺的,一样会受量子计算机威胁。 在执行层面,ETH使用ECDSA公钥的哈希作为账户地址,但是由于账户模型下几乎所有人都是重用账户,所以这部分是不抗量子的,同时ETH存在BN254,以及即将升级加入的BLS12-381等配对友好椭圆曲线操作,一样是不抗量子的。 总的来说,ETH是一个持续在改进升级的区块链,也因此拥有无数的技术包袱,其想要完全推进到抗量子可能是一件更繁琐的事情,但是由于ETH偏中心化的治理结构,也许真遇到量子计算机威胁,基金会依然可以像TheDAO事件里一样,排开众议推进激进地抗量子升级,并将所有未升级的部分直接冻结。 ## Solana Solana在共识层最主要的部分是BFT协议,验证人需要构建Vote交易并将其发送出去,目前这依赖于ED25519共识算法,而在执行层,情况是一样的。 Solana生态有研究员实现了一个抗量子的资金vault-[deanmlittle/solana-winternitz-vault: Solana Winternitz quantum-resistant lamports vault](https://github.com/deanmlittle/solana-winternitz-vault),这当然不能完全解决问题,真的要抗量子,必须把共识层和执行层依赖的ED25519全部升级抗量子签名才行。 ## Algo Algo是少数把抗量子放在路线图中推进的PoS项目,根据它们的文章-[Algorand’s post-quantum blockchain technology | Algorand](https://algorand.co/technology/post-quantum),目前它们实现了使用抗量子的FALCON签名的状态证明,由此可以保证Algorand的交易历史不会被量子计算机进行长程攻击。此外,Algorand也正在推进在执行层整合FALCON签名,并探索基于XMSS的抗量子VRF取代当前基于ECC的VRF,实现完全的抗量子。 同时,我注意到,CoinMarketCap将已实现抗量子的区块链作为一个分类存在-[Top Quantum-Resistant Tokens by Market Capitalization | CoinMarketCap](https://coinmarketcap.com/view/quantum-resistant/),我将挑选其中市值靠前的代币进行简述。 ![image](https://hackmd.io/_uploads/BJQ9_A49yl.png) ## CKB CKB是一条基于PoW以及扩展UTXO模型的区块链,它的结构非常类似BTC,但是在具体的PoW设计上有所优化,同时使用图灵完备的RISC-V虚拟机作为脚本的执行引擎。 由于其共识算法是基于PoW的中本聪共识,所以可以认为其在共识层面是抗量子的。 那么在执行层面呢?由于CKB支持完全的账户抽象和任意密码学原语,链本身并没有强制使用任何一种签名算法,同时由于解锁脚本可以任意编程并在RISC-V上执行,基于这种抽象能力,可以认为其在执行层也是抗量子的。 作为示例,CKB Core Team实现了基于SPHINCS+的解锁脚本,可以在这篇文章看到更多细节[Quantum Computation: New Challenge to CKB’s Security?](https://blog.cryptape.com/quantum-computation-new-challenge-to-ckbs-security),当然,由于其账户抽象能力,任何人都可以在CKB上部署诸如基于FALCON或者STARK的抗量子解锁脚本。 但不可忽视的是,目前CKB上正在使用的主流解锁脚本仍是基于ECC的,虽然使用哈希进行了掩藏,但是如果用户不遵从一个地址只用一次的原则,那么量子计算机仍然会影响这部分重复使用的基于ECC的地址。 ## QRL QRL自提出以来就以抗量子作为卖点,在最初的白皮书中,它们提出使用基于基于XMSS的签名算法替代ECDSA,并且使用权益证明作为共识,但最终主网上线的仍然是使用RandomX哈希算法的PoW共识。 目前,QRL仍在开发基于PoS的新链[theQRL/go-zond](https://github.com/theQRL/go-zond),它们在以太坊go-eth的基础上,将其共识层修改成抗量子的PoS,并将签名改成基于XMSS的签名算法,但具体的升级时间仍未确定。 ## 总结 由于目前的抗量子签名相比基于ECC的签名算法仍有相当大的劣势,主要体现在公钥或者签名的大小高达数KB以上,而基于ECC的在100字节以内,同时计算抗量子签名以及验证抗量子签名的计算量也显著高于基于ECC的签名算法,所以推动起来还是存在很大的阻力的。 我们能做的是,首先尽可能鼓励大家在基于公钥哈希的区块链上使用一个地址只用一次的模式,其次,尽快将推动抗量子提上议程,因为暴露在量子威胁下的地址越多,链的经济安全性越低,想象有30%的代币处于量子威胁之下,哪怕剩下的70%都升级到抗量子了,这30%的总量也足以使代币的市值严重下降。 同时,不得不感叹基于PoW的中本聪共识之简洁与优美,哪怕在量子计算机时代,这由诸多历史上的能量慢慢沉淀下来的结算保证,依然可以保护区块链的安全。