엔지니어를 위한 블록체인 프로그래밍
“이더리움기반 신뢰성 높은 스마트 계약 개발하기”
1. 개요
이 책은일반인을 대상으로 하는 책이 아니므로, 블록체인의 기본 구성요소(P2P,거래, 블록, 분산장부, 마이닝 등)나 암호기술(해시함수, 공개키 암호 등)에 대한 개념이나 실전 적용 경험이 조금이라도 있으면학습하는 데 큰 도움이 됩니다.
비록 책이 280p로 두께는 다소 얇지만, 내용은 깊이가 상당히 있어 그림과설명을 완전히 이해 하는 데는 시간과 인내가 필요합니다.
그래서 1부의 블록체인 개요와 암호기술을 이해하지 못하면 나머지 부분을 이해하는데 장애가 됩니다.
저 같은경우 블록체인의 기반기술과 서비스를 잘못 이해하게 되면 더욱 혼란스럽다고 판단하여, 블록체인 애플리케이션의개발에 필요한 이론과 기본기를 익힐 수 있는 서적을 먼저 충분히 읽고 본 서적을 학습하였습니다.
저는 아래서적을 동시에 읽으면서 학습했습니다.
“처음 배우는블록체인(한빛미디어)”: 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에 불가하지만, 저자가 펼쳐놓은주제들은 블록체인의 개념부터 프로그래밍 언어 문법 그리고 보안 취약점과 대응까지 프로그래밍에 필요한 모든 부분을 다루는 방대한 실무 지침서입니다.
개인적으로 이 책과 같이 프로그래머를 위한 블록체인 관련실무 지침서가 더 많이 출