比特币P2PKH交易花费的核心流程与数据流转
1. 背景设定
假设场景:
- Alice 之前收到了一笔比特币(UTXO),该输出被锁定在她的公钥哈希
P_KH_A(即她的比特币地址对应的哈希)中。 - 现在 Alice 要花费这个 UTXO 给 Bob。
2. 数据创建阶段(Alice 构造交易时)
2.1 输入部分(TxIn)
Alice 需要提供解锁脚本(scriptSig),包含:
- 她的签名
Sig- 使用她的私钥
sk_A对这笔新交易(包括输入、输出、金额等)进行签名。 - 注意:私钥只用于生成签名,从不直接出现在交易数据中。
- 使用她的私钥
- 她的公钥
PK_A- 与私钥
sk_A对应的公钥,用于验证签名。
- 与私钥
此时输入脚本内容:
<Sig> <PK_A>
2.2 输出部分(TxOut)
Alice 构造给 Bob 的锁定脚本(scriptPubKey):
OP_DUP OP_HASH160 <P_KH_B> OP_EQUALVERIFY OP_CHECKSIG
其中 P_KH_B 是 Bob 地址的公钥哈希。
