「UTXO」 模型的全称是 「未花费交易输出」 模型,用于记录、存储和执行交易,最早采用此模型记账的比特币。
UTXO 模型的工作原理#
「UTXO」用交易执行后剩余的加密货币数量(即未使用的加密货币)来记账,所以在 UTXO 模型中,不存在 “账户” 和 “余额”,这是与「账户模型」最大的不同。换句话说,「在 UTXO 模型中用户可以转移的余额是他之前交易中尚未花费的金额。」
在 UTXO 模型中,每笔交易都由表示为 UTXO 的输入和输出组成。输入消耗一个现有的 UTXO,而输出创建一个新的 UTXO。交易完成后,任何未使用的输出都将作为输入记录在数据库中,以后可用于新交易。
UTXO 模型的举例#
A 的钱包里有 5 个比特币(UTXO_0)。B 有一个空钱包。 现在,A 想向 B 的钱包发送 3.15 BTC。A 的 5 个 BTC 将被记录为输入,然后被消耗,同时,将创建 3.15 BTC 和 1.85 BTC(UTXO_1 和 UTXO_2)作为交易的输出。UTXO_2 将转到 A 的钱包,UTXO_1 转到 B 的钱包。交易完成后,A 的钱包有 1.85 BTC 的未使用余额。B 的钱包有 3.15 BTC 的未使用余额。
UTXO 特点#
UTXO 的核心设计思路是无状态,它记录的是交易事件,而不记录最终状态,用户只需要根据历史记录自行计算余额。