酸饼博客
关注区块链技术应用与数字货币

区块链入门100问(14) :如何理解比特币系统中的比特币交易?

本节所说的“比特币交易”并非在交易所中的“交易”,或者其他类型的、在比特币系统之外的交易;而是指在比特币系统中的“交易”。

在《如何理解比特币的数据结构》一节中说过,区块链是区块由后向前有序连接起来的数据结构,区块由后向前有序地链接在这个链条里;区块由区块头和区块体组成;区块体包含当前区块经过验证的、 区块创建过程中生成的所有交易记录。这些交易记录就是我们所说的比特币系统中的“比特币交易”。

比特币交易,记录了比特币资金在不同比特币地址之间转移的过程。比特币交易是一堆数据,这些数据包含了所转移比特币的数量、从哪里转移、转移到哪里去。

比特币交易由交易发起人创建、资金持有者签名确认。注意,比特币交易可以由任何人发起,发起人和资金持有者并不一定是同一个人。

合法创建并签名的比特币交易,包含了转移这笔资金所需要的全部信息;该交易接入比特币网络,经比特币网络进行传播,传递到其他比特币节点。各个比特币节点验证该交易的有效性,如果这笔交易是有效的,那么其他节点会继续传播该交易。这样一笔有效的比特币交易,就会在短时间内以指数级的扩散速度在比特币网络中传播。

在挖矿中胜出的矿工,获得区块的写入权限,会把他接收到的比特币交易按照一定的优先级写入新的区块。这个区块被其他节点校验、确认,下一个区块将其作为父区块;如此类推,这个链条不断延伸下去,区块里的交易就会永久、不可篡改地保存在比特币系统这个分布式账本里。

比特币交易包含交易输入和交易输出(CoinBase交易除外,它没有交易输入,只有交易输出)。一笔比特币交易,它的交易输入,来自其他交易的输出;而它的交易输出,则会成为新的交易的交易输入。每一笔交易都跟之前的交易有关联,形成一条可追踪的链条。

我们之前介绍过,比特币系统并没有账户、余额这些概念。比特币交易的输出,在未使用之前,称为“未花费的交易输出”,英文全称是:“unspent transaction output”。由于transaction通常缩写为“tx”,因此“unspent transaction output”简称为“UTXO”。

UTXO是比特币交易的基本单位。一笔比特币交易用一个或者多个UTXO作为交易输出,产生一个或者多个新的UTXO。这个过程就像,你拿了1张10元、1张5元买了13元的商品,商家收钱后,把商品给你,并找回一张2元的零钱。在交易之前,你的10元和5元就是你所拥有的UTXO;交易之后,变为新的UTXO,一个是商家元,一个是你找回给你的零钱。当然,比特币系统跟现实世界的这个例子并不完全相同。在比特币系统里,比特币交易把输入的UTXO销毁,产生新的UTXO。

比特币交易是比特币系统里最重要的部分,比特币系统中的其他部分,都是为了保证比特币交易可以被生成、能在比特币网络里得到传播和验证,并最终写入比特币区块链。

未经允许不得转载:酸饼 » 区块链入门100问(14) :如何理解比特币系统中的比特币交易?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

留言联系关于酸饼