区块、交易与账本

未花费交易输出

UTXO 是“未花费交易输出”的简称,指某人已经收到、却尚未花掉的一份离散的加密货币。区块链(如比特币)并不像银行账户那样为每个用户记一个滚动余额,而是把钱当作一大堆这样独立的份额来追踪,每一份都标明了解锁它所需的条件。你钱包里的余额并不是存在某处的单一数字,而仅仅是你当前掌控的所有未花费份额加起来的总和。

理解 UTXO 最清楚的办法,是把它想象成一张实体钞票。你不能把一张二十元的钞票撕成两半去付十五元;你得递出整张钞票,再收回五元找零。区块链交易也是这样:它把一份或多份完整的 UTXO 当作输入消耗掉,再产生新的 UTXO 作为输出——一份给收款人,通常还有一份找零回到你手里。旧的份额被标记为已花费,新铸出的份额则成为新的可花费的钱。

这套设计有实实在在的好处。由于每一份要么完全未花、要么完全已花,网络只需一次简单的查找就能检查是否重复花费,而且许多交易可以各自独立、并行地验证。代价是,用整张钞票的份额来思考,不如直接看一个余额那样直观,这也是另一些区块链转而选择账户模型的原因。两者归根结底都在回答同一个问题——谁拥有什么——只是用了截然不同的记账方式。

你手里有一份 1.0 枚币的 UTXO,想付 0.7。你的交易会把这整份 1.0 花掉,给卖家发去 0.7 作为一份新的 UTXO,再把 0.3 作为找零 UTXO 返还给自己——扣掉一笔小小的手续费。

又称
unspent transaction output未花费交易输出未花費交易輸出