第10章:DeFi 入门:去中心化金融的核心组件(2025年10月最新版)

132 阅读3分钟

第10章:DeFi 入门:去中心化金融的核心组件(2025年10月最新版)


声明:仅供学习参考,不构成投资建议

国外可访问:rainweb3知识库

国内可访问:rainweb3知识库


⚠️ 免责声明:本文档旨在提供教育性、参考性的技术指导,基于当前(2025年)社区广泛认可的最佳实践。它不构成任何形式的投资、法律或专业建议。智能合约开发风险极高,任何部署前都应进行严格的自我审查、自动化扫描和第三方审计。

去中心化金融(DeFi)正在重塑全球金融基础设施,实现无需信任、无需许可、全天候运行的金融服务。本章系统讲解DeFi五大核心组件,结合2025年最新协议、数学模型与生产级代码示例,确保内容精准、无过时信息、可直接用于实战(参考)。


1. 去中心化交易所(DEX):Uniswap、SushiSwap(AMM 模型)

(1)DEX vs 传统交易所
特性传统交易所(CEX)DEX(如 Uniswap)
托管方式中心化托管资产用户自托管(非托管)
交易机制订单簿(Order Book)自动做市商(AMM)
上币门槛高(需审核)低(任何人可创建交易对)
交易时间7×24,但可能宕机7×24,由区块链保障
(2)AMM 模型:x * y = k
  • 核心公式x * y = k

    • x:代币A储备量
    • y:代币B储备量
    • k:常数(乘积不变)
  • 价格发现
    当用户用 Δx 交换 Δy,价格由储备比例决定:
    P = y / x

  • 滑点(Slippage)
    大额交易会显著改变储备比例,导致实际成交价偏离预期。

(3)Uniswap V3(2025年主流版本)
  • 核心创新集中流动性(Concentrated Liquidity)

    • 流动性提供者(LP)可指定价格区间(如 1,8001,800 – 2,200)提供流动性。
    • 提高资本效率,减少无常损失。
  • 手续费等级

    • 0.01%(稳定币对)
    • 0.05%(主流资产,如 ETH/USDC)
    • 0.3%(长尾代币)
    • 1%(波动性极高资产)
(4)生产级交易示例(Ethers.js + Uniswap V3)
import { ethers } from 'ethers';
import { SwapRouter } from '@uniswap/v3-sdk';
import { Token, CurrencyAmount, TradeType } from '@uniswap/sdk-core';
import IUniswapV3PoolABI from '@uniswap/v3-core/artifacts/contracts/interfaces/IUniswapV3Pool.sol/IUniswapV3Pool.json';

// 定义代币(以 ETH/USDC 为例)
const USDC = new Token(
  1, // chainId
  '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
  6,
  'USDC',
  'USD Coin'
);

const WETH = new Token(
  1,
  '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
  18,
  'WETH',
  'Wrapped Ether'
);

// 估算交易(仅读取)
async function quoteSwap(fromAmount: string, provider: ethers.Provider) {
  const poolAddress = '0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640'; // USDC/ETH pool (0.05%)
  const poolContract = new ethers.Contract(poolAddress, IUniswapV3PoolABI.abi, provider);

  const [liquidity, slot0] = await Promise.all([
    poolContract.liquidity(),
    poolContract.slot0()
  ]);

  const sqrtPriceX96 = slot0[0];
  // 实际交易需使用 @uniswap/v3-sdk 计算最优路径
  // 此处简化为概念演示
}

// 实际交易(需用户签名)
async function executeSwap(signer: ethers.Signer) {
  const routerAddress = '0xE592427A0AEce92De3Edee1F18E0157C0586a731'; // Uniswap V3 Router
  const routerContract = new ethers.Contract(routerAddress, UNISWAP_V3_ROUTER_ABI, signer);

  const params = {
    tokenIn: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
    tokenOut: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
    fee: 500, // 0.05%
    recipient: await signer.getAddress(),
    amountIn: ethers.parseEther('0.1'),
    amountOutMinimum: ethers.parseUnits('180', 6), // 最小接收(防滑点)
    sqrtPriceLimitX96: 0
  };

  const tx = await routerContract.exactInputSingle(params, {
    gasLimit: 300000
  });

  const receipt = await tx.wait();
  console.log('Swap successful, TX:', receipt?.hash);
}

推荐工具


2. 借贷协议:Aave、Compound

(1)核心机制
  • 超额抵押:用户存入抵押品(如ETH),借出其他资产(如DAI),LTV(Loan-to-Value)通常 < 75%。
  • 利率模型:基于供需动态调整(如 Aave 的 Stable + Variable Rate)。
  • 清算机制:当抵押率低于阈值,任何人都可清算,获得奖励。
(2)Aave V3(2025年主流)
  • 隔离模式(Isolation Mode):限制高风险资产的抵押能力。
  • 跨链流动性:支持 Ethereum、Polygon、Arbitrum、Optimism 等。
  • eMode(效率模式):同类资产(如稳定币)间提供更高LTV。
(3)代码示例:在 Aave 存入并借款(简化)
const AAVE_POOL_ADDR = '0x794a61358D6845594F94dc1DB02A252b5b4814aD'; // Aave V3 Ethereum
const aavePoolABI = [ /* 从 Aave 官方获取 */ ];

const pool = new ethers.Contract(AAVE_POOL_ADDR, aavePoolABI, signer);

// 存入 WETH 作为抵押
await pool.supply(
  '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', // asset
  ethers.parseEther('0.1'), // amount
  await signer.getAddress(),
  0
);

// 借出 DAI
await pool.borrow(
  '0x6B175474E89094C44Da98b954EedeAC495271d0F', // DAI
  ethers.parseUnits('100', 18),
  2, // 利率模式(Variable)
  0,
  await signer.getAddress()
);

🔐 风险提示

  • 高波动性资产易被清算。
  • 使用 Aave App 模拟计算健康因子。

3. 稳定币:DAI、USDC

稳定币类型发行方背书机制2025年状态
DAI去中心化MakerDAO多资产超额抵押(ETH、LST等)TVL > $5B,支持EIP-4626
USDC中心化Circle现金+短期国债1:1储备多链发行(20+链),年化合规审计
USDT中心化Tether类似USDC市场份额最大,但透明度争议

DeFi 推荐:优先使用 DAI(去中心化)和 USDC(高流动性)。


4. 收益耕作(Yield Farming)与流动性挖矿

(1)定义
  • 流动性挖矿:用户向DEX提供流动性(如 ETH/USDC),获得协议代币奖励(如 UNI、SUSHI)。
  • 收益耕作:将LP代币质押到其他协议,获取额外收益(“收益的收益”)。
(2)收益率来源
  • 交易手续费分成
  • 协议代币激励
  • 跨协议复合收益(如 Yearn、Convex)
(3)风险
  • 无常损失(Impermanent Loss):价格波动导致LP价值低于持有。
  • 代币贬值:激励代币价格下跌,实际收益为负。
  • 智能合约风险:协议被黑(2023年 $1.2B 损失)。

建议


5. 预言机(Oracle):Chainlink,提供链外数据

(1)为什么需要预言机?
  • 智能合约无法主动获取链外数据(如 ETH/USD 价格)。
  • 预言机是“链下数据 → 链上合约”的桥梁。
(2)Chainlink(2025年主导者)
  • 去中心化网络:多个独立节点获取数据,聚合后上链。
  • 数据源多样:交易所API、专业数据提供商。
  • 混合型合约:支持链下报告(OCR)、DECO(隐私数据)、CCIP(跨链调用)。
(3)获取 ETH/USD 价格(生产级代码)
const AGGREGATOR_V3_INTERFACE = [
  "function latestRoundData() view returns (uint80, int256, uint256, uint256, uint80)",
  "function decimals() view returns (uint8)"
];

const priceFeed = new ethers.Contract(
  '0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419', // ETH/USD Feed
  AGGREGATOR_V3_INTERFACE,
  provider
);

const roundData = await priceFeed.latestRoundData();
const price = Number(roundData.answer) / (10 ** await priceFeed.decimals());
console.log(`ETH/USD Price: $${price}`);

替代方案

  • Pyth Network:高频、低延迟,适合Solana、BNB Chain。
  • API3:第一方预言机,减少中间商。

学习建议(2025年实操指南)

1. 在测试网体验 Uniswap 交易

  • 步骤
    1. 安装 MetaMask,切换至 Sepolia 测试网
    2. Sepolia Faucet 获取测试ETH。
    3. 访问 Uniswap Testnet
    4. 交易 ETH ↔ DAI(测试代币)。
    5. 观察交易哈希、Gas、滑点。

2. 深入学习 AMM 数学模型

  • 核心公式x * y = k
  • 推导滑点
    • 输入 Δx,输出 Δy = y - (k / (x + Δx))
    • 滑点率 = (理想价格 - 实际价格) / 理想价格
  • 推荐资源

本章小结

截至2025年10月,DeFi生态已高度成熟:

组件主流协议关键创新风险提示
DEXUniswap V3集中流动性滑点、无常损失
借贷Aave V3跨链、eMode清算风险
稳定币DAI, USDC多链支持中心化风险(USDC)
收益Yearn, Convex收益聚合智能合约漏洞
预言机ChainlinkOCR, CCIP数据源操纵

行动建议

  1. 立即在测试网操作 Uniswap 和 Aave,建立直观认知。
  2. 理解 x * y = k,它是DeFi的“牛顿定律”。
  3. 永远做DYOR(自主研究),避免FOMO(错失恐惧)导致亏损。