밑바닥부터 시작하는 비트코인
비트코인 코어를 구현하면서 배우는 비트코인 이론과 실제
비트코인은 블록체인 기술의 집약체이다. 이더리움, 이오스 같은 2, 3세대 블록체인은 비트코인을 바탕으로 확장, 발전한 개념이다. 디앱 개발에서 머무르지 않고 블록체인 개발자로 성장하기 위해서는 ‘비트코인 코어’를 가장 먼저 배워야 한다. 무한한 상상력을 블록체인 기술로 실현하려면 비트코인 코어의 구성 요소와 작동 원리를 이해하고 구현할 수 있어야 한다.
이 책은 비트코인 코어의 구성요소를 파이썬으로 직접 구현하면서 비트코인 핵심을 깊이 이해할 수 있다. 유한체 기본부터 암호화폐를 이루는 수학과 암호학, 블록, 트랜잭션을 파헤치고 블록체인 결제 시스템까지 확장한다. 이 책을 마치면 비트코인 코어에 필요한 핵심 요소를 직접 코딩하면서 암호화폐라는 무대 뒤에서 무엇이 어떻게 돌아가는지 알게 된다. 트랜잭션을 생성하고 P2P 네트워크에서 데이터를 가져와 네트워크 프로토콜에 따라 트랜잭션을 전파시킬 수 있다. 블록체인으로 응용프로그램이나 서비스를 개발하거나 이 분야에 처음 뛰어든 사람은 반드시 읽어야 하는 책이다.
20년 경력 프로그래머로 지난 5년간 비트코인 프로그래머로 지냈다. 비트코인테크토크 편집자이며 『비트코인 매거진』에 기고하고 있다. 블록체인 캐피털의 벤처 파트너이면서 텍사스 대학교에서 이 책을 주제로 강의하고 있다. 비트코인 코어를 포함한 여러 비트코인 프로젝트에 기여했으며 비트코인 지갑으로 유명한 아머리 사 기술담당 부사장을 역임했다.
CHAPTER 1 유한체
1.1 현대대수 학습
1.2 유한체 정의
1.3 유한집합 정의하기
1.4 나머지연산
1.5 유한체 덧셈과 뺄셈
1.6 유한체 곱셈과 거듭제곱
1.7 유한체 나눗셈
1.8 거듭제곱 메서드 수정
1.9 마치며
CHAPTER 2 타원곡선
2.1 정의
2.2 파이썬으로 타원곡선 코딩하기
2.3 두 점의 덧셈
2.4 점 덧셈 성질
2.5 점 덧셈 코딩하기
2.6 x1≠x2인 경우의 점 덧셈
2.7 x1≠x2인 경우의 점 덧셈 코딩하기
2.8 P1 = P2인 경우의 점 덧셈
2.9 P1 = P2인 경우의 점 덧셈 코딩하기
2.10 마지막 예외 처리 코딩하기
2.11 마치며
CHAPTER 3 타원곡선 암호
3.1 실수체에서 정의된 타원곡선
3.2 유한체에서 정의된 타원곡선
3.3 유한체에서 정의된 타원곡선 코딩하기
3.4 유한체에서 정의된 타원곡선 위 두 점의 덧셈
3.5 유한체에서 정의된 점 덧셈 코딩하기
3.6. 타원곡선 위 점의 스칼라 곱셈
3.7 스칼라 곱셈 특징
3.8 스칼라 곱셈으로 생성된 군의 성질
3.9 스칼라 곱셈 코딩하기
3.10 비트코인에서 사용하는 타원곡선
3.11 공개키 암호
3.12 서명 생성과 서명 검증
3.13 마치며
CHAPTER 4 직렬화
4.1 비압축 SEC 형식
4.2 압축 SEC 형식
4.3 DER 서명 형식
4.4 비트코인 주소 및 WIF 형식
4.5 비트코인에서 빅엔디언/리틀엔디언 변환
4.6 마치며
CHAPTER 5 트랜잭션
5.1 트랜잭션 구성요소
5.2 버전
5.3 입력
5.4 출력
5.5 록타임
5.6 트랜잭션 직렬화 코딩하기
5.7 트랜잭션 수수료
5.8 마치며
CHAPTER 6 스크립트
6.1 스크립트 기법
6.2 스크립트 실행
6.3 주요 연산자
6.4 스크립트 파싱
6.5 잠금/해제 스크립트의 결합
6.6 표준 스크립트
6.7 p2pk 스크립트
6.8 p2pk 스크립트의 문제점
6.9 p2pk 스크립트의 문제 해결
6.10 비표준 스크립트
6.11 마치며
CHAPTER 7 트랜잭션 검증과 생성
7.1 트랜잭션 검증
7.2 트랜잭션 생성
7.3 테스트넷 트랜잭션 생성과 전파
7.4 마치며
CHAPTER 8 p2sh 스크립트
8.1 다중서명
8.2 OP_CHECKMULTISIG 함수
8.3 다중서명의 문제점
8.4 p2sh 스크립트
8.5 p2sh 스크립트 코딩하기
8.6 마치며
CHAPTER 9 블록
9.1 코인베이스 트랜잭션
9.2 블록 헤더
9.3 작업증명
9.4 마치며
CHAPTER 10 네트워킹
10.1 네트워크 메시지
10.2 페이로드 파싱
10.3 네트워크 핸드셰이크
10.4 네트워크 접속
10.5 블록 헤더 요청
10.6 블록 헤더 응답
10.7 마치며
CHAPTER 11 단순 지급 검증
11.1 단순 지급 검증의 필요성
11.2 머클트리
11.3 머클부모
11.4 머클부모 레벨
11.5 머클루트
11.6 블록에서 머클루트 계산
11.7 머클트리 활용하기
11.8 머클블록
11.9 마치며
CHAPTER 12 블룸 필터
12.1 블룸 필터의 정의
12.2 BIP0037 블룸 필터
12.3 블룸 필터 설정
12.4 머클블록 입수
12.5 관심 트랜잭션 입수
12.6 마치며
CHAPTER 13 세그윗
13.1 p2wpkh 스크립트
13.2 p2wpkh 트랜잭션
13.3 p2sh-p2wpkh 스크립트
13.4 p2wpkh와 p2sh-p2wpkh 코딩하기
13.5 p2wsh 스크립트
13.6 p2sh-p2wsh 스크립트
13.7 p2wsh와 p2sh-p2wsh 코딩하기
13.8 기타 개선 사항
13.9 마치며
CHAPTER 14 고급 주제 및 다음 단계
14.1 주제 제안
14.2 오픈소스 기여
14.3 프로젝트 제안
14.4 마치며
부록
연습문제 해답
송재준 저자가 집필한 등록된 컨텐츠가 없습니다.