比特币地址前缀列表

最近更新bitcoin开发网的版本后,发现地址出现了不同,不明白新的地址含义是什么,查了很多资料,最后是在bitcoin的维基百科上面找到了答案,整理出来以供大家参考。


以下内容参考于比特币维基百科:https://en.bitcoin.it/wiki/List_of_address_prefixes

基于Blockchain-货币使用已编码的字符串,这是在一个Base58Check编码的除外Bech32编码。编码包括一个前缀(传统上是单个版本字节),它会影响编码结果中的前导符号。以下是参考比特币代码库中使用的一些前缀列表

十进制前缀十六进制示例使用前导符号例子
000公钥哈希(P2PKH 地址)117VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem
505脚本哈希(P2SH 地址)33EktnHQD7RiAE6uzMj2ZifT9YgRrkSgzQX
12880私钥(WIF,未压缩的公钥)55Hwgr3u458GLafKBgxtssHSPqJnYoGrSzgQsPwLFhLNYskDPyyA
12880私钥(WIF,压缩公钥)Kor L L1aW4aubDFB7yfras2S1mN3bqg9nwySY8nkoLmJebSLD5BWv3ENZ
4、136、178、300488B21EBIP32公钥xpubxpub661MyMwAqRbcEYS8w7XLSVeEsBXy79zSzH1J8vCdxAZningWLdN3
4、136、173、2280488ADE4BIP32 私钥xprvxprv9s21ZrQH143K24Mfq5zL5MhWK9hUhhGbd45hLXo2Pq2oqzMMo63o
1116F测试网公钥哈希m or nmipcBbFg9gMiCh81Kj8tqqdgoZub1ZJRfn
196C4测试网脚本哈希22MzQwSSnBHWHqSAqtTVQ6v47XtaisrJa1Vc
239EF测试网私钥(WIF,未压缩公钥)992Pg46rUhgTT7romnV7iGW6W1gbGdeezqdbJCzShkCsYNzyyNcc
239EF测试网私钥(WIF,压缩公钥)ccNJFgo1driFnPcBdBX8BrJrpxchBWXwXCvNH5SoSkdcF6JXXwHMm
4、53、135、207043587CF测试网 BIP32 公钥tpubtpubD6NzVbkrYhZ4WLczPJWReQycCJdd6YVWXubbVUFnJ5KgU5MDQrD9
4、53、131、14804358394测试网 BIP32 私钥tprvtprv8ZgxMBicQKsPcsbCVeqqF1KVdH7gwDJbxbzpCxDUsoXHdb6SnTPY
Bech32 公钥哈希或脚本哈希bc1bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
Bech32 测试网公钥哈希或脚本哈希tb1tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx

请注意,压缩和未压缩比特币公钥的私钥使用相同的版本字节。压缩形式以不同字符开头的原因是因为在base58编码之前将0x01字节附加到私钥。

下表显示了每个可能的十进制版本值的 160 位散列的前导符号和地址长度:

十进制版本领先标志地址长度
01 up to34
1Q-Z, a-k, m-o33
2o-z, 2 33 or34
3234
42 or 334
5-6334
73 or 434
8434
94 or 534
10-11534
125 or 634
13634
146 or 734
15-16734
177 or 834
18834
198 or 934
20-21934
229 or A34
23A34
24A or B34
25-26B34
27B or C34
28C34
29C or D34
30-31D34
32D or E34
33E34
34E or F34
35-36F34
37F or G34
38G34
39G or H34
40-41H34
42H or J34
43J34
44J or K34
45-46K34
47K or L34
48L34
49L or M34
50-51M34
52M or N34
53N34
54N or P34
55-56P34
57P or Q34
58Q34
59Q or R34
60-61R34
62R or S34
63S34
64S or T34
65-66T34
67T or U34
68U34
69U or V34
70-71V34
72V or W34
73W34
74W or X34
75-76X34
77X or Y34
78Y34
79Y or Z34
80-81Z34
82Z or a34
83a34
84a or b34
85b34
86b or c34
87-88c34
89c or d34
90d34
91d or e34
92-93e34
94e or f34
95f34
96f or g34
97-98g34
99g or h34
100h34
101h or i34
102-103i34
104i or j34
105j34
106j or k34
107-108k34
109k or m34
110m34
111m or n34
112-113n34
114n or o34
115o34
116o or p34
117-118p34
119p or q34
120q34
121q or r34
122-123r34
124r or s34
125s34
126s or t34
127-128t34
129t or u34
130u34
131u or v34
132-133v34
134v or w34
135w34
136w or x34
137-138x34
139x or y34
140y34
141y or z34
142-143z34
144z or 234 or 35
145-255235

以上,就是今天分享的全部内容了。

希望大家通过以上方式可以解决自己的实际需求,解决自己目前所遇到的问题。

如果在部署过程中有任何疑问,可以扫描下面的二维码,添加我的个人微信,备注:地区-职业方向-昵称,欢迎来撩,加入区块链技术交流群,与更多的区块链技术大佬学习交流。
在这里插入图片描述

原创不易,码字不易。 觉得这篇文章对你有点用的话,麻烦你为本文点个赞,留言或转发一下,因为这将是我输出更多优质文章的动力,感谢!

### 比特币地址生成过程 比特币地址的创建涉及多个加密操作,具体流程如下: #### 私钥生成 私钥是一个随机产生的256位数,在椭圆曲线密码学中用于签名交易。这个密钥必须保密并妥善保管。 ```python import os private_key = int.from_bytes(os.urandom(32), 'big') print(f"Private Key (hex): {private_key:x}") ``` #### 公钥计算 通过椭圆曲线乘法运算由私钥得出公钥。此过程中使用的算法基于特定参数定义下的椭圆曲线方程[^1]。 ```python from ecdsa import SigningKey, SECP256k1 sk = SigningKey.generate(curve=SECP256k1) vk = sk.verifying_key public_key = vk.to_string() print(f"Public Key: {public_key.hex()}") ``` #### 哈希处理 为了提高安全性并对较长的数据串进行压缩,采用SHA-256和RIPEMD-160两种哈希函数依次作用于公钥上得到更短而唯一的表示形式。 ```python import hashlib hash_256 = hashlib.sha256(public_key).digest() ripe_md_160 = hashlib.new('ripemd160', hash_256).hexdigest() print(f"Hashed Public Key: {ripe_md_160}") ``` #### 添加版本前缀与校验码 在上述结果之前附加一个字节作为版本号(对于P2PKH类型的地址通常是`0x00`),之后再经过两次SHA-256散列获取四位检验字符以防止输入错误。 ```python version_prefix = b'\x00' checksum_input = version_prefix + bytes.fromhex(ripe_md_160) double_sha256_checksum = hashlib.sha256(hashlib.sha256(checksum_input).digest()).digest()[:4] address_body_with_check_code = checksum_input + double_sha256_checksum print(f"Address Body with Check Code(hex): {address_body_with_check_code.hex()}") ``` #### Base58编码转换 最后一步是对包含校验码在内的整个字符串应用Base58编码方案来获得最终的人类可读格式——即所谓的“比特币地址”。 ```python import base58 final_bitcoin_address = base58.b58encode(address_body_with_check_code).decode() print(f"Final Bitcoin Address: {final_bitcoin_address}") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰哥的技术杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值