Vyper

微信扫码分享
剖析 Curve V1 稳定币兑换

剖析 Curve V1 稳定币兑换

视频 AI 总结: 该视频是关于 Curve V1 AMM 的课程介绍,面向有 Foundry 经验的高级 Solidity 开发者。课程将深入讲解 Curve V1 的数学原理和算法,并通过 Vyper 代码冷启动、Foundry 练习等方式,帮助学习者理解 Curve V1 的内部机制,并为学习 Curve V2 打下基础。课程讲师 Tez 拥有多年的软件和智能合约开发经验,并提供 GitHub 仓库供学习者进行练习和讨论。 视频中提出的关键信息: * 课程目标:理解 Curve V1 的数学和算法,阅读 Vyper 代码,并进行 Foundry 测试。 * 预备知识:熟悉 Foundry、恒定乘积 AMM 和恒定总和 AMM 的数学原理。 * 可选知识:了解 Uniswap V2/V3、DeFi 基础知识(如稳定币 DAI/USDC)以及 Python。 * 课程内容:Curve V1 的数学和算法、Vyper 代码冷启动、Foundry 练习。 * 学习 Curve V1 的意义:为新的 AMM 设计提供灵感,帮助参与安全竞赛和漏洞赏金项目,以及为理解 Curve V2 做准备。 * Curve V1 与 Uniswap V2/V3 的区别:Curve V1 使用 Vyper 编写,滑点低,支持两种或多种代币,可以指定提款代币,并收取不平衡费用。 * Curve V1 的核心公式:是恒定乘积和恒定总和的结合,通过参数 A 控制曲线的平坦程度。 * Curve V1 使用牛顿法来计算代币数量和流动性。 * Curve V1 的主要合约是 StableSwap,用户通过 exchange, addLiquidity, removeLiquidity 等函数与之交互。 * StableSwap 合约会先计算 A 参数,再计算流动性 D。 * 所有代币余额在计算前都会转换为 18 位小数。 * getVirtualPrice 函数返回每个 LP 代币的价值。 * calcTalkingAmount 函数计算要铸造或销毁的 LP 代币数量。 * exchange 函数用于交换代币。 * getY 函数计算 tokenOut 的代币余额。 * getDy 和 getDyOnTheLine 函数计算交换代币后获得的代币数量。 * addLiquidity 函数用于向 Curve V1 AMM 添加流动性。 * removeLiquidity 函数会销毁 LP 份额,然后按比例将池中的所有代币返还给流动性提供者。 * removeLiquidityOneCoin 函数会销毁 LP 份额,然后返还用户指定的单个代币。 * calcWithdrawOneCoin 函数计算用户将收到的单个代币数量。

732 0 0 2025-11-28 11:46
第42期 针对Vyper编译器漏洞引发的Curve重入攻击的分析

第42期 针对Vyper编译器漏洞引发的Curve重入攻击的分析

【第42期】针对Vyper编译器漏洞引发的Curve重入攻击的分析 **大纲** 1、Vyper编译器bug分析 2、针对Curve的重入攻击路径还原 3、解决方案展示(重点介绍Aspect如何实现Runtime Protection) **主讲人** Croc - Goplus研究员,香港科技大学程序分析方向博士 CP - Artela CTO **视频回放** [B 站](https://www.bilibili.com/video/BV1KN411h7NP/) | [Youtube](https://www.youtube.com/watch?v=iBpn3rBTxxo) > 直播时间:2023年8月2日

2060 0 0 2024-03-01 12:58