主页 > imtoken交易所下载 > 比特币地址

比特币地址

imtoken交易所下载 2023-01-18 18:17:35

在比特币交易中,当您需要接受比特币时,只需将地址发送给对方即可。地址本身是一个包含数字和字母的字符串。基本的生成过程是:

以安全的方式生成随机数创建私钥->生成公钥->对公钥进行SHA256哈希运算->对运算结果进行RIPEMD160运算->对结果进行Base58Check编码

倒数第二步是比特币公钥地址,即

A = RIPEMD160(SHA256(K))

为了提高可读性,地址通常采用 Base58Check 编码。下面是从原始 Mastering Bitcoin 中截取的工作流程图。

public key to bitcoin address

Base58编码在Base64的基础上去掉以下字符:

Base58Check编码是一种包含Base58校验的编码,即字符串本身包含校验码,可以方便快速判断字符串是否正确,将拼写或拼写错误的概率降到最低。它的规则是:

在要编码的数据前加一个4字节的前缀,前缀的内容取决于数据的数据类型(见下表) 对前缀+数据数据进行两次SHA256运算取出2中运算结果的前4个字节作为校验和,加上前缀+数据数据+校验和的要Base58编码的数据数据

这样做的好处是:

快速知道地址类型可以通过校验和快速确认地址的正确性

Base58Check version prefix

WIF:Wallet Import Format,适合钱包的地址格式

p>

256位长度的私钥可以用以下形式表示:

压缩和未压缩未压缩公钥:0x04XY比特币地址,其中(X,Y)是椭圆曲线上的一点,满足

Y^2 mod p = (X^3 + 7) mod p

椭圆加密曲线

从曲线的特点来看,

如果 X 已知,则可以计算 Y。一个X可以对应两个Y

可见整个公钥只用X加上Y的正负就可以表示出来,所以压缩后的公钥格式:

未压缩的公钥是520bit,压缩后的公钥是264bit比特币地址,可以节省很多空间。对于当前的钱包应用,压缩公钥格式用于生成比特币地址

压缩公钥和非压缩公钥分发得到的比特币地址肯定是不同的,但都是合法有效的,那么钱包应用如何识别当前使用的是哪个地址呢? ? 解决方法是在导出私钥时通过判断是否为WIF格式来了解该地址当前是使用压缩还是未压缩。如果使用 WIF-compressed,则表示比特币地址使用压缩的公钥生成。 WIF-compressed由“压缩私钥”生成,“压缩私钥”包括:HEX_01_。

可见,所谓的“压缩私钥”并不是真正的压缩,更多的是压缩/未压缩的公钥寻求形式上的对称性。