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

目录
相关文章
|
2月前
|
存储 安全 数据安全/隐私保护
轻松解锁BitLocker:创建自动解密批处理脚本
本文介绍了如何在Windows 7中通过创建批处理脚本来简化BitLocker驱动器的解锁过程。利用`manage-bde`命令行工具,用户可以通过输入驱动器盘符和密码来解锁BitLocker保护的驱动器,同时强调了安全注意事项,建议避免在脚本中直接写入密码以防止安全隐患。
86 1
|
5月前
|
Web App开发 安全 云计算
H3C任意命令执行漏洞
H3C任意命令执行漏洞
73 1
|
安全 Windows
记一次“上传”命令执行的绕过案例
记一次“上传”命令执行的绕过案例
119 0
|
存储 安全 区块链
储存比特币的钱包开发源码规则解析
储存比特币的钱包开发源码规则解析
|
安全
非法文件的包含攻击是什么意思?底层原理是什么?
非法文件的包含攻击是什么意思?底层原理是什么?
331 0
|
数据库 数据安全/隐私保护 Python
Py经典案例:利用Python调用数据库历史记录文件,实现BTC、LTC等Encrypted currency找出最佳出仓价、收益比的加密币模拟交易系统
Py经典案例:利用Python调用数据库历史记录文件,实现BTC、LTC等Encrypted currency找出最佳出仓价、收益比的加密币模拟交易系统
Py经典案例:利用Python调用数据库历史记录文件,实现BTC、LTC等Encrypted currency找出最佳出仓价、收益比的加密币模拟交易系统
币币合约执行解析(包含部分源码)
比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 本文解析的为比原提供的币币合约 模板如下: contract TradeOffer(assetReques.
1217 0
|
区块链
一个比特币脚本示例
pay-to-pubkey-hash解析 本文主要译自比特币 wiki scriptPubKey: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG scriptSig: 例如如下的raw scriptPubKey: 76A91489ABCDEFABBA...
1465 0
|
存储 安全 区块链
imtoken钱包创建/备份/删除/导入教程,你的第一个智能数字钱包
imToken是一个以太坊移动轻便钱包,致力于为用户提供简单,安全和强大的数字资产管理工具。 用户可以在创建/导入钱包,安全数字资产管理,便利的交易执行,实时市场更新方面体验自由,并通过imToken探索以太坊DApps的潜力。
2129 0