主页 > imtoken授权管理系统 > 比特币UTXO模型和以太坊账户模型介绍

比特币UTXO模型和以太坊账户模型介绍

imtoken授权管理系统 2023-08-04 05:10:54

如果你一直在 BlockExplorer 上观察你的比特币收入,你有没有困惑过?这正是因为比特币使用的交易模型并不是我们直观感知的基于账户的,而是一种叫做UTXO的模型。在我之前的文章:《深入理解NEX:Neon Exchange》中,我也提到了比特币使用的UTXO模型和以太坊使用的账户模型的一些功能差异,但是这两种模型有什么区别呢?在哪里?

ETH 和账户模型

以太坊使用的账户模型更容易理解,就好像我们每个人都有一个银行账户一样。在以太坊的世界里,每个地址就像一个账户。每次借记和交易后,账户余额将记录在区块链中。因此,在验证交易时,检查账户是否有足够的余额就足够了。这种方法简单、直观,更有利于智能合约的开发。如果你曾经在 Etherscan 上观察过你的交易记录,你也会发现一切都简单易懂。输入您的交易 ID 后,您将看到以下屏幕:

简单的从A到B,只要懂英文就应该可以理解。

比特币与以太坊的区别

比特币和 UTXO 模型

UTXO的全称是Unspent Transaction Outputs,即未使用的交易输出,不如账户模型直观。

在比特币世界中,没有单一的账本可以跟踪所有账户余额。那么如何确定一个地址当前有多少余额呢?简单地说,你必须回顾你之前的所有交易,找到所有发送给你的比特币,并将它们全部加起来才能找到。

交易中的输入和输出

比特币与以太坊的区别

比特币中的“交易”也更复杂。假设今天,弗雷德给了爱丽丝 2 个比特币,泰德给了爱丽丝 3 个比特币。我们将这两个 BTC 发送给 Alice。 5 个 BTC 的总和称为 Unspent Transaction Outputs,即未花费的交易输出:也就是说,Alice 现在有两个 Unspent Transcation Outputs,可以作为他未来转账给其他人的输入.

如果 Alice 现在想将 5 BTC 转移给 Bob,他将使用前两个总和正好为 5 的 UTXO 作为该交易的输入。矿工需要验证的是,在上一个区块中没有其他交易使用过这个未使用的输出。如果已经发送了相同的输出,则不是 Unspent,这就是比特币防止双重支出的方式。

另一个条件是输出应该与输入的总数匹配。事实上,在交易过程中,不可能总能找到两个输出加起来就是你要转账的金额,就像上图中,如果 Alice 只想转账 4.5 BTC 给 Bob,那么他需要多增加一列输出,把多出来的0.5 BTC转给自己,这样交易才算平衡。

比特币与以太坊的区别

我们实际上可以看看比特币交易的样子。现在如果我们想在 BlockExplorer 上观察自己的交易记录,我们会发现它是这样的:

一笔交易包含大量的输入和输出,很可能是一个交易所转账金额的记录,所以它包含了很多输出。左边的输入可能是转入交易所钱包的大量资金的交易输出。

有趣的是,我们实际上无法“确定”交易中的真实交易金额。例如,在以下记录中,右侧包含三个输出,我们无法确定 0.2、0.03 和 56.38 这三个输出中的哪一个是真正的目的地。可能 Alice 只有一个 Unspent Transaction Output 没有花费 56.61 BTC,所以在这次交易中,虽然他只想转账 0.2BTC,但他必须使用他唯一的 A UTXO,剩下的56.38 转回给我自己。

比特币与以太坊的区别

当然,现在的比特币钱包已经替我们处理好了这些事情,所以在使用的时候就像银行账户一样,我们只需要输出目的地址,钱包就会帮我们找到合适的未使用输出(UTXO)作为完成交易的输入。但是如果你很忙,或者做一些你不想让你知道的事情,你可以打包自己奇怪的输入和输出来增加匿名性。

UTXO 的优缺点

UTXO 允许多个并行交易,因为没有账户。如果你有很多 UTXO,你可以同时进行多个交易而不会被阻塞。然后是匿名性,如上所述,您可以轻松隐藏您的交易目的。另外,UTXO也被认为是比较安全和高效的,可以通过简单支付验证(SPV)快速验证和验证交易。

比特币与以太坊的区别

但是UTXO最大的缺点是它是无状态的,非常不利于在上面开发应用。就像大名鼎鼎的Qtum一样,虽然它本质上是一种UTXO的交易模式,但它仍然设计了Account Abstraction Layer,让应用开发更简单。

总结

现在区块链应用开发很流行,UTXO往往被认为是一种只能简单处理交易的模型。我认为它在一定程度上是时代的产物!毕竟,距离比特币的发明已经十年了。虽然有些功能是不可替代的,但大家还是更喜欢向 Account Model 或混合架构迈进。

但无论如何比特币与以太坊的区别,比特币永远是区块链世界的领头羊!而且现在大家还需要使用BTC交易,所以我们还是有必要了解一下UTXO是如何工作的!

总之,希望这篇文章能让你对比特币有更深入的了解!如果你喜欢我的文章比特币与以太坊的区别,可以关注我@antonsteemit,我会尽力制作一些区块链相关的文章。

建议您浏览汇智网各种编程语言的区块链教程和区块链技术博客,了解更多关于区块链、比特币、加密货币、以太坊、智能合约的知识。