🔑 地址生成流程

选择地址类型,点击按钮观察完整的地址生成过程。

✅ 地址验证

输入一个比特币地址,验证其格式是否正确。

💡 为什么不直接使用公钥?

  • 更短公钥有 65 字节,地址只有 25 字节(Base58 编码后约 34 字符)
  • 有校验Base58Check 包含 4 字节校验和,可以检测输入错误
  • 量子安全地址隐藏了公钥,直到花费时才暴露

📋 比特币地址类型详解

1️⃣
P2PKH
Pay-to-Public-Key-Hash
1BvBMSEYstWetqTFn5Au4m4GFg7...

最早的地址格式(2009年),以 "1" 开头。使用 Base58Check 编码,包含版本字节 0x00。

编码: Base58Check 长度: 25-34 chars
3️⃣
P2SH
Pay-to-Script-Hash
3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy

以 "3" 开头(2012年 BIP16)。支持多重签名和复杂脚本,也用于包装 SegWit (P2SH-P2WPKH)。

编码: Base58Check 版本: 0x05
P2WPKH
Pay-to-Witness-Public-Key-Hash
bc1qar0srrr7xfkvy5l643lydnw9re...

原生隔离见证地址(2017年 BIP141),以 "bc1q" 开头。使用 Bech32 编码,交易手续费更低。

编码: Bech32 见证版本: v0
🌱
P2TR
Pay-to-Taproot
bc1p5cyxnuxmeuwuvkwfem96lqzszd...

Taproot 地址(2021年 BIP341),以 "bc1p" 开头。使用 Bech32m 编码,支持 Schnorr 签名,隐私性更好。

编码: Bech32m 见证版本: v1

📜 P2SH 常见脚本类型

P2SH 允许将复杂的花费条件编码为地址,以下是几种常见的脚本类型。

👥

多重签名 (Multisig)

M-of-N

需要 M 个签名中的 N 个才能花费,常用于企业资金管理、托管服务等场景。

📋 2-of-3 实例
公钥 (33 bytes × 3)
021e8f5c7...A 037d2a9b1...B 029cf4d82...C
赎回脚本
52← OP_2 21← PUSH33 021e8f... 21 037d2a... 21 029cf4... 53← OP_3 ae← OP_CHECKMULTISIG
③ HASH160(Script)
-
P2SH 地址
-
应用场景: 企业财务 交易所托管 家庭基金

时间锁 (CLTV)

CheckLockTimeVerify

资金在指定时间或区块高度之前无法被花费,用于定期释放、遗嘱执行等。

📋 锁定至区块 #850000
公钥
023ab8d7e5f6c9...
赎回脚本
03← PUSH3 50f70c← 850000 (LE) b1← OP_CLTV 75← OP_DROP 21 023ab8... ac← OP_CHECKSIG
③ HASH160(Script)
-
P2SH 地址
-
应用场景: 定投锁仓 遗产继承 员工期权
🔐

哈希时间锁 (HTLC)

Hash Time-Locked Contract

结合哈希锁和时间锁,提供原像即可花费,或超时后退款。是闪电网络的核心机制。

📋 HTLC 实例 (超时: 144块)
成功路径
提供原像 + Bob签名
OR
🔙 退款路径
超时 + Alice签名
双方公钥 & 哈希锁
Alice 025c8e3d... Bob 03a1f7b2... 🔒 H = HASH160(secret) = -
赎回脚本
63← OP_IF a9← OP_HASH160 14 <H> 88← OP_EQUALVERIFY 21 <PubBob> 67← OP_ELSE 029000← 144 b1← OP_CLTV 75← OP_DROP 21 <PubAlice> 68← OP_ENDIF ac← OP_CHECKSIG
③ HASH160(Script)
-
P2SH 地址
-
应用场景: 闪电网络 原子交换 跨链桥

🔄 P2SH 地址生成原理

1
编写赎回脚本

定义花费条件(多签/时间锁等)

2
计算脚本哈希

HASH160(RedeemScript)

3
添加版本前缀

0x05 + ScriptHash

4
Base58Check 编码

生成以 "3" 开头的地址

💡 P2SH 的优势

  • 发送方简化发送方只需向普通地址转账,无需了解复杂的脚本逻辑
  • 手续费转移复杂脚本的存储费用由花费者而非发送者承担
  • 隐私保护花费条件在花费前保持隐藏,只暴露脚本哈希

📈 地址格式演进

2009 P2PKH - 比特币创世地址格式
2012 P2SH - 支持复杂脚本
2017 P2WPKH/P2WSH - 隔离见证激活
2021 P2TR - Taproot 升级