Solidity 的十年与重生:从 Classic 到 Core
Solidity 走向 1.0 的路线图,终于清晰了。
一、十年之后,Solidity 要"重启"
2025 年,Solidity 已经走过十年。
它从最早期的实验性语言,成长为整个以太坊生态的主力智能合约语言。
如今,团队决定正式开启下一阶段的进化:
一个更简洁、更安全、更灵活的 Core Solidity。
官方在《The Road to Core Solidity》系列首篇中,公布了语言未来数年的整体蓝图。
这意味着 Solidity 不只是"再更新几个语法特性",而是一次体系级重构。
二、Classic 与 Core:两条并行的路线
Classic Solidity(现有版本)
即当前使用的 0.8.x 系列。
这是大家熟悉的 Solidity,但仍然带有不少历史包袱:
类型系统复杂、不一致、难以扩展。
虽然语法稳定,但核心逻辑早已显得臃肿。
Classic 仍会继续维护,并发布少量破坏性更新(0.9、0.10 版本),
主要任务是清理旧特性、准备迁移环境。
Core Solidity(核心版)
Core 是一次从零设计的语言重构 ,
底层类型系统、语义规则、标准库全都重写。
它原生支持:
-
泛型(Generics)
-
一等函数(First-class functions)
-
代数数据类型(Algebraic data types)
-
模式匹配(Pattern matching)
-
标准库机制
更重要的是,它保持与 Classic 语法兼容 ,
让开发者能够平滑迁移。
Solidity 1.0 的定义也因此明确:
当 Core Solidity 足够稳定,成为默认语言时,Solidity 才算真正的 1.0。
三、后端的三大重构
当前 Solidity 团队主要集中力量在编译器后端重构,
为 Classic 与 Core 共同打基础。
重点包括三件事:
1️⃣ 修复 IR 管线
当前 IR(中间表示)存在非确定性、性能和可维护性问题。
未来将迁移到SSA 控制流图(CFG)结构 ,
这是现代编译器(如 LLVM)的主流架构。
好处是更快、更稳定、可实现更强的 Gas 优化。
团队还与西班牙马德里大学合作开展 Project GreY ,
研究 IR → EVM 转换的高效算法,
目标是让编译出的合约在 Gas 成本上更优。
2️⃣ 全面支持 ethdebug
调试是 Solidity 长期的痛点。
官方正引入新的 ethdebug 调试信息标准 ,
能让 IDE、调试器、符号分析器共享一致的源码映射。
未来调试体验将不再依赖特定编译器或前端工具。
3️⃣ 跟进 EVM 升级
团队正适配即将到来的 EVM 变化(如 EIP-5920、EIP-7939 等)。
这些操作码和成本模型更新会影响优化器逻辑与 Gas 估算。
同时,Verkle 树等底层结构更新也将影响 Solidity 的存储模型。
四、Classic Solidity 的"告别演出"
Classic Solidity 将进入"清理与稳定"阶段。
0.9 版本起,重点是:
-
默认启用 IR 优化管线;
-
移除过时特性(如
.send()、.transfer()、virtual); -
移除旧版 EVM 兼容层;
-
SMTChecker 重命名为 SolCMC 并简化模式。
语法层面将逐步靠拢 Core Solidity,例如:
| 旧写法 | 新风格(Core语法) |
|---|---|
uint x |
x: uint |
a ? b : c |
if (a) b else c |
function(uint) returns (bool) |
(uint) -> (bool) |
block.number |
block.number() |
这些变化不会立即强制执行,但会在未来版本中逐渐统一。
五、Core Solidity 的设计哲学
Core Solidity 的核心理念是:
"保持最小化,但让扩展成为可能。"
1️⃣ 极简语言核心(SAIL)
内部基于一种极简核心语言 SAIL ,
支持泛型、类型推导、traits、代数类型等现代特性。
大多数高级功能(如数组、字符串、ERC 库)将通过标准库实现。
2️⃣ 标准库主导一切
Core 不再内置太多"特例语法",
而是通过社区可扩展的 标准库机制 提供能力。
这意味着未来开发者甚至能编写自己的"语言层特性"。
3️⃣ 可形式化验证
Classic Solidity 从未有完整语言规范。
Core 从一开始就以"可形式化验证"为目标,
规范将是可执行的 (Executable Formal Spec),
方便编译器验证、模糊测试与安全审计。
六、语言治理与开放路线
Solidity 团队计划在 Core 阶段正式开放语言治理流程,
让开发者可以像提交 EIP 一样,
通过提案系统推动语言或标准库的演进。
未来可能会出现多个遵循同一规范的 Solidity 编译器实现,
这将推动工具生态和安全审计水平整体提升。
七、总结:Solidity 的"重生点"
| 阶段 | 特征 | 目标 |
|---|---|---|
| Classic Solidity(0.8.x~0.10) | 维护、清理、兼容 Core | 语法与编译器统一 |
| Core Solidity(1.0+) | 新类型系统 + 泛型 + 标准库 | 现代、安全、可扩展 |
| 长远目标 | 开放规范、社区治理 | 多编译器、多实现生态 |
Core Solidity 并不是推翻重来,而是"重构以延续"。
它让 Solidity 能在未来十年继续演化,
同时保持兼容性与生态稳定。
🧭 结语
这次路线图的发布,
意味着 Solidity 正从"实用语言"走向"可持续生态"。
当 Core Solidity 正式成为主流,
Solidity 才算真正完成了从实验性工具到稳定语言的进化。