从入门到实战:我的全套 Web3 学习路径(2025版)
你好,我是 Keegan 小钢。 如果你刚开始接触 Web3、准备从 Web2 转型,或者正在寻找一套真正系统、可落地、能带你从入门做到链上实战的学习路径,那么这篇文章会对你非常有帮助。 我是一名有 16 年经验的互联网从业者,过去 8 年专注于 Web3 技术方向,同时持续做个人 IP 超过 13 年。长期以来,我在公众号、知乎、B 站持续输出 Web3 的学习路线、开发知识、工程实践以及真实链上项目的研发过程。如果你对我的经历好奇,可以阅读这篇文章:《复盘我的 13 年个人 IP 之路》。 这几年,越来越多同学加我咨询,他们大多会问:我应该从哪里开始学 Web3?我有一些基础,但做不出完整项目怎么办?有没有适合“从入门到能做项目”的学习路径?我想顺利找到 Web3 工作,该怎么准备?本质上,这些问题可以归结成一句话:“我现在这个水平,下一步该学什么?”为了让不同阶段的同学都能快速找到最适合自己的学习路径,我把过去几年输出的所有 Web3 内容——免费课程、付费课程、AI+Web3 实战营、以及深度服务——做了一次系统性的梳理。 这篇文章是你最清晰、最完整的 「Web3 学习路...
万字长文聊聊Web3的现状与趋势
整体数据现状与趋势首先,先来看看 Web3 的搜索热度情况,我们可以从 GoogleTrends 中看到一些数据。下图是关于 Web3 在全球过去 5 年内的搜索热度趋势图:从图中可以看出,前面几年的搜索热度一直很低,热度值一直保持在 10 以下,但从 2021 年下半年开始逐渐飙升,在 2021 年 12 月底达到了顶峰。虽然随后开始有所回落,但依然保持在很高的热度。 如果再按区域来看搜索热度,就会发现,搜索热度最高的竟然是在中国,且与其他区域的搜索热度差距很大,如下图所示这说明,中国依然是 Web3 最大的潜在市场。 接着,再来看看整个加密货币总市值的趋势图,某种程度上,这也代表了整个 Web3 行业的总市值。下图的数据来自 CoinMarketCap:从图中可以看到,总市值也是在 2021 年出现大幅度飙升,2021 年底到达顶峰,达到了将近 3 万亿美元的总市值。随后不断回落,在 2022 年底跌到了最低点,总市值降到低于 1 万亿,相比高点,跌去了三分之二。但是,就算是最低点也依然比 2021 年之前那些年的总市值高得多。 加密货币的总市值看上去好像不低,但如果跟全球股...
万字长文聊聊Web3的组成架构
Web3 发展至今,生态已然初具雏形,如果将当前阶段的 Web3 生态组成架构抽象出一个鸟瞰图,由下而上可划分为四个层级:区块链网络层、中间件层、应用层、访问层。下面我们来具体看看每一层级都有什么。另外,此章节会涉及到很多项目的名称,因为篇幅原因不会一一进行介绍,有兴趣的可以另外去查阅相关资料进行深入了解。区块链网络层最底层是「区块链网络层」,也是 Web3 的基石层,主要由各区块链网络所组成。 组成该层级的区块链网络还不少,Bitcoin、Ethereum、BNB Chain(BSC)、Polygon、Arbitrum、Polkadot、Cosmos、Celestia、Avalanche、Aptos、Sui 等等,还有很多。根据 Blockchain-Comparison 的统计,截止撰文之日的区块链至少有 150 条。这里我们主要说的是公链,联盟链不包括在内。因为区块链实在太多,会有些眼花缭乱,所以有必要进行分门别类。 首先,不同区块链之间存在着分层结构,有 Layer0、Layer1、Layer2 之分。其次,Web3 的繁荣发展,依赖于智能合约技术,而智能合约的运行环境为...
Blockchain engineer
从入门到实战:我的全套 Web3 学习路径(2025版)
你好,我是 Keegan 小钢。 如果你刚开始接触 Web3、准备从 Web2 转型,或者正在寻找一套真正系统、可落地、能带你从入门做到链上实战的学习路径,那么这篇文章会对你非常有帮助。 我是一名有 16 年经验的互联网从业者,过去 8 年专注于 Web3 技术方向,同时持续做个人 IP 超过 13 年。长期以来,我在公众号、知乎、B 站持续输出 Web3 的学习路线、开发知识、工程实践以及真实链上项目的研发过程。如果你对我的经历好奇,可以阅读这篇文章:《复盘我的 13 年个人 IP 之路》。 这几年,越来越多同学加我咨询,他们大多会问:我应该从哪里开始学 Web3?我有一些基础,但做不出完整项目怎么办?有没有适合“从入门到能做项目”的学习路径?我想顺利找到 Web3 工作,该怎么准备?本质上,这些问题可以归结成一句话:“我现在这个水平,下一步该学什么?”为了让不同阶段的同学都能快速找到最适合自己的学习路径,我把过去几年输出的所有 Web3 内容——免费课程、付费课程、AI+Web3 实战营、以及深度服务——做了一次系统性的梳理。 这篇文章是你最清晰、最完整的 「Web3 学习路...
万字长文聊聊Web3的现状与趋势
整体数据现状与趋势首先,先来看看 Web3 的搜索热度情况,我们可以从 GoogleTrends 中看到一些数据。下图是关于 Web3 在全球过去 5 年内的搜索热度趋势图:从图中可以看出,前面几年的搜索热度一直很低,热度值一直保持在 10 以下,但从 2021 年下半年开始逐渐飙升,在 2021 年 12 月底达到了顶峰。虽然随后开始有所回落,但依然保持在很高的热度。 如果再按区域来看搜索热度,就会发现,搜索热度最高的竟然是在中国,且与其他区域的搜索热度差距很大,如下图所示这说明,中国依然是 Web3 最大的潜在市场。 接着,再来看看整个加密货币总市值的趋势图,某种程度上,这也代表了整个 Web3 行业的总市值。下图的数据来自 CoinMarketCap:从图中可以看到,总市值也是在 2021 年出现大幅度飙升,2021 年底到达顶峰,达到了将近 3 万亿美元的总市值。随后不断回落,在 2022 年底跌到了最低点,总市值降到低于 1 万亿,相比高点,跌去了三分之二。但是,就算是最低点也依然比 2021 年之前那些年的总市值高得多。 加密货币的总市值看上去好像不低,但如果跟全球股...
万字长文聊聊Web3的组成架构
Web3 发展至今,生态已然初具雏形,如果将当前阶段的 Web3 生态组成架构抽象出一个鸟瞰图,由下而上可划分为四个层级:区块链网络层、中间件层、应用层、访问层。下面我们来具体看看每一层级都有什么。另外,此章节会涉及到很多项目的名称,因为篇幅原因不会一一进行介绍,有兴趣的可以另外去查阅相关资料进行深入了解。区块链网络层最底层是「区块链网络层」,也是 Web3 的基石层,主要由各区块链网络所组成。 组成该层级的区块链网络还不少,Bitcoin、Ethereum、BNB Chain(BSC)、Polygon、Arbitrum、Polkadot、Cosmos、Celestia、Avalanche、Aptos、Sui 等等,还有很多。根据 Blockchain-Comparison 的统计,截止撰文之日的区块链至少有 150 条。这里我们主要说的是公链,联盟链不包括在内。因为区块链实在太多,会有些眼花缭乱,所以有必要进行分门别类。 首先,不同区块链之间存在着分层结构,有 Layer0、Layer1、Layer2 之分。其次,Web3 的繁荣发展,依赖于智能合约技术,而智能合约的运行环境为...
Blockchain engineer

Subscribe to Keegan小钢

Subscribe to Keegan小钢
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
UniswapV3 于 2021 年 5 月上线,相比 UniswapV2,改动很大,也变得复杂很多,最主要的有以下这几点改动:
引入了集中流动性(Concentrated Liquidity)机制
LP Token 改为了不可互换的 NFT
每个交易对可以有多个不同费率的池子
协议手续费治理更灵活
改进了价格预言机
其中,最核心的改动就是引入了集中流动性机制。所谓集中流动性,主要是说流动性提供者(LP)可以将其提供的流动性”限制“在任意价格区间内来”集中“其流动性。从直观上来说,UniswapV3 中,用户添加流动性的时候,需要设置一个价格区间,如下图所示:

默认时这个价格区间是全范围,即 (0, ∞)。LP 可以自己修改低价和高价为任意值,即 LP 可以设置自己要提供的一个价格区间。而设置了有限的价格区间后,那提供的该流动性也只有在该价格区间内才有效。为了更好理解,下面举个例子说明一下。
有两个LP,A 和 B,分别在不同价格区间提供了流动性,A 在区间 (1000, 2000) 内提供了流动性,而 B 则在区间(2000, 3000)内提供了流动性。那当交易价格为 1500 时,发生的交易只会和 A 所提供的流动性进行交易,交易手续费也归 A 所有,而 B 提供的流动性不参与任何交易,也得不到任何手续费。不过,当价格上涨到 2500 时,进入到了(2000, 3000)的价格区间,这时候发生的交易则只会和 B 所提供的流动性进行交易,交易手续费也归 B 所有了,而 A 的流动性则变成无效了,也得不到手续费了。当价格又跌回到 (1000, 2000) 区间时,A 的流动性又再次变为有效,而 B 的流动性又再次变为无效。
集中流动性机制,会使得大量 LP 的流动性聚合在包含当前价格的区间内,能有效提高池子的资金利用率。比如下图为 USDC/ETH 的流动性分布:

大部分流动性集中在了当前价格附近,这也是大部分池子都比较常见的状态。
不过,集中流动性机制,实现起来其复杂度也大幅增加,背后的数学原理也不太容易理解,还引入了其他概念,比如 tick。
因为在 UniswapV3 中,LP 提供的流动性是分为多个不同区间的,那为了方便计算不同区间的流动性和手续费分配,UniswapV3 就将整个价格范围划分为了多个离散的价格点,这些价格点就称为 tick,每个价格点 tick 都对应于一个实际价格,两者的关系可以表示如下:

该公式表明了,当 tick 为 0 时,价格为 1;当 tick 为 1 时,价格为 1.0001;当 tick 为 2 时,价格为 1.0001^2。也即是说,相邻价格点之间的价差为 0.01%。当然,tick 也可以为负值,为负值时表明价格 p 小于 1。
UniswapV2 添加流动性时,两个代币的价值是相等的。直到你移除流动性时,两个代币的价值依然也是相等的。但在 UniswapV3 中则不是,我们以下图为例进行说明:

上图中,ETH/USDC 当前价格为 1806.97,待添加的流动性价格区间为 (1699, 1900)。然而,可以看到,当要添加 1 ETH 时,对应需要添加的 USDC 并不是当前价格的数量 1806.97,而是达到了 2184.99,两个代币的价值是不相等的。另外,添加流动性之后,如果 ETH/USDC 的价格下跌,你流动性里的 ETH 会增多,USDC 则减少;反之,如果价格上涨,则你流动性里的 ETH 会减少,USDC 会增多。
基于这种特性,还可以实现限价单功能。比如,假设 ETH 当前价格为 2500,用户觉得价格可能会跌到 2000 以内,那就可以在 2000 附近设置一个很短的区间,比如设置(1999, 2000)。这时候,因为整个价格区间都低于当前价格,用户提供的流动性只需要充值 USDC 一种资产即可。这时候,相当于用户挂了一个价格为 2000 的限价买单。当价格跌下来,进入了(1999, 2000)这个价格区间的时候,有人交易时就会将该区间内的 USDC 换成 ETH(实际其实为 WETH),直到价格完全穿过价格区间的上限,那池子里的所有 USDC 都被换成了 ETH。这时候,用户撤走流动性,就相当于之前所挂的限价买单成交了。不过,与传统的限价单相比,有两点需要注意:
如果价格不能穿过整个价格区间,那就只有部分 USDC 会被换成 ETH
转换完成后,需将流动性移除,否则一旦价格又回到该价格区间,那池子里的 ETH 会被交易换回 USDC
UniswapV2 中的流动性是整个池子共享的,每个人占有多少流动性可以用份额来表示,而份额是可以互换的,所以可以用 ERC20 Token 来作为流动性代币。但 UniswapV3 中,流动性增加了价格区间的限制之后,就不再是共享的了,每一次添加的流动性都基本是独一无二的,因此,已经不适合继续使用 ERC20 来作为流动性代币,但使用 ERC721 却非常合适,每一次添加的流动性也称为一个头寸(position),就用一个单独的 NFT 来表示。
UniswapV2 中,每个交易对有且仅有一个流动性池,且交易手续费率都是统一的千分之三。但 UniswapV3 可以为同个交易对创建不同费率的池子,即 token0、token1 加上 fee 三个字段组成了一个 Pool 的唯一性。一开始的时候支持了 0.05%, 0.3% 和 1% 的费率,之后在 2021 年 11 月时通过 DAO 治理又增加支持了 0.01% 的费率。
UniswapV2 中,还有一个协议手续费,和交易手续费一样,也是一个基于全局的费率,如若打开收取协议手续费的话,则可获得交易手续费的 1/6。而 UniswapV3 的协议费率设置更灵活,不再是固定的 1/6,而是 1/N 或 0,其中,N 是可配置的,范围为 4 <= N <= 10。而且,还可以基于每个池子设置不同的协议费率。比如,可以设置 A 池为 1/6,B 池设为 1/8,C 池则为 0。
价格预言机也做了升级,之前讲区块链预言机章节中已经介绍过 UniswapV2 和 UniswapV3 的预言机。这里主要再补充一点,V2 的方式是直接记录价格的累加值,使用时再除以时间间隔,这是一种算术平均。而 V3 累加的是 log(price, 1.0001) 也就是价格的幂,使用时再除以时间间隔,这是几何平均。几何平均数相比算术平均数,能更好的反应真实的价格,受短期波动影响更小。另外,使用几何平均,也是因为合约中记录了 tick 序号,序号是整型,且跟价格相关,所以直接计算序号更加节省 gas。
UniswapV3 在代码层面的架构和 UniswapV2 的变化则不大,合约层面,主要还是两个库:
v3-core
v3-periphery
v3-core 的核心合约就两个:
UniswapV3Factory:工厂合约
UniswapV3Pool:流动性池子合约
v3-periphery 的核心合约也是两个:
NonfungiblePositionManager:头寸管理合约
SwapRouter:兑换路由合约
与 UniswapV2 不同,不再由 Router 合约作为添加流动性、移除流动性和兑换交易的全部入口,而是把流动性相关的功能放到了单独的合约 NonfungiblePositionManager,而 SwapRouter 主要只用于交易入口。
后续文章我们会依次讲解下这四个核心合约。
UniswapV3 于 2021 年 5 月上线,相比 UniswapV2,改动很大,也变得复杂很多,最主要的有以下这几点改动:
引入了集中流动性(Concentrated Liquidity)机制
LP Token 改为了不可互换的 NFT
每个交易对可以有多个不同费率的池子
协议手续费治理更灵活
改进了价格预言机
其中,最核心的改动就是引入了集中流动性机制。所谓集中流动性,主要是说流动性提供者(LP)可以将其提供的流动性”限制“在任意价格区间内来”集中“其流动性。从直观上来说,UniswapV3 中,用户添加流动性的时候,需要设置一个价格区间,如下图所示:

默认时这个价格区间是全范围,即 (0, ∞)。LP 可以自己修改低价和高价为任意值,即 LP 可以设置自己要提供的一个价格区间。而设置了有限的价格区间后,那提供的该流动性也只有在该价格区间内才有效。为了更好理解,下面举个例子说明一下。
有两个LP,A 和 B,分别在不同价格区间提供了流动性,A 在区间 (1000, 2000) 内提供了流动性,而 B 则在区间(2000, 3000)内提供了流动性。那当交易价格为 1500 时,发生的交易只会和 A 所提供的流动性进行交易,交易手续费也归 A 所有,而 B 提供的流动性不参与任何交易,也得不到任何手续费。不过,当价格上涨到 2500 时,进入到了(2000, 3000)的价格区间,这时候发生的交易则只会和 B 所提供的流动性进行交易,交易手续费也归 B 所有了,而 A 的流动性则变成无效了,也得不到手续费了。当价格又跌回到 (1000, 2000) 区间时,A 的流动性又再次变为有效,而 B 的流动性又再次变为无效。
集中流动性机制,会使得大量 LP 的流动性聚合在包含当前价格的区间内,能有效提高池子的资金利用率。比如下图为 USDC/ETH 的流动性分布:

大部分流动性集中在了当前价格附近,这也是大部分池子都比较常见的状态。
不过,集中流动性机制,实现起来其复杂度也大幅增加,背后的数学原理也不太容易理解,还引入了其他概念,比如 tick。
因为在 UniswapV3 中,LP 提供的流动性是分为多个不同区间的,那为了方便计算不同区间的流动性和手续费分配,UniswapV3 就将整个价格范围划分为了多个离散的价格点,这些价格点就称为 tick,每个价格点 tick 都对应于一个实际价格,两者的关系可以表示如下:

该公式表明了,当 tick 为 0 时,价格为 1;当 tick 为 1 时,价格为 1.0001;当 tick 为 2 时,价格为 1.0001^2。也即是说,相邻价格点之间的价差为 0.01%。当然,tick 也可以为负值,为负值时表明价格 p 小于 1。
UniswapV2 添加流动性时,两个代币的价值是相等的。直到你移除流动性时,两个代币的价值依然也是相等的。但在 UniswapV3 中则不是,我们以下图为例进行说明:

上图中,ETH/USDC 当前价格为 1806.97,待添加的流动性价格区间为 (1699, 1900)。然而,可以看到,当要添加 1 ETH 时,对应需要添加的 USDC 并不是当前价格的数量 1806.97,而是达到了 2184.99,两个代币的价值是不相等的。另外,添加流动性之后,如果 ETH/USDC 的价格下跌,你流动性里的 ETH 会增多,USDC 则减少;反之,如果价格上涨,则你流动性里的 ETH 会减少,USDC 会增多。
基于这种特性,还可以实现限价单功能。比如,假设 ETH 当前价格为 2500,用户觉得价格可能会跌到 2000 以内,那就可以在 2000 附近设置一个很短的区间,比如设置(1999, 2000)。这时候,因为整个价格区间都低于当前价格,用户提供的流动性只需要充值 USDC 一种资产即可。这时候,相当于用户挂了一个价格为 2000 的限价买单。当价格跌下来,进入了(1999, 2000)这个价格区间的时候,有人交易时就会将该区间内的 USDC 换成 ETH(实际其实为 WETH),直到价格完全穿过价格区间的上限,那池子里的所有 USDC 都被换成了 ETH。这时候,用户撤走流动性,就相当于之前所挂的限价买单成交了。不过,与传统的限价单相比,有两点需要注意:
如果价格不能穿过整个价格区间,那就只有部分 USDC 会被换成 ETH
转换完成后,需将流动性移除,否则一旦价格又回到该价格区间,那池子里的 ETH 会被交易换回 USDC
UniswapV2 中的流动性是整个池子共享的,每个人占有多少流动性可以用份额来表示,而份额是可以互换的,所以可以用 ERC20 Token 来作为流动性代币。但 UniswapV3 中,流动性增加了价格区间的限制之后,就不再是共享的了,每一次添加的流动性都基本是独一无二的,因此,已经不适合继续使用 ERC20 来作为流动性代币,但使用 ERC721 却非常合适,每一次添加的流动性也称为一个头寸(position),就用一个单独的 NFT 来表示。
UniswapV2 中,每个交易对有且仅有一个流动性池,且交易手续费率都是统一的千分之三。但 UniswapV3 可以为同个交易对创建不同费率的池子,即 token0、token1 加上 fee 三个字段组成了一个 Pool 的唯一性。一开始的时候支持了 0.05%, 0.3% 和 1% 的费率,之后在 2021 年 11 月时通过 DAO 治理又增加支持了 0.01% 的费率。
UniswapV2 中,还有一个协议手续费,和交易手续费一样,也是一个基于全局的费率,如若打开收取协议手续费的话,则可获得交易手续费的 1/6。而 UniswapV3 的协议费率设置更灵活,不再是固定的 1/6,而是 1/N 或 0,其中,N 是可配置的,范围为 4 <= N <= 10。而且,还可以基于每个池子设置不同的协议费率。比如,可以设置 A 池为 1/6,B 池设为 1/8,C 池则为 0。
价格预言机也做了升级,之前讲区块链预言机章节中已经介绍过 UniswapV2 和 UniswapV3 的预言机。这里主要再补充一点,V2 的方式是直接记录价格的累加值,使用时再除以时间间隔,这是一种算术平均。而 V3 累加的是 log(price, 1.0001) 也就是价格的幂,使用时再除以时间间隔,这是几何平均。几何平均数相比算术平均数,能更好的反应真实的价格,受短期波动影响更小。另外,使用几何平均,也是因为合约中记录了 tick 序号,序号是整型,且跟价格相关,所以直接计算序号更加节省 gas。
UniswapV3 在代码层面的架构和 UniswapV2 的变化则不大,合约层面,主要还是两个库:
v3-core
v3-periphery
v3-core 的核心合约就两个:
UniswapV3Factory:工厂合约
UniswapV3Pool:流动性池子合约
v3-periphery 的核心合约也是两个:
NonfungiblePositionManager:头寸管理合约
SwapRouter:兑换路由合约
与 UniswapV2 不同,不再由 Router 合约作为添加流动性、移除流动性和兑换交易的全部入口,而是把流动性相关的功能放到了单独的合约 NonfungiblePositionManager,而 SwapRouter 主要只用于交易入口。
后续文章我们会依次讲解下这四个核心合约。
No activity yet