未花費的交易輸出
在加密貨幣中,未花費交易輸出(UTXO)是數字貨幣模型中一個獨特的組成部分。UTXO 代表了一定數量的加密貨幣,這些貨幣已被發送方授權,可以被接收方花費。UTXO 在交易過程中的應用是許多加密貨幣的一個關鍵特性,但它主要特指採用 UTXO 模型的加密貨幣[1]。
UTXO 使用公鑰加密技術來確定和轉移所有權。更具體地說,接收方的公鑰被格式化並嵌入到 UTXO 中,從而將花費 UTXO 的能力限制在能夠證明擁有相應私鑰的賬戶中。為了花費 UTXO,必須包含與公鑰相關的有效數字簽名[2]。
UTXO 構成了一個所有權鏈條,該鏈條由一系列數字簽名表示,可追溯到該幣的起源,無論該幣是通過挖礦、質押還是由加密貨幣協議確定的其他程序生成的[2]。
採用 UTXO 模型的主要加密貨幣包括比特幣和卡爾達諾(Cardano)。卡爾達諾採用了一種擴展版的 UTXO 模型,被稱為 EUTXO[3]。
起源 編輯
UTXO 模型的概念框架可以追溯到 Hal Finney 提出的可重用工作量證明(Reusable Proofs of Work)提案,而該提案本身又基於 Adam Back 於 1997 年提出的 Hashcash 提案[4]。比特幣於 2009 年發佈,是第一個廣泛實踐 UTXO 模型的加密貨幣[1]。
比較:UTXO 模型 vs. 賬戶模型 編輯
採用 UTXO 模型的加密貨幣與採用賬戶模型的加密貨幣在運行方式上有所不同。在 UTXO 模型中,個別的加密貨幣單位(即未花費交易輸出,UTXOs)在用戶之間傳遞,類似於實物現金的交換。這種模型影響了區塊鏈網絡中交易和所有權的記錄及驗證方式[5]。
在 UTXO 模型中,每個貨幣單位都被視為一個獨立的對象。UTXO 的歷史僅記錄在其被轉移的區塊中。為了確定一個賬戶的總餘額,需要掃描每個區塊以找到與該賬戶相關的最新 UTXO。儘管區塊鏈網絡中的所有節點必須就區塊歷史達成一致,但與某賬戶餘額相關的區塊是該賬戶獨有的。
相比之下,賬戶模型為每個新增的區塊保留每個賬戶及其對應餘額的記錄。這種設置使得餘額驗證更快速,無需掃描歷史區塊,但它會增加每個區塊的原始大小(儘管可以利用數據壓縮技術緩解這一問題)。儘管存在這些差異,兩種模型都需要檢查過去的區塊以完全驗證幣的來源。
在 UTXO 模型中,每個對象都是不可變的——幣的單位無法像賬戶餘額在交易發生時被修改一樣被「編輯」。相反,餘額是通過從幣首次生成時的交易歷史中計算得出的。這種簡潔性增強了安全性,因為 UTXO 要麼以預期形式存在,要麼不存在。而賬戶模型則要求在交易過程中對賬戶狀態進行詳細驗證,如果未正確進行,可能導致錯誤。
UTXO 模型的內在特性還使其非常適合於鏈下協議,如側鏈和閃電網絡。相反,賬戶模型簡化了存儲交易「狀態」的任務,但這種簡化並不一定意味着優越性。例如,擴展版 UTXO(EUTXO)模型引入了更明確和更簡潔的狀態轉換,從而減少了意外結果的可能性。儘管處理 EUTXO 模型可能更加複雜,但它提供了更高的安全性和簡便性。
UTXO 集合 編輯
區塊鏈中所有 UTXO 的集合構成了一個集合。網絡中的每筆交易都會從這個集合中移除一些元素(被花費的 UTXO)並添加新的元素(新創建的 UTXO)。UTXO 集合有效地表示了特定加密貨幣系統在某一特定時間的所有幣[6]。
從更廣義的角度來看,輸出(outputs)是 UTXO 的超集,而 UTXO 是輸出的子集。UTXO 的關係以及其在比特幣系統中的生命周期等動態,一直是研究的主題[7]。
在有效的區塊鏈交易中,只有未花費的輸出(UTXO)才能用於資助後續交易。這一要求對於防止雙重花費和欺詐至關重要。因此,交易中的輸入會從 UTXO 集合中移除,而輸出則會創建新的 UTXO 並添加到集合中。擁有私鑰的用戶,例如擁有加密貨幣錢包的用戶,可以利用這些 UTXO 進行未來的交易。
擴展 UTXO (EUTXO) 模型 編輯
擴展 UTXO (EUTXO) 模型是傳統未花費交易輸出 (UTXO) 模型的高級版本。它在 UTXO 模型的基礎上擴展了功能,增加了靈活性和實用性,同時保留了該模型在安全性、可預測性和並行處理方面的固有優勢[3]。
在 EUTXO 模型中,UTXO 可以與任意的數據和邏輯(以智能合約的形式)相關聯。這允許 UTXO 以一種與並行處理交易及資源消耗可預測性兼容的方式攜帶狀態信息。與基本的 UTXO 模型相比,這使得 EUTXO 模型能夠實現更具表現力和更複雜的合約功能,在合約功能方面彌合了 UTXO 模型與賬戶模型之間的差距。
在 EUTXO 模型中,每個 UTXO 都與一個數據值相關聯,當該 UTXO 被消耗並創建新的 UTXO 時,該數據值可以發生變化,從而允許合約在交易之間維護狀態。這種增強的數據結構為 EUTXO 模型提供了更廣泛的能力,用於開發智能合約,同時仍然保留標準 UTXO 模型的不可變性和可審計性。
EUTXO 模型被用於例如 Cardano 區塊鏈的加密貨幣中,以促進更複雜的金融交易和自動化腳本。它是 Cardano 的智能合約開發平台 Plutus 的基礎,使其能夠處理複雜的、有狀態的合約,同時保持高水平的安全性和可預測性。
儘管 EUTXO 模型增加了複雜性,但它保留了 UTXO 模型的關鍵優勢。它保持了資源消耗的可預測性,這是合約執行的重要屬性,並支持高水平的交易處理並行性,這是區塊鏈可擴展性的關鍵特性。
參考連結 編輯
- ↑ 1.0 1.1 Mastering Bitcoin[Book] by Andreas M. Antonopoulos
- ↑ 2.0 2.1 Analysis of the Bitcoin UTXO set - UCL Discovery
- ↑ 3.0 3.1 The Extended UTXO Model | SpringerLink
- ↑ Hashcash.org Hashcash is a proof-of-work algorithm
- ↑ Unspent Transaction Output (UTXO) | River
- ↑ UTXO Set | River
- ↑ Bitcoin UTXO Lifespan Prediction Robert Konrad & Stephen Pinto December 11, 2015