我们都知道在比特币中,每个交易输出(output)都有一个锁定脚本(script),它规定了在接收者可以花费这个输出时必须满足的条件。
假设Alice想要向Bob发送0.01个比特币。她需要知道Bob的比特币地址,并且需要创建一个交易将0.01 BTC发送到该地址。那么交易由以下信息组成:
- 收款人的地址
- 发送的比特币数量
- 锁定脚本
锁定脚本就相当于是Alice出了一道只有Bob才能解开的题(通过公私钥计算)。有了锁定脚本,可以确保这个交易只有Bob才可以收到,其他人只能看看
而Bob在接收这笔交易的时候,必须要提供一个解锁脚本,相当于是上面难题的答案,答对了就可以合法拥有这笔资产了。
也可以这样简单理解:
- Alice把比特币装进了一个盒子,寄给Bob,盒子上有一个密码锁(锁定脚本)
- Bob则有一个密码(解锁脚本),可以开这个密码锁,合法的提取比特币
P2PKH是比特币中常见的锁定脚本类型。它的全称是指“Pay-to-Public-Key-Hash”,简单的说,就是在输出时,指定对方公钥匙的哈希值
P2PKH输出脚本的结构如下:
OP_DUP OP_HASH160 <Public Key Hash> OP_EQUALVERIFY OP_CHECKSIG
其中:
- 是指接收者的公钥哈希值。
而对应的解锁脚本就长这样:
<Signature> <Public Key>
其中:
- Signature是交易签名
- Public Key是接收者的公钥
这两个脚本具体如何工作的,就涉及到比特币的栈式虚拟机了。栈式虚拟机了是种常见的虚拟机,比如java,就是采用栈式虚拟机了。而比特币中的尤为简单,设置连虚拟机都算不上。感兴趣的可以看相关资料
总之而言,P2PKH输出脚本是一种常见的交易输出类型,因为它相对简单且安全,同时也比较容易被大多数比特币客户端软件所支持。它通常用于比特币转账中,当发送方将比特币发送到接收方的地址时,实际上是将比特币发送到接收方的P2PKH输出脚本中的公钥哈希值对应的地址上。
回复 get cheap cytotec without rx 取消回复