正在加载图片...
朱岩等:区块链技术及其研究进展 1365 字段名称 类型 描述 Int nVersion (4 bytes) 交易格式版本(目前为1), Varlnt #vin (1-4 bytes) in中的交易输人的数量 hash unit256 (32 bytes 上一个交易的双SHA256哈希值. Varlnt n (4 bytes) 由hash指定的交易内的交易输出的索引 tx_vin vin Varlnt scriptSigLen (1-9 bytes scriptSig字段的长度,以字节为单位. scriptSig CScript 用于满足交易输出(hash,n)的花费 (Variable 条件的脚本 nSequence unit (4 bytes) 交易输入序列号 Varlnt #vout (1-4 bytes vout中的交易输出的数量 unit256 nValue (32 bytes 存储输出要花费的比特币数量 tx_vout Varlnt vout scriptPubkeyLen (4 bytes scriptPubkey字段的长度,以字节为单位. Varlnt scriptPubkey 1-9 bytes 定义了交易输出所需条件的脚本 unsigned int 交易的锁定时间,一旦超过锁定时间, nLock Time (4 bytes 交易就被锁定计入区块中. 图5常规交易结构 Fig.5 Structure of regular transaction Transaction Transaction vin vin txid txid scriptSig scriptSig Verify vout vout scriptPubKey◆ scriptPubKey scriptSig scriptPubKey (解锁脚本)▲ (锁定脚本) 人 <sig><pk> OP DUP OP HASH160 <PubKHash> OP EQUALVERIFY OP CHECKSIG 图6比特币交易脚本 Fig.6 Bitcoin transaction script b)scriptSig:<signature><pubkey> 编码而来,所以必须拥有该地址的私钥才能将锁 P2PKH(Pay-to-Public-Key-Hash)是最常用的交 定脚本解锁 易脚本,用于向公钥地址支付数字资产.如图6所 (2)Pay-to-Public-Key (P2PK) 示,解锁脚本由<sg>签名与<pk>公钥组成,锁定脚 a)scriptPubKey:<pubkey>OP_CHECKSIG 本是由一连串堆栈命令和<pubkeyHash>公钥哈希 b)scriptSig:<signature> 组成,公钥哈希由两个哈希函数生成,大小20字节; P2PK是P2PKH的简化形式,但不再用于新交 比特币地址实际是由该公钥哈希进行Base58 check 易,因为P2PKH脚本更安全(公共密钥在输出用b)scriptSig: <signature> <pubkey> P2PKH(Pay-to-Public-Key-Hash)是最常用的交 易脚本,用于向公钥地址支付数字资产. 如图 6 所 示,解锁脚本由<sig>签名与<pk>公钥组成,锁定脚 本是由一连串堆栈命令和<pubkeyHash>公钥哈希 组成,公钥哈希由两个哈希函数生成,大小 20 字节; 比特币地址实际是由该公钥哈希进行 Base58check 编码而来,所以必须拥有该地址的私钥才能将锁 定脚本解锁. (2)Pay-to-Public-Key (P2PK) a)scriptPubKey: <pubkey> OP_CHECKSIG b)scriptSig: <signature> P2PK 是 P2PKH 的简化形式,但不再用于新交 易,因为 P2PKH 脚本更安全(公共密钥在输出用 字段名称 描述 nVersion 交易格式版本(目前为1). tx_vin #vin vin[] hash n scriptSigLen scriptSig nSequence VarInt (1~4 bytes) Int (4 bytes) 类型 unit256 (32 bytes) VarInt (4 bytes) VarInt (1~9 bytes) CScript (Variable) unit (4 bytes) vin中的交易输入的数量. 上一个交易的双SHA256哈希值. 由hash指定的交易内的交易输出的索引. scriptSig字段的长度,以字节为单位. 用于满足交易输出(hash,n)的花费 条件的脚本. 交易输入序列号. tx_vout #vout vout[] nValue scriptPubkeyLen scriptPubkey nLockTime VarInt (1~4 bytes) unit256 (32 bytes) VarInt (4 bytes) VarInt (1~9 bytes) unsigned int (4 bytes) vout中的交易输出的数量. 存储输出要花费的比特币数量. scriptPubkey字段的长度,以字节为单位. 定义了交易输出所需条件的脚本. 交易的锁定时间,一旦超过锁定时间, 交易就被锁定计入区块中. 图 5    常规交易结构 Fig.5    Structure of regular transaction Transaction <sig> <pk> OP_DUP OP_HASH160 <PubKHash> OP_EQUALVERIFY OP_CHECKSIG scriptSig (解锁脚本) scriptPubKey (锁定脚本) Transaction vin txid scriptSig vout scriptPubKey vin txid scriptSig vout scriptPubKey Verify 图 6    比特币交易脚本 Fig.6    Bitcoin transaction script 朱    岩等: 区块链技术及其研究进展 · 1365 ·
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有