区块链当中Bitcoin的Segwit地址生成原理

 Segwit地址又称隔离见证地址。在Bitcoin Blockchain上,经常可以看到类似bc1qmy63mjadtw8nhzl69ukdepwzsyvv4yex5qlmkd这样的以bc开头的地址,这种地址就是隔离见证地址。

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

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

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

  1. 根据公钥计算hash160;
  2. 添加固定头并计算带校验的Base58编码。

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

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

  1. 根据公钥计算hash160;
  2. 使用Base32编码得到更长的编码;
  3. bc作为识别码进行编码并带校验。

Bech32编码实际上由两部分组成:一部分是bc这样的前缀,被称为HRP(Human Readable Part,用户可读部分)

你可能感兴趣的:(区块链教程,区块链,Segwit,Bitcoin)