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

저자 : 안드레아스 M. 안토노풀로스
역자 : 최은실, 김도훈, 송주한

판형 : 46배판 변형 면수 : 504 쪽

발행년월일 : 2018-11-26

ISBN : 978-89-7641-969-9 93320

단행본 

가격 : 29000

인터넷상에서 빈번하게 사용되는 “○○코인”이라는 표현이 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 등은 수정 보완되었다.

옮긴이 서문 블록체인이라는 분산 신뢰 네트워크의 출현이 사회혁신의 출발점이 되길 희망하며… 7
서문 13
용어 설명 26

1장 서론
비트코인이란 무엇인가?   37
비트코인의 역사  41
비트코인의 사용과 사용자들, 그들의 이야기  42
비트코인 시작하기  44
비트코인 지갑 선택  45
들어가기  48
첫 비트코인 장만  50
비트코인 시가 책정  52
비트코인의 송금과 수신  53

2장 비트코인의 작동원리
거래, 블록, 채굴, 블록체인  57
비트코인 개요  57
커피 한 잔 구매하기  59
비트코인 거래  61
거래 입력값과 출력값  61
거래 체인  62
잔액 지불  63
일반적인 거래 유형  64
거래의 구성  66
올바른 입력값 얻기  66
출력값 생성하기  68
거래내역을 장부에 추가하기  70
비트코인 채굴하기  72
블록에 담겨 있는 거래 채굴하기  74
거래 소비하기  76

3장 비트코인 코어: 참조구현
비트코인 개발 환경  81
소스코드에서 비트코인 코어 컴파일 실행하기  81
비트코인 코어 릴리즈 선택하기  82
비트코인 코어 빌드 설정하기  83
실행 가능한 비트코인 코어 빌드하기  87
비트코인 코어 노드 실행하기  88
비트코인 코어 입문하기  90
비트코인 코어 노드 설정하기  91
비트코인 코어 API  96
비트코인 코어 클라이언트에서 정보 입수하기  97
거래내역 살펴보기 및 디코딩하기  98
블록 살펴보기  101
비트코인 코어의 프로그램 인터페이스 사용하기  102
그 외 선택 가능한 클라이언트, 라이브러리, 툴키트  106
C/C+ +   106
자바스크립트  107
자바  107
파이선  107
Ruby  108
Go  108
Rust  108
C#  108
Objective-C  108

4장 키와 주소
들어가기  109
공개키의 암호학과 암호화폐  111
개인키와 공개키  112
개인키  113
공개키  115
타원곡선 암호학  116
공개키 생성하기  119
비트코인 주소  121
Base58과 Base58Check 인코딩  123
키 포맷  128
파이선에서 키와 주소 실행하기  136
고급키와 주소  139
암호화된 개인키(BIP-38)  140
Pay-to-Script Hash(P2SH)와 다중서명 주소  141
꾸미기 주소  143
종이지갑  150

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

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

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

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

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

10장 채굴과 합의
들어가기  307
비트코인의 경제학과 통화 발행  309
분산화된 합의  312
거래의 독립적 검증  314
채굴 노드  316
블록에 거래 추가하기  316
코인베이스 거래  318
코인베이스에 대한 보상금과 수수료  320
코인베이스 거래의 구조  321
코인베이스 데이터  322
블록 헤더 구성하기  325
블록 채굴하기  327
작업증명 알고리즘  327
목표값 표기법  334
난이도 목표 및 목표 재설정  336
블록을 성공적으로 채굴하기  338
새 블록을 검증하기  339
블록체인을 수집해서 선택하기  341
블록체인 분기  343
채굴과 해싱 레이스  350
추가 난스 솔루션  353
채굴 풀  354
합의 공격  359
합의 규칙 변경하기  363
하드 분기  363
하드 분기: 소프트웨어, 네트워크, 채굴, 체인  365
채굴자 분할하기와 난이도  367
하드 분기에 대한 논란  368
소프트 분기  369
소프트 분기에 대한 비판  371
블록 버전을 이용한 소프트 분기 시그널링  372
BIP-34의 시그널링과 활성화  372
BIP-9의 시그널링과 활성화  374
합의 소프트웨어 개발  377

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

12장 블록체인 어플리케이션
들어가기  389
빌딩블록(기초 요소)  390
빌딩블록들로부터 만들어지는 어플리케이션  393
컬러드코인  394
컬러드코인 사용하기  395
컬러드코인 발행하기  396
컬러드코인 거래  396
카운터파티  400
지불 채널과 스테이트 채널  401
스테이트 채널: 기본 개념과 용어  402
단순 지불 채널의 예시  404
신뢰할 수 있는 채널 만들기  408
비대칭 철회 약정  411
해시 잠금시간 거래(HTLC)  417
라우티드 지불 채널(라이트닝 네트워크)  418
기본 라이트닝 네트워크의 예시  419
라이트닝 네트워크 전송 및 라우팅  423
라이트닝 네트워크의 이점  425
결론  427

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

저자 : 안드레아스 M. 안토노풀로스

저명한 과학기술학자이자 연쇄 창업가로, 비트코인 업계에서는 가장 널리 알려지고 높이 평가되는 인물 중 하나이다. 인기 있는 연설가이자 교사이고 작가이기도 한 안드레아스는 복잡한 주제에 쉽게 접근하고 이해할 수 있도록 도와준다. 그는 다수의 신생 기술 업체에게 조언을 해 주었으며 전 세계를 돌아다니며 회의 및 지역 행사에서 정기적으로 연설하고 있다.... more

역자 : 최은실

이화여자대학교 통번역대학원 박사과정 중이며 부산외국어대학교 통번역대학원 한영과 초빙교수로 재직 중이다. 한국해양대학교에서 통번역직으로 근무한 바 있으며 현재 다양한 국제회의에서 왕성한 통역 실무 활동을 하고 있다. 동시에 기술과 통번역의 융합에 관심이 있으며 이와 관련한 연구 활동을 이어가고 있다.... more

역자 : 김도훈

한국외국어대학교 통번역대학원에서 통번역학 박사학위를 취득한 후 부산외국어대학교 통번역대학원 한영과 교수로 재직 중이다. 대표 저·역서로는 《문장부호의 번역학》(저서), 《Uncle Cow》(역서), 《통번역과 등가》(역서/공역), 《언어학과 번역》(역서), 《번역사 만들기》(역서/공역) 등이 있다. 부산국제외국인학교(BFS) 정책심의위원으로도 활동하고 있다.... more

역자 : 송주한

캐나다 University of British Columbia에서 컴퓨터 공학 박사를 취득한 후 삼성전자 통신 연구소를 거쳐 (주)코인플러그의 CSO로 재직 중이며 Identity Blockchain-Metadium Project의 CTO이다. www.metadium.com... more

: 기술감수: 코인플러그

블록체인 관련 특허 보유 세계 1위 (2018.9)의 블록체인 전문기업으로 핀테크 및 B2B 플랫폼, 디지털자산 거래소(CPDAX), 아이덴티티 블록체인 Metadium의 개발 등 다양한 서비스를 제공하고있다. www.coinplug.com / www.cpdax.com... more

댓글을 달 수 없는 글입니다.