안녕하세요. piatoss입니다. Ethernaut 문제를 계속 푸는 와중에 Dex(Decentralized Exchange) 관련 문제가 나와서 찾아보다가 'Damn Vulnerable DeFi'라는 문제 사이트를 발견해서 그것도 조금 풀어보려는데 무슨 소리인지 하나도 안 들어오더라고요. 그래서 solidity를 계속 공부하려면 근본적으로 DEX가 무엇이고 어떻게 돌아가는지 이해가 필요할 것 같아서 Uniswap V2를 들고 와 봤습니다. V2면 V1도 있을 텐데 왜 V2부터 하냐고 물어보신다면, V1은 solidity가 아닌 vyper로 작성되어 있기 때문에 제가 읽을 수가 없습니다. 그래서 굳이 V1부터 시작하기보다는 가장 유명하고 여러 개선점들도 돋보이는 V2를 기준으로 시작해 볼까 합니다. 이론..
1. 문제 NaughtCoint은 ERC20 토큰이며 당신은 이미 모든 토큰을 손에 쥐고 있다. 문제는 10년이 지나야 그 토큰들을 사용할 수 있다는 것이다. 시간 제한이 풀리기 전에 다른 주소로 자유롭게 토큰을 보낼 수 있는 방법은 없을까? 당신의 토큰 잔액을 0으로 만들어라. // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import 'openzeppelin-contracts-08/token/ERC20/ERC20.sol'; contract NaughtCoin is ERC20 { // string public constant name = 'NaughtCoin'; // string public constant symbol = '0x0'; // uint..