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

评论

所有评论

推荐阅读

  • 6月9日晚间重要动态一览

    12:00-21:00关键词:Turnkey、美国加州、Strategy、Tether 1.Tether在Tron网络铸造10亿枚USDT 2.加密钱包Turnkey完成3000万美元B轮融资 3.美国加州州长纽森:将对特朗普政府提起诉讼 4.Strategy上周耗资1.1亿美元购入1045枚比特币 5.中美经贸磋商机制首次会议在英国伦敦开始举行 6.Tether计划第四季度开源比特币矿机操作系统MOS 7.CoinShares:上周数字资产投资产品净流入2.86亿美元 8.The Blockchain Group联合TOBAM启动3亿欧元比特币增资计划

  • 中美经贸磋商机制首次会议在英国伦敦开始举行

    当地时间6月9日,中共中央政治局委员、国务院副总理何立峰与美方在英国伦敦开始举行中美经贸磋商机制首次会议。

  • 特朗普:密切关注洛杉矶,将向任何地方派军

    美国总统特朗普8日就加利福尼亚州洛杉矶骚乱表示,联邦政府“将向任何地方派遣军队”。美国军方同一天说,大约500名海军陆战队人员正在待命。特朗普告诉媒体记者,洛杉矶的抗议活动是“暴乱”,“我们将向任何地方派遣军队”,“不会让施暴者逍遥法外”。

  • 24 小时反转!马斯克刚递橄榄枝,特朗普宣判「关系终结」

    特朗普终极通牒:马斯克敢资助民主党,就准备「付出代价」!

  • 花旗:预计美联储将在2026年1月和3月(累计)降息50个基点

    花旗:预计美联储将在2026年1月和3月(累计)降息50个基点。

  • 特朗普称决不允许国家撕裂

    美国总统特朗普当地时间6月8日下午在新泽西州换乘“空军一号”登机前对媒体表示,洛杉矶存在“暴力分子”,“还冲执法人员吐口水、投掷东西”,但他们“吐口水就得挨揍”,“他们休想逍遥法外”。当被问及是否计划向洛杉矶派遣军队时,特朗普回应称,“我们将在各地部署军队,绝不允许国家被撕裂,不会重蹈拜登任内的覆辙。”特朗普同时警告称,阻挠非法移民驱逐行动的加州官员将面临指控。

  • 美联储任命 Michael Horowitz 担任新一任监察长,负责内部监督

    美联储近日宣布,迈克尔·霍洛维茨(Michael Horowitz)将出任美联储新任监察长。霍洛维茨接替自 2011 年起担任该职并于今年4月退休的Mark Bialek。作为美联储监察长,他还负责对消费者金融保护局(CFPB)进行独立监督。他此前的职务是司法部监察长(IG)。美联储的监察长是由主席挑选的,这在政府监管机构中不同寻常。一些参议员认为,这种安排使监察长无法对美联储进行真正的监督,他们已提出立法,要求由总统来挑选监察长,然后经参议院确认。在美联储内幕交易风波后,美联储监察长成为公众关注的焦点,该机构负责评判一些联储官员的交易行为是否符合道德要求。

  • 去中心化人工智能公司RabitiAI完成500万美元融资

    去中心化人工智能公司RabitiAI宣布完成500万美元融资,Nortiyus领投,新资金拟用于支持其构建工具和基础设施,使用户能够在基于跨区块链的架构上部署和管理人工智能模型,目前其解决方案主要应用于医疗、金融和物流等领域,预计将于今年Q3发布企业级商业版本去中心化AI工具。

  • 日本参议院通过《资金结算法》修正案,确立加密资产中介业新制度

    日本参议院于 6 月 6 日通过《资金结算法》修正案,确立 “加密资产中介业” 新制度,允许企业在无需注册为加密资产交换业者的前提下,从事撮合服务,旨在降低市场准入门槛、推动加密金融创新。 修正案还新增 “国内保有命令”条款,赋予政府在必要时命令平台将部分用户资产留存在日本境内的权力,以防止类似 FTX 破产事件造成的资产外流风险。新法预计将在公布日起一年内正式施行。

  • 何立峰将访问英国并举行中美经贸磋商机制首次会议

    外交部发言人宣布:应英国政府邀请,中共中央政治局委员、国务院副总理何立峰将于 6 月 8 日至 13 日访问英国。其间,将与美方举行中美经贸磋商机制首次会议。