比特币私钥是什么?备份dat后比特币钱包里所有的钱都备份起来了吗?
时间:2016-10-23 来源:知乎 作者:闪电HSL
比特币基础课程一——使用比特币前必须掌握的三个概念:地址、私钥和钱包 黄世亮 闪电HSL 第0章 引言 我在2012年的时候,教我爸爸使用支付宝。对于一个完全没有接触过第三方支付的人来说,要让他接受支付宝是安全可靠的,至少是和银行的安全性相当的,其实非常难。我没有多废话,而是直接先让我爸爸注册了一个支付宝账号,让他知道支付宝APP、账号和密码这三个最基础的概念。 同样的,比特币对绝大多数人来说都是相当的陌生,在使用之前必须掌握的三个基础概念是比特币钱包、地址和私钥。 第1章 银行账号和密码 我们在银行里存款的所有权是通过银行账号和密码来确立的,这个非常好理解。你去银行开户时,会登记身份证信息,身份证是全国唯一的,你的银行账号也是全国唯一的。你开户时设有密码,这是你可以操作账户里的钱的凭证。 如果有人要向你汇款,你只需要将银行账号告诉他就可以了。银行账号是可以公开的,只要密码不泄露就是安全的。 即使是你的银行卡遗失了,只要不被知道你密码的人捡走了,你的钱也是安全的。你只需要拿身份证去银行补办就行了。这就是说,用户存在银行的钱其实并不是存在银行卡里,而是存在银行里的。 类似的,如果你在手机里装一个网银APP来操作你的银行账号里的钱,你的钱并不是存储在手机里的,你的手机遗失了,钱也不会丢。换个手机装个相同的APP,然后用账号和密码登录,你又可以使用网银了。当然如果真丢了手机,最好及时换个密码。 支付宝的账号及密码,以及微信支付的账号和密码都和银行类似。 第2章 比特币地址和私钥 比特币的所有权是通过私钥和地址来确立的。我们可以先简单地用类比来理解,私钥就类似于银行账户密码;地址就类似于银行账号。 新建一个比特币地址不像银行开户那样需要身份证,用手机或电脑下载一个比特币钱包(这是一个软件,或APP,见下一章)就可以生成一个比特币地址。下面就是一个比特币地址: 14mhzjkJ71oMAMkKu3dy98dnUpkyQBHL1r 生成一个比特币地址的同时就会有一个私钥被生成,严格来说是先生成私钥,然后通过私钥使用加密函数来计算出地址。但我们这里不做太严格的区分,如果太严格的话,我们需要理解更多的概念,但这些知识细节不会影响到我们使用比特币。下面就是一个比特币私钥: KxkmRGmtTJ3nYyTwaU2uQPCPFWjjLKTT987Z2vqXG3itByMa2pDP 作为比特币用户,我们很少会直接看到私钥,一般情况下,私钥是被存储在钱包文件里,由钱包软件进行管理。 如果你不对钱包进行加密的话,甚至你可以不需要使用密码就可以发送你的比特币。当然最好别这么干,一定要给钱包加密。 如果有人要向你发送比特币,你只需要将你的地址告诉他就好了。 而如果你要向他人发送你拥有的比特币,你需要使用钱包软件来完成“私钥签名”构造一笔交易,然后通过网络去广播交易。虽然这里用了很学术的话语来描述,但事实操作过程其实就和你用支付宝向他人付款是一样的。将收款方的地址复制到你的比特币钱包的要“发送给”(不同的钱包会有不同的命名,但意思都一样)这一栏。然后填写你要支付的金额。接着输入你之前设定好的密码,就可以发送了。 第3章 比特币钱包 正如我们使用钱包来存放人民币一样,存放比特币也是需要“钱包”的。钱包是我们用来生产私钥和地址、管理私钥和地址、接收和发送比特币的工具。 比特币钱包有很多种,有PC端的也有手机端的,也有专门的一个设备的硬件钱包,甚至还有用纸写上私钥的纸钱包。比如下面就是一个纸钱包: 在电脑和手机上的比特币钱包就是一个软件。这个网站提供了大多数钱包软件下载: https://bitcoin.org/en/choose-your-wallet 比如Bitcoin Core钱包就可以安装在电脑上,安装完后。你就可以打开钱包,然后生成地址和私钥。而安装后在相应的文件夹里会生成一个叫wallet.dat的文件。这个文件里存的就是你的私钥。打比方说,这个wallet.dat文件就相当于银行卡,上面写着你的银行账号,但wallet.dat里还写着你的取款密码。所以要注意保护好你的wallet.dat文件。当然你可以对wallet.dat文件加密,来提高安全性,而且装好钱包要第一时间设置密码。 所以说钱包的精髓就是用来保存私钥的,也就是任何可以保存私钥的东西都可以被称为钱包。电脑有钱包,手机也有钱包。纸钱包就是把私钥记录在纸上的钱包。 只要有私钥,就代表了你拥有了对应的比特币。所以保管私钥的钱包非常重要。 这里有个很白痴的问题,我新装一个钱包新生成一个地址,里面是不会有比特币的,天下不会掉馅饼的。我要先往地址里打比特币,然后才会有币。这和你去银行开户,你不存钱进去就不会有钱是一个道理。 第4章 私钥和地址从哪来? 上面讲到我们是用钱包来生成比特币私钥和地址的,它的生成过程本质上是计算一个随机数。甚至我们使用抛硬币的方式也可以生成比特币的私钥,然后通过手工计算来算出地址。这是因为私钥就是一个随机选出的数字而已。 通过抛硬币将正面向上计为0,反面向上计为1,连续抛256次,就随机得到一个256位的二进制数字。这个数字就是私钥。 这个随机性有多随机呢 全世界的人随便怎么抛,被抛出两个相同的256位二进制数字的概率无限接近零,就是不可能出现相同。让计算机去抛硬币来碰私钥,穷尽全地球的计算机无法抛出相同的私钥。所以这样私钥只要生成出来,就是全地球唯一的,那它就可以被用来标识所有权而不用担心和别人重复。 有了私钥,就可以通过加密函数来生成地址。 这个生成方向是单向的。也就是你知道了地址是无法通过解密方法来计算出私钥的。就目前的人类计算机运算能力,穷尽全地球的计算机也破解不了。所以说你可以很放心地把地址发给别的,公布到网上。但千万别把私钥透露给别人,否则你的比特币就不是你的了。 第5章 比特币私钥存在哪? 比特币地址和私钥都是可以不存储在网络上的。 就比如按上面抛硬币抛出来的私钥,就可以不出现在网络上。 比特币私钥和地址更是可以独立于你的钱包而存在的。 就是说你只要备份了你的私钥,那即使是你的比特币钱包丢了,或者电脑坏了,手机被人偷了,都可以再换一个电脑装一个钱包,然后使用导入私钥的办法恢复你的比特币。 这和你装有支付宝的手机被人偷了,然后你再买一个手机再装一个支付宝APP,然后使用账号和密码登录就可以看到你的钱是一个道理。 你可以在一台永远不上线的电脑上装一个比特币钱包软件,然后生成地址。这时候你的私钥是完全没有接触过互联网的。这个地址也可以用来接收比特币,而且你也可以在这台电脑上用私钥签名构造“交易”,然后到另外连网的电脑钱包上去广播来发送比特币到别的地址。这就是离线钱包,又叫冷钱包。是最安全的存储比特币的方式。 真正必须存在比特币网络里的东西是“交易” ,比如你的地址收到一笔比特币,这次“交易”是会被比特币网络记录的,这是不能离开网络的。但私钥和地址都可以和网络无关。这样的设计实现了比特币许多非常棒的功能,这以后我们要慢慢讲到。 第6章 结束语 比特币是由一系列概念和技术作为基础构建的系统,理解起来并不会很难,只要一个一个概念慢慢摸清楚,就OK了。 (想第一时间阅读我的比特币科谱文章,请关注我的公众号: 闪电HSL) |