zoukankan      html  css  js  c++  java
  • 比特币解锁脚本中的ScriptSignature都包含了什么东西

    比特币 解锁脚本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中的IO流
    oracle sqlplus 命令行中创建存储过程
    Redis 缓存数据库的使用场景
    Java 数值格式化类-NumberFormat
    Idea_类注释、属性注释、方法注释
    博客·HelloWorld
    【4】Django 创建第一个模块应用
    【3】Django创建第一个项目
    理解面向对象三大特征与魔法方法?
  • 原文地址:https://www.cnblogs.com/baizx/p/9497429.html
Copyright © 2011-2022 走看看