AMM漏洞分析
是否使用硬编码滑点
在高波动时期,使用硬编码滑点会导致交易不佳并冻结用户资金
有截止日期保护吗
如果没有截至日期保护,用户交易衡容易收到Sandwich攻击
是否针对协议储备的验证检查
如果储备金未经验证,协议可能会面临风险,并且可以借出,从而影响系统的偿付能力。
AMM是否使用分叉代码
如果使用了分叉代码,尤其是来自Uniswap等已知项目的代码,并且这些代码没有进行正确更新,或者审计,可能会引入已知的漏洞
产品常数公式中是否存在舍入问题
公式中的四舍五入问题可能导致代币交换和流动性供应不准确或不平衡。
是否可以根据用户输入进行任意调用
允许基于用户输入的任意调用可能会使合约面临各种漏洞
是否有适当的机制来防止过度滑点
如果没有滑点保护,交易者可能会因交易过程中的巨大价格偏差而遭受意外损失。
AMM是否正确处理不同十进制配置和令牌
如果 AMM 不支持具有不同小数或类型的令牌,则可能会导致计算错误和潜在损失。
AMM是否支持转账收费代币
转账收费代币可能会导致问题,因为发送金额和接收金额不匹配。
协议是否在代币交换之前计算”minAmountOut”
集成 AMM 的协议应在掉期之前确定 ‘minAmountOut’,以避免不利的汇率。还应考虑速率的来源和操纵的可能性。
集成合约是否在其回调函数中验证调用者地址
如果回调函数不验证调用合约的地址,则可以操纵回调函数。这对于像 ‘swap()’ 这样涉及代币或资产的函数尤其重要。
在资金转移给用户之前的最后一步是否强制执行滑点参数
对中间交换强制执行滑点参数,而不是最后一步,可能会导致用户收到的代币少于其指定的最小值
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.