首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅谈以太坊2——UTXO vs 账户余额

比特币固然是市值排行第一的区块链应用,但谈及以太坊,我们都认可是它把区块链应用带到了2.0时代。

以太坊在比特币的基础上进行了突破式的改变,使其地位被如此认可呢?

在上一篇文章《浅谈以太坊(1)——从比特币谈起》时,我们着重讲了比特币的限制;这篇文章,我们着重讲以太坊进行了哪些改变。

以太坊的改变

为了方便大家理解,我做了两幅图。

从这个图中,我们可以看到:

比特币的底层是一个数据库,采用UTXO的方式进行记账

再往上一层,是P2P的网络

然后是工作量证明POW以及密码学打造的共识层

再往上是脚本层,我们在这一层可进行一定程度的可编程的金融

最上面一层,就是比特币,我们所交易的BTC

第二张图,是以太坊相对于比特币的改变:

首先,在数据库这一层,以太坊没有采用UTXO的方式进行记账,而采用了传统金融账户余额的记账方式

再往上和比特币一致,是P2P网络层

再往上,在区块获得权共识上,与比特币的工作量证明机制不同,以太坊采用工作量证明加权益证明的方式(完全的权益证明尚未实现)

再往上,与比特币的脚本语言不同,以太坊采用了图灵完备的语言,并打造了运行它的虚拟机EVM

最上面一层,也是我们日常交易中最可见的一层,即代币层。与比特币不同,以太坊这一层不仅有自己的代币ETH,还有通过智能合约层所建立的其他应用的代币,如DGD、REP、GNT等

在这篇文章接下来的章节中,我将简要介绍UTXO和传统账户余额记账方式的区别,在以后的文章里,我会分别工作量证明与权益证明的区别、比特币脚本语言和智能合约的区别。

UTXO vs 账户余额

UTXO 是 Unspent Transaction Output 的缩写,直译是未花费的交易输出。它和传统的账户余额记账方式有什么区别呢?

我们以李雷与韩梅梅的转账为例:李雷账户有100万元,韩梅梅账户有75万元;李雷向韩梅梅转账10万元。

账户余额的记账方式

这种方式我们都比较熟悉,过程简单来说是这样的:

S0:李雷账户余额为100万元,韩梅梅账户余额75万元

T:李雷向韩梅梅转账10万元

S2:李雷账户余额变为90万元,与此同时,韩梅梅账户余额变为85万元

UTXO的记账方式

UTXO,从字面上来讲,是未花费的交易输出。划重点:只有未经过交易的输出,才能被称为UTXO。

此时我们假定,李雷和韩梅梅的钱,都是银行直接发给他们的(在区块链世界里即挖矿所得),从未进行过任何交易。那么此时,李雷的100万元和韩梅梅的75万元才能被称为UTXO。UTXO一旦被花费,将会被拆分,且拆分前后总额必须相等。于是:

S0:李雷账户,UTXO·0(100万元)@李雷;韩梅梅账户,TUXO·0(85万元)@韩梅梅

T:李雷向韩梅梅转账10万元,UTXO·0将会被拆分为 UTXO·1(90万元)@Transition + UTXO·1(10万元)@Transition,前者将返回李雷的账户,而后者转到韩梅梅的账户

S1:李雷账户,UTXO·1(90万元)@李雷;韩梅梅账户,UTXO·0(75万元)@韩梅梅 + UTXO·1(10万元)@韩梅梅

如果韩梅梅想转账给大卫80万元,她就必须将 UTXO·0(75万元)@韩梅梅 和 UTXO·1(10万元)@韩梅梅 都使用,并将其中之一拆分。在UTXO的记账机制里,除了货币发行外,所有的资金来源都必须来自前面某一个或者几个交易的 UTXO,就像接水管一样,一个接一个,此出彼入,此入彼出,生生不息,钱就在交易之间流动起来了。并且,任何一笔交易的交易输入总量必须等于交易输出总量,等式两边必须配平。

比特币的UTXO记账机制,使得在比特币世界里的每一笔转账,都能够追溯到上一笔交易。每一笔付款,都可以追溯到上一笔的收款。我给你的3个比特币,必须是别人给我的且我还没有进行花费的比特币。然后可以一直往上追溯到它诞生时矿工挖出来的那个区块。这个机制,保证了比特币不可被伪造,不可以被重复支付。

PLUS

UTXO 记账方式这么复杂,中本聪为什么没选择传统的记账方式呢?这大概是他的高明之处,比如长期来看,账户余额数据库会无限膨胀,而UTXO 数据库体积会小很多。现在以太坊也在考虑增加这个选项。

UTXO技术是中本聪的原创,其原理和优势本文限于篇幅只是进行简要介绍,以后有机会再做延伸。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180323A1LM8L00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券