책 소개
★ 이 책에서 다루는 내용 ★
이더리움에서 스마트 컨트랙트를 효율적으로 작성하는 방법
■ 확장성 있는 분산 애플리케이션을 개발, 배치하는 방법
■ 애플리케이션 개발, 배치, 테스트와 관련된 여러 가지 도구와 프레임워크 사용법
■ Etherscan을 비롯한 블록 탐색기로 트랜잭션을 검색하는 방법
■ 토큰, ICO, 게임 제작 방법
■ 스마트 컨트랙트에서 발생할 수 있는 보안 허점과 대응 방법
★ 이 책의 대상 독자 ★
이더리움 블록체인 네트워크를 구축하고, 스마트 컨트랙트를 개발해서 배치하고, 탈중앙화 애플리케이션, 댑(DApp)을 만들거나 P2P 트랜잭션을 수행하는 방법을 알고 싶은 이들을 대상으로 하는 책이다. 이 책을 제대로 이해하기 위해서는 블록체인의 기본 개념과 자바스크립트 및 노드JS의 기초 지식이 도움이 된다.
★ 이 책의 구성 ★
1장, '이더리움 시작하기'에서는 이더리움의 기초와 관련 도구를 소개한다. 이더리움 설치하고 설정하는 방법과 네트워크에 연결해서 실행하는 방법을 알아볼 수 있는 예제를 실습해본다.
2장, '스마트 컨트랙트 작성하기'에서는 스마트 컨트랙트를 작성하는 요령을 소개하는 다양한 예제를 제공한다. 또한 작성한 컨트랙트를 컴파일, 배치, 테스트하는 방법도 소개한다.
3장, '스마트 컨트랙트 다루기'에서는 블록체인과 스마트 컨트랙트와 상호작용하는 탈중앙화 애플리케이션(댑) 개발에 관련된 핵심 주제를 소개한다.
4장, '트러플'에서는 이더리움 생태계에서 인기 있는 도구인 트러플 프레임워크를 소개한다. 워크플로우와 댑의 품질을 향상시키기 위한 몇 가지 활용 사례도 소개한다.
5장, '토큰과 ICO'에서는 이더리움 기반 토큰을 직접 만들고 ICO를 통해 배포하는 데 필요한 핵심 사항을 소개한다.
6장, '게임과 DAO'에서는 탈중앙화 게임이나 조직(DAO)을 구축하는 방법을 소개하고 직접 따라해볼 수 있는 예제를 제공한다.
7장, '솔리디티의 고급 기능'에서는 블록체인에서 좀 더 복잡한 작업을 효율적으로 처리하는 데 도움이 되는 솔리디티의 고급 기능을 소개한다.
8장, '스마트 컨트랙트 보안'에서는 널리 알려진 보안 취약점에 대응하는 기법을 소개한다. 또한 코드를 분석하는 데 활용할 수 있는 다양한 도구도 알아본다.
9장, '설계 고려 사항'에서는 풍부한 기능을 갖춘 댑을 개발하는 과정에서 흔히 고민하는 주제를 여러 가지 예제와 함께 살펴본다.
10장, '다양한 프로토콜과 애플리케이션'에서는 댑 개발에 도움될 만한 이더리움 관련 프로토콜과 애플리케이션을 소개한다.
11장, '스마트 컨트랙트 개발 관련 기법'에서는 더 높은 수준의 댑을 개발하는 데 필요한 여러 가지 주제를 소개한다.
작가 소개
지은이 : 마노지 P R
분산 원장 기술 분야에서 3년 이상의 경력을 보유한 IT 기술에 능통한 개발자다. 인기 있는 최신 기술에 관심과 열정을 갖고 있어 적극적으로 학습하고 공헌한다. 전문 분야는 이더리움, 자바스크립트, Go 언어이며, 프로그래밍을 독학으로 익혀서 학창 시절부터 프리랜서 개발자로 경력을 쌓았다. 전 세계 다양한 고객을 대상으로 확장성 있는 엔터프라이즈 블록체인 솔루션을 여러 차례 개발했으며, 현재 콘듀언트 랩스(Conduent Labs)에서 블록체인 SME주제 전문가, Subject Matter Expert로 근무하고 있다. 현실 문제를 기술로 해결하는 데 관심이 많고, 오픈 소스 프로젝트에 활발하게 참여한다. 본업 외에도 여행과 글쓰기를 즐긴다.
옮긴이 : 남기혁
고려대 컴퓨터학과에서 학부와 석사 과정을 마친 후 한국전자통신연구원에서 선임연구원으로 재직하고 있다. 한빛미디어에서 출간한 『Make: 센서』(2015), 『메이커 매뉴얼』(2016), 『이펙티브 디버깅』(2017), 『전문가를 위한 C++』(2019), 『리팩토링 2판』(2020)과 에이콘출판사에서 출간한 『현대 네트워크 기초 이론』(2016), 『도커 컨테이너』(2017), 『스마트 IoT 프로젝트』(2017), 『파이썬으로 배우는 인공지능』(2017), 『메이커를 위한 실전 모터 가이드』(2018), 『Go 마스터하기』(2018), 『자율주행 자동차 만들기』(2018), 『The Hundred-Page Machine Learning Book』(2019), 『스콧 애론슨의 양자 컴퓨팅 강의』(2021), 『자율주행차량 기술 입문』(2021) 등을 번역했다.
옮긴이 : 최현영
고려대학교 컴퓨터학과에서 학사, 석사, 박사를 마치고, 고려대학교 융합소프트웨어 대학원에서 연구교수를 거쳐, 현재 미국 펜실베니아 대학, 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장. 스마트 계약 작성 관련 기법
__들어가며
__바이퍼로 스마트 계약 작성하기
__리믹스로 스마트 계약 디버깅하기
__리믹스로 계약 배치하기
__솔리디티 코드에 대한 문서 생성하기
__린터를 이용해 코드 향상시키기
__다른 이와 솔리디티 코드 공유하기
역자 소개
null
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |