加载中...
以太坊官方智能合约语言,2014年由Gavin Wood设计,语法类似JavaScript/C++。智能合约一经部署无法修改,加上以太坊的公开执行环境,让Solidity代码的安全性要求比普通软件高出一个数量级。

| 类型 | 静态类型、编译型(目标EVM) |
| 发布年份 | 2014年 |
| 开发者 | Gavin Wood(以太坊基金会) |
Solidity编译到以太坊虚拟机(EVM)字节码,部署在区块链上后,代码和状态都不可篡改(除非实现了特殊的可升级代理模式)。每条指令的执行都消耗Gas——以太坊的计算费用单位,这让Solidity的编程模型非常特殊:存储(storage)操作比内存(memory)操作贵数百倍,循环的每次迭代都要花钱,Gas不足时交易回滚但Gas不退。
这些约束深刻影响了合约的设计:能放内存的不放存储,能减少循环的要想算法,数组长度无界循环是经典Gas耗尽攻击向量。Solidity的uint256是基本整数类型(对应EVM的256位字宽),没有浮点数,金融计算靠整数和固定倍率。[1]
Solidity代码的安全漏洞后果极其严重,历史上有多次数千万甚至数亿美元的损失:
现代Solidity开发离不开形式验证工具(Certora Prover)、审计公司(Trail of Bits、OpenZeppelin)和标准安全库。任何持有真实资产的合约上线前都应经过专业审计,这已是行业共识。

| 类型 | 静态类型、编译型(目标EVM) |
| 发布年份 | 2014年 |
| 开发者 | Gavin Wood(以太坊基金会) |
登录 后参与讨论
暂无讨论,来发表第一条评论吧