OK區塊鏈60講:什麼是UTXO賬戶模型?

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

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

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

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

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

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

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

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

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

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

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

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;