區塊鏈不只是存交易記錄。它背后有一套實時更新的共享賬本,叫做"全局狀態"(global state)。這個狀態回答了最核心的問題:此時此刻,誰擁有什么,東西在什么狀態?
每個區塊鏈都有自己的全局狀態。同一時刻,全網所有節點的這份賬本完全一致。理解它,是搞懂區塊鏈運作機制的第一步。
![]()
全局狀態 vs 交易記錄:結果和過程的區別
很多人把這兩件事搞混。簡單說:交易是歷史,全局狀態是結果。
交易記錄存在區塊里。每個區塊包含一批新交易、一些元數據,以及指向前一個區塊的鏈接。比如第100號區塊可能寫著:Alice轉10個token給Bob,Bob轉1個token給Charlie。這些交易按順序串起來,形成完整的歷史鏈條。
全局狀態則是跑完所有有效交易之后的"快照"。它不需要你從頭重算每一筆賬,直接告訴你:現在賬上是什么情況。
打個比方:交易記錄像一部電影,全局狀態是電影的最后一幀畫面。你想知道結局,看最后一幀就夠了,不用重放整片。
從請求到狀態更新:一條完整的鏈路
用戶發起請求 → 形成交易(即指令) → 打包進區塊(交易列表) → 節點執行區塊內的交易 → 全局狀態被修改。
每出一個新塊,區塊鏈就從舊的全局狀態切換到新的全局狀態。這個切換是確定的、可驗證的,全網節點同步執行同樣的操作,確保狀態一致。
全局狀態里到底存了什么?
本質上是一份賬戶清單。每個賬戶包含幾類信息:
余額(balance):賬戶持有的資產。原生加密貨幣(如ETH、BNB)直接存在狀態里;其他token雖然存在智能合約數據中,但錢包界面能直接顯示。
數據/存儲(data/storage):智能合約存的信息。包括內部狀態、業務規則等,都活在合約賬戶的狀態空間里。
交易計數器(nonce):錢包已發送交易的數量。注意:只有外部賬戶(EOA)有nonce,智能合約基本沒有。
代碼(僅智能合約):規則、函數、業務邏輯。合約賬戶里存著可執行代碼,普通錢包賬戶沒有這一項。
這套結構的設計目標很明確:用最小的信息量,回答"誰擁有什么"這個核心問題。
一個語言細節
法語原文里區分了大小寫用法:Global State(大寫)指概念本身;global state(小寫)指具體實例、使用場景或內容細節。中文語境下這個區分不明顯,但理解這個設計有助于讀英文技術文檔時抓住重點。
全局狀態是區塊鏈的"實時賬本"。它不記錄你怎么走到今天,只告訴你今天站在哪。這種設計讓驗證變得高效——節點不用重放全部歷史,只需對照最新狀態即可確認當前事實。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.