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

币种 2周前 (06-21) 19次浏览 0个评论

比特币系统没有“账户”,只有“地址”。你可以在比特币区块链上打开任意数量的钱包地址,你拥有的比特币数量是你所有钱包地址中比特币的总和。比特币系统不会帮助您将这些地址汇总到您的帐户中。

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

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

让我们看一下两人之间的转账交易过程,对UTXO有更深入的了解:

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

现在,我要发起一笔转账交易,这笔交易的输入是让我拥有这些比特币的最后一笔交易。

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

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

交易签名中涉及的比特币公钥和私钥的非对称加密机制将在后面讨论。为了便于理解和类比,钱包地址相当于房间号和锁,私钥相当于钥匙,可以打开对应的锁。

以上两人的转账交易流程是:我用私钥提取比特币(从一笔输出为我地址的交易中),用私钥签署一笔从我的地址到你的地址的新交易。 交易完成后,比特币会转到您的钱包地址。您钱包中只有您的私钥才能打开的新交易的未使用交易输出。

从上面的讨论我们可以看出,比特币并不存在,只有未使用的交易输出(UTXO)。每个比特币都源自之前的交易,并且可以一直追溯。一路回溯,在每一个比特币的源头,都有一个特殊的交易,即比特币矿工因创币交易而获得奖励,每一个比特币都是通过挖矿创造出来的。假设我作为比特币矿工成功挖了 25 个比特币,那么这个特定的交易就是它的输入是 0,输出是 25 个比特币到矿工的钱包地址。

未使用的交易输出 (UTXO) 与熟悉的银行账户有很大不同。为什么要使用这种设计?比较银行账户和比特币的 UTXO,我们可以看到 UTXO 的优势。 1) UTXO 设计易于确认比特币的所有权。如果采用传统的账户设计,当我要转出8个比特币时,为了完全避免欺诈,我们需要一一追溯,确认之前的每一笔交易。 ,从而证明我确实有 8 个比特币。

比特币未确认的交易_比特币交易几个小时都没确认_比特币区块确认过程

使用当前的 UTXO 设计,要确认我拥有 8 个比特币,只需确认我确实在最后一笔交易中获得了它们。通常,只要最后一笔交易是真实的,我就拥有这些比特币。而我们都知道,一个区块被确认了6次,里面的交易才算真实无误。 2) UTXO 设计与区块链账本完全集成。区块链账本存储状态。这是对比特币区块链的改进。在白皮书中,以太坊创始人维塔利克分析了比特币。他认为,“比特币账本可以看作是一种状态系统(state system)”。以太坊也采用了这种状态转换系统的设计,但对其进行了改进。

从微观上看,区块链中的每一笔交易都是一个状态转换函数。以太坊白皮书使用“以太坊状态转换函数”(state)来讨论区块链上的交易过程。几乎所有的区块链都使用这种设计,每个新区块与之前的所有区块形成一个新状态,以此类推。确认后,之前的状态不可篡改,即不可随意更改。 UTXO(未使用的交易输出)旨在对应于这种状态。加深对UTXO的理解 UTXO是unspent output(未使用的交易输出)的缩写。每个比特币实际上都是 UTXO,这是比特币的核心概念之一。参考文献:《区块链:科技驱动金融》中的对应讨论,以及文章《比特币与以太坊的记账方式——UTXO与账户余额》(黄士良/文)。您的比特币是 UXTO 比特币挖矿节点,可以获得新区块的挖矿奖励,例如 12.5 个比特币。这时,它的钱包地址得到一个UTXO,即新区块的一个交易(也称为造币交易)的输出。 交易是一种特殊的交易,没有输入,只有输出。

当A想将比特币转给B时,过程是用私钥对A钱包地址中的前一个UTXO进行签名,然后发送到B地址。这个过程是一个新的交易,B得到的是一个新的UTXO。

这就是为什么有人说这个世界上根本没有比特币,只有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) 当交易被区块链确认后,Alice 的 UTXO 变为 0。在 Bob 的地址中,还有一个 UTXO,数量为 12.5。

比特币交易几个小时都没确认_比特币未确认的交易_比特币区块确认过程

图 1:比特币转移的三个阶段

这些存储在 Bob 钱包地址中的比特币只能用 Bob 的私钥签名并转移给其他人。

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

简单地说,比特币从一个地址转移到另一个地址的过程就是用这个地址对应的私钥打开比特币,然后加密到另一个地址的过程。这个私钥的打开和加密就是签名的过程。在这个过程中,接收比特币的一方不需要使用自己的私钥。我的比特币是什么样的?它们存在于哪里 不熟悉比特币的人会问:我的比特币是什么样的?它们存在于哪里?

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

比特币交易几个小时都没确认_比特币区块确认过程_比特币未确认的交易

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

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

我们也可以换个角度来看,你的比特币在哪里?如前所述,比特币是UTXO,所以比特币可以看作是上述两种物理世界金币和银行存款概念的混合体:为什么UTXO形式的UTXO与我们熟悉的账户概念有很大不同。账户是我们每天接触最多的东西。比如我在银行开了一个账户比特币未确认的交易,账户里的余额就是我的钱。

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

中本聪发明比特币的目标是创建点对点电子现金。 UTXO的设计可以看成是对现金思想的借鉴:我们可以把现金放在这个口袋里,把一些现金放在那个柜子的角落里,这样就没有账户了,你到处放的现金加起来就是你所有的钱。

UTXO 设计还有一个技术原因比特币未确认的交易,这种特殊的数据结构使得双花更容易验证。比较:

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

挖矿网Ethos中文站简单易用的挖矿系统,为挖矿产业提供教程软件以及矿机测评交易信息等,挖矿网各种数字货币挖矿收益对比计算,挖矿网介绍挖矿的工具,以及矿场的最新消息等。http://www.ethospool.com/

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址