OK區塊鏈60講第21集:什么是UTXO模型?

分類:OK區塊鏈60講/2020-03-20/小螞蟻/閱讀:

OK區塊鏈60講第21集:什么是UTXO模型文字版:

在上節課中,我們已經講過了什么是雙花問題,其中,雙花問題的第一種情況,就是由于處理方在記賬時因為同步存在延遲的問題,導致同一筆錢,被反復花了兩次。所以,為了解決這種情況,一些區塊鏈項目便在共識機制的基礎上,引進了UTXO的賬戶機制。

所謂UTXO模型,簡單來說,就是一種特殊的賬戶記賬模型。它的中文意思叫作“未花費交易輸出”,它跟銀行傳統的賬戶模型有一個很大的區別就是,這種模型只記錄交易本身,而不記錄交易的結果。

像傳統的銀行賬戶模型,它是直接記錄結果的,比如,我賬戶里有1萬塊錢,我要轉給你3000,就會從我賬戶里扣除3000,我的賬戶余額是7000, 你的賬戶里增加3000。

但UTXO模型不是這樣記錄的,它會把整個交易過程記錄下來,原理是這樣的:還是假設我賬戶里有1萬塊錢,我要轉給你3000。UTXO在記錄的時候,它會先記做這1萬塊錢全部轉了出來,然后再記錄有3000塊轉到了你的賬戶里,又有7000塊從我的賬戶轉到我自己的賬戶。

整個過程中,它會把牽扯到的賬戶資金、交易地址,轉賬資金、資金來源等信息全部記下。以此就能夠追蹤到每一筆交易的最初來源。所以,UTXO的本質其實是一種流水記賬,會把交易的過程記錄下來。

這種模型的好處在于,它讓每次交易過程,都被記錄得明明白白,并且可以追溯每筆資金的源頭。也正是基于這個特點,UTXO可以和共識機制一起解決雙花問題。

區塊鏈解決第一種類型的雙花問題,同樣借鑒了傳統銀行的方式,會按照順序一筆一筆處理交易。當節點在處理一筆交易的時候,會先通過UTXO模型檢驗交易資金存不存在,然后追溯這筆交易的源頭,確定沒問題后,就會通過共識機制進行全網廣播,記錄到鏈上。

如果有人想要用同一筆錢支付兩次,區塊鏈網絡只會確認先接受到的那一筆,之后那筆交易,節點會在查詢UTXO時發現,這筆資金已經被支付出去,并不存在于你的賬戶中,從而拒絕交易。以此解決了第一種情況的雙花問題。

不過由規則內引發的雙花問題是UTXO也沒有辦法解決的。所謂規則內引發的雙花問題,就是利用共識機制的規則本身,對已經記好賬的交易進行篡改,常見的就是51%算力攻擊。比如有一個采用POW共識機制的區塊鏈,因為整個網絡的人數比較少,有一個節點掌握了整個網絡51%的算力,這個時候,他就可以先進行一筆交易,等交易完成后,再通過共識機制篡改之前的那筆交易記錄,否定之前的那筆交易,讓已經花過的錢又重新回到自己賬戶,再次使用。

而這種情況的雙花問題,只能通過提高全網算力的方式來解決,所以,在區塊鏈中,使用的人越多,全網算力越高,整個網絡也就越安全。

總的來說,UTXO不僅可以協助共識機制解決區塊鏈中的第一類雙花問題,更賦予了區塊鏈可追源的特點,區塊鏈也能以此為基礎,保證每筆交易的真實與可靠。

比特幣家園
微博二維碼掃一掃關注
官方微博號
CopyRight ? 比特幣家園 www.dljett.com 蘇ICP備18045312號
二維碼
投稿
一日本道在线不卡视频