#004 比特币地址类型
type
status
date
slug
summary
tags
category
icon
password
Segwit地址又称隔离见证地址。在比特币区块链上,经常可以看到类似
bc1qmy63mjadtw8nhzl69ukdepwzsyvv4yex5qlmkd
这样的以bc
开头的地址,这种地址就是隔离见证地址。Segwit地址有好几种,一种是以
3
开头的隔离见证兼容地址(Nested Segwit Address),从该地址上无法区分到底是多签地址还是隔离见证兼容地址,好处是钱包程序不用修改,可直接付款到该地址。另一种是原生隔离见证地址(Native Segwit Address),即以
bc
开头的地址,它本质上就是一种新的编码方式。我们回顾一下
1
开头的比特币地址是如何创建的:- 根据公钥计算hash160;
- 添加固定头并计算带校验的Base58编码。
简单地概括就是使用Base58编码的公钥哈希。
而
bc
地址使用的不是Base58编码,而是Bech32编码,它的算法是:- 根据公钥计算hash160;
- 使用Base32编码得到更长的编码;
- 以
bc
作为识别码进行编码并带校验。
和Base58地址相比,Bech32地址的优点有:
- 不用区分大小写,因为编码用的字符表没有大写字母;
- 有个固定前缀,可任意设置,便于识别;
- 生成的二维码更小。
它的缺点是:
- 和现有地址不兼容,钱包程序必须升级;
- 使用
1
作为分隔符,却使用了字母l
,容易混淆;
- 地址更长,有42个字符。
HD钱包
可以通过某种确定性算法,先确定一个私钥k1,然后计算出k2、k3、k4……等其他私钥,就相当于只需要管理一个私钥,剩下的私钥可以按需计算出来。
这种根据某种确定性算法,只需要管理一个根私钥,即可实时计算所有“子私钥”的管理方式,称为HD钱包。
HD是Hierarchical Deterministic的缩写,意思是分层确定性。先确定根私钥root,然后根据索引计算每一层的子私钥。
Loading...