风险提示:理性看待区块链,提高风险意识!
比特币私钥,公钥和地址的关系
首页 > 币界资讯 > 区块链知识 2019-03-08 08:13:21

哈希函数

哈希函数(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",以及"+"和"/"符号1.比特币所用字母表:

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

2.Monero所用字母表:

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

3.Ripple所用字母表:

rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz

私钥

实际上是长度为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地址。非压缩公钥生成地址的过程:1.将完整公钥(头部标识 + X-integer + Y-integer)进行一次sha256()运算, 在对结果进行一次ripemd160()运算,结果a的长度为20bytes2.在步骤1得到的结果前加上Network ID Byte:Main Network: 0x00Test Network: 0x6fNamecoin Net: 0x34得到的b长度为21bytes3.对步骤2得到的结果进行连续两次的sha256()运算,然后只取运算结果的前4bytes作为Checksum4.在步骤2的b末尾添加上步骤3得到的Checksum, 得到c, 长度为25bytes5.对步骤4生成的c进行Base58编码, 即得到地址步骤图示:

对于压缩公钥生成地址时,在步骤一中只取公钥的标识头+X-integer部分即可。

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

在发起比特币的转账时,把私钥看作账户的密码,账单填写完毕后,需要用私钥对账单的内容签名,得到签名信息SIG ,然后将SIG附加在账单上:

SIG = H(detail, PRIVATE_KEY)

已知SIG和账单内容,是无法反推出私钥的。那么,别人在拿到账单信息和SIG后,如何验证该SIG确实是由发送方地址对应的私钥签署的呢?这就是公钥的作用,账单上还要附加上公钥,别人在拿到账单时,可以验证SIG是否合法true = VALIDATE(detail, SIG, PUBLIC_KEY)私钥->公钥->地址是单向不可逆的过程, 在签署交易信息时只会暴露公钥, 私钥是安全的:

转自:https://www.jianshu.com/p/a560e0605ff2

上一篇: 什么是以太坊ERC-721 Token合约
下一篇: 比特币哈希函数简述
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥264,723.74
37,091.22 USDT
+0.1%
ETH以太坊
¥14,416.22
2,019.90 USDT
-0.12%
USDT泰达币
¥7.20
1.01 USDT
0%
BNB币安币
¥1,625.40
227.74 USDT
+0.36%
XRP瑞波币
¥4.32
0.60460 USDT
+0.37%
USDC
¥7.14
1.00 USDT
+0.03%
SOLSolana
¥398.85
55.89 USDT
+1.54%
OKBOK币
¥398.61
55.85 USDT
-1.64%
ADA艾达币
¥2.68
0.37580 USDT
-1.16%
DOGE狗狗币
¥0.55160
0.07730 USDT
-1.52%
热搜币种
更多
币种
价格
24H涨跌幅
Terra Classic
¥0.00
9.402E-5 USDT
-18.95%
Gala
¥0.18
0.025374 USDT
-4.66%
dYdX
¥22.58
3.1918 USDT
-0.91%
比特股
¥0.05
0.006964 USDT
+4.28%
PancakeSwap
¥15.52
2.1936 USDT
-2.74%
Conflux
¥1.08
0.1524 USDT
-2.87%
Filecoin
¥31.45
4.4454 USDT
-0.69%
FTX Token
¥29.82
4.2155 USDT
+16.96%
Yield Guild Games
¥2.55
0.3608 USDT
-0.52%
Shiba Inu
¥0.00
8.14E-6 USDT
-2.51%
比特币
¥262,381.44
37091.22 USDT
+0.1%
比原链
¥0.07
0.010011 USDT
-4.38%
最新快讯
更多
汇丰、恒生、渣打、富邦华一四家外资银行入围首批“数字人民币”业务试点名单
2023-11-28 19:06:57
摩根大通和Apollo计划建立代币化“企业主网”
2023-11-28 19:03:57
Nansen2公测版本上线,新增链上数据异动、智能搜索等功能
2023-11-28 18:59:52
西班牙公民需在明年3月底前申报其海外平台上加密货币持仓
2023-11-28 18:53:43
Nansen2已公开测试
2023-11-28 18:53:38
dYdX基金会:主网启动以来超过1645万DYDX被质押
2023-11-28 18:52:07
NicCarter等比特币倡导者发文:比特币挖矿是清洁能源和平衡电网的关键工具
2023-11-28 18:47:58
下载币界网APP