⽐特币地址是⼀个标识符(帐号),包含27-34个字母数字拉丁字符(0,O,I除外)。地址可以以QR码形式表⽰,是匿名的,不包含关于所有者的信息。
地址⽰例:14qViLJfdGaP4EeHnDyJbEGQysnCpwn1gd
⼤多数⽐特币地址是34个字符。它们由随机数字和⼤写字母及⼩写字母组成,除了⼤写字母“O”,⼤写字母“I”,⼩写字母“l”。数字“0”不⽤于防⽌视觉模糊。某些⽐特币地址可能少于34个字符(少⾄26个)并且仍然有效。相当⼀部分的⽐特币地址只有33个字符,有些地址甚⾄可能更短。每个⽐特币地址代表⼀个数字。这些较短的地址是有效的,因为它们代表偶然发⽣以零开始的数字,并且当零被省略时,编码地址变短。 ⽐特币地址中的⼏个字符被⽤作校验和,以便可以⾃动发现和拒绝印刷错误。校验和还允许⽐特币软件确认33个字符(或更短)的地址实际上是有效的,⽽不仅仅是⼀个缺少字符的地址那么简单。
比特币地址用来表示比特币支付的来源或目的地(类似但不等于银行卡卡号)。与将一笔资金,从你的银行卡号A发送到你朋友的银行卡号B类似:如果你想将比特币发送给朋友,需要将比特币从你的地址A发送到你朋友的地址B。
⽐特币的任何⽤户都可以免费获得地址。例如,使⽤Bitcoin Core(⽐特币核⼼客户端)时可以点击“新地址”并被⾃动分配⼀个地址。或者可以使⽤交易所或在软硬件钱包的账户里获得⽐特币地址。
3-1. Legacy (P2PKH)格式
范例:1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u
地址以“1”开头,是比特币最初的地址格式,至今仍在使用。P2PKH 是 Pay To PubKey Hash(付款至公钥哈希)的缩写。
3-2. Nested SegWit (P2SH)格式
范例:3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN
地址以"3"开头,P2SH 是Pay To Script Hash(支付至脚本哈希)的缩写,它支持比Legacy 地址更复杂的功能。Nested P2SH,获取现有的P2SH地址(以“3”开头),并与SegWit地址一起封装。以此来兼容老版本。但这是某种破解行为,导致SegWit交易需要大约10%的额外空间。这与扩容的目的相矛盾。
SegWit 名称解释
SegWit是Segregated Witness(隔离见证)的缩写,其中Segregated是分离、隔离的意思,Witness是与交易相关的签名事物。因此,SegWit是将某些交易签名数据与交易分开。SegWit已在比特币区块链上被激活。
将签名与交易相关数据分离的主要好处是减少了存储在一个比特币块中的数据的大小。这样每个块具有额外的容量来存储更多的交易。也意味着网络可以处理更多的交易,并且发送者支付更低的手续费。所以,如果你希望在发送比特币时降低费用,请使用SegWit地址接收。
SegWit地址的另一个主要好处是它们向后兼容,所以可以将SegWit地址的比特币与Legacy 地址的比特币互转。
3-3. Native SegWit (Bech32)格式
范例:bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3
地址以”bc1“开头。Bech32编码的地址,是专为SegWit开发的地址格式。Bech32在2017年底在BIP173被定义,该格式的主要特点之一是它不区分大小写(地址中只包含0-9,az),因此在输入时可有效避免混淆且更加易读。由于地址中需要的字符更少,地址使用Base32编码而不是传统的Base58,计算更方便、高效。数据可以更紧密地存储在二维码中。Bech32提供更高的安全性,更好地优化校验和错误检测代码,将出现无效地址的机会降到最低。
Bech32地址本身与SegWit兼容。不需要额外的空间来将SegWit地址放入P2SH地址,因此使用Bech32格式地址,手续费会更低。
Bech32地址比旧的Base58(Base58Check编码用于将比特币中的字节数组编码为人类可编码的字符串)地址有几个优点:
· QR码更小;
· 更好地防错;
· 更加安全;
· 不区分大小写;
· 只由小写字母组成,所以在阅读、输入和理解时更容易。
三种比特币地址格式对比
地址格式 |
地址形式 | 交易手续费 | 编码 | 支持的钱包 | 支持的交易所 |
Legacy (P2PKH) |
"1" 开头 | 高 | Base58 | 多数 | 多数 |
Nested SegWit (P2SH) |
"3" 开头 | 中 | Base58 | 多数 | 多数 |
Native SegWit (Bech32) |
"bc1" 开头 | 低 | Bech32 | 少数 | 少数 |
1. 支持Bech32格式地址钱包和交易所还比较少,如需要将比特币从Bech32格式地址转入或转出时,请先确认钱包及平台是否支持该格式地址,以免造成资损失。
2. 钱包及平台支持Bech32格式地址查询:https://en.bitcoin.it/wiki/Bech32_adoption。最好可以直接咨询钱包厂商或交易平台进行确认。
3. 硬件钱包支持Bech32格式地址的有Ledger 和 LUBANSO。Trezor 和KeepKey 用户如果想使用该格式的比特币地址,可连接Electrum 钱包使用。