https://blog.csdn.net/weixin_43988498/article/details/107958185 三种比特币的校验方式
贴出P2PKH的校验流程:
这一种是较为常见的一种形式,输出脚本中输出的是公钥的Hash,而输入脚本中要除了签名还要包含公钥
除了这些,其他的DUP、HASH160都是一些验证操作。
脚本执行过程:
同样的为了方便看,将输入与输出拼接到一起,从上往下执行。
前两步操作相同,将输入中的签名和公钥压入栈
第三步操作DUP是将栈顶的公钥复制一份
第四步操作HASH160是将复制的公钥取HASH值,然后压入栈中。
第五步,将输出脚本里面的公钥Hash压入栈,这时栈里面出现了两个公钥的Hash值
第六步,EQUALVERIFY是弹出栈顶的两个Hash值,比较两者是否相等。
最后一步,和之前一样,分别弹出,检查公钥与签名是否配对(正确)。
整个过程如果两个Hash对不上,或者公钥与私钥签名对不上,那么这个交易就是错误的,非法的
实例:
重点:
两个保证:
1. 输入中的公钥和上一个输出的公钥的hash进行校验,使input与output连接起来,保证使用者的身份的统一
2. 输出入中的私钥签名与输出的公钥进行验证,保证使用者使用此笔钱的权利,必须本人签名了这个input才能被使用