跳转到内容

DeFi(去中心化金融)介绍

DeFi(去中心化金融)介绍

DeFi(Decentralized Finance,去中心化金融)是基于区块链和智能合约构建的开放金融系统。它无需中间商,任何人都可以访问金融服务。

什么是 DeFi

传统金融体系依赖银行、证券公司、保险公司等中心化机构提供服务。这些机构:

  • 控制着用户资金
  • 设置准入门槛(KYC、最低存款等)
  • 收取中间费用
  • 在某些国家受到严格管制

DeFi 的目标是通过智能合约重建这些金融服务,使其:

  • 无需许可:任何人都可以访问,无需身份验证
  • 透明:所有代码和交易公开可查
  • 自我托管:用户始终控制自己的资金
  • 可组合:不同协议可以像积木一样组合使用

DeFi 核心协议类型

1. 去中心化交易所(DEX)

DEX 允许用户直接通过智能合约交换代币,无需中心化托管。

自动做市商(AMM)

Uniswap 首创了 AMM 模型,通过数学公式确定价格:

x × y = k(恒定乘积公式)

其中 xy 是流动性池中两种代币的数量,k 是常数。

// Uniswap V2 核心交换逻辑(简化版)
function swap(
uint256 amount0Out,
uint256 amount1Out,
address to
) external {
(uint112 _reserve0, uint112 _reserve1,) = getReserves();
// 检查滑点
uint256 balance0 = IERC20(token0).balanceOf(address(this));
uint256 balance1 = IERC20(token1).balanceOf(address(this));
uint256 amount0In = balance0 > _reserve0 - amount0Out
? balance0 - (_reserve0 - amount0Out) : 0;
uint256 amount1In = balance1 > _reserve1 - amount1Out
? balance1 - (_reserve1 - amount1Out) : 0;
// 验证 k 不变量(减去 0.3% 手续费)
require(
(balance0 * 1000 - amount0In * 3) * (balance1 * 1000 - amount1In * 3)
>= uint256(_reserve0) * _reserve1 * 1000**2
);
IERC20(token0).transfer(to, amount0Out);
IERC20(token1).transfer(to, amount1Out);
}

主流 DEX

DEX特点适用场景
Uniswap V3集中流动性,资金利用率高主流代币交换
Curve专为稳定币优化,低滑点稳定币/同类资产交换
Balancer支持多代币池,自定义权重指数化投资组合
dYdX订单簿模式,Layer2衍生品交易

与 DEX 交互

const { ethers } = require('ethers');
// Uniswap V3 SwapRouter
const SWAP_ROUTER = '0xE592427A0AEce92De3Edee1F18E0157C05861564';
const SWAP_ROUTER_ABI = [...]; // Uniswap V3 Router ABI
const router = new ethers.Contract(SWAP_ROUTER, SWAP_ROUTER_ABI, signer);
// 精确输入交换:用 ETH 换 USDC
const params = {
tokenIn: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', // WETH
tokenOut: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
fee: 3000, // 0.3% 费率
recipient: signer.address,
deadline: Math.floor(Date.now() / 1000) + 1800, // 30分钟后过期
amountIn: ethers.parseEther('1'), // 1 ETH
amountOutMinimum: ethers.parseUnits('1800', 6), // 最少收到 1800 USDC(防滑点)
sqrtPriceLimitX96: 0
};
const tx = await router.exactInputSingle(params, {
value: ethers.parseEther('1') // 发送 ETH
});
await tx.wait();

2. 借贷协议

Aave

Aave 是最大的去中心化借贷协议之一:

// 与 Aave V3 交互
interface IPool {
// 存入资产(赚取利息)
function supply(
address asset,
uint256 amount,
address onBehalfOf,
uint16 referralCode
) external;
// 借款
function borrow(
address asset,
uint256 amount,
uint256 interestRateMode, // 1=固定利率, 2=浮动利率
uint16 referralCode,
address onBehalfOf
) external;
// 还款
function repay(
address asset,
uint256 amount,
uint256 interestRateMode,
address onBehalfOf
) external returns (uint256);
}
// 闪电贷
interface IFlashLoanReceiver {
function executeOperation(
address[] calldata assets,
uint256[] calldata amounts,
uint256[] calldata premiums, // 闪电贷手续费
address initiator,
bytes calldata params
) external returns (bool);
}

健康因子(Health Factor)

借贷协议使用健康因子衡量账户风险:

健康因子 = (抵押品价值 × 清算门槛) / 借款总额
健康因子 < 1 → 触发清算

3. 稳定币

算法稳定币(DAI)

MakerDAO 的 DAI 是最著名的去中心化稳定币,通过超额抵押 ETH 来维持 1:1 美元锚定。

// 铸造 DAI 需要抵押 ETH
interface IMakerDAO {
// 存入 ETH 并铸造 DAI
function open(bytes32 ilk, address usr) external returns (uint256 cdp);
function lock(address manager, uint256 cdp, uint256 wad) external;
function draw(address manager, address jug, address daiJoin, uint256 cdp, uint256 wad) external;
}

主流稳定币对比

稳定币类型发行方特点
USDT中心化Tether最广泛使用
USDC中心化Circle合规,可冻结
DAI去中心化MakerDAO超额抵押,抗审查
FRAX部分算法Frax Finance混合机制

4. 流动性挖矿(Yield Farming)

流动性挖矿是 DeFi 的重要激励机制,用户提供流动性获得代币奖励:

// 简化的流动性挖矿合约
contract LiquidityMining {
IERC20 public stakingToken; // 质押代币(LP Token)
IERC20 public rewardToken; // 奖励代币
uint256 public rewardRate; // 每秒奖励数量
mapping(address => uint256) public stakedBalance;
mapping(address => uint256) public rewards;
mapping(address => uint256) public lastUpdateTime;
uint256 public rewardPerTokenStored;
uint256 public totalStaked;
function stake(uint256 amount) external updateReward(msg.sender) {
totalStaked += amount;
stakedBalance[msg.sender] += amount;
stakingToken.transferFrom(msg.sender, address(this), amount);
}
function withdraw(uint256 amount) external updateReward(msg.sender) {
totalStaked -= amount;
stakedBalance[msg.sender] -= amount;
stakingToken.transfer(msg.sender, amount);
}
function claimReward() external updateReward(msg.sender) {
uint256 reward = rewards[msg.sender];
rewards[msg.sender] = 0;
rewardToken.transfer(msg.sender, reward);
}
modifier updateReward(address account) {
rewardPerTokenStored = rewardPerToken();
lastUpdateTime[block.timestamp];
rewards[account] = earned(account);
_;
}
}

5. 收益聚合器

Yearn Finance 等收益聚合器自动将资金部署到最高收益的策略中:

用户存入 USDC
→ Yearn 策略合约
→ Aave 借贷(当前年化 5%)
→ Compound 借贷(当前年化 4%)
→ Curve 流动性(当前年化 8%) ← 自动选择最高收益

DeFi 关键概念

TVL(总锁定价值)

TVL 是衡量 DeFi 协议规模的主要指标,表示锁定在协议中的资产总价值。

可在 DeFiLlama 查看各协议 TVL 排行。

APY vs APR

  • APR(年化利率):不考虑复利
  • APY(年化收益率):考虑复利后的实际年收益
APY = (1 + APR/n)^n - 1
n = 每年复利次数

无常损失(Impermanent Loss)

为 AMM 提供流动性时,如果代币价格比例发生变化,LP 的实际收益可能低于单纯持币:

无常损失 = 2 × √(价格比率) / (1 + 价格比率) - 1
例如:如果 ETH 价格翻倍
无常损失 ≈ -5.7%(相比持有)

套利与 MEV

MEV(最大可提取价值)是矿工/验证者通过重新排序、插入或删除交易获得的利润。

常见 MEV 类型:

  • 三明治攻击:在用户大额交易前后插入交易
  • 清算套利:抢先清算即将被清算的头寸
  • DEX 套利:利用不同 DEX 之间的价格差异

主要 DeFi 协议

协议类型TVL特点
UniswapDEX数十亿AMM 先驱
Aave借贷数十亿闪电贷发明者
CurveDEX数十亿稳定币专家
MakerDAO稳定币数十亿DAI 发行方
Compound借贷数亿流动性挖矿先驱
Yearn聚合器数亿自动化收益
Lido质押数百亿ETH 流动性质押

DeFi 风险

1. 智能合约风险

代码漏洞可能导致资金损失,如历史上的多次黑客攻击事件。

降低风险:

  • 选择经过多次审计的老牌协议
  • 从小额开始,测试水温
  • 关注漏洞赏金和安全报告

2. 流动性风险

流动性不足时,大额交易会产生高滑点,或在紧急情况下无法提款。

3. 预言机风险

依赖外部价格数据的协议可能因预言机被操纵而遭受攻击。

4. 监管风险

各国对 DeFi 的监管态度不一,存在政策变化风险。

如何开始使用 DeFi

  1. 准备钱包:安装 MetaMask 或 Rabby Wallet
  2. 获取 ETH:在中心化交易所购买并提现到钱包
  3. 选择网络:以太坊主网或 Arbitrum/Optimism(低 Gas)
  4. 从稳定协议开始:如 Aave 存入稳定币赚取利息
// 简单示例:查询 Aave 利率
const AAVE_POOL_DATA_PROVIDER = '0x7B4EB56E7CD4b454BA8ff71E4518426369a138a3';
const reserveData = await provider.call({
to: AAVE_POOL_DATA_PROVIDER,
data: aaveInterface.encodeFunctionData('getReserveData', [USDC_ADDRESS])
});
const decoded = aaveInterface.decodeFunctionResult('getReserveData', reserveData);
const liquidityRate = decoded[5]; // 存款年化利率(Ray 单位)
const apy = (Number(liquidityRate) / 1e27) * 100; // 转换为百分比
console.log(`USDC 存款 APY: ${apy.toFixed(2)}%`);

总结

DeFi 代表了金融基础设施的一次重大创新:

  • 去中心化:无需信任中间商
  • 可组合性:不同协议可以无缝组合(DeFi 乐高)
  • 全球可访问:7×24 小时,无国界
  • 透明:所有规则写在代码里

核心协议包括:DEX(Uniswap、Curve)、借贷(Aave、Compound)、稳定币(DAI)、收益聚合(Yearn)。

在参与 DeFi 前,务必充分了解相关风险,从小额开始,选择经过充分审计的知名协议。