61 比特币UTXO与以太坊基于账户的区块链交易

比特币和以太坊有很多方面的区别。在这篇文章中,我将介绍其中的一个区别:它们记录用户拥有代币数量的方式。

比特币使用的是基于未花费交易输出(UTXO)的方式,而以太坊则是基于账户的方式。我将在接下来内容中详细解释两者,并举例说明,分析UTXO和基于账户的模式的利弊。

1 、UTXO

这里我们将详细研究UTXO的概念。

  • 交易的剖析
  • 一个比特币交易是由几个部分组成的。在这篇文章中,我们可以只关注:
    • 交易输入,也就是我们要花的币。
    • 交易的输出,也就是谁将收到我们的币。

一个交易必须有至少一个输入和至少一个输出。一个交易的输出会成为另一个交易的输入。这样一来,一个币的历史可以追溯到它被开采的区块。

例子

要理解这个系统是如何工作的,我们可以使用现金购买产品为例。

想象一下,你有一张10美元,一张20美元,和一张50美元的钞票。

当支付时,你可能会发现自己处于以下情况之一。

情况1 – 产品价格为10美元。

你可以用一张10美元的钞票支付。这个交易只有一个输入(10美元的钞票)和一个输出(收银员收到的10美元钞票)。

情况2 – 产品价格为30美元。

你仍然可以支付,但这一次你需要两张不同的钞票。10元和20元。这是一个交易有多个输入(10美元和20美元的钞票)和一个输出(收银员得到的30美元)的情况。

情况3 -产品价格为45美元。

你用一张50美元的钞票付款。收银员还给你5美元。这种情况相当于一个输入(50美元的钞票)和多个输出(收银员得到45美元,返还给你5美元)。

情况4 -产品价格为55美元。

你用一张10美元和一张50美元支付,相当于60美元。收银员还给你5美元。这个例子相当于多个输入(10美元和50美元的钞票)和多个输出(收银员的55美元和返还给你的5美元)。

正如你所看到的,你给收银员的钞票(和你收到的钞票)将在未来被用来进行其他支付。同样地,比特币交易的输出也会成为未来交易的输入。在它们被使用之前,它们是未使用的,因此被称为未花费的交易输出(UTXO)。

如果你想知道你拥有多少现金,你需要把你钱包里的所有钞票和硬币的价值加起来。在比特币的案例中,钱包记录了与用户的密钥相关的UTXO。这样,他们就知道用户拥有多少个币。

注意:尽管这是一种简化(例如,我们没有提到交易费用),但通过这个类比来理解基于UTXO的系统是非常有帮助的。

2 、基于账户的模式

理解以太坊基于账户的模式的一个很好的类比是银行账户。一个客户在他们的账户里有一定数量的钱。如果客户A向客户B转账5美元,假设客户A至少有5美元,客户A的账户将被减少5美元,而客户B的账户将被增加5美元。

简而言之,这就是以太坊账户的运作方式。

进一步说,有2种类型的账户。

外部账户(EOA)。它们是由用户通过私钥控制的。如果你不熟悉公钥和私钥,可以把你的账户地址想象成一个银行账号(你可以安全地与任何人分享它来接收付款),而私钥类似于银行账户的密码(只有你知道这个数字,你用它来获取资金)。

合约账户。这些账户是由智能合约代码控制的。由于它们不受私钥控制,所以不能发起交易。发送给智能合约的交易可以使这个合约调用其他合约的功能。

所有账户都有以下字段:

  • 余额:该账户拥有多少以太币。
  • Nonce:账户产生的确认交易的数量。nonce是一个数字,在密码通信中只使用一次。
  • 存储:永久的数据存储,只被智能合约使用。EOA账户是没有的。
  • 代码:只有智能合约使用。EOA账户没有任何代码。

以太坊的所有交易都由EOA发起。EOA和合约账户都可以接收和发送以太币。

如果接收账户是EOA,其余额将增加。

如果接收账户是一个合约账户,其代码将被执行。反过来,这个智能合约可以调用另一个智能合约,向另一个智能合约发送以太币,向一个EOA发送以太币,等等。

智能合约只有在一个账户调用它们时才会运行。它们可以从EOA或其他智能合约中调用,但最终,一切都起源于EOA所创建的交易。

3 、每种模式的优点和缺点

UTXO

优点:

  • 很容易检查一个输出是否已经被花费,避免双重支付攻击。
  • 交易很容易被并行处理,这导致更好的可扩展性。
  • 它的隐私性稍好,因为用户可以为每笔交易使用一个新地址。

缺点:

  • 新用户很难掌握这个系统。
  • 更难实现智能合约,因为UTXO不保持任何状态的跟踪。

账户

优点:

  • 容易实现智能合约。
  • 交易更紧凑,节省空间。

缺点:

  • 实现并发(平行)交易很困难,因为有一个全局状态会受到不同交易的影响。
  • 隐私性较差,因为交易被绑定在一个账户上。
  • 依赖于nonces来防止重放攻击。重放攻击是在以太坊上的类似比特币网络上的双重支付攻击。

比特币当前区块高度:717,551

内容整理来源:

Bitcoin UTXO vs Ethereum’s Account-Based Blockchain Transactions: Explained Simply | Hacker Noon

UTXO vs Account/Balance Model


翻译、排版:恬儿

内容团队:李卫军寂寞不语杨卫祥穆逸扬

本文主理人:李卫军

顾问:Sylvia

统筹:志刚

技术支持:运营组

留下评论