「UTXO 區塊鏈奠定了當今區塊鏈行業的基礎和無可爭議的根基。UTXO 技術反映了中本聰對金融終極自由的核心願景。」UTXO 模型保證了金融活動核心的安全,數據隱私和可擴展性,是比較以太坊帳戶模型一個更安全的替代品。
區塊鏈原理:UTXO 模型的基礎
區塊鏈是一種數位化、去中心化、分散式的帳本。區塊鏈利用P2P(點對點)網絡,網路上的參與者稱為節點。分類帳儲存有關交易的資料。區塊鏈,最重要的特徵是區塊透過加密方式連結在一起。
區塊鏈:以密碼方式連結在一起
除了第一個區塊(稱為創世區塊)之外,區塊鏈中的每個區塊都包含一個稱為「前一個雜湊」 的欄位。它是區塊鏈中前一個區塊的雜湊值,也是區塊鏈安全的基礎。
決定區塊哈希值的因素。如果這四個因素中的任何一個發生變化,即使是1 位,哈希也會完全改變,這是由於雪崩效應。交易儲存在區塊內,也是改變區塊哈希的四個因素之一。這意味著如果礦工選擇不同的交易並保持其他4 個因素相同,則哈希值將會不同。
1. 時間戳
2. 區塊號:鏈中目前區塊的序號。
3. 數據:儲存在區塊上的交易。
4. 隨機數
如果攻擊者試圖更改區塊的數據,則該區塊的雜湊值將會發生變化。如前所述,下一個區塊將保存目前區塊的雜湊值,如果雜湊值發生變化,那麼鏈結將被破壞。或者,攻擊者必須從該點開始再次挖掘所有區塊。這是51% 攻擊中的一種可能性。
什麼是「區塊」?
區塊鏈中的區塊儲存交易。就比特幣而言,區塊每10 分鐘就會添加到區塊鏈中,根據目標哈希的複雜性,挖掘新區塊的時間可能會有所不同。
-
當礦工成功開採該區塊時,它就會被添加到區塊鏈中。當區塊被添加到鏈上時,區塊內所有交易的狀態都會從未確認變為已確認。
-
就比特幣而言,一個區塊內可以儲存的交易數量並不固定,但區塊的平均大小是1 MB。
-
空塊是有效的,這意味著空塊可以被挖掘並添加到鏈中。
區塊鏈交易結構
剝離單一交易會發現交易中具有不同語義的幾種不同結構。以下是交易中存在的不同結構:
-
交易版本號:它是向網路指定交易類型的版本號。透過交易編號,節點可以決定用於驗證該特定交易的規則集。
-
輸出:交易輸出由密碼鎖和時間組成。
-
輸入:交易輸入由指針和解鎖密鑰組成。指標指向先前的交易輸出。解鎖密鑰用於解鎖輸入指向的先前輸出。每次透過輸入解鎖輸出時,都會在區塊鏈資料庫中將其標記為已使用。
-
鎖定時間:指定交易是否可以立即或在指定時間後包含在區塊鏈中。
UTXO 是所有尚未被輸入解鎖的輸出。
一旦輸出解鎖,它們就會從循環供應中移除。新的輸出取代了它們。因此,解鎖輸出的總和將始終等於新建立的輸出值的總和。
什麼是UTXO 模型?
UTXO 不是加密貨幣面額,例如比特幣(BTC)的satoshi 或以太幣(ETH) 的gwei;然而,UTXO 可以用這些面額來衡量。 UTXO 代表未花費的交易輸出。在比特幣中,交易一直存在,直到它被執行,直到另一筆交易從該UTXO 完成為止。當交易完成時,未使用的輸出將作為輸入存回資料庫,稍後可用於另一筆交易。
當用戶透過錢包發起交易時,包含交易資訊的UTXO 會被定位、解鎖,並且新所有者的資訊會與轉移給他們的UTXO 相關聯。並且該用戶可以透過相同的過程在交易中使用它們。隨著交易的繼續,資料庫中將填入所有權變更的記錄。輸出是用戶發送給某人但未花費的加密貨幣的一部分。它們作為加密貨幣分數的輸入記錄到資料庫中。
UTXO 是如何建立的?
UTXO 是透過消耗現有UTXO 來創建的。每一筆比特幣交易都由輸入和輸出組成。輸入消耗現有的UTXO,而輸出則建立新的UTXO。當決定花費比特幣時,我們只能看到已扣除的金額以及錢包中剩餘的金額。對於用戶來說,這類似於用1 美元的鈔票購買0.50 美元的商品— 獲得零錢,將其放入口袋中。
UTXO 模型的優勢
UTXO 模型不包含協定等級的錢包。它基於分組在區塊中的單一交易。 UTXO 模型是許多加密貨幣(尤其是比特幣)常見的設計。
-
使用UTXO 模型的加密貨幣不使用帳戶或餘額。相反,UTXO 在用戶之間轉移,就像實體現金一樣。
-
UTXO 模型中的每筆交易都可以將系統轉變到一個新的狀態,但是每筆交易都轉變到一個新的狀態是不可行的。
-
網路參與者必須與目前狀態保持同步。
區塊鏈中存在的總UTXO 代表一個集合,並且由每個比特幣節點不斷維護。
-
每個事務都會消耗該集合中的元素並建立新增到該集合中的新元素。每次區塊鏈中接受新區塊時,UTXO 集都會更新,網路中的每個比特幣節點都將在其本地儲存中設定UTXO 的精確副本。
-
完整的UTXO 集合可以相加來計算給定時間點的加密貨幣的總供應量,在有效的區塊鏈交易的情況下,只有未花費的輸出才能用於為進一步的交易提供資金。為了防止雙重支出和欺詐,只有未花費的輸出才能用於進一步交易的條件是必要的。
UTXO 模型與以太坊帳戶模型的差異
未使用的交易輸出是比特幣和其他加密貨幣背後的分散式資料庫技術的一部分。比特幣使用UTXO,但它不是UTXO。此外,以太坊使用基於帳戶的方法和帳戶餘額,因此以太坊虛擬機器中沒有UTXO。
UTXO 的技術重要性
-
與語言無關的智能合約:基於UTXO 的智能合約獨立於語言,讓UTXO 開發獨特的共識機制。
-
支援去中心化交易所和原子交換:UTXO 模型可以支援原子交換,從而無需第三方參與即可實現點對點加密交易。 UTXO 的原子交換功能為用戶錢包之間的直接加密貨幣交易提供了更好的便利性。
-
可擴展性優勢:設施或平行事務處理減少了區塊鏈網路上的運算負載。
-
隱私和安全:每筆UTXO 交易都使用新地址,因此無法追蹤交易。
-
防止雙重支出:UTXO 只能使用一次,這是區塊鏈技術運作的基礎,可保證貨幣不會被多次使用。
-
更靈活:它比法定貨幣提供更大的靈活性。
-
簡單並行化:它允許智能合約中交易的更簡單並行化。
UTXO 模型用於許多加密貨幣,因為它允許用戶追蹤該加密貨幣所有部分的所有權。由於加密貨幣在創建時考慮了匿名性,因此UTXO 與整個網路可見的公共位址相關聯。
除非用戶公佈其地址,否則無法透過其所有權來識別用戶,但該模型允許透過地址實現透明度。
UTXO 用例:RGB 的鏈下轉移方案
RGB 協議的核心理念是,僅在必要時調用比特幣區塊鏈,也就是利用工作量證明和網路的去中心化來實現重複花費保護和抗審查性。所有代幣轉移的驗證工作從全域共識層中移除,放在鏈下,僅由接收支付的一方客戶端驗證。
工作原理
在RGB 的某個合約中,創世代幣都歸屬於一個比特幣的UTXO(無論是已經存在的,還是臨時創建的),而為了轉移代幣,你需要花費此UTXO。在花費這個UTXO 的時候,比特幣交易必須額外添加一個輸出,該輸出包含對一條消息的承諾,這條消息的內容就是RGB 的支付信息,它定義了輸入,這些代幣將被發送到哪個UTXO ,資產的id,數量,花費的交易以及它需要附加的數據。
註:比特幣一層資產發行協議 RGB++ 也利用了UTXO 作為一次性密封,且已於4 月初上線主網,點此了解RGB++ 的更多知識。
總結
UTXO 的本質其實是一種流水記帳:透過UTXO 模型檢驗交易資金存不存在,然後追溯這筆交易的源頭,確定無誤後透過共識機制進行全網廣播,記錄到鏈上。整個過程中,UTXO 會把牽扯到的帳戶資金、交易地址,轉帳資金、資金來源等資訊全部記下,從而能夠追蹤到每一筆交易的最初來源,也正是基於這個特點,UTXO 可以和共識機制一起解決雙花問題。
總的來說,UTXO 不僅可以協助共識機制,解決區塊鏈雙花問題,賦予了區塊鏈可追溯的特點,區塊鏈也能以此為基礎,保證每筆交易的真實與可靠。