# 什么是UTXO模型

比特币的账本系统和我们传统的“账户/余额”模型不同。为了更好地理解比特币的运作，我们需要了解它的UTXO（未消费的交易输出）模型。这个模型是比特币特有的一种记账方式。

UTXO模型全称是“未消费的交易输出”。它本质上是一种通过交易记录来管理资金的方式，而不是通过账户余额来管理。简单来说，UTXO模型记录的是每笔交易中的“输入”和“输出”，而不是账户中的余额。<br>

### 在比特币系统中，每一笔交易都有两个部分：

交易输入（Input）：这部分标识了资金的来源。

交易输出（Output）：这部分标识了资金的去向。

每一笔交易都可以有多个输入和多个输出。我们可以把每一笔交易看作是用来“消费”前面交易的输出，同时产生新的输出，这些新的输出在未来可以被用作其他交易的输入。

### 交易示例

交易A：假设有一个矿工节点X，它通过挖矿获得了15枚比特币的奖励。这15枚比特币最初就是一个未消费的交易输出（UTXO）。

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXeTkZwPHNxHWjoai0P41nzQfeDTzv2J5Bsm0UKHuQK6bnBf60zng6KXB_r40vsxb63e4oAlplZDtkmO8JUCUv1515Aow9ywADIqjt5nGp_1KegyYVtWiE2i5MHNfE36XOLTYCbKJG8H7wBb3rz23-w3cfay?key=w0MPkuau-iF-LsMc5MtkxQ" alt=""><figcaption></figcaption></figure>

接下来，节点X进行了一些交易：

交易B：节点X把自己拥有的5枚比特币转给了节点Y。这笔交易可以表示为:&#x20;

* 输入：节点X的15枚比特币（来自挖矿的奖励）。
* 输出：节点Y获得了5枚比特币，节点X剩下10枚比特币作为找零。

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXc6U1z2MO_HmEl3L1wOKboqszpEBtKfJPtVIjZCYnZwFU0-68crLXaoI9YmX49z4UVR_tdBcltUgTZsh3JKe-yLjpQJWzH8gdXa-qCAtZpQa8KNzPWKzQOIDzi8jMq2CdRrFi4EcOzGqksMwpZ7gGe-ROs?key=w0MPkuau-iF-LsMc5MtkxQ" alt=""><figcaption></figcaption></figure>

在这个交易中，节点X消费了之前获得的15枚比特币（作为输入），产生了两个新的未消费的交易输出（UTXO）：一个是节点Y的5枚比特币，另一个是节点X剩下的10枚比特币。<br>

交易C：

后来，节点X和节点Y一起合资，各自拿出3枚比特币支付给节点Z。这笔交易可以表示为：

* 输入：节点X的10枚比特币中的3枚，节点Y的5枚比特币中的3枚（来自之前交易B）。
* 输出：节点Z获得了6枚比特币，节点X剩下7枚比特币作为找零，节点Y剩下2枚比特币作为找零，这些都是新产生的UTXO。

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXcvwF_YSGubBVSkfdOLxOcg9HXa56Ik_eHZVYf2ltszSWGAIjuvneoh_iUEH8Xg3bCxAlmR8n-g4m4nyv5MDazPp-KsWbyVw8wi0yTtVkPL2JMeW6YnKs_AW1b4mfAT1KBOmd22hmbO8xc9FLd0AwiepVAG?key=w0MPkuau-iF-LsMc5MtkxQ" alt=""><figcaption></figcaption></figure>

### 结论

比特币系统中的每个“账户”可以视为对应着某个地址，比特币区块链不会直接跟踪每个地址的比特币余额，而是在区块链中存储交易数据的整个历史，比特币系统通过“交易池”跟踪区块链网络中所有UTXO的集合，而某个地址在某个时间点所具有的“余额”，是通过检查、求和与该地址相关的所有UTXO来计算。当使用UTXO时，它将从交易池中被删除，这将实时在计算余额时反映出来。

<figure><img src="https://lh7-us.googleusercontent.com/docsz/AD_4nXceehc8RNc0nwtjtdgUFaPzCTO6gsxMHctyN1rEOchcAapY3LPFPdBzdUUuylCWnOg_SZtK8m_WhRloNDrAUvCJIpLHHNdcBg0ONIaGB8xRmV6Yen1GivaeapjXGBFY0vHA6tXxdhPrHD60C633I-E0YEiP?key=w0MPkuau-iF-LsMc5MtkxQ" alt=""><figcaption></figcaption></figure>

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.tokenpocket.pro/cn/faq/btcwallet/utxo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
