Top

이더리움 쿡북 [실전 예제와 함께 배우는 이더리움 기반 토큰, 게임, 스마트 계약, 댑 구현 방법]

  • 원서명Ethereum Cookbook: Over 100 recipes covering Ethereum-based tokens, games, wallets, smart contracts, protocols, and Dapps (ISBN : 9781789133998)
  • 지은이마노지 P R(Manoj P R)
  • 옮긴이남기혁, 최현영
  • ISBN : 9791161752846
  • 35,000원
  • 2019년 03월 28일 펴냄
  • 페이퍼백 | 488쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 프로그래밍 언어

책 소개

요약

이더리움 개발 환경 설정 방법, 스마트 컨트랙트 작성 방법, 토큰 생성 방법을 비롯한 기본 개념을 소개하고, 보안 취약점, 이더리움 관련 프로토콜도 소개하는 책이다. 이를 바탕으로 애플리케이션의 확장성과 보안을 높이기 위한 설계 고려 사항과 구현 기법을 소개한다. 트러플(Truffle), 웹3(Web3), 가나슈(Ganache)와 같은 이더리움 관련 패키지를 사용하는 방법도 소개한다.

이 책에서 다루는 내용

█ 이더리움에서 스마트 컨트랙트를 효율적으로 작성하는 방법
■ 확장성 있는 분산 애플리케이션을 개발, 배치하는 방법
■ 애플리케이션 개발, 배치, 테스트와 관련된 여러 가지 도구와 프레임워크 사용법
■ Etherscan을 비롯한 블록 탐색기로 트랜잭션을 검색하는 방법
■ 토큰, ICO, 게임 제작 방법
■ 스마트 컨트랙트에서 발생할 수 있는 보안 허점과 대응 방법

이 책의 대상 독자

이더리움 블록체인 네트워크를 구축하고, 스마트 컨트랙트를 개발해서 배치하고, 탈중앙화 애플리케이션, 댑(DApp)을 만들거나 P2P 트랜잭션을 수행하는 방법을 알고 싶은 이들을 대상으로 하는 책이다. 이 책을 제대로 이해하기 위해서는 블록체인의 기본 개념과 자바스크립트 및 노드JS의 기초 지식이 도움이 된다.

이 책의 구성

1장, ‘이더리움 시작하기’에서는 이더리움의 기초와 관련 도구를 소개한다. 이더리움 설치하고 설정하는 방법과 네트워크에 연결해서 실행하는 방법을 알아볼 수 있는 예제를 실습해본다.
2장, ‘스마트 컨트랙트 작성하기’에서는 스마트 컨트랙트를 작성하는 요령을 소개하는 다양한 예제를 제공한다. 또한 작성한 컨트랙트를 컴파일, 배치, 테스트하는 방법도 소개한다.
3장, ‘스마트 컨트랙트 다루기’에서는 블록체인과 스마트 컨트랙트와 상호작용하는 탈중앙화 애플리케이션(댑) 개발에 관련된 핵심 주제를 소개한다.
4장, ‘트러플’에서는 이더리움 생태계에서 인기 있는 도구인 트러플 프레임워크를 소개한다. 워크플로우와 댑의 품질을 향상시키기 위한 몇 가지 활용 사례도 소개한다.
5장, ‘토큰과 ICO’에서는 이더리움 기반 토큰을 직접 만들고 ICO를 통해 배포하는 데 필요한 핵심 사항을 소개한다.
6장, ‘게임과 DAO’에서는 탈중앙화 게임이나 조직(DAO)을 구축하는 방법을 소개하고 직접 따라해볼 수 있는 예제를 제공한다.
7장, ‘솔리디티의 고급 기능’에서는 블록체인에서 좀 더 복잡한 작업을 효율적으로 처리하는 데 도움이 되는 솔리디티의 고급 기능을 소개한다.
8장, ‘스마트 컨트랙트 보안’에서는 널리 알려진 보안 취약점에 대응하는 기법을 소개한다. 또한 코드를 분석하는 데 활용할 수 있는 다양한 도구도 알아본다.
9장, ‘설계 고려 사항’에서는 풍부한 기능을 갖춘 댑을 개발하는 과정에서 흔히 고민하는 주제를 여러 가지 예제와 함께 살펴본다.
10장, ‘다양한 프로토콜과 애플리케이션’에서는 댑 개발에 도움될 만한 이더리움 관련 프로토콜과 애플리케이션을 소개한다.
11장, ‘스마트 컨트랙트 개발 관련 기법’에서는 더 높은 수준의 댑을 개발하는 데 필요한 여러 가지 주제를 소개한다.

저자/역자 소개

지은이의 말

이 책은 실전에 도움이 되는 기법을 소개하는 가이드이다. 이더리움을 설치하는 방법, 네트워크에 연결하는 방법, 뛰어난 품질의 스마트 컨트랙트를 개발하고 배치하며 트러플과 가나슈로 개발 과정을 관리하고, 자신만의 토큰과 ICO를 개발하고, 탈중앙화 게임과 조직을 구축하고, 여러 종류의 토큰을 지원하는 자신만의 지갑을 개발하는 방법 등을 소개한다.
또한 이더리움에서 발생할 수 있는 여러 가지 보안 취약점과 다양한 이더리움 관련 프로토콜도 소개한다. 그리고 확장성 있고 보안이 뛰어난 애플리케이션을 만드는 데 도움이 되는 다양한 설계 고려 사항과 기법도 소개한다. 이 책에서 전반적으로 다루는 내용과 고급 주제를 통해 이더리움의 원칙과 생태계를 이해할 수 있을 것이다.

지은이 소개

마노지 P R(Manoj P R)

분산 원장 기술 분야에서 3년 이상의 경력을 보유한 IT 기술에 능통한 개발자다. 인기 있는 최신 기술에 관심과 열정을 갖고 있어 적극적으로 학습하고 공헌한다. 전문 분야는 이더리움, 자바스크립트, Go 언어이며, 프로그래밍을 독학으로 익혀서 학창 시절부터 프리랜서 개발자로 경력을 쌓았다. 전 세계 다양한 고객을 대상으로 확장성 있는 엔터프라이즈 블록체인 솔루션을 여러 차례 개발했으며, 현재 콘듀언트 랩스(Conduent Labs)에서 블록체인 SME주제 전문가, Subject Matter Expert로 근무하고 있다. 현실 문제를 기술로 해결하는 데 관심이 많고, 오픈 소스 프로젝트에 활발하게 참여한다. 본업 외에도 여행과 글쓰기를 즐긴다.

옮긴이 소개

남기혁

고려대학교 컴퓨터학과에서 학부와 석사 과정을 마친 후 한국전자통신연구원에서 선임 연구원으로 재직하고 있으며, 현재 ㈜프리스티에서 네트워크 제어 및 검증 소프트웨어 개발 업무를 맡고 있다. 에이콘출판사에서 출간한 『GWT 구글 웹 툴킷』(2008), 『해킹 초보를 위한 USB 공격과 방어』(2011), 『자바 7의 새로운 기능』(2013), 『iOS 해킹과 보안 가이드』(2014), 『Neutron 오픈스택 네트워킹』(2015), 『실전 IoT 네트워크 프로그래밍』(2015), 『애플 워치 WatchKit 프로그래밍』(2015), 『현대 네트워크 기초 이론』(2016), 『도커 컨테이너』(2017), 『스마트 IoT 프로젝트』(2017), 『파이썬으로 배우는 인공지능』(2017), 『메이커를 위한 실전 모터 가이드』(2018), 『트러블 슈팅 도커』(2018), 『Go 마스터하기』(2018) 등을 번역했다.

최현영

고려대학교 컴퓨터학과에서 학사, 석사, 박사를 마치고, 고려대학교 융합소프트웨어 대학원에서 연구교수를 거쳐, 현재 미국 펜실베니아 대학, PRECISE 센터에서 연구교수로 재직 중이다.

목차

목차
  • 1장. 이더리움 시작하기
    • 들어가며
    • 이더리움 클라이언트 고르기
    • 노드 설정하고 네트워크에 참여하기
    • 자바스크립트 콘솔에서 작업하기
    • 인퓨라로 시간과 비용 절약하기
    • 사설 이더리움 네트워크 직접 만들기
    • 개발용 블록체인 네트워크 생성하기
    • 애저 이더리움 서비스 사용하기
    • 메타마스크를 비롯한 다양한 지갑 사용하기
    • 블록 탐색기 사용하기
    • 계정에 대해 완벽히 이해하기
    • 솔리디티 컴파일러 설치하기

  • 2장. 스마트 계약 작성법
    • 들어가며
    • IDE 잘 고르는 방법
    • 스마트 계약 직접 작성해보기
    • 리믹스로 계약 테스트하기
    • 솔리디티의 정적 및 동적 타입
    • 생성자와 폴백 함수
    • 구조체와 열거형 사용법
    • 솔리디티에서 제공하는 제어 구문
    • 솔리디티에서 함수 작성하는 방법
    • 배열과 매핑
    • 함수 제한자 사용법
    • 접근 제한자를 효율적으로 활용하는 방법
    • 핵심 이벤트 - EVM 로거
    • 스토리지와 메모리의 효율적인 사용법
    • solc 컴파일러로 계약 컴파일하기
    • geth로 계약 배치하기

  • 3장. 계약 다루기
    • 들어가며
    • web3.js 설치하고 설정하기
    • 메타마스크를 인젝티드 프로바이더로 사용하기
    • 계정을 관리하고 트랜잭션을 보내는 방법
    • 작성한 스마트 계약을 컴파일해서 배치하기
    • 스마트 계약에서 데이터 읽기
    • 스마트 계약에 데이터 쓰기
    • DApp에서 발생하는 이벤트 감시하기
    • 로 트랜잭션 보내기
    • web3.js로 배치 요청하기
    • JSON-RPC로 이더리움 다루기
    • 계약을 다루는 다른 방법

  • 4장. 트러플 스위트
    • 들어가며
    • 트러플 프레임워크 설치 및 설정하기
    • 트러플 박스 활용하기
    • 스마트 계약 컴파일하기
    • 트러플 고급 설정 방법
    • 트러플에서 마이그레이션과 배치하기
    • 계약 다루기
    • 트러플로 스마트 컨트랙트 디버깅하기
    • 스마트 계약에 대한 테스트 작성하기
    • 트러플로 DApp과 API 작성하기
    • 트러플에서 패키지 관리하기
    • 드리즐 소개
    • 트러플에서 HD 지갑 사용하기

  • 5장. 토큰과 ICO
    • 들어가며
    • 이더리움에서 기본 ERC20 토큰 생성하기
    • 계정끼리 토큰 주고받기
    • 다른 계정에 위임해서 토큰 사용하기
    • 발행 가능한 토큰 생성하기
    • 폐기 가능한 토큰 생성하기
    • ERC223 토큰 생성하기
    • 직접 ICO 추진하기
    • ICO 계약에 기능 추가하기
    • 투자자에게 보너스 토큰 제공하기
    • 크라우드세일 사용자에 대한 화이트리스트 작성하기
    • 크라우드세일에 암호화페 지불 허용하기
    • ERC20 토큰을 모두 지원하는 지갑 생성하기

  • 6장. 게임과 DAO
    • 들어가며
    • 대체 불가능 토큰 생성 방법
    • 자산 추적 및 이전
    • 이더리움에서 간단한 게임 만들기
    • 이더리움에서 탈중앙화 복권 만들기
    • 티켓 번호로 당첨자 선정하기
    • 투자자에게 배당금 나누기
    • 더 많은 사용자를 끌어들이기 위한 제휴 프로그램 운영하기

  • 7장. 솔리디티의 고급 기능
    • 들어가며
    • 솔리디티에서 에러 잘 처리하는 방법
    • 추상 계약과 인터페이스 계약
    • 다른 계약에서 계약 관리하기
    • 솔리디티의 계약 상속 기능
    • 솔리디티에서 라이브러리 만드는 방법
    • 솔리디티에서 제공하는 수학 및 암호화 함수
    • 업그레이드 가능한 스마트 계약 작성법
    • 솔리디티에서 API로 데이터 가져오기
    • 솔리디티에서 함수를 타입으로 사용하는 방법
    • 솔리디티 어셈블리
    • 솔리디티에서 멀티시그 지갑 구현하기

  • 8장. 스마트 계약 보안
    • 들어가며
    • 정수 오버플로우와 언더플로우
    • 재진입 공격
    • 패리티 해킹
    • 계약에 강제로 이더 전달하기
    • 사설 변수 사용하기
    • TOD
    • 모르는 대상 호출하기
    • 루프를 이용한 DoS
    • 솔리디티용 보안 분석 도구
    • 솔리디티에서 초기화하지 않은 스토리지 포인터
    • 솔리디티 코드의 올바른 작성 방법

  • 9장. 설계 고려사항
    • 들어가며
    • 댑을 위한 서버리스 아키텍처
    • 애플리케이션에 특화된 지갑 구현하기
    • 배치 후 발견된 버그에 대처하는 방법
    • 솔리디티로 무작위수 생성하기
    • 계약을 간결하고, 모듈화된 형태로, 최신 상태로 유지하기
    • 이더리움에 사용자 인증 구현하기

  • 10장. 다양한 프로토콜과 애플리케이션
    • 들어가며
    • 이더리움 네임 서비스에 등록하기
    • 댑용 통신 프로토콜, 위스퍼
    • 분산 스토리지 플랫폼, 스웜
    • BTCRelay로 비트코인 트랜잭션 모니터링하기
    • 알람 클록으로 이더리움 트랜잭션 스케줄링하기
    • 오픈제플린 라이브러리 사용하기

  • 11장. 스마트 계약 작성 관련 기법
    • 들어가며
    • 바이퍼로 스마트 계약 작성하기
    • 리믹스로 스마트 계약 디버깅하기
    • 리믹스로 계약 배치하기
    • 솔리디티 코드에 대한 문서 생성하기
    • 린터를 이용해 코드 향상시키기
    • 다른 이와 솔리디티 코드 공유하기

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안