目前,一枚比特币的价值接近 22 万元。对于新人来说,他们必须非常关心比特币的安全。
那么,比特币安全吗?换句话说,钱包里的比特币,容易被黑客盗走吗?
01.私钥、公钥、地址
就像银行取款和网银转账需要输入密码一样,钱包里的比特币也需要密码。这个密码叫做“私钥”。
与“私钥”对应的是“公钥”,“公钥”就像你的银行账户一样。每个银行账户都有唯一的账户号,即银行卡号。在比特币网络中,银行卡号是“地址”。只要别人知道你的“银行卡号”(即地址),你可以转比特币。
在银行,开户流程基本上是“开立银行账户——给银行卡号——设置银行卡密码——开户成功”。但在区块链世界中,首先设置“密码”(私钥),再打开“银行账户”(公钥),最后给“银行卡号”(地址)。
如果你在路上找到一张纸条,上面只写着银行卡密码,但没有银行卡号码,即使银行卡密码是真的,你也不能从相关账户中拿走钱。
但在区块链世界里,你只需要了解别人“银行卡密码”(私钥),你可以知道别人“银行账户”(公钥)和“银行卡号”(地址)里面的硬币可以取走。
为什么会这样?
这是因为在区块链中,私钥通过加密生成公钥,公钥转换格式生成地址。换句话说,私钥可以推导出公钥,公钥可以推导出地址。
02.反向推导没门!
既然“私钥可以推导出公钥,公钥可以推导出地址”,必须输入帐户中的比特币“密码(私钥)”,黑客必须窃取你钱包里的比特币,只需要拿到“私钥”即可。
理论上,黑客窃取你的私钥有两种方法:
1、私钥通过地址/公钥反向推导。
2、一个个尝试私钥,也就是暴力破解。
由于比特币采用的加密算法,第一种方法是不可行的,“失毫厘,差千里!”。加密后的输出结果与之前的输出结果大不相同,输入内容略有变化,甚至稍有变化。
因此,这种加密算法是“单向的”、“不可逆的”,黑客无法通过输出(地址/公钥)推导出输入(私钥)。
03.暴力破解比特币私钥有多难?
既然第一种方法不可行,第二种方法是什么?在回答这个问题之前,让我们看看私钥是如何产生的。
假设你扔硬币,前面是1,后面是0,连续扔256次,记录每次扔的结果,然后转换成16进制数,这是比特币的私钥。
What? 这么简单,这么任性?
是的,比特币的私钥是通过程序进行的“抛256次硬币”,随机生成。因此,比特币私钥的本质是256位二进制数。
每次扔硬币,都有正反两面,所以扔256次,总共可以出现「2 x 2 x2 x 2……2 x 2x2」,即256个2相乘,即「2的256次方」结果。因此,理论上有比特币私钥总数「2的256次方」个。
注:私钥总数的实际值略低于上述理论值,因为少数私钥不能使用,但对总数影响不大。
「2的256次方」它有多大?它等于「10的77次方」。那「10的77次方」又多大了?
如果我们生活在这个地球上,海洋、岩石和地下的岩浆都是用沙子填充的,整个地球的沙子数量可能是「10的30次方」。也就是说,一个和地球一样大,都是沙子组成的星球需要使用「10的30次方」粒沙子。
「10的77次方」比「10的30次方」大「10的47次方」倍,47个0。比地球上的沙子多。「10的47次方」倍的比特币私钥集里,一个一个地试,破解出某个地址对应的私钥,简直比大海捞针还难。
因此,即使黑客有超级计算机,也无法暴力破解比特币私钥。
这就是为什么很多人说,“比特币首次通过技术手段确保个人私有财产神圣不可侵犯”。
04.如果比超级计算机更强大的话
虽然未来的科技如何发展谁都无法准确预测,但如果有一天,人类发明了比超级计算机、量子计算机还要厉害的计算机,比特币私钥不就不安全了吗?
的确,很多人都想知道量子计算机是否威胁到比特币的安全,如果有威胁,比特币可以采取什么措施来应对。
鉴于这个问题不能用几句话解释清楚,我们以后会单独开一篇文章来讨论这个问题,请期待。
05.结语
当然,安全不仅涉及技术问题,还涉及私钥的保存。如果私钥保存不当,或者电脑中的病毒,或者使用的钱包软件有漏洞或后门,导致黑客窃取私钥,那么钱包中比特币的安全就不可能谈了。
然而,由于他们自己的错误,私钥被盗,这个锅不能让比特币携带,不是吗?