| timezone | UTC+8 |
|---|
请在上边的 timezone 添加你的当地时区(UTC),这会有助于你的打卡状态的自动化更新,如果没有添加,默认为北京时间 UTC+8 时区
- 自我介绍 jitash
- 你认为你会完成本次残酷学习吗? 可以
- 你的联系方式(推荐 Telegram) @oxoavi
- 以太坊协议架构核心由执行层和共识层组成
- 执行层直接面向实际交易与用户交互,是以太坊系统处理各类业务逻辑的关键环节,如同计算机执行各种应用程序。
- 共识层则从机制层面保障网络的一致性和安全性,通过权益证明机制,确保所有节点在区块链的发展方向上达成一致,维护执行层规范链的有序推进。
- 执行层和共识层在各自客户端通过 API 连接来实现整体架构。
- 这种实现方式使得不同层的功能可以相对独立地进行开发和维护,同时又能通过 API 进行高效交互。
- 每个客户端都有专门处理不同类型数据的对等网络,这种分工协作的方式有助于提高整个系统的数据处理效率和网络运行的稳定性。
- 以太坊选择账户模型而非 UTXO 模型
- 在空间占用上,账户模型更节省,如存储 5 个 UTXO 转换为账户模型后空间大幅减少;可替代性方面,账户完全可替代,UTXO 则存在缺陷;
- 实现复杂度上,账户模型更简单,利于开发复杂交易,如去中心化交易所的实现。虽账户模型需用 nonce 防止重放攻击,但可通过设置交易包含块号解决。
- 数据结构从 Merkle - Patricia Trie 向 Verkle 树发展,前者有确定性和可验证性,但随着网络发展,后者因证明更小、利于实现无状态性受关注。序列化从 RLP 到 SSZ,SSZ 解决了 RLP 不支持 Merkle 化的问题,具备高效重新哈希和快速索引能力,为以太坊实现无状态性奠定基础。
- 以太坊通过 Casper FFG 保证最终性,验证者两轮投票确定检查点,使其成为规范链一部分。
- LMD - GHOST 作为分叉选择规则,与 Casper FFG 结合成 Gasper 协议。
- 网络架构上,利用 DHT 发现节点,gossip 协议传播区块,这种结合方式兼具节点引导的全局视角与网络健壮性,在高 churn 网络中优势显著。
- 演变
- Frontier
- 前沿版本是以太坊协议的起点,作为测试版,为开发者提供了学习和实践的基础平台。其硬编码的燃料上限保障了协议初期的稳定运行,后续通过分叉调整上限,以适应网络发展。金丝雀合约这一独特机制,巧妙地解决了可能出现的链升级阻碍问题,通过简单的二元信号,让客户端能及时响应升级需求,避免长时间中断,为协议后续发展奠定基础。
- Homestead
- 标志着以太坊走向成熟。EIP - 2 通过一系列调整,如增加合约创建成本、完善难度调整算法等,优化了协议的经济模型和稳定性。对交易签名 s 值的限制,有效解决了交易可塑性问题,提升了交易跟踪的可靠性。同时,新操作码 DELEGATECALL 的引入,为合约间的调用提供了更便捷的方式,增强了智能合约的功能。EIP - 8 从网络层面确保了客户端对未来升级的兼容性,遵循相关协议规范,使以太坊网络具备更好的扩展性。
- The Merge
- 是以太坊发展的重大里程碑,通过激活 EIP - 3675,以太坊将共识机制从工作量证明转变为权益证明。这一变革不仅解决了工作量证明能耗高的问题,还通过独立的 Beacon Chain 实现了更复杂、高效的共识机制。经过长时间稳定运行,Beacon Chain 证明了自身的可靠性,成功成为以太坊新的共识提供者,推动以太坊进入新的发展阶段。
- Frontier
- 状态转换
- 执行层的核心是执行状态转换函数,它决定了区块链状态的演变。通过特定公式清晰界定了区块链状态转换前后的关系,强调系统状态推导方式与实际实现细节的差异,突出理论模型与实践的联系和区别。例如,状态转换函数的输入(前一状态和当前区块)与输出(新状态)明确了执行层在区块链运行中的关键作用,如同生产线的核心环节,决定着产品(区块链状态)的更新。
- 状态转换函数执行流程
- 状态转换函数执行步骤严谨且全面,从获取和验证区块头信息,到执行交易、验证参数再到最终添加或处理区块,每个环节紧密相连,任何一步出错都会引发 “无效块” 错误。这种严格的流程确保了区块链数据的准确性和完整性,就像精密仪器的操作流程,任何一个环节的失误都可能导致仪器故障。例如,在验证区块头时,对燃气使用、时间戳等多方面的验证,防止了不符合规则的区块进入区块链,保障了整个网络的正常运行。
- 区块头有效性验证
- 从燃气相关的使用限制、限制范围,到时间戳的先后顺序,再到区块的其他属性如叔块哈希、难度等的规定,全方位确保每个区块符合以太坊协议要求。这些条件相互配合,构建了一个严密的筛选机制,如同关卡,只有通过所有关卡的区块才能被认可。例如,燃气使用不能超过限制,且限制范围与父区块相关,这种动态的限制条件既考虑了当前区块的实际情况,又兼顾了与父区块的连贯性,保证了区块链网络的稳定运行。
- 经济模型
- 以太坊经济模型在 EIP - 1559 影响下,通过设置目标燃气限制、优化交易处理时间、稳定区块奖励发放、可预测基础费用调整以及基础费用燃烧和优先费用机制等,实现网络效率、稳定性和用户体验的提升。例如,基础费用燃烧机制减少了以太坊的通胀,使得经济环境更加健康,如同调节经济的杠杆,合理控制货币的流通量,促进经济的良性发展。
- EIP-1559 是以太坊改进提案,于 2021 年 8 月 5 日在伦敦硬分叉升级中激活,旨在优化以太坊区块链的费用市场系统。
- 客户端架构
- 执行层客户端核心功能与架构
- 执行层客户端功能多元,除交易执行外,还保障区块链数据准确、网络通信顺畅及交易池有序。其架构以执行引擎为顶层,经共识层驱动,依循特定标准。
- 如执行层在 DevP2P 网络层上运作,借助引导节点初始化网络,各组件协同确保以太坊网络稳定运行。
- 例如,执行层客户端通过八卦协议与其他客户端交流,传播交易信息,维持网络数据一致性。
- 关键组件功能解析
- EVM 是以太坊关键,虚拟化设计使程序执行结果不受硬件影响,符合三明治复杂性模型。
- 以太坊的 “状态” 概念独特,与比特币不同,维护综合数据集合。交易触发 EVM 状态转换,改变以太坊网络状态。DevP2P 作为通信接口,保障交易在网络中高效传播。
- JSON - RPC API 为外部交互提供标准,Engine API 实现层间内部通信。如 Engine API 的 new payload 和 fork choice updated 方法,分别处理有效载荷验证插入与状态同步及区块构建。
- 状态同步策略
- 全量同步从创世块开始重放所有区块和交易,虽安全性高,但耗时久且资源消耗大,随区块高度增加问题更突出,EIP - 4444 实施后将被弃用。
- 快照同步选择近期最终确定的区块为枢轴,仅获取叶节点和默克尔证明重建状态,大幅缩短同步时间,但愈合阶段对硬件要求高。两种策略各有利弊,节点可依自身需求选择
- Geth 客户端的运作流程
- Geth 处理交易时,严格验证签名、检查随机数、扣除燃气费并更新状态。
- 交易先入内存池,后被选取执行,修改账户余额等状态数据。
- 处理完区块内所有交易后,提交最终状态并存储状态根哈希。
- Geth 通过 DevP2P 与其他节点通信,运行 EVM 处理智能合约逻辑,在以太坊网络中扮演重要角色。例如,用户发起的与智能合约交互的交易,由 Geth 的 EVM 准确执行。
- 执行层内部共识引擎
- 执行层的 ethone 共识引擎具备部分完整共识引擎功能。 在不同共识机制(如权益证明、权威证明、工作量证明)下,其在确定区块创建者、验证头部、准备区块、最终确定及组装等功能上实现方式各异。例如,在权益证明中,根据特定条件检索区块创建者地址;在权威证明中,验证头部时间、签名等多种条件。
- 执行层客户端核心功能与架构
共识协议旨在依托不可靠基础设施构建可靠分布式系统,以太坊共识层需确保全球众多节点保持同步,各节点账本精确匹配。
-
共识层的核心挑战与机制转变:
共识层致力于在不可靠的网络环境下实现节点间可靠同步。从 PoW 到 PoS 的转变,是为解决 PoW 高能耗与可扩展性局限。PoS 通过验证者质押 ETH 参与共识,相比 PoW 矿工解谜,更具可持续性与高效性。例如,PoW 消耗大量算力资源,而 PoS 只需验证者质押权益,降低能源消耗。
-
Beacon Chain 与验证者
Beacon Chain 是 PoS 共识关键,协调验证者确保网络安全。验证者质押 ETH 获取参与资格,其行为影响网络一致性与安全性。如提议与验证区块、投票确认区块链状态等,若验证者违规,将被扣除质押 ETH。以质押 32 ETH 为基础,通过随机选择与委员会机制,保证验证过程公平、去中心化。
-
时间管理与共识达成
插槽和纪元是以太坊共识时间管理关键。插槽提供添加区块机会,纪元由多个插槽组成,验证者在其中进行投票与验证。检查点机制确保区块链状态最终确定,超三分之二验证者投票支持使检查点正当化,历经两个 epoch 实现最终性。如交易需约 14 - 16 分钟达到最终确认,保证交易不可逆。
-
奖励与惩罚机制
以太坊 PoS 系统奖励与惩罚机制设计精细,激励验证者积极合规。验证者因正确提议、验证和投票获奖励,因不参与或违规行为受惩罚。如提议最终确定区块的验证者获丰厚奖励,双投或多投等违规行为将被扣除大量质押 ETH。这种机制维护网络安全稳定,保障共识正常运行。
-
EIP - 4844 与数据扩展
EIP - 4844 引入数据可用性层和 blob 数据,标志以太坊迈向分片与扩展性提升重要一步。允许临时存储任意数据,降低 Layer 2 解决方案手续费,提高交易处理能力。尽管增加节点存储需求,但通过设置数据保留期和修剪机制应对。如每个 epoch 可处理更多交易,提升网络整体性能。
-
共识协议的组合与功能
以太坊共识协议创新性地将 LMD GHOST 和 Casper FFG 结合为 Gasper。LMD GHOST 着重于活性,像持续运转的引擎,让区块链不断产生新块,保持向前发展。而 Casper FFG 则专注于安全性,如同坚固的锚,定期终结链,防止长距离回滚。例如,在网络正常运行时,LMD GHOST 使新块源源不断产生,Casper FFG 确保已终结的块不会被轻易篡改,两者协同工作,为以太坊网络提供了较为完善的共识保障。
-
分叉选择机制与重组
分叉选择机制是节点在复杂网络环境中达成一致的关键。不同的共识机制,如工作量证明的 "最重链规则"、权益证明中 Casper FFG 和 LMD GHOST 的规则,通过给块分配分数来选择头块,确定最终的规范链。当节点收到新信息,重新评估后可能出现重组,即改变当前链的分支。比如,在网络延迟导致节点收到不同顺序的块时,可能会进行短时间的一两个块的重组,这是正常现象;但如果重组过长,可能意味着链受到攻击或分叉选择规则存在问题。
-
安全性与活性的权衡
以太坊在安全性和活性之间进行了巧妙权衡。安全性防止如双花等不良情况发生,确保所有诚实节点对区块链状态达成一致;活性则保证区块链能持续添加新块,避免陷入死锁。然而,由于 CAP 定理限制,在不可靠通信环境下无法同时完美实现两者。以太坊在网络出现问题时优先保障活性,即使可能出现安全性风险,如网络分区时不同侧可能终结不同历史,但能保证网络持续处理交易,维持基本运转。
-
共识层组件与交互
共识层的主要组件信标节点和验证者紧密协作。信标节点使用如 Prysm、Teku 等客户端软件,负责协调权益证明共识,与其他信标节点、本地执行节点及可选的本地验证者通信。验证者客户端允许用户质押 32 ETH 参与共识,取代工作量证明中的矿工角色,仅与本地信标节点通信,接收指令并广播工作成果。同时,执行层和共识层客户端通过 Engine - API 连接,并行运行,相互传递信息,共同推动以太坊网络的运行。
-
状态转换与有效性
状态转换函数是区块链维持一致性的核心。信标链基于插槽驱动,其状态转换包括按插槽、按块和按纪元的函数,这些函数依据特定规范在不同时间更新链状态。状态转换必须满足严格的有效性条件,不能引发未处理异常或无符号 64 位整数溢出 / 下溢等情况,否则视为无效。例如,在处理每个新块时,节点通过状态转换函数更新自身状态,若所有节点从相同初始状态开始,应用相同块,应得到相同最终状态,否则就出现了共识失败。
-
共识客户端网络技术组合
共识客户端运用多种网络技术协同工作。libp2p 作为对等网络协议,提供节点间通信基础;discv5 负责节点发现,帮助客户端找到其他对等节点;libp2p - noise 保障通信加密安全;SSZ 统一编码方式,使数据处理更规范高效;Snappy 可选压缩,优化数据传输。例如,在一个复杂的以太坊网络环境中,这些技术共同作用,确保节点能有效连接、安全通信及快速传输数据。
-
libp2p 的深入应用
libp2p 在以太坊共识客户端中有着深厚的历史与重要地位。它为共识客户端提供了灵活且可扩展的对等网络架构,使节点能在分布式网络中有效通信与交互。通过阅读 "libp2p and Ethereum" 这类文章,可深入了解其在以太坊发展历程中的演变及应用,如它如何适应以太坊网络规模增长和功能拓展需求。
-
SSZ 编码优势
SSZ 在共识层替代 RLP,具有独特优势。其设计的确定性保证数据序列化结果一致,便于验证和处理;高效的 Merkle 化方案与序列化数据结构紧密结合,利于构建 Merkle 树,实现数据快速验证与完整性保护。例如在共识层数据频繁交互和验证场景下,SSZ 能提高数据处理效率和安全性。
-
EIP - 7594 的创新功能
EIP - 7594 提出的 Peer Data Availability Sampling(PeerDAS)协议,为信标节点数据处理带来创新。它允许节点在确保 blob 数据可用性前提下,仅下载部分数据进行采样验证,大大减少数据下载量和处理负担,提高网络效率。比如在处理大量 blob 数据时,信标节点无需完整下载,通过 PeerDAS 就能快速确认数据可用性。
- ECDSA 全称为 Elliptic Curve Digital Signature Algorithm,是一种基于椭圆曲线密码学(ECC)的数字签名算法。相较于传统 RSA,ECDSA 在相同安全级别下拥有更短的密钥、更高的效能。
- 生成密钥: 生成一对密钥:私钥(保密)和公钥(公开)。
- 签名过程: 用私钥对消息生成签名。 签名依赖消息内容和一个随机数。
- 验证过程: 接收方用公钥 + 消息 + 签名进行验证。 确认消息未被篡改,且确实由私钥持有者签发。
- 特点: 签名无法伪造(除非拿到私钥) 签名与消息强绑定,改内容则验证失败 每次签名必须用不同随机数,否则私钥可能泄露
2. BLS(Boneh–Lynn–Shacham)签名算法
1. 密钥生成:
私钥是随机数,公钥由私钥计算得出。
2. 签名过程:
对消息哈希后,用私钥生成签名(是一个曲线点)。
3. 验证过程:
用公钥 + 消息 + 签名做配对运算验证签名是否有效。
4. 特点:
签名短(定长)
可聚合(多个签名合成一个)
适合区块链等多签验证场景
3. Keccak256 加密哈希函数,输入任意长度,输出固定的 256 位(32 字节)消息摘要
1. 基于海绵构造的安全哈希函数,输出256位,抗碰撞抗预映像,用在以太坊地址、哈希、签名验证中。
提出了四个关键改进领域。一是单时隙最终确定性及质押民主化,当前区块最终确定需 2 - 3 个 epoch(约 15 分钟)且质押需 32 ETH,未来期望在单时隙(12 秒内)完成最终确定并允许 1 ETH 质押,以提升安全性、简化协议并支持独立质押者,实现途径包括改进签名聚合协议、采用 Orbit 委员会机制或双层质押等。二是单一秘密领袖选举,解决当前验证者提议区块信息提前暴露导致的 DoS 攻击问题,可通过创建 “盲” 验证者 ID 等加密技术实现。三是更快的交易确认,将交易确认时间从 12 秒缩短至 4 秒,可采用减少时隙时间或允许提议者发布预确认等技术,但需权衡验证者集中心化、激励预确认等问题。四是其他研究领域,包括 51% 攻击恢复的自动化尝试、提升投票生效阈值以增强安全性、应对量子计算机可能破解密码学的抗量子攻击研究等。
- 单时隙最终确定性及质押民主化:
- 目前以太坊在最终确定区块时间和质押门槛上存在不足,影响用户体验和质押去中心化。实现单时隙最终确定性和降低质押门槛,能使以太坊特性与注重性能的 L1 公链对齐。例如,单时隙最终确定可让用户几乎在交易确认后立刻获得最终确定性,增强安全保障;降低质押门槛至 1 ETH 可解决当前 32 ETH 限额阻碍更多人独立质押的问题。实现途径多样,如通过 Horn 等提案改进签名聚合协议,利用 Orbit 委员会机制在保障经济最终性的同时提高效率,或采用双层质押机制,但每种途径都有其风险与挑战。
- 单一秘密领袖选举:
- 由于当前验证者提议区块信息提前可知,攻击者可借此发动 DoS 攻击。单一秘密领袖选举协议通过为验证者创建 “盲” 验证者 ID,让多个提议者对盲 ID 池改组和重新盲化,每个时段随机选择盲 ID,只有其所有者能生成有效证明提议区块,从而解决该问题。不过,实现该协议需找到足够简单的方案,以避免过度增加以太坊协议复杂性,同时要解决抗量子等问题,也可考虑使用协议外缓解措施。
- 更快的交易确认:
- 缩短以太坊交易确认时间能显著改善用户体验,提高 De - Fi 协议效率,助力 L2 去中心化。实现技术包括减少时隙时间至 8 秒或 4 秒,或允许提议者在单时隙发布预确认。但缩短时隙时间可能导致验证者集中心化,提议者预确认方法虽能改善平均纳入时间,但在提议者离线或运行不佳时仍存在等待时间过长问题,且激励预确认存在困难,需综合权衡这些因素。
- 其他研究领域:
- 在 51% 攻击恢复方面,当前过度依赖社会层解决攻击问题不健康,可尝试部分自动化恢复过程,如客户端自动拒绝审查交易的分叉链。提升投票生效阈值,从 67% 提高到 80%,虽会增加非最终确定性时期数量,但能增强安全性,且有助于明确独立质押者的意义。面对量子计算机可能在 21 世纪 30 年代破解密码学的潜在威胁,以太坊需为依赖椭圆曲线的协议部分开发基于哈希或其他抗量子的替代方案。
以太坊早期有分片和 Layer 2 两种扩展策略,后二者融合形成以 rollup 为中心的路线图。The Surge 旨在实现 L1 + L2 上 100,000 + 的 TPS 等目标,同时保持 L1 的去中心化和鲁棒性。
- 以太坊扩展策略的演进:
- 以太坊最初规划了分片和 Layer 2 两种扩展路径,随着研究进展,分片解决了数据可用性验证问题,两条路径融合为以 rollup 为中心的路线图。这种演进体现了以太坊技术发展的动态性和适应性,例如早期状态通道、Plasma 等技术设想为后续发展奠定基础,最终形成当下的扩展战略。
- 数据可用性采样技术的探索:
- PeerDAS 和 SubnetDAS 是提升以太坊可扩展性的关键技术尝试。PeerDAS 通过监听少数子网获取数据,SubnetDAS 则更为保守。一维采样虽理论上可扩展,但带宽开销对部分客户端构成挑战,二维采样利用 KZG 承诺线性特性,无需完整 blob 数据就能验证可用性,为分布式区块构建提供便利,然而其最优实现形式及安全性证明仍待研究。
- 数据压缩方案的多元与权衡:
- 数据压缩旨在降低 rollup 中交易的链上数据占用。多种优化手段各有利弊,如签名聚合从 ECDSA 迁移至 BLS 可合并签名,但面临工程资源投入和与 TEE 兼容性问题;地址指针替换虽节省空间,但增加客户端代码复杂度;发布状态差异而非完整交易虽减少数据量,但削弱可审计性。这些方案的实施需谨慎权衡。
- Plasma 架构的潜力与挑战:
- Plasma 作为扩容解决方案,通过在链下生成区块并将 Merkle 根记录到链上,结合 SNARK 验证可提升功能。但它对运营商依赖度高,概念复杂,相比 rollup 更难实现 “基础化”。不过,plasma/rollup 混合模式可在一定程度上规避劣势,当前将其推向生产环境并研究优化参数和架构是重点。
- L2 证明系统的信任构建:
- 实现 L2 真正无信任机制面临代码漏洞顾虑。形式化验证借助现代技术证明证明系统符合 EVM 规范,多重证明机制通过构建多个证明系统并设置多签合约控制资金,确保系统在分歧时的安全性。但形式化验证项目复杂,多重证明机制需确保不同系统安全性及合并逻辑可信度,在效率与安全间找到平衡至关重要。