请选择 进入手机版 | 继续访问电脑版

「币姐解读区块链06」私钥,公钥,地址是如何生成的?





导语
上一节,我们讲了私钥,公钥,密钥,签名地址这些基本概念及其之间的关系。
那么很多人会有一个疑问。在我使用钱包的时候,从来没有见过类似私钥和公钥的的东西,只见过地址。他们是怎么来的呢?
这一节就跟大家讲讲私钥,公钥,地址是如何生成的。
本文以比特币的技术为案例,请注意:比特币区块链

作者 | 币姐


私钥是怎么来的?
原始的私钥格式是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 0 1 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 0 1 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 0 1 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 0 1 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 0 1 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 0 1 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 0 1 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钱包到底好在哪里?他的运行原理是什么?下一期我们详细讲解。
推荐阅读:

文章目录:



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则