文章 视频 课程 百科图谱 集训营
更多
  • 问答
  • 提问
  • 发表文章
  • 专栏
  • 活动
  • 文档
  • 工作
  • 集市
  • 发现
  • 文章
  • 问答
  • 视频
  • 课程
  • 集训营
  • 专栏
  • 活动
  • 工作
  • 文档
  • 集市
搜索
  • 登录/注册
RareSkills
  • 文章
  • 专栏
  • 问答
  • 视频
  • 课程
  • 集市作品
  • 活动
  • 招聘
TA的专栏 TA订阅的
Uniswap V3 详解

与传统 AMM(如 Uniswap V2)遵循的 “xy=k” 恒定乘积模型不同,Uniswap V3 的集中流动性机制允许 LP 将资金聚焦于特定的价格区间。这一设计带来了双重优势:

  • 交易者视角:资金在关键价格区间的集中,大幅提升了交易深度,减少了滑点(交易执行价格与预期价格的偏差),尤其是在热门交易对中,能获得更接近市场公允价的执行结果。
  • 流动性提供者视角:资金不再被分散到无限的价格区间,而是在 LP 预判的活跃交易范围内发挥作用,单位资金的利用率显著提升,进而带来比传统模型更高的手续费回报。

Uniswap V3 的代码库因其复杂性闻名,其核心在于将数学逻辑与区块链技术的深度融合。为实现集中流动性,协议引入了一系列创新组件:

  • 刻度(Ticks):将价格区间划分为离散的 “刻度”,每个刻度对应特定的价格水平,LP 可选择在不同刻度间注入流动性,形成精准的资金分布。
  • 平方根价格(sqrtPriceX96):通过特殊的数学编码方式(X96 表示 96 位精度),高效计算和存储价格数据,平衡了计算效率与精度需求。
  • 手续费与 Tick 间距关联:不同交易对根据风险等级设置差异化的手续费率(如 0.05%、0.3%、1%),并对应不同的 Tick 间距(价格区间划分的精细度),高手续费率通常搭配更宽的间距,以平衡风险与收益。

如果你是初学者,建议可以首先阅读 Uniswap V2 书籍 并完成 Uniswap V2 谜题。

目录

1.Uniswap V3 中的集中流动性如何工作

2.在 Uniswap V3 中引入 ticks

3.Q 数字格式

4.Uniswap V3 中的平方根价格

5.Uniswap V3 中的 Tick 限制

6.Uniswap V3 工厂以及 Tick 间距和费用之间的关系

7.计算给定 sqrtPriceX96 的当前 Tick

8.平方和乘法算法

9.Tickmath getSqrtRatioAtTick

创建于2025-07-19 11:33 订阅(6)
代理模式与 Delegatecall 规范手册

代理模式可能是学习 Solidity 开发中最令人困惑的方面之一,因为在其他软件开发领域几乎没有类似的类比。进一步复杂化的问题是——尽管从概念上讲,delegatecall 是容易理解的——完全掌握其细微差别需要对 EVM(以太坊虚拟机)和 Solidity 编译器的工作原理有一定的背景知识。这些细微差别并不是简单的“你知道吗”的琐事,而是对智能合约的运行方式有重要影响。此外,代理模式的标准仍在发展中——截至撰写本文时,ERC-7201 到现在还不到一年的时间。

任何合格的 Solidity 开发者或审计员,都应该对 delegatecall 及其所依赖的代理模式有全面的理解。代理模式并不简单,一个错误就可能破坏可升级性,或者更糟,导致灾难性错误。

本书旨在帮助这样的读者高效且全面地掌握这一主题,同时深入探讨在其他文献中省略或忽视的细节。与此同时,我们力求范围明确;本书不是关于 EVM 的完整课程——我们仅讨论与正确理解 delegatecall 及现有模式设计相关的部分。

创建于2025-03-03 16:40 订阅(17)
Solana 60 天课程

本 Solana 课程旨在帮助具有以太坊或 EVM 开发的初学者或中级背景的工程师快速掌握 Solana 程序开发。

初学者在学习区块链编程时面临的困难是他们必须学习一种新的计算模型、学习一种新的语言和学习一个新的开发框架。

如果你已经在以太坊或兼容以太坊的区块链上开发过,那么你已经对计算模型有了相当好的了解,可以专注于语言和框架。

我们的目标是利用你在以太坊方面的过去经验,更快地学习 Solana。 你无需从零开始。

创建于2025-02-27 14:47 订阅(67)
Uniswap V2 之书

《Uniswap V2 Book》是一本深入解析Uniswap V2代码的书籍,不仅逐行解释代码,还探讨了设计背后的原因、替代方案及决策动机。书中还引入了实践问题,并指导读者如何实现Uniswap V2的克隆版本。

Uniswap V2 之书是对代码库的全面且深入的解释。我们不仅仅是截取代码并逐行解析。希望你已经有能力阅读代码!我们会解释为什么一开始要这样编写,可能的替代方案是什么,以及决策背后的动机。

在编写这本书的过程中,我们发现很多工程师低估了这个协议的深度——它不就是一个 xy = k 吗?实际上,Uniswap V2 充满了巧妙的工程决策,它用少量的代码处理了相当多的复杂性。这是每个 Solidity 开发者都可以从中学习的内容。

此外,根据 DeFi Llama Fork Tracker,Uniswap V2 无论是按 TLV(总锁定价值)还是分叉数量,都是被分叉最多的 DeFi 协议。理解这个协议所付出的努力将让你对其他数百个 DeFi 应用有深入的了解。

对于那些想要实践的人,我们在读者已经掌握了足够知识的地方引入了来自 DamnVulnerableDeFi 、 Ethernaut 和 Mr Steal Yo Crypto 的问题,以便读者能够以最小的难度解决问题。最后,我们以一个指南作为结束,教你如何自己实现一个 Uniswap V2 的克隆,但由于原始代码库已经有四年多的历史,因此我们做了一个现代化的改进。

Uniswap 并不直接使用 ERC 4626 或 ERC 3156。然而,熟悉这些标准是有帮助的,因为 Uniswap 使用了类似的概念。任何一个优秀的 Solidity 开发者或审计员都应该熟悉这些标准。所以如果你还不了解它们,请先阅读那些文章。Uniswap 的文章将假设你已经了解这些标准。

Uniswap 使用定点算法来记录价格,因此读者在阅读关于 TWAP Oracle 的章节之前,应该先熟悉这一概念。

请控制好节奏——往脑子里塞满新概念并不是一种有效的学习方式。我们建议每天只阅读一章,然后在不看指南的情况下自己阅读源代码,以确保一切都理解透彻。

创建于2025-02-27 13:59 订阅(22)
零知识证明之书

Rareskills 出品的零知识证明之书, 对程序员最友好的零知识证明教程

这里有关于从头开始实际编写实用的零知识证明器和验证器(ZK-SNARK)所需知道的内容。

对事物的概念性理解和具体理解是不同的。大多数相当聪明的人在阅读教程后会对某些东西有一个概念性的理解,但他们离用这些知识做一些有用的事情还有很长的路要走。

对于数学家来说,具体的理解发生在他们写证明的时候。对于程序员来说,具体的理解发生在他们编写功能代码的时候。

《零知识证明之书》主要面向寻求具体理解的程序员。我们的书中充满了代码片段,并演示了实际加密库的使用。我们使用数学符号,但是我们以这样一种方式来编写,将其转换为源代码只是一个小小的飞跃。

Groth16是tornado cash(和许多其他公司)用于实现链上零知识证明的算法。我们相信这是学习之旅的最佳起点,我们的书是完全理解算法的最直接途径。

我们的 ZK Book 的Circom 和 Constraint 设计模式将带您踏上从乘法到数字相加的旅程:

  • 从头开始构建 ZKVM
  • MD5 哈希函数的编码约束
  • 学习约束设计中反复出现的设计模式

    模块一 零知识证明的基础数学 1 : P vs NP 及其在零知识证明中的应用

2 : ZK的算术电路

3 : 用于零知识证明的有限域与模运算

4 : 为程序员准备的基础集合论

5 : 抽象代数

6 : 程序员的基本群论

7 : 同态映射

8 : 椭圆曲线点加法

9 : 有限域上的椭圆曲线

模块二 ZK-SNARKS Part 1 (Groth16)

10 : Python、Solidity 和 EVM 中的双线性配对(Bilinear Pairings)

11 : 将代数电路转换为R1CS(一阶约束系统)

12 : 从R1CS构建零知识证明

13 : 使用Python实现拉格朗日插值

14 : Schwartz-Zippel 引理及其在零知识证明中的应用

15 : 二次算术程序

16 : 在Python中将R1CS转换为有限域上的二次算术程序(QAP)

17 : 可信设置

18 : 在可信设置中评估和二次算术程序

19 : Groth16 详解 模块三 Circom 和 Constraint 设计模式

20 : Circom 零知识电路简介

21 : Circom 之 Hello World

22 : Circom模板参数、变量、循环、If语句、断言

23 : 二次约束 - Circom

24 : Circom中的符号变量

25 : Circom 中间信号与子组件

26 : 先指示再约束 - 在 Circom 中复杂约束条件的方法

27 : 先计算,后约束 - ZK 电路设计模式

28 : Circom循环中的组件

29 : 使用虚假证明攻击欠约束的Circom电路

30 : Circomlib中的AliasCheck和Num2Bits strict

31 : Circom 中的条件语句

32 : Quin Selector(选择器)

33 : ZK 中有状态计算简介

34 : 在Circom中交换数组中的两个条目

35 : 选择排序的零知识证明

36 : 在 ZK 中建模栈数据结构 - 如何在 Circom 中创建一个堆栈

37 : ZKVM 的工作原理

38 : ZK中的32位仿真

39 : Circom 中的 MD5 哈希

40 : 零知识证明友好的哈希函数

41 : 排列论证 - The Permutation Argument

42 : Tornado Cash 的工作原理(开发者逐行解析)

模块四 BulletProofs:内积论证的 ZKP 43 : BulletProofs 详解

44 : 什么是Pedersen承诺及其工作原理

45 : 多项式承诺通过 Pedersen 承诺实现

46 : 零知识乘法

47 : 内积的零知识证明

48 : 向量承诺的简洁证明

49 : 对数大小的承诺证明

50 : Bulletproofs零知识证明:内积的零知识与简洁证明

51 : 内积代数

52 : 通过随机线性组合减少等式检查(约束)的数量

53 : 范围证明

创建于2025-02-27 10:39 订阅(30)
详解 Compound V3

详解 Compound V3 - 待修改

一个协议工程师坐下来与你一起,逐步讲解代码库和设计决策。这就是本书的样子。

关于 Compound V3

Compound 只借出一种资产,称为“基础”资产。

与 Compound V2(和 AAVE)不同,后者允许借款人从资产菜单中借款,在 Compound V3 中,借款人只能借用单一资产(而贷方也只能贷出单一资产)——每个“市场”。在撰写本文时,有一个借用(和贷出) USDC 的市场和一个借用和贷出 ETH 的市场。

创建于2025-02-27 10:33 订阅(17)
退款后将取消订阅本专栏 !
退款原因:
退款 取消
专栏删除后将不可恢复 !
删除 取消
RareSkills
RareSkills
贡献值: 2395 学分: 8057
https://www.rareskills.io/
0 关注 74 粉丝
关于
关于我们
社区公约
学分规则
Github
伙伴们
DeCert
ChainTool
GCC
UpChain
合作
广告投放
发布课程
联系我们
友情链接
关注社区
Discord
Twitter
Youtube
B 站
公众号

关注不错过动态

微信群

加入技术圈子

©2025 登链社区 版权所有 | Powered By Tipask3.5|
粤公网安备 44049102496617号 粤ICP备17140514号 粤B2-20230927 增值电信业务经营许可证

发送私信

请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!

提醒

检测到你当前登录的账号还未绑定手机号
请绑定后再发布
去绑定
编辑封面图
封面预览