精通比特币-05-交易
第五章 交易
5.1 简介
比特币交易是比特币系统中重要的部分。
在这一章,我们将会剖析比特币交易的多种形式、所包含的信息、如何被创建、如何被验证以及如何成为所有比特币交易永久记录的一部分。
5.2 比特币交易的生命周期
一笔比特币交易的生命周期起始于它被创建的那一刻,也就是诞生(origination)。
5.2.1 创建比特币交易
一旦一笔比特币交易被创建,他会被资金所有者(们)签名。如何它是合法创建并签名的,则该笔交易现在就是有效的,它包含了转移这笔资金所需要的所有信息。
最终,有效比特币交易必须能介入比特币网络,从而使之能被传送,直至抵达下一个等级在公共总账簿(区块链)的挖矿节点。
5.2.2 广播交易至比特币网络
比特币因此可以通过未加密网络被发送到比特币网络。
比特币将金钱变成了一种数据结构,所以在本质上是不可能阻止任何人创建并执行比特币交易的。
5.2.3 比特币交易在比特币网络中的传播
一旦一笔比特币交易被发送到任意一个连接指比特币网络的节点,这笔交易将会被该节点验证。
如果交易被验证有效,该节点将会被这笔交易传播到这个节点所连接的其他节点;同时,交易发起者会受到一条表示交易有效并被接受的返回信息。
如果这笔交易被验证为无效,这个节点会拒绝接受这笔交易且同时返回给交易发起者一条表示交易被拒绝的信息。
5.3 交易结构
交易的锁定时间
锁定时间定义了能被叫到区块链里最早的交易时间。在大多数交易里,它被设置成0,用来表示立即执行。
5.4 交易的输出和输入
比特币交易的基本单位是未经使用的一个交易输出,简称UTXO。
在比特币的世界里既没有账户,也没有余额,只有分散到区块链的UTXO。
被交易消耗的UTXO被称为交易输入,由交易创建的UTXO被称为交易输出。通过这种方式,一定量的比特币价值在不同所有者之间转移,并在交易链中消耗和创建UTXO。一笔比特币交易通过使用所有者签名来解锁UTXO,并通过使用新的所有者的比特币地址来锁定并创建UTXO。
5.4.1
每一笔比特币交易创造输出,输出都会被比特币账簿记录下来。
交易输出包含两部分:
一定量的比特币,被命名为“聪”,是最小的比特币单位;
一个锁定脚本,也被当做是“障碍”,提出支付输出所必须被满足的条件以“锁住”这笔总额。
使用blockchain.info 应用程序接口来查找特定地址的UTXO
支付条件(障碍)
交易输出把用聪表示的一定数量的比特币,和特定的定义了支付输出所必须被满足的条件的障碍,或者叫锁定脚本,关联到了一起。在大多数情况下,锁定脚本会把输出锁在一个特定的比特币地址上,从而把一定数量的比特币的所有权转让到新的所有者上。
5.4.2 交易输入
交易输入是指向UTXO的指针。
他们指向特定的UTXO,并被交易哈希和在区块链中记录UTXO的序列号作为参考。若想支付UTXO,一个交易的输入也需要包含一个解锁脚本,用来满足UTXO的支付条件。解锁脚本通常是一个签名,用来证明对于在锁定脚本中的比特币地址拥有所有权。
5.4.3 交易费
大多数交易包含交易费,这是为了在网络安全方面给比特币矿工一种补偿。
交易费可当做是为了包含(挖矿)一笔交易到下一个区块的一种鼓励,也可以当做是对于欺诈交易和任何种类的系统滥用,在每一笔交易上通过征收一笔小成本的税而造成的一种妨碍。交易费被挖出这个区块的矿工得到,并且记录在这个交易的区块链中。