區塊鏈技術迅猛發展,各種公鏈如雨後春筍層出不窮,但是數據記錄方式只有兩種,一種是BitCoin為首的UTXO模型,另一種就是以Ethereum為首Account(賬戶)模型。下面就聊一聊兩種模型是什麼及其優缺點。

一、UTXO模型

UTXO是Unspent Transaction Output的縮寫,是比特幣發明人「中本聰」的天才設計。本質上,UTXO就是流水賬。

BTC交易模型

在比特幣網路中,區塊中保存著每一筆鏈上的交易,交易中包含的信心就包含著這筆交易的輸入及其輸出,要求輸入必須大於等於輸出,超出的部分會作為礦工的挖礦費用。

當要進行一筆轉賬交易時,會遍歷所有的交易得到所有的輸出,然後繼續循環遍歷,前面的到的輸出,是否已經被作為輸入被消費。最後得到的沒有被花費的輸出就是UTXO,累加所有的UTXO就是該地址的餘額。

這種模型有很多的優點:

  1. 計算的交易是通過鏈下完成的,不會增加鏈上的負擔。
  2. UTXO 模型是無狀態的,更容易並發處理。
  3. 具有更好的隱私性。

但是缺點也很明顯,因為存儲了所有的交易,所以就會顯得很龐雜,無法實現一些比較複雜的邏輯,可編程性差。同時因為Input較多,導致見證腳本增多,會比較消耗CPU和存儲空間。

二、ACCOUNT模型

為了簡化存儲,實現圖靈完備,Ethereum創建了一個更為通用的協議,引入了Account模型。Account模型保存了世界狀態,區塊裡面只存儲著交易的狀態,不在存儲龐大的交易。

Ethereum交易狀態模型

以太坊網路中,區塊中存儲著的是交易後的狀態。狀態->交易->狀態的模型結構。這種簡便的存儲方式會具有更好的編程性,可以把合約以代碼的形式保存在Account中,因此以太坊是真正的圖靈完備。這種模型還有一個很大的優點就是批量交易成本更低,可以極大的降低成本。

存儲狀態的方式使所有的交易之間沒有了依賴性,需要額外解決重放的問題。

三、總結

UTXO模型是中本聰創造出來的,具有劃時代的意義,是區塊鏈1.0時代的重要組成部分。Account模型具有可編程性,靈活的優勢,可以在此模型上部署智能合約,是區塊鏈2.0時代的基礎。

推薦閱讀:

相關文章