★ 이 책에서 다루는 내용 ★
■ 이더리움을 기반으로 만든 큐오럼의 개요
■ Raft/IBFT 큐오럼 네트워크 구현 방법
■ 큐오럼의 개인정보 보호 및 보안 기능 구현 방법
■ 스마트 계약의 작성, 컴파일, 배포 방법
■ web3.js 라이브러리를 이용한 큐오럼과의 상호작용 방법
■ 서로 다른 네트워크 간의 아토믹 스왑 실행 방법
■ 효율적인 비즈니스 프로세스 구현을 위한 BaaS
■ 프록시 재암호화 기법을 이용한 블록체인의 데이터 보호
저자 소개
저자 : 나라얀 프루스티
5년 차 풀 스택 개발자다. 블록체인 및 자바스크립트를 전문적으로 다루며, 인도, 싱가포르, 미국, 아랍에미리트의 스타트업, 정부, 기업 대상으로 확장 가능한 제품을 구축하는 데 핵심적인 역할을 했다. 탈중앙화된 애플리케이션을 구축하기 위해 이더리움, 비트코인, Hyperledger, IPFS, 리플 등을 정기적으로 사용한다. 현재 두바이 에미리트 국립 은행의 블록체인 관련 주제별 전문가(SME, Subject-Matter Expert)로 근무하고 있다.
자바스크립트에 관한 『ECMAScript 6 길들이기』(에이콘, 2016)와 『Modern JavaScript Applications』(packt, 2016)를 저술했다.
실제 업무의 문제를 해결해주는 흥미로운 일이라면 즉시 작업을 시작한다. 18세의 나이에 MP3 검색 엔진을 개발했으며, 그 이후에는 전 세계 사람들이 사용하는 다양한 애플리케이션을 개발했다. 확장 가능한 애플리케이션을 상단부터 하단까지 개발할 수 있는 능력이 그를 특별하게 만드는 요인이다.
역자 : 동준상
넥스트플랫폼 대표이자 ICT 컨설턴트로 서비스 기획, UX 표준화 프로젝트에 참여해왔다. AWS 테크놀로지 파트너로 클라우드 기반 서비스와 데이터 분석 애플리케이션을 개발한다. 삼성전자, 한국생산성본부, KT, 신한은행, 국민은행, 신세계 등에서 현대 ICT 서비스 기획론, UX 리서치 전략, SPRINT 방법론을 강의하고 관련 교재를 집필했다. 한국콘텐츠진흥원, 한국생산성본부, 부산정보진흥원의 기술 심사위원 및 멘토로 활동 중이다.
목 차
1장. 탈중앙화 애플리케이션의 개요
__DApp이란 무엇인가?
__블록체인이란?
____비잔틴 장애 허용의 개요
____사용자 계정의 표현 방식
____UTXO 모델이란?
__퍼미션 블록체인 플랫폼의 종류
____이더리움
____큐오럼
____패리티
____멀티체인
____하이퍼레저 패브릭
____BigchainDB
____IPFS
____코다
____하이퍼레저 쏘투쓰
__블록체인 활용 사례
____에버레저
____월마트 푸드 트래킹
____가나 토지 등록 서비스
____두바이 주택 임대 시스템
____프로젝트 유빈
__정리
2장. 큐오럼을 이용한 블록체인 구현
__큐오럼이란?
__이더리움 계정
__이더리움 거래의 개요
__블록체인의 주요 개념인 머클 트리란?
__블록체인에서 포킹이란?
__Raft 컨센서스
__IBFT, 이스탄불 비잔틴 장애 허용
__프라이빗 계약과 컨스텔레이션
__큐오럼 및 컨스텔레이션 설치
__첫 번째 Raft 네트워크 만들기
____컨스텔레이션 네트워크 설정
____이노드 생성
____이더리움 계정 생성
____제네시스 블록 생성
____노드 시작
____동적으로 노드 추가 및 삭제
__첫 번째 IBFT 네트워크 만들기
____IBFT 도구 설치
____제네시스 블록 생성
____노드 시작
____동적으로 검증 노드 추가 및 삭제
__정리
3장. 스마트 계약 작성
__솔리디티 소스 파일
__스마트 계약의 구조
__Solidity에서 데이터 위치
__솔리디티의 다양한 데이터 타입
____배열
____문자열
____구조체
____열거형
____매핑
____delete 연산자
____기본 데이터 타입 간의 변환
____var 키워드 사용
__조건문의 활용
__new 연산자를 이용해 새 계약 생성
__예외 처리
__외부 함수 호출
__계약의 특징
____변수의 가시성
____수정 함수
____폴백 함수
____상속
__라이브러리
__여러 개의 값 반환
__다른 소스 파일 임포트
__전역 변수
____블록 및 거래 프로퍼티
____주소 타입 관련 변수
____계약 관련 변수
____이더 단위
__소유권의 증명, 존재의 증명, 일관성의 증명
__계약 컴파일 및 배포
__정리
4장. 블록체인 구현을 위한 web3.js 활용
__web3.js의 개요
____web3.js 임포트
____노드에 연결
____API 구조
____BigNumber.js
____화폐 단위 변환
____개스 가격, 계정 손익, 거래 세부 내역 확인
____이더 전송
____계약의 배포, 참조, 이더 전송
____계약 이벤트 리스닝
__소유권 계약 클라이언트 구현
____스마트 계약 프로젝트의 개요
____스마트 계약의 백엔드 구현
____스마트 계약의 프론트엔드 구현
____스마트 계약 클라이언트 테스트
__정리
5장. 상호운용 블록체인 구현
__블록체인의 상호운용성
__상호운용 블록체인의 장점
__상호운용 블록체인 구현 전략
____싱글 커스터디안
____다중 서명 연합(공증인 노드)
____사이드체인과 릴레이
____해시 로킹
__FedCoin 구현
____명목 화폐의 디지털화를 위한 스마트 계약
____아토믹 스왑 계약
____아토믹 스왑 계약 테스트
__정리
6장. 클라우드 기반 큐오럼 서비스 플랫폼
__블록체인 서비스 구현을 위한 클라우드 컴퓨팅
____프라이빗, 퍼블릭, 하이브리드 클라우드
____IaaS, PaaS, SaaS의 차이점
__클라우드 구현을 위한 컨테이너의 개요
____컨테이너 구현을 위한 대표 도구: 도커
____도커 컨테이너 기반 Hello World 앱 구현
__마이크로서비스 아키텍처의 개요
__컨테이너 플랫폼 쿠버네티스
____리소스 객체 살펴보기
____미니큐브 시작
____쿠버네티스에 Hello World 앱 배포
__클라우드 기반 큐오럼 서비스: QaaS 구현
____QNM의 작동 방식
____QNM의 컨테이너화
____QNM 배포본 및 서비스 매니페스트 파일 작성
____쿠버네티스 API를 이용한 노드 생성
__정리
7장. 전자 의료 기록용 DApp 구
__EMR 데이터 관리 및 공유 시스템 개요
____전통적인 의료 기록의 문제점
____기존 EMR 데이터 관리 및 공유 시스템의 한계점
____중앙화 대 탈중앙화 EMR 관리 시스템
__PRE를 이용한 블록체인 기반의 데이터 보안
____NuCypher PRE 라이브러리
__EMR을 위한 DApp 아키텍처
____신분 확인 및 접속 관리를 위한 스마트 계약 구현
____스마트 계약 테스트용 파이썬 및 JS 스크립트 작성
__정리
8장. 블록체인 기반 은행 간 이체 솔루션 구현
__지불 시스템의 개요
____인터뱅크 자금 이체 관련 규정
____명목 화폐의 디지털화
____스마트폰 번호로 신분 확인
__은행 간 이체를 위한 큐오럼 네트워크 구현
____큐오럼에서의 네트워크 퍼미션
__은행 간 이체를 위한 DApp 구현
__정리
출판사 서평
★ 이 책의 대상 독자 ★
혁신가, 디지털 산업 종사자, 블록체인 개발자를 위해 쓴 블록체인 기반 DApp 구현 설명서다. 기업용 서비스에 블록체인 기술을 융합하는 방법에 대해 고민 중이라면 이 책이 분명 도움이 될 것이다. 이 책은 이해를 위한 개론과 실무 연습으로 구성됐으며, 기업이 당면한 현실적인 문제를 상용화된 서비스로 해결하는 데 초점을 맞추고 있다.
★ 이 책의 구성 ★b>
1장, '탈중앙화 애플리케이션의 개요'에서는 DApp의 개념과 블록체인 기반 DApp의 개요를 설명한다.
2장, '큐오럼을 이용한 블록체인 구현'에서는 이더리움 블록체인의 개요와 이더리움을 기반으로 만들어진 큐오럼의 특징을 소개한다. 아울러 큐오럼을 이용한 Raft 네트워크 구현 방법과 다양한 써드파티 도구, 라이브러리를 설명한다.
3장, '스마트 계약 작성'에서는 스마트 계약 작성 방법과 geth의 상호작용 콘솔을 이용한 배포 방법, web3.js를 이용한 거래의 브로드캐스팅 방법을 설명한다.
4장, '블록체인 구현을 위한 web3.js 활용'에서는 web3.js의 개요와 라이브러리 임포트 방법, geth 연결 방법을 설명하고, Node.js나 클라이언트 측 자바스크립트 활용 방법을 소개한다.
5장, '상호운용 블록체인 구현'에서는 상호운용성을 갖춘 블록체인의 개념을 소개하고, 상호운용 블록체인을 구현하기 위한 다양한 기술과 패턴을 설명한다. 아울러 FedCoin으로 대표되는 상호운용 블록체인 네트워크를 구현한다.
6장, '클라우드 기반 큐오럼 서비스 플랫폼'에서는 클라우드 컴퓨팅과 컨테이너화의 개념 및 사례를 설명하고 미니큐브 설치, 쿠버네티스에 컨테이너 배포, QNM을 이용한 QaaS 구현 방법을 알아본다.
7장, '전자 의료 기록용 DApp 구현'에서는 블록체인에서 암호화된 데이터를 공유하기 위한 프록시 재암호화 기법을 소개하고, 이와 관련된 etherumjs-wallet, ethereumjstx, ethereumjs-util, npre 등 다양한 자바스크립트 및 파이썬 라이브러리의 활용 방법을 설명한다. 또한 geth 노드 외부에 저장된 키를 이용해서 거래에 서명하는 방법도 알아본다.
8장, '블록체인 기반 은행 간 이체 솔루션 구현'에서는 큐오럼에서의 네트워크 퍼미션 구현 방법과 사용자의 스마트폰 번호를 이용한 자금 이체 솔루션 구현 방법을 알아본다.