上期回顾:密钥,私钥,公钥傻傻分不清楚?
导语
上一节,我们讲了私钥,公钥,密钥,签名地址这些基本概念及其之间的关系。
那么很多人会有一个疑问。在我使用钱包的时候,从来没有见过类似私钥和公钥的的东西,只见过地址。他们是怎么来的呢?
这一节就跟大家讲讲私钥,公钥,地址是如何生成的。
本文以比特币的技术为案例,请注意:比特币 ≠ 区块链
作者 | 币姐
私钥是怎么来的?
原始的私钥格式是256位的二进制(2的256次方),大概长下面这样:
1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 01 0 0 1 0 0 1 1 1 1 0
私钥本质上是数字,相当于从1 到2^256(2的256次方)之间选一个数字。
硬币正面为1,反面为0,抛硬币256次,记录下来全过程就相当于生成了一个私钥。但是大家的时间是宝贵的,肯定不能通过抛硬币来生成私钥。
私钥都是由钱包来生成的,而不是人设定的
由于私钥的原始格式非常长,直接由用户设定是非常麻烦的。所以这个工作由钱包来完成了。为了保证私钥的安全性,钱包会“非常随机”的来生成私钥。
所以大家在创建钱包的时候,是不需要设定私钥的,而是设定“转账密码”或者“开启APP的PIN码”之类的密码,他们并不是私钥!
币姐提示
目前很多钱包都是HD钱包(什么是HD钱包?)只需要备份助记词即可,简化了创建新私钥和备份私钥的方式。
注币姐,下一节会详细讲解HD钱包。
公钥是怎么来的?
上一节(币姐解读区块链05:密钥,私钥,公钥傻傻分不清楚?)我们已经讲了:
公钥:由私钥生成的。公钥的作用是跟签名配合用来证明“我就是私钥的主人。
公钥是需要公开出去的,所以公钥需要具备几个特性
公钥必须由私钥生成,这样才能证明“我就是私钥的主人”
公钥不能倒推得出私钥,不然相当于把私钥告诉别人
私钥通过椭圆曲线加密生成了公钥。
之所以用椭圆曲线,是因为他满足了上面提到的2个特性:
私钥可以通过椭圆曲线加密非常容易的创建公钥,他俩具有一一对应的关系。
通过公钥来求出私钥是非常困难的。
椭圆曲线加密是一个很复杂的概念,币姐就不详细讲解了,感兴趣的可以看看——什么是椭圆曲线加密?
币姐说明
椭圆曲线加密有多安全呢?
RSA加密算法是生活中常用的加密手段,大家登陆网银,支付宝的时候就会用到。这种加密算法已经用了很多年,历史证明RSA是非常安全的(至少到目前为止)。
如果把两者进行比较的话:
假如破解RSA算法需要的能量只够烧开一瓢水,
那么破解椭圆曲线密码需要的能量够把整个地球上的水都烧开。
地址是怎么来的?
地址相当于银行卡,用来发送和接收数字资产。比特币地址是一个由数字和字母组成的字符串,可以随意公开出去的。大概长这样:
1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy
比特币地址可由公钥经过单向的加密哈希算法得到。
跟椭圆曲线算法类似,哈希算法也具有2个特性:
公钥可以很容易生成地址,且一一对应。
但是通过地址来求出公钥是非常困难的。
币姐说明
哈希算法并不是某一种具体的算法,而是一类算法的统称。就好像川菜和粤菜都是中餐一样。对于比特币来说,他采用了2种哈希算法 SHA256 和 RIPEMD160。
川菜(SHA256)和粤菜(RIPEMD160)都是中餐(哈希算法)
FAQ环节
在知道某个比特币地址的情况下,是否有可能通过破解私钥来攻破该账户?
总结
这节内容主要是讲解了私钥,公钥,地址是怎么来的:
私钥是非常重要的,但是由于其原始格式非常复杂,所以需要钱包来帮我们来生成,人工生成成本实在太高。
公钥是由私钥生成的,使用了椭圆曲线加密,非常安全。别人是无法通过公钥倒推出私钥的。
地址则是由公钥生成的,使用了哈希运算。通过地址倒推公钥也是不可行的。
下期预告:数字钱包的进化史,从非确定性钱包到HD钱包
目前最流行的就是HD钱包(分层确定性钱包)了。那么HD钱包到底好在哪里?他的运行原理是什么?下一期我们详细讲解。
推荐阅读:
文章目录:
网友评论