[가상화폐] [Ethereum] Ethernaut 풀이 - 0.Hello Ethenaut

iron_modolee.png
안녕하세요. 개발자 모도리입니다.
지난 포스팅(Ethernaut 소개)에서는 Ethernaut을 소개하고 이용하기 전 준비 사항들을 알아봤습니다. 이번에는 본격적으로 Level 0 문제를 풀어 보도록 하겠습니다.

0.Hello Ethernaut

지난 번 포스팅에서는 9번 항목의 맛보기까지만 진행을 했습니다.
00_previous_post.png

TIP!을 잘 생각하면서 진행을 해보겠습니다.

contract.info()

  • info 함수를 호출하면 아래와 같은 메세지가 나옵니다.
    01_info.png
  • info1 함수를 호출해 봐야겠죠?

contract.info1()

  • info1 함수를 호출한 화면입니다.
    02_info1.png
  • 이번에는 info2를 호출하라고 하는데, parameter로 "Hello"를 넣으라고 하네요.

contract.info2()

  • 시키는데로 info2 함수에 parameter로 "Hello"를 넣어서 호출합니다.
    03_info2.png
  • infoNum이라는 property가 다음 info 함수의 숫자를 가지고 있는데, infoNum 이라는게 있는건지 Num 대신 무슨 숫자를 넣어야 될지 조금 헷갈립니다.
  • 이때 아까 TIP!!!이 있었죠. contract의 ABI를 확인해 보겠습니다. contract 명령어를 입력합니다.
    04_abi_infoNum.png
  • 실제로 infoNum이라는 함수가 존재하네요.

contract.infoNum()

  • 존재를 확인했으니 infoNum 을 호출해 봅니다.
    04_infoNum.png
  • 분명 infoNum이 다음 info 함수의 숫자를 가지고 있다고 했는데, 그냥 봐서는 잘 모르겠습니다. 그래서 결과 값을 한번 펼쳐봤습니다. 숫자가 몇 개 있는데, 그 중 42가 눈에 띕니다.
  • 혹시 모르니 ABI를 확인해 보겠습니다.
    05_abi_info42.png
  • info42 함수가 존재하네요.

contract.info42()

  • info42 함수를 호출합니다.
    06_info42.png
  • 메소드(함수) 이름이 theMethodName 이라니 설마... 했지만 정말 있습니다.
    07_abi_theMethodName.png

contract.theMethodName()

  • 호출합니다. (도대체 언제까지 해야 될까요? ㅠㅠ)
    08_theMethodName.png

contract.method7123949()

  • 아시죠? 또 호출합니다.
    09_method7123949.png
  • 갑자기 password를 알고 있냐고 물어봅니다. 하.... 설마....
    10_abi_password.png
  • 친절하게도 public 함수로 password를 부를 수 있게 되어 있습니다.
  • password를 확인해 보겠습니다.
    11_password.png
  • 그리고 authenticate 함수도 확인해 보겠습니다.
    12_abi_authenticate.png
  • authenticate 함수는 input으로 1개를 받는데, 아마도 password 겠죠?

contract.authenticate()

  • 앞서 확인한 password를 parameter로 해서 authenticate 함수를 호출합니다.
    13_authenticate.png
  • 이거는 쓰기 함수 인가보네요. gas fee를 달라고 합니다.
    14_metamask_submit.png
  • 적당한 가격을 넣고, submit을 누릅니다.
  • 잠시 후 트랜잭션이 보내지고, 채굴까지 완료가 됩니다.
    15_sent_mined.png
  • 더 이상 요구하는게 없으니 완료된 것 같죠?

Submit instance

  • level을 완료했다는 표시로 submit instance버튼을 누릅니다.
    16_submit_instance.png
  • 또 gas fee를 요구하네요. 이건 ethernaut smart contract에 현재 지갑 주소가 level을 complete 했다를 저장하기 위해 발생시키는 트랜잭션입니다.
  • 채굴까지 정상적으로 완료가 되면, 아래와 같이 level completed 화면이 콘솔에 뜹니다.
    17_level_complete.png

Level Completed

  • 임수를 완수 했다는 표시로 몇 가지 변화가 있습니다.
  • 우선 체크 표시와 completed 배지가 생깁니다.
    20_complete.png
  • 그리고 해당 instance의 smart contract 코드로 맨 아래 보여집니다.
    19_solidity_code.png
  • 그리고 제일 중요한 다음 level로 넘어갈 수 있는 버튼이 새롭게 생겼습니다.
    18_go_to_the_next_level.png

명령어 하나 하나씩을 설명해 가면서 문제를 풀어보았는데, 혹시나 중간에 이해가 안되는 부분이 있으시다면 편하게 댓글 남겨주시면 제가 아는 한도 내에서 정성껏 답변 드리겠습니다. 다음 문제도 계속 올리도록 하겠습니다. ^^

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

블록체인 기술

번호 제목 글쓴이 날짜 조회수
38 정보 쉽게 이해하는 블록체인 기술(1) icon Work4Block 05-17 4,772
37 정보 KEEP!T History: 장기적으로 볼 때 우리는 모두 죽는다 icon Work4Block 05-17 4,456
36 가상화폐 잘 조직화된 보안 대응 협력체계가 EOS를 DDoS에서 지켜줄 수 있다. icon Work4Block 05-16 4,153
35 정보 토큰 이코노미 설계의 빅 픽쳐와 행위자(Actor)에 대해 icon Work4Block 05-16 4,176
34 가상화폐 KEEP!T Column 비트코인 뽀개기(4편) icon Work4Block 05-11 5,038
33 정보 PoW를 다시 생각한다 icon Work4Block 05-09 4,173
32 정보 Modified Merkle Patricia Trie - ethereum이 상태를 저장하는 방법 icon Work4Block 05-08 5,222
31 정보 '스마트 계약'의 의미이론에 대해 icon Work4Block 05-08 4,628
30 정보 블록체인 진화의 방향으로서의 Blockchain inter-connection 이슈들 icon Work4Block 05-07 3,526
29 정보 KEEP!T Column: 아나키, 국가, 그리고 블록체인. icon Work4Block 05-04 3,889
28 정보 초보자들을 위한 이더리움 DApp 만들기 icon Work4Block 05-03 7,240
27 정보 블록체인, 탈중앙화 네트워크에는 경제학이 필요하다 - 암호경제학 (Cryptoeconomics)의 시대 icon Work4Block 05-02 3,677
26 정보 [BMT]EOSIO TPS 테스트 2번째 결과 by EOSeoul icon Work4Block 05-01 3,945
25 정보 양자 컴퓨팅이 블록체인을 위협할 거라고? 지금 걱정하기에는 이르지만 준비는 해야 해 icon Work4Block 05-01 4,005
24 정보 KEEP!T History: 비트코인의 발행량이 2100만개인 이유 icon Work4Block 04-30 4,281
23 가상화폐 [COSINT] 한국사람만 모르는 프로젝트 IOS/IOST icon Work4Block 04-28 4,065
22 가상화폐 KEEP!T Column 비트코인 뽀개기(3편) icon Work4Block 04-26 5,464
21 가상화폐 카이버네트워크(KyberNetwork) 백서(White Paper) 한글 번역본 icon Work4Block 04-26 4,596
20 정보 KEEP!T column: 블록체인의 미래를 보는 창 - 특허 icon Work4Block 04-25 3,939
19 정보 KEEP!T column: 블록체인과 신원인증 (Identification) icon Work4Block 04-25 4,420