zoukankan      html  css  js  c++  java
  • 比特币的安全性到底有多高?

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

      

      近期,比特币突破新高,一枚比特币价值近15万人民币。对于刚入圈的新人来说,你肯定很关心比特币的安全问题。

      

      那么,比特币安全吗?换句话说,钱包里的比特币,容易被黑客盗走吗?

      

      01私钥、公钥、地址

      

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

      

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

      

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

      

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

      

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

      

      为什么会这样呢?

      

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

      

      02反向推导?没门!

      

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

      

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

      

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

      

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

      

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

      

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

      

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

      

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

      

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

      

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

      

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

      

      每次抛硬币,都有正反2面,所以抛256次,一共可以出现「2 x 2 x2 x 2……2 x 2x2」,即2562相乘,也就是「2256次方」种结果。所以,比特币的私钥总数,理论上有「2256次方」个。

      

      注:私钥总数的实际值比上面的理论值略低,因为有一小部分私钥不可用,但对总数影响微乎其微。

      

      「2256次方」是多大呢?它约等于「1077次方」。那「1077次方」又是多大呢?

      

      如果我们居住的这个地球,海洋、岩石、地底下的岩浆全部用沙子来填充的话,整个地球的沙子数量大概是「1030次方」。也就是说,一个和地球一样大,全部由沙子组成的星球,需要用到「1030次方」粒沙子。

      

      「1077次方」比「1030次方」大「1047次方」倍,整整470。在比一个地球的沙子数量还要多「1047次方」倍的比特币私钥集里,一个一个地试,破解出某个地址对应的私钥,简直比大海捞针还难。

      

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

      

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

      

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

      

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

      

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

      

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

      

      05结语

      

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

      

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

      

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

      

  • 相关阅读:
    TortoiseGit安装与配置
    Git GUI安装与配置
    Java小知识点
    form中button未设置type值时点击后提交表单
    文件上传下载学习笔记
    Listener--监听器学习笔记
    验证多个Filter过滤一个资源时执行顺序
    Filter--过滤器学习笔记
    Spring的DAO异常-你可能忽视的异常
    web安全浅析
  • 原文地址:https://www.cnblogs.com/jinsexiaomifeng/p/14173707.html
Copyright © 2011-2022 走看看