未花费的交易输出
在加密货币中,未花费交易输出(UTXO)是数字货币模型中一个独特的组成部分。UTXO 代表了一定数量的加密货币,这些货币已被发送方授权,可以被接收方花费。UTXO 在交易过程中的应用是许多加密货币的一个关键特性,但它主要特指采用 UTXO 模型的加密货币[1]。
UTXO 使用公钥加密技术来确定和转移所有权。更具体地说,接收方的公钥被格式化并嵌入到 UTXO 中,从而将花费 UTXO 的能力限制在能够证明拥有相应私钥的账户中。为了花费 UTXO,必须包含与公钥相关的有效数字签名[2]。
UTXO 构成了一个所有权链条,该链条由一系列数字签名表示,可追溯到该币的起源,无论该币是通过挖矿、质押还是由加密货币协议确定的其他程序生成的[2]。
采用 UTXO 模型的主要加密货币包括比特币和卡尔达诺(Cardano)。卡尔达诺采用了一种扩展版的 UTXO 模型,被称为 EUTXO[3]。
起源[编辑 | 编辑源代码]
UTXO 模型的概念框架可以追溯到 Hal Finney 提出的可重用工作量证明(Reusable Proofs of Work)提案,而该提案本身又基于 Adam Back 于 1997 年提出的 Hashcash 提案[4]。比特币于 2009 年发布,是第一个广泛实践 UTXO 模型的加密货币[1]。
比较:UTXO 模型 vs. 账户模型[编辑 | 编辑源代码]
采用 UTXO 模型的加密货币与采用账户模型的加密货币在运行方式上有所不同。在 UTXO 模型中,个别的加密货币单位(即未花费交易输出,UTXOs)在用户之间传递,类似于实物现金的交换。这种模型影响了区块链网络中交易和所有权的记录及验证方式[5]。
在 UTXO 模型中,每个货币单位都被视为一个独立的对象。UTXO 的历史仅记录在其被转移的区块中。为了确定一个账户的总余额,需要扫描每个区块以找到与该账户相关的最新 UTXO。尽管区块链网络中的所有节点必须就区块历史达成一致,但与某账户余额相关的区块是该账户独有的。
相比之下,账户模型为每个新增的区块保留每个账户及其对应余额的记录。这种设置使得余额验证更快速,无需扫描历史区块,但它会增加每个区块的原始大小(尽管可以利用数据压缩技术缓解这一问题)。尽管存在这些差异,两种模型都需要检查过去的区块以完全验证币的来源。
在 UTXO 模型中,每个对象都是不可变的——币的单位无法像账户余额在交易发生时被修改一样被“编辑”。相反,余额是通过从币首次生成时的交易历史中计算得出的。这种简洁性增强了安全性,因为 UTXO 要么以预期形式存在,要么不存在。而账户模型则要求在交易过程中对账户状态进行详细验证,如果未正确进行,可能导致错误。
UTXO 模型的内在特性还使其非常适合于链下协议,如侧链和闪电网络。相反,账户模型简化了存储交易“状态”的任务,但这种简化并不一定意味着优越性。例如,扩展版 UTXO(EUTXO)模型引入了更明确和更简洁的状态转换,从而减少了意外结果的可能性。尽管处理 EUTXO 模型可能更加复杂,但它提供了更高的安全性和简便性。
UTXO 集合[编辑 | 编辑源代码]
区块链中所有 UTXO 的集合构成了一个集合。网络中的每笔交易都会从这个集合中移除一些元素(被花费的 UTXO)并添加新的元素(新创建的 UTXO)。UTXO 集合有效地表示了特定加密货币系统在某一特定时间的所有币[6]。
从更广义的角度来看,输出(outputs)是 UTXO 的超集,而 UTXO 是输出的子集。UTXO 的关系以及其在比特币系统中的生命周期等动态,一直是研究的主题[7]。
在有效的区块链交易中,只有未花费的输出(UTXO)才能用于资助后续交易。这一要求对于防止双重花费和欺诈至关重要。因此,交易中的输入会从 UTXO 集合中移除,而输出则会创建新的 UTXO 并添加到集合中。拥有私钥的用户,例如拥有加密货币钱包的用户,可以利用这些 UTXO 进行未来的交易。
扩展 UTXO (EUTXO) 模型[编辑 | 编辑源代码]
扩展 UTXO (EUTXO) 模型是传统未花费交易输出 (UTXO) 模型的高级版本。它在 UTXO 模型的基础上扩展了功能,增加了灵活性和实用性,同时保留了该模型在安全性、可预测性和并行处理方面的固有优势[3]。
在 EUTXO 模型中,UTXO 可以与任意的数据和逻辑(以智能合约的形式)相关联。这允许 UTXO 以一种与并行处理交易及资源消耗可预测性兼容的方式携带状态信息。与基本的 UTXO 模型相比,这使得 EUTXO 模型能够实现更具表现力和更复杂的合约功能,在合约功能方面弥合了 UTXO 模型与账户模型之间的差距。
在 EUTXO 模型中,每个 UTXO 都与一个数据值相关联,当该 UTXO 被消耗并创建新的 UTXO 时,该数据值可以发生变化,从而允许合约在交易之间维护状态。这种增强的数据结构为 EUTXO 模型提供了更广泛的能力,用于开发智能合约,同时仍然保留标准 UTXO 模型的不可变性和可审计性。
EUTXO 模型被用于例如 Cardano 区块链的加密货币中,以促进更复杂的金融交易和自动化脚本。它是 Cardano 的智能合约开发平台 Plutus 的基础,使其能够处理复杂的、有状态的合约,同时保持高水平的安全性和可预测性。
尽管 EUTXO 模型增加了复杂性,但它保留了 UTXO 模型的关键优势。它保持了资源消耗的可预测性,这是合约执行的重要属性,并支持高水平的交易处理并行性,这是区块链可扩展性的关键特性。
参考链接[编辑 | 编辑源代码]
- ↑ 1.0 1.1 Mastering Bitcoin[Book] by Andreas M. Antonopoulos
- ↑ 2.0 2.1 Analysis of the Bitcoin UTXO set - UCL Discovery
- ↑ 3.0 3.1 The Extended UTXO Model | SpringerLink
- ↑ Hashcash.org Hashcash is a proof-of-work algorithm
- ↑ Unspent Transaction Output (UTXO) | River
- ↑ UTXO Set | River
- ↑ Bitcoin UTXO Lifespan Prediction Robert Konrad & Stephen Pinto December 11, 2015