UTXO:其實從來沒有人擁有過比特幣

買賣虛擬貨幣

下文內容同影片,閱讀大約需要5分鐘~

關於比特幣與區塊鏈②

UTXO:其實從來沒有人擁有過比特幣

在廣告界呢,百達翡麗有一句非常經典的廣告語,這句話這麼說的:

“你從未真正擁有一隻百達翡麗的手錶,你只是替你的後代暫時保管而已!”

簡單而有效的傳達了產品的傳世和收藏價值。而這句廣告語其實用在比特幣上更為合適:

“我們從未真正過擁有比特幣,我們只是在替別人暫時保管而已!”

“不就是突出比特幣的資產屬性嘛!買一個給孩子當嫁妝!了啦了啦!”

還真不是!這句話的真正意思其實是在反映比特幣的交易模型!

UTXO:Unspent Transaction Output

翻譯為:未花費交易輸出,這和我們平常所接觸到的記賬模式有本質的區別,一般來說,我們所能接觸到的銀行也好,支付寶也罷,其交易的核心,是基於賬戶的資料系統Account based,這個很好理解,比如:小王爸爸轉賬給了小王100塊,然後小王又給小八轉賬50塊,那麼,在基於賬戶的資料系統中,小王的賬戶和小八的賬戶上面會怎麼記載呢?

這個賬戶模型顯然並不關心小王的100塊是從哪裡來的,而是關心小王賬戶的當前餘額,這個賬戶中記錄了資金的入賬和花費,最終得到一個餘額,這個餘額就是你的錢!當我需要轉賬或者支付100塊時,銀行/支付寶會驗證我賬戶餘額裡是否有100塊,然後進行交易。

而在UTXO的結構中,並不是基於賬戶中資金的加減得到一個可用餘額,而是在記錄交易,記錄每一筆交易的資金來源和資金的去向!

那在上面案例中,UTXO會首先記錄小王是怎麼得到100塊的:

當小王轉給小八50塊的時候,小王發起了交易:

這裡需要注意,在小王發起的交易裡,小王必須給自己找零,因為在UTXO體系裡交易來源和交易輸出必須是相等的,而且前面也說了,交易是必須有來源的,當小王需要使用剩下的50塊時,這個來源就是“我自己給我自己的”!

這個時候,你可能要問了,那小八不是也得到了50塊嗎,他的賬戶裡是不是就有50塊的餘額了?看,又掉進慣性思維的誤區裡了吧!

再次強調,UTXO是在記錄交易,也就是說,小八的50塊並不是“餘額50元”,而是“交易:小王給自己50元,小王給小八50元”。

而當小八要去花費50塊的時候,呼叫的交易來源,就是這一筆交易中的“小王給小八50元”。所以在很多解釋UTXO的文章中,我們常常聽到的那句話:

每一筆交易的來源都是上一筆交易的輸出。

所以在比特幣系統中,其實你看到的賬戶餘額、可用資金,代表的是你可以使用的資產,這筆資產依然在上一筆交易中,而只有你的秘鑰可以呼叫它!

所以,銀行轉賬時確定的是賬戶中的餘額,而在比特幣轉賬時,確定的是UTXO未花費交易輸出是否合法,既交易來源。

我們再總結一下:

銀行記錄的是賬戶裡的餘額,比特幣記錄的是交易、是UTXO。

CoinMedia

在比特幣的整個設計中,UTXO絕對稱得上神操作,這個設計的最大亮點其實並不在於可追溯,不可偽造或者匿名性啊什麼的,而是這種結構大大減輕了資料庫的體積並擁有了併發處理能力。

雖然在我們上面的陳述中,大家會覺得很複雜,但實際上,UTXO操作起來卻是很輕量級的。賬戶資料庫會因為無用賬戶的增加而加速膨脹,而UTXO模型記錄的只是交易,意味著更高的處理速度和同步速度。

併發是什麼意思呢,比如在賬戶模型中,我要分別給小王和小八50塊,只能排隊進行,總要有個先後,因為系統需要驗證餘額是否足夠,而在UTXO中,只要我有可用的UTXO,理論上就能無限併發……

所以回到開篇那句話,沒有任何人擁有過比特幣!你所擁有的是“未花費的交易輸出”。

換一句話來說,你擁有1個比特幣,並不等於在你的地址賬戶裡有個“1”,更不是你擁有某串代表“1”的程式碼,而是在整個比特幣系統中,能夠被你交易的未花費交易輸出是:“1”,而這個1單位的比特幣,其實還在上一筆交易裡!

那順帶一說,能夠保障你使用這筆交易輸出的,就是從私鑰到公鑰再到地址的非對稱加密體系,這個我們下次再說!

CoinBI Talk!認知創造價值!我們下期再見!

END

免責聲明:

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

推荐阅读

;