主页 > imtoken钱包苹果手机下载 > 科普:UTXO 未使用的交易输出,比特币的核心概念之一

科普:UTXO 未使用的交易输出,比特币的核心概念之一

imtoken钱包苹果手机下载 2023-04-25 06:09:42

比特币转账确认时间_比特币一直0确认_比特币没确认会退回吗

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

从我 (A) 到你 (B) 的比特币转账是从我的一个钱包地址到你的一个钱包地址。

下面的讨论涉及比特币系统的一个关键技术细节:UTXO(未花费的交易输出)。 代币经济专家孟岩曾写过一篇题为《其实没有比特币比特币一直0确认,只有UTXO》的文章。 这个标题指出了比特币对于计算机的意义——比特币是区块链账本输出上的交易。

让我们看一下两人之间一笔转账交易的过程,深入理解UTXO:

假设我有8个比特币,这实际上意味着之前有一笔交易将这些比特币转入我的地址,这次交易的输出(即8个比特币)没有被使用,我拥有这8个比特币。

现在,我要发起一个转账交易,输入是之前给我这些比特币的交易。

我要给你转账,我做的是,在最后一笔让我拥有这8个比特币的交易上签名,把这个新的转账交易的输出地址设置为你的钱包地址。

就这样,我发起了一笔转账支付交易。 当矿工将这笔交易打包成一个新的区块,转账交易完成后,这8个比特币就属于你了。 你拥有的是你我这笔交易未花费的交易输出。

比特币转账确认时间_比特币没确认会退回吗_比特币一直0确认

比特币的公钥和私钥参与交易签名的非对称加密机制,后面会讲到。 为了便于理解,可以类比来看。 钱包地址相当于房号和锁,私钥相当于钥匙。 钥匙可以打开相应的锁。

上面两个人的转账交易过程是:我用私钥(从一个输出是我地址的交易中)取出比特币,用私钥从我的地址到你的地址签署一笔新的交易。 交易完成后,这些比特币将转移到您的钱包地址。 您钱包中新交易未花费的交易输出,只有您的私钥才能打开。

从上面的讨论我们可以看出,确实没有比特币,只有未花费的交易输出(UTXO)。 每一个比特币都起源于之前的交易,并且可以一路向上追溯。 而一路往上追溯,在每一枚比特币的源头,都有一个特殊的交易,即比特币矿工挖矿获得奖励的造币交易,每一枚比特币都是通过挖矿创造出来的。 假设我作为比特币矿工成功开采了 25 个比特币,那么这个特定交易的输入为 0,输出为 25 个比特币到矿工的钱包地址。

未花费的交易输出(UTXO)与我们熟悉的银行账户有很大的不同。 为什么要这样设计? 对比银行账户的UTXO和比特币,我们可以看出UTXO的优势。

1)UTXO设计易于确认比特币的所有权

比特币没确认会退回吗_比特币转账确认时间_比特币一直0确认

如果采用传统的账户设计,当我要转8个比特币时,为了彻底避免欺诈,我们需要一个一个地回溯确认之前的每一笔交易,从而证明我确实有8个比特币。

按照目前的 UTXO 设计,要确认我拥有 8 个比特币,我只需要确认我在上次交易中确实得到了它们。 通常只要最后一笔交易是真实的,我就拥有那些比特币。 而我们都知道,一个区块经过6次确认后,里面的交易才算真实无误。

2)UTXO设计和区块链账本完全集成

比特币转账确认时间_比特币一直0确认_比特币没确认会退回吗

区块链分类帐存储状态。 以太坊是对比特币区块链的改进。 在白皮书中,以太坊创始人Vitalik对比特币进行了分析。 他认为“比特币账本可以被视为一种状态转换系统”。 以太坊也采用了这种状态转换系统的设计,但对其进行了改进。

从微观上看,区块链中的每一笔交易都是一个状态转换函数。 以太坊白皮书使用“以太坊状态转换函数”(Ethereum state transition function)来讨论一笔交易在区块链上的过程。

几乎所有的区块链都采用这种设计,每一个新的区块与它之前的所有区块形成一个新的状态,并不断重复和继续。 确认后,之前的状态是不可篡改的,即不能随意改变。 UTXO(unspent transaction output)对应这个状态的设计。

加深对UTXO的理解

UTXO是未花费交易输出(unspent transaction output)的缩写。 每一个比特币其实都是UTXO,这是比特币的核心概念之一。

参考资料:《区块链:技术驱动的金融》中的相应讨论,以及《比特币和以太坊的记账方式——UTXO和账户余额》一文(黄世亮/文)。

你的比特币是 UXTO

比特币挖矿节点获得新区块的挖矿奖励,如12.5个比特币。 这时候它的钱包地址得到一个UTXO,就是这个新区块的币本交易(也叫创世交易)的输出。 . Coinbase交易是一种特殊的交易,它没有输入,只有输出。

当A要转一笔比特币给B时,流程是用私钥在A的钱包地址中签名一个UTXO,然后发送到B的地址。 这个过程是一笔新的交易,B拿到的是一个新的UTXO。

比特币一直0确认_比特币没确认会退回吗_比特币转账确认时间

这就是为什么有人说这个世界上没有比特币,只有UTXO,而你地址中的比特币指的是未花费的交易输出。

详细看A转账到B的流程

假设A(Alice)向B(Bob)转账,转账过程可以分为三个阶段(见图1):

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

2)Alice发起一笔交易,输入是她的最后一笔交易,输出是Bob的地址,金额是12.5个比特币,Alice用她的私钥对交易进行签名。

这里简化了交易流程,只讨论转移上一笔交易的所有输出的情况。 如果你试图转移之前交易的一部分输出,你需要做一个稍微复杂的过程。 根据比特币系统的设计,比特币交易必须遵循一个原则:每笔交易的输入值必须全部花掉,不能只花掉一部分。 比如我要转比特币到你的钱包地址,里面只有8个比特币,所以很简单,我发起一个交易,把这8个比特币转入你的钱包地址,我签字确认交易。 但是如果我的钱包地址里有25个比特币,那么我发起的交易不是给你转8个比特币,然后我的钱包地址里还剩下17个比特币。 此时我发起的交易是:从我的钱包地址转8个比特币给你,同时转17个比特币到我的同一个地址。

3) 当交易被区块链确认后比特币一直0确认,Alice 的 UTXO 变为 0。Bob 的地址中,多了一个 UTXO,数量为 12.5。

比特币没确认会退回吗_比特币转账确认时间_比特币一直0确认

存放在 Bob 钱包地址中的比特币,只能用 Bob 的私钥签名并转给他人。

比特币没确认会退回吗_比特币转账确认时间_比特币一直0确认

如果 Bob 要将这些比特币转给其他人,则重复上述过程。

简单来说,比特币从一个地址转移到另一个地址的过程就是用这个地址对应的私钥打开,然后加密到另一个地址。 这个私钥的开启和加密就是签名的过程。 在这个过程中,接收比特币的一方不需要使用自己的私钥。

我的比特币是什么样的?它们存在于何处

比特币一直0确认_比特币没确认会退回吗_比特币转账确认时间

刚接触比特币的人会问:我的比特币长什么样? 它们存在于何处?

如果你的心理参考是在现实世界中购买金币,那么这里就很不一样了,你的比特币不存储在你的家里或金库中,没有代表“你的比特币”的数字文件。

如果您在脑海中指的是银行存款,那么您可以假设您的比特币“存在”在账本上。 我们已经知道,在数字世界中,价值是账本中的“记录”。

不同的是,对于比特币来说,这个分​​类账不是银行的集中式数据库。 比特币的账本是存在于去中心化网络上的分布式账本。 任何人都可以访问这个网络并下载这个分类账。 但是,您地址中的比特币只能使用您的私钥进行消费。

我们也可以换个角度来看,你的比特币呢? 上面说了比特币是UTXO,那么比特币可以看成是以上物理世界金币和银行存款两个概念的混合体:

比特币一直0确认_比特币转账确认时间_比特币没确认会退回吗

一方面,你的比特币有一个“物理存在”——对应一个数据文件。 比特币以交易 UTXO 的形式存在,每一笔交易都可以看作是一个数据文件。

另一方面,所有这些交易都被打包成区块链的区块,后一个区块与前一个区块相连,形成一条链,这是一个独特的账本。 这样看,你的比特币就是这个账本上的一个记录。

为什么采用UTXO的形式

UTXO 与我们熟悉的账户概念有很大的不同。 我们每天接触最多的就是账号。 比如我在银行开户,账户里的余额就是我的钱。

但是比特币网络中没有账户的概念。 你可以有多个钱包地址,每个钱包地址有多个UTXO。 你的钱就是所有这些地址中 UTXO 的总和。

中本聪发明比特币的目的是创造一种点对点的电子现金。 UTXO的设计可以看成是参考了现金的思路:我们可能会把现金放在这个口袋里,在柜子的角落放一些现金。 在这种情况下,没有账户,你到处都有的现金加起来就是你所有的钱。

采用 UTXO 设计还有一个技术原因。 这种特殊的数据结构可以让双花更容易验证。 相比:

如果采用账户和账户余额设计,Alice 想转账给 Bob。 为了确保爱丽丝确实有钱,我们需要检查她以前的所有交易。 随着时间的推移,越来越多的比特币交易,这种验证的难度会不断上升。

使用UTXO设计,我们只需要一步步检查每笔交易的输入,直到找到这个比特币创币交易。 随着时间的推移,这种检查也会变得更加困难,但速度比账户和账户余额设计要慢得多。

这种设计使得比特币系统作为电子现金系统具有很强的可扩展性。 当然,我们很快就会看到,被普遍认为是区块链2.0的以太坊并没有继续采用UTXO设计,而是考虑到其他因素,采用了账户余额设计,而中本聪可能为此付出的代价考虑到复杂性。