关于:为什么比特币的私钥无法被破解?
以下为正文:
破解比特币私钥,实际上就是要在 1到 2²⁵⁶之间找到一个数,这个数对应的钱包里面有比特币。
2²⁵⁶约等于 10⁷⁷,这是个巨大的数字,对比的话,人类可观测宇宙的基本粒子也就是在 10⁸⁰这个数量级上。
人类现有的超级计算机,前 500强加起来的算力,大约是每秒进行 10¹⁸次浮点运算,有兴趣的人可以算一算,就算每次浮点运算能完成一次破解比特币的尝试,那完成破解需要多少时间。简单说,一年约有 3.1536× 10⁷秒,按上文的假设,破解一个比特币需要的时间在 10⁵¹年这个数量级上。
实际上要花的时间比这多的多,比特币网络计算的是哈希值,现在比特币全网每秒可以做约 1.51× 10¹⁸次哈希运算,这差不多相当于每秒做 1.91× 10²²次浮点运算,这远超过现有的超级计算机的算力(换句话说就是超级计算机没法对比特币网络进行攻击,能力差距太大,这和比特币网络解决的是一个专门问题,超级计算机要解决的是各种不同问题有关系)。
无论如何,我觉得超过 10⁴年(也就是一万年)的时间对我们的意义都不大了,甚至超过 10²年(也就是一百年)的时间对我们都没有多大意义。想想,要花那么多年,只是破解一个钱包的私钥,还不知道这钱包里有多少比特币,这事情实在没有做的意义,就算是知道某个钱包里有很多比特币,投入产出也不可能合算。
这些年间,被盗的比特币都是从人类这边搞的,都是什么从持币人手里盗取了私钥之类的事情,直接攻击比特币网络尝试破解私钥的,闻所未闻,未来估计也不可能有了。
有些人担心量子计算机,首先,量子计算机现在还是早期,解决的都是特定问题,没有针对处理比特币网络的问题,其次,量子计算机的算力现在还是比较低的,远远威胁不到比特币网络,第三,就算量子计算机将来发展起来了,比特币网络也会一并演进的,到时肯定会有针对性的升级。总之,量子计算机并不是比特币的一个威胁。
以下为该文的参考文献;
How Hard Is It to Brute Force a Bitcoin Private Key?
超级计算机 500强
PetaFLOPS and how it relates to Bitcoin
Bitcoin Total Hash Rate(比特币全网算力)
Observable universe(可观测宇宙)
常见的丢失私钥、密码等对应的应对措施:
1.手误删除钱包
这个就是跟我一样的操作,那遇到这种事情怎么办呢,其实只要你记住了私钥,重新下载一个钱包,把私钥导进入,重新设置钱包密码就好了。
2.手机不见了或者坏了
如果不小心自己的手机被偷了,或者坏了,只要私钥或者助记词还在,你可以重新下载一个钱包,把私钥(或者助记词)导进入,重新创建钱包就好。
3.私钥忘了,但是助记词(或者json文件)还在
如果你的私钥丢了,但是助记词或者(或者json文件)还在,那么也不用担心,助记词可以帮助你找回私钥,
4.私钥忘了
钱包没删如果你的私钥忘记了,但是钱包还在手机上,这种就非常好办了,你只要用密码登陆进入钱包,重新备份私钥就好。
5.私钥、密码、助记词都丢了
不好意思,这个全天下没有人能帮你了!
6.密码忘了或者输入错误
这个就跟我们平时登陆其他一些APP一样,这些APP如果我们忘记了密码或者输入好几次显示错误,那就点击忘记密码,重新找回就好。回到去中心化的钱包上,就需要我们用私钥或者助记词导入钱包重置密码!
7.助记词忘了
用私钥导入钱包,重新备份就好!
8.keystore忘了
如果你的钱包没删除,这个跟你私钥忘了,但是钱包没删一样的处理方法,就是用钱包密码登陆重新备份一样就好;但是如果你的钱包删了也就是卸载了,就需要用助记词或者私钥导入钱包重新备份keystore了!
比特币的破解是有可能但几乎不可能的,仅仅存在理论可能。
从背景和基本原理上来讲,比特币账户购物城是通过秘钥-公钥-地址的结构形式来构成的,可以大致理解成钥匙-箱子-箱子编号的基本模式,比特币的破解实际上就是从箱子编号或者从箱子入手破解到钥匙。
破解比特币的攻击手段一般意义上只有两种,一种是通过字典的方式进行攻击,也就是通过脑钱包直接破解。这种破解方式并非直接破解比特币持有者的比特币秘钥,而是去破解比特币持有者为记忆比特币秘钥而新设置的便捷密码,也就是脑钱包。如果是这种方式的话,首先需要比特币持有者通过脑账户设置一个新密码,同时需要对包含别的比特币持有者的个人生活信息十分了解才能破解。如果比特币持有者不设置脑账户的话,那么就无法通过这个方式进行破解。
其次是通过暴力破解的手段进行破解,也就是通过枚举法列举出所有可能的数字字母与符号的排列组合。以这些全部的组合一一进行尝试破解。但通过这种方式破解出比特币秘钥的可能性就更低了,因为比特币的秘钥是由256位二进制数字组成的。这是一个非常大的数字,使用十进制进行表示大约是十的77次方。目前市面上绝大多数的电脑算力是无法完成这个计算过程的,即便完成也需要花费几千年甚至上万年的时间。只有科研机构与高校内的部分量子计算机才可能实现这一目标。
破解比特币私钥需要多长时间?
比特币私钥本质上就是一个 256位的数字,可以用 64位的 16进制来表示,那么我们在应用程序中输入这样一个数字来估计破解时间,会发现什么呢?
结果会显示INFINITI,我们可以发现几乎不可能暴力破解比特币私钥,Better buy无法显示出其所需要的时间,而“infinity”是指没有任何边界或大于任何自然数的东西。
那钱包助记词呢?
我们当中到底有多少人确切知道自己的私钥?大多数钱包在你设置钱包时都会为你提供一个助记词,它们通常由12到 16位的字符组成,并督促你存储在安全的地方。
从我为本文目的而设置的一个空钱包中测试一个随机助记词,我们得到的结果是暴利破解它仍然需要无限的时间。
那更具体的细节呢?
我们的比特币钱包种子可能会被写在某个地方,但我们的钱包通常可以通过不那么繁杂的防御措施去访问。软件钱包可能在手机上或电脑上,只隐藏在密码或单词后面,硬件钱包可以用一个简单的 4位数字密码来保护。
坏消息是一位4位数的PIN仅仅需要 5毫秒就能破解,假如你被锁在门外之前可以尝试无数次。这款应用可以让你回到过去,你会发现这款App在1992年用的时间会更长,需要 3分半,但这样安全性在很大程度上依赖于防止攻击者一次性发送全部选项。
就密码而言,一个由 7位随机字母组成的字符串在一起,不到半毫秒就能破解,而把一个字母数字的密码增加 5个小时,所以密码要越长越好,用今天的技术来破解 12位的随机字符需要 2个世纪。
而提高其安全性的另一种方法是结合使用大小写字母,数字和特殊字符。密码大约可以在五分之一毫秒破解,如果黑客不使用单词列表,也可以在五周内破解。而类似这样的密码P@ssw0rD需要 14年时间才能暴力破解。
所以其实私钥基本上是不可能暴力破解的,但比特币钱包安保最薄弱的环节永远是自己,哪怕你是Jack Dorsey。