Aspiring smart contract auditor & developer | Obsessed with Linux 🐧 | πŸ’» github.com/Streamcrypt | Check out maestrolearningplatform.com/

Joined August 2025
187 Photos and videos
πŸ—“οΈ Day 86 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: Puppet v3 πŸ•΅οΈβ€β™‚οΈ πŸ“š Key Learnings: βœ… Learned how ticks simplify liquidity provision by specifying tickLower and tickUpper ranges βœ… Learned how ticks can be converted to prices and vice versa using the standard formula βœ… Learned how TWAP values are fetched using the consult function from a pool contract βœ… Learned that when creating a pool via NonfungiblePositionManager, it expects the initial price in √price Γ— 2^96 (Q64.96 fixed-point format) βœ… Understood the developer intent behind the challenge πŸ’‘ Notes: - Still figuring out whether TWAP can be manipulated when a protocol does not use it correctly - Most of these concepts are still at a high level for me; I have not yet gone deep into how they work internally
17
190
πŸ—“οΈ Day 85 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: Puppet v2 β˜‘οΈ πŸ“š Key Learnings: βœ… Learned how Uniswap V2 Router simplifies swaps by routing everything through factory and pair contracts βœ… Understood that Uniswap V2 can handle any ERC20 ↔ ERC20 token swaps through liquidity pairs βœ… Understood basic router flow and how trades are executed indirectly through liquidity pools βœ… Saw that Puppet v2 uses the same pricing weakness as Puppet v1, but now through Uniswap V2 liquidity πŸ’‘ Security Mindset: Don’t trust onchain DEX prices as a source of truth , they can be easily manipulated 🚨 πŸ’‘ Reflection: Even decentralized prices can be unreliable when liquidity is low. Protocols must not assume AMM prices are always β€œfair” or accurate.
2
15
231
πŸ—“οΈ Day 84 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: Puppet v1 β˜‘οΈ yo i can’t even hold the urge for 3 days to grind 😭 been slacking on school work too so I’m swapping peak hours for school sessions and non-peak hours for coding πŸ“š Key Learnings: βœ… Understood the risk of using Uniswap v1 as a price oracle βœ… Learned how token swaps can manipulate AMM reserves and distort pricing βœ… Saw how lending logic can be broken when it depends on spot price from external liquidity pools πŸ’‘ Security Mindset: Never trust AMM spot price as a source of truth , liquidity can be manipulated to game collateral calculations 🚨 πŸ’‘ Reflection: Small changes in liquidity can completely break financial assumptions in DeFi systems
4
21
374
πŸ—“οΈ Day 83 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: Puppet v1 πŸ•΅οΈβ€β™‚οΈ I'm going to pause my grinding for a while since exams are approaching. Maybe after I round everything up, I’ll continue the grind again. Today was all about AMMs and DeFi. πŸ“š Key Learnings: βœ… Learnt about liquidity and how liquidity providers earn their share for contributing funds βœ… Understood the math behind x * y = k, why both sides must maintain equal value, and the problems AMMs solve βœ… Found out that Vyper is quite similar to Solidity, just more minimalistic βœ… Understood how TWAP is used in Uniswap V2 to reduce price manipulation risks πŸ’‘ Security Mindset: Price is not truth in DeFi, liquidity depth and oracle design determine how reliable that truth really is 🚨 πŸ’‘ Reflection: Math quietly controls almost everything in DeFi, from pricing to incentives to security itself. The deeper I learn, the more it feels like the future will belong to people who truly understand systems and numbers
2
24
366
πŸ—“οΈ Day 82 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: Wallet Mining β˜‘οΈ πŸ“š Key Learnings: βœ… Observed how storage collisions between proxies and implementation contracts can introduce critical vulnerabilities βœ… Learned how to generate valid EIP-712 Safe transaction signatures as an owner πŸ’‘ Security Mindset: Never rely on undeployed contract addresses as a security boundary , deterministic deployment makes them predictable and exploitable 🚨 In security design, there is no such thing as a β€œone in a million chance” assumption; if an address can be derived from known parameters, it must be treated as already known. Any unexpected edge case can and will be abused. πŸ’‘ Reflection: Contract deployment paths may look irreversible on the surface, but deterministic deployment logic can still expose hidden ways to recover or predict addresses beneath it
1
17
239
πŸ—“οΈ Day 81 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: Compromised β˜‘οΈ πŸ“š Key Learnings: βœ… Learnt that encoding or formatting a private key is not security since reversible transformations can still expose it πŸ’‘ Security Mindset: Use hashes for integrity and irreversible transformations, not encodings that can be reconstructed 🚨 πŸ’‘ Reflection: A secret is only secure when recovery is computationally impractical, not when it merely looks unreadable
1
28
286
πŸ—“οΈ Day 80 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: Withdrawal πŸ•΅οΈβ€β™‚οΈ πŸ“š Key Learnings: βœ… Completed the Withdrawal challenge βœ… Wasted a lot of time on this challenge due to misunderstanding some parts of the contract system πŸ’‘ Security Mindset: Even when trying to prevent malicious execution as a bridge operator, I still ended up abusing another flaw in the system. When using low-level .call in assembly, always verify the returned boolean value. Ignoring it can silently allow failed executions and create dangerous assumptions 🚨 πŸ’‘ Reflection: A lot of bugs don’t come from complex code, but from misunderstanding how different parts of the system interact together. The deeper the system, the more dangerous assumptions become.
1
20
249
πŸ—“οΈ Day 79 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: Withdrawal πŸ•΅οΈβ€β™‚οΈ πŸ“š Key Learnings: βœ… Understood the developer intent and logic behind the challenge βœ… Refreshed understanding of how event works πŸ“Œ Next Step: Start forming testable assumptions and potential attack paths based on the system design
2
23
252
πŸ—“οΈ Day 78 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: The Rewarder πŸ•΅οΈβ€β™‚οΈ πŸ“š Key Learnings: βœ… Completed the Rewarder challenge βœ… Learnt how Merkle proofs can be used for airdrops βœ… Found that the contract does not properly mark rewards claimed by users; This allows reuse of the same valid token/proof multiple times within the same batch logic gap πŸ’‘ Security Mindset: If a claim is not individually tracked as β€œused,” a valid proof can be replayed to drain rewards multiple times πŸ’‘ Reflection: The main issue was missing per-claim tracking. Even with correct Merkle verification, failing to mark each token claim as used breaks the entire reward integrity model.
1
12
211
πŸ—“οΈ Day 77 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: The Rewarder πŸ•΅οΈβ€β™‚οΈ πŸ“š Key Learnings: βœ… Learned how devs use a single uint256 slot as bit flags instead of mapping(uint256 => bool). βœ… Understood the developer intent and logic behind the level. πŸ” Insight: I got inspired by Martin Ortner AKA tintinweb |@nicht_tintin | . Seeing how he works across different security areas made me realize something important: different domains connect and strengthen each other through an auditing mindset. That changed how I see auditing not just as a job, but as a real skillset built on pattern thinking and cross-domain logic. 🎯 Focus now: Go deep in Solidity first and build strong specialization before moving to other areas.
1
27
329
πŸ—“οΈ Day 76 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: Naive Receiver πŸ•΅οΈβ€β™‚οΈ πŸ“š Key Learnings: βœ… Completed the Naive Receiver challenge βœ… Learned how flashloan fee mechanics can be weaponized against permissionless borrower contracts πŸ’‘ Security Mindset: Never assume execution context is flat, nested calldata delegatecall can completely alter control flow and break security assumptions 🚨 πŸ’‘ Reflection: What looks like a simple batching mechanism can hide complex execution paths, especially when combined with delegatecall. The real danger isn’t always obvious, it’s in how different components interact under the hood.
26
327
πŸ—“οΈ Day 75 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: Selfie πŸ•΅οΈβ€β™‚οΈ πŸ“š Key Learnings: βœ… Completed the Selfie challenge βœ…Understood that voting power only exists after delegation, not just holding tokens βœ…Learned how flashloans can be combined with delegation and snapshots to gain temporary governance power πŸ’‘ Security Mindset: Do not take a voting snapshot immediately after delegation, an attacker can flashloan tokens, delegate to themselves, and pass governance checks before returning the tokens 🚨 πŸ’‘ Reflection: Voting power feels persistent, but in reality it can be temporarily manipulated within a single transaction to influence long-term decisions
1
1
21
454
πŸ—“οΈ Day 74 – Solving Damn Vulnerable DeFi Challenges πŸ› οΈ πŸ”Ή Current Challenge: Unstoppable πŸ•΅οΈβ€β™‚οΈ πŸ“š Key Learnings: βœ… Completed Unstoppable challenge βœ… Saw how flashloan checks can be bypassed by inflating vault balance outside deposit() πŸ’‘ Security Mindset: Don’t assume all state changes go through intended functions , external token transfers can break invariants 🚨 πŸ’‘ Reflection: Using totalSupply vs totalAssets as a safety check is fragile because users can send tokens directly to the vault via ERC20, bypassing ERC4626 logic and causing mismatches that break core functionality like flash loans
1
18
235