Cointime

扫码下载App
iOS & Android

链上安全分析报告:iZiFinance智能合约中心化风险分析报告

项目方

iZiFinance 是一个利用 zkSync 的去中心化金融协议,zkSync 是以太坊的一个二层扩容解决方案。zkSync 可以在以太坊上实现快速和低成本的交易,同时保留了一层网络的安全性和可组合性。然而,在 zkSync 上进行智能合约开发时,gas 优化仍然是一个重要的方面,因为它影响了协议的性能和盈利能力。

在这个分析中,我们将检查 iZiFinance 的一个核心合约,iZiSwapPool.sol,并找出一种通过消除一个多余的表达式来减少 gas 消耗的简单方法。

iZiSwapPool合约

The iZiSwapPool 合约实现了 iZiFinance 上的流动性池和代币交换的逻辑,它遵循了 IiZiSwapPool 接口,该接口定义了合约的函数和事件。其中一个函数是 modifyFeeChargePercent,它允许合约的所有者调整每个池的费用收取百分比。费用收取百分比是一个参数,它决定了交换费用在流动性提供者和协议之间的分配。modifyFeeChargePercent 函数的代码如下:

该函数接受一个 uint24 类型的参数,叫做 newFeeChargePercent,它表示要设置的新的费用收取百分比。它还有一些修饰符和 require 语句,以确保只有所有者可以调用该函数,并且 newFeeChargePercent 是有效的。代码分析这段合约代码是用 Solidity 写的,表示一个修改费用收取百分比的函数。它似乎是以一种安全的方式设计的,考虑到在进行实际修改之前应用的限制(第 534-536 行)。

然而,第 535 行 require(newFeeChargePercent >= 0, "FP0"); 实际上是不必要的。这是因为在 Solidity 中,uint(无符号整数)数据类型不能为负。uint24 是一个无符号整数类型,范围是从 0 到 2^24 - 1。

因此,检查 newFeeChargePercent 是否大于或等于 0 是同义反复,因为根据定义,一个无符号整数不能小于 0。因此,这一行构成了一个同义反复,可以在不影响代码功能或引入任何安全漏洞的情况下安全地移除。紧接着它的那一行,require(newFeeChargePercent <= 100, "FP0");,就足以确保 newFeeChargePercent 在期望的范围内(0-100)。

中心化风险

我们还发现了一些可能损害协议安全性和用户资产安全的中心化风险。

安全建议

对于iZiFinance项目方来说,这里有 10 条安全小提示以保护用户的链上资产免受中心化风险的影响。

  1. 对 setFarm() 和 setWrapToken() 等关键函数施加时间锁,只允许在未来指定的时间进行修改,给社区时间讨论和达成共识
  2. 要求多个钱包地址的多重签名批准才能调用 enableFeeAmount() 和 newPool() 等影响费用和奖励的函数
  3. 为 expandObservationQueue() 和 collectFeeCharged() 等函数实现基于角色的访问控制,限制只有指定角色才能调用
  4. 在合约部署时,使 startBlock、endBlock、rewardPerBlock 等核心参数不可变,不允许后续更改
  5. 建立一个 DAO 治理结构,要求对敏感函数的调用需要社区提案和投票
  6. 采用模块化架构,分离职责,避免任何单个模块过度集中化
  7. 建立一个带有多重签名认证的紧急停止机制,如果出现问题,可以暂停协议
  8. 定期进行外部安全审计,并及时处理发现的问题,以降低中心化控制风险
  9. 在开发过程中,采用模糊测试和其他方法来识别和消除中心化控制漏洞
  10. 遵循最小特权原则,只给予角色和账户必要的最小权限

这些中心化风险源于合约所有者可能对合约的参数和函数有过度的控制,这或许能让所有者操纵协议或伤害用户。我们也希望这篇分析能为改进 iZiFinance 的智能合约提供一些有用的见解和安全建议。

Follow Us

Twitter: @MetaTrustLabs

Website: metatrust.io

评论

所有评论

推荐阅读

  • BTC跌破88000美元

    行情显示,BTC跌破88000美元,现报87952.61美元,24小时跌幅达到1.19%,行情波动较大,请做好风险控制。

  • CME Group将推出现货报价的XRP和SOL期货

    衍生品市场 CME Group今天推出了现货报价的XRP和 SOL 期货。现货报价的XRP和 SOL 期货将与现有的现货报价比特币和以太坊期货形成互补,并可在包括标普 500 指数、纳斯达克 100 指数、罗素 2000 指数和道琼斯工业平均指数在内的四大美国股指中进行交易。此外,这些合约允许投资者以现货市场价格交易期货头寸,并具有更长的到期日优势——无需定期展期。

  • 特斯拉股价接近一年来高位,最新上涨4.1%

    特斯拉股价接近一年来高位,最新上涨4.1%。

  • 英伟达发布新版开源AI模型 宣称“更快、更便宜、更智能”

    周一,英伟达(NVDA.O)发布了一系列新的开源人工智能模型,并表示这些模型将比其之前的产品更快、更便宜、更智能。英伟达主要以提供芯片而闻名,OpenAI等公司使用这些芯片来训练其闭源模型并从中获利。但英伟达也提供大量自有模型,涵盖从物理模拟到自动驾驶汽车等各个领域,这些模型以开源软件的形式提供给研究人员或其他公司使用,例如Palantir Technologies等公司已将英伟达的模型集成到其产品中。英伟达周一公布了第三代“Nemotron”大语言模型,主要面向写作、编程等任务。其中最小的模型Nemotron 3 Nano已于当天发布,另外两个更大版本将在2026年上半年推出。与此同时,有报道称,Meta Platforms(META.O)正在考虑转向闭源模型,这使得英伟达成为美国最主要的开源模型提供者之一。

  • Ondo Finance 将于 2026 年初在 Solana 链上推出其代币化股票和 ETF 平台

    Ondo Finance 在 X 平台宣布,其代币化股票和 ETF 平台将于 2026 年初在 Solana 链上上线。Ondo 表示,这是目前规模最大的代币化股票和 ETF 平台,旨在将华尔街流动性引入互联网资本市场。

  • BitMine自12月以来已增持超33万枚ETH

    据BitMine披露信息显示,BitMine近三周分别增持96,798枚ETH、138452枚ETH、102259枚ETH。自12月1日以来半个月,共计增持337509枚ETH,总持仓量达3,967,210枚ETH,距离“收购以太坊总量5%”的目标已完成三分之二。

  • VISA 推出稳定币咨询业务以跟上加密浪潮

    据财富杂志,VISA 推出稳定币咨询业务以跟上加密浪潮。

  • JPMorgan 推出首只代币化货币市场基金

    据华尔街日报报道,JPMorgan Chase 正式推出其首只代币化货币市场基金,标志着这家银行业巨头在区块链技术应用方面迈出重要一步。该私募基金将在以太坊区块链上运行,面向合格投资者开放。JPMorgan 将向该基金注入 1 亿美元的自有资金作为启动资金。

  • 白银危机,当纸面体系开始失灵

    当音乐停止时,只有拿着真金白银的才能安然入座。

  • BTC突破90000美元

    行情显示,BTC突破90000美元,现报90027.93美元,24小时跌幅达到0.35%,行情波动较大,请做好风险控制。