Bitcoin86.com

比特币私钥,公钥和地址的关系

比特币私钥,公钥和地址的关系

哈希函数

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

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

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

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

椭圆曲线加密算法

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

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

BASE58编码

Base58是用于Bitcoin中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址

相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+"和"/"符号。

私钥

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

宇宙中所有原子的总数大概是10的80次方。如果我们进行2256+1次随机生成私钥,那么必然会生成一个此前出现过的私钥;甚至从概率的角度看,进行2130次私钥生成就会有99%的可能得到已有私钥,但是这个情况目前极难出现。

公钥

使用椭圆曲线加密算法(ECDSA-secp256k1)计算私钥所对应的非压缩公钥,该过程不可逆。

公钥的长度为65bytes:

头部标识:1byte(0x04)

X-integer:32bytes(BE)

Y-integer:32bytes(BE)

地址:将公钥经过多次哈希散列及处理生成btc地址。(链人App)

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

npw