UXTO與余額

區(qū)塊鏈入門從使用錢包開始,我們最關(guān)注的是錢包的賬戶余額??煽催^很多區(qū)塊鏈資料以后,一直存在一個疑問,錢包的余額信息存在區(qū)塊鏈的什么位置?一直沒有找到,只有一個相近的概念叫UTXO(Unspent Transaction Output),但看完以后還是對應(yīng)不上。直到翻遍網(wǎng)上所有關(guān)于UXTO的資料,才知道在中本聰設(shè)計的比特幣系統(tǒng)中,并沒有余額這個概念,“比特幣余額”是由比特幣等錢包應(yīng)用派生出來的產(chǎn)物。錢包的余額是通過與賬戶相關(guān)的多個UXTO算出來的。下面且聽我詳細道來。


1. 借貸記賬法

了解過一點點會計學(xué),我們現(xiàn)在的會計系統(tǒng)絕大部分采用的是一種叫做“借貸記賬法”的方法,賬目分成借方和貸方,每發(fā)生一筆業(yè)務(wù)都要登記兩個以上的科目。

簡單來說,Alice轉(zhuǎn)賬給Bob 1美元,使用借貸記賬法至少要產(chǎn)生兩條賬目,Alice賬戶減少1美元,Bob賬戶增加1美元。這種記賬法在企業(yè)經(jīng)營、企業(yè)審計中有無數(shù)的好處。但是這種記賬法也有一個最大的缺點,就是容易產(chǎn)生記賬錯誤和記賬誤差。一筆交易需要登記兩條以上的賬目,本質(zhì)上記錄的是“交易的結(jié)果”,而不是“交易本身”。


2. UTXO交易模型

中本聰發(fā)明了UTXO(Unspent Transaction Output)交易模型,并將其應(yīng)用到比特幣當中。UTXO是“未花費的交易輸出”,簡單來說就是,每一筆比特幣交易實際上都是由若干個交易輸入和輸出組成的。交易輸入是資金來源,交易輸出是資金去向,每一筆交易都要從交易輸入中花費出去一部分,這一部分就是未花費的交易輸出(UTXO)。每一次的交易輸入都可以追溯到之前的UTXO,直至最初的挖礦所得。

由挖礦所得創(chuàng)建的比特幣交易,是每個區(qū)塊中的首個交易,又稱之為coinbase交易,它由礦工創(chuàng)建,沒有上一筆交易輸出。

在比特幣交易中 UTXO 就是基本單位,一個UTXO一旦被創(chuàng)建就不可被繼續(xù)分割,它只能當作是下一筆交易的輸入被花費掉,花費后產(chǎn)生新的UTXO,這樣周而復(fù)始地實現(xiàn)貨幣的價值轉(zhuǎn)移。所以我們在比特幣錢包中所看到的賬戶余額,實際上是錢包通過掃描區(qū)塊鏈并聚合所有屬于該用戶的UTXO計算得來的。

因此,當我們在說某人擁有1枚比特幣的時候,我們實際上說的是,在當前的區(qū)塊鏈記錄中,有若干筆交易的 UTXO 收款地址寫的是這個人的錢包地址,這些UTXO的總和是1個比特幣。

比特幣的UXTO系統(tǒng)遵守兩個規(guī)則:

  • 1、 除了 CoinBase(挖礦交易)之外,所有的資金來源都必須來自前面某一個或者幾個交易的UXTO;
  • 2、任何一筆交易的輸入總量必須等于輸出總量,等式兩邊必須配平。

3. 如何直觀理解UTXO與余額

我們以以太賬戶為例,打開etherscan.io,選擇BLOCKCHAIN->All Accounts,這樣可以看到所有地址與余額,可以選擇其中一個查看詳細信息。如果看不懂, 沒關(guān)系,把自己的以太地址輸入到右上角的搜索框回車后,會顯示地址的余額和詳細交易記錄,如下圖。

至此,我能理解李笑來老師說為什么他的賬戶沒有余額,只有UXTO了,O(∩_∩)O哈哈~,內(nèi)行人不要說外行話嘛。


4. 參考資料:

  1. 一文讀懂比特幣UXTO
  2. UXTO 的工作原理是什么?
  3. 李笑來的比特幣賬戶并沒有余額,只有 UXTO
  4. 區(qū)塊鏈基礎(chǔ)知識第7期:UXTO
  5. 其實并沒有什么比特幣,只有 UTXO
  6. 以太坊的UTXO
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容