现在很多人都在担心未来某一天量子计算机出来了,将击溃比特币。那么,“量子霸权”如何攻破比特币?
要解释这个问题,我们首先要理解百分之51%攻击和安全协议。来自于其协议中的两个特征PoW(proof-of-work,工作量证明)和加密签名的不对称性上。所谓不对称性,指的是运算可以从一个方向容易地进行,却难以从另一个方向进行。
工作量证明的目的是不让一方单独操纵区块链,以造成双重花费。工作量证明的基本原理就是客户端需要做出一定难度的工作得出一个结果,而验证方却可以很容易地通过结果来检查客户端是不是真的做了相应的工作。它的核心正是不对称性:相比于请求方完成工作的难度,验证方验证的难度小得多。
在比特币系统中,矿工将未处理的交易捆绑到一个块中,并通过做 PoW 任务获得一定比特币的奖励。而处在比特币网络中任何一个节点,如果想生成一个新的区块并写入区块链,必须先解出比特币网络出的工作量证明的问题。
验证区块声明的头文件满足 PoW 条件则非常简单,它只需要对 Hash(散列)函数进行一次评估。而完成工作量证明则没有那么容易。
比特币系统中使用的工作量证明函是 SHA256。也就是说,这个哈希函数有 2^256 种输出。
至于第二特征——加密签名,则是用来授权交易。在一个交易被广播但是加入到区块链中之前是最容易被攻击的。如果在此时可以通过广播的公钥破解出密钥,就可以利用这个密钥从原地址广播一个新的交易给自己的地址,并让这一交易先进入区块链之中,就可以取走原地址中所有的比特币。
目前比特币使用椭圆曲线数字签名算法(ECDSA),利用 secp256k1 生成密钥。
如果可以在特定的时间内完成对以上两个问题的破解,也就攻破了比特币的安全系统。
对于当前计算的计算能力来说,这是不可能的,但对于远远超过普通计算机计算能力的量子计算机而言却完全不在话下。
那么,我们有必要担心吗?完全没必要。要回答这个问题,首先我们要了解什么是量子计算机。
在经典计算机里,存储的信息单位是比特(bit),比特使用二进制,也就是说一个比特表示的不是“0”就是“1”。
但在量子计算机里,情况会变得完全不同,量子计算机的信息单位是量子比特(qubit),量子比特可以表示“0”,也可以表示“1”,甚至还可以是“1”和“0”的叠加状态(superposition),即同时等于“0”和“1”,而这种状态在被观察时,会坍塌成为“0”或是“1”,也就变成了确定的值,其实也就和经典量子理论“薛定谔的猫”是一个道理(把一只猫放到一个不透明的特殊盒子中,在打开盒子前,这只猫既可能是死的,也可能是活的,打开后,两种可能性才坍塌到其中一种)。
除此之外,两个量子比特还可以共享量子态,无论这两个量子比特离得多远,也就是所谓的“量子纠缠”(entanglement)。
量子计算之所以如此重要,除了因为它“快”,还因为它可以重新定义程序和算法,颠覆众多领域,例如:
军事方面,一切现有的密码学全都要被重新改写,因为用量子计算机能轻易破译所有密码;医学方面,量子计算机可以模拟人体内的各种化学分子,建立起医学模拟的新模型;此外还有气象学、材料科学等种种领域都面临着量子计算的颠覆。
这就是量子计算机可怕之处,也就是说,量子计算机出来了,不仅现有数字货币会面临巨大灾难,但灾难更可怕的是现有银行体系。
虽然随着量子计算机不断走向成熟,整个非对称加密体系下的算法(包括ECDSA)都会受到巨大的冲击,但量子计算机的两个算法Shor和Grover还无法对比特币造成威胁。
比特币的钱包地址都来源于ECDSA的私钥和公钥,然而钱包地址却并不是直接公钥,而是公钥的哈希值,在公钥没有暴露的情况下,Shor是无法使用的。
因而,即便量子计算破解了非对称加密算法,对于那些没有使用过的冷钱包,也无法破解。如果非得破解冷钱包,需要先把钱包地址逆向出来其公钥,但这个操作Shor无法完成,只能借助其他算法。
而Grover虽然有破解的可能,但在可预见的时间里是无法破解的。
从这个意义上讲,bitcoin 对 quantum computing 还是有一定免疫力的。在大家担忧量子时代到来后(可能二三十年到来,也可能三五十年) bitcoin 的前景时,还是先担忧一下现有的 PKI 体系吧,毕竟,信用卡,网银,微信支付,支付宝等所有基于非对称加密来保证安全的系统,可能都会变得不再可信。
也就是说,如果量子计算机真的出来了,遭殃不是比特币,而是现有的银行等加密体系,这更容易被攻击。
这才是要担心的。
目前我们离真正的量子计算机还有距离,现在,量子计算机还只是非常初步的阶段,量子比特的脆弱、不稳定性还有低精度的问题还没有解决,要实现实用量子计算机还有很长的路要走。
并且,量子计算机本身也面临很多问题。量子计算机之所以能达到如此神速,就是因为量子比特的叠加状态和量子纠缠,但与此同时,量子叠加和纠缠状态是极度脆弱的,不能受到一丁点干扰,量子计算机必须在极度低温条件下工作,低到什么程度呢?零下273摄氏度差不多吧,这就好比拿一根很细很细的针顶起一个鸡蛋,稍有干扰,结果就会变得一片狼藉。
所以,根本不需要担心。
本文地址: https://www.xiguacaijing.com/news/guandian/2018/1395.html
赞助商