1장 서론
비트코인의 역사
비트코인 시작하기
2장 비트코인의 작동 원리
비트코인 개요
온라인 스토어에서 구매하기
비트코인 거래
비트코인 채굴하기
거래 소비하기
3장 비트코인 코어: 참조구현
비트코인에서 비트코인 코어까지
비트코인 개발 환경
소스 코드에서 비트코인 코어 컴파일 실행하기
비트코인 코어 노드 실행하기
비트코인 코어 노드 설정하기
비트코인 코어 API
그 외 선택 가능한 클라이언트, 라이브러리, 툴키트
4장 키와 주소
공개키의 암호학
출력값 스크립트와 입력값 스크립트
IP 주소: 비트코인의 원 주소(P2PK)
P2PKH를 위한 레거시 주소
Base58 인코딩
압축 공개키
레거시 P2SH
Bech32 주소
고급키와 주소
5장 지갑 복구
독립키 생성
상세한 지갑 기술 스택
6장 거래
직렬화된 비트코인 거래
버전
확장 마커 및 플래그
입력값
출력값
증인 구조
잠금 시간
코인베이스 거래
가중치와 가상 바이트
레거시 직렬화
7장 인가와 인증
거래 스크립트와 거래 언어
스크립트 다중서명
Pay to Script Hash
데이터 레코딩 출력(OP_RETURN)
흐름이 제어되는 스크립트(조건절)
복잡한 스크립트의 예시
Merklized Alternative Script Trees(MAST)
Pay to Contact(P2C)
스크립트리스 다중서명과 임곗값 서명
탭루트
탭스크립트
8장 디지털 서명
디지털 서명이 작동하는 방법
슈노어 서명
ECDSA 서명
서명에서 난수성의 중요성
분리 서명의 새로운 서명 알고리즘
9장 거래 수수료
거래 수수료는 누가 지불하는가?
수수료 및 수수료율
적정 수수료율 산정
수수료 대체(RBF) 수수료 범핑
부모를 위한 자식 대리 지불(CPFP) 수수료 범핑
패키지 중계
거래 고정
CPFP 분절 및 앵커 출력값
거래에 수수료 추가하기
수수료 스나이핑에 대응하는 타임락 방어
10장 비트코인 네트워크
노드의 유형 및 역할
네트워크
콤팩트 블록 중개
전용 블록 중개 네트워크
네트워크 검색
풀 노드
‘인벤토리’ 교환하기
라이트웨이트 클라이언트
블룸필터
콤팩트 블록 필터
라이트웨이트 클라이언트와 프라이버시
암호화되고 인증된 연결
멤풀과 고아풀
11장 블록체인
블록 구조
블록 헤더
블록 식별자: 블록 헤더 해시와 블록 높이
최초 블록
블록체인에 블록 연결하기
머클 트리
머클 트리와 라이트웨이트 클라이언트
비트코인의 테스트용 블록체인
개발용 테스트 블록체인 사용하기
12장 채굴과 합의
비트코인의 경제학과 통화 발행
분산화된 합의
거래의 독립적 검증
채굴 노드
블록 헤더 구성하기
블록 채굴하기
중앙 시간 경과(MTP)
블록을 성공적으로 채굴하기
새 블록 검증하기
블록체인 수집 및 선택
채굴과 해싱 복권
해시율 공격
합의 규칙 변경하기
13장 비트코인 보안
보안 원리
사용자 보안의 모범 사례
14장 레이어 2 어플리케이션
빌딩 블록(기초 요소)
빌딩 블록에서 사용하는 어플리케이션
컬러드 코인
지불 채널과 스테이트 채널
라우티드 지불 채널(라이트닝 네트워크)
부록 A 사토시 나카모토의 비트코인 백서
부록 B 비트코인 백서의 정오표
부록 C 비트코인 개선 제안