区块链不只是存交易记录。它背后有一套实时更新的共享账本,叫做"全局状态"(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(小写)指具体实例、使用场景或内容细节。中文语境下这个区分不明显,但理解这个设计有助于读英文技术文档时抓住重点。

全局状态是区块链的"实时账本"。它不记录你怎么走到今天,只告诉你今天站在哪。这种设计让验证变得高效——节点不用重放全部历史,只需对照最新状态即可确认当前事实。