以太坊协议共学|第一周内容回顾:以太坊协议 101
点击蓝字,关注我们
/ 内容整理 Chloe(EIP Fun)
/ 排版 Purple
引言
以太坊协议奖学金(EPF)最近支持了以太坊协议共学(EPS),该共学持续时间为十周,从 2 月 19 日到 4 月 29 日。帮助对以太坊协议感兴趣的学习者深入理解以太坊协议设计、方法及工具、目前以太坊路线图前沿的研究。
EPS 详细介绍
每周共学具体时间( 2 月 19 日到 4 月 29 日):
每周一 16:00 UTC,24:00 UTC+8
后续会议地址:
https://streameth.org/ethereum_protocol_fellowship/epf_study_group
详细介绍:
https://blog.ethereum.org/2024/02/07/epf-study-group
官方报名链接:
https://docs.google.com/forms/u/0/d/e/1FAIpQLSdLASV5RqAQv6I2KzA6DcxkFHKcZw3YuL3S3uXfsWUiYRsKRg/viewform?usp=send_form&pli=1
第一周内容回顾
Week1 资源链接
1. 第一周的课程 ppt:
https://github.com/eth-protocol-fellows/protocol-studies/blob/main/docs/eps/presentations/week1_protocol_intro.pdf
2. 第一周的视频:
https://streameth.org/watch?event=epf_study_group&session=65d77e4f437a5c85775fef9d
Week1 内容纪要
简介
分享主题:以太坊协议 101
分享者:Mario Havel
主要内容
1. 影响以太坊的历史和哲学
- UNIX 操作系统:
UNIX 定义了计算范式,以太坊设计也深受它的模块化设计和开放协作的文化影响
- FOSS 自由开源软件运动:
由 Richard Stallman 发起,定义了软件的四项自由,包括运行软件、研究软件、分发软件给别人和分发修改后的软件的自由。而最根本的一点是用户选择的自由
- 非对称密码学的发明:
使得生成公私钥对和非对称加密成为可能,然而该技术的广泛使用并没有受到政府和国家的欢迎,反而招致控制和限制
- 密码朋克运动:
旨在构建基于密码学的开放、分布式系统,免于国家强力的干涉和控制
2. 什么是以太坊?
- 定义与 Spec
不同的人对以太坊可能有不同的理解。基于白皮书,以太坊被定义为“下一代的智能合约和去中心化应用平台”。基于黄皮书,它被定义为“安全的去中心化通用交易账本”。以太坊当前的 Spec 是由共识 spec 和执行 spec 来实现。
- 以太坊在不断变化中
以太坊主要通过 EIP(以太坊改进提案)以及由社区,而非个人或公司,来协作进行改变。在以太坊历史上,经历过多次升级和分叉,包括上海 & Capella 升级、伦敦升级(EIP-1559)等。主要的历史里程碑、分叉及更新详见:https://ethereum.org/en/history/
- 以太坊的设计原则
基于上述影响以太坊的历史和哲学,它的设计理念主要包括:简单、普适性、模块化、非歧视性、敏捷性、三明治/封装复杂性、自由、中立、繁华、无特征和不厌恶风险
3. 以太坊设计本身
- 执行层:
主要包括执行交易、处理交易数据和账户状态
- EVM(以太坊虚拟机):
以太坊的计算平台,为不同客户端的所有执行提供了标准化的环境。
- 状态(数据)及交易:
以太坊也被称为状态机,主要根据新的交易和状态转换函数来完成状态改变。状态采用 Merkle Patricia Trie 数据结构来存储数据,未来几周内将对此进行详细介绍。
- p2p 层:
执行层客户端间的通信,实现交易信息的传播
- JSON-RPC API:
执行层的 API,用以连接用户或 Dapp 如 Uniswap 等
- Engine API:
执行层和共识层间的通信执行层需要通过该 API 与共识层通信,确定当前的规范信标链(canonical beacon chain)并与之同步
- 共识层:
主要包括共识逻辑、分叉选择、区块信息传播
- 分叉选择:
分叉选择算法决定了区块头以及当前的规范信标链(canonical beacon chain)是什么
- LMD GHOST (Latest Message Driven - Greedy Heaviest Observed SubTree):
分叉选择由 LMD GHOST 进行管理,该规则会选择选择具有最大累积验证权重的分叉作为权威分叉
- p2p 层:
共识层客户端间的通信,实现区块信息的传播
- Blob:
EIP-4844 中提出的一种新的数据结构
- RANDO:
主要为信标链提供随机性
- Beacon API:
共识层的 API,主要连接以太坊验证者
3. 以太坊客户端
执行层客户端及其采用的编程语言:
@go_ethereum(Go), @NethermindEth(C#), @HyperledgerBesu(Java), @ErigonEth(Go), reth - alpha 阶段 (Rust), silkwarm - pre-alpha 阶段 (C++), ethereumjs - alpha 阶段 (TypeScript)
共识层客户端及其采用的编程语言:
@prylabs(go), lighthouse@sigp_io(Rust), @Teku_Consensys(Java), @ethnimbus(Nim), @lodestar_eth(TypeScript)
客户端多样性是以太坊生态系统中的一个主要话题。
理想情况下是希望网络分布在不同的客户端上,即使其中一个客户端出现问题,网络的其余部分也不会受到影响。目前来看,共识层相比执行层的客户端而言更加多元和分布分散 (https://clientdiversity.org)
5. 测试
由于以太坊具有共识层、执行层和多个客户端,因此需要多种用于不同测试目的的工具,如 PPT 上所示。还有基准测试、压力影子分叉等其他测试。
6. 社区协调
- 以太坊新特性/ 功能的开发周期主要经历:想法、研究、Spec、实施、测试和采用或拒绝。
- 整个过程需要很多的社区协调,目前开发者主要通过电话会议和论坛/Discord 渠道进行协作沟通。
开发者会议:每周四的核心开发者会,以及特定主题的分组会议(会议安排链接:https://github.com/ethereum/pm/issues)
论坛:@EthMagicians,@ethresearchbot
Discord:以太坊开发 R&D discord (https://discord.com/invite/qGpsxSA), @EthCatHerders
7. 研究及发展路线
Vitalik 最新发布的以太坊路线图:
https://twitter.com/VitalikButerin/status/1741190491578810445
@domothy 撰写的带注释的以太坊路线图: https://notes.ethereum.org/@domothy/roadmap
简而言之,
Merge 已经完成了向 PoS 的过渡,之后将实现 Single slot finality(SSF)。
Surge 的重点是扩容,Dencun 分叉很快将在三月份进行,第二部分的目标是完整的数据可用性采样(DAS)。
Scourge 主要涉及经济学,包括缓解 MEV、抗审查以及 PoS 经济的潜在解决方案。
Verge 主要专注于密码学和数据结构,以太坊此后将转变为 Verkle 树数据结构。
Purge 的目标是通过删除历史/ 状态的部分内容,以更轻量级的方式实现运行。
Splurge 是为了解决其他一切问题。以太坊终极目标是试图解决去中心化、可扩展性和安全性的不可能三角困境。
这样一个进化的过程会永远持续,因为不断会有新的事物技术出现。而当社区解决了足够多的问题时,这一进化速度可能会变慢,社区可能会在未来的某一时点决定冻结以太坊,即不再进行大的修改而只是对它进行维护。你能想象到这样一天的到来吗?
6. 一些 Q&A
Q1: 关于 ETH 2.0 相关书籍推荐
Ben Edgington 所著的《升级以太坊》:https://eth2book.info/capella/pdf/
论文结合 GHOST 和 Casper :https://arxiv.org/abs/2003.03052
Q2: 4TB 足够用于跑一个完整的 geth 节点吗?
足够,2TB 已经足够
Q3: 如果想要深入了解特定客户的实施,有哪些资料推荐,可以从哪里开始?
往期 Devcon 视频:https://archive.devcon.org/archive/
各个客户端代码库和文档
EPF 往期项目:
https://github.com/eth-protocol-fellows/cohort-four/;
https://github.com/eth-protocol-fellows/cohort-Three/
Q4: 由于以太坊相关的内容、技术信息量巨大,如何才能找到好的切入点和关注点?
没有人是以太坊的全能专家。学习和研究需要时间,而这很正常。关键是找到你感兴趣的方面并进行钻研。
欢迎关注 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