比特币的地址格式有哪些?如何应用?

比特币地址格式的分类及应用场景

比特币地址是用于接收和发送比特币的标识符,主要有以下几种格式,每中类型都有其特定的用途和特点:

graph TD
比特币地址格式 --> P2PKH-->1xxxx-->leagcy地址
比特币地址格式-->P2SH-->3xxxx-->允许更复杂的交易多重签名
比特币地址格式-->SegWit(bech32)-->bc1xxxx
比特币地址格式-->bech32mP2TR-->bc1pxxxx

P2PKH(pay-t0-publicHash)

即支付到公钥哈希地址。通常以数字 “1” 开头,长度为 26-35 个字符。这是最常见的比特币地址格式之一,是通过对公钥应用哈希函数得到的,并在最后添加了校验码。

  • 格式:以 1 开头,例如,1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa。
  • 特点:这是最传统和最常见的地址类型,广泛用于比特币的早期交易。
  • 优点:兼容性好,几乎所有钱包和交易所都支持。
  • 缺点:随着时间的推移,这种地址类型的使用效率较低,交易费用可能会较高。

P2SH(pay-to-script-hash)

即支付到脚本哈希地址。通常以数字 “3” 开头,长度为 34 个字符。这种地址格式用于多重签名和其他复杂的交易脚本,不直接包含公钥,而是包含一个脚本的哈希值。例如:3J98t1WpEZ73CNmQviecrnyiWrnqRhW9k9。

  • 格式:以 3 开头,例如,3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy。
  • 特点:这种地址允许更复杂的交易脚本,例如多重签名地址。
  • 优点:支持更复杂的交易和脚本,安全性更高。
  • 缺点:创建和管理比 P2PKH 地址更复杂。

SegWit(bech32)

即隔离见证地址。通常以 “bc1” 开头,长度为 42 个字符。SegWit 地址将签名数据从交易中分离出来,有助于降低交易费用。

  • 格式:以 bc1 开头,例如,bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwfvenl。
  • 特点:这是比特币改进提案BIP-0173中引入的新地址格式,旨在提高交易效率和减少费用。
  • 优点:交易和交易签名进行隔离,交易费用更低,处理速度更快,且有助于减少交易体积。消除交易延展性攻击
  • 缺点:并非所有的钱包和交易所都支持这种地址类型,尽管支持率在逐步增加。

bech32m(P2TR)

即pay-to-taproot,这是一种更高级的 SegWit 地址格式,提供更好的错误检测和更高的兼容性。

  • BIP Taproot 协议簇产生,主要用于 Taproot升级
  • schnorr 签名,交易短小,消耗的手续费更低
  • 抽象 merkle 语法树引入
  • 格式:以“bc1p”开头
  • 特点
    1. Bech32m 是基于比特币改进提案(BIP-350)设计的,主要用于生成更具鲁棒性的地址。它将地址表示为一串以字母和数字组成的字符串(不区分大小写),确保不会出现混淆字符。
    2. 与 Bech32 的区别在于校验和的算法不同,Bech32m 使用了新的校验和常数 0x2bc830a3,这一改动提高了校验的准确性,并且能够避免常见的人为错误。
    3. Bech32m 主要用于 Taproot 升级,为比特币未来的扩展性而设计。
      • 优点:
    4. Bech32m 格式非常注重防止用户在手动输入地址时的复制和输入错误。通过精确的校验和设计,能够高效地检测和纠正错误输入
    5. Bech32m 编码不区分大小写,避免了用户在输入地址时因为大小写混淆而犯错误,提升了使用体验。
    6. Bech32m 使用了一种简洁、易于理解的格式,长度相对固定,使用的字符集限制在 32 个字符,避免了难以区分的字符(如 1 和 l、0 和 O),使得地址较为直观。
    7. Bech32m 可以检测单个字符的错误和交换错误,进一步减少手动输入地址的风险。
      • 缺点:平台兼容性问题

Taproot 是 2021 年 11 月 14 日在比特币网络上激活的一项重要升级协议。

  • 引入 Schnorr 签名:Taproot 用 Schnorr 签名替代了比特币之前使用的椭圆曲线数字签名算法(ECDSA)。Schnorr 签名具有线性特性,能将多个签名聚合成一个,使多个比特币交易可快速批量验证,而非逐个验证,大大提高了交易验证效率。例如,在多重签名交易中,以前每个签名都需单独验证,现在可将多个签名合并验证。
  • 实现 Merkle 化抽象语法树(MAST):Taproot 通过 MAST 优化区块链上的交易数据存储。MAST 结构只需暴露一个分支及对应的 Merkle 路径就能解锁脚本,无需暴露其他分支,隐藏了交易的复杂性,增强了隐私性。比如,复杂的智能合约交易可通过 MAST 将未执行的部分隐藏,仅显示执行的部分。
  • 结合 BIP341 和 BIP342:BIP341 定义了 Taproot 的脚本格式和交易原理,允许将多重公钥哈希表示成单个公钥,隐藏多重签名踪迹;BIP342 规范了 Tapscript 的定义和交易规则,支持脚本的多种操作和语法,为 Taproot 提供了完整功能支持。
点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
mengbuluo222
mengbuluo222
前端开发求职中... 5年+开发经验,拥有丰富的开发经验,擅长VUE、React开发。