安全与审计

在 金星协议,我们始终致力于为用户提供最高级别的安全保障。在整个智能合约开发生命周期中,我们严格遵循行业最佳实践,以维护平台的完整性。为了进一步加强安全措施,我们与业内知名的审计公司开展合作。这些合作关系使我们能够对协议进行全面的安全评估,从而有效保障用户资金安全。

金星 协议的安全是我们的重中之重。我们的开发团队与第三方审计师和顾问携手合作,投入了大量精力,打造出我们自信认为安全可靠的协议。我们重视透明度,所有合约代码和余额均可公开验证。此外,我们还为报告未发现漏洞的安全研究人员提供漏洞赏金计划,鼓励持续改进和保持警惕。

我们坚信,衡量智能合约安全性的真正标准在于其规模、可见性和持久性。因此,我们敦促用户谨慎行事,并对我们协议的安全性和适用性进行独立评估。

审计

效率E模式E-Mode

范围:BNB 链核心池中的 E-Mode 支持。

Detailed scope
  • Pull request #614 in the venus-protocol repository:

    • contracts/Comptroller/Diamond/facets/FacetBase.sol

    • contracts/Comptroller/Diamond/facets/MarketFacet.sol

    • contracts/Comptroller/Diamond/facets/PolicyFacet.sol

    • contracts/Comptroller/Diamond/facets/RewardFacet.sol

    • contracts/Comptroller/Diamond/facets/SetterFacet.sol

    • contracts/Comptroller/Diamond/interfaces/IFacetBase.sol

    • contracts/Comptroller/Diamond/interfaces/IMarketFacet.sol

    • contracts/Comptroller/Diamond/interfaces/ISetterFacet.sol

    • contracts/Comptroller/Diamond/Diamond.sol

    • contracts/Comptroller/ComptrollerInterface.sol

    • contracts/Comptroller/ComptrollerLensInterface.sol

    • contracts/Comptroller/ComptrollerStorage.sol

    • contracts/Comptroller/Types/PoolMarketId.sol

    • contracts/InterfacesV8.sol

    • contracts/Lens/ComptrollerLens.sol

    • contracts/Lens/VenusLens.sol

    • contracts/Liquidator/Liquidator.sol

    • contracts/Tokens/VAI/VAIController.sol

    • contracts/Tokens/VTokens/VToken.sol

    • contracts/Utils/ErrorReporter.sol

风险管家 V1 和核心资金池控制员接口与独立资金池的兼容性

范围:Venus 风险管家合约,与 Chaos Labs 的风险预言机合约兼容。这些管家被授权执行风险参数变更(最初仅增加供应量和借贷上限),无需 VIP。此外,BNB 链上的控制员合约接口已扩展,包含独立资金池控制员合约中定义的功能,从而简化了与两个控制员合约的交互。已在 VIP-544 中启用。

详细范围
  • governance-contracts 仓库中提交的拉取请求 #115

  • contracts/RiskSteward/RiskStewardReceiver.sol – 该功能的入口点

  • contracts/RiskSteward/MarketCapsRiskSteward.sol

  • contracts/RiskSteward/IRiskSteward.sol

  • contracts/RiskSteward/IRiskStewardReceiver.sol

  • 与外部合约的接口:

  • contracts/interfaces/ICorePoolComptroller.sol

  • contracts/interfaces/IIsolatedPoolsComptroller.sol

  • contracts/interfaces/IRiskOracle.sol

  • contracts/interfaces/IVToken.sol

  • venus-protocol 仓库中提交的拉取请求 #548

  • contracts/Comptroller/Diamond/facets/MarketFacet.sol

  • contracts/Comptroller/Diamond/facets/PolicyFacet.sol

  • contracts/Comptroller/Diamond/facets/SetterFacet.sol

  • contracts/Comptroller/Diamond/interfaces/IMarketFacet.sol

  • contracts/Comptroller/Diamond/interfaces/IPolicyFacet.sol

  • contracts/Comptroller/Diamond/interfaces/ISetterFacet.sol

原生代币网关升级

范围NativeTokenGateway 合约 升级,使其与 BNB 链上的核心池兼容。已在 VIP-543 中启用

详细范围
  • Pull request #8

  • contracts/Gateway/Interfaces/IVToken.sol

  • contracts/Gateway/INativeTokenGateway.sol

  • contracts/Gateway/Interfaces/IWrappedNative.sol

  • contracts/Gateway/NativeTokenGateway.sol

Venus ERC4626 金库

范围:Venus 市场针对独立资金池的 ERC-4626 封装,可与遵循 ERC-4626 标准的外部 DeFi 协议无缝集成。

详细范围
  • isolated-pools 代码库中提交了拉取请求 #497

  • contracts/ERC4626/VenusERC4626.sol

  • contracts/ERC4626/VenusERC4626Factory.sol

  • contracts/ERC4626/Interfaces/IComptroller.sol

  • contracts/ERC4626/Interfaces/IProtocolShareReserve.sol

  • contracts/ERC4626/Interfaces/IRewardsDistributor.sol

  • protocol-reserve 仓库中的拉取请求 #137

  • contracts/Interfaces/IProtocolShareReserve.sol

asBNB 预言机

范围:关联预言机,用于获取 BNB 链上 asBNB 代币的价格,首先考虑链上 asBNBslisBNB 的转换率。

详细范围
  • Pull Request #275

  • 文件:

  • contracts/oracles/AsBNBOracle.sol

zkETH 预言机

范围:关联预言机,用于获取价格在 ZKsync 上,zkETH 代币的价格首先考虑链上 zkETH 到 rzkETH 的转换率。

详细范围
  • Pull Request #269

  • 文件:

  • contracts/oracles/ZkETHOracle.sol

ERC4626 预言机

范围:关联预言机,用于获取 ERC4626 代币的价格,并考虑首先计算 ERC4626 代币与其底层代币的链上转换率。

详细范围
  • Pull Request #253

  • 文件:

  • contracts/oracles/ERC4626Oracle.sol

PendleOracle 升级

范围:升级当前 PendleOracle 合约的实现,使其支持 Pendle 的 getPtToSyRate() 函数。这样就可以添加收益代币作为基础,而无需直接使用底层资产。

详细范围
  • Pull Request #240

  • 文件:

  • contracts/oracles/PendleOracle.sol

  • contracts/interfaces/IPendlePtOracle.sol

ACMCommandsAggregator

范围ACMCommandsAggregator 是一个无需许可的合约,将部署到远程网络。 (除 BNB 链之外的所有网络),以便于在每个网络的 AccessControlManager 中配置(授予和撤销)权限。

详细范围
  • Pull Request #90

  • 文件:

  • contracts/Utils/ACMCommandsAggregator.sol

双拐点利率

范围:为核心资金池(此处)和独立资金池(此处)开发新的利率模型,支持两种不同的拐点,因此支持三种不同的斜率。已在 VIP-385 中启用。

详细范围

支持核心池

  • Pull Request #494

  • 文件:

  • contracts/InterestRateModels/InterestRateModelV8.sol

  • contracts/InterestRateModels/TwoKinksInterestRateModel.sol

支持独立池

  • Pull Request #417

  • 文件:

  • contracts/TwoKinksInterestRateModel.sol

取消市场上市

范围:修改 isolated poolscore 合约,以支持取消市场上市。修复核心池中借款上限设置为零时的行为。已在 VIP-361 中启用。

<详情>

<摘要>详细信息范围

取消列出市场

  • venus-protocol 代码库中的拉取请求 #429

  • 更改:允许治理机制从 Comptroller 合约中逻辑删除市场

  • contracts/Comptroller/Diamond/facets/MarketFacet.sol

  • contracts/Comptroller/Diamond/facets/PolicyFacet.sol

  • isolated-pools 代码库中的拉取请求 #349

  • 更改:允许治理机制从 Comptroller 合约中逻辑删除市场

  • 文件:contracts/Comptroller.sol

修复借款上限 0 的逻辑

  • 提交了 venus-protocol 代码库中的 Pull Request #438

  • 更改:之前,借用上限为 0 表示无上限。这容易出错。根据新的逻辑,借贷上限为 0 将不允许新的借贷

  • contracts/Comptroller/ComptrollerStorage.sol

  • contracts/Comptroller/Diamond/facets/PolicyFacet.sol

  • contracts/Comptroller/Diamond/facets/SetterFacet.sol

以太坊上 Ether.fi LRT 代币(weETHs 和 weETHk)的预言机

范围:以太坊上 weETHsweETHk 代币的特定预言机底层采用的是由 Ether.fi 项目提供的“会计”合约。已在 VIP-355 中启用。

详细范围
  • Pull request #213

  • contracts/oracles/WeETHAccountantOracle.sol

  • contracts/interfaces/IAccountant.sol

VBNBAdmin:新增函数 setInterestRateModel

范围:更新 VBNBAdmin 合约,将 AccessControlManager 集成到 setInterestRateModel 函数中此功能将允许授权更多时间锁(不仅限于普通时间锁)来执行此功能,因此快速通道和关键 VIP 将能够更新 VBNB 市场的利率模型。此功能已在 VIP-343 中启用。

详细范围
  • Pull request #487

  • contracts/Admin/VBNBAdmin.sol

  • contracts/Admin/VBNBAdminStorage.sol

以太坊上的 sfrxETH 预言机

范围:特定代币的预言机sfrxETH 运行于以太坊上,底层使用由 FRAX 项目 提供的 SfrxEthFraxOracle 预言机。已在 VIP-329 中启用。

详细范围
  • Pull request #191

  • contracts/oracles/SFrxETHOracle.sol

多链治理

范围:跨链消息传递,在非 BNB 链上执行 VIP。Venus 集成了 多链治理。已在 VIP-330VIP-331 中启用。

详细范围
  • Pull request #21

  • contracts/Cross-chain/BaseOmnichainControllerDest.sol

  • contracts/Cross-chain/BaseOmnichainControllerSrc.sol

  • contracts/Cross-chain/OmnichainExecutorOwner.sol

  • contracts/Cross-chain/OmnichainGovernanceExecutor.sol

  • contracts/Cross-chain/OmnichainProposalSender.sol

  • contracts/Cross-chain/interfaces/IGovernananceBravoDelegate.sol

  • contracts/Cross-chain/interfaces/ITimelock.sol

  • contracts/Governance/TimelockV8.sol

main

基于时间的合约和 XVS 奖励扣押

范围:[隔离的]中的更改为了支持区块生成速率不恒定的区块链(例如 Arbitrum 区块链),我们开发了 poolscoreoracle 合约。此外,我们还为 Core 池添加了通过 VIP 提取 XVS 奖励的功能。

详细范围
  • isolated-pools 代码库中提交拉取请求 #324

  • 变更:基于时间戳的独立借贷合约

  • contracts/JumpRateModelV2.sol

  • contracts/Lens/PoolLens.sol

  • contracts/Rewards/RewardsDistributor.sol

  • contracts/Rewards/RewardsDistributorStorage.sol

  • contracts/Shortfall/Shortfall.sol

  • contracts/Shortfall/ShortfallStorage.sol

  • contracts/VToken.sol

  • contracts/VTokenInterfaces.sol

  • contracts/WhitePaperInterestRateModel.sol

  • contracts/lib/constants.sol

  • venus-protocol 代码库中提交的 Pull Request #418

  • 变更:基于时间的 XVSVault

  • contracts/XVSVault/TimeManagerV5.sol

  • contracts/XVSVault/XVSVault.sol

  • contracts/XVSVault/XVSVaultStorage.sol

  • oracle 代码库中提交的 Pull Request #128

  • 变更:为 Chainlink Oracle 添加 Arbitrum 序列器停机时间验证

  • contracts/oracles/SequencerChainlinkOracle.sol

  • contracts/oracles/ChainlinkOracle.sol

  • 变更:使用可用现金减少储备金

  • 已在 venus-protocol 代码库中提交拉取请求 #414

  • contracts/Tokens/VTokens/VToken.sol

  • 已在 venus-protocol 代码库中提交拉取请求 #337

  • contracts/VToken.sol

  • 已在 venus-protocol 代码库中提交拉取请求 #417

  • 变更:扣押 XVS 奖励

  • contracts/Comptroller/Diamond/facets/RewardFacet.sol

  • 已在 venus-protocol 代码库中提交拉取请求 [#410] https://github.com/VenusProtocol/venus-protocol/pull/410 位于 venus-protocol 代码库中

  • 变更:动态设置 XVS 和 XVSVToken 的地址

  • contracts/Comptroller/ComptrollerStorage.sol

  • contracts/Comptroller/Diamond/Diamond.sol

  • contracts/Comptroller/Diamond/facets/FacetBase.sol

  • contracts/Comptroller/Diamond/facets/RewardFacet.sol

  • contracts/Comptroller/Diamond/facets/SetterFacet.sol

VAI 控制器

范围VAIController 合约,用于修复 VAI 清算期间查封金额的计算方式,计算时需考虑原始 VAI 债务及其产生的利息。已在 VIP-299 中启用。

详细范围
  • Pull request #467

  • contracts/Tokens/VAI/VAIController.sol

XVS 桥接 - 网状架构

范围:启用 BNB 链以外的网络之间的 XVS 转账,例如以太坊主网和 opBNB 主网之间的转账。详细范围。已在 VIP-292 中启用。

相关代币预言机

范围:一组预言机,用于那些价格与另一种代币价格高度相关的代币。此定义包括流动性质押代币(例如 wsETHweETHWBETHankrBNB)。 BNBx, slisBNB, stkBNB), ERC-4226 代币(类似sFRAXsfrxETH) 以及任何可在链上转换为其他代币的代币(例如 Pendle PT 代币)。VIP-290 中已启用 WeETHOracleAnkrBNBOracleBNBxOracleSlisBNBOracleStkBNBOracle 已在 VIP-293 中启用。

详细范围
  • Pull request #165

  • contracts/oracles/AnkrBNBOracle.sol

  • contracts/oracles/BNBxOracle.sol

  • contracts/oracles/OneJumpOracle.sol

  • contracts/oracles/PendleOracle.sol

  • contracts/oracles/SFraxOracle.sol

  • contracts/oracles/SFrxETHOracle.sol

  • contracts/oracles/SlisBNBOracle.sol

  • contracts/oracles/StkBNBOracle.sol

  • contracts/oracles/WBETHOracle.sol

  • contracts/oracles/WeETHOracle.sol

  • contracts/oracles/WstETHOracle.sol

  • contracts/oracles/common/CorrelatedTokenOracle.sol

原生代币网关

范围NativeTokenGateway 合约,该合约促进与底层代币为原生代币封装版本的市场进行交互(借贷、供应、偿还和赎回)(例如以太坊上的 WETH 或 BNB 链上的 BNB)。已在 VIP-276 中启用。

详细范围
  • Pull request #361

  • contracts/Comptroller.sol

  • contracts/ComptrollerStorage.sol

  • contracts/Gateway/Interfaces/IVtoken.sol

  • contracts/Gateway/Interfaces/IWrappedNative.sol

  • contracts/Gateway/NativeTokenGateway.sol

  • contracts/VToken.sol

  • contracts/VTokenInterfaces.sol

  • Pull request #442

  • contracts/Tokens/VTokens/VBep20.sol

  • contracts/Tokens/VTokens/VToken.sol

  • contracts/Comptroller/Diamond/facets/MarketFacet.sol

wstETH 的预言机

范围wstETH 的预言机,使用以太坊上 stETH 合约提供的汇率 wstETH/stETH,假设转换率 stETH:ETH 为 1:1,并使用 Resilient Oracles 将 ETH 转换为 USD

详细范围
  • oracle 代码库中的拉取请求 #155

  • contracts/oracles/WstETHOracle.sol

代币转换器

范围代币转换器合约。这些合约将允许协议根据代币经济学将产生的收入转换为所需的代币。已在 VIP-245VIP-248 中启用。

详细范围
  • protocol-reserve 代码库中的 Pull Request #9

  • contracts/TokenConverter/AbstractTokenConverter.sol

  • contracts/TokenConverter/IAbstractTokenConverter.sol

  • contracts/TokenConverter/RiskFundConverter.sol

  • contracts/TokenConverter/XVSVaultConverter.sol

  • contracts/ProtocolReserve/RiskFundStorage.sol

  • contracts/ProtocolReserve/RiskFundV2.sol

  • contracts/ProtocolReserve/XVSVaultTreasury.sol

  • contracts/Utils/Constants.sol

  • contracts/Utils/Validators.sol

  • protocol-reserve 代码库中的 Pull Request #35

  • contracts/Interfaces/IConverterNetwork.sol

  • contracts/TokenConverter/AbstractTokenConverter.sol

  • contracts/TokenConverter/ConverterNetwork.sol

  • contracts/TokenConverter/IAbstractTokenConverter.sol

  • contracts/TokenConverter/RiskFundConverter.sol

  • contracts/TokenConverter/SingleTokenConverter.sol

  • contracts/Utils/ArrayHelpers.sol

XVS 桥接和多链部署

范围token-bridge 代码库,其中包含允许 XVS 代币从 BNB 桥接到其他 EVM 兼容网络(例如以太坊)的合约。扩展 OFTV2 LayerZero 合约,添加自定义安全规则。XVS 和 TokenController 合约,用于目标链(最初为以太坊主网、Arbitrum One、Polygon zkEVM 和 opBNB)。此外,审计范围还包括:新的 VTreasuryV8 合约,以及对 Resilient OracleIsolated pools 的修改,使其与其他网络兼容。这些修改已在 VIP-232 中启用。

详细范围

金星主星

范围PrimePrimeLiquidityProvider 合约,用于管理 Prime 代币的资格和奖励分配。

已在 VIP-201VIP-202VIP-203VIP-206VIP-210 中启用。已在 VIP-225 中更新。

详细范围
  • 核心池代码库中的拉取请求 #196

  • Prime 功能:

  • contracts/Tokens/Prime/IPrime.sol

  • contracts/Tokens/Prime/Prime.sol

  • contracts/Tokens/Prime/PrimeStorage.sol

  • contracts/Tokens/Prime/PrimeLiquidityProvider.sol

  • Comptroller 集成:

  • contracts/Comptroller/ComptrollerStorage.sol

  • contracts/Comptroller/Diamond/facets/PolicyFacet.sol

  • contracts/Comptroller/Diamond/facets/SetterFacet.sol

  • XVSVault 集成:

  • contracts/XVSVault/XVSVault.sol

  • contracts/XVSVault/XVSVaultStorage.sol

  • 库:

  • contracts/Tokens/Prime/libs/Scores.sol

  • contracts/Tokens/Prime/libs/FixedMath.sol

  • contracts/Tokens/Prime/libs/FixedMath0x.sol

  • Venus Prime 更新。已在 VIP-225 中启用。

  • Pull request #407

  • contracts/Tokens/Prime/IPrime.sol

  • contracts/Tokens/Prime/Interfaces/IPrime.sol

  • contracts/Tokens/Prime/Prime.sol

  • contracts/Tokens/Prime/PrimeLiquidityProvider.sol

  • contracts/Tokens/Prime/PrimeStorage.sol

  • contracts/Utils/TimeManager.sol

  • contracts/Tokens/VAI/VAIController.sol

  • contracts/Tokens/VAI/VAIControllerStorage.sol

  • Pull request #327

  • contracts/Comptroller.sol

  • contracts/ComptrollerStorage.sol

  • contracts/VToken.sol

自动收益分配

范围:修改核心池和IL池(包括VBNB市场)的VToken合约,将利息储备自动发送到新的ProtocolShareReserve合约,该合约将根据项目的代币经济模型,按照配置的规则分配收益。已在VIP-189VIP-192VIP-193VIP-194中启用。

<详情>

<摘要>详细范围</摘要>

-核心池 - 利息储备:

  • Pull request:https://github.com/VenusProtocol/venus-protocol/pull/262

  • 文件:

  • contracts/Tokens/VTokens/VToken.sol

  • contracts/Tokens/VTokenInterfaces.sol

  • contracts/Utils/ErrorReporter.sol

  • 收取 BNB 收益:

  • Pull request:https://github.com/VenusProtocol/venus-protocol/pull/289

  • 文件:

  • contracts/Admin/VBNBAdmin.sol

  • contracts/Admin/VBNBAdminStorage.sol

  • 隔离池 - 清算和利息储备:

  • Pull request:https://github.com/VenusProtocol/isolated-pools/pull/207

  • 文件:

  • contracts/VToken.sol

  • contracts/VTokenInterfaces.sol

  • 分配收取的收益 - ProtocolShareReserve 合约

  • 分支仓库 https://github.com/VenusProtocol/protocol-reserve 中的 develop 分支。需要关注的最后一个提交:dfb653d2e3fe163a248bbd9f8951cd6b96b06390

  • 文件:

  • contracts/ProtocolReserve/ProtocolShareReserve.sol

  • contracts/Interfaces/IIncomeDestination.sol

  • contracts/Interfaces/IPrime.sol

  • contracts/Interfaces/IProtocolShareReserve.sol

  • contracts/Interfaces/IVToken.sol

  • contracts/Interfaces/ComptrollerInterface.sol

  • contracts/Interfaces/PoolRegistryInterface.sol

钻石型控制器

范围:升级核心池中的控制器合约,实现钻石型模式。已在 VIP-174 中启用。

详细范围

待审计代码:https://github.com/VenusProtocol/venus-protocol/pull/224

上次提交:331394866b0b78ea3b65efe03931acd582d0382e

审计范围内的文件:

  • contracts/Comptroller/ComptrollerStorage.sol

  • contracts/Comptroller/Diamond/Diamond.sol

  • contracts/Comptroller/Diamond/facets/FacetBase.sol

  • contracts/Comptroller/Diamond/facets/MarketFacet.sol

  • contracts/Comptroller/Diamond/facets/PolicyFacet.sol

  • contracts/Comptroller/Diamond/facets/RewardFacet.sol

  • contracts/Comptroller/Diamond/facets/SetterFacet.sol

  • contracts/Comptroller/Diamond/facets/XVSRewardsHelper.sol

  • contracts/Comptroller/Diamond/interfaces/IDiamondCut.sol

  • contracts/Comptroller/Diamond/interfaces/IMarketFacet.sol

  • contracts/Comptroller/Diamond/interfaces/IPolicyFacet.sol

  • contracts/Comptroller/Diamond/interfaces/IRewardFacet.sol

  • contracts/Comptroller/Diamond/interfaces/ISetterFacet.sol

  • contracts/Lens/ComptrollerLens.sol

  • contracts/Lens/SnapshotLens.sol

BUSDLiquidator

Scope: Contract to forcibly liquidate BUSD positions after enabling the "forced liquidations" feature in the BUSD market, in the VIP-191

详细范围

待审计代码:https://github.com/VenusProtocol/venus-protocol/pull/362

上次提交:592b022723740c6b7b066445f407f12253d85637

隔离池中的强制清算

范围:升级隔离池中的 Comptroller 合约,添加“强制清算”功能,该功能已在VIP-186上启用

  • Certik 审计报告 (2023/10/16)](https://github.com/VenusProtocol/isolated-pools/blob/41a96ca24b0e32b8087ea7b916ae2864cbf1a05f/audits/078_forcedLiquidations_certik_20231016.pdf)

核心池中的强制清算

范围:升级核心池中的 Comptroller 合约,添加“强制清算”功能,该功能已在VIP-172上启用

风险基金和资金缺口处理

范围风险基金资金缺口和在 VIP-170 中启用的 isolated-pools 代码库 中的 ProtocolShareReserve 合约。

这些合约在 VIP-134 中启动 Isolated Pools 之前进行的审计范围内。这些合约进行了一些升级,并针对这些变更进行了新一轮审计。

挂钩稳定性模块 (PSM)

范围:挂钩VAI/USDT 的稳定性模块合约(https://github.com/VenusProtocol/venus-protocol/blob/develop/contracts/PegStability/PegStability.sol)已在 VIP-157 上启用

Oracle 升级 (2023/07/24)

范围:升级在 VIP-145 上启用的弹性价格馈送。

预言机

范围:在 VIP-123 上启用新的弹性价格信息流。

Vaults

范围:升级 XVSVault、VAIVault 和 VRTVault,已在 VIP-127 上启用。

隔离池

范围:隔离池,首次在 VIP-134 中启用。

清算人合约中的自动收益分配

范围:将自动收益分配集成到BNB链核心池使用的清算人合约中。

详细范围
  • venus-protocol 代码库中提交拉取请求 #241

  • contracts/Liquidator/Liquidator.sol

  • contracts/Liquidator/LiquidatorStorage.sol

交换路由器

范围:SwapRouter 合约,已在 VIP-131 上启用。

VToken

范围:Venus平台的委托借贷。升级BUSD、USDC、USDT、BTCB和ETH市场,以降低2022年9月BNB桥事件给Venus平台带来的风险。已在VIP-99上执行。

Last updated