主页 > imtokenapp下载安装 > 比特币转账中私钥、公钥和地址的作用分析

比特币转账中私钥、公钥和地址的作用分析

imtokenapp下载安装 2023-08-03 05:13:35

哈希函数

哈希函数(Hash FuncTIon),又称散列函数,给定一个输入x,它会计算出对应的输出H(x)。 哈希函数的主要特征是:

1.输入x可以是任意长度的字符串

2、输出结果,即H(x)的长度是固定的

3、计算H(x)的过程是高效的(对于长度为n的字符串x,计算H(x)的时间复杂度应该是O(n))

椭圆曲线密码算法

椭圆曲线在密码学中的使用是 Neal Koblitz 和 Victor Miller 于 1985 年独立提出的。它的主要优点是在某些情况下它使用比其他算法(如 RSA)更小的密钥,但提供同等或更高级别的安全性。

比特币使用基于 secp256k1 椭圆曲线数学的公钥密码学。 它包含一个私钥和一个公钥,私钥用于对交易进行签名,并将签名和原始数据发送到整个比特币网络,公钥用于全网节点验证有效性的交易。 签名算法确保交易由拥有相应私钥的人发出。

比特币转账多久到账_比特币转账手续费_火币转账到比特币钱包要多久

私钥公钥和地址在比特币转账中的作用解析

BASE58编码

Base58是比特币使用的一种独特的编码方式比特币转账手续费,主要用于生成比特币钱包地址

与Base64相比,Base58没有使用数字“0”、大写“O”、大写“I”、小写“l”,以及“+”和“/”符号

一、比特币使用的字母表:

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

2.门罗币使用的字母表:

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

比特币转账手续费_比特币转账多久到账_火币转账到比特币钱包要多久

3. Ripple使用的字母表:

rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz

私钥

它实际上是一个长度为256bit的二进制数,256 bit = 1.15e+77

宇宙中所有原子的总数大约是10的80次方。 如果我们随机生成私钥2256+1次,必然会生成一个之前出现过的私钥; 即使从概率的角度来看,如果我们生成私钥2130次,也有99%的可能性得到一个已经存在的私钥。 但这种情况目前是极难出现的。

公钥

使用椭圆曲线加密算法(ECDSA-secp256k1)计算出私钥对应的未压缩公钥,这个过程是不可逆的。

公钥长度为65bytes:

比特币转账多久到账_火币转账到比特币钱包要多久_比特币转账手续费

标头 ID:1 字节 (0x04)

X 整数:32 字节 (BE)

Y 整数:32 字节 (BE)

地址

公钥经过多次哈希处理生成btc地址。

从非压缩公钥生成地址的过程:

1、对完整的公钥(header ID + X-integer + Y-integer)进行sha256()运算,对结果进行ripemd160()运算,结果a的长度为20bytes

2、在第一步得到的结果前加上Network ID Byte:

比特币转账多久到账_比特币转账手续费_火币转账到比特币钱包要多久

主网:0x00

测试网络:0x6f

域名币网:0x34

得到的b长度为21bytes

3、对第2步得到的结果进行连续两次sha256()运算,然后只取运算结果的前4个字节作为校验和

4.将步骤3得到的Checksum添加到步骤2的b末尾得到c,长度为25字节

5.对第4步生成的c进行base58编码得到地址

步骤图:

火币转账到比特币钱包要多久_比特币转账多久到账_比特币转账手续费

公钥压缩生成地址时,第一步只取公钥的标识头+X整数部分即可。

私钥、公钥和地址在比特币转账中的作用

发起比特币转账时,私钥被视为账户密码。 账单填写完成后,需要用私钥对账单内容进行签名,得到签名信息SIG,然后将SIG附在账单上:

SIG = H(详细信息,PRIVATE_KEY)

知道 SIG 和 bill 内容,就不可能逆向私钥。 那么,别人拿到账单信息和SIG后,如何验证SIG确实是用发送方地址对应的私钥签名的呢?

这就是公钥的作用。 公钥也附在账单上。 当其他人拿到账单时,他们可以验证 SIG 是否合法。

true = VALIDATE(详细信息比特币转账手续费,SIG,PUBLIC_KEY)

私钥-“公钥-”地址是一个单向不可逆的过程。 签署交易信息时只会暴露公钥,私钥是安全的:

私钥公钥和地址在比特币转账中的作用解析