#004 比特币地址类型

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

© xiyu 2022-2024