<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Defi on Wong&#39;s Blog</title>
    <link>https://blog.wssh.dev/tags/defi/</link>
    <description>Recent content in Defi on Wong&#39;s Blog</description>
    <generator>Hugo -- 0.146.6</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 01 Apr 2026 01:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.wssh.dev/tags/defi/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Uniswap 系列教程: 从 Uniswap v2 到 Uniswap v4</title>
      <link>https://blog.wssh.dev/posts/uniswap-hackmd/</link>
      <pubDate>Wed, 01 Apr 2026 01:00:00 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/uniswap-hackmd/</guid>
      <description>&lt;p&gt;笔者在不久前编写了一系列关于 Uniswap 的文章，实际上与本博客之前的部分内容是重合的。这一系列文章实际上是为了一个课程而设计的，但目前该课程上线可能遥遥无期。相比于之前的博客内的文章，这一系列文章更加简单，更适合初学者学习。不同于之前的文章大部分都是笔者的学习笔记，这一系列博客实际上是笔者对过去内容的回顾和总结，理论上质量会更好一点，但是细节会更少。由于存在内容重叠，我就索性将这些文章丢在了 HackMD 上，本文主要是给大家一个索引，方便大家去 HackMD 上查看。&lt;/p&gt;</description>
    </item>
    <item>
      <title>现代 DeFi: AAVE V4</title>
      <link>https://blog.wssh.dev/posts/aave-v4/</link>
      <pubDate>Thu, 11 Dec 2025 23:47:33 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/aave-v4/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;本文核心内容其实是对 AAVE v4 代码仓库的 &lt;a href=&#34;https://github.com/aave/aave-v4/blob/main/docs/overview.md&#34;&gt;Overview 文档&lt;/a&gt; 的翻译，但是相比于文档，本文补充了与该部分对应的代码，所以本文可以视为以文档作为纲领对 AAVE v4 代码库的阅读。 AAVE v4 继承了 AAVE v3 内的一些概念，对于这些概念，建议读者阅读笔者之前编写的 &lt;a href=&#34;https://blog.wssh.dev/posts/aave-interactive/&#34;&gt;AAVE 交互指南&lt;/a&gt; 一文，该文内给出了概念的功能和数学表达。&lt;/p&gt;</description>
    </item>
    <item>
      <title>DeFi 安全观察: Balancer V2 架构与舍入漏洞分析</title>
      <link>https://blog.wssh.dev/posts/balancer-v2-hack/</link>
      <pubDate>Fri, 28 Nov 2025 10:47:30 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/balancer-v2-hack/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;Balancer v2 作为以太坊内最核心的 AMM 之一，不久前遭受了一次严重的黑客攻击，接近 1 亿美金的 ETH 流动性质押代币被盗取。本文将以黑客在主网上发起的 &lt;a href=&#34;https://app.blocksec.com/explorer/tx/eth/0x6ed07db1a9fe5c0794d44cd36081d6a6df103fab868cdd75d581e3bd23bc9742&#34;&gt;攻击交易&lt;/a&gt; 为例，该攻击攻击了 &lt;code&gt;[WETH, BPT, osETH]&lt;/code&gt; 池。我们将以此攻击为例，介绍攻击者如何执行攻击，以及攻击合约到底进行哪些链上计算。&lt;/p&gt;</description>
    </item>
    <item>
      <title>基于凸优化构建 AMM 路由求解算法</title>
      <link>https://blog.wssh.dev/posts/optimal-router/</link>
      <pubDate>Sat, 04 Oct 2025 08:00:00 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/optimal-router/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;在 AMM 领域，跨多个 AMM 进行路由优化始终是一个问题。所谓路由优化是指单笔 swap 对单个池子可能产生较大冲击，但是假如我们将该笔交易分配到多个池子，那么我们可以获得更好的交易输出。一个典型的案例是 &lt;a href=&#34;https://app.odos.xyz/market&#34;&gt;odos&lt;/a&gt; 求解出的 100 ETH 兑换 USDC 的路径:&lt;/p&gt;</description>
    </item>
    <item>
      <title>深入浅出借贷市场内的 Pendle 预言机</title>
      <link>https://blog.wssh.dev/posts/pendle-oracle/</link>
      <pubDate>Wed, 17 Sep 2025 08:00:00 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/pendle-oracle/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;在构建基于 Uniswap V4 Hook 的借贷协议 &lt;a href=&#34;https://github.com/Licredity&#34;&gt;Licredity&lt;/a&gt; 时，我们希望引入 PT 作为担保品，但此前我并没有详细了解过 PT 预言机的开发生态，所以我阅读了目前 Morpho 内几个较大使用 PT 的市场，并阅读了这些市场内的预言机实现。&lt;/p&gt;</description>
    </item>
    <item>
      <title>从零开始的聚合器开发: Lotus Router 合约解析</title>
      <link>https://blog.wssh.dev/posts/lotus-router/</link>
      <pubDate>Wed, 30 Apr 2025 01:00:00 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/lotus-router/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;Lotus Router 是 &lt;a href=&#34;https://x.com/jtriley2p&#34;&gt;jtriley2p&lt;/a&gt; 开发的一个用于 MEV 的交易路由的合约。此处我们需要特别强调该路由合约是适用于 MEV 交易的，该路由合约完全不会处理来自 Uniswap 合约的回调内的数据，这使得交易发起者必须预先计算出精确数值已进行交易。&lt;/p&gt;</description>
    </item>
    <item>
      <title>现代 DeFi: Uniswap V4 数学库分析</title>
      <link>https://blog.wssh.dev/posts/uniswap-math/</link>
      <pubDate>Fri, 11 Apr 2025 11:11:11 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/uniswap-math/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;在 Uniswap V4 内，我们可以看到一些复杂的数学计算模块，这些数学计算相关的模块大部分都使用了内联汇编实现，同时包含了大量的 magic number。在本文，我们将详细分析数学计算模块的实现。&lt;/p&gt;</description>
    </item>
    <item>
      <title>现代 DeFi: Uniswap V4</title>
      <link>https://blog.wssh.dev/posts/uniswap-v4/</link>
      <pubDate>Wed, 01 Jan 2025 01:00:00 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/uniswap-v4/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;在上一篇博客内，我们详细介绍了 Uniswap V3 的基础原理。在本篇博客内，我们将继续介绍与 Uniswap V3 差别不大的 Uniswap v4 的原理及代码。需要注意的，Uniswap v4 的 AMM 曲线部分与 Uniswap v3 是一致的，但增加了一些优化的业务逻辑。本文将跳过所有与 Uniswap v3 类似的部分，只介绍 Uniswap v4 的特性。&lt;/p&gt;</description>
    </item>
    <item>
      <title>现代 DeFi: Uniswap V3</title>
      <link>https://blog.wssh.dev/posts/uniswap-v3/</link>
      <pubDate>Thu, 12 Dec 2024 00:47:30 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/uniswap-v3/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;本文将带领读者从零实现 Uniswap V3 的所有功能。在内容上，本文主要参考了 &lt;a href=&#34;https://www.youtube.com/playlist?list=PLO5VPQH6OWdXp2_Nk8U7V-zh7suI05i0E&#34;&gt;Constructor | Uniswap V3 Core Contract Explained &lt;/a&gt; 系列教程，同时部分内容也来自 &lt;a href=&#34;https://uniswapv3book.com/&#34;&gt;Uniswap V3 Development Book&lt;/a&gt; 以及 &lt;a href=&#34;https://paco0x.org/&#34;&gt;Paco 博客&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;本文内的代码可以参考 &lt;a href=&#34;https://github.com/t4sk/clamm&#34;&gt;clamm&lt;/a&gt; 代码库。&lt;/p&gt;</description>
    </item>
    <item>
      <title>现代 DeFi: 最小化借贷协议 Morpho</title>
      <link>https://blog.wssh.dev/posts/morpho-bule/</link>
      <pubDate>Thu, 28 Nov 2024 19:47:33 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/morpho-bule/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;Morpho 是目前以太坊内第四大借贷协议(数据来源为 &lt;a href=&#34;https://defillama.com/protocols/Lending/Ethereum&#34;&gt;defillama&lt;/a&gt;)。相比于其他高度复杂的借贷协议，Morpho Blue 的合约使用了 500 行代码就完成了所有的借贷工作。同时，Morpho 也是一个无许可的借贷协议，任何用户都可以调用合约内部的 &lt;code&gt;createMarket&lt;/code&gt; 函数使用指定的参数创建交易市场。但是需要注意，Morpho 也并不是完全自由的，用户不可以随意指定一些借贷参数。&lt;/p&gt;</description>
    </item>
    <item>
      <title>深入解析AAVE智能合约:取款</title>
      <link>https://blog.wssh.dev/posts/aave-contract-part3/</link>
      <pubDate>Wed, 28 Dec 2022 23:47:33 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/aave-contract-part3/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;本文主要介绍&lt;code&gt;AAVE V3&lt;/code&gt;合约中的取款&lt;code&gt;withdraw&lt;/code&gt;函数。在阅读本文前，请读者确保已经阅读过以下文章:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.wssh.dev/posts/aave-interactive/&#34;&gt;AAVE交互指南&lt;/a&gt;，本文将大量使用此文中给出的各种数学计算公式&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.wssh.dev/posts/aave-contract-part1/&#34;&gt;深入解析AAVE智能合约:存款&lt;/a&gt;，此篇文章内给出的部分函数和大部分数据结构在本文内页有所使用，重复部分在本文内不再解释&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;读者也可选读&lt;a href=&#34;https://blog.wssh.dev/posts/aave-contract-part2/&#34;&gt;深入解析AAVE智能合约:计算和利率&lt;/a&gt;，此文介绍了数学计算底层实现逻辑，与代码逻辑关系不大，读者可选读此文。&lt;/p&gt;
&lt;p&gt;本文可认为是对&lt;a href=&#34;https://blog.wssh.dev/posts/aave-contract-part1/&#34;&gt;深入解析AAVE智能合约:存款&lt;/a&gt;的进一步补充，由于取款逻辑较为简单，所以此文的关键在于进一步深挖某些常用函数。这些函数在《存款》一文中虽有提及但未深入探讨的函数，如&lt;code&gt;updateInterestRates&lt;/code&gt;等。&lt;/p&gt;
&lt;h2 id=&#34;代码分析&#34;&gt;代码分析&lt;/h2&gt;
&lt;p&gt;在&lt;code&gt;src/protocol/pool/Pool.sol&lt;/code&gt;合约内，我们可以找到如下函数:&lt;/p&gt;</description>
    </item>
    <item>
      <title>深入解析AAVE智能合约:计算和利率</title>
      <link>https://blog.wssh.dev/posts/aave-contract-part2/</link>
      <pubDate>Wed, 21 Dec 2022 13:47:33 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/aave-contract-part2/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;本文主要讨论&lt;code&gt;AAVE V3&lt;/code&gt;中的数学计算模块，该模块位于&lt;code&gt;src/protocol/libraries/math&lt;/code&gt;文件夹内，基础合约为&lt;code&gt;WadRayMath&lt;/code&gt;。&lt;/p&gt;</description>
    </item>
    <item>
      <title>深入解析AAVE智能合约:存款</title>
      <link>https://blog.wssh.dev/posts/aave-contract-part1/</link>
      <pubDate>Sat, 10 Dec 2022 23:47:33 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/aave-contract-part1/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;我们在上一篇文章&lt;a href=&#34;https://blog.wssh.dev/posts/aave-interactive/&#34;&gt;AAVE交互指南&lt;/a&gt;中主要介绍了&lt;code&gt;aave&lt;/code&gt;前端、利率计算等内容，本篇文章
将在交互指南基础上介绍&lt;code&gt;aave-v3&lt;/code&gt;的合约源代码的相关情况。&lt;/p&gt;
&lt;p&gt;与之前所写的&lt;a href=&#34;https://blog.wssh.dev/posts/deep-in-safe-part-1/&#34;&gt;深入解析Safe多签钱包智能合约&lt;/a&gt;系列文章不同，本文主要以我们在&lt;a href=&#34;https://blog.wssh.dev/posts/aave-interactive/&#34;&gt;AAVE交互指南&lt;/a&gt;中进行的合约操作为主线进行分析介绍，较为实战化。&lt;/p&gt;
&lt;p&gt;相比于其他项目，&lt;code&gt;AAVE&lt;/code&gt;提供了一个较为完整的&lt;a href=&#34;https://docs.aave.com/developers/getting-started/readme&#34;&gt;文档&lt;/a&gt;。在文档内基本涵盖了所有函数的签名及其作用，读者也可作为阅读源代码的重要参考。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;AAVE&lt;/code&gt;的总体架构如下:&lt;/p&gt;</description>
    </item>
    <item>
      <title>AAVE交互指南</title>
      <link>https://blog.wssh.dev/posts/aave-interactive/</link>
      <pubDate>Sat, 15 Oct 2022 11:47:33 +0000</pubDate>
      <guid>https://blog.wssh.dev/posts/aave-interactive/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;概述&lt;/h2&gt;
&lt;p&gt;本文主要介绍如何在&lt;code&gt;AAVE&lt;/code&gt;内进行质押、借贷等基本操作，为读者进一步研究&lt;code&gt;AAVE&lt;/code&gt;源代码奠定坚实的基础。&lt;/p&gt;
&lt;p&gt;本文要求读者具有以下条件:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;熟悉以太坊钱包使用&lt;/li&gt;
&lt;li&gt;拥有一定的&lt;code&gt;GoerliETH&lt;/code&gt;测试网&lt;code&gt;ETH&lt;/code&gt;，可前往&lt;a href=&#34;https://goerlifaucet.com/&#34;&gt;Goerlin Faucet&lt;/a&gt;进行领取&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;上述条件可以保证读者可以理解本文的大部分内容，由于笔者本人具有较强的技术背景且未来准备编写&lt;code&gt;AAVE&lt;/code&gt;智能合约解析系列文章，所以本文给出了部分合约裸交互(即直接与合约函数交互而并不通过网页)，理解这一部分内容需要读者了解智能合约开发和&lt;code&gt;cast&lt;/code&gt;使用。如果您不是技术人员，可以酌情跳过此部分。考虑到安全性问题，本文提供的裸交互均为&lt;code&gt;eth_call&lt;/code&gt;而不涉及真正的交易(需要签名和区块确认的交易)。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
