现代 DeFi: AAVE V4

概述 本文核心内容其实是对 AAVE v4 代码仓库的 Overview 文档 的翻译,但是相比于文档,本文补充了与该部分对应的代码,所以本文可以视为以文档作为纲领对 AAVE v4 代码库的阅读。 AAVE v4 继承了 AAVE v3 内的一些概念,对于这些概念,建议读者阅读笔者之前编写的 AAVE 交互指南 一文,该文内给出了概念的功能和数学表达。 ...

December 11, 2025 · 47 min · 23440 words · WongSSH

DeFi 安全观察: Balancer V2 架构与舍入漏洞分析

概述 Balancer v2 作为以太坊内最核心的 AMM 之一,不久前遭受了一次严重的黑客攻击,接近 1 亿美金的 ETH 流动性质押代币被盗取。本文将以黑客在主网上发起的 攻击交易 为例,该攻击攻击了 [WETH, BPT, osETH] 池。我们将以此攻击为例,介绍攻击者如何执行攻击,以及攻击合约到底进行哪些链上计算。 ...

November 28, 2025 · 33 min · 16303 words · WongSSH

基于凸优化构建 AMM 路由求解算法

概述 在 AMM 领域,跨多个 AMM 进行路由优化始终是一个问题。所谓路由优化是指单笔 swap 对单个池子可能产生较大冲击,但是假如我们将该笔交易分配到多个池子,那么我们可以获得更好的交易输出。一个典型的案例是 odos 求解出的 100 ETH 兑换 USDC 的路径: ...

October 4, 2025 · 22 min · 10945 words · WongSSH

深入浅出借贷市场内的 Pendle 预言机

概述 在构建基于 Uniswap V4 Hook 的借贷协议 Licredity 时,我们希望引入 PT 作为担保品,但此前我并没有详细了解过 PT 预言机的开发生态,所以我阅读了目前 Morpho 内几个较大使用 PT 的市场,并阅读了这些市场内的预言机实现。 ...

September 17, 2025 · 10 min · 4567 words · WongSSH

从零开始的聚合器开发: Lotus Router 合约解析

概述 Lotus Router 是 jtriley2p 开发的一个用于 MEV 的交易路由的合约。此处我们需要特别强调该路由合约是适用于 MEV 交易的,该路由合约完全不会处理来自 Uniswap 合约的回调内的数据,这使得交易发起者必须预先计算出精确数值已进行交易。 ...

April 30, 2025 · 13 min · 6427 words · WongSSH

现代 DeFi: Uniswap V4 数学库分析

概述 在 Uniswap V4 内,我们可以看到一些复杂的数学计算模块,这些数学计算相关的模块大部分都使用了内联汇编实现,同时包含了大量的 magic number。在本文,我们将详细分析数学计算模块的实现。 ...

April 11, 2025 · 31 min · 15468 words · WongSSH

现代 DeFi: Uniswap V4

概述 在上一篇博客内,我们详细介绍了 Uniswap V3 的基础原理。在本篇博客内,我们将继续介绍与 Uniswap V3 差别不大的 Uniswap v4 的原理及代码。需要注意的,Uniswap v4 的 AMM 曲线部分与 Uniswap v3 是一致的,但增加了一些优化的业务逻辑。本文将跳过所有与 Uniswap v3 类似的部分,只介绍 Uniswap v4 的特性。 ...

January 1, 2025 · 39 min · 19458 words · WongSSH

现代 DeFi: Uniswap V3

概述 本文将带领读者从零实现 Uniswap V3 的所有功能。在内容上,本文主要参考了 Constructor | Uniswap V3 Core Contract Explained 系列教程,同时部分内容也来自 Uniswap V3 Development Book 以及 Paco 博客。 本文内的代码可以参考 clamm 代码库。 ...

December 12, 2024 · 38 min · 18851 words · WongSSH

现代 DeFi: 最小化借贷协议 Morpho

概述 Morpho 是目前以太坊内第四大借贷协议(数据来源为 defillama)。相比于其他高度复杂的借贷协议,Morpho Blue 的合约使用了 500 行代码就完成了所有的借贷工作。同时,Morpho 也是一个无许可的借贷协议,任何用户都可以调用合约内部的 createMarket 函数使用指定的参数创建交易市场。但是需要注意,Morpho 也并不是完全自由的,用户不可以随意指定一些借贷参数。 ...

November 28, 2024 · 31 min · 15251 words · WongSSH

深入解析AAVE智能合约:取款

概述 本文主要介绍AAVE V3合约中的取款withdraw函数。在阅读本文前,请读者确保已经阅读过以下文章: AAVE交互指南,本文将大量使用此文中给出的各种数学计算公式 深入解析AAVE智能合约:存款,此篇文章内给出的部分函数和大部分数据结构在本文内页有所使用,重复部分在本文内不再解释 读者也可选读深入解析AAVE智能合约:计算和利率,此文介绍了数学计算底层实现逻辑,与代码逻辑关系不大,读者可选读此文。 本文可认为是对深入解析AAVE智能合约:存款的进一步补充,由于取款逻辑较为简单,所以此文的关键在于进一步深挖某些常用函数。这些函数在《存款》一文中虽有提及但未深入探讨的函数,如updateInterestRates等。 代码分析 在src/protocol/pool/Pool.sol合约内,我们可以找到如下函数: ...

December 28, 2022 · 13 min · 6430 words · WongSSH