
P2PKH:BSV 中最常见的支付脚本模板详解
P2PKH(Pay to Public Key Hash)是 Bitcoin/BSV 中最基础的普通支付脚本。本文拆解其核心逻辑、工作流程、与地址的关系、解锁条件,并解释为什么 BSV 开发者需要理解它。
林知衡
technical_editor
一句话理解
P2PKH 是 "Pay to Public Key Hash" 的缩写,意思是“支付给公钥哈希”。它是 Bitcoin/BSV 中最常见的普通支付脚本模板之一。
它的核心逻辑是:output 锁定到某个公钥哈希,未来花费时必须提供匹配的公钥和有效的数字签名。
P2PKH 解决什么问题?
普通付款需要回答两个问题:
- 收款时,如何指定未来谁能花这笔钱?
- 花费时,如何证明自己就是有权的人?
P2PKH 的答案是:
- 收款时,locking script 记录公钥哈希。
- 花费时,unlocking script 提供公钥和签名。
- 节点检查公钥哈希是否匹配,并验证签名。
这样一来,收款方在收款时不必暴露完整公钥,只需要提供地址即可。
P2PKH 的名字拆解
P2PKH 可以拆成:
- Pay To Public Key Hash
- 支付 → 到 → 公钥哈希
注意:这里不是直接支付给公钥,而是支付给公钥的哈希。
常见流程是:
私钥 → 公钥 → 公钥哈希 → 地址 → P2PKH locking script
地址是用户看到的收款标识,而 locking script 才是链上真正的锁定条件。
P2PKH 的 locking script 直觉
P2PKH locking script 大致表达:
- 给我一个公钥。
- 我检查这个公钥的哈希是否等于锁定的哈希。
- 再给我一个签名。
- 我用这个公钥验证签名。
- 都通过,才允许花费。
这就是普通地址支付背后的真实逻辑。
P2PKH 的 unlocking script 直觉
花费 P2PKH output 时,input 通常提供:
- 签名
- 公钥
这两项数据会被放入脚本执行栈,与 locking script 一起运行。如果公钥哈希匹配,并且签名验证通过,脚本结果为真。
为什么不直接锁定公钥?
早期 Bitcoin 也有 Pay to Public Key(直接支付给公钥)。P2PKH 选择锁定公钥哈希,有几个好处:
- 地址更短,更适合用户使用。
- 收款时不直接暴露完整公钥,提高隐私性。
- 公钥只在花费时公开。
- 地址可以包含校验和,降低手输错误风险。
对新手来说,先记住:地址背后通常是公钥哈希,而不是直接把公钥编码成地址。
P2PKH 与 UTXO
P2PKH output 如果未被花费,就是一个 UTXO。它的含义是:
这里有一笔价值,未来谁能提供对应公钥和签名,谁就能花它。
钱包在花费它时,会创建 input,并放入签名和公钥。旧的 UTXO 被消耗,新的 outputs 被创建。
BSV 开发中为什么要理解 P2PKH?
即使你以后主要使用 SDK 和钱包接口,P2PKH 仍然值得理解,因为它把多个核心概念连在一起:
- 私钥
- 公钥
- 地址
- 公钥哈希
- locking script
- unlocking script
- 签名验证
- UTXO 花费
理解 P2PKH 后,再学习 OP_RETURN、多签、自定义脚本和 token 状态输出,会更加清楚。
P2PKH 不是唯一脚本
P2PKH 是常见模板,但不是唯一方式。BSV Script 可以表达更多条件,例如:
- 多签
- 哈希锁
- 自定义业务脚本
- 数据输出
- token 协议输出
但 P2PKH 是最适合新手理解普通支付的模板。
新手常见误解
- P2PKH 不是账户模型。
- 地址通常不是公钥本身,而是公钥哈希的编码。
- P2PKH output 未来要靠签名和公钥解锁。
- P2PKH 是普通支付模板,不是所有 BSV 交易的唯一格式。
- 公钥哈希匹配和签名验证都必须通过。
- 收款时锁定条件在 output,花费时解锁材料在 input。
参考来源
推荐文章
区块链2026年6月1日
标准脚本 vs 非标准脚本:BSV 开发中容易被忽略的边界
共识上有效的交易,网络不一定处理。理解标准脚本与矿工策略,避免交易广播失败。
区块链2026年6月1日
解读Bitcoin Script:基于栈的脚本语言及其执行模型
Bitcoin Script是一种基于栈执行的脚本语言,用于验证交易花费条件。本文从栈的概念出发,通过例子说明其执行过程,并探讨P2PKH、受限设计、BSV应用等关键点,帮助理解这一链上验证语言的核心机制。
区块链2026年6月1日
OP_RETURN:BSV链上数据写入入门
了解OP_RETURN的基本概念、与普通支付的区别、数据格式要求、隐私注意事项以及应用场景。