什么是 Pay to PubKey Hash (P2PKH)?
Pay to PubKey Hash (P2PKH) 是经典的比特币脚本,它把币锁定到公钥的哈希上。要花费时,持有者会公开对应的公钥,并用签名证明所有权。把它想像成一个只识别某个轮廓的挂锁,只有在解锁时完整钥匙才会出现。
有人以为 P2PKH 会立即暴露你的公钥。并非如此。公钥会在花费时才出现,这能带来一定隐私,并缩短被攻击的时间窗口。
Pay to PubKey Hash (P2PKH) 的工作原理
简要说明,直入要点。假设你要付钱给想要传统比特币的朋友。
- 步骤 1:你把币发送到他们的 地址 之一。
- 步骤 2:该输出使用 hash160 将币锁定到他们 公钥 的哈希上。
- 步骤 3:他们在花费时会公开该公钥,并附上用他们 私钥 生成的签名。
- 步骤 4:每个节点会验证 密码学签名 的数学正确性,并确认哈希与公开的公钥相符。
- 步骤 5:如果验证通过,网络就会接受这次花费,币随之转移。
就是这个思路。简洁、直接、经受住了时间的考验。
为什么 Pay to PubKey Hash (P2PKH) 很重要
那为什么要关心?简短说明如下。
- 好处:支持范围广,覆盖多数钱包和交易所,意味着更少麻烦和更快的发送。
- 视角:它是原始的主流比特币格式,即使出现了新类型仍然很常见。
- 相关性:只要地址以 1 开头,你就会遇到它,也常见于教程、旧备份和许多冷存储方案中。
通过以 1 开头的地址识别 P2PKH。扫描二维码或粘贴时请仔细核对,因为一个字符出错就会导致失败。
Pay to PubKey Hash (P2PKH) 的主要特点
其特点包括:
- 锁定:币被绑定到公钥的哈希,而不是公钥本身。
- 隐私:公钥仅在花费时出现,接收时不会公开。
- 支持范围:几乎所有环境都兼容,从老钱包到硬件设备。
- 费用:相比现代格式字节稍多,在交易拥堵时可能更贵。
变体
P2PKH 是经典形式,但你还会遇到一些更新的变体:
- P2SH: Pay to Script Hash (P2SH) 将灵活的脚本包装在哈希内,让多重签名等机制看起来像一个简单地址。
- P2WPKH:SegWit 版本,使用 bech32,节省费用并减少可塑性;见 Segregated Witness (SegWit) 了解变更内容。
- P2TR:Taproot 实现了密钥与脚本的统一,在常见花费中提供更好的隐私,经常以 bc1p 地址出现。
重复使用相同的 P2PKH 地址会损害隐私。换用新地址,保护隐私。
示例
你通过向一个以 1 开头的地址打赏创作者,创作者随后用其密钥和签名花费,那就是 Pay to PubKey Hash (P2PKH) 在工作。
趣闻
早期区块使用的是 pay to pubkey 而非哈希版本。改用 P2PKH 让公钥在花费前保持隐藏,并节省了字节,这很有中本聪风格。
总结
一句话概括:Pay to PubKey Hash (P2PKH) 是比特币的经典挂锁,钥匙在需要转移币时才登场。
