Compound 去中心化借贷平台部署全流程指南

·

Compound 是部署在以太坊上的知名去中心化借贷协议,允许用户存入特定加密资产作为抵押品并借出其他资产。本文将详细介绍如何在 BSC 测试网上部署 Compound 协议的核心合约,搭建一个功能完整的去中心化借贷平台。

一、部署环境与工具准备

部署前需准备以下环境与工具:

在 Remix 中编译时,请勾选“启用优化”选项以减小合约体积。

提示:Compound 合约体系较为复杂,包含 30 多个文件。建议先理解其模块化设计,特别是各合约间的关联与初始化参数,这将大幅降低部署难度。

二、核心模块部署步骤

2.1 COMP 激励代币部署

COMP 是协议的治理与激励代币,可使用标准 ERC20 合约部署:

2.2 Comptroller 管理模块部署

Comptroller 是协议的风险管理核心,采用代理模式:

  1. 部署 Unitroller(代理合约)
    地址:0x268e3eF4380DA46e55B77a6263810910722a875E
  2. 部署 ComptrollerG7(逻辑合约)
    地址:0x67006E2110119Abfd40b2A743A85b4d3bF8967b9

2.3 PriceOracle 价格预言机部署

部署 SimplePriceOracle 作为初始价格来源:
地址:0x5991199a9aB1801A229a2E49a042471eDE997a21

2.4 代理合约绑定与参数设置

完成基础部署后,需进行合约绑定与参数配置:

  1. 代理绑定

    • 在 Unitroller 调用 _setPendingImplementation,参数为 ComptrollerG7 地址
    • 在 ComptrollerG7 调用 _become,参数为 Unitroller 地址
  2. 关键参数设置

    • 设置清算因子(closeFactor)为 50%(500000000000000000)
    • 设置清算激励(liquidationIncentive)为 8%(1080000000000000000)
    • 设置预言机地址为 SimplePriceOracle
注意:对外提供服务时,应使用 Unitroller 地址作为 Comptroller 地址。

三、利率模型与资产部署

3.1 拐点利率模型部署

JumpRateModelV2 是 Compound 使用的拐点利率模型:

3.2 ERC20 cToken 部署

  1. 部署测试 ERC20 代币
    地址:0xBEA207ec294BCe7a866C3a598195A61Bb7E8D599
  2. 部署 CErc20Delegate(实现合约)
    地址:0xc176eD65274b2a2d422126d597Be715fc97d2e98
  3. 部署 CErc20Delegator(代理合约)

    • 参数:标的资产地址、Comptroller 地址、利率模型地址
    • 初始汇率设置为 1:1(1000000000000000000)
    • 名称:COMPOUND USD,符号:cUSD,小数位:18
    • 地址:0x209C9b6a0Ec37b91d0758514070A8439B14B9B3c

3.3 主网币 cToken 部署

部署 CEther 合约用于主网币存款:

四、价格配置与市场激活

4.1 设置资产价格

在 SimplePriceOracle 中设置各类资产价格:

4.2 cToken 参数配置

  1. 设置储备金因子

    • cUSD:10%(100000000000000000)
    • cETH:20%(200000000000000000)
  2. 激活市场
    在 Comptroller 中调用 _supportMarket,添加 cUSD 和 cETH
  3. 设置抵押因子
    设置 cUSD 抵押率为 60%(600000000000000000)

五、COMP 奖励机制

Compound 的独特之处在于存借双挖的 COMP 奖励机制:

5.1 设置奖励速度

5.2 提取 COMP 奖励

用户可随时提取累积的 COMP 奖励:

// 提取所有市场中的 COMP
claimComp(address holder)

// 提取特定市场中的 COMP
claimComp(address holder, CToken[] memory cTokens)

// 高级提取选项
claimComp(address[] memory holders, CToken[] memory cTokens, 
          bool borrowers, bool suppliers)

👉 获取完整的 COMP 奖励计算工具

六、核心功能测试

完成部署后,应对以下核心功能进行测试:

6.1 存款(Mint)测试

用户存入资产获得 cToken:

6.2 借款(Borrow)测试

借用协议中的资产:

6.3 还款(Repay)测试

偿还借款余额:

6.4 取款(Redeem)测试

取回抵押的资产:

6.5 清算(Liquidation)测试

当用户抵押品价值低于清算阈值时:

七、前端集成指南

为部署的协议开发前端界面时,需集成以下核心功能:

👉 查看实时合约交互工具

常见问题

Compound 协议的主要优势是什么?

Compound 通过算法利率模型实现自动化的借贷市场,无需传统中介机构。其核心优势包括实时利率调整、透明的资金利用率、以及通过 COMP 代币实现的社区治理。

部署过程中最常见的问题有哪些?

常见问题包括合约依赖关系配置错误、参数格式不正确(如忘记乘以 10^18)、以及代理合约绑定顺序错误。建议逐步验证每个部署步骤的结果。

如何调整协议的风险参数?

风险参数(如抵押因子、清算激励)由协议管理员通过 Comptroller 合约调整。建议通过时间锁合约进行更改,确保社区有足够时间反应。

利率模型参数如何影响用户体验?

利率模型参数直接影响存借利率。较高的基础利率和乘数会使借款成本更高,而较低的拐点值会使利率更早上升,影响大规模借款的可行性。

Compound 与其他借贷协议有何不同?

Compound 的创新在于其流动性挖矿机制(COMP 奖励),以及通过治理代币实现的去中心化治理。其算法利率模型也较为简单透明,易于理解集成。

部署完成后如何确保协议安全?

应进行全面的功能测试和安全审计,包括利率模型测试、极端市场条件模拟、以及权限控制检查。建议逐步启动协议,先以小规模测试运行。