主页 > 最新版imtoken官网 > 如何生成公钥和私钥_Recreate Bitcoin |第5章公钥和私钥(序列化)

如何生成公钥和私钥_Recreate Bitcoin |第5章公钥和私钥(序列化)

最新版imtoken官网 2023-01-17 06:16:53

本系列连载于《再造比特币》,这是一本关于比特币的入门书籍,让读者通过一个虚拟的故事,体验从零开始创造比特币的过程,从而了解比特币为什么会被设计成这样。

e194a1612302c8f5aff35f25ea41c18b.png

1.公钥和私钥

用户的公钥和私钥是如何生成的? ?

这是使用非对称加密的真正本质。用户的公钥是根据私钥计算出来的,而用户的私钥是用户自己反直觉生成的。

用户如何自己生成私钥?

(注:关于公钥和私钥更详细的技术解释可以阅读aaron67的文章:【学习笔记】比特币的私钥和公钥)

私钥的本质是一个数字,公钥的本质也是一个数字。如果将任意一个数字视为私钥,则可以使用椭圆曲线加密算法生成该数字对应的公钥,即函数椭圆曲线加密算法(私钥)=公钥 p>

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

这个数字有多大?

答案是 2 的 256 次方。

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

您可以掷骰子 256 次,并用铅笔和纸记录结果。

结果如下:

111110010111110010001

00110101010101011001

111000011010000000

000000000000000

000000000000000

000000000000000

000000000000000

000000000000000

000000000000000

00000000000000

000000000000000

000000000000000

000000000000000

000000000000000

00000000000000000

000000000000000

二进制字符。为了使其看起来更短,我们将其转换为十六进制,将其减少为 64 个字符,每个字符代表 4 位。

(备注:一个二进制数代表1bit。进一步解释bit的定义是:可以使50%概率的事物变成100%确定性的信息,这个信息相当于Energy is 1bit。例如:在二进制中,我想写的下一个数字只能从0或1中选择,那么下一个数字的概率是50%,如果我写1,那么这个1是50%的不确定性变成100%的确定性。1代表1的能量bit。同理,如果我选择0,0也代表1bit的能量。为了确定,信息是需要的,信息的形成需要能量,1bit就是能量的量)

转换为十六进制,如下所示:

f97c89aaacf0cd2e47d

dbacc97dae1f88bec49

106ac37716c451dcdd0

08a4b62

公钥是从私钥计算出来的,所以公钥也是一个很长的数字,用十进制表示如下:

b4327ae841ca6cfd120

3cc6e135a48d893cbfb

2c388c0f64a79694199

cc9b4cb

为了方便,如果我们想让它更短,我们也可以将其转换为十六进制(base64)看起来像这样:

1BJhat1AMGYbT9HYJxV

ekoCaPaqB9ZyTyF

二进制:1个字符对应0到1的范围,有2种选择。

十六进制:1个字符对应0到15的范围,有16种选择。由0-9、A-F组成。

Base 64:1个字符对应的范围是0到63,有64个选择。 Base 64 几乎被我使用了

我们键盘上的所有按钮。

理论上,如果我们做一个按键太多的键盘,比如星星,三角形,正方形,菱形,各种新符号,如果我们能凑齐128,我们就可以实现128基。只是因为我们全球共识的字符比 64 多一点,所以以 64 为基数结束。

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

2 的 256 次方是一个难以想象的大数,用十进制表示如何自己生成虚拟币地址,大约是 10 的 77 次方,而 Yu 宇宙的可见部分由大约 10 个原子的 80 次方组成。因此,与同一个私钥随机碰撞的概率可以忽略不计。

正是因为用户没有通过服务器生成自己的私钥和公钥,服务器事先也不知道任何用户的存在,所以可以抛弃账户模型,从根本上去除了用户注册。

放弃用户注册和账号模型,服务器很难限制用户的使用自由。

用户显示公钥。如果你不说没有人知道某个公钥是谁,除非你们两个之间有交易,这种改变交易名称的方式实现了对个人隐私的保护。保护。

通过这种方式,比特币向更自由的交易迈出了第一步!

(注意:这里需要注意的是,比特币的隐私保护是通过改名而不是匿名的方式。关于这个概念,你可以阅读邱少先的《比特币重生——比特币隐私模型》

)

夕阳透过窗户洒进咖啡厅如何自己生成虚拟币地址,为屋里的人镀上了一层金色。

中本聪依旧盯着屏幕,快速敲击着键盘。

Gilfoyle 一次又一次地抛硬币,每次硬币落在桌子上时,他都会用铅笔记录下结果。

中本聪盯着屏幕问道:“你在做什么?”

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

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

Gilfoyle:“我不相信电脑,我只相信硬币”。

2ce30ed9409f99daf77ab2c14ea3fb47.png

生成私钥

参考:

aaron67'blog:[学习笔记

来自:何焱 BSVO官方