Chapter 1 들어가며
1.1 분산 시스템이란?
1.2 이 책의 구성
Chapter 2 장애 허용 & 팩소스
2.1 클라이언트/서버
2.2 팩소스
Chapter 3 합의
3.1 두 친구
3.2 합의
3.3 합의의 불가능성
3.4 랜덤 합의
3.5 공유 코인
Chapter 4 비잔틴 동의
4.1 유효성
4.2 비잔틴 노드의 개수
4.3 왕 알고리즘
4.4 라운드 수의 하한
4.5 비동기 비잔틴 동의
Chapter 5 암호학 기초
5.1 키 교환
5.2 공개 키 암호
5.3 비밀 분산 및 벌크 암호화
5.4 메시지 인증 & 패스워드
5.5 전송 계층 보안
Chapter 6 인증된 동의
6.1 인증 기반 동의
6.2 프랙티컬 비잔틴 장애 허용
6.3 PBFT: 동의 프로토콜
6.4 PBFT: 뷰 전환 프로토콜
Chapter 7 쿼럼 시스템
7.1 부하와 작업
7.2 그리드 쿼럼 시스템
7.3 장애 허용
7.4 비잔틴 쿼럼 시스템
Chapter 8 궁극적 일관성과 비트코인
8.1 일관성, 가용성, 분할 내성
8.2 비트코인
8.3 스마트 컨트랙트
8.4 약한 일관성
Chapter 9 인사이드 비트코인
9.1 암호학 도구
9.2 스크립트와 메시지 형식
9.3 참가자
Chapter 10 분산 스토리지
10.1 일관된 해싱
10.2 하이퍼큐빅 네트워크
10.3 DHT와 이탈
알고리즘으로 배우는 분산 시스템의 구조와 이론
수학 증명과 의사코드로 명확하게 이해하기
10년간 튜링 상 절반을 차지할 만큼 분산 시스템과 암호학은 컴퓨터 과학의 중심에 위치한다. 참여자 간 신뢰를 구축하고 거래 내역을 영구 보존한다는 측면에서 블록체인의 본질은 분산원장이다. 이와 관련된 기술은 비트코인 이전에도 존재해왔지만, 이론과 실제를 이해하는 개발자는 드물다. 기법과 도구 역시 초기 단계이고 파편화를 겪고 있어 단순히 코드만 돌려보는 것만으로는 부족하다.
이 책은 비트코인 전후에 등장한 주요 분산 시스템 기술에 대해 정확한 설명을 제공하는 정통 이론서다. 관련 개념을 수학 증명과 의사코드로 정면 돌파한다. 장애 허용 시스템, 팩소스, 합의/동의, 비잔틴 문제, 쿼럼 시스템, 최종 일관성 등 익히 들어왔지만 이해하기 어려웠던 개념과 프로토콜, 알고리즘을 명확하게 정의하고 살펴본다. 각 챕터는 상호 독립적이라 원하는 주제만 골라서 볼 수 있고, 챕터 노트를 제공해 효시가 되는 문헌과 후속 연구를 찾아볼 수 있게 했다.
이 짧은 학술서는 블록체인의 탄생에 핵심이 된 토픽들의 발전 과정을 따라간다. 장애 허용, 합의, 쿼럼 등 다양한 분산 시스템 개념을 다룬다. 비잔틴 노드를 정의하고 여러 알고리즘에 미친 영향을 설명하는 부분이 특히 훌륭했다. 아이디어를 최초로 다룬 문헌과 그 역사를 소개하는 챕터 노트도 큰 도움이 되었다.
-워런 맥퍼슨, 17년 차 개발자