如何与 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,

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

相关推荐
cmes_love3 小时前
股票逐笔level2历史行情下载十档订单薄五档tick分钟下载分享
数据库·区块链
HavenlonLabs6 小时前
区块链解决信任分布,AI 需要解决能力控制
人工智能·安全·区块链
选择不变6 小时前
死磕牛市主升浪战法(趋势确认 + 洗盘低吸 + 主升浪持有 + 止盈止损)阅读量 1000 万 +,点赞 11 万的文章
区块链
Bczheng112 小时前
二十九.签名与脚本(4)--脚本验证例子
区块链
软件工程小施同学13 小时前
CCF A区块链论文分享-NDSS 2026(2)-CtPhishCapture:揭露针对加密货币钱包的基于凭证窃取的网络钓鱼诈骗(附pdf)
网络·pdf·区块链
Zhan86112417 小时前
数据接口的序列号机制与丢包检测:西班牙行情数据IBEX指数实时行情接入笔记
大数据·数据结构·笔记·区块链
CTA量化套保1 天前
期货量化程序 time.sleep 卡死:天勤单线程与 deadline 替代
python·区块链
东方隐侠安全团队-千里1 天前
币安Skills Hub:散户的“机构级超能力“来了
安全·ai·区块链·skills
终端域名1 天前
AI与区块链融合:加密货币的下一前沿——技术架构、企业价值与未来趋势
人工智能·架构·区块链
Richown1 天前
区块链治理:DAO与去中心化治理机制
区块链·react