重新创造比特币5:公钥和私钥

1.公钥和私钥

那么用户的公钥和私钥又是如何生成的呢?

这里正是采用非对称加密真正精髓之处,用户的公钥是由私钥计算得来,而用户的私钥则反直觉的由用户自己生成。

用户如何自己生成一个私钥呢?
(备注:公钥私钥更加详细的技术讲解可以阅读aaron67的文章:[学习笔记] 比特币的私钥和公钥)

私钥的本质是一个数字,公钥的本质也是一个数字,如果把任何数字当成私钥,都可以利用椭圆曲线加密算法生成这个数字对应的公钥,即,Function椭圆曲线加密算法(私钥)=公钥

如果让用户随机生成数字,并且数字的随机范围足够大,就可以避免两个用户生成了相同的私钥,即,私钥冲突。

多大的数字够用呢?

答案是2的256次方。

创建私钥本质上是“取得一个1到2的256次方之间的数字”。

你可以通过投256次骰子,并且用铅笔和纸张将结果记录下来。

结果看起来是这样:

111110010111110010001
00110101010101011001
111000011010000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
000000000000000
0000000000000000
0000000000000000

一共256个二进制的字符。为了让它看起来短点,我们将其转换成十六进制,这样就减少到了64个字符,每位代表4个bit。

(备注:一个二进制的数字就代表着1bit。再进一步解释bit的定义是:可以让50%概率的事情变为100%的确定性的信息,这个信息所等价的能量就是1bit。例如:在二进制中,下一个我要写的数字只能在0或1中选择,这时候下一个数字的概率就是50%,如果我写出来了1,那么这个1就是将50%的不确定性,变成了100%的确定性,这个1代表的就是1bit的能量,同理如果我选择的是0,这个0同样代表着1bit的能量,也就是说将不确定性变为确定性,需要信息,而信息的形成需要能量,1bit就是表示能量的大小)

转换成十六进制看起来是这样:

f97c89aaacf0cd2e47d
dbacc97dae1f88bec49
106ac37716c451dcdd0
08a4b62

公钥是根据私钥计算得来,所以公钥也是一个很长的数字,用十六进制表示是这个样子:

b4327ae841ca6cfd120
3cc6e135a48d893cbfb
2c388c0f64a79694199
cc9b4cb

为了方便使用,如果想再短些,我们还可以将其转换成64进制(base64)看起来是这个样子:

1BJhat1AMGYbT9HYJxV
ekoCaPaqB9ZyTyF

2进制:1个字符对应的范围是0~1,有2个选择。

16进制:1个字符对应的范围是0~15,有16个选择。它由0-9,A-F组成。

64进制:1个字符对应的范围是0~63,有64个选择。64进制几乎用上了我
们键盘上的所有按钮。

理论上,如果我们制造一个按钮超多的键盘,什么星星,三角,方块,菱形,各种新符号,如果能凑齐128个,我们就可以实现128进制。只不过因为我们全球共识的通用字符也就比64多一点,所以就到64进制为止了。

(备注:现实世界的比特币系统用的是base58,是基于base64的改良版,技术细节推荐阅读:aaron67的文章[学习笔记] 比特币的地址)

2的256次方是一个难以想象的大数,以十进制表示,它大概是10的77次方,而宇宙的可见部分,其组成也就大概10的80次方个原子。所以,通过随机碰撞出相同私钥的概率可以小到忽略不计。

正是由于用户不通过服务端生成自己的私钥和公钥,服务端不会预先知道任何用户的存在,所以才可以舍弃账户模型,从根本上去掉了用户注册。
舍弃了用户注册和账户模型,服务端就变得难以限制用户的使用自由。

用户以公钥示人,如果你不说没人知道某个公钥是谁的,除非你俩之间发生了交易,这种交易易名的方式实现了对个人隐私的保护。

就这样,Bitcoin朝着交易的更加自由,迈出了它的第一步!

(备注:这里要注意,Bitcoin的隐私保护是通过易名而非匿名,关于这个概念可以阅读邱少贤的《比特币重生-比特币隐私模型》

夕阳透过窗子洒进了咖啡馆,它将屋子里的人都镀成了金色。

中本聪还在全神贯注的盯着屏幕,敏捷的敲击着键盘。

Gilfoyle在一次又一次的投掷着硬币,每次硬币落到桌子上,他就用铅笔记录一次结果。

中本聪一边盯着屏幕,一边问道:“你在干什么?”

Gilfoyle:“我在生成我自己的私钥”。

中本聪:“用计算机的随机算法生成,一秒钟就能搞定!”。

Gilfoyle:“我不相信计算机,我只相信硬币”。

重新创造比特币5:公钥和私钥

生成私钥

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 0 条评论)
   
验证码:
微信号已复制,请打开微信添加咨询详情!