主页 > 最新版imtoken官网 > 如何生成公钥和私钥_Recreate Bitcoin |第5章公钥和私钥(序列化)
如何生成公钥和私钥_Recreate Bitcoin |第5章公钥和私钥(序列化)
本系列连载于《再造比特币》,这是一本关于比特币的入门书籍,让读者通过一个虚拟的故事,体验从零开始创造比特币的过程,从而了解比特币为什么会被设计成这样。
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:“我不相信电脑,我只相信硬币”。
生成私钥
参考:
aaron67'blog:[学习笔记
来自:何焱 BSVO官方