什么是未花费的交易输出 (UTXO)?

2022-12-26, 00:38

TL: DR
UTXO是加密交易后保留的数字货币。
UTXO不断被处理,并成为每个交易的起点和终点。
交易完成后,任何未花费的输出都会被保存在数据库中,作为未来交易的输入。
UTXO在阻止区块链上的双花和用户花费不存在的硬币方面至关重要。

介绍

未花费的交易输出(UTXO)和账户模型都是加密货币记录方法,用于表示在区块链上完成交易后个人剩余的代币数量。这些模型对于区块链架构如何维护准确的分类账并保持隐私至关重要。
这个术语基本上用于定义接收到的交易结果,并在未来可能花费。
UTXO最好的类比是实体法币。UTXO不能像硬币或纸币那样分割成更小的面额。UTXO可以被认为是由其所有者的私钥控制的相应代币的离散块。 比特币 (BTC), 莱特币(LTC), 比特币 比特现金(BCH)和大零币(ZEC)等其他币种使用UTXO模型。

未花费的交易输出(UTXO)模型到底是什么?
加密货币交易后剩余的数字货币数量被描述为未花费的交易输出(UTXO)。这类似于购买东西后获得的找零,但它不是较低的货币面额。它是由网络生成的数据库中的交易输出,以允许非精确找零交易。
作为会计措施,未在交易中花费的加密货币总量的一部分(输出)被用于下一笔交易(输入)。每笔交易都像复式记账一样,有一个输入和一个输出。

考虑 10 比特币 成为一个装满硬币的桶。每个硬币代表一个未花费的交易输出(UTXO)。如果你向斯蒂芬妮支付5个BTC购买某物,网络将给斯蒂芬妮整个硬币桶,并返回你所欠的5个BTC的“找零”。你现在有一个价值5个BTC的UTXO,无法进一步分割。

UTXO是如何工作的?
想象一下,您想从 1.5 BTC 的余额中发送 1.3 BTC 比特币 钱包地址。这1.5 BTC可能是您先前交易的输出。
比如,分别是0.9 BTC和0.6 BTC。
您的新交易有两个输出:1.3 BTC是花费的(发送给接收者),0.2 BTC是未花费的输出,将退回到您的地址(即发送者)。

剩余的 0.2 BTC 以下列方式之一使用:
已发送回您的帐户。
使用部分或剩余金额作为交易费用,或
发送剩余金额将发送给其他人。
比特币 节点通过跟踪这些输出来维护交易记录。每个未花费的交易输出(UTXO)使用编码的PubKeys来记录每笔交易,并没有与之关联的特定用户。这样可以让网络验证所有相关的币的存在,而不会泄露用户的私人信息。

UTXO的重要性
UTXO的概念大大简化了区块链会计。UTXO允许每个节点跟踪有关未使用硬币的信息,而不是跟踪和存储每笔交易。
它之所以有效,是因为每枚硬币只能在 比特币 网络。这意味着钱包中的每个BTC都是未花费的;它们要么作为挖矿奖励收到,要么在交易过程中铸造成找零。
UTXO在阻止区块链上的双花和防止用户花费不存在的币方面至关重要。每个网络节点都保留着每个UTXO的数据库。

什么是账户模型?
借记卡或银行账户是账户模型最明显的类比。与不能分成较小面额的实物法定货币相比,账户模型允许任何任意代币金额的贷方(或借方)。账户模型钱包代表用户的总余额,而 UTXO 钱包保留用户 UTXO 的总和。
使用账户模型的项目包括以太坊 (ETH)、以太坊经典 (ETC) 和瑞波币 (XRP)。与UTXO模型不同,账户模型中的交易代表账户之间的单次资金或数字货币转移,不需要额外的输入或输出。所需要的只是账本的更改。
UTXO和账户模型的区别
虽然UTXO和账户模型具有相同的目标,但它们各有优缺点。

• 可扩展性:
由于存储单个余额比存储该用户拥有的所有 UTXO 占用的内存要少得多,因此帐户模型可以更好地使用内存。账户模型交易较小,因为它们只需要金额、发件人、收件人和数字签名。典型的以太坊交易约为 100 字节,而 UTXO 模型交易要大几倍。UTXO交易的并行性也有助于将基于UTXO的区块链划分为分片和侧链。UTXO模型允许在客户端进行输出聚合和定义,从而降低了网络计算要求。帐户模型的实现更具挑战性,因为每个节点都必须跨多个分片本地化发送方和接收方帐户。

•隐私:
由于UTXO模型使得在地址之间切换变得微不足道,因此跟踪硬币所有权变得更具挑战性。新生成的地址没有公共所有者。因此,通常需要高级链分析才能将它们链接到特定用户。帐户模型涉及单个地址的重用。因此,这种区块链使识别交易历史变得更加容易。另一方面,在可替代性方面,账户模型提供了更好的隐私性。

• 智能合约功能:
由于基于账户的交易的简化和直观性,该模型从智能合约功能中受益匪浅。与计算 UTXO 输入/输出逻辑相比,验证单一余额所需的计算能力更少,这使得 DApp 开发人员更容易对多方合约和交易进行编程。例如,以太坊虚拟机 (EVM) 可以通过调整各自的余额来处理多个智能合约之间的交易。UTXO 模型消耗的资源要多得多,因为它涉及每个事务中的显式 UTXO 输入和输出。用UTXO模型编写的智能合约必须考虑要组合的输入数量,或者,如果存在多个选项,则应组合哪些输入。

•安全:
UTXO区块链中的验证者节点,如 比特币 跟踪UTXO集,以确定哪些币在流通中,并知道谁拥有它们。UTXO系统以高效且无需信任的方式解决了双花问题,因为每个交易都必须引用要花费的确切UTXO。账户模型的区块链更加容易受到攻击,经常受到其他问题的困扰,比如退款和透支的智能合约。
例如,在2020年,以太经典项目因一系列双花攻击而损失了数百万。

结论
UTXO模型是在区块链上记录交易的一种方法。
由于不同的模型都有其优缺点,UTXO在任何区块链上的应用取决于项目的目标。
以太坊采用账户模型,因为其关注部署强大的智能合约,而 比特币 Gate.io采用UTXO模型,因为它更关注发展安全的电子现金。
新项目试图改进这些模型。例如,Cardano (ADA)、Tron (TRX) 和 Qtum (QTUM) 尝试将两者的优点结合到先进的混合模型中。这些模型使开发人员更容易使用UTXO,同时保留智能合约的强大功能。

作者 - M. Olatunji,Gate.io 研究员

免责声明:
本文仅代表观察者的观点,不构成任何投资建议。 Gate.io保留本文的所有权利。允许转载本文,但必须提及Gate.io。在其他所有情况下,将采取法律行动以应对侵犯版权行为。

分享一下
目录
gate logo
Gate
即刻交易
加入 Gate 赢取奖励