登录 后可观看高清视频
高级 Web3 安全课程 | 第五部分
13次播放
1天前
视频 AI 总结:
核心内容概要:
该视频主要讲解了以太坊 Solidity 智能合约中常见的两种安全漏洞:舍入误差(Rounding Issues)和签名可延展性(Signature Malleability)。视频深入分析了这两种漏洞的根本原因、常见表现形式,并通过实际案例展示了如何识别和防范这些问题。目的是帮助开发者在进行智能合约安全审计时,能够更好地发现和修复潜在的安全风险。
关键信息:
- 舍入误差:
- 根本原因是 Solidity 不支持浮点数,除法运算会进行截断(Truncation),导致精度丢失。
- 常见场景包括计算平均价格、分配奖励等,如果未充分考虑精度问题,可能导致资金损失或协议被操纵。
- 解决方法包括使用足够的小数位数、采用向上取整或向下取整策略,并根据具体业务逻辑进行调整。
- 签名可延展性:
- 根本原因是 ECDSA 算法中,对于同一个消息,存在多个有效的签名。
- 攻击者可以利用这一特性,篡改签名中的
s
值,生成另一个有效的签名,从而重复执行某些操作。 - 解决方法是限制签名中
s
值的范围,只接受小于n/2
的s
值,从而避免签名可延展性攻击。
- 案例分析:
- 视频通过两个具体的漏洞案例,详细展示了舍入误差和签名可延展性在实际项目中的表现形式,以及相应的修复方案。
- 安全审计建议:
- 在进行智能合约安全审计时,需要特别关注除法运算和 ECDSA 签名验证,仔细分析是否存在舍入误差和签名可延展性问题。
- 需要充分考虑各种边界情况和异常输入,确保智能合约的安全性。