比特币的安全性到底有多高?

安全 应用安全
比特币从09年诞生直径,已经过去12年了,从一文不值到目前的近4万美金一枚,总市值7500多亿美金。已经完全成长为一个庞然大物,那么,比特币目前安全性究竟怎样,持有比特币会被其他人偷走吗?

 01私钥、公钥、地址

就像银行取款、网银转账需要输入密码一样,动用钱包里的比特币也需要密码,这个密码被称之为“私钥”。

与“私钥”对应的是“公钥”,“公钥”就像你的银行账户。每个银行账户都有唯一的账户编号,也就是银行卡号。在比特币网络中,这个银行卡号就是“地址”。别人只要知道你的“银行卡号”(即地址),就可以给你转比特币了。

在银行,开户流程基本是“开设银行账户——给银行卡号——设置银行卡密码——开户成功”。但在区块链世界里,是先设置“密码”(私钥),再开设“银行账户”(公钥),最后给“银行卡号”(地址)。

 

 

 

 

[[414922]]

 

如果你路上捡到了一张纸条,上面只写着银行卡密码,但没写银行卡号,即便这个银行卡密码是真的,你也无法取走相关账户里的钱。

但在区块链世界,你只要知道了别人的“银行卡密码”(私钥),就可以知道别人的“银行账户”(公钥)和“银行卡号”(地址),可以取走里面的币。

为什么会这样呢?

这是因为在区块链中,私钥通过加密生成公钥,公钥转换一下格式生成地址。也就是说,私钥可以推导出公钥,公钥可以推导出地址。

02反向推导?没门!

既然“私钥可以推导出公钥,公钥可以推导出地址”,动用账户里的比特币又必须输入“密码(私钥)”,那黑客要窃取你钱包里的比特币,必须、也只需拿到“私钥”即可。

 

理论上,黑客有2种方法窃取你的私钥:

1、通过地址/公钥,反向推导出私钥。

2、一个一个地去试私钥,也就是暴力破解。

第一种方法并不可行,因为比特币采用的加密算法,“失之毫厘,差之千里!”。输入的内容,稍稍变动哪怕一丁点的东西,加密后输出的结果和之前输出的结果也有天壤之別,而且这些结果没有规律可循。

所以,这种加密算法是“单向的”、“不可逆的”,黑客无法通过输出(地址/公钥)推导出输入(私钥)。

03暴力破解比特币私钥有多难?

既然第一种方法不可行,那第二种方法如何?在回答这个问题之前,我们先看下私钥是怎么产生的。

假设你抛硬币,正面朝上为1,反面朝上为0,连续抛256次,把每次抛的结果记录下来,再转换成十六进制数,就是一个比特币私钥。

What? 这么简单?这么任性?

没错,比特币的私钥就是通过程序“抛256次硬币”,随机生成的。所以,比特币私钥的本质是256位二进制数。

 

每次抛硬币,都有正反2面,所以抛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的37次方」倍,整整37个0。在比一个地球的沙子数量还要多「10的37次方」倍的比特币私钥集里,一个一个地试,破解出某个地址对应的私钥,简直比大海捞针还难。

所以,即便黑客有超级计算机,都无法暴力破解比特币私钥。

这就是为什么很多人说,“比特币第一次通过技术手段,保证了个人的私有财产神圣不可侵犯”。

04如果比超级计算机还要厉害?

虽然未来的科技如何发展谁都无法准确预测,但如果有一天,人类发明了比超级计算机、量子计算机还要厉害的计算机,比特币私钥不就不安全了吗?

 

确实,很多人想知道量子计算机到底对比特币的安全性有没有威胁,如果有威胁,比特币有哪些措施可以应对。

鉴于这个问题不是三言两语能解释清楚,后面我们会单独开一篇文章,探讨这个问题,敬请期待。

05结语

当然,安全问题不仅仅牵涉到技术问题,也牵涉到私钥的保存,钱包授权等问题。如果是因为自己私钥保存不当,或是电脑中了病毒,或是使用的钱包软件有漏洞或是有后门,导致私钥被黑客窃走,那钱包里的比特币安全性就无从谈起了。

但是,因为自己的失误导致私钥被盗,这锅不能让比特币背,不是吗?

所以,如果有人拿比特币被盗事件来质疑比特币的安全性,你会怎么回答他呢?

责任编辑:华轩 来源: 白话区块链
相关推荐

2022-03-30 14:42:10

比特币安全私钥

2022-01-21 00:15:49

区块链比特币安全

2020-12-22 15:53:06

比特币安全人民币

2016-01-18 10:52:28

2022-05-30 08:21:17

Kafka数据传递

2021-06-04 15:08:03

比特币加密货币区块链

2020-11-17 06:49:17

5G频谱移动

2016-03-06 22:58:26

2020-11-17 10:27:18

5G网络技术

2018-01-26 17:35:56

前端程序员月薪

2022-09-30 14:15:07

区块链比特币虚拟货币

2018-11-15 16:15:14

2021-07-20 22:23:12

数字人民币支付宝微信

2018-04-16 11:34:59

2021-11-07 21:13:39

物联网物联网安全IoT

2016-10-14 14:10:12

2021-04-23 23:29:20

比特币加密货币匿名币

2014-08-25 10:14:08

2021-10-25 14:19:15

比特币加密货币货币

2021-02-14 00:54:20

比特币虚拟货币区块链
点赞
收藏

51CTO技术栈公众号