主页 > imtoken官网下载2.0国际版 > 《毕节解读区块链06》私钥、公钥、地址是如何生成的?
《毕节解读区块链06》私钥、公钥、地址是如何生成的?
上一期回顾:私钥、私钥、公钥傻傻分不清楚?
原始私钥格式为256位二进制(2的256次方),大致如下:
私钥本质上是一个数字,相当于从1到2^256(2的256次方)中选择一个数。
硬币正面为1,反面为0,共抛硬币256次。 记录整个过程,相当于生成一个私钥。 但是大家的时间都是宝贵的,私钥肯定不是掷硬币就能产生的。
私钥是钱包生成的,不是人设的
由于私钥的原始格式很长,用户直接设置很麻烦。 所以这个工作是由钱包完成的。 为了保证私钥的安全从私钥计算出比特币地址,钱包会“非常随机”的生成私钥。
因此,您在创建钱包时,不需要设置私钥,而是设置了“转账密码”或“打开APP的PIN码”之类的密码,这些都不是私钥!
在上一节(碧姐解读区块链05:密钥、私钥、公钥傻傻分不清?)我们已经讲到:
公钥:由私钥生成。 公钥的作用是配合签名证明“我是私钥的拥有者。
公钥需要公开,所以公钥需要有几个特性
公钥必须由私钥生成,从而证明“我是私钥的拥有者”
公钥不能反推得到私钥,否则相当于把私钥告诉别人
私钥通过椭圆曲线密码学生成公钥。
之所以使用椭圆曲线,是因为它满足了上面提到的两个特点:
私钥可以很容易地通过椭圆曲线加密生成公钥,并且它们是一一对应的。
从公钥中找到私钥是非常困难的。
椭圆曲线加密是一个很复杂的概念,就不详细解释了。 有兴趣的可以搜索一下——什么是椭圆曲线加密?
地址相当于银行卡,用于收发数字资产。 比特币地址是一串可以随意公开的数字和字母。 它看起来像这样:
比特币地址可以通过一种单向加密哈希算法从公钥中获得。
与椭圆曲线算法类似从私钥计算出比特币地址,哈希算法也有两个特点:
公钥很容易生成地址,并且是一一对应的。
但是通过地址很难找到公钥。
本节主要讲解私钥、公钥、地址是怎么来的:
私钥很重要,但是因为它的原始格式很复杂,所以需要钱包帮我们生成,人工生成成本太高。
公钥由私钥生成,采用椭圆曲线加密,非常安全。 别人无法通过公钥逆向私钥。
该地址是使用哈希运算从公钥生成的。 通过地址逆向公钥也是不可行的。
下期预告:数字钱包的进化史,从非确定性钱包到高清钱包
目前最流行的是HD钱包(Hierarchical Deterministic Wallet)。 那么HD钱包到底有什么好呢? 他的工作原理是什么? 我们会在下一期详细讲解。