
必备九条措施 保障智能合约安全性
以太坊开发者需要知道的四项安全性原则,以及一些基本权衡。
尽管区块链行业的发展日趋成熟,但是智能合约的开发仍是一个相对较新的领域。因此,为了应对新的漏洞和安全危机,以及满足开发新的最佳实践的需要,我们应该不断完善安全性方面的问题。学习最佳实践只是智能合约开发者在安全性方面踏出的第一步。
智能合约编程需要一种不同于传统的工程思维。智能合约失败的代价很高,更新迭代需要较大工程量,这使得它在某些方面更类似于硬件编程或金融服务编程,而不是web或者移动端开发。因此,仅仅防御已知的风险是远远不够的,还需要掌握新的开发理念。
准备应急措施
任何重要的合约都会出现故障。因此,开发者必须做好充足的准备,以便及时应对漏洞。
-
出现故障时暂停合约 (“断路器”)。
-
管理风险资金的数量 (限制流量,最大化利用率)。
-
准备有效的升级路径以修复和改进bug。
防患未然
最好是在完整的产品发布之前发现bug。
-
全面测试合约,并在发现新的攻击向量时添加相应测试。
-
alpha测试网版本发布之后,提供bug赏金。
-
分阶段推出,每个阶段更新功能并添加新测试。
保持智能合约的简洁性
复杂性会提高出现故障的概率。
-
确保合约逻辑简单。
-
模块化代码以使合约和函数保持较小。
-
请尽可能使用既有工具或代码 (例如不要使用自己的随机数生成器)。
-
在保证清晰度的前提下再考虑性能。
-
只在系统中需要去中心化的部分使用区块链技术。
保持更新
跟进新的安全性措施。
-
检查智能合约,以最快的速度定位新漏洞。
-
尽快升级到任何工具或库的最新版本。
-
采用可能有效的保障安全性的新技术。
了解EVM的特性
-
尽管开发者对以太坊编程较熟悉,但仍需要注意一些陷阱。
-
要特别小心外部合约调用,该过程可能会执行恶意代码并改变控制流 (control flow)。
-
要明白,开发者的公共函数是公开的,可能会被恶意调用,调用顺序也可能是任意的。任何人都可以查看智能合同中的隐私数据。
-
注意gas成本和区块gas限制。
-
注意,区块链上的时间戳是不精确的:矿工可以在几秒内影响交易执行的时间。
-
随机性是区块链上一个重要的特性,大多数产生随机数的方法在区块链上是具有博弈性的。
基本权衡因素
在评估智能合约系统的结构和安全性时,需要考虑多种基本的权衡。对于所有智能合约系统的普遍建议是,在这些权衡之间找到平衡点。
从软件工程的角度来看,理想的智能合约系统是模块化的,即重用代码而不是复制代码,以及支持可升级的组件。而从安全架构的角度来看,理想的智能合约系统可能同样会使用这种模式,尤其是面对更为复杂的智能合约系统。
然而,当安全性和软件工程最佳实践出现不一致时,也会有一些例外情况发生。而在每种情况下,可通过选择合约系统上的最佳性能组合来达到平衡,例如:
-
固定版本vs.可升级
-
整块化vs.模块化
-
复制vs.重用
固定版本vs.可升级
当多个资源 (包括此资源) 强调自身的延伸性时 (比如可中断的、可升级的或可修改的模式),那么就需要在延伸性和安全性之间找到一个平衡点。
延伸性增加了复杂性和潜在的受攻击性。如果智能合约系统在预先规定的有限时间内能够完成的功能非常有限,那么这时简洁性比复杂性要有效得多,例如,无治理的限时代币发售合约系统。
整块化vs.模块化
独立的整块化合约允许信息在本地识别和读取。虽然整块化合约一般不被重视,但对于数据和流的极端本地化存在争议,例如代码审计的效率优化。
与本文考虑的其他因素一样,在简单的短期合约中,安全性最佳实践趋向于与软件工程最佳实践相悖;而在更复杂的永久合约系统中,两者趋于相一致。
复制vs.重用
从软件工程的角度来看,智能合约系统希望能够在需要时最大化重用功能。在Solidity语言中,有许多重用合约代码的方法。实现代码重用的最安全的方式通常是:使用自己之前经过验证和部署的合约。
如果之前部署的合约无法使用,开发者通常就需要依靠复制功能了。OpenZeppelin的Solidity库尝试提供一些模式,使得安全代码可以在无需复制的情况下被重用。任何合约安全分析都必须将目标智能合约系统中还没有与风险资金建立相当信任级别的重用代码包含在内。
现如今,在以太坊上创建应用软件无疑是最令软件工程师激动的前沿领域,但这需要持续不断的威胁建模 (threat modeling)、安全审计,还需要做好周全计划以应对故障发生。
原文链接:https://media.consensys.net/the-smart-contract-security-mindset-a09f5f8f5f4f
来源:ETH中文网
比推快讯
更多 >>- Coinbase 向美国用户推出 DEX 交易
- 哈佛大学Q2持有1.17亿美元的现货比特币ETF,投资额超谷歌母公司Alphabet
- 据悉白宫将澄清金条关税的不实信息 黄金短线大幅飙升
- 美联储传声筒:特朗普拟提名米兰入美联储,挑战关税通胀共识
- 特斯拉获批德州网约车牌照,为 Robotaxi 运营铺平道路
- 数据:ETH 当前全网 8 小时平均资金费率为 0.0099%
- Michael Saylor:来自传统市场的超 100 万亿美元或将流入数字资产支持工具
- 特朗普与普京将于下周末举行会晤
- USDC Treasury 在以太坊上新增铸造超 6445 万枚 USDC
- 麻吉大哥黄立成以太坊多单已扭亏为盈,现浮盈超 360 万美元
- 特朗普拟推动房利美与房地美年内 IPO,计划融资 300 亿美元
- 链上身份系统 Phi 将于 9 月发币
- 华尔街日报:美国政府正准备今年晚些时候让房利美和房地美上市
- 香港金管局:谨防虚假稳定币宣传,销售须经认许提供者
- Vitalik:中美文化差异显著,长寿科技或成未来文化保存手段
- Lair Finance 推出 $LrBGT,Berachain 上首个 PoL 再质押资产正式上线
- 特朗普:关税对股市有巨大积极影响
- 洪桥集团与东方亿林达成战略合作,布局 RWA 林木资产数字化生态
- 因矿机被美国认定产自中国,CleanSpark 面临高达 1.85 亿美元惩罚性关税
- 以太坊最大持币机构 BMNR 浮盈超 14%,浮盈金额达 4.1 亿美元
- 美国和俄罗斯计划就乌克兰问题达成协议
- 某鲸鱼以 4000 美元均价买入 1390 枚 ETH,并以此为抵押做多 ETH/BTC 汇率
- Lens 宣布推出代币分发器,将向真实用户价值无 gas 分发 GHO 代币
- 外媒:美国和俄罗斯正在敲定一项有关乌克兰的“和平协议”
- HabitTrade 与加拿大稳定币发行第一股 BVCI 达成战略合作,共探币股上链合规路径
- 波场 TRON 社区发起降低主网交易手续费提案
- 以太坊近 1 小时涨幅达 2.42%,上涨逼近 4000 美元大关
- Linea 网络 TVL 近 24 小时涨超 37%,现报 2.6 亿美元
- 数据:疑似 Hex Trust 关联地址从币安提取约 238 万枚 ENA,价值 146.5 万美元
- 美股加密货币板块开盘普涨,BMNR 涨超 5%
- Joe McCann 主导的 Solana 金库公司 SPAC 上市计划已终止
- Dogwifhat 原始粉色毛线帽以约 80 万美元成交
- 纳斯达克上市公司 Trident Digital 计划筹集 5 亿美元建立企业 XRP 储备
- 彭博 ETF 分析师:首只 2 倍做多 Galaxy 的 ETF GLXU 今日正式开始交易
- 数据:过去 24 小时全网爆仓 2.85 亿美元,多单爆仓 9319.94 万美元,空单爆仓 1.91 亿美元
- 港股上市公司国际商业结算成立合营企业,从事加密资产相关业务
- Solayer:将为生态活跃用户分配 5 万枚 WCT 代币
- H100 Group 将被纳入 MSCI 全球微型股指数
- 数据:监测到 5,453.99 万 USDT 转出 Binance
- 加拿大 7 月就业数据低于预期,央行 9 月降息可能性提升
- XRP 期货交易量 24 小时激增 208%,未平仓合约量增 15%
- SharpLink:将于 8 月 15 日召开电话会议讨论公司近期业绩,并发布财务报告
- Apple Intelligence 将于下月升级支持 GPT-5 模型
- 累计盈利近 5400 万美元的聪明钱近半小时加仓比特币 40 倍多单,并 20 倍做空 SOL、XRP
- 某新建地址从 Binance 提取 4000 枚 ETH
- Animoca Brands 及其附属公司对 Cool Cats Group 进行战略投资
- Bitwise CIO:401(k)配置加密将彻底改变市场,其结果是更高的回报和更低的波动性
- Kaito 推出新一轮排行榜机制升级,将强化内容质量与反作弊措施
- Vitalik:Visa 在创立之初就具有与当今 DAO 相似的去中心化理念
- Core Scientific 最大股东反对以全股票形式向 CoreWeave 出售,称该交易估值过低