Vesting 安全
VET-01: Vesting 时间结构是否存在逻辑一致性问题?
描述:Vesting 结构依赖 start、cliff、duration、end 等时间变量计算释放曲线,若这些参数之间缺乏严格的数学约束,可能导致释放逻辑出现结构性错误,例如提前释放、永久锁仓或瞬时全部释放。在支持多阶段释放、参数可修改或批量创建 Vesting 的架构中,时间区间错配更容易发生,并可能影响所有受益人资金安全。此外,若未防止 end 计算溢出或时间倒退,也可能导致释放比例异常。
建议:在初始化和任何时间参数变更时必须进行完整一致性校验,确保 cliff 不早于 start、duration 大于零、end 严格等于 start 加 duration,并防止溢出。建议将时间计算逻辑集中在单一内部函数中统一处理,避免多处分叉计算造成逻辑不一致。
VET-02: 释放计算是否存在精度损失或尾差锁定风险?
描述:线性 Vesting 通常采用整数比例计算已归属数量,而 Solidity 的整数除法会向下取整,可能导致最后阶段存在微量余额无法释放的情况。若未在释放结束时进行兜底处理,可能产生永久锁仓 ...
Liquidation 安全
LIQ-01: 清算机制在极端行情下是否仍然有效?
描述:在快速下跌或剧烈波动行情中,如果清算逻辑执行效率不足、Gas 消耗过高、价格更新滞后或存在批量处理限制,可能导致抵押品价值迅速低于债务但系统未能及时清算,从而产生坏账并放大平台系统性风险。极端行情往往暴露清算路径的性能瓶颈与价格依赖问题。
建议:对极端市场条件进行压力测试与仿真分析,确保在高波动、高拥堵环境下清算机制仍可顺利执行,同时优化 Gas 结构与价格更新逻辑以提高鲁棒性。
LIQ-02: 抵押不足或违约时是否可以强制清算?
描述:若系统在抵押率低于阈值或贷款逾期时无法触发清算,或存在逻辑路径使某些头寸无法被清算,将直接威胁出借人资金安全。清算条件若存在计算错误或权限限制,也可能导致部分违约仓位长期存在。
建议:确保在抵押不足或贷款违约的任何情况下均可触发清算,并验证清算条件判断逻辑不存在绕过路径或边界异常。
LIQ-03: 是否存在自清算套利空间?
描述:若协议允许用户主动触发自身清算,且清算奖励结构设计不合理,用户可能通过构造仓位故意触发清算从中获利。这类“自清算套利”会削弱系统激励平衡,并可能 ...
Crosschain 安全
CC-01: 是否正确验证跨链消息来源(Message Authentication)?
描述:跨链消息若未严格校验 sourceChainId、sourceAddress 或签名验证逻辑,攻击者可能伪造消息,从目标链释放资产或执行 mint。
建议:合约应严格校验跨链消息的来源链 ID 与可信桥接合约地址,禁止仅依赖 msg.sender 进行判断。签名验证逻辑应采用标准化域分离机制(如 EIP-712),并确保签名数据中包含链 ID、目标合约地址及 nonce 等关键信息,从根本上避免伪造消息执行的风险。
CC-02: 是否防范 Replay Attack(重放攻击)?
描述:若跨链 payload 未记录 nonce 或 message hash,攻击者可重复提交同一跨链消息,多次提款。
建议:系统应为每条跨链消息设置唯一 nonce,并按链维度进行隔离管理。消息执行后必须立即将其标记为已处理,防止重复调用。同时建议使用 message hash 映射进行状态记录,并确保 nonce 单调递增且不可复用。
CC-03: 是否防范 Liquidity Imbalanc ...
Uniswap v4
Uniswap v4引言0.1 DeFi 的三次范式跃迁在理解 Uniswap v4 之前,我们必须先理解 DeFi 到底经历了什么变化。DeFi(去中心化金融)从最初的简单借贷和交易,到如今的复杂金融基础设施,其演进反映了区块链技术的成熟和用户需求的增长。
阶段
代表
本质
DeFi 1.0
Uniswap v1 / MakerDAO
单一金融产品
DeFi 2.0
Uniswap v3 / Aave v3
高效但刚性的金融协议
DeFi 3.0
Uniswap v4
金融基础设施 / 可编程内核
DeFi 1.0 时代,协议专注于解决特定问题,如 Uniswap v1 的代币交换或 MakerDAO 的稳定币借贷。这些产品虽然开创性,但功能单一,无法扩展到更复杂的金融场景。
DeFi 2.0 引入了效率提升,如 Uniswap v3 的集中流动性,允许 LP 在特定价格区间提供流动性,减少了资本浪费。然而,这些协议仍然高度刚性,所有逻辑都硬编码在合约中,难以适应市场变化或添加新功能。
现在,DeFi 3.0 以 Uniswap ...
MOVE漏洞总结
Move 语言智能合约安全:10 个经典漏洞深度剖析Move 是一种专为资产安全和可信赖性而设计的编程语言,它的核心理念是通过其独特的**资源类型系统(Resource Type System)**来从根本上防止资产被复制、意外销毁或丢失。它在编译时强制执行这些规则,从而在很大程度上避免了许多传统区块链语言中常见的致命漏洞,比如代币重复发行或意外丢失。
然而,尽管 Move 提供了强大的安全保障,但合约的安全性最终还是取决于开发者的设计和实现。不正确的逻辑、对 Move 特性的误解或编程上的疏忽,仍然可能引入严重的漏洞。
本文件将对 Move 智能合约中 10 个常见且潜在的漏洞类型进行深度剖析,旨在帮助开发者更好地理解语言陷阱,并编写出更健壮、更安全的合约。
1. 资产权限管理不当 (Improper Capability Management)核心原理:
在 Move 中,能力 (Capability) 是一种特殊的资源类型,它代表了对特定操作的权限。这是一种强大的访问控制机制,例如,一个 AdminCap 资源可以授予持有者调用管理函数的权限。这种模式比依赖于硬编码的地址更安 ...
move 学习
move: 单个程序被组织成一个包包:Move.toml和源文件Move.toml: 关于包的元数据源文件:模块的源代码move语言中的,模块下的成员都是私有的
在开发过程包没有地址,需要将其设置为0x0
sui的地址是32字节
账户是有私钥生成,并且又地址标识的,账户可以拥有对象,并且可以发送交易,每一笔交易有一个发件人,并且发件人由地址标识
基础模块move中的模块的所有成员都是模块的私有成员
用 module关键字后跟包地址,模块名称,分号和模块的主体.
模块是定义类型的核心程序单元。
基础语法:
module <address>::<identifier> { (<use> | <type> | <function> | <constant>)*}
注释行注释: // 即被编译器忽略的
阻止注释:/* 开头,结尾 */ ,注释多行,块注释,注释调代码块
文档注释:用于为伪代码生成文档的特殊注释。///
基本 ...
Notional Exponent 审计
Notional Exponent审计报告迁移pool池的功能,把迁移数设置为了不可变量当 Convex 的某个奖励池被废弃(例如旧的 pid 失效),并为同一个LP token分配了新的 pid 时,升级管理员可以执行“迁移”操作,将流动性从旧 pid 提取,再存入新的 pid。
但是,策略合约中记录的 pid 是不可变(immutable)的。这意味着策略合约本身仍会引用旧的 pid 和旧的奖励池(即旧的 yieldToken),即使底层资产已经迁移到了新的奖励池。结果是:策略的内部状态与 Convex 实际奖励池状态不一致,功能失效。
迁移资金时,没有注意还有其他的资金在另外一个地方
这个要根据分析迁移时的资金转移来看,必须得深入每一个调用链的关系.分析资金的走向
AbstractRewardManager::migrateRewardPool 函数允许管理员将当前奖励池迁移至一个新的奖励池。
在迁移过程中,合约会尝试先领取旧奖励池的奖励,然后再将资产转入新奖励池。但在调用链深入分析后发现,这个流程 忽略了 Convex 中“奖励暂存合约(stash)”中的奖励领取机制,导致部 ...
GMX协议遭受重入攻击损失4200万美美金
背景在2025年7月9号,也就是前不久,GMX协议在Arbitrum上遭黑客攻击,攻击的主要问题集中在 重入+share price 操控
常见的攻击模式:在 deposit/mint 中重入,通过再次 deposit或者 donate 的形式,操控 share price 导致 withdraw/redeem 的时候 share 价格相对于 deposit/mint 过程发生变化。从而实现立马获取收益
在这个合约中,并不是这样简单的重入(如果这样,早就被盗窃完了),仔细看代码,其实是 GMX 协议本身依赖外部合约进行重入保护,但是外部合约对用户地址存在 callback,且没有使用安全的callback 形式,导致用户绕过了外部的重入开关后,直接对 share price 价格进行操控。从而获利。
关于OPE
OPE 讴谱讴谱目标:O-P-EO: Optimization-优化
优化一个新体系p: Purification-净化
除去恶方面E: Evolution-进化
提升和扩大体系功能
五共思想共识:学区块链的第一步就是了解比特币以太坊,比特币的共识是POW,由于少数人可以控制节点权力,到以太坊所使用的共识就改进为POS,而我现在正在研究Solana的底层协议,它又是采用POH共识,通过历史时间证明,加快了交易的执行,是性能的优化。所以共识就是在不断发展,不断优化,符合大部分人的利益所认同的所接受的。OPE中提供就是按贡献分配这个共识,我就觉得有点和比特币POW有点相似,你做有效事的越多,你就收获的越多。
共创:打破垄断,一起创作,合作。在OPE世界中,是优缺互补,一起发挥各自的价值做好一件事
共生:我感觉就是没有竞争,互惠共利,比如现在的外卖大战,以前的购物平台纷纷宣布投入外卖市场,各家都拿出最大的优惠来竞争,如果各家都能拿出自己的资源,共同友好发展,就能实现利益最大化,不就是达到了一个共生的理念。
共治:现在社会都是上级传达命令,我们需要去服从命令,在OPE中的逻辑强调的事议定和 ...
sherlock-S-locker System
sherlock-S-locker System升级合同,常量发生改变现有正式合约中的 DOWNSCALER 为 1e16,而提议升级的合约中 DOWNSCALER 为 1e18,两者不一致,导致以下影响:
升级合约后新加入的质押者,在 lockedStakedBalance 相同的情况下,所获得的单位数(units)明显少于老质押者,分配收益时不公平。
升级合约后,如果已有质押者追加较少(少于100倍)的质押金额,其单位数反而会减少,获得的税收分成变少。
质押者可能会提前操作,在合约升级前抢先质押,以获得更多单位数并获取更大的税收分成。
抢跑攻击,在知晓分配收益时,扩大自己的份额,获取更多的收益在解锁获得惩罚金时,攻击者提前知道,然后通过提供流动性或者质押金额,去分配获益
某个用户准备进行立即解锁(instant unlock)。
恶意的 Locker 拥有者在此之前增加自己的流动性或质押额度。
_instantUnlock 被调用,惩罚金被分配给当前的 LP 和质押者。
恶意 Locker 拥有者因持有单位(units)而获得部分惩罚金收益。
获取收益后,立即撤 ...
