UTXO 全稱為 Unspent Transaction Output, 也就是「未花費的交易輸出」。它是比特幣區塊鏈的一種帳務處理模型,也被後來的許多加密貨幣所沿用。
在 UTXO 模型中,每筆交易的輸出都會形成一個全新的 UTXO, 這個 UTXO 包含了一定數量的比特幣,並關聯到一個新的地址上。當這個地址的所有者要再次轉帳時,就需要將這些 UTXO 作為新交易的輸入,並創造新的 UTXO 輸出到收款方地址。
打個比方,UTXO 就像是一張張的現金支票。每次收款都會得到全新的支票 (UTXO), 支票面額 (BTC 數量) 和抬頭 (關聯地址) 都不盡相同。要再次花錢時,就需要在新的支票背書 (簽名), 並說明匯給下一個收款人的金額。舊的支票 (輸入) 則會被銀行蓋上作廢章 (標記為已花費)。
UTXO 於金流應用的優勢
比特幣之所以採用 UTXO 模型,是因為 bitcoin 不是被設計作為全世界共享的計算機,而是專注成為全球的共用帳本,在金流應用方面這個設計的顯著優勢:
1. UTXO 天生具有高度隱私性,每次收款都使用全新地址,交易歷史無法被追溯關聯,非常適合電子現金的使用場景。
2. UTXO 具有先天的順序性,可以支持即時的零確認交易,這對於日常小額支付非常重要。
3. UTXO 讓礦工節點的負擔更輕,只需維護最終的 UTXO 集合狀態,無需記錄每個地址的歷史狀態變化,更容易實現全節點的長期運行。
4. UTXO 模型還能讓交易驗證變得容易平行化。每筆交易的輸入如果不與其他交易共享,那麼多筆交易就可以被並行驗證。透過提高區塊容量上限,再配合多執行緒的平行驗證,UTXO 架構下的區塊鏈處理速度將能突破傳統帳戶模型的瓶頸。
5. 更容易透過硬體加速提高性能: 得益於相對受限的 Op code 和 Memory stack,UTXO 更易於設計出專用的 ASIC 來進行超高 TPS 的交易處理。
比特幣應用於支付的可能性
具體而言,區塊大小與 TPS 之間有著正比的關係。假設平均每筆交易的大小為 250 位元組左右,那麼 1 MB 的區塊 (每 10 分鐘) 意味著 TPS 約為 7 筆 / 秒;32 MB 區塊對應的 TPS 就達到了 200 多。若區塊大小提升到 1 GB, 則 TPS 將超過 6000, 已經可以滿足 VISA 等支付系統的日常需求。隨著頻寬、儲存等基礎設施的進一步發展,UTXO 模型為比特幣進一步擴容提供了廣闊的想象空間。
當然,UTXO 模型也不是沒有缺點,其智能合約的編寫難度就遠高於帳戶模型。但就比特幣這樣的金流區塊鏈而言,複雜智能合約帶來的安全風險和資源消耗或許才是更需要規避的。保持簡單可驗證,專注於電子現金的核心訴求,或許才是 UTXO 模型真正的優勢所在。