找回密码
 立即注册
搜索
热搜: 比特币 NFT
常用网址汇总获取邀请码 传奇4问题集合
查看: 804|回复: 0

一个比特币地址的生成过程

[复制链接]
发表于 2022-11-18 11:32:54 | 显示全部楼层 |阅读模式
第一步,选取一个随机数做为种子参数。
各种钱包在生成地址时如果没有让你主动输入,则一般会生成一个伪随机数。有些人性化的会让你输入,或者随便拍照通过计算随便生成随机数。
比如随便输入123er(作为举例,正常使用肯定不会这么简单)

第二步,将种子参数进行sha256计算得到一个值。
比如123er经过sha256计算后的结果是:
D29F1580F3F5EAED836735A6A4816BAF08015D494130AD3CF136CBA64789AFFB

sha256简单来说是一种通用的加密算法,主要利用它两个特性:
一个特性的计算结果唯一且标准化。无论种子参数是什么乱七八糟的东西,通过sha256计算后都可以得到一个标准固定的值——一个256位的2进制的数字。以上结果其实是一个换算成16进制的64位的数字。
它的十进制值是95266775299024212207916032084754227821110411626170030757390176856791208013819(这一段是无意义内容)

另一个特性就是无法反向计算。但是因为结果固定且唯一,所以很多可以通过不断计算保存结果的方式,得到大部分常见人工输入的普通密码级别的sha256反向计算,这也是一些所谓sha256破解网站的办法。
不如以上sha256结果就可以反向计算得到123er。

第三步,将上一步的值进行规范化得到比特币私钥
比特币私钥采用base58规范化编码,即把以上数值通过特定的办法转化为由排除了“0OIl”的数字和大小写字母的字符串,这就是比特币的私钥。
没有压缩的以数字5开头,压缩的以K或L开头。
如上一步案例可得比特币私钥
L4H8aHssVVDUR3kGWyiqTt9JgDVY6sFdmXbEcHENdPmrdn6eazq1
因为只是规范化编码,所以这一步和上一步的两个结果是可互相逆算的。

第四步,私钥单向计算出公钥
私钥会进行两次组合的椭圆曲线计算,再用sha256计算得到一个规范化的结果,做为公钥。上例可得比特币公钥:
66520C952293B96F8B2FE228A322194ADFCB81BE

椭圆曲线和sha256都是非常复杂的单向计算,这一步是确保整个计算过程都是单向的,只能从私钥计算公钥,公钥无法计算私钥。

最后,讲公钥规范化得到比特币地址
和第三步一样,也是采用base58规范化编码,即把公钥用特定的办法转化为比特币的地址。公钥和地址之间可以互相逆算。
本例生成的比特币地址为:
1AL2DSceW5hG35njFxM7mkZLuwbQ7v3zdQ
这就是整个比特币地址生成的过程。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|IQ.GS

GMT+8, 2024-11-12 13:42 , Processed in 0.271303 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表