Skip to content

Latest commit

 

History

History
447 lines (336 loc) · 21.3 KB

File metadata and controls

447 lines (336 loc) · 21.3 KB
timezone
Asia/Shanghai

Coooder-Crypto

  1. 自我介绍: 我是 Coooder,坚定的以太坊建设者哈哈哈
  2. 你认为你会完成本次残酷学习吗? 这次应该会了

Notes

2025.02.06

今天做了什么:

  1. 整体过了一遍 https://epf.wiki/
  2. 制定了简单的计划
  3. 学习了 Prehistory 部分

以太坊:无国界、主权自决的数字经济平台的愿景。

Prehistory 内容;

  • 互联网与信息传输
  • 加密需求
  • 自由与开源遇到的阻力
  • 密码朋克
  • 比特币
  • 以太坊

加密朋克核心观点:

  • 政府不应该能够窥探我们的事物
  • 保护对话和交流是一项基本权利
  • 权利通过技术而不是法律来保障
  • 技术的力量会创造新的政治现实

一些想法

虽然接触区块链有一段时间了,也很多次听说加密朋克,但是一直没有详细了解过相关的内容。这次竟然在 prehistory 的部分看到了相对完整的介绍,密码朋克的起源竟然这么早,感觉和自己想当然的理解完全不同。

今天看的 prehistory 部分,从互联网初期开始讲起,说 “In many ways, Ethereum functions like an open Bell Labs.”,感觉这些内容怪怪的,一方面我相信区块链技术的潜力,相信以太坊的未来,"like an open Bell labs" 实至名归;另一方面截至目前以太坊并没有掀起多么大的变革,这个说法让我这个通信工程专业的学生有点老脸一红。

不过都来学习以太坊协议了,当然是一直看好的,也会一直 build,希望早日看到新的突破。From "like an open Bell labs" to "beyond Bell labs"!

2025.02.07

今天做了什么:

  1. 继续看完了协议部分的架构、设计理由、演化

两层:执行层(EL)和共识层(CL)

  1. 执行层:处理实际交易和用户交互
  2. 共识层:提供权益证明共识机制

架构指导思想:

  • 简单性:任何程序员在理想情况下都可以理解或实现整个规范,最大限度减少个人或者精英开发人员群体对协议的影响。
  • 普遍性:以太坊没有功能,以太坊提供一个内部图灵完备虚拟机,称为 EVM。
  • 模块化
  • 非歧视性:协议本身不试图主动限制或者阻止特定类别的使用。
  • 敏捷性:协议不是一成不变的。

设计原则:

  • 管理复杂性:
    • Sandwich model complexity:简化架构底层和以太坊接口,不可避免的复杂性放到协议的中间层。
    • Encapsulated complexity:优先级顺序:L2 > 客户端实现 > 协议规范
  • 自由:使用以太坊协议的目的不受限制,-> 非歧视性
  • 泛化
  • 我们没有任何功能

区块链协议

  • Accounts over UTXOs(unspent transaction outputs)
    • 节省空间
    • 极大的可替代性
    • 简单性
  • modified Merkle-Patricia Trie
  • Verkle trees
  • RLP 递归长度前缀
  • SSZ 简单序列化

一些想法

这部分难度有点大,有比较抽象的原则或许需要在后续的学习中慢慢理解。还有一些算法相关的内容,还没有完全搞懂,事已至此先睡觉吧,等后面再学~

2025.02.08

今天做了什么:

  1. 看了协议的最后一部分:变迁
  2. 开始看执行层的内容

协议变迁

  1. Frontier
  2. Homestead
  3. The Merge

执行层规范

  1. 状态转移函数:是否可以将区块附加到区块链的末尾?状态如何因此而变化
  2. 区块头验证:根据以太坊协议规则验证区块完整性
  3. 区块执行流程

一些想法

执行层规范这里也有好多难以理解的内容,好难呀。实在是啃不下来,暂时把预期调整为了解大的框架,这次共学整体先了解下,后续根据情况再看怎么深入。

2025.02.09

今天做了什么

  1. 学习了 EVM 相关知识
  2. 顺便复习了计算机组成原理的一点内容

EVM

  1. 状态机:对系统行为进行建模的抽象。说明了系统如何由一组不同的状态表示,以及输入如何驱动状态的变化。以太坊可以看作基于交易的状态机。
  2. 范例:
    1. 以虚拟机为目标,源代码被编译为字节码,每个字节码都映射到虚拟机的执行。
    2. 涉及平台的虚拟机,将字节码转换为本机代码以供执行。
  3. 如何工作:
    1. Stack
    2. 计数器
    3. Gas:保护网络免受资源密集型或者恶意活动的阻塞。
  4. Memory
  5. Storage:Storage 只能通过关联账号的代码访问。

完备图灵机

  1. 条件分支、循环、无限存储

一些想法

看了不少关于 EVM 的底层内容,因为几年前学习过计算机组成原理相关的内容,但是已经有点忘记了,顺便复习了一下

2025.02.10

今天做了什么

  1. 看完了协议层的剩余内容

区块构建、处理和应用交易状态

  1. 区块构建对于以太坊的功能至关重要,涉及验证者和节点。
  2. 有效载荷构建

数据结构

  1. Merkle 树:
    • 基于哈希,在数据完备性和验证方面很有效。
    • 叶节点保存数据值,每个非叶节点都是其子节点的哈希值。
    • 雪崩效应,数据微小变化导致哈希值发生巨大变化。
  2. Paricia 树:
    • 用于存储数据而不是验证。
    • 所有数据都存在叶节点中,每个非叶节点都是标识数据的唯一字符串。
    • 数据检索很有效。
  3. Merkle Patricia Trie
    • 使用 Paricia 功能的 Merkle 树。旨在对构成以太坊状态的项目进行高效的数据检索。
    • 三种节点:分支节点、扩展节点、叶节点。
    • 分类: // TODO 这里的解释不全。后面多学点看看能不嫩提个 pr,感觉这里不是很难理解。
      • Transaction Trie:负责特定区块中的所有 Transaction,每个区块都有自己的 Transaction Trie。一旦执行了交易并完成了区块,该区块的交易 trie 就永远无法更改。
      • World State Trie
      • Receipt Trie
      • Account State Trie
  4. Verkle 树:
    • 新的树,比 Merkle Patricia Trie 更高效。
    • 相对于 MPT,Verkle 树的宽度很大,大树的叶节点的见证数据可能很小。
  5. 为什么选择 Verkle Tree:
    • 提高存储和通信成本。
    • 过渡存在很大的挑战,因为从 MPT 生成 Verkle 树需要大量的计算和空间。

Transaction

  1. 交易时由外部账号发出的加密签名指令,使用 JSON-RPC 广播到整个网络
  2. 字段:
    • nonce:整数值,等于发送的交易数量
      • 防止重放攻击
      • 确定合约账户地址
      • 替换交易:当因为 gas 价格卡住时,允许相同的 nonce 的替换交易
    • gasPrice
    • gitLimit
    • to:接受者地址
    • value:整数值,等于要转移给接受者的 Wei 数量
    • data or init:字节数组,指定 EVM 的输入
    • Signature:发起人的 ECDSA 签名

JSON-RPC

  1. JSON-RPC 规范是基于 OpenRPC 的远程过程调用协议,以 JSON 编码。它允许在远程服务器上调用函数,并返回结果。它是执行 API 规范的一部分,该规范提供了一组与 Ethereum 区块链交互的方法。更广为人知的是用户如何使用客户端与网络交互的方式,甚至共识层 (CL) 和执行层 (EL) 如何通过 Engine API 进行交互。

一些想法

https://epf.wiki/#/wiki/EL/block-production 这里的代码实例都点进去大概看了下 然后看了数据结构、交易、RPC 相关的内容。这些东西之前都有简单了解过,这次相对系统地重新学习了一下。感觉整体的理解更深了。收获很多!

2025.02.11

今天做了什么

  1. 看完了共识层的介绍部分

共识层概述

共识协议的主要目标是构建一个在不可靠基础设施上运行的可靠分布式系统。以太坊的共识层旨在确保全球数万个独立节点保持同步,所有节点的账本状态必须完全一致。

拜占庭容错 (BFT)

拜占庭容错是分布式系统的一种特性,即使部分组件失效或恶意行为,系统仍能正常运行。这在去中心化网络中尤为重要。

工作量证明 (PoW) 和权益证明 (PoS)

PoW 和 PoS 并非共识协议,而是支持共识协议的机制,主要用于防止女巫攻击。 PoW 通过计算工作量来赋予区块链权重,而 PoS 则通过质押的价值来赋予权重。 以太坊的 PoS 转型 以太坊在 2022 年 9 月 15 日完成了从 PoW 到 PoS 的转型(称为“合并”)。 **Beacon Chain(信标链)**成为新的共识层,负责处理区块和验证者的管理。 PoS 的优点包括更高的能源效率和可扩展性。

信标链和验证者

验证者:通过质押至少 32 ETH 成为验证者,负责提议和验证区块。 插槽和纪元:每个插槽为 12 秒,每 32 个插槽组成一个纪元。 委员会:验证者被分组到委员会中,确保验证过程的去中心化和安全性。

奖励与惩罚

验证者通过正确的投票和行为获得奖励。 不活跃或恶意行为会导致罚款,严重违规(如双重提议)会被削减质押(Slashing)。

最终性和检查点

每个纪元结束时生成检查点,获得 2/3 超级多数投票的检查点会被“最终化”,确保区块链状态不可逆。

以太坊的未来

信标链的引入为以太坊提供了更高的可扩展性和去中心化能力,目前已有超过 100 万个活跃验证者。

2025.02.12

今天做了什么

  1. 看完了客户端结构部分

以太坊共识层架构

以太坊的共识协议结合了两个独立的共识协议:LMD GHOST 和 Casper FFG,它们共同被称为 Gasper。

Gasper 的作用

LMD GHOST 提供了活性(liveness),确保链能够持续运行并定期生成新区块。然而,它容易出现分叉,并且在形式上并不完全安全。 Casper FFG 提供了安全性(safety),通过定期最终确定(finalize)区块链,防止长时间的链回滚。 通过结合这两种协议,Gasper 实现了以太坊的共识机制:

LMD GHOST 确保链条不断向前推进。 Casper FFG 确保链条的稳定性,通过最终确定区块来保护链条。 这种组合使以太坊在网络条件良好的情况下,既能保持活性又能保证安全性。然而,在网络分区等极端情况下,以太坊更倾向于优先保证活性,即链条继续增长,即使可能会在安全性上出现问题。

共识层的主要组件

信标节点(Beacon Node):

使用客户端软件来协调以太坊的权益证明(Proof-of-Stake)共识。 示例客户端包括 Prysm、Teku、Lighthouse 和 Nimbus。 信标节点与其他信标节点、本地执行节点以及本地验证器通信。

验证器(Validator):

验证器客户端是允许用户在以太坊共识层中质押 32 ETH 的软件。 验证器在权益证明系统中提议区块,取代了工作量证明中的矿工。 验证器仅与本地信标节点通信,信标节点会指导验证器并将其工作广播到网络中。

共识层的职责

维护共识链(信标链):处理从其他节点接收到的共识区块(信标区块)和证明(attestations)。 与执行层(EL)通信:共识客户端通过本地 RPC 连接(Engine-API)与执行客户端通信。 共识客户端向执行客户端提供指令。 执行客户端将交易捆绑成交易包并传递给共识客户端,以包含在信标区块中。

状态转换

在区块链中,状态转换函数是核心。每个节点维护一个状态,反映其对世界的看法。通过应用区块,节点更新其状态。

信标链的状态转换:

信标链是基于插槽(slot)驱动的,而非区块驱动。 状态更新取决于插槽的进展,而不依赖于区块的存在。 状态转换包括:

每插槽转换:更新插槽状态。 每区块转换:处理区块并更新状态。 每纪元转换:在每个纪元开始时进行状态更新。

安全性与活性

安全性:确保“坏事永远不会发生”,例如防止双花或最终确定冲突的检查点。 活性:确保“好事最终会发生”,即区块链能够持续添加新区块,不会陷入死锁。

以太坊的共识协议在良好的网络条件下,力求同时提供安全性和活性。然而,在网络分区等情况下,以太坊更倾向于优先保证活性,即链条继续增长,即使可能会在安全性上出现问题。

2025.02.13

今天做了什么

  1. 看完了客户端结构部分

弱主观性

在信息理论和区块链的背景下,“客观性”和“主观性”有着不同的定义:

  • 客观性:如果一条信息的正确性可以完全验证,则它是客观的。
  • 主观性:如果一条信息的正确性无法完全验证(需要一定程度的信任),则它是主观的。 在以太坊合并(The Merge)之前,客户端可以通过从创世区块开始验证每个区块的历史,从而客观地验证整个区块链的正确性。然而,合并后,以太坊引入了新的共识机制(权益证明,Proof-of-Stake),并将共识层(CL)与执行层(EL)逻辑上分离。这种变化使得基于创世区块的同步变得“不安全”,从而引入了“弱主观性”。

弱主观性中的同步

在弱主观性中,同步机制与传统的全节点同步有以下几个主要区别:

同步方向的改变

在信标链(Beacon Chain)中,同步方向被反转。节点从弱主观性检查点开始回填区块,直到创世区块,而不是从创世区块向前同步。

信任锚点的主观性

由于链的历史在某些条件下可能被更改,同步目标(即弱主观性检查点)无法被完全客观验证。因此,同步目标需要通过可信渠道(如离线方式)共享,而不是通过以太坊的点对点网络。

时间因素的影响

如果节点长时间未同步,可能会受到攻击(例如,足够多的验证者退出并重新投票以创建分叉历史)。这种时间窗口被称为“弱主观性周期”。如果同步时间过长,目标检查点可能会变得过时。

弱主观性同步的步骤

  • 从可信渠道获取弱主观性检查点。
  • 从检查点回填区块至创世区块。
  • 更新执行链的目标头部。
  • 乐观地跟随链的最新头部,同时持续更新目标头部。
  • 执行层完成同步后,验证共识层的插槽,节点即可被视为完全同步。

一些想法

这两天被一个专利折磨坏了hhh,打卡过了这些内容,但是扩展的是一点没看,总算搞的差不多了,明天把错过的两次会议回看下~

2025.02.14

今天做了什么

  1. 还是先把这部分看完再去看下会议内容吧
  2. 今天看了路线图相关内容
  3. 以及 Scaling 的相关内容

以太坊协议路线图

以太坊的发展哲学

以太坊的开发是开放的,注重协议的演进,同时在风险和收益之间寻求平衡。社区通过共识和讨论推动协议的改进。

无限花园理念

以太坊被比喻为“无限花园”,需要不断升级以提升安全性、可扩展性和可持续性,直到达到“稳定状态”。

核心开发

以太坊的核心研发是完全公开的,任何人都可以学习和参与,社区在协议的方向上有重要的发言权。

关键升级

  1. The Merge
  2. The Surge
  3. The Scourge
  4. The Verge
  5. The Purge
  6. The Splurge

Scaling

什么是扩展性

  1. 扩展性是指系统在工作负载增加时仍能良好运行的能力。
  2. 对区块链来说,扩展性是指在不增加对网络节点运营者需求的情况下,处理更多交易的能力。

扩展性的限制

  1. 区块链三难问题(Blockchain Trilemma):在安全性、去中心化和扩展性之间难以同时兼顾。
  2. 区块大小和延迟:区块大小和延迟直接影响交易吞吐量(TPS),但过大的区块可能导致中心化。
  3. 数据可用性:节点需要存储大量数据,可能导致高存储需求和网络拥堵,影响去中心化。
  4. 交易费用:有限的TPS会导致交易费用增加,影响网络的可用性。

以太坊的扩展性解决方案

  1. Layer 1 扩展:通过改进底层协议(如分片、PoS共识机制)来提高TPS,但需要平衡去中心化和安全性。
  2. Layer 2 扩展:在Layer 1之上构建解决方案(如状态通道、Plasma链、Rollups),通过链下处理交易来提高TPS,同时依赖Layer 1的安全性。Rollups 是以太坊社区的主要扩展方案,将多个Layer 2交易打包成一个Layer 1交易,减少计算负担,同时保持安全性。

2025.02.15

今天做了什么

  1. 今天看了 MEV 和 PBS 相关的内容

MEV

什么是 MEV

  1. Maximal Extractable Value (MEV),即最大可提取价值,指的是通过在区块生产中有策略地排序、包含或排除交易,超出标准区块奖励和 Gas 费用所能提取的最大价值。
  2. 在以太坊中,MEV 尤其在 DeFi 应用中受到关注,常见策略包括 抢跑(front-running)、夹心攻击(sandwiching) 和 尾随(back-running)。

MEV 的影响

MEV 的提取可能导致:大型矿池或验证者的不公平优势;对 DeFi 用户的负面影响,如滑点增加或交易被审查。

MEV 的演变

  1. 在以太坊从 工作量证明(PoW) 转向 权益证明(PoS) 后,MEV 从“矿工可提取价值”演变为“最大可提取价值”。
  2. 早期 MEV 主要通过 优先 Gas 拍卖(PGA) 实现,后来 Flashbots 推出了工具以改进 MEV 的透明性和公平性。
  3. MEV-Boost 是一种实现 PBS 的工具,由 Flashbots 和以太坊基金会开发。

PBS

什么是 PBS

  1. 在以太坊当前系统中,验证者同时负责创建和广播区块。
  2. PBS 将这些任务分离:
    • 区块构建者:负责创建区块并将其提供给提议者。
    • 区块提议者:选择最有利可图的区块并将其广播到网络中。
  3. 提议者无法看到区块的具体内容,只选择最优的区块。

PBS 的重要性

  • 去中心化:降低成为验证者的计算门槛,吸引更多多样化的参与者。
  • 模块化:通过分离区块构建的不同部分,提升网络能力并减少外部依赖。

PBS 的角色分工

  • 构建者:
    • 收集、验证并组装交易。
    • 优化区块空间和 Gas 使用。
    • 提供区块给提议者。
  • 提议者:
    • 从构建者提供的区块中选择最优区块。
    • 添加元数据(如区块头)并验证区块。

当前状态:

  • PBS 尚未在以太坊主网中实现,目前通过 MEV-Boost 等外部解决方案实现。
  • 存在的挑战:
    • 中心化风险:少数中继器(relays)和构建者主导,可能导致审查和信任问题。
    • 安全性问题:依赖第三方可能引入漏洞。

研究与提案

  • ePBS(内置 PBS):将 PBS 嵌入以太坊共识层,减少对第三方的依赖,提升安全性和去中心化。
  • PEPC(协议强制提议者承诺):提议者可以注册承诺,确保外部构建者满足特定要求。
  • EIP-7547(包含列表):提议者可以指定必须包含的交易列表,增强抗审查能力

挑战:

  • 中继器问题:中继器的中心化可能导致审查和信任问题。
  • 安全性:更多参与实体增加了潜在攻击向量。
  • 审查风险:构建者的集中化可能威胁以太坊的抗审查能力。

2025.2.18

今天做了什么

  1. 今天看了 eODS 相关的内容

定义与背景

  • eODS 是一种在以太坊中讨论的设计,提议在协议层面分离验证者的角色。
  • 它属于以太坊 "The Scourge" 路线图中的质押经济研究方向,与 ePBS(提议者-构建者分离)和执行票据(Execution Tickets)相关联。
  • 目标是解决当前质押生态系统中的效率问题和代理问题(Principal-Agent Problem)。

两类质押模型

  • 重节点服务(Heavy Services):高复杂度节点,参与每个时隙的验证,承担高风险(可被削减),但获得高回报。
  • 轻节点服务(Light Services):低复杂度节点,偶尔参与验证,风险低甚至无风险,回报较低。

委托者角色

  • 委托者(Delegators)在 eODS 模型中可以:
    • 选择运营者(Operators),基于费用或可靠性等标准。
    • 提供非削减性但关键的服务,例如输入审查抵抗工具(如包含列表)或链头签名。
  • 委托者的服务可通过重新分配的奖励进行补偿。

多维分离

  • 1D-eODS:简单的运营者-委托者分离,委托者仍可能面临削减风险。
  • 2D-eODS(彩虹质押):引入重服务和轻服务的双维度分离,进一步优化市场结构。
    • 轻服务:非削减性,适合低门槛参与者。
    • 重服务:高风险高回报,提供经济安全性。

意义

  • eODS 为独立质押者(Solo Stakers)提供了更多机会:
    • 增强网络弹性:在大运营者离线时维持链的进展。
    • 提供偏好熵:通过去中心化的节点服务提高协议的抗审查能力。
  • 减少对社会层面(如道德)的依赖,增强协议的抗中心化能力。
  • 改善委托者的选择权,提升质押池之间的竞争。
  • 减少 BLS 签名数量,支持单时隙最终性(SSF)。