**未花费交易输出(UTXO)**是指在特定交易后剩余的加密货币金额,即可以作为新交易输入使用的交易输出。[1][2]
未花费交易输出(UTXO)是区块链技术中的一个基本概念,尤其是在比特币等加密货币中。它代表尚未花费的交易输出,可用作未来交易的输入。每笔加密货币交易都包含一个输入和一个输出。每次执行交易时,输入被删除,输出被生成。任何剩余且未立即花费的输出都是未花费交易输出,以后可以在新交易中使用。[1]
UTXO模型是跟踪给定网络中代币供应以及交易验证的重要组成部分。未经所有者验证,它无法执行,这有助于防止诈骗或欺诈。每个UTXO交易都与个人数字签名相关联,所有者需要提供该签名以确认UTXO的所有权,同时将其用作新交易的输入。[1][3]
虽然在比特币白皮书中没有提及UTXO,但UTXO模型最初是由中本聪在首次发布比特币区块链时开发的。最初的比特币脚本严重依赖UTXO来检查特定钱包是否有足够的资金来执行请求的交易。[3]
UTXO(未花费交易输出)模型基于以下原则运作:对于一笔有效的交易,所有输入的总和必须大于或等于所有输出的总和。这是验证者执行以确认交易有效性的基本检查之一。UTXO模型在去中心化系统中特别有用,因为它提供了一种直接的方法来检测和防止资金的双重支付。[4]
交易输出包括一个地址和一个对应的值。在这个类比中,地址的签名充当解锁输出的密钥,允许它被用作输入。后续交易使用先前交易的输出,并生成新的输出,供未来交易潜在使用。值得注意的是,每个UTXO只能使用一次,并且作为一个完整的单元。此外,每个输出只能由一个输入花费,确保输出和输入之间存在一对一的关系。[7]
交易输入代表先前交易的输出,由一个指针和一个用作解锁密钥的加密签名组成。该指针指向先前的交易输出,密钥有助于解锁这个特定的输出。解锁后,区块链将该输出指定为“已花费”。随后,交易中新生成的输出可以被新的输入引用,从而延续链条。[7]
这些新创建的、尚未花费的输出被称为未花费交易输出(UTXO)。未花费的输出是指在后续交易中尚未被使用或花费的输出。[7]
UTXO是不可分割的,这意味着如果交易输出没有完全花费,剩余的金额将被视为一个新的、独立的UTXO。此特性为交易过程增加了一层粒度,允许用户更精确地管理资金。[2]
UTXO模型增强了区块链交易的安全性。每个UTXO都与一个加密密钥相关联,花费它需要提供有效的数字签名。这确保只有与UTXO关联的私钥的合法所有者才能授权其在新交易中使用。[2]
UTXO的使用有助于区块链上的隐私。由于每个UTXO都是独立的,因此追踪特定用户的完整交易历史变得具有挑战性。此功能与许多区块链系统的假名性质相符。[2]
UTXO的生命周期始于用户通过交易收到加密货币时生成UTXO,未花费的输出会增加用户的钱包余额。随后,当用户发起交易时,他们钱包中的UTXO会作为输入,生成新的UTXO作为输出,反映接收者的未花费余额。如果用户只花费了UTXO的一部分,剩余的金额将转换为与同一钱包地址关联的新UTXO。此外,用户可以选择通过将较小的UTXO合并为较大的实体来整合UTXO,最终减少交易中的输入数量,并可能优化相关的交易费用。[3]
区块链中的UTXO集包含加密货币系统中特定时间的所有代币。输出包含UTXO,UTXO是输出的一个子集。在有效的交易中,只有未花费的输出(UTXO)用于资助后续交易,从而防止双重支付和欺诈。[5]
私钥持有者,如加密货币钱包用户,可以使用这些UTXO进行未来的交易。该过程包括从UTXO集中删除交易输入,同时添加带有交易输出的新UTXO。这种机制确保了区块链交易的完整性和安全性。[5]
扩展 UTXO (EUTXO) 模型代表了传统未花费交易输出 (UTXO) 模型的高级版本,引入了额外的功能以增强灵活性和实用性,同时保留了安全性、可预测性和并行性的固有优势。[6]
在此模型中,UTXO可以链接到任意数据和智能合约逻辑,从而允许合并与并行交易处理兼容的有状态元素。这丰富了EUTXO模型,与基本UTXO模型相比,提供了更具表现力和更复杂的合约。每个UTXO都与一个可更改的数据值相关联,使合约能够在交易中保持状态。[6][7]
尽管EUTXO模型很复杂,但它被用于Cardano区块链等加密货币中,支撑着Plutus等智能合约开发平台,支持具有持续安全性和可预测性的复杂有状态合约。它保留了UTXO模型的关键优势,确保可预测的资源消耗,并支持高度的并行性,以实现可扩展的区块链交易。[7]