Skip to content

DeFi基础与智能合约:理解去中心化金融的核心

学完你能做什么

本课收获

  • 理解 DeFi 是什么,为什么它被称为"金融乐高"
  • 掌握智能合约的工作原理,理解"代码即法律"
  • 看懂 AMM 自动做市商的核心公式(x * y = k)
  • 了解借贷协议的超额抵押机制
  • 知道 Uniswap、Aave 等主流协议的定位和用途

你现在的困境

你可能遇到过这些问题:

  • 听说过 DeFi,但不知道它和传统金融有什么区别:银行也能存款借贷,为什么要用 DeFi?
  • 智能合约听起来很高级:是不是要会写代码才能用?
  • DEX 交易不理解定价机制:没有订单簿,价格是怎么算出来的?
  • 借贷协议看不懂:为什么要"超额抵押"?存 $150 只能借 $100,这不是亏了吗?

这些困惑很正常。DeFi 是加密货币最具革命性的应用之一,它把传统金融的核心功能(交易、借贷、存款)搬到了区块链上,用代码替代了银行和中介。

什么时候用这一招

DeFi 在以下场景特别有用:

场景为什么用 DeFi举例
换币无需注册,连接钱包即可交易用 Uniswap 把 ETH 换成 USDC
存款生息收益通常高于银行,24 小时可取把 USDC 存入 Aave 赚取利息
借贷无需信用审核,抵押即可借款抵押 ETH 借出 DAI
跨链转账在不同区块链之间转移资产把以太坊上的 USDC 转到 Solana
组合策略像乐高一样组合不同协议借出 DAI → 存入另一个协议 → 赚取双重收益

核心思路

什么是 DeFi?

一句话定义

**DeFi(Decentralized Finance,去中心化金融)**是运行在区块链上的金融服务,无需银行、券商等中心化机构,所有操作由智能合约自动执行。它让任何人都能参与金融活动,不受地域、身份、资产规模的限制。

想象一下:你想借钱,传统方式是去银行,填表、审核、等待批准。DeFi 的方式是:打开网页,连接钱包,存入抵押品,立刻拿到贷款。整个过程不到 5 分钟,没有人工审核,没有营业时间限制。

DeFi 的四大特点

特点含义对比传统金融
无需许可任何人都可以使用,不需要开户审核银行需要身份证、信用审核
无需信任代码即法律,规则写在智能合约里需要信任银行不会跑路
透明可查所有交易链上可见,任何人可审计银行账本不公开
可组合性不同协议可以像乐高一样组合银行产品相互独立

金融乐高

DeFi 的"可组合性"是它最强大的特点。你可以把 Uniswap(交易)+ Aave(借贷)+ Yearn(收益优化)组合起来,创造出传统金融不存在的产品。这就像用乐高积木搭建任意形状,而不是只能买现成的玩具。

DeFi 主要类别

类别功能代表协议类比
DEX去中心化交易所,换币Uniswap、Jupiter证券交易所
借贷存币生息、借贷资产Aave、Compound银行
质押质押代币获得收益Lido、Rocket Pool定期存款
跨链桥不同链之间转移资产Wormhole、LayerZero跨境汇款

智能合约:DeFi 的基石

什么是智能合约?

一句话定义

智能合约是部署在区块链上的自动执行程序。当预设条件满足时,合约自动执行相应操作,无需人工介入,不可篡改。

最好的类比是自动售货机

  1. 你投入钱(满足条件)
  2. 按下按钮(触发操作)
  3. 机器自动吐出商品(执行结果)

整个过程不需要售货员,机器按照预设规则自动运行。智能合约就是区块链上的"自动售货机",只不过它处理的是金融交易而不是饮料。

智能合约的特点

特点说明好处
自动执行条件满足时自动运行不需要等人工处理
无需人工代码决定一切没有人为错误或偏见
不可篡改部署后代码不能修改规则透明,无法作弊
公开透明任何人可以查看代码可以验证合约是否安全

代码示例:一个简单的银行合约

下面是一个简化的智能合约示例,展示存款和取款的基本逻辑:

solidity
contract SimpleBank {
    mapping(address => uint) public balances;
    
    function deposit() public payable {
        balances[msg.sender] += msg.value;
    }
    
    function withdraw(uint amount) public {
        require(balances[msg.sender] >= amount, "余额不足");
        balances[msg.sender] -= amount;
        payable(msg.sender).transfer(amount);
    }
}

代码解读

  • balances:记录每个地址的余额
  • deposit():存款函数,把钱存入合约
  • withdraw():取款函数,先检查余额是否足够,再转账

你不需要会写代码

作为用户,你不需要理解 Solidity 代码。这个示例只是帮助你理解"代码即法律"的含义:所有规则都写在代码里,任何人都可以查看和验证。

AMM:去中心化交易的核心

传统交易所 vs DEX

传统交易所(如股票交易所、币安)使用订单簿:买家挂买单,卖家挂卖单,系统撮合成交。

DEX 使用AMM(自动做市商):没有订单簿,价格由数学公式自动计算。

对比项订单簿(CEX)AMM(DEX)
定价方式买卖双方报价撮合数学公式自动计算
流动性来源做市商流动性提供者(LP)
交易对手其他交易者流动性池
需要的角色买家、卖家、做市商交易者、LP

恒定乘积公式:x * y = k

AMM 的核心是一个简单的数学公式:

x * y = k
  • x:流动性池中 Token A 的数量
  • y:流动性池中 Token B 的数量
  • k:常数(交易前后保持不变)

举例说明

假设一个 ETH/USDC 流动性池:

  • 初始状态:10 ETH + 10,000 USDC,k = 100,000
  • 你想用 1,000 USDC 买 ETH

计算过程:

  1. 交易后 USDC 数量:10,000 + 1,000 = 11,000
  2. 根据 x * y = k:ETH 数量 = 100,000 ÷ 11,000 ≈ 9.09
  3. 你获得的 ETH:10 - 9.09 = 0.91 ETH

价格滑点

注意:你用 1,000 USDC 只买到了 0.91 ETH,而不是 1 ETH。这就是滑点——交易量越大,价格偏离越多。这是 AMM 的特性,不是 bug。

Uniswap:300 行代码的革命

案例:Uniswap 的诞生

时间:2017-2018 年

背景:Hayden Adams 是一名机械工程师,2017 年被西门子裁员。他一边自学 Solidity,一边在社区寻找机会。

转折点:在 Reddit 上看到以太坊创始人 Vitalik 提到"恒定乘积做市公式"的概念。

结果:用 300 行代码实现了完全自动化的 DEX 原型。现在 Uniswap 管理上百亿美元流动性,成为 DeFi 基础设施。

启示

  • 一个人 + 一个想法,也能改变世界
  • 极简数学 + 极致执行力
  • 开源社区的力量

AMM 代码示例

下面是 AMM 交换逻辑的简化版本:

solidity
function swapAForB(uint amountAIn) public returns (uint amountBOut) {
    uint k = reserveTokenA * reserveTokenB;
    reserveTokenA += amountAIn;
    amountBOut = reserveTokenB - (k / reserveTokenA);
    reserveTokenB -= amountBOut;
    return amountBOut;
}

代码解读

  1. 计算常数 k
  2. 增加 Token A 的储备
  3. 根据公式计算应该输出多少 Token B
  4. 减少 Token B 的储备
  5. 返回输出数量

借贷协议:DeFi 的银行

什么是借贷协议?

借贷协议是 DeFi 版的银行,提供两个核心功能:

  1. 存款生息:把你的加密资产存入协议,赚取利息
  2. 借贷资产:抵押你的资产,借出其他资产

超额抵押机制

为什么要超额抵押?

传统银行借贷依赖信用评分和法律追索。DeFi 没有这些,所以用"超额抵押"来保证安全:你必须存入比借款金额更多的资产作为担保。

举例

  • 你想借 $100 的 DAI
  • 需要存入 $150 的 ETH 作为抵押(抵押率 150%)
  • 如果 ETH 价格下跌,抵押品价值不足,会被自动清算
术语含义举例
抵押率抵押品价值 / 借款金额150% 表示存 $150 借 $100
清算线抵押率低于此值会被清算通常 110%-130%
清算系统自动卖出抵押品还债ETH 暴跌时可能触发

主流借贷协议

协议特点支持的链
Aave最大的借贷协议,功能丰富以太坊、Polygon、Arbitrum 等
Compound老牌协议,简单易用以太坊
MakerDAO发行 DAI 稳定币以太坊

借贷协议与生息稳定币的关系

还记得上一课学的 sDAI 吗?它的收益就来自借贷协议:

  1. 用户把 DAI 存入 MakerDAO 的 DSR(DAI Savings Rate)
  2. MakerDAO 把这些 DAI 借给其他用户
  3. 借款人支付利息
  4. 利息分配给存款人(sDAI 持有者)

这就是 DeFi 的"可组合性":稳定币 + 借贷协议 = 生息稳定币。

实践环节:探索 DeFi 协议

练习 1:查看 Uniswap 流动性池

  1. 打开 Uniswap Info
  2. 点击 "Pools" 查看流动性池列表
  3. 选择一个热门池(如 ETH/USDC)
  4. 观察以下数据:
    • TVL(总锁仓量)
    • 24 小时交易量
    • 手续费收入

你应该看到

  • ETH/USDC 池的 TVL 通常在数亿美元
  • 24 小时交易量可能超过 TVL
  • 手续费率通常是 0.05%、0.3% 或 1%

练习 2:查看 Aave 借贷市场

  1. 打开 Aave
  2. 查看 "Markets" 页面
  3. 观察不同资产的:
    • 存款 APY(年化收益率)
    • 借款 APY(年化利率)
    • 总存款量和总借款量

你应该看到

  • 稳定币(USDC、DAI)的存款 APY 通常在 2%-8%
  • 借款利率通常高于存款利率
  • 不同资产的利率差异很大

练习 3:使用 DefiLlama 查看 DeFi 数据

  1. 打开 DefiLlama
  2. 查看 DeFi 总 TVL
  3. 点击 "Chains" 查看不同链的 TVL 排名
  4. 点击 "Protocols" 查看协议排名

你应该看到

  • DeFi 总 TVL 在数百亿到上千亿美元
  • 以太坊通常是 TVL 最高的链
  • Lido、Aave、Uniswap 通常在协议排名前列

踩坑提醒

坑 1:智能合约风险

智能合约可能有漏洞,被黑客攻击导致资金损失。

案例:2022 年,Wormhole 跨链桥被黑,损失 3.2 亿美元。

应对

  • 只使用经过审计的主流协议
  • 不要把所有资金放在一个协议
  • 关注协议的安全公告

坑 2:无常损失

提供流动性时,如果两种代币价格变化不一致,可能遭受"无常损失"。

简单理解:你存入 1 ETH + 1000 USDC,如果 ETH 涨了,取出时 ETH 数量会减少。虽然总价值可能增加,但不如单纯持有 ETH 赚得多。

应对

  • 新手不建议提供流动性
  • 如果要提供,选择价格相对稳定的交易对(如 USDC/USDT)

坑 3:清算风险

借贷时如果抵押品价格暴跌,可能被清算。

案例:你抵押 $150 的 ETH 借了 $100 的 DAI。ETH 价格下跌 30%,抵押品只值 $105,触发清算。

应对

  • 保持较高的抵押率(建议 200% 以上)
  • 设置价格提醒
  • 市场波动大时及时补充抵押品

坑 4:Gas 费用

以太坊上的 DeFi 操作需要支付 Gas 费,网络拥堵时费用很高。

应对

  • 小额操作可以选择 L2(Arbitrum、Optimism)或其他链(Solana)
  • 避开网络拥堵时段
  • 使用 Gas 追踪工具(如 Etherscan Gas Tracker)

本课小结

核心要点

  1. DeFi 是什么:运行在区块链上的金融服务,无需中心化机构
  2. 四大特点:无需许可、无需信任、透明可查、可组合性
  3. 智能合约:自动执行的程序,"代码即法律"
  4. AMM 机制:x * y = k,用数学公式自动定价
  5. 借贷协议:超额抵押机制,存款生息 + 借贷资产
  6. 主要风险:智能合约漏洞、无常损失、清算风险、Gas 费用

下一课预告

下一课我们学习 Uniswap实践:在DEX上交易

你会学到:

  • 如何连接钱包到 Uniswap
  • 如何进行代币交换
  • 如何查看交易详情和 Gas 费用
  • 实操:用 ETH 换 USDC

教育优先,投资谨慎