主页 > imtoken官方首页 > 生成比特币地址的算法是什么?

生成比特币地址的算法是什么?

imtoken官方首页 2024-01-26 05:09:50

首先,让我们简单谈谈比特币地址是如何计算的。比特币基于数学加密,中本聪使用椭圆加密算法(ECDSA)生成比特币的私钥和公钥。公钥可以从私钥计算出来,公钥的值经过一系列的数字签名操作后得到比特币地址。

需要注意的是,由于公钥可以计算比特币地址,所以我们经常将公钥与比特币地址混淆,但它们都是指一个概念。比特币地址只是公钥的另一种格式。

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

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

怎么看自己的比特币钱包地址

18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725

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

0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B

23522CD470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6

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

怎么看自己的比特币钱包地址

600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408

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

010966776006953D5567439E5E39F86A0D273BEE

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

00010966776006953D5567439E5E39F86A0D273BEE p>

怎么看自己的比特币钱包地址

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

445C7A8007A93D8733188288BB320A8FE2DEBD2AE1B47F0F50BC10BAE845C094

第七步,取上一步的结果,然后计算SHA-256哈希值(哈哈)

D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30

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

怎么看自己的比特币钱包地址

D61967F6

第九步,将这4个字节加到第五步的结果中作为校验(这是比特币地址的十六进制形式)。

00010966776006953D5567439E5E39F86A0D273BEED61967F6

第十步怎么看自己的比特币钱包地址,使用 base 将地址转换为 58 表示法(这是比特币地址最常见的形式)。

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM

怎么看自己的比特币钱包地址

(注:有些数字以“0x”开头,表示数字使用十六进制表示。“0x”本身没有意义,是C语言传下来的,常规写法怎么看自己的比特币钱包地址,比如0xA就是十进制的10。另外,1个字节=8个二进制=2个十六进制)。

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

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

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

Gobittest网站(国外可访问)提供了从比特币原始私钥到公钥到HASH160和BASE58的计算程序,读者可以参考。