Smart Contract를 만들 때 취약점
오늘은 Ethernaut을 이용하여 헷갈렸던 부분 다시 정리해보기 !
1.
오늘 문제를 풀면서 가장 헷갈렸던 이더단위 (이더단위 아래에 첨부)
항상! 코드 한줄한줄 잘 살펴보면서 알아가도록하자.
https://gettoknowit.tistory.com/18
2.
아직도 헷갈리는 Mapping이 너무 헷갈려서 정리해놓았다.
가장 중요한 점은 key-value 로 저장이된다는 점이다.
그리고, key는 필수값! value는 반환값!
***내가 배포하는 컨트랙트 또한 돈을 받을 수 있다!
그게 언제냐? 바로 위의 코드 함수 중에 contribute( )를 실행했을 때이다.
3.
아래와 같이 컨트랙트로 돈을 보낼때,
await sendTransaction({from:player, to:contract.address, value: toWei("0.001")})
이와같은 문법으로 보내게되는데, 그럼 이 때 함수 receive( )가 실행이된다.
그럼 아까내가 contribute( )를 실행했을 때 보내놓은 이더도 함께 require (...) 에
msg.value와 contributions[msg.sender]를 둘다 만족해야만 msg.sander이 owner로
바뀌게된다.
추가로
강사님께서 mapping으로만 읽고 쓴는 함수를 만들어보라고하셔서 만들어본 컨트랙트.
아래는 바이낸스아카데미라는 곳인데 이런곳에 들어가서
블록체인에 어떠한 개념들이 있는지 많이 봐두고, 알아두자!
https://academy.binance.com/ko
Binance Academy
Interested in learning about blockchain, cryptocurrency, security, technology, or following along with tutorials? Binance Academy has all that and more!
academy.binance.com
문제풀이 사이트 :
https://steemit.com/kr-dev/@modolee/ethereum-ethernaut-1-fallback
최근댓글