區塊、交易與帳本

帳戶模型

帳戶模型是區塊鏈的一種記帳方式:帳本為每個帳戶保存一個滾動餘額,一筆交易只是從發送方的餘額裡扣減、再加到接收方的餘額上。它的運作幾乎和我們熟悉的銀行對帳單一模一樣:每個帳戶對應一個數字,每筆付款都把這些數字往上或往下挪一挪。以太坊是採用這種方式最知名的區塊鏈,它正是比特幣所用的 UTXO 模型之外的另一種選擇。

由於每個帳戶是一個可變的單一餘額,而非一堆離散的幣,交易寫起來、想起來都更簡單:發送十個單位,發送方的數字減十、接收方的數字加十,沒有多餘的找零要退回。為了防止有人重放或重排付款,每個帳戶還帶有一個穩步遞增的計數器,給它的交易編號,因此這些交易必須嚴格按順序處理。這種整潔、帶狀態的設計,與智慧合約天然契合——智慧合約本身也是帳戶,持有一個餘額和一段持久的記憶體。

其權衡恰好與 UTXO 方式互為鏡像。帳戶模型更直觀,對可程式化的應用也更便利,但更新共享的餘額會讓交易更難完全並行地驗證,並且需要小心維護其順序不致含糊。兩種模型並無絕對優劣;它們是對同一個記帳問題給出的兩套自洽答案,而一條區塊鏈在二者間的取捨,塑造了它的錢包、手續費與應用是如何構建的。