「幣姐解讀區塊鏈09」2個案例看懂什麼是UTXO

「幣姐解讀區塊鏈09」2個案例看懂什麼是UTXO

上期回顧:

幣姐開場

上一篇內容提到了,想要發起交易,首先要檢查一下你的UTXO是否足夠,不夠的話是無法交易的。

那麼UTXO是什麼鬼?中本聰為什麼要用UTXO而不用賬戶餘額的設計呢?

本文以比特幣的技術為案例,請注意:比特幣 ≠ 區塊鏈

作者 | 幣姐


UTXO是什麼鬼?

UTXO(unspenttransaction outputs)是未花費交易輸出。

UTXO跟銀行裡的賬戶餘額系統不同,跟紙幣的邏輯有些類似。看看下面2個例子就大概知道了。

「幣姐解讀區塊鏈09」2個案例看懂什麼是UTXO

假設幣姐要給老王轉80元。如果是通過銀行轉賬,那麼服務器只需要在幣姐的餘額裡-80元,在老王的餘額裡+80元就可以了。

「幣姐解讀區塊鏈09」2個案例看懂什麼是UTXO

而比特幣的轉賬跟現金更像,現金沒有80元的面額,所以只能給老王100元的現金,然後老王再找回來20元現金。

上面的例子也可以用UTXO來解釋:

幣姐有100元的UTXO,UTXO是不能細分的,就好像不能把現金撕開用是一個道理。所以只能先全部給到老王,然後老王再找零20元。

交易完成後產生了2個UTXO,一個是老王的80元,一個是找給幣姐的20元。

2個實際案例再看UTXO

下面,我們看2個實際的BTC交易案例:

「幣姐解讀區塊鏈09」2個案例看懂什麼是UTXO

如上圖案例1所示:發起方想給接收方10.5065BTC。

發出方將10.6BTC轉給了接收方。

10.6BTC消耗掉了,生成了2個新的UTXO,接收方收下10.5065 BTC,發出方收下0.0925 BTC算是找零。

接收方的10.5065 BTC目前已經使用過了,就不能叫UTXO了,而找零的0.0925 BTC到目前為止還沒有使用過,所以他還能稱作UTXO未花費的交易輸出。

「幣姐解讀區塊鏈09」2個案例看懂什麼是UTXO

我們再看另外一筆交易,如上圖案例2所示:發出方想給接收方392.101963 BTC。

在交易前

發出方的3個UTXO數額相加剛好392.101963 BTC。

交易後

3個UTXO直接消耗掉,只需要生成了一個新的UTXO給接收方就可以了,不再需要找零了。

案例2的過程就好像為了湊26元,需要將20元,5元,1元湊一起是一個道理。

幣姐說明

在上面2個案例中,有人可能發現,案例1中少了0.001 BTC,案例2中卻沒有少。

案例1中0.001 BTC就是礦工費,案例2中沒有支付礦工費。關於礦工費我們會在後面的內容裡詳細說明。這裡不展開。

UTXO有什麼特點?為什麼要用UTXO而不用餘額?

看了上面幾個案例之後,我們發現UTXO有幾個特點:

1.每個UTXO都是獨一無二的,就好像帶有編碼的鈔票一樣

2.相比鈔票來說,UTXO更靈活,並沒有固定面額的限制,任意數額都可以

3.UTXO是不能分割的,只能被消耗掉

4.在交易前後,UTXO的數量可能增多,也可能減少

5.每筆交易的輸入和輸出都是有關係的,可以通過UTXO不停往前追溯,直到挖礦

UTXO具備下面幾個優勢:

1.UTXO具備天然的匿名性

2.UTXO是獨立的數據結構,可以更好的並行處理。

3.長期來看,UTXO的數據佔用更小,而餘額系統會越來越臃腫。

4.UTXO的結構更不容易被篡改,每個UTXO都追根溯源,很難偽造。

總結

UTXO(unspenttransaction outputs)是未花費交易輸出。

他的邏輯跟鈔票有點像,他是不可分割的,如果UTXO大於交易金額,則接收方需要“找零”。

UTXO具有4個優勢:

1.匿名性更好

2.更好的並行性

3.數據佔用更小

4.不容易被篡改


下期預告:數字簽名是如何驗證交易的?

我們提過了,如果想發起交易,除了UTXO足夠,還需要驗證數字簽名,那麼數字簽名是如何工作的呢?我們下期詳解。

點擊閱讀往期幣姐解讀區塊鏈:

「幣姐解讀區塊鏈09」2個案例看懂什麼是UTXO


分享到:


相關文章: