메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

엔지니어를 위한 블록체인 프로그래밍

이더리움 기반 신뢰성 높은 스마트 계약 개발하기

한빛미디어

번역서

절판

  • 저자 : 다고모리 데루히로
  • 번역 : 심효섭
  • 출간 : 2018-06-01
  • 페이지 : 280 쪽
  • ISBN : 9791162240694
  • 물류코드 :10069
  • 초급 초중급 중급 중고급 고급
4.7점 (3명)
좋아요 : 9

이더리움 기반 스마트 계약 개발에 당장 써먹는 블록체인 애플리케이션 실무 지침서 

이 책의 대상 독자는 블록체인을 활용하여 새로운 애플리케이션을 개발하려는 엔지니어다. 특히 안심하고 블록체인을 이용할 수 있는 보안 대책을 주로 다룬다.

1~2부에서는 블록체인 기술과 비트코인 네트워크의 전체 구조를 간단히 파악한다. 3~4부에서는 이더리움을 활용한 스마트 계약 개발에 필요한 준비와 솔리디티(Solidity)의 기본 문법, 스마트 계약의 거래 형태별 예제 코드를 살펴본다. 마지막으로 이더리움 네트워크 관련 개발에 필요한 보안상 주의사항과 취약점 공격 사례 연구 등을 설명한다. 

블록체인 애플리케이션 개발 실무에 필요한 지식을 빠르게 익히고 싶은 개발자라면 이 책이 분명 큰 도움이 될 것이다.

 

 

블록체인의 구조와 신뢰성 높은 스마트 계약 개발, 이더리움 보안 대책까지 한 권에

이 책은 최근 주목받는 기술인 블록체인을 활용하여 새로운 애플리케이션을 처음 개발해보려는 엔지니어를 위한 책이다. 이더리움 네트워크를 기반으로 스마트 계약을 개발할 때 당장 써먹을 수 있는 기본 개념과 활용법부터 보안 대책까지 차근히 짚어주는 실무 지침서다. 

 

이 책은 블록체인의 각 요소기술을 직접 체험해보며 이해할 수 있는 전반부와 본격적인 보안 실무를 다루는 후반부로 구성된다. 특히 후반부는 이더리움 네트워크 기반의 스마트 계약 개발에 필요한 보안상 주의사항이나 취약점 공격 사례 연구, 대책 등 보안 관련 주제를 상당한 분량을 할애해 다룬다. 이 후반부를 통해 블록체인의 가능성을 좇는 엔지니어가 시행착오를 조금이라도 더 줄일 수 있도록 구성했다.

 

이 책만으로 스마트 계약 개발 실무에 완전히 숙달할 수는 없겠지만, 엔지니어 여러분의 스마트 계약에 관한 이해 기반을 단단히 해줄 것이다. 당장 현장에서 관련 개발 업무를 수행해야 하는 개발자에게 추천한다.

다고모리 데루히로 저자

다고모리 데루히로

앱 개발 엔지니어로 시작해 주로 웹앱 개발에 주력했다. 보안 엔지니어로 전직한 이후에는 웹앱, 모바일앱, 스마트 계약 등의 보안 진단 업무를 맡았다. 현재는 블록체인과 보안 관련 분야의앱 개발에 전념하고 있다.

심효섭 역자

심효섭

연세대학교 문헌정보학과를 졸업하고 모교 중앙도서관과의 인연으로 도서관 솔루션 업체에서 일하면서 개발을 시작했다. 네이버에서 웹 서비스 개발 업무를 맡았으며, 웹 서비스 외에 머신러닝 공부도 꾸준히 하고 있다. 최근 관심사는 회사에 속하지 않고 지속 가능한 삶이다. 옮긴 책으로는 『돈 되는 파이썬 인공지능 프로그래밍』(위키북스, 2021), 『처음 시작하는 딥러닝』(한빛미디어, 2020), 『파이썬으로 시작하는 컴퓨터 과학 입문』(인사이트, 2017), 『도메인 주도 설계 철저 입문』(위키북스, 2020) 등이 있다.

 

PART 1 블록체인과 관련 기술

 

CHAPTER 1 블록체인의 큰 그림

1.1 블록체인 

__1.1.1 블록체인이란 

__1.1.2 비트코인이란 

1.2 비트코인 네트워크 

1.3 이더리움 

1.4 블록체인 네트워크의 구성 요소 

__1.4.1 P2P 

__1.4.2 참여자 

__1.4.3 거래 

__1.4.4 블록 

__1.4.5 분산장부 

__1.4.6 마이닝 

 

CHAPTER 2 블록체인을 이해하는 암호기술

2.1 해시 함수 

__2.1.1 SHA-256 

__2.1.2 RIPEMD-160 

__2.1.3 HASH160 

2.2 공개키 암호 

2.3 타원곡선 암호 

__2.3.1 타원곡선 

__2.3.2 덧셈 

__2.3.3 곱셈 

__2.3.4 비밀키와 공개키 생성 방법 

2.4 디지털 서명 

__2.4.1 디지털 서명과 검증 과정 

 

PART 2 비트코인 네트워크

 

CHAPTER 3 화폐로 사용이 가능한 이유

3.1 소유자를 특정하는 열쇠와 자물쇠 

3.2 송금 대상은 ‘어드레스’ 

__3.2.1 Base58Check 인코딩 

__3.2.2 어드레스를 생성하는 과정 

3.3 키를 관리하는 ‘전자 지갑’ 

3.4 전자 지갑의 종류 

__3.4.1 PC에 존재하는 전자 지갑 

__3.4.2 모바일 전자 지갑 

__3.4.3 거래소 전자 지갑 

__3.4.4 페이퍼 월릿 

__3.4.5 하드웨어 월릿 

 

CHAPTER 4 거래

4.1 거래의 생애주기 

4.2 거래의 개요 

__4.2.1 송금이 이루어지는 과정 사례 

4.3 거래의 구조 

__4.3.1 Locktime 필드 

4.4 UTXO와 잔액 

4.5 Locking Script와 Unlocking Script 

__4.5.1 스크립트의 검증 과정 

__4.5.2 거래 일부에 대한 서명 

__4.5.3 Pay to Pubkey 

__4.5.4 Pay to MultiSig 

__4.5.5 Pay to Script Hash 

__4.5.6 OP_RETURN 

 

CHAPTER 5 블록과 블록체인

5.1 블록의 구조와 식별자 

5.2 블록 안의 거래 검색하기 

__5.2.1 머클 트리 

 

CHAPTER 6 마이닝과 합의 알고리즘

6.1 비잔티움 장군 문제와 분산형 합의 

6.2 작업증명 

__6.2.1 문제 풀기 = 논스 찾기 

__6.2.2 무작위 대입으로 논스 찾기 

__6.2.3 검증하기 

__6.2.4 변조가 불가능한 이유 

6.3 누적되는 거래 

6.4 코인베이스 거래 

6.5 체인 분기 

__6.5.1 거래가 동시에 발행된 경우 

6.6 51% 공격 

 

PART 3 이더리움과 스마트 계약 개발

 

CHAPTER 7 이더리움과 비트코인 네트워크의 주된 차이점

7.1 이더리움의 특징 

__7.1.1 유통되는 통화 

__7.1.2 스마트 계약 

__7.1.3 계정 

__7.1.4 블록의 데이터 구조 

__7.1.5 상태 변화 

__7.1.6 계정과 연결된 정보 

__7.1.7 거래, 메시지, 콜 

__7.1.8 가스 

7.2 네트워크의 종류 

__7.2.1 퍼블릭 네트워크 

__7.2.2 프라이빗 네트워크 

__7.2.3 테스트 네트워크 

 

CHAPTER 8 스마트 계약 개발 준비 및 솔리디티의 기본 문법

8.1 개발환경 구축 

__8.1.1 게스 설치하기 

__8.1.2 Genesis 블록 생성과 게스 실행하기 

__8.1.3 계정 만들기 

__8.1.4 게스 콘솔에서 많이 사용되는 명령어 

8.2 미스트 월릿 

__8.2.1 설치 및 실행하기(윈도우) 

__8.2.2 설치 및 실행하기(macOS) 

__8.2.3 미스트 월릿 애플리케이션 

8.3 Remix-Solidity IDE 

8.4 솔리디티의 언어 사양 

__8.4.1 접근제어자 

 

CHAPTER 9 용도별로 본 스마트 계약 예제

9.1 예제 1 - HelloEthereum 

__9.1.1 새로운 계약 배포 

__9.1.2 소스 코드 작성하고 생성자 정의하기 

__9.1.3 계약 생성하기 

__9.1.4 Provide maximum fee와 비밀번호 설정하기 

__9.1.5 CONTRACTS 화면에서 다른 화면으로 이동하기 

__9.1.6 거래 발행하기 

__9.1.7 계약 정보 확인하기 

__9.1.8 거래 실행하기 

__9.1.9 미스트 월릿을 사용하여 거래 변경 내용 확인하기 

9.2 예제 2 - 크라우드펀딩을 위한 계약 

__9.2.1 계약 생성하기 

__9.2.2 모금이 성공한 경우 

__9.2.3 모금이 실패한 경우 

9.3 예제 3 - 이름과 어드레스를 관리하는 계약 

__9.3.1 동작 여부 확인 

9.4 예제 4 - IoT 스위치를 제어하는 계약 

__9.4.1 계약을 이용하는 과정 

__9.4.2 동작 확인하기 

9.5 예제 5 - 전자상거래 사이트를 위한 계약 

9.6 예제 6 - 경매 서비스를 위한 계약 

9.7 예제 7 - 추첨을 위한 계약 

 

PART 4 스마트 계약의 보안

 

CHAPTER 10 스마트 계약 개발의 보안 실무

10.1 Condition-Effects-Interaction 패턴 

10.2 Withdraw 패턴 

__10.2.1 push형 송금 패턴 

__10.2.2 pull형 송금 패턴 

10.3 Access Restriction 패턴 

__10.3.1 사례 

10.4 Mortal 패턴 

10.5 Circuit Breaker 패턴 

 

CHAPTER 11 스마트 계약의 취약점과 공격 원리

11.1 재진입성 문제 

__11.1.1 공격 대상 계약 

__11.1.2 공격 계약 

__11.1.3 전체 흐름 

__11.1.4 각 어드레스의 역할 

__11.1.5 재진입성 문제 실습하기 

__11.1.6 이벤트 확인하기 

__11.1.7 수정 후의 결과 

11.2 TOD 

11.3 Timestamp Dependence 

11.4 중요 정보 취급 

11.5 오버플로 

 

CHAPTER 12 사례에서 배우는 블록체인 보안

12.1 솔리디티의 취약점 

12.2 클라이언트 애플리케이션의 취약점과 키 관리 

__12.2.1 주의할 점

엔지니어를 위한 블록체인 프로그래밍

 

이더리움기반 신뢰성 높은 스마트 계약 개발하기

 

1. 개요

 

1.jpg

 

2.jpg

 

 

이 책은일반인을 대상으로 하는 책이 아니므로, 블록체인의 기본 구성요소(P2P,거래, 블록, 분산장부, 마이닝 등)나 암호기술(해시함수, 공개키 암호 등)에 대한 개념이나 실전 적용 경험이 조금이라도 있으면학습하는 데 큰 도움이 됩니다.

 

비록 책이 280p로 두께는 다소 얇지만, 내용은 깊이가 상당히 있어 그림과설명을 완전히 이해 하는 데는 시간과 인내가 필요합니다.

 

그래서 1부의 블록체인 개요와 암호기술을 이해하지 못하면 나머지 부분을 이해하는데 장애가 됩니다.

 

저 같은경우 블록체인의 기반기술과 서비스를 잘못 이해하게 되면 더욱 혼란스럽다고 판단하여, 블록체인 애플리케이션의개발에 필요한 이론과 기본기를 익힐 수 있는 서적을 먼저 충분히 읽고 본 서적을 학습하였습니다.

 

저는 아래서적을 동시에 읽으면서 학습했습니다.

 

 

3.jpg

 

undefined

 

 

처음 배우는블록체인(한빛미디어)”: https://goo.gl/PZ32wa

 

, 이제 바쁘신 독자들을 위해 책의 핵심적인 내용만 뽑아서 설명해 드리겠습니다.독자가 개발자라고 가정하에서 설명 드리도록 하겠습니다. (Linux 명령이나 openssl 정도는 알고 있어야 따라 하기가 가능합니다)

 

본 서적이다른 블록체인 서적과 확실하게 차별화된 중요한 콘셉트는 바로 블록체인의 보안입니다.

 

저자가보안 엔지니어로 스마트 계약 등의 보안진단 현업을 하고 있어, 블록체인 보안 경험적 지식들이 오롯이책 속에 담겨 있습니다.

 

책의 최종 목적이 보안 수준이 높은 스마트 계약을 개발하는 것이기 때문에 3, 4부 내용이 매우 중요한 기술부분이긴 하지만, 블랙체인의 기초적인개념뿐만 아니라 이를 구성하는 기술에 대한 깊은이해가필요함으로 1, 2부를 여러 번 반복하여 완전히 이해하는것도 중요합니다.

 

책은 총 4, 12개의 흥미로운 주제들(Chapter)로구성되어 있습니다.

 

1. 블록체인과 관련 기술

2. 비트코인 네트워크

3. 이더리움과 스마트 계약 개발

4. 스마트 계약의 보안

 

1부는 블록체인의아주 기초적인 개념을 설명하고 필자가 의도한대로 블록체인의큰 그림을 파악하는데 집중해야 합니다.

 

특히 보안관련 암호화 기술은 별도의 서적을 통해 심화학습을 하는 것도 추천 드립니다.

 

,앱 등의 일반 개발자라면 해시함수나 공개키 암호화 방식은 가볍게 넘길 수 있습니다. 다만 타원곡선 암호는 좀 학습이 필요합니다.

 

2부는 비트코인네트워크에 대해서 다룹니다. 쉽게 얘기해서 블록체인의 기초를 이해하는데 비트코인을 구성하는 구조 전자지갑, 거래, 블록등을 자세히 설명합니다.

 

3부는 이더리움플랫폼의 기초와 스마트 계약 개발에 쓰이는 솔리디티의기본 문법 등에 대해 다룹니다.

 

8장부터다루게 되는 솔리디티 언어는 다소 낯설기는 하지만 문법을 자세히 보시면 ECMAScript와 문법이유사하다는 것을 알 수 있습니다. (저도 지금 취미 삼아 학습 중입니다.)

 

사실 솔리디티의문법은 공식 사이트나 관련 서적을 통해 학습 해야 뒤에 나오는 소스 예제가 제대로 이해됩니다. 물론저자가 소스 한 행 씩 정성스럽게 부연설명을 했지만, 이 책을 이해하는데 최소한의 설명이므로 완벽하지는않습니다.

 

마지막 4부는 정말 중요한 기술부문입니다. 바로 스마트 계약의 보안 부분을실무 사례와 예제를 통해서 학습하게 됩니다. 주관적이긴 하지만, 이책의 가치는 마지막 4부에 있다고 생각합니다.

 

특히 스마트계약의 보안성을 강화하기 위해서 주요 대책을 패턴 별로 정리해 놓았습니다.

 

책에서다룬 주요 패턴은 다음과 같습니다.

 

1. Condition-Effects-Interaction 패턴

2. Withdraw 패턴

3. Access Restriction 패턴

4. Motral 패턴

 

마지막으로스마트 계약에서 발생될 수 있는 주요 취약점과 공격원리 그리고 대처 방안에 대해서 배우게 됩니다.

 

앞에서얘기한대로 책이 비록 280p에 불가하지만, 저자가 펼쳐놓은주제들은 블록체인의 개념부터 프로그래밍 언어 문법 그리고 보안 취약점과 대응까지 프로그래밍에 필요한 모든 부분을 다루는 방대한 실무 지침서입니다.

 

개인적으로 이 책과 같이 프로그래머를 위한 블록체인 관련실무 지침서가 더 많이 출

20180630_152708.jpg

 

6월에 출시한 따끈따끈한 책. 도서 <엔지니어를 위한 블록체인 프로그래밍>. 주식에 버금가는 재테크로 비트코인 등의 가상화폐가 주목받고 또 많이 관심을 받고 있는 이 시점에 타이밍 좋게 출시된 책이다. 책이 두께가 두껍지는 않은데, 은근히 페이지가 많다. 가격은 정가 26,000원.

 

일단 이 책은 어렵다. 다른 블록체인 관련 서적처럼 어렵다. '엔지니어'를 위한 블록체인 프로그래밍이라는, 정말 제목 그대로인 책이다. 타깃이 분명한 만큼 해당 분야의 지식이 없다면 읽기 힘들 책이다. 하지만 교양서적의 용도로 읽는다면 나쁘지 않을 만큼의 이해를 얻을 수 있는 책이기도 하다.

 

책의 두께는 얇지만 내용은 블록체인의 이론적인 부분부터 실무까지 모든 내용을 포함하고 있다. 블록체인의 등장 배경부터 현제 많이 이슈 되어있는 블록체인 기술을 사용한 코인들 비트코인, 이더리움 등을 예로 들어 설명을 하고 있다.  내용들이 함축적이기 때문에 이 책 한 권으로 블록체인 개발을 완전히 이해하기엔 부족한 면이 있다. 그럴 수밖에 없는 게, 블록체인이라는 기술은 하나의 기술이 아닌 여러 기술들을 융합하여 만들어진 기술이기에 그렇다. 

 

하지만 위에서 언급했듯이 전공자가 아니라도 블록체인이 뭔지, 어떻게 만들어지며 어떻게 응용하여 사용하고 싶은지 알고 싶은 사람은 가볍게 읽어도 좋은 책인 것 같다. 이 책을 살지 말지 망설여진다면 한빛미디어 홈페이지에서 미리 보기로 168페이지까지 무료로 읽어 볼 수 있다. 참고로 이 책은 280 페이지로 구성되어 있다.

실무자로써, 업무 외의 기술에 대해 많은 공부를 희망하지만 여건이 안되시는분들

네, 저와 같으십니다.

그렇다고 미루기만하면 해결되는것은 아무것도없고 그래서 말나온김에 "쇠뿔도 단김에 빼라"고 책을 지르고는

퇴근 후 집에서 1~2시간 책을 잡고 공부를 하는데 세상에나, 심효섭씨 번역에 무릎을 '탁'치며

재밌게 따라가는중입니다.

미래의 독자분들이 가장 많이들어보셨을 ' 블록체인, 이더리움, 비트코인 '에 대해 명확히 개념을 잡아주며

왜 블록체인을 금융권에서 반기는가? 왜 가치가 있는가? 우리가 현재 사용하고있는 공인 인증서가 얼마나 무능한가!

블록체인이 어떻게 공인인증서를 대체할수있으며 신뢰성 있는가!에 대해 잘 설명해주고있다.

다 이 책의 저자인 '다고모리 데루히로'와 번역하신 심효섭씨의 결과물이지싶다.

여건만 된다면 해당 분야 공부를 더 심도깊이하며 이직도 생각해보고싶을정도 매력있는 기술이다.

마치, RPG게임에서 새로운 아이템이 나왔는데 그 아이템이 현존 최강이라 모두가 가지고싶어하는...느낌마저든다(심지어 공공재다!)

이 책을 살까..말까..하는 독자들에게 감히 추천한다.

'당신은 언제까지 그곳에 얽매어있을것인가, 현실에 안주하여 미래의 나 따위 지금의 나로 만족한다고 무기력하게 자기합리화만 하는 중인가,
자신에게 질문을 던져보고 잘 생각해보길바란다.'

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
엔지니어를 위한 블록체인 프로그래밍
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
엔지니어를 위한 블록체인 프로그래밍
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
엔지니어를 위한 블록체인 프로그래밍
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실