哈希函数
哈希函数(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的长度为20bytes
2.在步骤1得到的结果前加上Network ID Byte:
Main Network: 0x00
Test Network: 0x6f
Namecoin Net: 0x34
得到的b长度为21bytes
3.对步骤2得到的结果进行连续两次的sha256()运算,然后只取运算结果的前4bytes作为Checksum
4.在步骤2的b末尾添加上步骤3得到的Checksum, 得到c, 长度为25bytes
5.对步骤4生成的c进行Base58编码, 即得到地址
步骤图示:
对于压缩公钥生成地址时,在步骤一中只取公钥的标识头+X-integer部分即可。
私钥,公钥和地址在比特币转账中的作用
在发起比特币的转账时,把私钥看作账户的密码,账单填写完毕后,需要用私钥对账单的内容签名,得到签名信息SIG ,然后将SIG附加在账单上:
SIG = H(detail, PRIVATE_KEY)
已知SIG和账单内容,是无法反推出私钥的。那么,别人在拿到账单信息和SIG后,如何验证该SIG确实是由发送方地址对应的私钥签署的呢?
这就是公钥的作用,账单上还要附加上公钥,别人在拿到账单时,可以验证SIG是否合法
true = VALIDATE(detail, SIG, PUBLIC_KEY)
私钥-》公钥-》地址是单向不可逆的过程, 在签署交易信息时只会暴露公钥, 私钥是安全的:
相关热词:#区块链
为什么需要MOSFET栅极电阻?MOSFET栅极电阻...
时间:2026-03-05
NTC/PTC/CTR热敏电阻是什么?热敏电阻的使用...
时间:2026-03-05
解析单电阻采样的原理以及注意点
时间:2026-03-05
共源极放大器的设计方法
时间:2026-03-05
关于STM32WL LSE 添加反馈电阻后无法起振的...
时间:2026-03-05
如何直观地判断两级放大器的零点位置呢?
时间:2026-03-05
时序分析基本概念介绍<wire load model&...
时间:2026-03-05
电子元器件解析—电阻
时间:2026-03-05
3PEAK高压零漂放大器契合精密应用
时间:2026-03-05
助力绿色5G数字式电流和功率监测芯片-TPA62...
时间:2026-03-05
未来什么技术占主流?会是区块链吗?
时间:2026-03-05
浅谈区块链下的智能合约
时间:2026-03-05
浅显易懂地揭开.Net生态系统的神秘面纱!
时间:2026-03-05
对技术的执着和美的追求变成了程序员的“诗...
时间:2026-03-05
什么是区块链技术_区块链技术解析
时间:2026-03-05
脑洞大开:玻璃窗也能发电?
时间:2026-03-05
如何布置无人值守变电站?
时间:2026-03-05
SCADA系统懂多少?
时间:2026-03-05
灰尘对光伏电站效率影响究竟多大
时间:2026-03-05
一种基于Agent的智能电网集成优化控制策略
时间:2026-03-05