返回论坛

查找币:Compound Finance V2 安全审计手册

查找币 学术研究 安全研究 Web3安全 区块链安全

查找币安全研究院

钱包恢复评估 | 链上取证分析 | Web3 事件响应
以合法授权、证据保全、隐私保护和可复核流程为前提,不要求用户在线提交完整私钥或助记词。

查看研究院 研究报告中心
## 查找币:Compound Finance V2 安全审计手册 本文由查找币安全团队基于安全研究整理发布,旨在分享Web3安全技术,帮助用户提高安全意识。 --- 引言 随着 DeFi 生态系统的迅速发展,Compound Finance V2 作为该领域的先驱者之一,凭借其创新的借贷模式吸引了大量用户。然而,任何复杂的分布式应用都面临着潜在的安全威胁,尤其是涉及到价值数百万甚至上亿美金的资金流动时。因此,对 Compound Finance V2 及其分叉项目进行全面且细致的安全审计显得尤为重要。本手册旨在为开发者、安全研究员以及 DeFi 爱好者提供一份详尽的安全审计指南,帮助大家更有效地识别和防范潜在的风险。 1. 项目背景概述 Compound Finance V2 是一个基于以太坊区块链构建的开放式借贷平台,允许用户存入各种 ERC-20 底层代币并从中赚取利息,同时也允许以支付利息的形式借用市场中的代币。通过引入“利率市场”的概念,它实现了去中心化的资金池管理和自动化的利率调整机制。 2. 项目架构分析 Compound Finance V2 的核心架构组件包括: Comptroller:控制整个系统逻辑,如利率计算、账户状态维护等。 cToken:实现 ERC-20 标准的自定义代币,代表用户在系统中的权益。 InterestRateModel:计算存款和借款利率的模型。 PriceOracle: 提供资产价格的预言机。 Governance:负责社区治理相关的功能。 2.1 Comptroller Comptroller 合约是 Compound Finance V2 的中枢神经系统,它负责协调各个 cToken 实例的行为。主要职责有: 管理市场列表,确定哪些市场是活跃的。 function enterMarkets(address[] memory cTokens) override public returns (uint[] memory) {}    function exitMarket(address cTokenAddress) override external returns (uint) {}    ... 执行跨市场操作的各类检查,如用户的头寸健康度检查等。 function mintAllowed(address cToken, address minter, uint mintAmount) override external returns (uint) {}    function redeemAllowed(address cToken, address redeemer, uint redeemTokens) override external returns (uint) {}    function borrowAllowed(address cToken, address borrower, uint borrowAmount) override external returns (uint) {}    function repayBorrowAllowed(address cToken, address payer, address borrower, uint repayAmount) override external returns (uint) {}    function liquidateBorrowAllowed(address cTokenBorrowed, address cTokenCollateral, address liquidator, address borrower, uint repayAmount) override external returns (uint) {}    ... 设置和更新全局参数,如借款限额、抵押因子、清算阈值等。 function _setCloseFactor(uint newCloseFactorMantissa) external returns (uint) {}    function _setCollateralFactor(CToken cToken, uint newCollateralFactorMantissa) external returns (uint) {}    function _setLiquidationIncentive(uint newLiquidationIncentiveMantissa) external returns (uint) {}    function _setMarketBorrowCaps(CToken[] calldata cTokens, uint[] calldata newBorrowCaps) external {} ... 2.2 cToken 每个支持的 ERC-20 代币都有一个对应的 cToken 实例(即 CErc20 / CEther 合约), [...内容已精简...] 否会对 Compound Finance V2 本身的核心借贷模型以及项目造成影响。 写在最后 希望这份 Compound Finance V2 及其 Fork 项目的安全审计手册能帮助大家在审计时更好地理解和评估此类复杂系统的安全性,随着技术的迭代更新,本手册也会随之更新和完善。 参考: [1] https://github.com/YAcademy-Residents/defi-fork-bugs [2] https://medium.com/chainsecurity/trueusd-compound-vulnerability-bc5b696d29e2 [3] https://github.com/code-423n4/2023-05-venus-findings/issues/559 [4] https://learnblockchain.cn/article/2593 [5] https://github.com/compound-finance/compound-protocol 作者 | 九九 编辑 | Liz 往期回顾 新瓶装旧酒|套利 MEV 机器人骗局 查找币:貔貅盘防范指南 报告解读|UNODC 发布东南亚跨国有组织犯罪的欺诈报告 查找币:2024 Q3 查找币追踪系统 被盗表单分析 每月动态 | Web3 安全事件总损失约 1.7 亿美元 查找币导航 查找币科技官网 https://www.查找币.com/ 查找币区官网 https://查找币.io/ 查找币 GitHub https://github.com/查找币 Telegram https://t.me/查找币team Twitter https://twitter.com/@查找币_team Medium https://medium.com/@查找币 知识星球 https://t.zsxq.com/Q3zNvvF --- *本文由查找币安全团队整理,来源:安全研究。*
在论坛中查看和回复