【区块链基础知识】什么是UXTO以及UXTO 和账户余额

 NXEGO区块链社群   2018-05-11 21:09   892 人阅读  0 条评论
微信图片_20180511211004.jpg


文章看点


一、以太坊的改变

二、UTXO vs 账户余额

三、UTXO的记账方式



以太坊的改变


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


微信图片_20180511211023.jpg


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


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

  • 再往上一层,是P2P的网络

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

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

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


微信图片_20180511211041.jpg


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


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

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

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

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

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


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



UTXO vs 账户余额


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


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


账户余额的记账方式


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


微信图片_20180511211100.jpg


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

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

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



UTXO的记账方式


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


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


微信图片_20180511211117.jpg


  • 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个比特币,必须是别人给我的且我还没有进行花费的比特币。然后可以一直往上追溯到它诞生时矿工挖出来的那个区块。这个机制,保证了比特币不可被伪造,不可以被重复支付。


本文地址:https://nxego.com/post/69.html
版权声明:本文为原创文章,版权归 NXEGO区块链社群 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?