比特币和以太坊有很多方面的区别。在这篇文章中,我将介绍其中的一个区别:它们记录用户拥有代币数量的方式。
比特币使用的是基于未花费交易输出(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
翻译、排版:恬儿
内容团队:李卫军、寂寞不语、杨卫祥、穆逸扬
本文主理人:李卫军
顾问:Sylvia
统筹:志刚
技术支持:运营组