美文网首页区块链学习爱莉莎学区块链投资系列编程语言快速入门
《精通比特币》要点总结|第四章密钥、地址、钱包

《精通比特币》要点总结|第四章密钥、地址、钱包

作者: 竹三七 | 来源:发表于2017-07-29 08:05 被阅读916次

前言

昨天BigOne众筹,场面火爆,20分钟抢光。你抢到了吗?
OK, 开始正题。
讲个故事先。今年比特币大涨,小明突然想起,自己有100个比特币耶。但是,他发现,自己居然忘记了他的私钥,而且助记词也找不到了。然后,就没有然后了。
这个悲伤的故事,是为了让大家重视今天说的要点: 密钥、地址、钱包。

先提一个问题——密钥、地址、钱包,谁需要保密?谁需要备份?
好了,文末有答案,看看你的回答对不对!

什么是密钥、地址、钱包?

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

密钥

每笔比特币交易都需要有效的签名才会被存储在区块链。这个有效的数字签名,由密钥产生。拥有比特币的密钥,就拥有了该帐户的比特币的控制权。

密钥是成对出现的,包括一个私钥,和由其衍生出的唯一的公钥。
私钥:用于比特币支付时的交易签名。就像控制账户的PIN码或支票的签名。52位字符串。
公钥:用于接收比特币。就像银行的帐号。34位字符串。

钱包

钱包是密钥所在之处。数字密钥实际上并不是存储在网络中,而是由用户生成,并存储在一个文件或简单的数据库中。这个文件或数据库,我们称之为钱包。
一般情况下,密钥被存储在钱包文件内,由比特币钱包软件进行管理。

地址

在比特币交易的支付环节,收件人的公钥是通过其数字指纹表示的,称为比特币地址。地址就像支票上的支付对象的名字(即“收款方”)。
一般情况下,比特币地址由一个公钥生成并对应于这个公钥。然而,并非所有比特币地址都是公钥;他们也可以代表其他支付对象,譬如脚本。

这三者之间有什么关系?

钱包存储密钥。可以是公钥私钥对,也可以只存私钥。
私钥生成公钥。
公钥生成地址。
地址用来收款。
私钥用于比特币支付签名。

其它重点:

密钥如何被产生?

私钥(k)是一个数字,通常是从一个随机数生成私钥。
来来来,试一试。用硬币、铅笔和纸就快成随机生成你的私钥:掷硬币256次,用纸和笔记录正反面并转换为0和1,随机得到的256位二进制数字可作为比特币钱包的私钥。该私钥可进一步生成公钥。

有了私钥,通过椭圆曲线算法可以从私钥计算得到公钥。
这是不可逆转的过程:K = k * G。其中k是私钥,G是生成点的常数点,而K是所得公钥。
其反向运算,被称为“寻找离散对数”——已知公钥K来求出私钥k——是非常困难的,就像去试验所有可能的k值,即暴力搜索。比特币私钥空间的大小,约是10的77次方,要知道可见的宇宙才含有10的80次方个原子。数据量非常大。暴力搜索很难很难算出私钥。
有了公钥(K),我们就可以使用一个单向加密哈希函数生成比特币地址(A)。


0728_1.PNG

地址如何被产生?

比特币地址是一个由数字和字母组成的字符串,可以与任何想给你比特币的人分享。
比特币地址是由公钥经过单向的哈希函数生成的。


0728_2.png

比特币钱包和助记码词汇

钱包是私钥的容器。通常通过有序文件或者简单的数据库实现。
钱包分类:
非确定性(随机)钱包
最早的钱包,只是随机生成的私钥集合。
随机钥匙的缺点就是如果你生成很多,你必须保存它们所有的副本。否则一旦钱包不可访问时,钱包所控制的资金就付之东流。

确定性(种子)钱包
包含通过使用单项离散方程,可从公共的种子生成的私钥。
种子是随机生成的数字。在确定性钱包中,种子足够收回所有的已经产生的私钥,所以只用在初始创建时的一个简单备份就足以搞定。

助记码词汇
是英文单词序列,代表用作种子对应所确定性钱包的随机数。
单词的序列足以重新创建种子,并且从种子那里重新创造钱包以及所有私钥。在首次创建钱包时,带有助记码的,运行确定性钱包的钱包的应用程序将会向使用者展示一个12至24个词的顺序。单词的顺序就是钱包的备份。
助记码词汇也可以被用来恢复以及重新创造钱包的私钥
所以,助记词一定要好好保管,不要截屏,最好手抄。

分层确定性钱包
确定性钱包被开发成更容易从单个“种子”中生成许多关键的钥匙。
分层确定性钱包,包含从数结构所生成的钥匙。这种母钥匙可以生成子钥匙的序列。这些子钥匙又可以衍生出孙钥匙,以此无穷类推。这个树结构表如下图所示。

0728_3.png

后记——【答案】

密钥、地址、钱包,谁需要保密?
私钥必须始终保密,一旦被泄露给第三方,该私钥保护之下的比特币也拱手相让了。
区块链的世界,只认私钥。

谁需要备份?
如果选二个,私钥和助记码词汇,必须备份。
如果只能选一个,助记码词汇,必须备份。
因为,助记码词汇可以被用来恢复以及重新创造钱包的私钥
如果当时,小明把助记码抄到笔记本上,把笔记本锁到保险箱里,那么他的比特币,还是他的。

这一章还具体讲了【椭圆曲线密码学】 和【Python代码实现】,感兴趣的同学,请看知笔墨上
中文版《精通比特币》,第四章.

谢谢你的阅读。

参考阅读
爱莉莎学区块链投资系列
如何在疯狂的区块链投资市场,冷静理性的投资?
疯狂的ICO,你投了吗?【附ICO参投三步走】
三招应对区块链投资风险
《精通比特币》要点总结|第一章介绍
《精通比特币》要点总结|第二章比特币的原理
《精通比特币》要点总结|第三章比特币客户端
《精通比特币》要点总结|第四章密钥、地址、钱包

相关文章

  • 《精通比特币》(4)

    第四章 密钥 地址 钱包 比特币的所有权是通过数字密钥,比特币地址和数学签名来确认的。数字密钥不是储存在网络中,而...

  • 《精通比特币》要点总结|第四章密钥、地址、钱包

    前言 昨天BigOne众筹,场面火爆,20分钟抢光。你抢到了吗?OK, 开始正题。讲个故事先。今年比特币大涨,小明...

  • Mastering Bitcoin

    目录 1 介绍 2 比特币如何工作 3 比特币Client 4 密钥、地址、钱包 5 事务(交易) 6 比特币网络...

  • 02:从熵源到地址|比特币源码研读

    本文简要说明从熵源到比特币地址的形成过程,知识点主要来源于《精通比特币(第二版)》的第四章(密钥和地址)和第五章(...

  • HD钱包子公钥生成原理

    HD钱包即分层确定性钱包,是指比特币钱包的一种管理方式 具体的HD钱包内容可以参考《精通比特币》第四章https:...

  • 比特币源码研读(7)—— 钱包的原理

    首先,我们需要知道一点,比特币钱包里面并没有比特币。钱包是管理密钥、地址、跟踪余额和创建交易的软件。我们的比特币数...

  • 比特币那些事(4)——钱包

    原文链接 概述 比特币中钱包并不是传统意义的钱包,它不包含比特币,仅仅包含密钥。每个用户都有一个包含多个密钥的钱包...

  • 4. 比特币的密钥、地址和钱包 - 精通比特币笔记

    简介 比特币的所有权是通过密钥、比特币地址和数字签名共同确定的。密钥不存在于比特币网络中,而是用户自己保存,或者利...

  • 比特币密钥生成规则及 Go 实现

    通常可以通过比特币客户端 (比如 bitcoin-core) 生成地址。这篇文章总结我对比特币密钥、地址生成规则的...

  • aaa

    比特币地址生成算法详解 比特币钱包地址生成代码-go实现 区块链以太坊以及hyperledger总结区块链技术 默...

网友评论

  • 8fd8f91ef665:博主,我也是刚入区块链大门,真是相见恨晚,之前花了一段时间把老猫所有的公众号和一块听听上的讲座全部听完了,算是对区块链世界有了个大概的了解。可惜认识老猫太晚,他在7月份停止了公众号的更新,想请教一下,有没有其他值得关注的区块链投资方面的有价值的公众号,不胜感激。
    8fd8f91ef665: @爱莉莎 您上面说的两个我都有了,非常感谢。另外想问一下金马的小密圈你感觉效果怎么样?现在比特币价格非常高,还适合投资吗?
    竹三七:@星工厂 小密圈的,金马带你定投区块链,超级适合初入用户,推荐!
    竹三七:@星工厂 白话区块链 公众号不错,一个朋友做的,老猫也推荐啦

本文标题:《精通比特币》要点总结|第四章密钥、地址、钱包

本文链接:https://www.haomeiwen.com/subject/ersqlxtx.html