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

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기