在以太坊乃至更广泛的区块链生态中,有一个至关重要的角色,它默默无闻,却直接关系到网络的安全性与去中心化程度,那就是“Sealer”(密封者或出块者),理解 Sealer 的作用、机制及其在以太坊生态系统中的重要性,是深入把握区块链共识机制运作的关键一环。
什么是以太坊 Sealer?
Sealer,顾名思义,其核心职责是“密封”区块并将其添加到以太坊的区块链上,在以太坊从工作量证明(PoW)转向权益证明(PoS)的“合并”(The Merge)升级后,Sealer 的角色主要由验证者(Validator)网络承担,Sealer 就是那些通过质押 ETH(在 PoS 中称为“stake”),获得参与区块生产资格的节点参与者。
在以太坊的 PoS 共识机制——称为权益证明引擎(Casper FFG + LMD Ghost)——中,整个网络的安全性依赖于大量验证者的诚实参与,而 Sealer 则是这些验证者中,有幸被选中创建新区块的“幸运儿”,当验证者被选为 Proposer(提议者)时,它就承担了 Sealer 的职责,负责收集网络中的交易、执行计算、创建一个有效的区块,并将其广播到网络中。
Sealer 的工作机制:从质押到出块
-
成为验证者(质押):用户需要质押至少 32 个 ETH,并将其运行在一个符合规范的客户端软件上,成为以太坊网络的一个验证者,质押是成为 Sealer 的前提,它验证者在经济上有动力去诚实行事,因为任何恶意行为都可能导致质押的 ETH 被罚没(Slashing)。
-
进入验证者队列:质押成功后,验证者会被激活,进入等待出块的队列,系统会根据验证者的激活时间、余额等因素,通过一种伪随机的方式( RANDAO)来选择下一个出块的 Proposer(即 Sealer)。
-
创建新区块(Sealing 过程):被选中的 Sealer 会执行以下步骤:
- 收集交易:从内存池(Mempool)中收集待处理的交易。
- 执行交易与状态转换:按照交易规则执行这些交易,更新以太坊的世界状态(账户余额、合约状态等)。
- 构建区块体:将执行后的交易打包进区块体。
- 生成区块头:计算并填充区块头,包括父区块哈希、区块号、时间戳、交易根哈希、状态根哈希、 receipts 根哈希等,并生成一个唯一的 proposer signature。
- 广播区块:将完整的区块广播给网络中的其他节点。
-
区块确认与链选择:其他验证者节点会收到这个新区块,并验证其有效性(包括交易的合法性、状态转换的正确性、签名的有效性等),如果验证通过,该区块就会被添加到各自维护的区块链副本中,如果同时有多个有效区块被提出(由于网络延迟等原因),以太坊的 LMD-GHOST 机制会选择最“重”的(即获得最多验证者投票的)分支作为主链。
Sealer 的重要性与价值
Sealer 虽然只是众多验证者中的一个临时角色,但其对以太坊网络至关重要:
-
维护网络安全
