本文轉載自 TechFlow,作者 Echo、BiHelix(Satoshi Labs),指導洪蜀寧,原文鏈接:https://www.techflowpost.com/article/detail_15632.html 

“UTXO 區塊鏈奠定了當今區塊鏈行業的基礎和無可爭議的根基。UTXO 技術反映了中本聰對金融終極自由的核心願景。" UTXO 模型保證了金融活動核心的安全,數據隱私和可擴展性,是對比以太坊賬戶模型一個更安全的替代品。

區塊鏈原理:UTXO 模型的基礎

區塊鏈是一種數字化、去中心化、分佈式的賬本。區塊鏈利用 P2P(點對點)網絡,網絡上的參與者稱爲節點。分類賬存儲有關交易的數據。區塊鏈,最重要的特徵是區塊通過加密方式鏈接在一起。


區塊鏈:以密碼方式鏈接在一起

除了第一個塊(稱爲創世塊)之外,區塊鏈中的每個塊都包含一個稱爲 “前一個哈希” 的字段。它是區塊鏈中前一個塊的哈希值,也是區塊鏈安全的基礎。

決定區塊哈希值的因素。如果這四個因素中的任何一個發生變化,即使是 1  位,哈希也會完全改變,這是由於雪崩效應。交易存儲在塊內,也是改變塊哈希的四個因素之一。這意味着如果礦工選擇不同的交易並保持其他 4 個因素相同,則哈希值將會不同。

1. 時間戳

2. 區塊號:鏈中當前區塊的序號。

3. 數據:存儲在區塊上的交易。

4. 隨機數

如果攻擊者試圖更改塊的數據,則該塊的哈希值將發生變化。如前所述,下一個塊將保存當前塊的哈希值,如果哈希值發生變化,那麼鏈將被破壞。或者,攻擊者必須從該點開始再次挖掘所有區塊。這是 51% 攻擊中的一種可能性。

什麼是 “區塊”?


區塊鏈中的塊存儲交易。就比特幣而言,區塊每 10 分鐘就會添加到區塊鏈中,根據目標哈希的複雜性,挖掘新區塊的時間可能會有所不同。

  • 當礦工成功開採該區塊時,它就會被添加到區塊鏈中。當區塊被添加到鏈上時,區塊內所有交易的狀態都會從未確認變爲已確認。

  • 就比特幣而言,一個塊內可以存儲的交易數量並不固定,但塊的平均大小是 1 MB。

  • 空塊是有效的,這意味着空塊可以被挖掘並添加到鏈中。

區塊鏈交易結構

剝離單個交易會發現交易中具有不同語義的幾種不同結構。以下是交易中存在的不同結構:

交易版本號:它是向網絡指定交易類型的版本號。通過交易編號,節點可以確定用於驗證該特定交易的規則集。

  1. 輸出:交易輸出由密碼鎖和時間組成。

  2. 輸入:交易輸入由指針和解鎖密鑰組成。指針指向之前的交易輸出。解鎖密鑰用於解鎖輸入指向的先前輸出。每次通過輸入解鎖輸出時,都會在區塊鏈數據庫中將其標記爲已用。

  3. 鎖定時間:指定交易是否可以立即或在指定時間後包含在區塊鏈中。


UTXO 是所有尚未被輸入解鎖的輸出。

一旦輸出被解鎖,它們就會從循環供應中移除。新的輸出取代了它們。因此,解鎖輸出的總和將始終等於新創建的輸出值的總和。

什麼是 UTXO 模型?

UTXO 不是加密貨幣面額,例如比特幣(BTC)的 satoshi 或以太坊(ETH) 的 gwei;然而,UTXO 可以用這些面額來衡量。UTXO 代表未花費的交易輸出。在比特幣中,交易一直存在,直到它被執行,直到另一筆交易從該 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 不僅可以協助共識機制,解決區塊鏈雙花問題,賦予了區塊鏈可追溯的特點,區塊鏈也能以此爲基礎,保證每筆交易的真實與可靠。