如何与 Uniswap、Sushiswap 等去中心化交易所交互,理解 AMM(自动做市商)的原理

一、DEX 是什么(一句话面试版)

DEX(去中心化交易所)

→ 不靠订单簿撮合

→ 不托管资产

→ 通过智能合约 + AMM 算法,让用户直接在链上完成兑换

Uniswap / Sushiswap 本质:

一组部署在链上的合约 + 一个前端 UI


二、AMM 是什么(核心思想)

1️⃣ AMM 在解决什么问题?

传统交易所(CEX):

  • 有订单簿
  • 有做市商
  • 有撮合引擎

DEX 没有:

  • 没人挂买卖单
  • 没人撮合

👉 那价格从哪来?


2️⃣ AMM 的答案

价格由"池子里的资产比例"决定

池子里永远有两种币,比如:

复制代码
ETH / USDC 池
x = ETH 数量
y = USDC 数量

Uniswap V2 的核心公式(必须会):

复制代码
x * y = k   (恒定乘积)

k 是常数,交易前后不变


3️⃣ 用大白话解释一次交易过程

假设池子里:

复制代码
ETH = 10
USDC = 20,000

此时:

复制代码
ETH 价格 ≈ 2000 USDC

你用 1000 USDC 买 ETH

  • USDC ↑
  • ETH ↓
  • 必须保持 x * y = k

👉 价格自动变化

👉 你买得越多,价格越贵

👉 这就是滑点(slippage)


三、Uniswap / Sushiswap 怎么交互(前端视角)

1️⃣ 合约层结构(非常重要)

你前端真正交互的不是「DEX」,而是这些合约:

合约 作用
ERC20 代币合约
Pair / Pool 资金池
Router 封装好的交易入口
Factory 创建池子

👉 99% 前端只调 Router


2️⃣ 一次 Swap 的完整流程(必背)

USDC → ETH 为例:

Step 1:approve(必有)
ts 复制代码
USDC.approve(
  routerAddress,
  amountIn
)

授权 Router 花你的 USDC


Step 2:调用 Router.swap
ts 复制代码
router.swapExactTokensForTokens(
  amountIn,
  amountOutMin,
  path,        // [USDC, WETH]
  to,          // 你的地址
  deadline
)

🔑 参数解释(面试重点):

参数 说明
amountIn 你付出的币
amountOutMin 最少能接受多少(防滑点)
path 兑换路径
deadline 防止交易卡太久

3️⃣ 为什么一定要 approve?

因为:

  • ERC20 遵循 "转账必须授权"
  • Router 不是你
  • 合约不能随便动你资产

👉 approve → swap 是 DeFi 高频考点


四、AMM 的几个核心概念(必会)

1️⃣ 滑点(Slippage)

你看到的价格 ≠ 最终成交价

原因:

  • 交易会改变池子比例

前端常见处理:

  • 设置 0.5% / 1% / 自定义

2️⃣ LP(流动性提供者)

你也可以往池子里存币赚钱

复制代码
存 ETH + USDC
→ 获得 LP Token
→ 赚手续费

3️⃣ 无常损失(Impermanent Loss)

价格波动导致:

  • 你提供流动性
  • 不如直接持币

👉 LP 风险点,面试经常问


五、Uniswap vs Sushiswap(一句话区别)

项目 Uniswap Sushiswap
本质 AMM AMM
起源 原创 Fork Uniswap
代币 UNI SUSHI
特点 稳定、主流 激进、功能多

👉 前端交互几乎一模一样


六、前端如何"真的"用起来(你该练什么)

推荐最小实战路径(很适合你)

1️⃣ 用 wagmi + ethers

2️⃣ 连钱包

3️⃣ 调用 Uniswap Router

4️⃣ 实现:

  • 读价格(getAmountsOut)
  • approve
  • swap
  • 显示滑点 / 失败原因

七、面试一句话总结(直接背)

DEX 通过 AMM 算法,用资金池代替订单簿。

Uniswap 使用恒定乘积公式 x*y=k 定价,

前端主要通过 Router 合约完成 approve + swap,

交易中需要处理滑点、授权、路径和截止时间等问题。

相关推荐
岁岁种桃花儿7 小时前
深度解析DolphinScheduler核心架构:去中心化调度的设计与实践
架构·去中心化·区块链
链上罗主任1 天前
《以太坊十年:从概念验证到模块化架构》
去中心化·区块链·智能合约
henujolly1 天前
what`s pos
区块链
傻小胖2 天前
solana开发者训练营第1课:区块链基础
区块链
老蒋每日coding2 天前
从零构建 IPFS 上传流水线:NFT 元数据去中心化实战指南
区块链
qq_368019662 天前
区块链生态参与方概述
区块链
devmoon2 天前
Polkadot Hub 智能合约中的账户体系
web3·区块链·智能合约·polkadot
OpenMiniServer2 天前
2026年资源定价失控、金融信用退化与产业链大出清
金融·区块链
珠海西格2 天前
远动通信装置为何是电网安全运行的“神经中枢”?
大数据·服务器·网络·数据库·分布式·安全·区块链