主页 > imtoken中国版下载 > 令人眼花缭乱的区块链名词之一:UTXO

令人眼花缭乱的区块链名词之一:UTXO

imtoken中国版下载 2023-11-05 05:14:11

比特币UTXO模型_比特币主连比特币连续的区别_比特币怎么比特币钱包

大家好,我们的第六次区块链技术分享来了~~ 本次分享的主题是UTXO(Unspent Transaction output),未花费的交易输出。

在比特币系统中,每个全节点都会记录UTXO。 要理解UTXO模型,首先要明确:比特币采用的是基于交易的账本模型比特币UTXO模型,即transaction-based Ledger。 如何理解?

通俗地解释一下,比特币系统中没有“账户”,只有“地址”。 只要你愿意,你可以在比特币区块链上开无限个钱包地址,你拥有的比特币数量是你所有钱包地址中比特币的总和。 比特币系统不会帮助你聚合这些地址来形成你的账户。

因此,比特币网络的核心是:交易。 交易将价值从交易输入转移到交易输出。 交易输入是价值的来源,通常是先前交易的输出。

比特币怎么比特币钱包_比特币UTXO模型_比特币主连比特币连续的区别

为了深入理解UTXO,我们先来举例说明比特币上的交易。

贸易

简单来说,一次比特币交易就是告诉网络,一个拥有一定数量比特币的用户已经授权将这个比特币转让给另一个用户。 新的所有者可以通过另一笔授权转让交易使用这些比特币,等等,形成所有者转换链。

比特币UTXO模型_比特币主连比特币连续的区别_比特币怎么比特币钱包

每个区块链网络都是一个分布式账本,交易就像一个复式账本的记录。 每笔交易都包含一个或多个“输入”——这是比特币账户的借方。 每笔交易还包含一个或多个“输出”——记入比特币账户。

比特币主连比特币连续的区别_比特币怎么比特币钱包_比特币UTXO模型

下面对记账相关的知识点做一个扩展解释:

人类社会发明了四种会计技术。

(1)早在原始社会,人类就发明了“打结记账”;

(2)“日记账”是在农业社会发明的;

(3)“复式记账”是工业社会发明的。 复式记账的资产负债表,账目一目了然,适合工业社会的企业管理。 但是,这不能阻止管理人员和会计人员伪造原始数据的来源。

(4) 区块链是分布式账本,是网络成员之间共享、复制、同步的数据库。

比特币主连比特币连续的区别_比特币怎么比特币钱包_比特币UTXO模型

复式记账法的记账规则是:“有借必有贷,借方必须相等”。 使用了“借方”和“贷方”这两个记账符号,但这两个记账符号没有实际意义。 借助记账符号,将同一笔交易或事项以相同的金额记录在两个以上的会计科目中。 这种簿记方法有助于我们弄清楚交易和事件的来龙去脉。

输入和输出(借方和贷方)不需要加起来就相等。 在实践中,输出总和应该略小于输入总和,这种差异就是隐含的“交易费”,这是一笔支付给将交易记入账本的矿工的小额费用。 (下图中交易手续费为小费)

如下图所示,Alice 给 Bob 的付款是将上一笔交易的输出作为本次交易的输入。 输出包括两部分,一部分是 Bob (0.0150BTC),另一部分是零钱 (0.0845 BTC)。 交易形成一条链,最新交易的输入对应上一笔交易的输出。

爱丽丝的私钥提供的签名解锁了之前交易的输出,向比特币网络证明了她对资金的所有权。 她将 Bob 的地址附加到交易中,形成 Bob 必须用他的私钥签名才能使用资金的“限制”。 这个过程展示了价值是如何在爱丽丝和鲍勃之间转移的。

比特币怎么比特币钱包_比特币主连比特币连续的区别_比特币UTXO模型

比特币UTXO模型_比特币主连比特币连续的区别_比特币怎么比特币钱包

交易输出将与私钥关联的值分配给新用户。 目标密钥称为安全锁。 在未来的交易中,需要签名才能使用这笔资金。

如果每个输入都与输出相关联,那么比特币网络中是先输入还是先输出?

比特币UTXO模型_比特币主连比特币连续的区别_比特币怎么比特币钱包

这个问题有一个标准答案:输出第一。

在比特币中,有一种特殊的交易方式叫做铸币交易,这也是比特币网络发行新币的方式。

铸造交易不需要消耗(成本)。 事实上,它只有一个输入,叫做币库(coinbase),这笔交易从无到有产生了比特币。 铸造交易有一个输出,支付给矿工的比特币地址。

比特币UTXO模型_比特币怎么比特币钱包_比特币主连比特币连续的区别

比特币UTXO模型_比特币主连比特币连续的区别_比特币怎么比特币钱包

在上图中,铸造交易的输出将 25.09094928 个比特币发送到矿工的比特币地址,即 1MxTkeEP2PmHSMze5tUZ1hAV3YTKu2Gh1N。

未交易输出

比特币主连比特币连续的区别_比特币怎么比特币钱包_比特币UTXO模型

从前面的分析来看,交易的输入方必须先用私钥签名,表明自己对这笔钱的所有权,才能转账,也就是这笔钱还没有被消费。

比特币UTXO模型_比特币主连比特币连续的区别_比特币怎么比特币钱包

比特币全节点跟踪所有可用和可消耗的输出,称为“未花费的交易输出”或 UTXO,所有 UTXO 的集合称为 UTXO 集。

UTXO 集大小在添加新 UTXO 时增长,在 UTXO 被消耗时缩小。 每个事务代表 UTXO 集中的一次更改(状态转换)。

你怎么理解的? 假设Alice转给Bob 8个比特币比特币UTXO模型,转账步骤如下:

1)假设Alice之前通过挖矿获得了10个比特币,在她的地址中,这些比特币是一个基于货币的交易的UTXO。

2)Alice发起一笔交易,输入是她的最后一笔交易,输出有两个:一个是Bob的地址,金额是8个比特币; 另一个是她自己的地址,金额是2个比特币,Alice用她的私钥签署交易。

比特币交易也遵循一个原则:每笔交易的输入值必须全部花掉,不能只花掉一部分。 你有一个价值 20 个比特币的 UTXO,想要支付 1 个比特币,那么你的交易必须消耗掉整个 20 个比特币的 UTXO,并产生两个输出(UTXO):一个支付 1 个比特币给接收者,另一个支付 19 BTC改变你的钱包。 由于 UTXO 不可分割的性质,大多数比特币交易都会导致找零。

3) 当交易被区块链确认后,Alice 的 UTXO 变为 2。Bob 的地址中多了一个 UTXO,数量为 8。

比特币网络中UTXO的变化,如下图所示:

比特币UTXO模型_比特币怎么比特币钱包_比特币主连比特币连续的区别

比特币怎么比特币钱包_比特币主连比特币连续的区别_比特币UTXO模型

因此,比特币系统中没有比特币,只有UTXO,每一笔比特币都源于上一笔交易,也就是上一笔交易未花费的交易输出。

我们可以一路追溯这样一条交易链。 在源头上,每一个比特币都是通过挖矿创造出来的,而在每一个比特币的源头上都有一个特殊的交易——一种基于硬币的交易,其中比特币矿工因挖掘区块而获得奖励(coinbase 交易)

未花费的交易输出(UTXO)与我们熟悉的银行账户有很大的不同。 为什么要这样设计?

比特币怎么比特币钱包_比特币UTXO模型_比特币主连比特币连续的区别

首先,UTXO设计易于确认比特币的所有权。

使用UTXO设计,要确认我拥有比特币,我只需要确认我在上次交易中确实得到了它们。 在比特币区块链中,一个区块经过6次确认后,其中的交易才算真实无误。 所以通常只要最后一笔交易是真实的,我就拥有那些比特币。

其次,UTXO 设计和区块链账本完全集成。

银行账本和区块链账本都是所有权管理系统。

它有两个主要任务:

一是记录某一时刻谁拥有什么;

第二种是通过转账交易将钱从一个人转移到另一个人。

比特币UTXO模型_比特币怎么比特币钱包_比特币主连比特币连续的区别

银行账本的记录方式是每时每刻形成一个快照,关注第一个任务,即谁拥有什么;

UTXO记录方式是先关注第二个任务,然后逆向完成第一个任务,通过转账交易记录所有的所有权转移过程。

转账交易积累起来的区块链账本,可以确认某一时刻谁拥有什么,这一刻记录的就是区块链的状态。

因此,比特币的系统设计是一个状态转换系统。 以太坊也是一个状态转换系统,不同于比特币基于交易的 Ledger 交易模型。 以太坊是一个基于账户的 Ledger 账户模型。 以太坊也采用了这种状态转换系统的设计,同时在实现上也做了改进,主要是通过智能合约的引入,使得状态转换的编程变得更加容易。

今天的分享就到这里,大家周末愉快~~

比特币怎么比特币钱包_比特币UTXO模型_比特币主连比特币连续的区别

本文参考资料:

● 《结构性改革:中国经济的问题与对策》

● 《区块链:资产数字化之路》

● 《区块链:科技驱动金融》

● 《精通区块链编程》