📢 Gate广场 #NERO发帖挑战# 秀观点赢大奖活动火热开启!
Gate NERO生态周来袭!发帖秀出NERO项目洞察和活动实用攻略,瓜分30,000NERO!
💰️ 15位优质发帖用户 * 2,000枚NERO每人
如何参与:
1️⃣ 调研NERO项目
对NERO的基本面、社区治理、发展目标、代币经济模型等方面进行研究,分享你对项目的深度研究。
2️⃣ 参与并分享真实体验
参与NERO生态周相关活动,并晒出你的参与截图、收益图或实用教程。可以是收益展示、简明易懂的新手攻略、小窍门,也可以是行情点位分析,内容详实优先。
3️⃣ 鼓励带新互动
如果你的帖子吸引到他人参与活动,或者有好友评论“已参与/已交易”,将大幅提升你的获奖概率!
NERO热门活动(帖文需附以下活动链接):
NERO Chain (NERO) 生态周:Gate 已上线 NERO 现货交易,为回馈平台用户,HODLer Airdrop、Launchpool、CandyDrop、余币宝已上线 NERO,邀您体验。参与攻略见公告:https://www.gate.com/announcements/article/46284
高质量帖子Tips:
教程越详细、图片越直观、互动量越高,获奖几率越大!
市场见解独到、真实参与经历、有带新互动者,评选将优先考虑。
帖子需原创,字数不少于250字,且需获得至少3条有效互动
DeFi安全指南:闪电贷、价格操控和重入攻击的防范策略
DeFi 常见安全漏洞及预防措施
近期,某安全专家为社区成员分享了一堂 DeFi 安全课。他回顾了过去一年多 Web3 行业遭遇的重大安全事件,探讨了这些安全事件发生的原因以及如何规避,总结了常见智能合约的安全漏洞及预防措施,还对项目方和普通用户给出了一些安全建议。
常见的 DeFi 漏洞类型主要包括闪电贷、价格操纵、函数权限问题、任意外部调用、fallback 函数问题、业务逻辑漏洞、私钥泄漏和重入攻击。本文将重点介绍闪电贷、价格操控以及重入攻击这三种类型。
闪电贷
闪电贷本身是 DeFi 的一种创新,但当被黑客利用时,他们可以在不花费任何成本的情况下借到大量资金,执行套利后归还,只需支付少量 Gas 费用就可获得巨额收益。
许多 DeFi 项目看似收益很高,但实际上项目方的水平参差不齐。有些项目的代码可能是购买的,即便代码本身没有漏洞,在逻辑上仍可能存在问题。例如,某项目会在固定时间根据持仓者持有的代币数量发放奖励,却被攻击者利用闪电贷购买大量代币,在奖励发放时获得大部分奖励。
此外,还有一些通过代币来计算价格的项目,可以通过闪电贷影响价格。作为项目方应该对这些问题提高警惕。
价格操控
价格操控问题与闪电贷关系密切,主要有两种常见类型:
计算价格时使用第三方数据,但使用方式不正确或检查缺失导致价格被恶意操控。
使用某些地址的代币数量作为计算变量,而这些地址的代币余额可以被临时增加或减少。
重入攻击
调用外部合约的主要危险之一是它们可以接管控制流,并对数据进行调用函数未预料到的更改。例如:
solidity mapping (address => uint) private userBalances;
function withdrawBalance() public { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(success); userBalances[msg.sender] = 0; }
由于用户的余额直到函数的最后才设置为 0,第二次(和以后的)调用仍然会成功,并且会一遍又一遍地提取余额。
解决重入问题需要注意以下几点:
在这个领域有很多最佳安全实践,我们应该直接使用而不是重复造轮子。使用成熟的、久经考验的方案比自己开发的新方案出问题的概率要小得多。
项目方安全建议
合约开发遵循最佳安全实践。
合约可升级、可暂停:很多攻击不是一次性的把币全转走,而是分多笔交易去执行。如果有一个相对健全的监控机制,可以及时发现并暂停合约,有效降低损失。
采用时间锁:如果有时间锁,可以给予足够的时间让人发现异常并采取行动。
加大安全投入,建立完善的安全体系:安全是成体系的,不仅仅包括合约审计,还包括私钥管理、经济模型等多个方面。
提高所有员工的安全意识:很多安全问题可以通过提高警惕来避免。
预防内部作恶,在提升效率的同时增强风控:采用多签、时间锁等机制可以在保证效率的同时提升安全性。
三方引入安全性:对上下游都要进行安全校验,尤其是对于不开源的合约要特别谨慎。
用户/LP 如何判断智能合约是否安全?
合约是否开源:不开源的项目不要参与。
Owner 是否采用多签,多签是否去中心化。
查看合约已有的交易情况:包括部署时间、交互次数等。
合约是否为代理合约,是否可升级,是否有时间锁。
合约是否接受过多家机构审计,Owner 权限是否过大。
注意预言机:使用知名预言机的项目相对更安全,自建或易被操纵的预言机要格外警惕。
总之,在 Web3 环境中,保持警惕、多问几个为什么,就能规避很多潜在风险。无论是项目方还是普通用户,都应该重视安全问题,建立完善的安全意识和防范机制。