美文网首页币姐教你比特币区块链研习社区块链大学
「币姐解读区块链06」私钥,公钥,地址是如何生成的?

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

作者: 233e93051f4e | 来源:发表于2018-03-21 15:54 被阅读21次

    上期回顾:密钥,私钥,公钥傻傻分不清楚?

    导语

    上一节,我们讲了私钥,公钥,密钥,签名地址这些基本概念及其之间的关系。

    那么很多人会有一个疑问。在我使用钱包的时候,从来没有见过类似私钥和公钥的的东西,只见过地址。他们是怎么来的呢?

    这一节就跟大家讲讲私钥,公钥,地址是如何生成的。

    本文以比特币的技术为案例,请注意:比特币区块链


    作者 | 币姐


    私钥是怎么来的?

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

     

    推荐阅读:

    『币姐解读区块链01』区块链技术到底有什么神奇之处?

    『币姐解读区块链02』中本聪为什么要做比特币(区块链)?

    『币姐解读区块链03』区块链的历史都发生过哪些精彩的故事?

    『币姐解读区块链04』上帝视角看区块链系统是如何运转的

    『币姐解读区块链05』密钥,私钥,公钥傻傻分不清楚?


    文章目录:

    相关文章

      网友评论

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

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