# Platypus Finance Hack Analyze

By [Leek DEV](https://paragraph.com/@leekdev) · 2023-10-26

---

[https://twitter.com/Platypusdefi/status/1712513974124818589](https://twitter.com/Platypusdefi/status/1712513974124818589)

![](https://storage.googleapis.com/papyrus_images/4e5f271e8b28328f4c9e842542711a6da71d9495b02c9f5554ea5e40071e2160.png)

在 Avalanche 上有个 [Platypus](https://platypus.finance/) 的DeFi项目在 Oct-12-2023 03:29:49 AM +UTC 又被黑了，涉及金额超过 **130K** 个 AAVE【预估金额在 **1M** 个USDT以上】， 本地将会分析其中的分析原理。

涉及项目
----

### WAVAX

[Wrapped AVAX (WAVAX)](https://snowtrace.io/token/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7) 和 WETH 类似，是一个基础的原生以太转ERC20的协议，不属于任何项目方。 向合约里质押原生 AAVE 会 mint 出对应的 代币，可以在各种更加通用 的协议里使用。

### sAVAX

[Staked AVAX (sAVAX)](https://snowtrace.io/token/0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE)  是 [BENQI](https://staking.benqi.fi/stake) 开发的一个代币质押协议，一个往合约里质押原生AVAX， 可以立即获得一定的 sAVAX 代币。

### Pool SAvax

[Platypus Pool SAvax](https://snowtrace.io/address/0x4658EA7e9960D6158a261104aAA160cC953bb6ba) 是 [Platypus Finance](https://platypus.finance/) 推出的一个 DeFi 协议，具有 Swap 功能。是本次攻击的主要目标。

### LP-AVAX

是 [Platypus Pool SAvax](https://snowtrace.io/address/0x4658EA7e9960D6158a261104aAA160cC953bb6ba) 推出的关于 [Wrapped AVAX (WAVAX)](https://snowtrace.io/token/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7) 的一个流动性质押Token。上面的 Swap 池子有绑定这个Token。

### LP-sAVAX

是 [Platypus Pool SAvax](https://snowtrace.io/address/0x4658EA7e9960D6158a261104aAA160cC953bb6ba) 推出的关于 [Staked AVAX (sAVAX)](https://snowtrace.io/token/0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE)  的一个流动性质押Token。上面的 Swap 池子有绑定这个Token。

### Aave Pool V3

[Aave Pool V3](https://snowtrace.io/address/0x794a61358d6845594f94dc1db02a252b5b4814ad) 是 AAVE 的一个借贷池子，有提供闪电贷的功能，手续费0.05%。AAVE相关的池子都是几百万以上。

攻击流程
----

分析一下黑客操作的流程

1.  使用AAVE 的闪电贷 借出 1100000 个[WAVAX](https://snowtrace.io/token/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7) 与 991589 个[sAVAX](https://snowtrace.io/token/0x2b2C81e08f1Af8835a78Bb2A90AE924ACE0eA4bE)
    
2.  将 1100000个Token 存入 [Platypus Pool SAvax](https://snowtrace.io/address/0x4658EA7e9960D6158a261104aAA160cC953bb6ba)
    
3.  攻击者（0x0cD4fD0E）将剩下的600k SAVAX兑换为661k WAVAX
    
4.  随后从被攻击合约（0xC73eeD44）中提取出801k WAVAX
    
5.  攻击者（0x0cD4fD0E）调用swap函数用1.4m的WAVAX兑换了1.39m sAVAX
    
6.  攻击者（0x0cD4fD0E）调用withdraw函数提取出剩余的80k WAVAX.
    
7.  然后调用swap函数将剩下的700k sAVAX兑换为了991k 的WAVAX
    
8.  随后提取出被攻击合约（0xA2A7EE49）中剩余的330k sAVAX
    
9.  攻击者（0x0cD4fD0E）继续调用swap函数将70k sAVAX兑换为76k WAVAX
    
10.  最后攻击者（0x0cD4fD0E）偿还闪电贷后仍剩下111k WAVAX和20k的sAVAX，获利离场。
    

从代码中可以分析出Swap合约大概的情况，

*   流动性是个单个Token 绑定，其他比如 Uniswap 是和2个token 绑定
    
*   池子有 363018 个 WAVAX 547523 个 SAVAX 兑换比例在 1:1 左右
    
*   Swap 时有依赖 Chainlink 预言机
    
*   Swap 时 Slippage 参数使用了类似 X\*Y = K 单逻辑
    

按这个逻辑可以看出 Swap 时非常依赖LP池子的 Token 余额【cash】，整个池子大概有100W个AAVE的价值，如果从 AAVE 按照0.0005的手续费借出相同的AAVE, 只需要付 500 个 AAVE。按照黑客流程最终 [Wrapped AVAX (WAVAX)](https://snowtrace.io/token/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7) 池子被套走三分之一左右的代币。

![](https://storage.googleapis.com/papyrus_images/946092b36445461fcf62f1096e7cbd6aa895a56b5c2672d79bf0d13c805482ab.png)

从模拟的代码中可以看出来拥有足够的筹码后，是可以直接把一个池子掏空，然后价格就会收到非常大的影响。兑换比例发生了改变 **1:1 => 1:3** 这个时候随便操作几下的收益是远远大于 几百个AAVE的手续费。

![](https://storage.googleapis.com/papyrus_images/59d2b7287942c16ca24a3816dc4dad876bdbb511fc0973316597a1a8135afd9a.png)

防范思路
----

Swap 方法虽然使用了外部的 Chainlink 预言机, 但是内部计算 Slippage 仍然在一个区块内使用 X \* Y = K 逻辑。最终 [Wrapped AVAX (WAVAX)](https://snowtrace.io/token/0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7) 被套走左右。

*   计算 Slippage 是用加权的方式，时间至少要跨一个区块。
    
*   这个功能比较新，估计没有找靠谱$$的$$团队审核，专业团队应该一下就能看出来问题。
    

参考资料
----

*   [Platypus Finance](https://platypus.finance/)
    
    *   [Platypus\_Liquidity\_Mining\_Paper](https://cdn.platypus.finance/Platypus_Liquidity_Mining_Paper.pdf)
        
    *   [Platypus\_AMM\_Yellow\_Paper](https://cdn.platypus.finance/Platypus_AMM_Yellow_Paper.pdf)
        
    *   [Platypus\_Stablecoin\_Yellow\_Paper](https://cdn.platypus.finance/Platypus_Stablecoin_Yellow_Paper.pdf)
        
*   攻击 Transaction
    
    *   [Snowtrace](https://snowtrace.io/tx/0xab5f6242fb073af1bb3cd6e891bc93d247e748a69e599a3744ff070447acb20f)
        
    *   [Tenderly](https://dashboard.tenderly.co/tx/avalanche-mainnet/0xab5f6242fb073af1bb3cd6e891bc93d247e748a69e599a3744ff070447acb20f)
        
    *   [Phalcon](https://explorer.phalcon.xyz/tx/avax/0xab5f6242fb073af1bb3cd6e891bc93d247e748a69e599a3744ff070447acb20f)
        
    *   [OpenChain](https://openchain.xyz/trace/avalanche/0xab5f6242fb073af1bb3cd6e891bc93d247e748a69e599a3744ff070447acb20f)

---

*Originally published on [Leek DEV](https://paragraph.com/@leekdev/platypus-finance-hack-analyze)*
