VerifyTransaction-Bitcoin中交易验证的具体过程

Rohana ·
更新时间:2024-11-13
· 562 次阅读

比特币中的签名

签名存在于解锁脚本里面即ScriptSig,主要有身份认证,就是签名是用户使用私钥完成的,所以证明了花的钱是自己的,之后解锁脚本会去验证锁定脚本,进而解锁UTXO,所用到的也是sig和PubKey进行交易验证,验证成功即可完成交易产生新的UTXO。
那么在Bitcoin中验证交易的具体过程是怎样的呢?并且签名的类型也是多种:SIGHASH_ALL, SIGHASH_NONE, SIGHASH_SINGLE。今天我门主要探索的是SIGHASH_ALL中交易的验证过程。

具体过程

下图当成两张图片使用
transaction

创建subscript:从OP_CODESEPARATOR到脚本的最后
prevTx 如果脚本中存在签名则移除 把操作码:OP_CODESEPARATORS从脚本中移除
remove 把hashtype从签名中移除
hashtype 复制一份TxNew命名为TxCopy 把TxCopy中的所有TxIn置空 复制Subscript到你要验证的TxIn中 序列化TxCopy并且扩展4字节hashTypeCode(使用的是sha256^2) 通过字符串验证签名(hash strings是big-endian) 小结

这一个比较细节的过程,希望以后能够用的到!!!

我的主页:Stride Max Zz欢迎大家访问!
作者:Stride Max Zz



bitcoin

需要 登录 后方可回复, 如果你还没有账号请 注册新账号