比特币解锁脚本中的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月前
|
安全 Linux 虚拟化
运行时锁定正确性验证器 【ChatGPT】
运行时锁定正确性验证器 【ChatGPT】
|
存储 安全 物联网
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)
|
安全 数据安全/隐私保护 物联网
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
|
存储 安全 区块链
储存比特币的钱包开发源码规则解析
储存比特币的钱包开发源码规则解析
|
数据库 数据安全/隐私保护 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.
1207 0
|
区块链
一个比特币脚本示例
pay-to-pubkey-hash解析 本文主要译自比特币 wiki scriptPubKey: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG scriptSig: 例如如下的raw scriptPubKey: 76A91489ABCDEFABBA...
1449 0
|
存储 安全 区块链
imtoken钱包创建/备份/删除/导入教程,你的第一个智能数字钱包
imToken是一个以太坊移动轻便钱包,致力于为用户提供简单,安全和强大的数字资产管理工具。 用户可以在创建/导入钱包,安全数字资产管理,便利的交易执行,实时市场更新方面体验自由,并通过imToken探索以太坊DApps的潜力。
2073 0