博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
比特币解锁脚本中的ScriptSignature都包含了什么东西
阅读量:6273 次
发布时间:2019-06-22

本文共 919 字,大约阅读时间需要 3 分钟。

比特币 解锁脚本signature script 包含了那些东西?

使用 UTXO 需要私钥签名,私钥到底都签了什么东西呢?一直比较好奇.

比特币的私钥签名总共有五中类型,具体见 btcd 代码,如下:

// SigHashType represents hash type bits at the end of a signature.type SigHashType uint32// Hash type bits from the end of a signature.const (    SigHashOld          SigHashType = 0x0    SigHashAll          SigHashType = 0x1    SigHashNone         SigHashType = 0x2    SigHashSingle       SigHashType = 0x3    SigHashAnyOneCanPay SigHashType = 0x80    // sigHashMask defines the number of bits of the hash type which is used    // to identify which outputs are signed.    sigHashMask = 0x1f)

SigHashOld 和 SigHashAll

从代码看,两者是一样的.具体签名内容见图.

主要内容:
所有的 TxIn,所有的 TxOut, 但是不包含签名本身(这个是不可能做到包含自身的).
这是目前主要的签名用法.
signature_all

SigHashNone

主要内容:

所有TxIn, 但是不包含 TxOut
我不知道这种签名用在什么地方, TxOut可以让别人随便改.

signature_none

SigHashSingle

对所有的 TxIn和某个 TxOut 进行签名

不清楚用途
signature_single

SigHashAnyOneCanPay

对当前TxIn 和所有 TxOut 进行签名

这个可以保证输入输出的安全,但是因为没有包含TxIn 之间的顺序关系. 所有这个 Tx 的 ID 是可以被修改的.
signature_anyonecanpay

转载地址:http://kumpa.baihongyu.com/

你可能感兴趣的文章
读cookie中文字符乱码问题
查看>>
招募译者翻译并发数据结构
查看>>
普通表转换为分区表
查看>>
Java 容器 & 泛型:三、HashSet,TreeSet 和 LinkedHashSet比较
查看>>
性能优化总结(六):预加载、聚合SQL应用实例
查看>>
http缓存知识
查看>>
Go 时间交并集小工具
查看>>
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>
TCP的三次握手四次挥手
查看>>
关于redis的几件小事(六)redis的持久化
查看>>
package.json
查看>>
webpack4+babel7+eslint+editorconfig+react-hot-loader 搭建react开发环境
查看>>
Maven 插件
查看>>
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>
Android开发 - 掌握ConstraintLayout(九)分组(Group)
查看>>