Skip to content

Latest commit

 

History

History
1066 lines (737 loc) · 69.2 KB

File metadata and controls

1066 lines (737 loc) · 69.2 KB
timezone
Asia/Shanghai

ghx1104

  1. 我是一名智能合约开发者,想要学习协议层的知识
  2. 你认为你会完成本次残酷学习吗?
    • 当然可以

Notes

2025.02.06

week0

  • 介绍EPS(Ethereum Protocol Study),讲基础概念比较多,本次学习重在了解概念、底层原理。
  • 需要提前了解一些概念:哈希、公钥密码学、默克尔树、P2P、分布式系统等等

week1

  • 以太坊文化:FOSS (Free and Open Source Software)

  • 以太坊的早期历史与技术决策灵感:以太坊(Ethereum)最早的构思可以追溯到 2013 年,由 Vitalik Buterin(V 神) 提出。他最初的想法是构建一个 比比特币更通用的区块链平台,不仅仅用于交易,而是能够运行智能合约(Turing-complete contracts)。

    1. 以太坊的“前历史”(The Actual Prehistory of the Protocol)

    在以太坊正式启动之前,Vitalik Buterin 发表了一系列博客文章,记录了他的思考过程。这些文章涵盖了: • 比特币的局限性:比特币仅支持简单的交易逻辑,无法灵活执行复杂合约。 • 智能合约的雏形:Vitalik 受到 Colored Coins、Mastercoin 等早期比特币扩展方案的启发,思考如何在区块链上执行复杂逻辑。 • 图灵完备性:比特币的脚本语言不是图灵完备的(有限制),Vitalik 提出构建一个图灵完备的智能合约平台,即 EVM(以太坊虚拟机)。

    1. 关键技术决策的灵感来源(Early Ideas and Inspiration for Technical Decisions)

    Vitalik 的博客详细记录了以太坊的设计选择,主要包括以下几个方面:

    ✅ 账户模型 vs. UTXO • 比特币使用 UTXO 模型(每笔交易是多个输入和输出的组合),但这种方式难以支持复杂合约。 • 以太坊选择了 账户模型,类似于银行账户,用户余额可以动态更新,这种方式更适合智能合约。

    ✅ 智能合约与 EVM(Ethereum Virtual Machine) • 受 Nick Szabo 的 智能合约 概念影响,Vitalik 设计了一个可以执行合约代码的 EVM(以太坊虚拟机),使智能合约可以自动执行。

    ✅ Gas 机制 • 参考比特币的交易费,Vitalik 设计了 Gas 机制,确保计算资源不会被滥用,同时防止“无限循环”代码导致网络瘫痪。

    ✅ PoW 到 PoS 的演进 • 早期以太坊采用 PoW(工作量证明),但 Vitalik 很早就提出 PoS(权益证明) 作为未来发展方向,以减少能耗并提高安全性。

    1. 以太坊的正式提出 • 2013 年 12 月,Vitalik 发布以太坊白皮书,详细描述了 一个去中心化、通用的智能合约平台。 • 2014 年,以太坊团队开始开发,并在 2015 年 7 月 正式发布 Ethereum 1.0(Frontier)。
  • 以太坊的设计、实施、发展:以太坊最初在其白皮书(Whitepaper)中提出构想,并从比特币及其背景(如上所述)汲取灵感,打造了一个通用的基于区块链的计算平台。其技术设计最初在**黄皮书(Yellowpaper)**中进行了正式规范,并随着时间的推移不断发展演变。协议的变更由社区通过 EIP(Ethereum Improvement Proposals,以太坊改进提案) 进行跟踪和讨论。目前,以太坊的技术规范在 Python 语言中实现,包括:Execution specs(执行规范):定义 EVM(以太坊虚拟机)如何执行智能合约和交易。Consensus specs(共识规范):定义以太坊的共识机制,如 PoS(权益证明)如何在网络中达成共识。以太坊协议会随着时间的推移而变化,每次网络升级都会带来新的改进。尽管不断变化,但建筑的演变反映了某些基本原则。这些可以总结如下:简单、通用、模块化、非歧视、敏捷。当前的网络架构是网络升级历史多次迭代的结果。在实施中。执行层(EL)或共识层(CL)的实现被称为客户端。运行此客户端并连接到网络的计算机被称为节点。因此,节点是一对积极参与网络的EL和CL客户端。由于以太坊是正式指定的,它可以在任何语言中以不同的方式实现。这导致多年来出现了各种实施,有些已经弃用,有些刚刚开发中。这种策略被称为客户多样性。以太坊不依赖于单一的“官方”实现,但用户可以选择任何客户端,并确保它能完成工作。如果在单个客户端实现中出现问题,则不会影响网络的其余部分。

  • 以太坊开发测试:随着定期更改和多个客户端实现,测试是网络安全的基础。在任何网络升级之前,都有各种测试工具和场景被大量使用。测试是根据规格生成的,并创建各种场景。有些正在单独测试客户端,有些则使用所有客户端对模拟测试网。开发周期的不同部分和客户端部分有不同的测试工具。这包括状态转换测试、模糊、阴影分叉、RPC测试、客户端单元测试和CI/CD等。

  • 以太坊协调开发:

    1. 以太坊的发展与传统的企业项目大不相同。首先,它都是公开的,任何人都可以审查或贡献它。其次,有许多不同的团队在不同的部分工作。总而言之,来自不同组织的大约20个不同团队在以太坊上工作。与专有技术不同,以太坊开发人员不是在竞争,而是在一起工作。随着复杂性不断增加,基本上没有人会成为整个以太坊的专家。相反,人们在特定领域发展专业知识,并与他人合作。这要归功于以太坊的模块化,并允许开发人员专注于他们个人喜欢的挑战。
    2. 新功能或更改的传统开发周期是Idea - Research - Development - Testing - Adoption。
    3. 然而,在这个周期的任何时刻都可能出现问题,导致从头开始再次迭代。为了能够交付网络升级并就当前的发展重点达成一致,需要进行一定的协调。所有这些都是公开的,任何有兴趣了解核心协议的人都可以关注。协调主要通过PM回购中安排的定期电话进行。有不同类型的开发人员会议,其中最大的会议是All Core Devs(ACD)。这是所有相关团队的代表来讨论共识或执行层的当前发展的地方。社区的想法和拟议的更改是使用EIP流程进行协调的。此外,还有一些讨论论坛。讨论核心升级的最大一个是 https://ethresear.ch 。另一个与EIP流程相关并用于讨论具体提案的论坛是以太坊魔术师。在R&D Discord服务器(在EPFsg discord中ping我们以获取邀请)和客户团队组中也发生了许多重要的讨论。还有一些异地或研讨会,许多核心开发人员会面,面对面地加快流程。

2025.02.07

week2

  • 以太坊的节点:在以太坊(Ethereum)网络中,节点(Nodes) 和 客户端(Clients) 是关键组成部分,它们共同构建了去中心化网络的基础。以太坊网络由分布式节点(Nodes) 组成,这些节点存储区块链数据,并运行以太坊协议。节点可以执行不同的角色,主要分为以下几类:

    1. 全节点(Full Node) • 存储整个区块链历史,并验证所有交易和区块。 • 独立执行智能合约,确保区块链的完整性。 • 适用于开发者、研究者和希望完全去信任化的用户。 • 运行成本较高,需要大量存储和计算资源。

    2. 轻节点(Light Node) • 仅下载区块头(Block Header),不存储完整交易数据。 • 依赖全节点进行数据查询和交易验证。 • 适用于资源受限的设备(如移动设备、DApp 用户)。

    3. 归档节点(Archive Node) • 存储所有历史状态(包括所有账户和智能合约的历史状态)。 • 适用于区块链分析、数据索引服务等。 • 需要极大的存储空间,通常由研究机构或区块链服务商运营。

    4. 验证者节点(Validator Node) • 以太坊 2.0(PoS)机制下的特殊节点,负责提议和验证区块。 • 需要质押 32 ETH 才能参与共识过程。 • 通过验证区块赚取质押奖励(Staking Rewards)。

  • 以太坊客户端(Ethereum Clients):以太坊客户端(Clients) 是实现以太坊协议的软件,允许用户运行节点、同步区块链、部署智能合约和执行交易。不同的客户端可以互操作,因为它们都遵循以太坊协议。 客户端 开发团队 语言 类型 适用场景 Geth Ethereum Foundation Go 全节点、轻节点 最流行,适合开发、挖矿 Nethermind Nethermind C# 全节点 高性能,适合机构 Besu Hyperledger Java 全节点、企业级 适合企业和权限链 Erigon 独立团队 Go 归档节点 高效存储,适合数据分析 Lighthouse Sigma Prime Rust PoS 验证者 以太坊 2.0 验证者 Prysm Prysmatic Labs Go PoS 验证者 以太坊 2.0 验证者 Teku ConsenSys Java PoS 验证者 企业级 PoS 客户端

  • 如何选择合适的节点和客户端? • 开发者:推荐 Geth 或 Nethermind,适用于 DApp 开发和测试。 • 普通用户:使用轻节点(如 Geth 的 light mode)或依赖公共 RPC(如 Infura)。 • 企业或数据分析:Erigon 或 Besu,适合高性能存储和数据查询。 • 质押(Staking):Lighthouse、Prysm、Teku,适用于以太坊 2.0 质押者。

  • Ethereum: Mechanics(以太坊的工作机制):以太坊(Ethereum)是一个去中心化的智能合约平台,它允许开发者构建和部署去中心化应用(DApps)。相比于比特币仅用于交易记录,以太坊通过图灵完备的虚拟机(EVM) 实现了更强大的功能。本文将介绍以太坊的核心工作机制,包括区块链结构、共识机制、账户系统、Gas 费用、智能合约执行等。

    1. 以太坊的基本结构:以太坊与比特币类似,采用区块链 作为底层存储结构,但它支持更复杂的计算模型。核心组件包括: • 区块(Block):交易的集合,包含区块头(Block Header)和区块体(Block Body)。 • 交易(Transaction):以太坊的状态转换,由账户发起,可能包含 ETH 转账或智能合约调用。 • 状态(State):以太坊采用 账户模型 记录状态,而非比特币的 UTXO 模型。 • 以太坊虚拟机(EVM):执行智能合约的核心组件。

    2. 账户模型:以太坊采用账户(Account)模型,而非比特币的 UTXO 模型。账户分为两种:

      1. 外部拥有账户(EOA, Externally Owned Account): • 由用户控制,使用私钥签名交易。 • 主要用于发送 ETH 和调用智能合约。
      2. 合约账户(Contract Account): • 由智能合约代码控制。 • 不能主动发起交易,只能被 EOA 调用。

      每个账户包含以下数据: • 地址(Address):公钥哈希生成的 20 字节地址。 • 余额(Balance):账户持有的 ETH 数量。 • nonce:防止重放攻击的计数器。 • 存储(Storage):合约账户专有,存储智能合约的数据。 • 代码(Code):智能合约账户的代码,只能执行,不能修改。

    3. 交易(Transactions):交易是以太坊状态转换的核心,每笔交易都包含: • 发送方(From):交易发起账户(EOA)。 • 接收方(To):可以是 EOA 或智能合约。 • 值(Value):转移的 ETH 数量。 • Gas 限制(Gas Limit):愿意支付的最大计算成本。 • Gas 价格(Gas Price):每单位 Gas 付出的 ETH 数量。 • 数据(Data):存储智能合约调用的输入参数。 • nonce:防止交易重放攻击。

      如果 To 为空,则表示创建新智能合约。

    4. Gas 机制:以太坊执行交易或合约时,需要支付Gas 费用,防止计算滥用: • Gas 计算方式:  • Base Fee:协议设定的基础费用,随着区块拥堵程度动态调整。 • Tip(Priority Fee):矿工/验证者的小费,提高交易优先级。 • Gas Limit:交易愿意支付的最大 Gas 量,防止意外消耗过多资源。

    5. 智能合约执行:智能合约是存储在区块链上的程序,由以太坊虚拟机(EVM)执行:

      1. 部署:通过交易存储合约代码到区块链。
      2. 调用:交易或合约内部调用触发智能合约函数。
      3. 执行: • EVM 解析字节码(Bytecode)。 • 根据 Opcode 逐步执行。 • 状态变更存储在合约账户中。 智能合约通常使用 Solidity 语言编写,编译为 EVM 兼容的字节码。
    6. 以太坊的共识机制:以太坊的共识机制从 PoW(工作量证明) 迁移到了 PoS(权益证明): • PoW(工作量证明,已废弃) • 通过计算哈希找到符合难度目标的区块。 • 依赖矿工(Miners)竞争解决哈希谜题,消耗大量电力。 • PoS(权益证明,以太坊 2.0) • 通过 验证者(Validators) 质押 32 ETH 参与共识。 • 采用 Casper FFG + LMD GHOST 作为最终确定性机制。 • 更节能,降低中心化风险,提高安全性。

    7. 以太坊的分片(Sharding,未来升级):以太坊 2.0 计划引入分片(Sharding) 以提升可扩展性: • 将区块链拆分为多个分片链(Shard Chains)。 • 每个分片链独立处理交易,提高吞吐量。 • 通过 Beacon Chain 进行全局协调。

    8. 以太坊状态存储:以太坊使用 Merkle Patricia Trie(MPT) 结构存储状态: • 账户状态树(State Trie):存储所有账户余额、nonce、存储等。 • 交易树(Transaction Trie):存储区块内的交易信息。 • 收据树(Receipt Trie):存储交易执行的收据信息。 MPT 允许高效验证数据完整性,使得轻节点可以验证状态。

2025.02.08

week3

  • 以太坊的共识层:权益证明与拜占庭容错
  1. 引言:区块链与数字稀缺性

区块链的核心价值之一是实现数字稀缺性,即确保数据不可篡改、资产不可双花。但要维持这种特性,就必须有强大的安全机制来保证系统的完整性,防止恶意节点破坏共识。

  1. 分布式网络中的拜占庭容错(BFT)

在分布式系统中,部分节点可能会作恶或发生故障,这被称为拜占庭问题(Byzantine Generals Problem)。为了解决这个问题,区块链网络需要采用**拜占庭容错(BFT)**机制,即使在一定比例的恶意节点存在的情况下,仍然能达成共识,维持网络正常运行。

  1. 比特币的工作量证明(PoW):第一个 BFT 解决方案

比特币最早通过工作量证明(PoW) 解决了拜占庭容错问题: • 矿工需要进行计算(哈希碰撞) 来竞争区块打包权。 • 最长链原则 决定链的最终状态,使得攻击成本极高。 • 其安全性依赖于外部资源(电力和算力),确保系统防篡改。

然而,PoW 计算消耗大量能源,并且交易确认速度较慢,因此以太坊引入了权益证明(PoS) 作为替代方案。

  1. 以太坊向权益证明(PoS)的转变

以太坊放弃 PoW,采用权益证明(PoS) 以提升可扩展性、安全性和能效。PoS 相比 PoW 的核心区别在于: • PoS 不依赖外部能源消耗(PoW 依赖算力); • PoS 通过系统内部的质押机制(stake)确保安全性; • PoS 参与者是验证者(Validators),而不是矿工。

在以太坊 PoS 机制下: • 验证者需质押 32 ETH 以参与区块提议和验证。 • 随机选取验证者 负责提议新区块,并由其他验证者投票确认。 • 网络使用BFT 机制 确定区块最终状态,防止恶意行为。

  1. BFT 多数派决定链的状态

以太坊的 PoS 依赖诚实验证者的多数派 来决定链的最终状态。 • 交易被打包进区块后,验证者会投票 确认该区块的有效性。 • 只要大多数验证者诚实,链的状态就能安全达成共识。 • 达到一定投票比例的区块会被最终确定(Finalized),不可逆转。

  1. 拜占庭故障与惩罚机制(Slashing)

PoS 机制允许协议主动监测拜占庭故障,即检测恶意行为并进行惩罚(Slashing)。以下行为会导致验证者被惩罚: • 双重签名(Double Signing):同一高度签署多个区块。 • 包围攻击(Surrounding Votes):试图重组已经确认的区块历史。 • 不作为(Inactivity):未能按时投票影响共识。

惩罚方式: • 轻微违规会被罚没部分质押 ETH。 • 严重违规会被强制退出(Stake 被大幅削减)。 • 这些惩罚机制提高了作恶成本,使攻击变得经济上不可行。

  1. 分叉选择规则(Fork Choice Rule):LMD-GHOST

以太坊 PoS 采用 LMD-GHOST(Latest Message-Driven Greedy Heaviest Observed Subtree) 作为分叉选择规则: • 每个验证者的最新投票决定链的权重。 • 链的权重越高,越有可能被选择为主链。 • 这确保了交易能快速确认,同时防止 PoW 中的孤块问题。

  1. 通过 Casper 机制确保活性(Liveness)

Casper 是以太坊的最终确定性机制,确保网络不会因攻击或故障而停滞: • 采用 Casper FFG(Friendly Finality Gadget) 进行 两轮投票,最终确定区块。 • 一旦一个区块被 Casper 机制最终确定,它就无法回滚。 • 只有 超过 1/3 质押的 ETH 被罚没,才能逆转最终状态。 • 这种机制保证了区块链的连续性,即使在部分节点离线的情况下,链也能继续运行。

  1. PoS 提供更强的加密经济安全性

相较于 PoW,以太坊 PoS 在安全性方面更具优势: • 攻击成本极高: • PoW 需要超过 51% 的算力 进行攻击。 • PoS 需要控制 2/3 以上的质押 ETH,否则攻击会被惩罚,损失巨大。 • 经济激励更合理: • 诚实验证者获得 Staking Rewards(质押奖励)。 • 恶意行为导致 ETH 直接损失,经济上不可行。 • 安全性与 ETH 价值正相关: • 质押 ETH 越多,网络越安全。 • 反过来,安全的网络也能维持 ETH 价值。

  1. 结论:以太坊 PoS 共识的优势

以太坊的 PoS 共识机制结合了拜占庭容错(BFT)、质押机制、LMD-GHOST 及 Casper FFG,提供了: ✅ 更高的安全性——恶意行为会被检测并惩罚,攻击成本极高。 ✅ 更高的能效——不依赖矿工算力,节省能源。 ✅ 更快的交易确认——LMD-GHOST 确保交易快速达成共识。 ✅ 未来扩展性——PoS 为分片(Sharding) 等扩展方案铺平道路。

以太坊 PoS 共识层的演进,使其成为一个更可持续、去中心化、安全的区块链,为 Web3 生态提供稳固的基础。🚀

2025.02.09

week4

  • 深入探讨以太坊的测试工具与安全实践:以太坊是一个全球性、去中心化的智能合约平台,确保其安全性和稳定性至关重要。因此,以太坊开发者社区使用了多种测试工具和实践来维护网络安全,防止漏洞和攻击。
  1. 以太坊测试的核心目标

为了保证网络的安全性,以太坊的测试体系主要关注以下几个方面: ✅ 共识机制:确保 PoS(权益证明)和 LMD-GHOST、Casper FFG 等协议正常运行。 ✅ 智能合约安全:防止漏洞、可重入攻击、溢出问题等安全隐患。 ✅ 客户端兼容性:不同的以太坊客户端(Geth、Nethermind、Besu 等)必须行为一致。 ✅ 网络稳定性:确保在高负载或攻击情况下,网络仍能保持正常运作。 ✅ 交易与 EVM(以太坊虚拟机)执行:确保交易执行符合协议规范,不会出现异常行为。

  1. 以太坊的主要测试工具

以太坊的开发者社区使用了多种测试工具,涵盖单元测试、集成测试、模糊测试、仿真测试和经济攻击模拟等方面。

2.1 以太坊客户端测试工具

以太坊的网络由多个独立开发的客户端组成,例如 Geth、Nethermind、Erigon、Besu。为了确保所有客户端的共识一致性,必须进行严格的测试。

(1) Ethereum Execution Spec Tests (EEST) • 执行层共识测试,确保不同客户端在相同输入下执行相同结果。 • 运行在 Geth、Besu、Nethermind、Erigon 等客户端上。 • 包括 状态测试、交易测试、区块测试 等。

(2) Hive • 专门为以太坊客户端设计的测试框架。 • 允许对不同的以太坊客户端进行黑盒测试,检查它们的行为是否一致。 • 通过模拟真实网络条件来发现潜在的共识分叉问题。

2.2 智能合约测试工具

以太坊的智能合约一旦部署,代码就无法更改,因此在发布前必须彻底测试,以防止安全漏洞。

(1) Foundry • 现代化的 Solidity 测试框架,比 Hardhat 和 Truffle 更高效。 • 具备模糊测试(Fuzz Testing)、单元测试、模拟攻击等功能。 • 提供高效的 EVM 级别调试,可快速定位错误。

(2) Hardhat • 以太坊开发最流行的测试和开发环境。 • 允许运行本地 EVM 节点,进行单元测试、集成测试和调试。 • 插件生态丰富,可以结合 Waffle、Ethers.js、Chai 进行测试。

(3) Echidna • 基于模糊测试(Fuzzing)的智能合约安全测试工具。 • 自动生成随机输入,测试智能合约在极端情况下的行为。 • 可以发现整数溢出、权限漏洞、边界错误等问题。

(4) Slither • 静态分析工具,用于检测 Solidity 代码中的安全漏洞。 • 可发现可重入攻击、变量未初始化、整数溢出、访问控制问题等漏洞。 • 适用于审计前的快速检查,提高代码质量。

(5) MythX • 基于云的智能合约安全扫描工具。 • 使用**符号执行(Symbolic Execution)、污点分析(Taint Analysis)、形式化验证(Formal Verification)**来检查漏洞。

2.3 网络测试与安全攻击模拟

为了确保以太坊网络在恶意攻击下仍然安全,开发者使用多种仿真测试工具。

(1) Goerli、Sepolia(测试网) • Goerli 和 Sepolia 是以太坊的主要测试网,允许开发者在正式部署前测试智能合约和 DApp。 • Sepolia 使用 PoS 共识机制,与主网类似。 • Goerli 适用于多客户端测试,以确保不同客户端行为一致。

(2) Ethereum Attacker Playbook • 攻击者模拟框架,用于测试以太坊可能遭受的攻击类型。 • 例如 双花攻击、区块重组攻击、MEV 夹层攻击、女巫攻击(Sybil Attack)。

(3) Beacon Fuzz • 专为以太坊 PoS 设计的模糊测试工具,用于测试 Beacon Chain 的共识协议安全性。 • 可发现 PoS 机制下的潜在漏洞,如信息泄露、错误状态转换、无效签名等。

(4) Fuzzing with AFL and libFuzzer • 以太坊客户端和 EVM 运行时会使用模糊测试(Fuzzing)工具,如 American Fuzzy Lop (AFL) 和 libFuzzer,用于发现协议层面的漏洞。 • 这些工具可以自动生成随机输入,测试客户端是否会崩溃或产生错误结果。

  1. 以太坊的最佳安全实践

除了使用测试工具,以太坊生态还推行一系列安全实践,确保主网安全。

3.1 开发安全审计 • 智能合约在部署前应接受第三方安全公司的审计,例如 Trail of Bits、OpenZeppelin、Quantstamp。 • 采用 形式化验证(Formal Verification) 确保智能合约行为符合预期。

3.2 赏金计划(Bug Bounty) • 以太坊基金会提供漏洞赏金计划,鼓励白帽黑客发现并报告安全漏洞。 • 例如 Immunefi、Hats Finance 提供高额奖励以激励安全研究者。

3.3 运行测试网与模拟攻击 • 开发者在主网部署前,必须在 Sepolia 或 Goerli 进行测试。 • 使用 以太坊模糊测试工具,模拟极端交易负载和恶意攻击。

  1. 结论

以太坊的安全性建立在严格的测试工具、模拟攻击、代码审计和社区合作之上。开发者和研究者需要: ✅ 利用 Hive、EEST 测试客户端共识一致性。 ✅ 使用 Foundry、Slither、Echidna 进行智能合约安全测试。 ✅ 采用 Beacon Fuzz 和 AFL 进行协议级别模糊测试。 ✅ 通过 Bug Bounty 计划吸引白帽黑客发现漏洞。

这些工具和实践共同保障了以太坊网络的稳定性、安全性和抗攻击能力,让它成为全球最具安全性的智能合约平台之一。🚀

2025.02.10

week5

  • 以太坊协议的多个升级阶段,包括 Merge、Surge、Scourge、Verge、Purge 和 Splurge,每个阶段都涉及特定的技术改进。下面是对这些部分的介绍:

Merge

Merge 是以太坊从工作量证明(PoW)过渡到权益证明(PoS)的过程,主要内容包括: • Altair / light client protocol:Altair 是以太坊信标链的第一次升级,引入轻客户端支持,使得资源受限的设备也可以验证链上的信息。 • Merge / Withdrawals:Merge 发生后,权益证明机制全面取代工作量证明,而 “Withdrawals” 指的是启用质押 ETH 提取的机制。

Single Slot Finality(SSF)

SSF 旨在将共识的最终确定时间缩短到单个 slot(当前 PoS 机制需要多个 epoch 确定最终状态)。这样可以减少链的回滚可能性,提高安全性和用户体验。

Secret Leader Election

当前 PoS 机制中,验证者的提议人是提前可见的,可能会导致攻击。Secret Leader Election 通过密码学技术隐藏提议人身份,直到出块时才揭晓,以增强安全性。

Surge

Surge 阶段的核心目标是提高以太坊的可扩展性,主要涉及 rollups 和数据可用性改进: • zk/OP Rollups:零知识(zk)和乐观(OP)Rollups 通过将计算移到链下并只在链上提交压缩后的证明,提高交易吞吐量。 • KZG Ceremony:用于构建 EIP-4844(proto-danksharding)的 KZG 承诺方案,可高效地证明数据的完整性。 • EIP-4844:引入 “blob-carrying transactions”,降低 Rollups 数据存储成本,是 Danksharding 的第一步。 • Data Availability Sampling(DAS):DAS 允许节点只存储数据的一部分,通过采样确保数据的可用性,而不需要所有节点存储完整数据。 • Cross-rollup interop:增强不同 Rollup 之间的互操作性,使资产可以无缝跨 Rollup 传输。

Scourge

Scourge 主要解决 MEV(最大可提取价值)问题,以减少中心化风险: • (Very) Brief Overview of MEV:MEV 指的是矿工或验证者通过重新排序、插单或删除交易获取额外收益的问题。 • ePBS / Inclusion Lists / MEV Burn: • ePBS(enshrined Proposer-Builder Separation):正式将提议者(Proposer)和区块构建者(Builder)分开,减少 MEV 负面影响。 • Inclusion Lists:让提议者提供包含哪些交易的列表,防止构建者进行不公平的交易操控。 • MEV Burn:将一部分 MEV 收益销毁,减少对 MEV 过度追逐的激励。 • Max EB, Stake Capping:限制区块构建者的利润和权益验证者的 stake 规模,降低中心化风险。

Verge

Verge 目标是优化状态存储,提高同步效率: • Verkle Trees:将当前的 Merkle Patricia Tree 替换为 Verkle Tree,极大地减少节点同步所需的数据量。 • SNARKify Everything:利用零知识证明(ZK-SNARKs)优化以太坊状态存储和计算,包括: • Beacon fast sync:利用 SNARK 让轻节点更快地同步信标链数据。 • Beacon state transition:用 SNARK 证明状态转移,提高安全性和效率。 • Verkle proofs:使用零知识证明优化 Verkle Tree,使验证更高效。

Purge

Purge 旨在减少历史数据存储需求,优化协议复杂度: • EIP-4444:提议删除长期历史数据,使普通节点无需存储完整的以太坊历史,提高存储效率。 • Protocol Simplifications:简化协议设计,减少运行以太坊所需的资源。

Splurge

Splurge 包含一些额外的改进,进一步提升以太坊的功能: • EIP-1559 Endgame:优化 EIP-1559 的燃烧机制,以提高费用市场的稳定性。 • Account Abstraction(AA):允许智能合约账户拥有更强大的功能,例如灵活的支付方式、多重签名等,减少对外部钱包的依赖。 • Deep Cryptography:进一步增强密码学能力,为未来的扩展性提供保障。

2025.02.11

week5

  • 实践:如何在以太坊网络上运行节点
  1. 运行节点简介 运行以太坊节点是参与以太坊网络的基础,分为 执行层(EL) 和 共识层(CL)。要成功运行完整节点,需要同时配置这两层客户端。

  2. 选择客户端和环境 选择合适的客户端对提高节点稳定性至关重要。常见的 EL 客户端有 Geth 和 Erigon,CL 客户端有 Prysm 和 Lighthouse。确保操作系统支持并行运行这两个客户端。

  3. 获取和验证客户端 从官方网站或 GitHub 下载客户端,验证二进制文件的完整性以防篡改。

  4. 客户端配置 配置执行层与共识层客户端,确保它们之间正确通信(通过 RPC)。

  5. 在 Holesky 测试网运行 使用 Holesky 测试网来验证客户端的设置,确保没有问题后再迁移到主网。

  6. 运行自定义 Genesis 通过使用自定义 Genesis 文件创建临时(Ephemeral)以太坊网络,进行实验或测试。

  7. 切换客户端 如需更换客户端(例如从 Prysm 切换到 Lighthouse),只需停止当前客户端并配置新的客户端。

  8. 使用客户端与 RPC 交互 通过 HTTP、WebSocket 或 IPC 接口与节点交互,进行交易查询或钱包管理。

  9. 添加验证者 质押 ETH 成为验证者并加入共识层,配置验证者密钥并启动验证。

  10. 系统监控和服务 使用 systemd 配置客户端自动启动,结合 Prometheus 和 Grafana 进行节点监控。

2025.02.12

week6

  1. Hsiao-Wei Wang on Consensus Specs

Hsiao-Wei Wang 是一位在以太坊共识协议方面具有深厚经验的研究者,主要关注以太坊的共识层(Consensus Layer)。他在演讲中可能会讨论 以太坊共识规范(Consensus Specs),这涉及到如何确保网络参与者在没有中央权威的情况下达成一致,以及如何保持网络的安全性和稳定性。

共识规范主要包括: • 权益证明(PoS):以太坊从工作量证明(PoW)转向 PoS 后,如何确保验证者的选举和网络的持续一致性。 • 信标链(Beacon Chain):用于协调共识层的机制,它通过区块链上的验证者来确保网络状态的同步。 • 区块生成和验证:如何验证交易和生成新区块,并在分布式网络中保持一致。

在此话题中,Hsiao-Wei Wang 可能还会讨论 共识算法的改进、安全性分析 和 网络扩展性 等问题。

  1. Sam Wilson on EELS

Sam Wilson 可能会讨论 EELS(Ethereum Execution Layer Security),这是一个专注于提高以太坊执行层(Execution Layer)安全性的议题。执行层处理以太坊网络中的所有交易、智能合约和计算,因此其安全性至关重要。

EELS 可能涉及的内容包括: • 智能合约的安全性:确保合约执行不被恶意攻击利用。 • 交易处理和验证:确保交易的有效性和可靠性,避免恶意交易影响整个网络。 • 数据存储和状态管理:确保以太坊节点在处理大量数据时,仍能保持高效且安全的操作。 • 攻击防范机制:例如防止重放攻击、闪电贷攻击等。

Sam Wilson 可能会讨论如何加强执行层安全性,以确保以太坊网络能够处理更多的交易负载,同时保护用户和验证者免受潜在的攻击。

2025.02.14

week6

1. Ethereum Scalability

以太坊的可扩展性 是指其在处理大量交易和智能合约时的能力。随着用户和应用的增加,传统的单链架构面临瓶颈,导致网络拥堵和交易费用飙升。提高以太坊的可扩展性是为了支持更多的应用、提高交易吞吐量,并保持低费用。


2. History of Sharding and Path Forward

分片(Sharding) 是一种将区块链网络分成多个独立的分片(Shards)来并行处理交易的技术。以太坊的分片计划可以显著提高网络的处理能力,减少单个节点的负担。

  • 历史:最初,分片概念是在以太坊 2.0 的设计中提出的,目标是将每个分片当作独立的链来执行,处理和存储交易。通过分片,网络的负载可以被平衡,提升总体吞吐量。

  • 未来路径:以太坊正在逐步实现分片,首先通过 Rollups(如 zk-Rollups 和 OP-Rollups)来提高扩展性,然后在未来逐步推出分片技术,使每个分片可以独立处理事务。


3. Data Availability

数据可用性(Data Availability) 是分片和扩展方案中的一个重要问题。它确保链上的数据对所有验证者可用且可访问。分片网络中的节点需要确保他们可以访问到其他分片的数据,以便正确地验证和参与共识。

  • 挑战:如果某个分片的数据不可用,可能导致分片停滞或分裂,影响网络的稳定性和安全性。
  • 解决方案:以太坊通过 数据可用性采样(Data Availability Sampling) 等技术来确保即使只有一部分节点获取数据,其他节点也能通过验证和快速同步来确保数据可用性。

2025.02.15

week7

1. Reth Client

Reth Client 是一个以太坊客户端,专注于性能优化和可扩展性,旨在提供快速且高效的区块链节点服务。它是以太坊的一个轻量级实现,旨在通过减少资源消耗来提高性能,特别适合大规模的应用和测试环境。


2. Design and Architecture

Reth 客户端的设计和架构围绕 高效性可扩展性 展开,采用模块化的架构以便于扩展和定制。其核心包括:

  • 高性能网络层:优化的 P2P 协议,提高节点之间的通信效率。
  • 存储层:高效的数据库设计,减少存储占用,同时提高同步速度。
  • 并发处理:支持并发执行,以应对高负载环境,减少延迟。
  • 轻量级同步:通过更快的同步策略,减小节点启动时的同步时间。

3. Codebase Overview, Examples

Reth 客户端的代码库是开源的,采用了 Go 语言(或其他语言)进行开发,遵循以太坊核心协议。代码库中包含了多个模块:

  • Core:包含以太坊核心协议的实现。
  • Networking:实现高效的网络协议。
  • Consensus:实现共识机制,确保区块链的一致性。
  • RPC:提供节点与外部应用进行交互的接口。

示例:Reth 提供了简单易用的 API 接口,允许开发者快速集成和调用客户端功能,如区块查询、交易发送等。


4. Features and Highlights

Reth 客户端的一些显著特性和亮点包括:

  • 高效性:优化了内存管理和存储,支持更快的节点同步。
  • 模块化设计:灵活配置各个模块,能够根据需求进行定制。
  • 轻量化:占用较少的系统资源,适合资源有限的设备。
  • 高度兼容:与以太坊主网保持兼容,支持主网和测试网的运行。
  • 开发者友好:通过简化的 API 和文档,降低开发者的使用门槛。

2025.02.17

week7

1. The Verge, Motivation and Benefits

The Verge 是以太坊协议的一个重要升级,旨在通过引入 Verkle 树(Verkle Trees)来优化以太坊的性能,尤其是提高数据存储和查询的效率。其动机是为了 减少节点存储压力,提高 网络吞吐量查询速度,以及优化整体系统的 可扩展性

  • 动机:以太坊的状态树(State Tree)目前基于 Merkle Patricia Trie,但随着数据量的增加,存储和验证变得越来越复杂,节点负担加重。Verkle 树的引入是为了克服这些问题。
  • 好处
    • 减少节点存储需求,特别是对于轻客户端(light clients)。
    • 提高状态树的查询速度和验证效率。
    • 降低全节点同步的时间和资源消耗。

2. Verkle Cryptography

Verkle Cryptography 是结合 Verkle TreesSNARKs(Succinct Non-Interactive Arguments of Knowledge) 的一种加密技术。它通过将 Merkle 树Verifiable Key-Value Store 的优势结合,提供了一种高效的方式来存储和验证以太坊状态。

  • Verkle Trees 采用了 KZG(Kate-Zaverucha-Goldberg)承诺方案,结合 加密证明 提高数据结构的压缩性和验证效率。
  • 使用 SNARKs 使得状态树的验证可以以零知识证明的方式进行,减少数据传输量。

3. Data Structures

Verkle 树是一种新的数据结构,它结合了 Merkle 树和 Merkle Trie,并通过加密承诺来提高存储效率。与现有的 Merkle Patricia Trie 相比,Verkle 树具有以下优点:

  • 更高的压缩率:能够将大量的状态数据压缩成更小的大小。
  • 更快的验证:通过 SNARKs,验证过程不需要遍历整个状态树,从而节省了大量的计算和存储资源。
  • 更小的存储需求:支持轻客户端快速访问状态,而不需要存储完整的状态数据。

4. Gas Pricing

Verkle 树引入后,Gas 定价 的机制可能会有所调整。由于 Verkle 树的结构更高效,减少了数据的存储和查询成本,可能会对智能合约和交易的 Gas 费用产生影响。

  • 优化 Gas 消耗:更高效的存储和查询可能会降低在执行合约时的 Gas 成本。
  • 动态定价:随着 Verkle 树的引入,Gas 定价可能会随着网络的负载和查询需求进行调整。

5. Transitioning the State Tree to Verkle

将当前的 Merkle Patricia Trie 状态树过渡到 Verkle 树是一个重要的升级过程。这一过程涉及到:

  • 状态树重构:将现有的以太坊状态数据迁移到新的 Verkle 树结构中。
  • 兼容性保证:确保过渡过程中以太坊网络的稳定性和向后兼容性,避免影响现有的用户和交易。
  • 渐进过渡:可能会采取逐步过渡的策略,确保每个节点都能平滑迁移到新的状态树结构。

6. Current State and Challenges

尽管 Verkle 树带来了许多潜在的好处,但当前的挑战依然存在:

  • 实现复杂性:Verkle 树需要新的加密技术支持,尤其是 SNARKs 和 KZG 承诺,这对开发者和客户端实现提出了新的技术要求。
  • 过渡的复杂性:如何平稳地将现有的以太坊状态从 Merkle Patricia Trie 迁移到 Verkle 树,并确保不会对现有用户造成影响。
  • 存储与计算资源的平衡:虽然 Verkle 树能减少存储需求,但对计算资源(如 SNARK 生成)的要求较高,需要找到合适的平衡点。

7. Questions from Audience

在讨论会中,观众可能会提出关于 Verkle 树实现细节、Gas 定价影响、以及如何平滑过渡等问题。常见的疑问可能包括:

  • Verkle 树如何影响智能合约的执行?
  • 过渡过程中的潜在风险和挑战是什么?
  • SNARKs 如何与 Verkle 树结合应用,是否会影响节点性能?

2025.02.18

week8

1. Teku 及其 REST API

Teku 是 ConsenSys 开发的以太坊共识层(CL)客户端,专注于安全性和可扩展性,主要用于验证者节点管理和权益证明(PoS)机制。其 REST API 遵循以太坊共识 API 规范,提供:

  • 验证者和网络状态查询
  • 历史与实时区块链数据访问
  • 验证者操作提交(如证明、退出)

2. 声明式框架

Teku 采用声明式框架,确保:

  • 代码清晰,易维护
  • 易于扩展和适配新标准
  • API 规范化,如使用 OpenAPI 定义 REST 接口

3. 开发流程:EIP -> 规范 -> 代码

Ethereum 的开发遵循严格流程:

  1. EIP(以太坊改进提案):提出新特性或协议变更
  2. 规范:EIP 通过后,形成详细技术标准
  3. 代码实现:客户端(如 Teku)遵循规范开发并测试

4. EIP-7251(最大有效余额 maxEB)

背景:EIP-7251 提议提高验证者的最大有效余额(超 32 ETH),优化资本效率,减少验证者数量,提高奖励分配。

Teku 适配

  • 调整验证者余额管理逻辑
  • 更新共识层支持更高的质押上限
  • 修改 REST API 以反映新余额规则

2025.02.19

week8


1. Protocol Services and Impact of MEV, Cryptoeconomics

MEV (Miner Extractable Value) 指的是矿工、验证者或区块生产者在区块生成过程中,通过重新排序、插入或删除交易所能获得的额外利润。MEV 对协议的影响主要体现在:

  • 不公平竞争:部分矿工或验证者通过操控交易顺序来获得额外利润,可能导致网络的不公平和不透明。
  • 加剧网络拥堵:由于 MEV 追逐,某些交易可能被优先打包,从而导致其他普通交易的延迟。

Cryptoeconomics 研究的是如何设计经济激励机制以确保区块链网络的安全性和效率。MEV 的存在影响了加密经济学的平衡,需要通过新的机制来规避其负面影响。


2. PBS and Related Proposals

PBS (Proposer-Bidder Separation) 是一种旨在缓解 MEV 问题的提议。其核心思想是 分离区块提议者和出价者

  • 提议者(Proposer):负责生成新区块。
  • 出价者(Bidder):提供额外的 MEV 价值,通过竞标来确定哪些交易能被打包到区块中。

通过这种分离,PBS 可以减少矿工/验证者操控交易顺序的空间,从而使得 MEV 的影响更透明、公开。


3. ePBS Flavors

ePBS (Enhanced Proposer-Bidder Separation) 是 PBS 的增强版。它通过更多的协议设计来优化和改进提议者与出价者的分离。不同的 ePBS 变体可能包括:

  • 顺序改进:通过调整出价流程,确保优先打包那些对于网络来说更有利的交易。
  • 匿名竞标:为了避免竞争者间的协作,出价过程可能会采用匿名方式,进一步减少 MEV 的操控空间。

这些变化主要旨在优化网络效益,同时减少对交易和区块生产的操控。


4. MEV Burn

MEV Burn 是一种解决 MEV 问题的机制,通过销毁一部分 MEV 收益,来减少 MEV 对区块链网络的负面影响。具体做法是:

  • 销毁 MEV:将一部分 MEV 收入销毁,减少矿工对 MEV 的追逐。
  • 提高公平性:通过减少 MEV 的激励,降低验证者和矿工操控区块顺序的动机,从而减少不公平的交易排序。

这种机制希望通过减少 MEV 的长期激励,减少网络的拥堵和不公平竞争。


5. Rainbow Staking

Rainbow Staking 是一种新兴的质押机制,旨在提供更为灵活和多样化的质押选项。它通过引入不同的质押计划和奖励结构,使得用户可以在保证网络安全的同时,享受更高的回报。

  • 多样化奖励:根据不同的质押策略,用户可以获得不同的回报率,提升参与的动力。
  • 灵活性:使质押者能够根据市场变化灵活调整质押策略,从而优化收益。

2025.02.21

week9

1. What do we test and why?

我们测试区块链协议的各个方面,包括共识层、交易处理、智能合约执行、网络协议等。测试是为了确保网络安全、稳定,避免漏洞和提升性能。


2. Importance of Local Testing

本地测试对于开发者至关重要,能在开发早期阶段捕获错误,减少部署到主网时的风险。它有助于验证协议变更和智能合约的功能。


3. How can I prototype a tool or change?

通过使用本地开发环境(如 devnets 或 shadow forks)原型化工具或变更。开发者可以在这些环境中快速测试和迭代新功能。


4. What are Devnets? How do we spin them up?

Devnets 是专门用于开发和测试的区块链网络。通过工具(如 Docker 或 Kubernetes)快速搭建 devnet,模拟实际网络环境进行测试。


5. Shadow Forks

Shadow Forks 是一个临时的网络分支,用于模拟主网上的变更和测试新的协议或功能。它们有助于验证新代码在真实网络中的表现。


6. Handy DevOps Tools

开发者使用以下 DevOps 工具来提升开发效率:

  • Kurtosis:提供可靠的测试环境。
  • Template-devnets:提供模板化的开发网络配置。
  • Assertoor:用于自动化的测试和验证。
  • Forky:快速搭建区块链分叉环境。
  • Tracoor:用于追踪和调试区块链事件。
  • Dora:简化区块链开发的框架。
  • Goomy-blob:优化存储和数据传输。
  • Xatu:高效的开发工具和框架。

7. Run your own local devnet and shadowfork!

使用上述工具,开发者可以在本地运行自己的 devnet 和 shadowfork,从而在本地环境中快速验证新功能和协议变更。

2025.02.22

1. Purge

  • 定义:以太坊升级路线中的一个阶段(继Merge、Surge等之后),旨在简化协议并减少节点负担
  • 目标:删除冗余的历史数据(如超过一年的区块数据)、废弃旧功能,降低节点存储和运行成本,提升网络去中心化。
  • 关联提案:可能包括EIP-4444(历史数据修剪),通过减少存储需求让更多设备能运行节点。

2. EIP-4444

  • 核心内容:提议节点停止永久存储超过一年的历史数据,转而依赖去中心化存储(如IPFS、BitTorrent)或第三方索引服务。
  • 意义:大幅降低节点存储要求(从数TB降至数百GB),促进网络去中心化,同时保持数据可访问性。

3. Protocol Simplifications(协议简化)

  • 背景:以太坊长期发展积累的技术债务需清理。
  • 措施:移除过时功能(如预编译合约)、合并相似逻辑、优化状态管理(如Verkle树替代Merkle-Patricia树),使协议更轻量、安全、易维护。

4. Splurge

  • 定位:升级路线中的“收尾阶段”,聚焦杂项优化与跨领域改进
  • 可能内容:调整网络参数、优化虚拟机性能(EVM或eWASM)、增强开发者工具,提升整体用户体验。

5. EIP-1559 Endgame

  • EIP-1559回顾:2021年实施,引入基础费用(Base Fee)和燃烧机制,改善Gas费预测并推动ETH通缩。
  • Endgame目标:长期优化费用机制,可能结合分片技术(如Danksharding)和Rollups,实现更低费用与更高可扩展性,巩固ETH的经济模型。

6. Account Abstraction(账户抽象,AA)

  • 现状:以太坊账户分为外部账户(EOA,由私钥控制)和合约账户(无主动交易能力)。
  • 目标:允许合约账户主动发起交易(如用智能合约钱包支付Gas),支持多签、社交恢复等灵活功能。
  • 进展:ERC-4337(无需协议层修改的AA方案)已部署,用户可通过“UserOperation”对象模拟交易流程。

7. Deep Cryptography(深度密码学)

  • 应用技术
    • 零知识证明(ZKP):如zk-SNARKs(Zcash)、zk-STARKs(Starkware),用于隐私交易(Tornado Cash)和扩容(zk-Rollups)。
    • BLS签名:高效聚合签名,减少共识通信开销(如以太坊2.0的信标链)。
    • Verkle树:基于多项式承诺的数据结构,替代Merkle树以优化状态证明大小。
  • 意义:增强隐私、可扩展性和安全性,支撑以太坊向更高效、去中心化方向演进。

关联与协同

  • Purge + EIP-4444:通过修剪数据降低节点门槛,推动去中心化。
  • AA + Deep Cryptography:智能合约钱包可能依赖ZKP实现隐私交易,或利用BLS签名优化多签流程。
  • EIP-1559 + Splurge:费用机制优化与分片技术结合,解决Gas费波动问题。

这些概念共同构成以太坊向“世界计算机”愿景迈进的基石,平衡可扩展性、安全性与去中心化。

2025.02.23

week9

1. History Expiry in Ethereum Execution Clients

History Expiry 是指以太坊执行客户端中,存储和保留历史数据(如交易记录、账户状态等)的时间限制机制。以太坊在不断更新和优化网络时,可能会在一定时间后删除过时的历史数据,以减少存储负担和提升性能。

  • 背景:随着以太坊网络的扩展,节点的存储需求不断增加,尤其是全节点需要保存越来越多的历史数据。为了避免节点存储过多无用的数据,历史过期机制 通过限制保留历史数据的时间来优化存储使用。
  • 目标:减少节点的存储压力,提高同步效率,同时确保网络不会因为数据过载而影响性能。

这种机制有助于 轻客户端(light clients)和 归档节点(archive nodes)更加高效地运行,减少无意义的数据存储,优化网络运行。


2. Portal Network

Portal Network 是一种基于以太坊的去中心化网络协议,旨在提供 无缝的数据访问跨链信息交换。其核心目标是通过去中心化的方式实现区块链间的数据共享和互操作性。

  • 主要功能

    • 跨链互操作性:Portal Network 允许不同区块链之间共享和交换数据,使得跨链应用更加高效和稳定。
    • 隐私保护:通过加密和去中心化存储,Portal Network 提供更强的数据隐私保障。
    • 扩展性:支持更多的区块链和应用接入,具备高度的扩展性。
  • 与以太坊的关系:Portal Network 支持以太坊生态内的各类应用,允许以太坊与其他区块链系统之间高效、安全地交换数据。

2025.02.24

week10

1. EVM Precompiles

EVM Precompiles 是一些特定的、预先编译好的低级函数,直接在以太坊虚拟机(EVM)中运行。它们为智能合约提供了对某些计算密集型操作(如加密、哈希、签名等)的高效访问。通过预编译,开发者无需手动实现复杂的算法,且可以提升操作的执行效率。

  • 功能:Precompiles 使得某些常见操作的执行更加高效,避免了智能合约中手动编写复杂代码的需要。

2. How They Are Integrated

Precompiles 是通过在 EVM 中硬编码特定的地址来实现的,每个预编译函数都对应一个唯一的地址。智能合约调用这些地址时,EVM 会直接跳转到相应的预编译代码并执行。

  • 集成过程:开发者可以在智能合约中调用这些预编译地址,就像调用其他合约函数一样,EVM 会自动执行预编译函数。

3. Which Precompiles Exist

目前,EVM 中已经存在多个预编译函数,涵盖了不同的功能。常见的预编译包括:

  • ECRecover:用于恢复以太坊签名的公钥。
  • SHA256:用于计算 SHA-256 哈希。
  • RIPEMD160:用于计算 RIPEMD-160 哈希。
  • ModExp:用于高效的模幂运算,广泛应用于加密算法。
  • BN128:用于椭圆曲线加密运算,支持 zk-SNARKs 等加密应用。

4. How L2s and L1s Use Them

  • L1(Layer 1):L1 使用 Precompiles 主要是为了执行一些计算密集型的操作(如加密、哈希等),提高效率,减少计算成本。例如,L1 上的智能合约可以通过调用预编译函数来加速数据验证和加密操作。
  • L2(Layer 2):L2 解决方案(如 zk-rollups 或 optimistic rollups)也使用 EVM Precompiles,特别是在处理与零知识证明(ZKPs)相关的加密运算时,利用预编译提供的加速功能可以显著提高系统的性能和处理速度。

L2s 的预编译集成有助于减少链上数据的存储和处理压力,提升扩展性。


5. Challenges of Creating Precompiles

创建和集成新的 Precompiles 时,存在几个挑战:

  • 安全性:预编译函数直接集成在 EVM 中,因此必须确保其安全性,防止潜在的漏洞被利用。
  • 跨链兼容性:不同的区块链和 L2 解决方案可能对 Precompiles 有不同的需求,如何保证不同环境下的一致性和兼容性是一个挑战。
  • 升级和修改:一旦集成到 EVM 中,Precompiles 变得难以修改。任何修改都需要小心谨慎,以避免对现有合约和系统造成不兼容。
  • 性能优化:虽然 Precompiles 旨在加速某些操作,但创建高效的预编译函数依然需要平衡性能和计算成本。

总结:EVM Precompiles 提供了高效的低级计算接口,广泛用于 L1 和 L2 解决方案中以提升性能。创建新的 Precompiles 面临安全性、兼容性和性能等挑战,需要谨慎设计和实现。

2025.02.25

week10

1. Gasper Recap

Gasper 是以太坊 2.0(即权益证明链)采用的共识算法,它结合了 Casper FFG(Friendly Finality Gadget)和 LMD-Ghost(Latest Message Driven GHOST)两种机制。

  • Casper FFG 负责确保最终性,通过在区块链上确定最终的区块并防止分叉。
  • LMD-Ghost 用于选择最“活跃”的链,并确保网络上的所有节点都能保持一致。

Gasper 旨在提供更高的安全性和效率,同时实现区块链的去中心化验证。


2. Problems with Gasper and Fixes

尽管 Gasper 提供了高效的共识机制,但也存在一些问题:

  • 最终性延迟:由于最终性是基于多个区块的投票机制,可能会导致区块最终确认的时间相对较长。
  • 低效的叉叉选择:如果存在多个并行的分叉,Gasper 的叉选择算法可能会变得较为复杂。
  • 可能的安全漏洞:尽管 Casper FFG 增强了最终性保障,但仍然可能存在分叉攻击等安全隐患。

解决方案

  • 优化最终性确认:通过提高投票机制的效率,减少等待时间,使最终性确认速度更快。
  • 改进叉选择算法:提升 LMD-Ghost 算法的效率,确保节点能够更快地做出分叉决策。

3. Single Slot Finality (SSF)

Single Slot Finality (SSF) 是以太坊升级中的一个重要目标,旨在加速区块的最终性确认。传统的 Gasper 机制可能会需要多个轮次的投票来确认区块是否最终,但 SSF 使得区块在一个“槽”内就可以确认最终性。

  • 优势:这能显著减少最终性的确认延迟,提升以太坊网络的响应速度。
  • 实现机制:SSF 通过引入改进的共识机制,确保每个区块可以在一个单独的时间槽内被最终确认,从而避免多轮投票和更长的确认周期。

4. How Fork-Choice Affects Other Ethereum Upgrades: PeerDAS and ePBS Case Studies

Fork-Choice 机制的设计直接影响以太坊的其他升级,尤其是在提高网络效率和实现新的协议特性时。例如:

  • PeerDAS:PeerDAS 是一种数据可用性协议,旨在确保区块链上的数据能够可靠地分发到节点。Fork-Choice 机制的优化可以提高数据的传播效率,减少延迟,提升 PeerDAS 协议的效果。
  • ePBS(Enhanced Proposer-Bidder Separation):ePBS 提供了一种新的机制,通过分离区块提议者和出价者来减少 MEV(矿工提取价值)。优化的 Fork-Choice 机制可以帮助加快区块的选择和数据验证,确保 ePBS 的顺利运行,提升网络公平性。

在这些案例中,优化 Fork-Choice 机制能够加速网络的共识决策,减少延迟,从而提高数据可用性和协议效率。


总结:Gasper 是以太坊 2.0 的核心共识算法,尽管有效,但也存在延迟和安全性等问题,Single Slot Finality 通过加速最终性确认来优化其性能。Fork-Choice 机制 对其他以太坊升级(如 PeerDASePBS)至关重要,影响数据可用性和 MEV 控制的效率,优化 Fork-Choice 可以提升整个系统的性能。

2025.02.26

这个大纲涉及的主要话题是与 MEV(最大化可提取价值)协议服务加密经济学 相关的内容,尤其是关于 PBS(提议的区块生产服务)和一些与之相关的提案。下面是针对每个点的简要介绍:

1. Protocol Services and Impact of MEV, Cryptoeconomics

MEV的定义和影响:

  • **MEV(最大化可提取价值)**是指区块生产者(如矿工或验证者)通过在区块中重新排列交易、插入或删除交易来从用户交易中提取的额外利润。
  • MEV 对整个网络的影响巨大,尤其是在去中心化网络中。MEV 的存在通常会导致以下问题:
    • 中心化倾向:矿工或验证者能够通过操控交易顺序来获利,可能会集中控制区块生产。
    • 用户的不公平交易成本:普通用户可能会因为MEV攻击(如前置交易攻击、后置交易攻击等)而遭受损失。
    • 网络稳定性问题:MEV 的争夺可能导致网络拥堵和延迟,影响整个系统的效率和公平性。

加密经济学:

  • 加密经济学是指区块链和加密货币项目中,经济激励机制的设计。MEV 对加密经济学有重要影响,因为它会改变参与者的行为,尤其是在区块生产者和用户之间的激励结构上。一个不完善的激励结构可能导致市场扭曲和资源分配不公平。

2. PBS and Related Proposals

PBS(提议的区块生产服务):

  • PBS(Proposer-Build-Serve)是一种新的区块生成机制,它的目标是减少MEV对区块链网络的负面影响。PBS通过将区块提议者(Proposer)和区块构建者(Builder)分离,使得区块提议者不再直接决定交易顺序,而是由专门的区块构建者负责。这有以下优点:
    • 去中心化:区块提议者不再能操控交易的顺序或内容,从而减少了MEV攻击的空间。
    • 公平性:通过分离交易排序和区块提议的职责,可以降低矿工或验证者利用MEV进行不公平操控的机会。

与PBS相关的提案:

  • 目前有多个与PBS相关的提案,如 FlashbotsMEV-Boost,它们为验证者提供了一个在PBS架构下参与的途径。这些提案主要关注如何优化区块生产、确保区块链公平性和去中心化。

3. ePBS Flavors

  • ePBS(Enhanced PBS) 是对PBS的进一步扩展,旨在提供更多的优化和功能。具体来说,ePBS可能包括对区块构建者和提议者之间的协调机制进行增强,增加对交易选择的细致控制,以及进一步减少MEV的集中化影响。
  • 不同的ePBS版本(flavors) 可能针对不同的区块链网络设计,以适应不同的协议需求和技术架构。比如,有些ePBS版本可能更加关注提高网络效率,其他版本可能更注重安全性和去中心化的原则。

4. MEV Burn

  • MEV Burn 是一种新提议,旨在将一部分通过MEV获得的收益“销毁”,以减少市场中的MEV压力。这种方法通过减少市场上可用的MEV收益,从而降低MEV参与者的动机。
  • 实现方式:通过在交易中引入销毁机制,例如将一部分MEV利润发送到一个不可恢复的地址(销毁地址),减少市场中潜在的操控空间。这种方法可以有效地减少MEV带来的负面效应,尤其是在市场价格、交易顺序和交易费用上的影响。

5. Rainbow Staking

  • Rainbow Staking 是一种新的激励机制,旨在通过新的质押(staking)方案来支持区块链网络的去中心化和公平性。在传统的质押机制中,验证者或矿工通过抵押代币来获得奖励,而Rainbow Staking则通过多层次的激励来提高网络的安全性和去中心化。
  • Rainbow Staking 的核心思想:将质押奖励和MEV的影响结合起来,激励质押者不仅仅从交易费用和区块奖励中获得收益,还能够参与MEV的管理和优化。例如,在Rainbow Staking下,参与者可能会根据他们在网络中的贡献(如参与MEV优化和数据可用性工作)获得额外奖励。

2025.02.27

EIP-4444 是一个关于以太坊的改进提案,旨在优化以太坊网络的存储和数据处理方式,尤其是与节点存储和历史数据有关的部分。它的核心目标是解决与存储历史数据相关的费用和性能问题,特别是在以太坊逐渐发展和升级的过程中。

EIP-4444 的核心内容:

EIP-4444 提出了一个新的提案,用于移除历史状态的长期存储,将不再需要的历史数据从以太坊执行节点中清除。这一提案的重点是历史数据,特别是那些在“过期”后不再需要被频繁访问的数据。

主要内容包括:

  1. 历史数据的删除

    • 当前,以太坊的执行节点需要存储所有区块的历史状态,包括每个区块的账户状态、交易状态等。随着区块链的不断增长,执行节点的存储需求也越来越大。
    • EIP-4444 提出一种方式,通过清理和归档已经过时的历史数据(即不再被频繁访问的数据),来减少节点的存储负担。
  2. 数据归档和访问

    • EIP-4444 并不意味着完全删除历史数据,而是提出将这些数据转移到外部存储,从而降低对执行节点存储的需求。只有当这些数据被需要时,用户才能从归档节点或其他数据提供方访问到。
  3. 历史状态的删除周期

    • 提案中建议可以设定一个合理的周期,比如一年或两年,在此期间的历史状态可以被删除,而该周期过后的数据将被视为归档数据。这个周期可以根据网络的需要进行调整。
  4. 节点资源优化

    • 清除历史数据将大大减少运行完整节点所需的存储空间。对于节点运营者而言,减少存储负担意味着他们可以更低成本地运行和维护节点,增加网络的去中心化。
  5. 提高节点的同步速度

    • 在移除不必要的历史数据后,新的节点同步将变得更加高效。新的节点将不需要下载和存储大量的历史数据,而是可以从清理过的历史状态中同步当前的区块链状态,这有助于提高节点的启动和同步速度。

为什么提出 EIP-4444?

  • 存储成本问题:随着以太坊网络的扩展,历史数据量不断增加,存储需求也在增加。执行节点需要不断增加硬盘空间以存储这些历史数据,但并不是所有历史数据都需要频繁访问。EIP-4444 旨在减少这种存储压力,降低运行完整节点的成本。

  • 节点去中心化:存储压力过大可能导致一些小型节点无法参与网络,影响以太坊网络的去中心化程度。通过清除不常用的历史数据,可以降低存储需求,让更多人能够运行节点,从而提高网络的去中心化性。

  • 长期可扩展性:随着区块链的不断增长,长期存储所有历史数据将是不可持续的。EIP-4444 提供了一种可扩展的解决方案,确保以太坊网络能够在未来继续扩展,而不被存储瓶颈所限制。

EIP-4444 的挑战:

  • 归档数据的访问性:虽然历史数据被归档,但如果用户或应用需要访问这些历史数据,如何确保高效地提供数据访问,成为一个重要问题。为了弥补这个问题,可能需要引入新的归档节点或专门的数据存储服务。

  • 节点与协议兼容性:实施这种改进可能会对现有节点和协议产生一定的兼容性问题。特别是在切换到新的数据存储模型时,可能需要进行额外的测试和调整,确保不会破坏现有网络的正常运行。

  • 存储网络的建设:EIP-4444 的实现需要依赖于外部存储和归档网络的建设,以确保数据在删除后仍然能够安全存取。如何选择合适的存储方式以及确保数据的完整性和安全性是一个挑战。

2025.02.28

Gasper 是以太坊 2.0 的核心共识算法,但在实际应用中仍面临一些挑战,特别是在网络延迟、投票集中化和分叉恢复速度方面。Single Slot Finality (SSF) 提供了一种提高最终性确认速度的方式,但它也带来了新的挑战。通过优化 Fork-Choice 规则,像 PeerDASePBS 等新提案能够改进数据可用性和区块生产的效率,从而提升以太坊的整体性能和安全性。

1. Gasper Recap

Gasper 是以太坊 2.0 中的共识算法,结合了 Casper FFG (Friendly Finality Gadget)LMD GHOST (Latest Message Driven Greedy Heaviest Observed Subtree) 的两种机制,旨在提供快速的区块最终性和去中心化。

  • Casper FFG 主要负责提供最终性,即确保区块不会被回滚。它使用的是权益证明(Proof of Stake)机制,通过验证者投票来确保区块最终性。
  • LMD GHOST 是一种优化的区块选择规则,用于确保区块链的安全性和最大化最终性概率,选择最新的、拥有最多验证者投票支持的链。

Gasper 使得以太坊能够在 PoS(权益证明)机制下运行,同时具备较高的安全性和效率。

2. Problems with Gasper and Fixes

尽管 Gasper 在以太坊共识中提供了高效的最终性和区块确认,但也存在一些潜在的问题和挑战:

  • 网络延迟问题:由于 Gasper 依赖于验证者的投票和消息传递,如果网络延迟较高,可能会导致区块的最终性无法及时确认,影响网络的效率。

  • 投票集中化问题:LMD GHOST 在选择区块时依赖于验证者的投票,如果大部分验证者投票集中在某些验证者或矿工手中,可能会出现中心化问题。

  • 分叉恢复慢:当发生分叉时,Gasper 的分叉恢复机制相对较慢,因为需要等到大多数验证者重新投票确认最终性。虽然这在大多数情况下是安全的,但在某些情况下可能会导致较长时间的网络暂停。

解决方案

  • 优化网络协议:通过改进网络协议(如更高效的消息广播和验证者通信机制),减少网络延迟问题。
  • 加强投票机制的多样性:增加验证者池的多样性,并确保公平的投票分配,避免某个少数节点占据大多数投票权。
  • 改进分叉恢复机制:加强共识算法的分叉处理速度,例如增加“快速恢复”机制,减少恢复时间。

3. Single Slot Finality (SSF)

Single Slot Finality (SSF) 是一种新的共识机制,用于提高以太坊 2.0 在单个区块确认上的最终性。

  • 在传统的 Gasper 共识中,最终性确认需要通过多个区块的验证者投票(通常跨越多个 slots)来完成,这可能导致一定的延迟。
  • SSF 则是在单个 slot 内完成最终性确认,即在一个区块内就能确认其不可更改性和最终性。这大大提高了网络的效率,尤其在区块链出现分叉或争议时,能快速确认哪个区块是有效的。

优势

  • 提高最终性确认速度,使网络更快地进入“最终状态”。
  • 减少了交易确认时间,提高了区块链的响应性。

挑战

  • 攻击面增大:单一的最终性确认可能会使得攻击者有更多机会进行“延迟攻击”。
  • 复杂性增加:虽然SSF提高了效率,但它增加了网络和共识协议的复杂性,需要更多的测试和优化。

4. How Fork-Choice Affects Other Ethereum Upgrades: PeerDAS and ePBS Case Studies

Fork-Choice and Ethereum Upgrades

Fork-Choice 规则是指在分叉情况下,如何决定哪个链应该被认为是主链。它是共识算法的关键部分,决定了网络如何选择一个有效的链,并且避免了不同节点之间的数据冲突。

Fork-Choice 对于以太坊的各个升级有深远的影响,特别是在 PeerDASePBS 等改进中,它们如何协调工作将影响以太坊的去中心化、扩展性和性能。

PeerDAS (Peer Data Availability Sampling)

PeerDAS 是一个提案,用于解决区块链数据可用性问题。在区块链中,数据可用性是指确保所有节点可以访问到执行链上所有必要的数据。

  • 数据可用性问题:当一个区块包含的数据对某些节点不可用时,它可能会导致网络分裂或者验证错误。
  • PeerDAS 解决方案:PeerDAS 通过分布式的方式采样数据,确保数据可用性。通过使验证者能够在不同的节点间采样区块数据,PeerDAS 能更有效地提高区块数据的可用性和安全性。

Fork-Choice 在这方面的影响:

  • 通过确保数据的完整性和可用性,Fork-Choice 规则能够帮助决定哪些区块应当被视为“有效”,从而减少网络中的分叉风险。

ePBS (Enhanced PBS)

ePBS 是对传统 PBS(Proposer-Build-Serve)机制的增强,旨在优化区块生产和MEV(最大化可提取价值)问题。传统的PBS设计中,区块提议者与区块构建者是分离的,这样可以减少MEV攻击。

  • ePBS 的增强功能:ePBS 增强了PBS中的数据协调、交易排序和块提议的细节,增加了对MEV和网络安全性的关注。

Fork-Choice 在ePBS中的作用:

  • 在 ePBS 架构下,Fork-Choice 规则必须与区块生产、提议和构建者的选择过程紧密结合,确保选出的区块对整个网络的一致性和最终性是最优的。