장바구니 담기 close

장바구니에 상품을 담았습니다.

비트코인, 공개 블록체인 프로그래밍

비트코인, 공개 블록체인 프로그래밍

  • 안드레아스M.안토노풀로스
  • |
  • 고려대학교출판문화원
  • |
  • 2018-11-26 출간
  • |
  • 502페이지
  • |
  • 176 X 234 X 38 mm /879g
  • |
  • ISBN 9788976419699
판매가

29,000원

즉시할인가

28,710

배송비

2,500원

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
28,710

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




인터넷상에서 빈번하게 사용되는 “○○코인”이라는 표현이 2017년 말-2018년 초의 암호화폐 시장 광풍에서 비롯했다는 것은 의심할 여지 없다. 처한 상황의 좋고 나쁨을 서술하고자 하는 대상 뒤에 ‘코인’을 붙이고, ‘떡상’과 ‘떡락’으로 좋음과 나쁨을 짝짓는 이 표현의 기저에는 암호화폐를 ‘투자(투기?) 대상’으로 바라보는 시각이 자리하고 있다고 할 것이다. 블록체인 기술의 효용을 담아낸 독자적인 신조어를 찾아볼 수 없다는 면에서 이는 분명하다.
“마스터링 비트코인 Mastering Bitcoin”이 원제인 이 책은 제목에서 알 수 있듯이 소위 ‘코인계의 대장주’ 비트코인을 개념과 역사에서부터 작동원리, 거래, 네트워크 구조, 채굴, 블록체인, 보안, 블록체인 어플리케이션에 이르기까지 비트코인의 모든 측면을 남김없이 다루고 있다. 단, 경제적 관점에서의 암호화폐 투자, 헤징을 위한 종목별 포트 구성 등 투자 대상으로서의 비트코인은 이 책이 ‘마스터’ 하고자 하는 대상이 아니다. 사토시 나카모토의 “비트코인 백서”로 출발하여 세상에 등장한 비트코인과 블록체인 기술에 대해 깊이 있게 탐구하고 있는 이 책은 세상의 변화에 호기심 많은 입문자부터 앱 개발자, 소프트웨어 엔지니어까지 비트코인과 블록체인을 이해하고 활용하는 데 필수적인 지침서이다. 또한 책에서 소개하는 모든 프로그래밍 코드는 웹에서도 접근이 가능하며(Github), 이를 바탕으로 개발자들은 ‘비트코인 참조구현’을 참고하여 암호화폐 체계를 구성하고자 할 때 이 책을 신뢰할 수 있는 참고자료로 활용할 수 있을 것이다.
이 책은 2015년 처음 출간되어 2016년 대한민국학술원 선정 우수학술도서로 선정되어 그 엄밀성과 학술적 의의를 공인받기도 했던 초판 《비트코인, 블록체인과 금융의 혁신》의 개정증보판으로서, 모든 장(chapters)에 걸쳐 많은 부분이 최신화되고 추가되었다. 작게는 비트코인의 내력을 서술하는 대목에 초판 발간 이후의 사항들을 담는 것에서부터, 장마다 독자의 이해를 돕는 추가적인 예시와 코드, 더 발전된 암호화 방식들의 소개 등이 있다. 또한 7장은 새로이 추가된 장으로서 “고급 거래”에 대해 심도 있게 다루고 있으며, 초판에서 “키와 주소, 지갑”으로 같은 장에서 서술되었으나 장이 분리되고 거의 모든 내용이 최신화된 5장의 “지갑”이 있다. 그리고 마찬가지로 새로이 구성된 12장은 초판에서의 내용 중 시의성이 떨어지는 대안체인, 화폐에 대한 내용이 빠지고 블록체인 어플리케이션에 집중한 것도 주목할 만하다. 또한, 부록으로 “사토시 나카모토의 비트코인 백서(The Bitcoin Whitepaper by Satoshi Nakamoto)”, 세그윗(Segwit, 증인 분리), 비트코어의 특징과 라이브러리 예시 등을 담아 더욱 전문적인 내용을 궁금해하는 독자들의 눈높이에 맞추려 노력했다. 그 결과 초판보다 분량이 140여 쪽이 늘었다. 발빠르게 변화하고 있는 지난 2년간의 기술적 변화와 발전을 모두 담은 이 책은, 비트코인의 메커니즘을 이해하고 싶은 독자, 암호화폐 개발자로 일할 예정이거나 현업에 종사하고 있는 이들에게 곁에 둘 기술 지침서로 더할 나위 없는 선택일 것이다.

◎ 장별 개요
1장: 서론으로서, 비트코인의 개념, 역사, 비트코인을 실생활에서 쓰고 있는 사용자들의 경험담과, 비트코인 사용법을 지갑과 그에 접근하는 과정부터 송금과 수신에 걸쳐 안내한다.
2장: 블록체인 기술이 비트코인 네트워크상에 어떻게 구현되는지를 거래, 블록, 채굴, 블록체인 등의 개념과 더불어 상세히 설명한다.
3장: 비트코인 기술의 각 부분이 어떻게 구현되어야 하는지에 대한 가장 권위 있는 참조인 ‘비트코인 코어’를 통해 비트코인 개발 환경 구축 과정을 단계별로 제시한다.
4장: 비트코인의 소유권 증명과 송금을 가능하게끔 하는 핵심 개념인 키와 주소에 관해 설명한다. 256bit 기반으로 무작위 추출된 개인키에서, 역산할 수 없는 타원곡선 곱셈함수 연산을 통해 공개키와 주소를 생성한다. 이러한 과정이 있기에 공개키와 주소를 공표해도 개인키의 보안을 지킬 수 있는 것이다.
5장: 4장에서 다룬 개인키와 공개키의 쌍을 담은 ‘지갑’을 다룬다. 지갑은 크게 결정적 지갑과 비결정적 지갑으로 나뉘며, 결정적 지갑의 가장 발전된 형태인 HD 지갑과 백업/복구용인연상기호 코드도 다룬다.
6장: 출력값과 입력값, 수수료, 스크립트와 스크립트 언어 등 비트코인이 거래되는 방식과, 개인 간의 비트코인 거래에서 디지털 서명(ECDSA)이 어떻게 유효성을 확보하는지를 설명한다.
7장: 12장과 더불어 이번 개정판에 새로이 추가된 장이다. 좀 더 복잡한 스크립트의 예시를 통해 고급 거래를 비트코인에서 구현하는 법에 대해 다루고 있는데, 그 예로 N명 중 M명 이상의 서명이 있어야만 유효한 거래를 이룰 수 있게 조건을 설정하는 ‘다중서명’, 그리고 이 다중서명 절차를 간소화시켜주는 Pay-to-Script-Hash(P2SH)를 설명한다. 그리고 거래 성사에 시간 조건을 거는 ‘타임락’, 마지막으로 실제 예시를 통해 7장에서 다룬 여러 개념을 구현하는 스크립트에 대해 알아본다.
8장: 비트코인의 네트워크 아키텍처 구조를 다룬다. 또한, 비트코인 P2P 프로토콜이 원활한 개인 간 거래를 제공하기 위해, 또 지나친 대기시간을 단축하기 위해 어떠한 방식들을 이용하는지 살펴본다.
9장: 블록체인 데이터 구조를 다룬다. SHA256 암호화를 기반으로 하는 블록체인의 기초 개념부터 실제 개발용 테스트 블록체인의 사용까지를 다룬다.
10장: 거래를 검증하고 승인하는 핵심 개념인 채굴에 대해 다룬다. 모든 비트코인 노드에 통용되는 규칙인 ‘합의’라는 개념을 설명하고, 그 합의가 결렬되었을 때 발생하는 소프트 분기(fork)와 하드 분기에 대해서도 다룬다.
11장: 보안 이슈들이 중심이다. 비트코인을 안전하게 보관하는 방법으로 물리적 보안 방법에서부터 다중 서명, 소유자 유고 시를 대비하는 법 등을 다룬다.
12장: 마지막 장으로서, 이번 개정판에서 새로이 추가되었다. 비트코인의 설계 원리를 공유하는 어플리케이션 플랫폼, 즉 ‘블록체인 어플리케이션’을 다룬다. 대표적인 블록체인 어플리케이션인 ‘컬러드코인’을 소개하는 것을 시작으로 분산 신뢰 네트워크의 활용 양상과 그 방법에 대해 자세히 알아본다.
부록: 이번 개정판에서 사토시 나카모토의 비트코인 백서, 세그윗, 비트코어 관련 내용이 새로운 부록으로 추가되었고, 초판 부록 중 sx Tools를 이용한 명령어가 비트코인 익스플로러(bx) 명령어로 변경되었다. 거래스크립트 언어 연산자, 상수, 부호, 비트코인 개선 제안, pycoin, ku, tx 등은 수정 보완되었다.


목차


옮긴이 서문
서문
용어 설명

1장 서론

비트코인이란 무엇인가?
비트코인의 역사
비트코인의 사용과 사용자들, 그들의 이야기
비트코인 시작하기
비트코인 지갑 선택
들어가기
첫 비트코인 장만
비트코인 시가 책정
비트코인의 송금과 수신

2장 비트코인의 작동원리

거래, 블록, 채굴, 블록체인
비트코인 개요
커피 한 잔 구매하기
비트코인 거래
거래 입력값과 출력값
거래 체인
잔액 지불
일반적인 거래 유형
거래의 구성
올바른 입력값 얻기
출력값 생성하기
거래내역을 장부에 추가하기
비트코인 채굴하기
블록에 담겨 있는 거래 채굴하기
거래 소비하기

3장 비트코인 코어: 참조구현

비트코인 개발 환경
소스코드에서 비트코인 코어 컴파일 실행하기
비트코인 코어 릴리즈 선택하기
비트코인 코어 빌드 설정하기
실행 가능한 비트코인 코어 빌드하기
비트코인 코어 노드 실행하기
비트코인 코어 입문하기
비트코인 코어 노드 설정하기
비트코인 코어 API
비트코인 코어 클라이언트에서 정보 입수하기
거래내역 살펴보기 및 디코딩하기
블록 살펴보기
비트코인 코어의 프로그램 인터페이스 사용하기
그 외 선택 가능한 클라이언트, 라이브러리, 툴키트
C/C+ +
자바스크립트
자바
파이선
Ruby
Go
Rust
C#
Objective-C

4장 키와 주소

들어가기
공개키의 암호학과 암호화폐
개인키와 공개키
개인키
공개키
타원곡선 암호학
공개키 생성하기
비트코인 주소
Base58과 Base58Check 인코딩
키 포맷
파이선에서 키와 주소 실행하기
고급키와 주소
암호화된 개인키(BIP-38)
Pay-to-Script Hash(P2SH)와 다중서명 주소
꾸미기 주소
종이지갑

5장 지갑

지갑 기술 개요
비결정적(무작위) 지갑
결정적(종자) 지갑
HD 지갑(BIP-32/BIP-44)
종자와 연상기호 코드(BIP-39)
비트코인 지갑의 활용
비트코인 지갑 사용하기
자세한 지갑 기술
연상기호 코드 워드(BIP-39)
종자로부터 HD 지갑 생성하기
인터넷 쇼핑몰에서 확장 공개키 사용하기

6장 거래

들어가기
거래 세부 사항
거래 속 숨은 이야기
거래 출력값과 입력값
거래 출력값
거래 입력값
거래 수수료
거래에 수수료 추가하기
거래 스크립트와 스크립트 언어
튜링 불완전성
무상태형 검증
스크립트 구성(잠금+해제)
Pay-to-Public-Key-Hash(P2PKH)
디지털 서명(ECDSA)
디지털 서명이 작동하는 방법
서명 검증하기
서명 해시 유형(SIGHASH)
ECDSA 수학
서명에서 난수성(randomness)의 중요성
비트코인 주소, 잔액, 추상화

7장 고급 거래와 스크립팅

들어가기
다중서명
Pay-to-Script-Hash(P2SH)
P2SH 주소
P2SH의 이점
리딤 스크립트와 유효화
데이터 레코딩 출력(RETURN)
타임락(Timelocks)
거래 잠금시간(nLocktime)
Check Lock Time Verify(CLTV)
상대적 잠금시간
nSequence를 사용한 상대적 잠금시간
CSV를 사용한 상대적 잠금시간
Median-Time-Past
수수료 스나이핑(sniping)에 대응하는 타임락 방어
흐름 제어 기능을 가진 스크립트(조건절)
VERIFY 연산코드를 이용한 조건절
스크립트 내에서 흐름제어 사용하기
복잡한 스크립트의 예시

8장 비트코인 네트워크

P2P 네트워크 아키텍처
노드의 유형 및 역할
확장 비트코인 네트워크
비트코인 중개 네트워크
네트워크 검색
풀 노드
‘인벤토리’ 교환하기
단순지불검증(SPV) 노드
블룸필터
블룸필터가 작동하는 방법
SPV 노드가 블룸필터를 사용하는 방법
SPV 노드와 프라이버시
암호화되고 인증된 연결
토르 트랜스포트
피어투피어 인증 및 암호화
거래 풀

9장 블록체인

들어가기
블록 구조
블록 헤더
블록 식별자: 블록 헤더 해시와 블록 높이
최초블록
블록체인에 블록 연결하기
머클 트리
머클 트리와 단순지불검증(SPV)
비트코인의 테스트용 블록체인
테스트넷: 비트코인 테스트 장소
세그넷: 세그윗 테스트넷
레그테스트: 로컬 블록체인
개발용 테스트 블록체인 사용하기

10장 채굴과 합의

들어가기
비트코인의 경제학과 통화 발행
분산화된 합의
거래의 독립적 검증
채굴 노드
블록에 거래 추가하기
코인베이스 거래
코인베이스에 대한 보상금과 수수료
코인베이스 거래의 구조
코인베이스 데이터
블록 헤더 구성하기
블록 채굴하기
작업증명 알고리즘
목표값 표기법
난이도 목표 및 목표 재설정
블록을 성공적으로 채굴하기
새 블록을 검증하기
블록체인을 수집해서 선택하기
블록체인 분기
채굴과 해싱 레이스
추가 난스 솔루션
채굴 풀
합의 공격
합의 규칙 변경하기
하드 분기
하드 분기: 소프트웨어, 네트워크, 채굴, 체인
채굴자 분할하기와 난이도
하드 분기에 대한 논란
소프트 분기
소프트 분기에 대한 비판
블록 버전을 이용한 소프트 분기 시그널링
BIP-34의 시그널링과 활성화
BIP-9의 시그널링과 활성화
합의 소프트웨어 개발

11장 비트코인의 보안

보안 원리
비트코인 시스템을 안전하게 개발하기
신뢰루트(Root of Trust)
사용자 보안의 모범 사례
물리적 비트코인 저장
하드웨어 지갑
리스크 균형 맞추기
리스크 다각화하기
멀티시그와 거버넌스
생존력
결론

12장 블록체인 어플리케이션

들어가기
빌딩블록(기초 요소)
빌딩블록들로부터 만들어지는 어플리케이션.
컬러드코인
컬러드코인 사용하기
컬러드코인 발행하기
컬러드코인 거래
카운터파티
지불 채널과 스테이트 채널
스테이트 채널: 기본 개념과 용어
단순 지불 채널의 예시
신뢰할 수 있는 채널 만들기
비대칭 철회 약정
해시 잠금시간 거래(HTLC)
라우티드 지불 채털(라이트닝 네트워크)
기본 라이트닝 네트워크의 예시
라이트닝 네트워크 전송 및 라우팅
라이트닝 네트워크의 이점
결론

부록 A 사토시 나카모토의 비트코인 백서
부록 B 거래스크립트 언어 연산자, 상수, 부호
부록 C 비트코인 개선 제안
부록 D 세그윗
부록 E 비트코어
부록 F pycoin, ku, tx
부록 G 비트코인 익스플로러(bx) 명령어
찾아보기

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.