比特币地址类型详解

bitcoin各种网络中不同类型的地址实在是太多了,很多朋友都不太明白哪些地址含义是什么,查了很多资料,最后是在bitcoin的维基百科上面找到了答案,整理出来以供大家参考。如果有兴趣,可以访问以下我发布在CSDN博客中的一篇原创博文,供大家参考:

比特币地址前缀列表

1、比特币地址简介

不知道大家是否接触过比特币地址。比特币地址就好像银行卡卡号,通过银行卡卡号,任何人都可以向你转账;而通过比特币地址,任何人也可以向你转入比特币。

比特币地址是由26~34位字母和数字组成的字符串

我们常见的比特币地址前缀有: 1、3、bc1它们有什么区别?哪一个的转账手续费更便宜呢?

要说清楚这些,我们得结合比特币地址的分类。比特币地址的分类如下:

2、传统地址

1开头的地址,被称为传统地址 ( Legacy Address )。这就是最原始的比特币地址,比如:创世地址:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa,属于中本聪。该地址内初始50个BTC,后来,比特币爱好者不断往该地址转入BTC,以表达对中本聪的敬意,写文章这一刻,BTC 余额:68.54169736个。

1 开头的地址,采用 P2PKH ,P2PKH(Pay-to-Pubkey Hash),支付公钥哈希,即比特币交易输入输出脚本,采用公钥及公钥哈希。

1开头的传统地址,上线至今,一直被支持,我们可以从它发送 BTC 到下面介绍的多签地址和隔离见证地址。

3、多签地址

3开头的地址,比如 3QzF8GJfSezoMHn4zFS272vofY9HNewUf5。2012年的比特币改进提案中,新增 P2SH 的地址。

P2SH (Pay-to-Script-Hash),支付脚本哈希,即比特币交易输入输出脚本,采用赎回脚本及赎回脚本哈希。其地址结构类似于 P2PKH,但它支持比传统地址更复杂的功能。P2SH 脚本函数最常用于 multisig 地址,这些地址可以指定多重数字签名来授权事务。举个例子:某个3开头的地址由三人控制,其中,任意两人同意,便可发起转账。

隔离见证地址

隔离见证是一种区块链扩容的方法,已在比特币和莱特币上成功实施。我们常见的部分 3 开头的地址,和 bc1 开头的比特币地址,就是隔离见证地址。

隔离见证

隔离⻅证,是比特币协议的一个兼容性升级,它将签名数据从比特币交易中分离出来。

话说比特币区块链上的每个区块内,不仅记录了每一笔转账交易的时间、账户、收到或转出的比特币数量等具体信息,还包括每一笔交易的数字签名。矿工们在打包区块时,需要用数字签名来验证每一笔交易的合法性,确认无误后,才会将交易记录在区块里。

然而,普通用户只关心自己账户有多少比特币,并不需要验证每一笔交易。所以,隔离见证就把区块内的数字签名信息拿掉,从而减少交易字节数,让每个区块可以承载更多笔交易,进而达到扩容的目的。

2017年8月,隔离见证正式激活。

隔离见证具有如下优势:

  • 1、更安全:对比传统地址(1 开头的地址),隔离见证地址具有更好的安全性。
  • 2、更快速,可增大区块容量,检查交易速度更快。
  • 3、更便宜,隔离见证地址的转账手续费比传统地址(1 开头的地址)更便宜。
  • 4、具备兼容性:隔离见证是软分叉,是兼容性升级,支持旧节点;

因为隔离见证是兼容性升级,因此存在兼容地址原生地址两种。

4、 隔离见证兼容地址(Nested Segwit Address)

3开头的地址:因为使用 P2SH 方式打包,所以隔离见证兼容地址,也以3开头,旧节点能识别。

大家不需要知道——以3开头的比特币地址,到底是多签地址,还是隔离见证兼容地址,只需要知道以3 开头的地址,被广泛支持,可以向 1开头 和 bc1 开头的地址发送比特币即可

5、 原生隔离见证地址 (Native Segwit Address)

bc1 开头的地址,是由新的隔离见证脚本生成的地址(P2WPKH 或 P2WSH),是纯正的隔离见证地址。

它采用 Bech32 编码,其风格和** P2PKH 和 P2SH**(即 1开头和 3开头)风格的地址完全不同。 由于使用 bc1 前缀,它比上面两种地址要长由42个符号组成,比如:

bc1qvue6atwkfevypqw7449kccntyrunvnxade5knu

不过,它具有更多优势:

1、没有大小写
2、生成的二维码面积更小
3、可以错误纠正(不推荐使用)

目前,只有部分钱包支持原生隔离见证地址 ,支持的交易所也不多。

转账手续费,哪家强(便宜)?

当然是隔离见证地址的转账费用强,更便宜。这是因为,传统地址、多签地址交易事务更大,占用更多字节。而隔离见证可以减少交易字节数,如果我们使用隔离见证地址作为收款地址,之后再使用该隔离见证地址给其他人转账,就可以节省转账成本

Bitcoin Optech 的统计数据的统计数据显示:

  • 隔离见证兼容地址(部分3开头)比传统地址(1开头)节省 24% 转账手续费;
  • 原生隔离见证地址(bc1开头)比传统地址(1开头)节省 35% 转账手续费;
  • 隔离见证地址(bc1开头和部分3开头) 比 多签地址(部分3开头),最多可以节省 70% 转账手续费;

总结:bc1 开头的原生隔离见证地址,最省转账费用。

6、生成不同格式地址代码如下:

生成不同格式地址代码如下:

LegacyAddress address1 = LegacyAddress.fromKey(networkParameters, ecKey);
System.out.println("1开头的地址:" + address1.toBase58());

LegacyAddress address3 = LegacyAddress.fromScriptHash(networkParameters, ecKey.getPubKeyHash());
System.out.println("3开头的地址:" + address3.toBase58());

SegwitAddress segwitAddress = SegwitAddress.fromKey(networkParameters, ecKey);
System.out.println("bc1开头的地址:"+ segwitAddress.toBech32());

猜你喜欢

转载自blog.csdn.net/cljdsc/article/details/125315435