[가상화폐] [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
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

블록체인 기술

번호 제목 글쓴이 날짜 조회수
16 정보 초보자들을 위한 이더리움 DApp 만들기 icon Work4Block 05-03 7,343
15 정보 블록체인, 탈중앙화 네트워크에는 경제학이 필요하다 - 암호경제학 (Cryptoeconomics)의 시대 icon Work4Block 05-02 3,753
14 정보 [BMT]EOSIO TPS 테스트 2번째 결과 by EOSeoul icon Work4Block 05-01 4,020
13 정보 양자 컴퓨팅이 블록체인을 위협할 거라고? 지금 걱정하기에는 이르지만 준비는 해야 해 icon Work4Block 05-01 4,103
12 정보 KEEP!T History: 비트코인의 발행량이 2100만개인 이유 icon Work4Block 04-30 4,394
11 정보 KEEP!T column: 블록체인의 미래를 보는 창 - 특허 icon Work4Block 04-25 4,058
10 정보 KEEP!T column: 블록체인과 신원인증 (Identification) icon Work4Block 04-25 4,527
9 정보 KEEP!T Column : 블록체인이 만드는 투명한 사회 - 중개인의 실패 icon Work4Block 04-24 4,910
8 정보 KEEP!T History: 마르크스가 세운 노동가치설의 정점과 몰락 icon Work4Block 04-23 4,135
7 정보 KEEP!T Column: 금을 되살리는 블록체인 icon Work4Block 04-23 4,207
6 정보 KEEP!T Column: 인류 역사 속 작업 증명의 가치, 그리고 비트코인 icon Work4Block 04-23 4,461
5 정보 KEEP!T History: 로버트 오언과 협동조합, 그리고 블록체인 icon Work4Block 04-23 4,356
4 정보 KEEP!T Column: 의료보험과 블록체인 icon Work4Block 04-23 3,959
3 정보 코인 관련 용어 icon Work4Block 04-23 4,451
2 정보 KEEP!T History: 경제학의 아버지 애덤 스미스, 블록체인에서 다시 태어나다 icon Work4Block 04-23 5,048
1 정보 KEEP!T History: 두 명의 아웃사이더가 세운 경제적 토대 icon Work4Block 04-23 4,603