HOME > Detail View

Detail View

파이썬으로 배우는 블록체인 구조와 이론 : 비트코인, 암호학, 전자지갑, 트랜잭션, 채굴의 원리와 구현 (Loan 9 times)

Material type
단행본
Personal Author
조성현 이광성, 저 박혜리, 저
Title Statement
파이썬으로 배우는 블록체인 구조와 이론 : 비트코인, 암호학, 전자지갑, 트랜잭션, 채굴의 원리와 구현 / 조성현, 이광성, 박혜리 지음
Publication, Distribution, etc
파주 :   위키북스,   2019  
Physical Medium
xx, 304 p. : 삽화 ; 25 cm
Series Statement
위키북스 TECH@InsightCampus 시리즈 ;001
ISBN
9791158391515
General Note
색인수록  
000 00000cam c2200205 c 4500
001 000045996627
005 20190903110841
007 ta
008 190902s2019 ggka 001c kor
020 ▼a 9791158391515 ▼g 93500
035 ▼a (KERIS)BIB000015127363
040 ▼a 211044 ▼c 211044 ▼d 241050 ▼d 211009
082 0 4 ▼a 005.758 ▼a 332.178 ▼2 23
085 ▼a 005.758 ▼2 DDCK
090 ▼a 005.758 ▼b 2019z1
100 1 ▼a 조성현
245 1 0 ▼a 파이썬으로 배우는 블록체인 구조와 이론 : ▼b 비트코인, 암호학, 전자지갑, 트랜잭션, 채굴의 원리와 구현 / ▼d 조성현, ▼e 이광성, ▼e 박혜리 지음
260 ▼a 파주 : ▼b 위키북스, ▼c 2019
300 ▼a xx, 304 p. : ▼b 삽화 ; ▼c 25 cm
440 0 0 ▼a 위키북스 TECH@InsightCampus 시리즈 ; ▼v 001
500 ▼a 색인수록
700 1 ▼a 이광성, ▼e
700 1 ▼a 박혜리, ▼e
945 ▼a KLPA

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.758 2019z1 Accession No. 121250115 Availability In loan Due Date 2021-09-15 Make a Reservation Service M
No. 2 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.758 2019z1 Accession No. 121253457 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

블록체인의 기능에 대한 문제점과 보완 방법 등에 관해 활발히 토론이 이뤄지고 있는 개발자 커뮤니티와 개발 제안 문서(Bitcoin Improvement Proposals, BIP)의 내용을 중심으로 집필이 됐다. 따라서 블록체인의 원천 기술인 비트코인 네트워크의 구조와 원리를 자세히 밝히는 것은 물론 블록체인의 구조를 기능별로 세분화해서 각 기능의 동작 원리와 상호 작용을 분석하고 있다.

파이썬을 통해서 블록체인의 기반기술을 깊게 이해하고 싶은 독자분들에게 추천합니다!

이 책은 블록체인의 기능에 대한 문제점과 보완 방법 등에 관해 활발히 토론이 이뤄지고 있는 개발자 커뮤니티와 개발 제안 문서(Bitcoin Improvement Proposals, BIP)의 내용을 중심으로 집필이 됐다. 따라서 블록체인의 원천 기술인 비트코인 네트워크의 구조와 원리를 자세히 밝히는 것은 물론 블록체인의 구조를 기능별로 세분화해서 각 기능의 동작 원리와 상호 작용을 분석하고 있다.

이 책을 통해 블록체인의 동작 원리를 설명하고 파이썬 프로그래밍을 통해 이론을 구체화했으므로 블록체인 기술을 더욱 깊이 이해하고 싶은 독자에게 도움이 될 것이다.

★ 이 책에서 다루는 내용 ★

◎ 블록체인을 안전하게 구축하는 데 필요한 암호 기술인 대칭키, 공개키 암호, 해시, 전자서명의 이론과 실습
◎ 지갑 애플리케이션에서 개인키, 공개키, 주소를 만드는 방법과 트랜잭션을 생성하는 원리, 채굴의 동작 원리에 대한 이론과 실습
◎ P2P 프로토콜의 종류와 구조 분석, 노드 간 주고받는 메시지의 모니터링
◎ 오픈소스 프로그램을 통한 블록체인 데이터베이스의 구조 및 내용을 분석하는 방법과 실습


Information Provided By: : Aladin

Author Introduction

조성현(지은이)

가천대학교 물리학과를 졸업하고, KT에 입사해서 KT 통신운용연구단에서 전자교환기 S/W 업무를 수행했으며, 이후 Lucent Technologies(Bell Labs Innovations)에서 수석연구원으로 차세대 통신망 구축 업무를 수행했다. 현재는 인사이트 캠퍼스에서 금융공학과 딥러닝 분야의 강사로 활동하고 있다.

이광성(지은이)

전자과를 우등 졸업하고 미국 실리콘밸리 SearchForce에서 인턴십을 했다. 사토시의 논문에서 시작된 호기심으로 이 책을 집필하게 되었다. 블록체인 관련 콘퍼런스에 다수 참여하면서 블록체인의 장점을 살려 현실에 적용 가능한 서비스를 창업하고 싶은 꿈이 있다.

박혜리(지은이)

생물학 학사, 경영학 석사(MBA)를 취득하고 IT 컨설팅 회사에서 비즈니스 컨설턴트로 활동했다. 현재는 금융 데이터 사이언스 분야에서 AI 기반 인텔리전스 서비스를 제공하는 핀테크 기업인 (주)핀인사이트에서 운영이사로 재직하면서 KAIST 문술미래전략대학원에서 수학 중이다.

Information Provided By: : Aladin

Table of Contents

▣ 1장: 비트코인 네트워크의 개요
1.1. 비트코인의 탄생
1.2. 암호화폐의 역사
__암호화폐의 주요 이슈
__비트코인은 기존 암호화폐 아이디어의 종합체
1.3. 블록체인 기술의 의의
__중재자 없는 자유로운 거래 실현
__화폐, 계약서, 증명서 등 디지털 대상의 다양화
__사용자 증가에 따른 새로운 가치 창출
1.4. 블록체인이 가지고 올 비즈니스 혁신
__블록체인의 비즈니스 활용
__스마트 컨트랙트와 비즈니스의 결합
1.5. P2P 네트워크
__서버-클라이언트 네트워크
__P2P 네트워크
1.6. 비트코인 네트워크의 구성원
1.7. 각 노드의 기능
__풀 블록체인 노드(풀 노드)
__Lightweight 노드(SPV 노드)
__채굴자 노드
__서드파티 API 클라이언트
1.8. 참여자 노드 현황 관찰
1.9. 블록체인의 구조
1.10. 블록체인 데이터 확인
1.11. 블록의 크기 제한과 비트코인의 확장성
__비트코인의 확장성 문제
__세그윗과 비트코인 캐시의 탄생
1.12. 비트코인 지갑과 지갑 주소
__일반 사용자의 지갑
__개발자, 전문가 측면의 지갑
1.13. 트랜잭션(Transaction) 생성
__트랜잭션 생성
__블록체인과 트랜잭션 체인
1.14. 트랜잭션 전송
__나영이가 풀 노드일 때
__나영이가 SPV 노드일 때
__나영이가 서드파티 API 클라이언트일 때
__실제 트랜잭션 사례
1.15. 채굴
__블록 데이터 구조
__채굴 과정

▣ 2장: 암호 기술
2.1. 암호의 역사
__고대 암호
__근대 암호
2.2. 암호문의 요건
__혼돈(Confusion) 과정
__확산(Diffusion) 과정
2.3. 대칭키 기반 암호기술
__동작 방식
__블록 암호 방식(Block Cipher)
__스트림 암호 방식(Stream Cipher)
__Data Encryption Standard(DES) 알고리즘
__Advanced Encryption Standard(AES) 알고리즘
2.4. 대칭키 암호 절차 실습(AES)
__대칭키 기반 암호 방식의 문제점
2.5. 공개키 기반 암호기술
__동작 방식
__RSA 알고리즘
__Diffie-Hellman Key 교환 알고리즘(DHKE)
__Elgamal 알고리즘
__Square-and-Multiply 알고리즘(공개키 계산)
__타원곡선암호 알고리즘(Elliptic Curve Cryptography: ECC)
__덧셈 연산자(Addition operator)
__덧셈 연산자 연습
__개인키, 공개키 생성
__Double-and-Add 알고리즘
2.6. 해시(Hash) 알고리즘
__해시 함수의 조건
__해시 알고리즘의 종류
__비트코인에 적용된 해시 함수
2.7. 전자서명(Digital Signature)
__타원곡선 전자서명 알고리즘(ECDSA)

▣ 3장: 지갑(Wallet)
3.1. 비트코인 지갑 주소
__키와 지갑 주소
3.2. 개인키(Private Key)
__타원곡선암호의 표준 문서
__랜덤 넘버 생성기(Random Number Generator: RNG)
__Base58Check 인코딩
__Wallet Import Format(WIF)
3.3. 공개키(Public Key)
__공개키 생성
__공개키 유형
__공개키 포맷 변환
3.4. 지갑 주소(Address)
__지갑 주소 생성과정
__메인넷(Mainnet)과 테스트넷(Testnet)
__버전 프리픽스(Version prefix)
3.5. 지갑 주소 관리
3.6. 지갑의 백업 관리
__백업 방식
__개인키 유실
__브레인 월렛(Brain Wallet)
__베니티 월렛(Vanity Wallet)
3.7. 지갑의 유형과 키 관리
__비결정적 방식의 지갑(Non-deterministic Wallet)
__결정적 방식의 지갑(Deterministic Wallet)
3.8. 계층 구조의 결정적 방식(Hierarchical Deterministic Wallets: HD Wallets, BIP-32)
__HD 지갑의 구조
__활용 케이스
3.9. 니모닉 코드(Mnemonic Code: BIP-39)

▣ 4장: 트랜잭션(Transaction)
4.1. 트랜잭션의 구조
__이중 지급 문제
__트랜잭션 데이터 구조
__필드 크기(Bytes)
__입력부의 Script Sig 구조
__바이트 오더(Byte order)
__직렬화(Serialization)
__트랜잭션 ID
4.2. 전자서명 생성
__전자서명 생성 절차
__해시타입(Hash Type)
__크라우드 펀딩
__백지수표
__더스트 콜렉터(Dust collector)
4.3. 전자서명 검증
__검증 스크립트 생성
__스크립트 검증 절차
__원시 데이터와 검증 스크립트
4.4. UTXO 조회 실습
4.5. 트랜잭션 생성 및 송금
__테스트용 지갑 주소 생성
__초기 잔액 확보
__코드 실행
__송금 결과 확인
4.6. 적정 거래 수수료
4.7. 트랜잭션 가변성(Transaction Malleability)
__트랜잭션 가변성 사례 분석
__가능한 공격 시나리오
4.8. 다중 서명(MultiSig)
__스크립트 구조
__스크립트 검증
4.9. Pay-to-Script Hash(P2SH)
4.10. P2SH 지갑 주소 생성
__다중 서명용 지갑 주소 생성 절차
__P2SH와 P2PKH의 거래 예시
__리딤 스크립트 디코딩
__스크립트 검증
4.11. P2SH 지갑 생성 및 트랜잭션 생성 실습
__코드 실행
__송금 결과 확인
4.12. 세그윗(Segregated Witness: SegWit)
__세그윗 개요
__세그윗 트랜잭션 사용량
4.13. 세그윗과 위트니스 머클 트리
__위트니스용 머클 트리
__코인베이스 트랜잭션의 출력부
4.14. 세그윗 트랜잭션
__세그윗 트랜잭션의 구조
__서명 검증
4.15. Bech32 주소
__트랜잭션 사례
__오류 검출
__Bech32 주소 형식

▣ 5장: 채굴(Mining)
5.1. 블록 헤더의 구조
5.2. 버전(version)
5.3. 해시 난이도
__타깃 비츠(Target Bits)
__채굴 난이도 지표(Difficulty)
__블록 해시 확인
5.4. 해시 난이도 조절(Retarget)
__타깃 값 설정 규칙
5.5. 머클 트리(Merkle Tree)와 머클 루트(Merkle Root)
5.6. 엑스트라 논스(Extra Nonce)
5.7. 채굴 절차 흐름도
5.8. 해시 파워(Hash power)
__해시 파워와 채굴 난이도
5.9. 비트코인 발행량
__디플레이션 화폐
__미국 달러 발행량과 비트코인 발행량 비교
5.10. 수수료와 최적 블록 사이즈
__채굴자 입장
__일반 사용자 입장
__시장의 균형
5.11. 솔로 마이닝(Solo Mining)과 풀 마이닝(Pool Mining)
__솔로 마이닝
__풀 마이닝
__보상 분배 방식
5.12. 블록체인의 분기
__블록체인의 일시적 분기
__트랜잭션의 최종 승인(Confirmation)
__하드포크(Hard Fork)와 소프트포크(Soft Fork)
__네트워크 분리와 새로운 코인의 탄생

▣ 6장: 비트코인 P2P 프로토콜
6.1. 패킷 분석기 소개 - 와이어샤크(WireShark)
6.2. 노드 관리 메시지
__version, verack 메시지
__getaddr, addr 메시지
__ping, pong 메시지
6.3. 블록 데이터 동기화
__블록 우선(Block-first) 동기화 방식
__블록 우선 방식의 문제점
__헤더 우선(Headers-first) 동기화 방식
6.4. 신규 블록 데이터 릴레이
__이전 방식의 블록 전송
__현재 방식의 블록 전송
__저대역폭 릴레이(Low Bandwidth Relaying)
__고대역폭 릴레이(High Bandwidth Relaying)
6.5. 트랜잭션 릴레이
6.6. 기타 메시지
__Reject 메시지
__Feefilter 메시지
__Mempool 메시지
__Notfound 메시지
__패널티 부여 및 노드 차단
6.7. SPV 노드 - Simplified Payment Verification
__블룸 필터(Bloom Filter)
__비주얼 스튜디오 내려받기
__SPV와 블룸 필터
__필터로드(filterload) 메시지
__머클 블록과 트랜잭션 검증

▣ 7장: 비트코인 코어(Bitcoin Core)
7.1. 비트코인 코어 설치
__프로그램 내려받기 및 설치
__환경 설정
7.2. 비트코인 코어 실행
7.3. 블록체인 데이터 파일 구성
__블록체인 데이터
__UTXO set 데이터
__지갑 데이터
7.4. 키와 주소 확인
7.5. 비트코인 코어 클라이언트
__비트코인 코어 클라이언트
__블록 데이터 조회
__트랜잭션 데이터 조회
7.6. 비트코인 코어 원격 프로시저 호출(RPC)
__블록 데이터 조회
7.7. RPC 기능을 활용한 블록체인 분석 예시
__분석 예시-1: 블록 생성 시간의 분포 분석
__분석 예시-2: 블록당 트랜잭션 개수의 분포 분석
__분석 예시-3: 기간에 따른 난이도의 변화 관찰
__분석 예시-4: 메모리 풀(MemPool)에 저장된 트랜잭션 조회
__분석 예시-5: 인근 피어(peer) 정보 확인
__분석 예시-6: 채굴자의 트랜잭션 선택 전략 확인
7.8 RPC 메서드 목록
__블록체인 관련 RPCs
__컨트롤 RPCs
__마이닝 RPCs
__네트워크 RPCs
__트랜잭션 RPCs
__유틸리티 RPCs
__지갑 RPCs

New Arrivals Books in Related Fields