惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
Cloudbric
Cloudbric
V
Visual Studio Blog
L
LangChain Blog
A
About on SuperTechFans
B
Blog
T
Tenable Blog
罗磊的独立博客
Hacker News: Ask HN
Hacker News: Ask HN
Blog — PlanetScale
Blog — PlanetScale
博客园 - 三生石上(FineUI控件)
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Palo Alto Networks Blog
U
Unit 42
WordPress大学
WordPress大学
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
C
Check Point Blog
Security Latest
Security Latest
M
MIT News - Artificial intelligence
Application and Cybersecurity Blog
Application and Cybersecurity Blog
宝玉的分享
宝玉的分享
P
Proofpoint News Feed
NISL@THU
NISL@THU
Forbes - Security
Forbes - Security
S
Securelist
Security Archives - TechRepublic
Security Archives - TechRepublic
Hugging Face - Blog
Hugging Face - Blog
aimingoo的专栏
aimingoo的专栏
Latest news
Latest news
GbyAI
GbyAI
T
Troy Hunt's Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 热门话题
V2EX - 技术
V2EX - 技术
小众软件
小众软件
Google DeepMind News
Google DeepMind News
K
Kaspersky official blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
O
OpenAI News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
N
Netflix TechBlog - Medium
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Google DeepMind News
Google DeepMind News
P
Proofpoint News Feed

smallyu的博客

为什么买的加密货币一定要去中心化 RISC-V 虚拟机无法代替 EVM 虚拟机 Polkadot 的 Existential Deposit 机制错在哪里 利息,套利,交易策略,金融市场 LayerZero 从来不挑战比特币的地位 默认参数引起的以太坊节点运行错误 硬件钱包与资产安全 预测市场比币圈更赌场 为什么去中心化的跨链桥不可能实现 我对于 AI 时代的答案 不要投资任何隐私币 区块链技术世界的三大真理 以太坊 AA 钱包的致命问题是什么 基于 AI 语义执行的 MCP 区块链的设计 一个集成 Geth 和 CometBFT 的兼容层 我的加密货币定投策略(二) DeFi 基础: 理解 AMM 定价机制 Go 语言 GMP 调度器的原理是什么 Web3 项目分析计划 对 Psyche Network 项目的分析 continuation 教程: 理解 CPS 如何开发一个比特币符文(Runes)协议 比特币脚本开发教程 我从王垠的计算机科学视频班学到了什么 区块链技术面试题(2025年版) Rust 语言容易让新手困惑的一个“过度优化” Solana 智能合约开发教程 (1) 尝试开发一个最小 EVM 虚拟机 基于 ZK 的链上身份系统设计 一个 Web3 打赏系统的设计 鼓吹 Cursor 的人技术能力都差 关于 Code Review 的礼节 假如启动一个新的以太坊 PoS 网络 发行加密货币的最好方式 所有 BFT 共识的区块链都是中心化的 对 2025 年区块链行业的预测 Restaking 项目的经济难题 如何看懂任意区块链项目的技术架构 为什么不要做以太坊的二次开发 为什么不要做智能合约开发和 DeFi 开发 我的加密货币定投策略(一) PoS 类型的区块链如何处理分叉 区块链中的 PBFT 不需要第二次投票 开发者的思维方式 发币的核心要点 炒币投资的小 tips 为什么说 PoW 比 PoS 更加去中心化 牛市对普通人来说意味着什么 如何健康地远程工作 为什么比特币不用概率加密函数 程序员的 “服从权威” 心理 区块链技术面试题 如何区分公有链和联盟链 对 Layer 2 项目创业想法的回复 对区块链共识机制的理解 Pebbling Game 鹅卵石游戏 PDP 文件证明的局限性 不要小瞧 ChatGPT 为什么炒币不是一个好主意 一种在区块链上生成随机数的机制 为什么以太坊的私钥计算不可逆 关于以太坊的私钥碰撞 “猜均值的2/3” dApp 游戏设计 Proof of Storage/Space/Replication 的区别 Proofs of Retrievability 文件证明的含义 对 S-PDP 文件证明的示例和解释 我的加密货币交易机器人 对区块链行业的见闻 随机确认块的共识机制 VRF + BFT 共识引起交易失败的问题 为什么要重视编程思想 对 Web 3.0 的理解 GitBook 好用吗? 一种区块链节点存储扩容的方式 一种基于“自我中心主义”的共识机制 链表常见算法题及解析 基于 Multi-Linked List 的区块链设想 理解哈希函数与序列化 联盟链比公有链差在哪儿 在 Dijkstra 算法中保存路径 为什么数字货币使用区块链是政治问题 区块链:下一代数字身份认证体系的基石 网页技术能实现 3D 建模吗? 给区块链一个定义 从 Erlang 开始了解 Actor 模型 一种侧边导航栏的交互方式 Rust 的 ownership 是什么? Haskell 中的 Monad 是什么? 浅析 Libra 背后的区块链技术 对区块链的理性认识 Rust 基础语法概述 基于 Java 的爬虫框架 WebCollector Kotlin:简化版的 Scala JavaScript 有关联数组吗? 主流编程语言的异常处理机制 Go 语言基本语法 Scala 语法基础 用 Scala 改写 Java 浅度实践 Python 获取海贼王更新信息 HTML5 音乐可视化
Ethereum Casper 为什么需要 EIP-7251
2024-06-09 · via smallyu的博客

2024-06-09

Casper the Friendly Finality Gadget 是以太坊现在使用的共识机制,属于 PoS 的一种实现。这种关系类似于同样是 PoW 挖矿,Bitcoin 使用 sha256 而 Dogecoin 使用 scrypt。其他的 PoS 实现还有比如 Cardano 的 Ouroboros。

EIP-7251 的主张是增加单个验证者的质押额度上限,原先是 32 ETH,希望改为 2048 ETH,这样可以有效减少验证者的数量,同时有效 P2P 网络的通信量。

这项改动有点迫在眉睫,因为以太坊在测试环境中模拟了大量质押者的情况,测试结果 显示,当质押者数量达到 2.1 M,网络的投票率会不到 50%,已经不能正常进入 Final 状态,意味着检查点机制失效,整个网络处于非常不安全的状态。而以太坊现在的验证者数量已经达到了 1.4M。如果不及时做出改变,以太坊网络将在不久的将来奔溃。

那为什么以太坊会面临这样的困境?PoS 不是公链专属的共识机制,能够适用于大规模网络的吗?

究其原因,Ehtereum Casper 其实是对 BFT 的改进,而不是对 PoS 的改进。

先来看看 Vitalik 是怎么描述 Ethereum Casper 的,他把 Ehtereum Casper 相对于 BFT 的改进视为重中之重:

再来看一下 Ehtereum Casper 的具体流程:节点质押资产成为验证者,然后通过 VRF 来随机选择一个节点出块,出块后所有验证者都对块的有效性进行一次投票。这些投票会先投递给委员会的成员,委员会成员聚合投票结果之后,再在委员会成员之间同步。委员会成员是每隔一段时间随机选举出来的。

对于了解 BFT 但是不了解 Ethereum Casper 的人,在接触到以太坊网络后,当知道只有收到 2/3 投票的块才有资格被标记为 Final 状态时,会不会对 2/3 这个数字有点敏感?因为 2/3 是 BFT 一直在强调的投票比例,以保证 3f+1 的容错能力。

BFT 的投票机制保障了网络绝对不存在分叉,以太坊引入了 BFT 的这个优点,使得 Ethereum Casper 处理分叉场景相对容易,只需要判断哪个区块的得票率最高,就可以认定主流块了。如果验证者同时对两个块投票,验证者会为此受到惩罚,这也是以太坊在众多 PoS 链中唯一一个有 Slash 机制的原因。同时结合 checkpoint 机制,以太坊就可以面对非常复杂的分叉情况,整个网络分叉成树都能从中找出主链。

问题在于,Ethereum Casper 在引入 BFT 优点的同时也引入了 BFT 的缺点,那就是通信量过大。BFT 的通信量是 O(n2) 级别的,一般只能承受 100 个以下的节点规模,例如 这篇报告 就给出了具体的数值。

可以大致计算对比一下 BFT 和 Ethereum Casper 的消息量。

BFT 在 100 个节点的时候大概是 50 tps 的能力,消息膨胀量 O(n2),那么消息数量是:

n = (100^2) * 50)
  = 500000
  = 0.5 M/s

Ethereum Casper 在 2M 验证者的时候大概 50% 的投票率,以太坊的块时间是 12 秒,一共 64 个委员会,消息膨胀量 O(n),那么消息数量为:

n = 2M * 0.5 / 12 * 64
  = 1000000 / 12 * 64
  = 5 M/s

这样计算比较草率和粗略,结果数字上差了一个数量级,但是考虑到两种共识机制具体实现上有很大差异,包括测试的硬件环境差异,有出入很正常,总体上差不太多。

所以由于以太坊集成了 BFT 的投票机制,导致以太坊网络需要大量的通信量。或者说,Ehtereum Casper 改进了 BFT 并且把 Stake 机制加入其中,使得 BFT 更进一步能够支撑起十万规模的节点数量。

同时,有没有注意到,Ethereum Casper 的消息膨胀量仅仅只是 O(n),为什么呢,因为 Ethereum Caspe 不需要进行第二次投票,一次就够了。

另外,委员会机制有点像联盟链的分层共识。有些国内公司需要在没有 token 概念的前提下,对区块链技术进行改进,但是 BFT 算法最多只能撑起几十个节点的规模,于是有了基于 BFT 的分层共识,基本思路是,从所有节点中选出一部分节点作为提案节点,然后提案节点来进行出块和投票,其他节点只接收数据,并且每隔一段时间换一次共识组(提案节点)。

对于联盟链,VRF + BFT + 分层共识已经是比较完善的技术组合了。

与之相比,以太坊多出来的是 Stake 机制,联盟链中每一个节点都是验证者,都有机会出块,而以太坊想成为验证者,需要事先质押一定量的 token 才行。后面的委员会机制相比分层共识,也有一些改进,委员会机制保留了每一个验证者的投票权,只是选出一些代表来归集投票结果。而分层共识直接剥夺了多数节点的出块权,只有少数节点负责出块。

所以以太坊的共识能简单理解为 Stake + VRF + BFT + 委员会机制。