《精通比特币》学习:搞清楚公钥私钥、密钥、地址、钱包

今天学习主要搞清楚有关密钥、地址、钱包这几个在比特币网络中经常出现的概念。

1、比特币的所有权是通过数字密钥、比特币地址和数字签名来确立的。——数字资产确权

2、密钥相当于是你管理和控制比特币的钥匙,谁拥有密钥就拥有打开这个比特币宝库的权力,谁就是这个宝库的拥有者。密钥由公钥和私钥组成,公钥就像银行的账号,而私钥就像控制账户的PIN码或支票的签名。

3、密钥很重要,所以并不保存在网络中,而是用户自己存储在一个文件或者本地数据库中,就是钱包。钱包的用户感知个人理解就是前面所介绍过的钱包客户端,密钥的生成和管理由钱包客户端自动完成。

4、比特币的用户很少直接看到密钥,密钥由比特币钱包软件存储和管理。但是当别人支付比特币给你的时候,对方支付到哪里去呢?实际上你给到对方的是一个比特币地址,比特币地址由公钥通过哈希计算得出,而且是不可逆的,意思是可以由公钥哈希计算出地址,但不能由地址反推得出公钥。你的朋友就可以支付比特币到你的这个地址。注意一个用户可以拥有多个比特币地址,这样可以解决账号隐私的问题,如果你是一个美女,总是有一个帅哥转账给你,让所有人都知道就不好意思了,你就可以经常更换地址。

5、每个密钥对包括一个私钥和一个公钥。私钥就是一个随机选出的256位的数字(应该是二进制数字),比如你可以拿一枚硬币来抛,正面代表1,反面代表0,抛256次,把每次的结果记录下来形成的256个数字组合就可以做成私钥。私钥用于生成支付比特币所必需的签名以证明资金的所有权。私钥必须始终保持机密,因为一旦被泄露给第三方,相当于该私钥保护之下的比特币也拱手相让了。私钥还必须进行备份,以防意外丢失,因为私钥一旦丢失就难以复原,其所保护的比特币也将永远丢失。

6、公钥是采用椭圆曲线算法,以私钥为基础计算出来的,计算过程是单向不可逆的,就是说可以通过私钥算出公钥,不可以通过公钥算出私钥,结合之前的描述,私钥,公钥,比特币地址的关系可以表达为下图。

《精通比特币》学习:搞清楚公钥私钥、密钥、地址、钱包

私钥公钥和比特币地址衍生关系

备注:椭圆曲线加密法是一种基于离散对数问题的非对称(或公钥)加密法,可以用对椭圆曲线上的点进行加法或乘法运算来表达。更多细节就不展开了,有兴趣可以百度查阅详细资料。

7、另外一种制作私钥的途径是 确定性密钥生成。你可以用原先的私钥,通过单向哈希函数来生成每一个新的私钥,并将新生成的密钥按顺序连接。只要你可以重新创建这个序列,你只需要第一个私钥(称作种子、主私钥)来生成它们。比特币钱包只包含私钥而不是比特币,一个用户钱包包含多个私钥,用户用这些私钥来签名交易,以证明他们拥有交易的输出(交易输出相关内容见第一篇学习笔记)。比特币是存储在区块链中的,以交易输出的形式。


分享到:


相關文章: