區塊鏈技術的核心在于“記賬”,即以一種去中心化、不可篡改的方式記錄和驗證信息,作為全球第二大區塊鏈平臺,以太坊的記賬機制與比特幣等早期區塊鏈有著顯著的不同,它不僅僅記錄簡單的轉賬交易,更致力于構建一個“世界計算機”,記錄更復雜的邏輯和狀態變化,以太坊區塊鏈究竟是如何記賬的呢?本文將為您詳細解析。
記賬的基本單元:不僅僅是交易
在以太坊中,記賬的基本單元是交易(Transaction),但這里的“交易”含義更為廣泛,它不僅僅指代代幣(如ETH)的轉移,還包括:
- 價值轉移:最常見的ETH轉賬,從一個賬戶發送到另一個賬戶。
- 合約交互:調用智能合約的函數,例如在去中心化交易所(DEX)進行交易、在NFT市場鑄造作品等。
- 合約創建:部署新的智能合約到以太坊網絡上。
每筆交易都包含發送者地址、接收者地址(或合約代碼)、交易值(以“wei”為單位,1 ETH = 10^18 wei)、數據字段(用于攜帶調用合約的參數等)、 gas限制、gas價格、nonce(發送者發送的交易序號,防止重放攻擊)等關鍵信息。

記賬的核心流程:從交易打包到確認
以太坊的記賬過程是一個分布式、多節點協作完成的復雜流程,大致如下:
-
交易發起與廣播: 用戶通過錢包或其他客戶端創建一筆交易,使用其私鑰對交易進行簽名,然后將其廣播到以太坊網絡中的各個節點。
-
交易池(Mempool): 接收到交易的節點會將該交易暫存本地的“交易池”中,節點會根據一定的規則(如gas價格高低、交易優先級等)對交易池中的交易進行排序和篩選。
-
打包區塊(Block Mining/Building):

- 礦工/驗證者(Miners/Validators):以太坊目前正從工作量證明(PoW)轉向權益證明(PoS),在PoS機制下,負責打包區塊并驗證交易的是質押ETH的驗證者。
- 選擇交易:礦工/驗證者從自己的交易池中選擇一系列交易(通常是gas價格較高或優先級較高的交易)進行打包,他們會計算這些交易的總gas消耗,確保不超過區塊的gas限制(目前約為3000萬gas)。
- 執行交易與狀態變更:這是以太坊記賬的核心環節,對于選中的每一筆交易,虛擬機(EVM)會按照指令執行:
- 如果是簡單的ETH轉賬,則更新發送者和接收者的賬戶余額狀態。
- 如果是調用智能合約,EVM會加載合約代碼,執行合約函數中的邏輯,這可能涉及讀取和寫入多個賬戶的狀態(如合約存儲、余額變化等),甚至創建新的合約。
- 狀態根(State Root):在執行完區塊中的所有交易后,整個以太坊網絡的狀態(包括所有賬戶余額、合約存儲、代碼等)會被計算出一個唯一的、加密安全的“狀態根”,類似于所有狀態的“指紋”,這個狀態根會記錄在區塊頭中。
- 交易根(Transactions Root):區塊中所有交易的哈希值也會被計算出一個“交易根”。
- 收據根(Receipts Root):每筆交易執行后會產生一個收據(Receipt),記錄了交易執行的結果(是否成功、gas使用量、日志等),所有收據的哈希值也會計算出一個“收據根”。
- 生成區塊頭:區塊頭包含了前一個區塊的哈希(鏈的連接)、區塊號、時間戳、難度(PoW)或隨機數(PoS)、gas限制、狀態根、交易根、收據根、礦工/驗證者地址等信息。
-
區塊廣播與驗證: 礦工/驗證者將打包好的區塊廣播到網絡中,其他節點會收到這個新區塊,并獨立驗證以下內容:
- 區塊頭中的各項信息是否正確。
- 區塊中的每一筆交易是否有效(簽名是否正確、nonce是否匹配、發送者是否有足夠余額支付gas等)。
- 區塊中的所有交易是否按照規則執行,狀態變更是否正確,最終計算出的狀態根、交易根、收據根是否與區塊頭中的一致。
-
鏈的延長與確認: 如果大多數節點驗證通過該區塊,則會將該區塊添加到自己的區塊鏈副本中,形成“最長有效鏈”,新區塊一旦被足夠多的后續區塊確認(通常稱為“區塊確認數”,如6個確認),其包含的交易記錄就被視為不可篡改,記賬完成。
以太坊記賬的獨特之處:狀態與智能合約
與比特幣僅記錄UTXO(未花費交易輸出)的賬本狀態不同,以太坊的記賬核心是狀態(State)的記錄與變遷。
-
世界狀態(World State): 以太坊維護一個不斷變化的“世界狀態”,它是一個數據結構,記錄了區塊鏈在某個特定時間點所有賬戶的信息,賬戶分為兩類:

- 外部賬戶(EOA, Externally Owned Account):由用戶私鑰控制,用于發起交易,包含余額、nonce等信息。
- 合約賬戶(Contract Account):由智能代碼控制,包含余額、nonce、合約代碼和存儲(Storage)。
-
狀態變遷函數(State Transition Function): 以太坊的記賬可以看作是一個狀態變遷函數:
Y = S(TX),其中S是當前狀態,TX是交易,Y是執行交易后的新狀態。- 輸入:當前狀態
S和待處理交易TX。 - 過程:EVM執行
TX的指令,可能涉及讀取和修改狀態。 - 輸出:新的狀態
Y。 每個新區塊的加入,都是對前一個區塊狀態的更新和確認。
- 輸入:當前狀態
-
Gas機制: 為了防止惡意交易或錯誤代碼消耗過多網絡資源導致網絡癱瘓,以太坊引入了Gas機制,Gas是衡量交易執行過程中計算資源消耗的單位,每筆交易都需要支付一定數量的Gas費用,作為礦工/驗證者的報酬,Gas價格由市場供需決定,用戶可以通過提高Gas價格來加速交易被確認,Gas限制則用戶設定的單筆交易愿意消耗的最大Gas量,防止交易成本失控。
-
智能合約的“記賬”: 智能合約是以太坊記賬能力的核心擴展,合約代碼一旦部署,就成為區塊鏈的一部分,當用戶與合約交互時,EVM會執行合約代碼,可能:
- 讀取狀態:從合約存儲中讀取數據(不消耗Gas,但消耗讀取量限制)。
- 寫入狀態:修改合約存儲或創建新的日志(消耗大量Gas)。
- 調用其他合約:觸發其他合約的執行。 這些操作都會被記錄在區塊鏈上,成為不可篡改的“歷史記錄”。
從PoW到PoS:記賬方式的演進
以太坊正經歷從工作量證明(PoW)到權益證明(PoS)的“合并”(The Merge)升級,這一升級對記賬機制產生了深遠影響:
- 記賬角色變化:從“礦工”(通過算力競爭記賬權)變為“驗證者”(通過質押ETH數量和時長獲得記賬權)。
- 能源效率:PoS不再需要大量算力,極大地降低了能耗。
- 安全性:PoS通過經濟激勵(質押獎勵)和懲罰機制(slashing,即削減質押ETH)來確保驗證者誠實記賬。
- 區塊生產:在PoS下,驗證者會被隨機選擇來提議新區塊,并由其他驗證者進行投票驗證,過程更加去中心化和高效。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。



