欢迎访问比特币_区块链-币链视界!

币链视界

比特币交易Tx

发布时间:2021-02-25比特币交易评论
比特币交易的一般格式具有1个输入和1个输出的比特币交易的原理示例输入:先前的TX:f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6索引:0脚本签名:304502206e21798a42fae0e854281abd38bac

比特币交易的一般格式

具有1个输入和1个输出的比特币交易的原理示例

输入:先前的TX:f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6索引:0脚本签名:304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d1090db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b241501输出:价值:5000000000scriptPubKey:OP_DUPOP_HASH160404371705fa9bd789a2fcd52d2c580b65d35549dOP_EQUALVERIFYOP_CHECKSIG解释此事务中的输入从事务f5d8中的输出#0导入50BTC...然后输出将50BTC发送到比特币地址(此处以十六进制4043表示...而不是正常的base58)。当收款人想花这笔钱时,他将在自己的交易输入中引用该交易的输出#0。

输入一个输入是从先前事务的输出的参考。交易中通常会列出多个输入。新交易的所有输入值(即新交易的输入所引用的先前输出的总硬币值)被累加,新交易的输出完全使用了总计(减去任何交易费用)。先前的tx是先前事务的哈希。索引是所引用事务中的特定输出。ScriptSig是脚本的前半部分(稍后将详细讨论)。

该脚本包含两个组件,一个签名和一个公共密钥。公钥必须匹配兑换的输出脚本中给定的哈希值。公钥用于验证赎回者签名,这是第二个组件。更准确地说,第二个组件是在事务的简化版本的散列上的ECDSA签名。结合公钥,证明交易是由相关比特币的真正所有者创建的。各种标志定义如何简化交易,并可用于创建不同类型的付款。

输出一个输出包含发送比特币的指令。值是中本聪(1BTC=100,000,000中本聪)的数量,该数量在声明时将值值。ScriptPubKey是脚本的后半部分(稍后讨论)。可以有多个输出,并且它们共享输入的组合值。由于一个事务的每个输出只能被后续事务的输入引用一次,因此,如果您不想丢失整个合并的输入值,则需要在输出中发送它。如果输入的价值为50BTC,但您只想发送25BTC,则比特币将创建两个价值25BTC的输出:一个输出到目的地,另一个返回给您(称为“更改”“,尽管您将其发送给自己。)未在输出中兑换的任何输入比特币均被视为交易费;生成该区块的任何人都可以通过将其插入该区块的coinbase交易中来索取。

确认为了验证输入是否有权收集参考输出的值,比特币使用了自定义的类似于Forth的脚本系统。输入的scriptSig和引用的输出的scriptPubKey(按此顺序)通过使用scriptSig在堆栈上保留的值的scriptPubKey进行评估。如果scriptPubKey返回true,则输入被授权。通过脚本系统,发送者可以创建人们必须满足的非常复杂的条件才能声明输出的价值。例如,可以创建任何人都可以未经任何授权声明的输出。也可能需要使用十个不同的键对输入进行签名,或者可以使用密码而不是键来赎回输入。

交易类型比特币当前创建两个不同的scriptSig/scriptPubKey对。这些在下面描述。

可以设计更复杂的交易类型,并将它们链接在一起以加密方式执行的协议。这些被称为合同。

付费到哈希scriptPubKey:OP_DUPOP_HASH160OP_EQUALVERIFYOP_CHECKSIGscriptSig:比特币地址只是一个哈希,因此发送者无法在scriptPubKey中提供完整的公共密钥。兑换已发送到比特币地址的硬币时,收件人将同时提供签名和公共密钥。该脚本验证所提供的公钥是否对scriptPubKey中的哈希进行哈希处理,然后还针对公钥检查签名。

按脚本付费scriptPubKey:OP_HASH160OP_EQUALscriptSig:..signatures...n笔多重签名交易:scriptSig:0...

广告位

热心评论

评论列表