#004 比特币的几种地址类型

Segwit地址又称隔离见证地址。在比特币区块链上,经常可以看到类似bc1qmy63mjadtw8nhzl69ukdepwzsyvv4yex5qlmkd这样的以bc开头的地址,这种地址就是隔离见证地址。

Segwit地址有好几种,一种是以3开头的隔离见证兼容地址(Nested Segwit Address),从该地址上无法区分到底是多签地址还是隔离见证兼容地址,好处是钱包程序不用修改,可直接付款到该地址。

另一种是原生隔离见证地址(Native Segwit Address),即以bc开头的地址,它本质上就是一种新的编码方式。

我们回顾一下1开头的比特币地址是如何创建的:

  1. 根据公钥计算hash160;

  2. 添加固定头并计算带校验的Base58编码。

简单地概括就是使用Base58编码的公钥哈希。

bc地址使用的不是Base58编码,而是Bech32编码,它的算法是:

  1. 根据公钥计算hash160;

  2. 使用Base32编码得到更长的编码;

  3. bc作为识别码进行编码并带校验。

和Base58地址相比,Bech32地址的优点有:

  1. 不用区分大小写,因为编码用的字符表没有大写字母;

  2. 有个固定前缀,可任意设置,便于识别;

  3. 生成的二维码更小。

它的缺点是:

  1. 和现有地址不兼容,钱包程序必须升级;

  2. 使用1作为分隔符,却使用了字母l,容易混淆;

  3. 地址更长,有42个字符。

HD钱包

可以通过某种确定性算法,先确定一个私钥k1,然后计算出k2、k3、k4……等其他私钥,就相当于只需要管理一个私钥,剩下的私钥可以按需计算出来。

这种根据某种确定性算法,只需要管理一个根私钥,即可实时计算所有“子私钥”的管理方式,称为HD钱包。

HD是Hierarchical Deterministic的缩写,意思是分层确定性。先确定根私钥root,然后根据索引计算每一层的子私钥。

Subscribe to xiyu
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.