想开发一个最小 EVM 虚拟机
2025-05-11
我给这个项目命名为 echoevm.com,主要目标是从最简单的堆栈操作开始,逐步实现一个完整的以太坊字节码执行环境。
为什么选择这个方向?解析下以太坊客户端的技术模块:
- RPC:GRPC 套壳?重点在于协议设计而不是技术实现
- P2P:有现成的 libp2p 可用,无非是节点发现、路由表之类,比如深入下 Kademlia DHT?
- 账户体系:ECDSA?密码学?
- 交易池:交易分析、密封交易、MEV保护方向
- 共识机制:共识机制的设计属于研究级别,至少得是个博士发论文、实验室里做研究、出各种测试数据,然后证明在哪方面做出了业界前沿的优化、最后融资雇人做工程化的实现
- 储存:搞数据库底层的专家应该干什么都一样,哪里都有用武之地,跟区块链没关系
- 数据结构:去研究 Merkle Patricia Tree 的实现吗?
- 状态同步:轻节点方向,比如用 Celestia 的核心技术把执行和储存分开,或者 Archive 节点数据的 offload?
综合来看,我倾向于做一件侧重工程而不是学术、同时又有技术含量的事情,无论是从个人技术能力的提升,还是后续有可能带来的成果上,都要有意义。假如这个最小EVM开发出来了,是可以带来一系列成果的,后续也可以基于此延伸出很多更有价值的产品。
从 Solidity 语言到 bytecode 的转换过程,那是编译器专家干的事情,我要做的,是针对 bytecode 做执行,先从最简单的加法运算和 jump 开始,然后是 Gas 的计算、上下文环境的切换,直到能够执行全部以太坊历史交易。