比特币解锁脚本中的ScriptSignature都包含了什么东西

简介: 比特币 解锁脚本signature script 包含了那些东西?使用 UTXO 需要私钥签名,私钥到底都签了什么东西呢?一直比较好奇.比特币的私钥签名总共有五中类型,具体见 btcd 代码,如下:// SigHashType represents hash type bits at the end of a signature.

比特币 解锁脚本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

目录
相关文章
|
缓存 安全 Java
JAVA实现用户登录错误N次后,账户暂时锁定
JAVA实现用户登录错误N次后,账户暂时锁定
676 0
JAVA实现用户登录错误N次后,账户暂时锁定
|
3月前
|
JavaScript 前端开发 程序员
通过一篇文章带你解决如何加密代码任然可以运行
在实际生活中,作为程序员偶尔会因为资金不够用了选择去兼职写代码,当我们写完一个代码,将他发给某个公司的时候,我们经常会想到如何让目标公司看不见你写的源代码(源代码是你好不容易想出来的,难免不有些心疼嘛),但目标公司却可以运行他所需要的代码,下面我将讲解一种静态库的使用方法,来实现这个方法。
221 0
|
存储 安全 区块链
储存比特币的钱包开发源码规则解析
储存比特币的钱包开发源码规则解析
|
安全 API Android开发
教你如何高效的检查APK中使用敏感权限的地方以及检查某系统方法被调用的地方
教你如何高效的检查APK中使用敏感权限的地方以及检查某系统方法被调用的地方
466 0
教你如何高效的检查APK中使用敏感权限的地方以及检查某系统方法被调用的地方
|
云安全 弹性计算 安全
阿里云提示服务器有挖矿程序 该如何处理
临近2018年底,我们阿里云上的一台ECS服务器竟然被阿里云短信提示有挖矿程序,多次收到阿里云的短信提醒说什么服务器被植入挖矿程序,造成系统资源大量消耗;而且还收到CPU使用率达到百分之90的安全提醒,我们的服务器上并没有运行大量的网站,只是一个公司的展示网站,怎么可能会出现CPU%90以上的告警,然后致电阿里云技术帮忙检查服务器为什么CPU占用这么高,得知服务器被黑,导致中了挖矿木马,服务器含有挖矿进程,一直在不停的挖矿才导致CPU这么高。
1864 0
阿里云提示服务器有挖矿程序 该如何处理
|
数据安全/隐私保护
Mac 技术篇-应用程序被锁定无法进行卸载问题解决方法,文件、文件夹被锁定无法移入废纸篓处理方法,卡巴斯基被锁定如何进行卸载演示
Mac 技术篇-应用程序被锁定无法进行卸载问题解决方法,文件、文件夹被锁定无法移入废纸篓处理方法,卡巴斯基被锁定如何进行卸载演示
1885 0
Mac 技术篇-应用程序被锁定无法进行卸载问题解决方法,文件、文件夹被锁定无法移入废纸篓处理方法,卡巴斯基被锁定如何进行卸载演示
|
数据库 数据安全/隐私保护 Python
Py经典案例:利用Python调用数据库历史记录文件,实现BTC、LTC等Encrypted currency找出最佳出仓价、收益比的加密币模拟交易系统
Py经典案例:利用Python调用数据库历史记录文件,实现BTC、LTC等Encrypted currency找出最佳出仓价、收益比的加密币模拟交易系统
Py经典案例:利用Python调用数据库历史记录文件,实现BTC、LTC等Encrypted currency找出最佳出仓价、收益比的加密币模拟交易系统
|
数据安全/隐私保护
苹果提交版本后显示”缺少出口合规证明“的解决办法
苹果提交版本后显示”缺少出口合规证明“的解决办法
1510 0
币币合约执行解析(包含部分源码)
比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 本文解析的为比原提供的币币合约 模板如下: contract TradeOffer(assetReques.
1196 0
|
区块链
一个比特币脚本示例
pay-to-pubkey-hash解析 本文主要译自比特币 wiki scriptPubKey: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG scriptSig: 例如如下的raw scriptPubKey: 76A91489ABCDEFABBA...
1432 0