go语言实现简易比特币系统之交易签名及校验功能
程序员文章站
2022-04-09 12:01:15
介绍签名的输入: 待签名的交易数据,包括输入和输出 引用的utxo信息 私钥签名的输出: 数字数字签名 公钥签名的目的 证明交易所引用的utxo的确属于付款人...
介绍
签名的输入:
- 待签名的交易数据,包括输入和输出
- 引用的utxo信息
- 私钥
签名的输出:
- 数字数字签名
- 公钥
签名的目的
- 证明交易所引用的utxo的确属于付款人
- 证明交易的所有数据的确是付款人提供的,且未被修改过
签名中需要的数据
- utxo中的pubkeyhash,这描述了付款人
- 新生成utxo中的pubkeyhash,这描述了收款人
- 由于每一笔交易都可能引用多个utxo,因为多个utxo可能存在于多条交易中。所以我们需要遍历所以的引用交易,并对他们逐个签名
签名过程
用解锁脚本解锁对应的utxo锁定脚本
签名
校验
拷贝交易
最后
本套源码来源于黑马程序员,在此十分感谢黑马程序员的教程!
源码:https://gitee.com/xiaoshengdada/go_bitcoin/tree/master/v6
如果有任何问题可以来微信群交流,另外群里有学习资料,可以自行下载。一起学习进步。
到此这篇关于go语言实现简易比特币系统之交易签名及校验功能的文章就介绍到这了,更多相关go语言比特币交易签名校验内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: go语言实现简易比特币系统钱包的原理解析