本文共 919 字,大约阅读时间需要 3 分钟。
使用 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)
从代码看,两者是一样的.具体签名内容见图.
主要内容: 所有的 TxIn,所有的 TxOut, 但是不包含签名本身(这个是不可能做到包含自身的). 这是目前主要的签名用法.主要内容:
所有TxIn, 但是不包含 TxOut 我不知道这种签名用在什么地方, TxOut可以让别人随便改.对所有的 TxIn和某个 TxOut 进行签名
不清楚用途对当前TxIn 和所有 TxOut 进行签名
这个可以保证输入输出的安全,但是因为没有包含TxIn 之间的顺序关系. 所有这个 Tx 的 ID 是可以被修改的.转载地址:http://kumpa.baihongyu.com/