在探索比特币(BTC)的世界时,你可能会遇到一个核心概念——“未花费的交易输出”(Unspent Transaction Output,简称UTXO),理解UTXO是掌握比特币工作原理的关键,它不仅是比特币账户余额的基础,也构成了比特币交易的本质,究竟什么是BTC的UTXO呢?

UTXO:比特币的“账本”单元

UTXO可以理解为比特币网络中“存在且尚未被花费”的 smallest unit of value(最小价值单位),在比特币的设计中,并没有传统银行账户那样的“账户”概念,相反,所有的比特币都以UTXO的形式存在于整个网络中。

每个UTXO都包含以下关键信息:

  1. 交易ID(TXID):标识这笔UTXO所属的原始交易。
  2. 输出索引(Vout):标识在该交易中,这是第几个输出(一个交易可以有多个输出)。
  3. 金额:这个UTXO包含多少聪(satoshi,比特币的最小单位,1 BTC = 100,000,000 聪)。
  4. 锁定脚本(ScriptPubKey):规定了谁有权花费这个UTXO,通常包含接收方的公钥哈希或锁定时间等条件。

UTXO如何形成与消耗?

UTXO的生命周期非常清晰:

  1. 创建(新币的产生)

    • 创币交易(Coinbase Transaction):这是新区块中产生的特殊交易,由矿工创建,用于奖励矿工和支付交易手续费,产生的UTXO直接进入矿工的控制。
    • 普通交易:当有人发送比特币给你时,他们实际上是在一笔交易中创建了一个或多个新的UTXO,并将其锁定在你的公钥对应的条件上,这些新创建的UTXO就成为了“未花费”的输出。
  2. 消耗(交易的发生)

    • 当你想花费比特币时,你不能随意“动用”某个UTXO,你必须选择一个或多个你拥有的UTXO作为“输入”(Inputs)。
    • 你想支付0.5 BTC,但你手上没有恰好0.5 BTC的UTXO,你可能有一个1 BTC的UTXO,那么你可以将它作为输入,然后创建一笔新的交易:
      • 输出1:支付给接收方0.5 BTC(一个新的UTXO,锁定在接收方的公钥条件)。
      • 输出2:找零给你自己0.5 BTC(一个新的UTXO,锁定在你自己的公钥条件)。
    • 在这个过程中,你那个1 BTC的UTXO被“花费”了(标记为已花费),并消失了,取而代之的是两个新的UTXO:0.5 BTC给接收方,0.5 BTC作为你的找零。

UTXO与“账户余额”的关系

你的“比特币余额”是如何计算的呢?它并不是一个固定的数字,而是所有属于你的、未被花费的UTXO的金额总和

比特币钱包会扫描整个区块链,找出所有锁定在你公钥条件下的UTXO,然后将它们的价值相加,就得到了你当前的可用余额,当你发起交易时,钱包会帮你选择合适的UTXO组合来满足支付金额(通常会包含找零)。

UTXO模型的特点与意义

  1. 无账户状态:比特币网络不维护任何账户余额列表,只记录所有UTXO的状态(存在或被花费),这使得网络更加去中心化和抗审查。
  2. 交易即UTXO的重排:每一笔交易都是对现有UTXO的“销毁”和“新UTXO的创建”过程,输入是“销毁”,输出是“创建”。
  3. 并行处理潜力:由于UTXO是独立的,理论上可以并行验证不同UTXO相关的交易,提高网络效率。
  4. 防止双重支付:一旦一个UTXO被作为交易输入并广播到网络,它就会被标记为已花费,无法再次使用,从而有效防止了同一笔比特币被花费两次。
  5. 隐私性:每次交易都会产生新的UTXO(接收地址和找零地址),使得资金流向相对分散,有助于保护用户隐私(尽管交易本身是公开的)。

UTXO的“未花”不等于“不可用”

需要强调的是,“未花费”(Unspent)在这里是一个技术术语,指的是该UTXO尚未被任何交易作为输入消耗掉,并非指它“闲置无用”或

随机配图
“被锁定”,只要满足其锁定脚本的条件(通常是拥有对应的私钥),持有者就可以随时将其作为交易输入来花费它。

比特币的未花费交易输出(UTXO)是构成比特币经济系统的基本 building block,它摒弃了传统账户的概念,通过UTXO的创建、转移和销毁来实现价值的流转,理解UTXO,意味着理解了比特币交易的本质、余额的计算方式以及比特币网络去中心化、安全可靠的基石,虽然初学者可能觉得UTXO模型略显复杂,但正是这种精巧的设计,支撑起了比特币这一强大的加密货币体系。