以太坊协议共学|第三周内容回顾:Consensus Layer
点击蓝字,关注我们
/ 撰文(英) Chloe
/ 编译 Purple
0. 目录
本次分享嘉宾:Alex Stokes - 以太坊基金会研究员,参与多个话题/项目,包括 MEV、PBS、Reth 等。
1. 概览
区块链让我们能创造出数字稀缺性
为什么我们一开始就关注区块链?
区块链创造了一种制造数字稀缺性的方法,这在以前很难实现;
因此,这种数字稀缺性的特性可以用来在数字世界中模拟各种物理资产,比如钱、代币、财产权等。
创造数字稀缺性的方法:以创造具有稀缺性的数字货币为例
目标:创造一种具有稀缺性的数字货币
单位:coins
稀缺性:同一时间内只有 N 枚 coin,用户不能花费比他们拥有的更多的 coin
分布式网络处理拜占庭容错(BFT)
为什么我们需要拜占庭容错?
如果更多的节点意味着更高的安全性,那么我们就会希望有更多的节点。然而,在一个开放和分布式的系统中,节点可能会遇到问题(例如硬件故障、消息丢失、软件错误、攻击等),这会导致与共识不一致的错误输出。
因此,我们需要一定的容错能力,以确保系统继续运行。
什么是拜占庭容错(BFT)?
拜占庭容错(BFT)是一个系统的特性,它能够抵抗源于拜占庭将军问题的一类故障。这意味着即使某些节点出现故障或恶意行为,BFT 系统仍能继续运行。
两阶段提交(2PC)
第一阶段准备:一个节点会询问其他节点是否可以提交提议的交易。
在以太坊中,一个将新交易集成到更新状态中的节点会将这个更新状态广播给所有其他节点。其他节点会确认收到。当达到 BFT(2/3 超级多数)时,准备阶段就完成了。
第二阶段提交:节点会指示其他节点提交或中止提议的交易。
在以太坊中,当达到 2/3 超级多数时,系统内的节点将更新到新状态。
实用拜占庭容错(PBFT)
PBFT 共识算法允许分布式系统在少量节点表现出恶意行为时仍能达成共识。
PBFT 的问题
它只适用于小规模的共识组,因为节点之间需要大量的通信(例如,如果系统中有 10 个节点,就需要 10^10 次消息传递来交换更新的状态并达成共识)。
它也容易受到 sybil 攻击,在这种攻击下,单一方可以创建或操纵网络中的大量节点,从而危及网络安全。
问答
PBFT 协议有节点数量上限吗?如果有,实际上是多少?
节点数量没有硬性上限,但高吞吐量和低延迟之间存在权衡。
比特币通过 PoW 方法解决了 BFT 问题
比特币被认为是解决拜占庭将军问题的第一个方案
系统可以扩展到无限节点数量
开放且无需权限的参与
使用 PoW 机制达成共识
比特币的共识机制
比特币的状态机复制
输入:Tx(在区块中组织)来花费比特币
输出:比特币账本的当前状态
使用加密学减少可能的状态空间
数字签名:使用加密学验证交易的真实性
父哈希:每个新区块必须包含上一个区块的哈希
用 PoW 实现共识
挖矿难度调整:
比特币有一个挖矿难度的概念,指的是矿工解决数学方程并找到下一个区块的哈希有多困难。
挖矿难度由网络的总计算能力决定。如果更多矿工加入网络且哈希率增加,挖矿难度会上升,反之亦然。
挖矿难度调整的影响
Sybil 防护:一个新区块必须执行一定量的工作才被认为是有效的
共识算法:节点找到链头的方式是总结每个区块完成的挖矿难度,选择总难度最大的链
发行其原生货币 BTC 作为激励
提供奖励以激励对当前最多工作的单一链进行工作
以太坊从 PoW 转向 PoS
PoW -> PoS 的本质
从体系外信号(工作量)转向体系内信号(质押)作为 Sybil 防护
转换背后的考虑
PoW 的能源使用问题
PoW 的激励问题:与 PoW 相比,PoS 的协议内信号允许惩罚和奖励
以太坊的共识机制
验证者:协议内共识参与者
成为共识验证者
用户需要锁定 32 个 ETH 并将它们发送到 EVM 中的存款合约,这将在共识层(CL)级别被看到。
责任
进行证明:即验证者对链状态进行加密签名
不同类型的证明
LMD GHOST 投票:验证者证明信标链头
Casper FFG 投票:验证者证明其当前纪元的检查点
关键概念和术语
时隙(Slot)
每 12 秒将出现一个新的时隙,每个时隙都会有一个区块
时隙内被分为 3 个阶段,每个阶段消耗 4 秒。时隙中最关键的时刻是在 t=4 时的证明截止时间。(Paradigm blog:https://www.paradigm.xyz/2023/04/mev-boost-ethereum-consensus )
纪元(Epoch)
每个纪元有 32 个时隙。创建纪元的原因是为了减少共识处理的频率,使其不需要在每个时隙发生
更重的处理通常在纪元边界进行,包括削减、奖励信息等。
纪元边界区块(EBB)也可以视为与检查点同义。(以太坊 2.0 信标链解释:https://ethos.dev/beacon-chain)
委员会(Committee)
网络中的验证者将在不同的委员会下随机洗牌
每个验证者每个纪元将做一次证明,验证者被分配的确切时隙由协议通过 RANDAO 确定。
最终性(Finality)
最终性意味着交易是一个不能改变的区块的一部分。
理由:当一个纪元结束时,如果其检查点收集到 2/3 的超级多数,该检查点就被证明了。
最终性:当一个检查点被证明时,已经被证明的前一个检查点变得最终确定。
问答
为什么选择 32 ETH 作为门槛?
这是一种权衡的选择。即,如果门槛太低,将会有太多验证者,因此可能需要很长时间才能达成共识。如果门槛太高,则验证者太少,系统的安全性会降低。
起初,核心开发团队考虑将门槛设为 1000 ETH,后来 Justin Drake 建议使用 BLS 签名技术,这降低了最低资金要求到 32 ETH。
Justin Drake 关于 BLS 实用签名聚合的研究:https://ethresear.ch/t/pragmatic-signature-aggregation-with-bls/2105
为什么一个时隙是 12 秒?
12 秒有些任意,这是受到 PoW 时间(平均 14 秒)的启发。
RANDAO 的随机性和验证者如何随机洗牌的问题
随机性是通过使用 RANDAO 算法实现的,该算法将区块提议者的哈希与每个区块更新的种子混合。这个值用于从总验证者集合中选择特定的验证者。验证者的选择在两个纪元前就固定下来,以此作为防止某些种子操纵的方式。
尽管验证者在每个时隙都会对 RANDAO 做出贡献,但全局 RANDAO 值每个纪元只更新一次。(区块提案)
Github 链接:https://github.com/randao/randao
在最终性和找到规范链的上下文中 Gasper 是什么?
Gasper 是 Casper-FFG 和 LMD-GHOST 分叉选择算法的组合(Gasper)
Casper 是将某些确定性升级为最终确定性的机制,以便新参与者可以确信他们正在同步规范链。
LMD-GHOST 是分叉选择算法,使用累积投票确保节点在区块链出现分叉时能够轻松选择正确的分叉。
简要解释 PBS(提案者-构建者分离)
PBS(提案者-构建者分离):
MEV 问题:MEV 指的是验证者通过有利排序交易来最大化其利润。最大化 MEV 需要复杂的知识以及硬件和软件,这可能导致中心化,因为机构操作者通常比个人验证者表现更好。
PBS:允许区块提案者外包区块构建,这样验证者就可以继续在消费级硬件上运行,而不会错过 MEV 带来的利润。
研究链接:https://ethresear.ch/t/why-enshrine-proposer-builder-separation-a-viable-path-to-epbs/15710
路线图博客:https://ethereum.org/en/roadmap/pbs/
以太坊路线图上的一些重要事项
SSF(单时隙最终性):目标是在单个时隙内获得最终性。
Vitalik 关于 SSF 的帖子:https://notes.ethereum.org/@vbuterin/single_slot_finality
路线图博客:https://ethereum.org/en/roadmap/single-slot-finality/
SSLE(单一秘密领导人选举):目标是保密地进行提案者选择。
研究链接:https://ethresear.ch/t/simplified-ssle/12315
路线图博客: https://ethereum.org/en/roadmap/secret-leader-election/
最大有效余额(Max EB):旨在将以太坊验证者的有效余额提高到 32 ETH
研究链接:https://ethresear.ch/t/increase-the-max-effective-balance-a-modest-proposal/15801
Week2 英文版回顾材料:https://epf.wiki/#/eps/week3
欢迎关注 PlanckerDAO,关注 EIP Fun 官方推特(@EIPFun),并加入我们和 OpenBuild 联合发起的 EPS 共学群(扫描并添加小助手二维码进入),获取最及时的以太坊协议共学信息和回顾,快来一起学习吧!
推荐阅读
/ About Plancker
PlanckerDAO 是一个专注建设以太坊生态的社区,我们为开发者、产品经理和研究员提供多方面支持,致力于与以太坊共建人类的数字化美好未来。
Website:https://plancker.org/
Forum:http://forum.plancker.org/
Telegram:https://t.me/PlanckerDAO
Notion:https://planckerdao.notion.site/
Twitter:https://twitter.com/PlanckerDAO