风险提示:理性看待区块链,提高风险意识!
比特币地址的生成算法是怎样的?
首页 > 币界资讯 > 币种知识 2021-01-08 14:54:14
摘要
首先,让我们先简单的说说比特币地址是怎么算出来的。比特币是建立在数学加密学基础上的,中本聪大神用了椭圆加密算法(ECDSA)来产生比特币的私钥和公钥。由私钥是可以计算出公钥的,公钥的值经过一系列数字签名运算会得到比特币地� 。
币界网报道:

首先,让我们先简单的说说比特币地址是怎么算出来的。比特币是建立在数学加密学基础上的,中本聪大神用了椭圆加密算法(ECDSA)来产生比特币的私钥和公钥。由私钥是可以计算出公钥的,公钥的值经过一系列数字签名运算会得到比特币地址。

需要说明的是:因为由公钥可以算出比特币地址,所以我们经常把公钥和比特币地址的说法相混淆,但是他们都是指的一个概念。比特币地址只是另一种格式的公钥。

从比特币私钥得到我们所用的比特币地址需要九个步骤。中间要用到SHA256加密、RIPEMD160加密和BASE58编码。我们最终用到的比特币私钥和比特币地址一般都是经过BASE58编码的结果。整个流程如下图所示。

image.png

第一步,随机选取一个32字节的数、大小介于1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间,作为私钥。

18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725

第二步,使用椭圆曲线加密算法(ECDSA-secp256k1)计算私钥所对应的非压缩公钥。 (共65字节, 1字节 0x04, 32字节为x坐标,32字节为y坐标)关于公钥压缩、非压缩的问题另文说明。

0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B

23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6

第三步,计算公钥的 SHA-256 哈希值

600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408

第四步,取上一步结果,计算 RIPEMD-160 哈希值

010966776006953D5567439E5E39F86A0D273BEE

第五步,取上一步结果,前面加入地址版本号(比特币主网版本号“0x00”)

00010966776006953D5567439E5E39F86A0D273BEE

第六步,取上一步结果,计算 SHA-256 哈希值

445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094

第七步,取上一步结果,再计算一下 SHA-256 哈希值(哈哈)

D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30

第八步,取上一步结果的前4个字节(8位十六进制)

D61967F6

第九步,把这4个字节加在第五步的结果后面,作为校验(这就是比特币地址的16进制形态)。

00010966776006953D5567439E5E39F86A0D273BEED61967F6

第十步,用base58表示法变换一下地址(这就是最常见的比特币地址形态)。

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

(说明: 有些数字以"0x"开头,意思是此数字使用十六进制表示法。"0x"本身没有任何含义,它是C语言流传下来的,约定俗成的写法,比如0xA就是十进制的10。另外,1个字节 = 8位二进制 = 2位十六进制)。

我们经常说的比特币公钥就是指的图中第二步所产生的结果。而HASH160指的是第四步RIPEMD160签名所产生的结果,由于RIPEMD也是一种HASH算法所以就统称为HASH160了。而我们常用的比特币地址就是经过BASE58编码后的结果。

比特币客户端和钱包也接受各种比特币地址格式,常用的格式有BASE58格式、WIF压缩格式、130位和66位公钥(Public key)格式。进入比巴克的钱包工具点击钱包详情查询页面,如下图,红色框中130位的字符串就是比特币ECDSA算出的原始公钥,下面是公钥压缩成66位的格式,上面两个分别是我们常用的比特币BASE58地址格式和比特币地址WIF(wallet import format)压缩格式。

image.png

其实现在各种格式的地址基本上都是通用的,在学习了相关知识后,我们会对比特币体系有更加深入的理解。

上一篇: 比特币地址格式是什么?输错比特币地址该怎么办?
下一篇: 每个比特币地址都是唯一的么?
推荐专栏
Boss Wallet Web3 Econom Pass
专注币圈最新资讯
通俗浅显地聊透Web3大事小情
读懂区块链生态与未来,尽在币界网!
热门币种
更多
币种
美元价格
24H涨跌幅
BTC比特币
60,963.61 USDT
¥435,103.38
-2.72%
ETH以太坊
3,368.69 USDT
¥24,042.67
-0.3%
BNB币安币
570.68 USDT
¥4,073.00
-0.28%
USDT泰达币
1.02 USDT
¥7.25
-0.19%
SOL
135.96 USDT
¥970.36
+7.66%
USDC
1.00 USDT
¥7.15
-0.01%
TON
7.59 USDT
¥54.14
+4.55%
XRP瑞波币
0.47720 USDT
¥3.41
+0.48%
DOGE狗狗币
0.12210 USDT
¥0.87140
+2.43%
ADA艾达币
0.39050 USDT
¥2.79
+3.88%
热搜币种
更多
币种
美元价格
24H涨跌幅
Solana
181.08 USDT
¥1,313.10
-0.85%
比特币
66068.97 USDT
¥479,099.14
-0.69%
Curve
0.2556 USDT
¥1.85
-2.44%
Filecoin
4.3368 USDT
¥31.45
-3.08%
FTX Token
1.3826 USDT
¥10.03
-2.7%
比特币SV
51.0416 USDT
¥370.13
-3.46%
狗狗币
0.1251 USDT
¥0.91
-3.32%
柚子
0.5851 USDT
¥4.24
+2.27%
Yield Guild Games
0.4729 USDT
¥3.43
-3.82%
瑞波币
0.6491 USDT
¥4.71
+8.06%
奇亚
18.711 USDT
¥135.68
-1.57%
Conflux
0.1673 USDT
¥1.21
-1.65%
最新快讯
更多
Deribit上某大宗期权用户卖出10月底看涨和看跌以太坊期权,总计500枚ETH
2024-07-31 11:46:21
半小时前3800万枚XRP从Upbit转至r4186开头地址,价值约2482万美元
2024-07-31 11:45:58
Eclipse主网现已向开发者开放,首届黑客松奖金接近5万美元
2024-07-31 11:42:34
首尔法院命令GDAC归还780万WEMIX代币给WemadeCEO
2024-07-31 11:37:21
顶峰AscendEX将上线why(WHY)
2024-07-31 11:34:05
HashKeyGlobal即将上线WLD、ENS和BLUR
2024-07-31 11:28:00
去中心化跨链资产管理平台Mycel完成种子轮融资,CVLabs等参投
2024-07-31 11:26:01
下载币界网APP