Post

权益证明机制下以太坊中一笔交易的完整流程

  1. 用户使用私钥创建并签署交易。通常由钱包或库(如 ether.js、web3js、web3py 等)处理,但在底层,用户使用以太坊 JSON-RPC API 向节点发出请求。用户定义愿意支付给验证者作为小费的 gas 量,以鼓励其将交易包含在区块中。小费将支付给验证者,而基础费用(Base Fee)将被销毁。

  2. 交易提交给以太坊执行客户端(Execution Client),该客户端验证其有效性,即确保发送者有足够的 ETH 来完成交易,并且使用正确的密钥签署了交易。
  3. 如果交易有效,执行客户端将该交易添加到本地内存池(待处理交易列表)中,并通过执行层的 Gossip 网络将交易广播给其他节点。当其他节点侦听到交易时,也将其添加到本地内存池中。高级用户可能会不广播他们的交易,而是将其转发给专门的区块构建器,如 Flashbots Auction。这使他们能够组织新区块中的交易,以实现最大利润(Maximal Extractable Value,MEV)。

  4. 网络上的一个节点是当前时隙(Slot)的区块提议者(Block Proposer),之前已经使用 RANDAO 伪随机地选出。这个节点负责构建和广播要添加到以太坊区块链的下一个区块,并更新全局状态。该节点由三部分组成:执行客户端(Execution Client)、共识客户端(Consensus Client)和验证者客户端(Validator Client)。执行客户端将本地内存池中的交易打包成一个“执行负载(Execution Payload)”,并在本地执行这些交易以生成状态变化。这些信息传递给共识客户端,其中执行负载被包装为“信标区块(Beacon Block)”的一部分,该区块还包含有关奖励、惩罚、削减、证明等信息,这些信息使网络能够就链头的区块顺序达成一致。

    在工作量证明中,生成区块的时间是由挖矿难度决定的,而在权益证明中,节奏是固定的。 权益证明以太坊中的时间分为 Slot 时隙(12 秒)和 Epoch 时段(32 个时隙)。 在每个时隙中随机选择一位验证者作为区块提议者。 该验证者负责创建新区块并发送给网络上的其他节点。 另外在每个时隙中,都会随机选择一个验证者委员会,通过他们的投票确定所提议区块的有效性。

  5. 其他节点在共识层 Gossip 网络上接收新的信标区块,将其传递给自己的执行客户端并重新在本地执行交易,以确保提议的状态变化是有效的。验证者客户端随后证明该区块是有效的,且是其链视图中的逻辑下一区块(意味着它建立在根据分叉选择(Fork Choice)规则定义的具有最大证明权重的链上)。该区块被添加到每个证明过它的节点的本地数据库中。
  6. 如果交易已经成为链的一部分,且该链两个检查点之间具有“超级多数链接(Supermajority Link)”,那么可以认为交易“最终确定(Finalized)”,即该交易不能被还原。检查点发生在每个时段的开始,要有超级多数链接,两个检查点必须都被网络上 ETH 总质押量的 66% 证明。
优点 缺点
质押使个人更容易参与其中保障网络的安全,促进去中心化。
验证者节点可以在普通笔记本电脑上运行。
质押池让用户可以在没有 32 个 ETH 的情况下质押。
与工作量证明相比,权益证明仍处于起步阶段,并且经过的实践检验较少。
权益质押更加去中心化。
规模经济不像适用于工作量证明挖矿那样适用于权益证明。
实现权益证明比实现工作量证明更加复杂。
权益证明的加密经济安全性高于工作量证明。 用户需要运行三种软件才能参与以太坊的权益证明。
发行较少的新 ETH 就可以激励网络参与者。  
This post is licensed under CC BY 4.0 by the author.