「帳戶模型 Account Model」用於記錄、存儲和執行鏈上交易。以太坊使用的就是此種模型,而比特幣使用的是另外一種模型 ———UTXO 模型。
帳戶模型的工作原理#
帳戶模型使用帳戶內餘額作為交易的會計計量單位,而 UTXO 模型使用交易中未花費的加密貨幣部分作為會計衡量標準。
帳戶模型可以看作是傳統銀行的數位版本,數位資產被記錄為帳戶內的餘額,就像傳統的銀行帳戶一樣。當交易發生時,系統會根據用戶的交易指令,觸發節點改變帳戶餘額。然後由系統計算每個帳戶中餘額的變化並記錄餘額的最新狀態。
以太坊網路中的帳戶模型#
在以太坊中,有兩種類型的帳戶:外部所有帳戶(EOA)和合約帳戶 (CA)。
外部所有帳戶 (EOA, Externally Owned Account)
指由私鑰控制的用戶帳戶。用戶可以在 MetaMask 錢包等中創建此類帳戶。每個 「EOA」 都有一個私鑰和一個地址,它可以直接發起交易。
合約帳戶 (CA,Contract Account)
指由智能合約代碼控制的帳戶。與 EOA 不同,合約帳戶沒有私鑰,它擁有一個智能合約代碼。該帳戶由其智能合約代碼運行。代碼在合約帳戶創建時記錄在鏈上,並由 EVM 執行。
帳戶模型的特點#
在帳戶模型中,交易的結果取決於餘額狀態。帳戶餘額必須大於交易輸出。因此,交易順序驗證和餘額驗證對於使用帳戶模型的網路非常重要。帳戶模型中的節點在收到交易指令時會檢查發送者的餘額狀態(看它是否大於或等於轉移的輸出量)。