공지사항

비트코인 블록체인 관련 글의 순서에 대한 안내

라이튼 2022. 11. 7. 18:51
 We choose to go to the Moon in this decade and do the other things, not because they are easy, but because they are hard; because that goal will serve to organize and measure the best of our energies and skills, because that challenge is one that we are willing to accept, one we are unwilling to postpone, and one we intend to win, and the others, too.

Well, space is there, and we're going to climb it, and the moon and the planets are there, and new hopes for knowledge and peace are there. And, therefore, as we set sail we ask God's blessing on the most hazardous and dangerous and greatest adventure on which man has ever embarked.

 우리는 앞으로 10년 안에 달에 갈 것이며 다른 임무도 수행할 것입니다. 이 일이 쉬워서가 아니라 어려운 일이라는 것을 알기 때문입니다. 바로 이러한 목표가 우리의 역량을 한데 모으고, 우리가 가진 최상의 기술력을 시험할 척도가 될 것이기 때문입니다. 이러한 도전은 우리가 기꺼이 받아들이고자 하는 것이며, 더는 지체하고 싶지 않은 것이고, 우리가 얻고자 하는 것이며, 또 다른 많은 이유를 가진 것입니다.


 네, 우주는 바로 저기에 있습니다. 그래서 우리는 그곳에 올라갈 것입니다. 달과 행성들이 바로 저기에 있습니다. 그리고 지식과 평화에 대한 새로운 희망이 바로 저기에 있습니다. 그래서 우리는 돛을 펼치고, 신의 가호를 구합니다. 가장 모험적이고, 위험하고, 인류 역사상 가장 위대한 모험을 떠나기 앞서 말입니다.


John F. Kennedy

 

 

 이 블로그에는 비트코인 블록체인 기술 관련 글이 많이 등록되어 있습니다. 아래는 관련 글들의 읽기 좋은 순서와 전체 목차를 정리한 것입니다.

 

1. 비트코인 기본 구조

 비트코인과 블록체인의 기본 구조를 다룹니다.

 

1. 이중 지불 문제(Double spending problem)

2. 타임스탬프(Timestamp)

3. 작업증명(Proof-of-Work)

4. 분산원장기술(Distributed Ledger Technology)

5. 채굴(Mining)

6. 머클트리와 SPV(Merkle Tree & SPV)

7. 정리

 

2. 비트코인 암호학

 비트코인에서 사용하는 공개키, 개인키, 서명을 생성하기 위한 암호학을 다룹니다.

 

0. 비트코인의 거래와 서명

 

1. 타원곡선과 점 덧셈

 (1) 타원곡선

 (2) 타원곡선의 점 덧셈1

 (3) 타원곡선의 점 덧셈2

 

2. 유한체 타원곡선과 스칼라 곱셈

 (1) 유한체

 (2) 유한체에서의 타원곡선

 (3) 타원곡선의 스칼라 곱셈

 

3. 공개키 암호화

 (1) 공개키 암호화

 (2) 공개키와 개인키

 

4. ECDSA

 (1) 디지털 서명

 (2) ECDSA - 1

 (3) ECDSA - 2

 

5. 슈노르 서명 (탭루트에서 사용)

 ● 슈노르 서명(Schnorr signature)

 

3. 비트코인 구조

 비트코인의 세부적인 작동방식과 구조에 대한 내용을 다룹니다.

 

Part1 트랜잭션(Transaction)

 1. 주요 표준과 기술

  ● 빅 엔디안(Big endian)과 리틀 엔디안(Little endian)

  ● 비트코인 해시 함수(sha-256, hash256, hash160)

  ● 인코딩(Encoding) - Base58Check, Bech32

  ● 가변 길이 정수(VarInt)

 

 2. 공개키와 서명

  (1) 개인키(Private key), 공개키(Public key), 주소(Address) 생성

  (2) DER 형식 서명(Signature) 생성

 

 3. 트랜잭션과 비트코인 스크립트 기초

  (1) 비트코인 트랜잭션(Transaction) 기초

  (2) 잠금 스크립트(scriptPubkey)와 해제 스크립트(scriptSig) 기초

  (3) UTXO

 

 4. 비트코인 표준 스크립트

 (1) 스크립트(Script)와 Opcode, P2PK

 (2) P2PKH

 (3) P2SH

 (4) 세그윗(Segwit), Bech32 주소

 

 5. 트랜잭션 세부 구조

  (1) 트랜잭션 기본 규칙

  (2) 비트코인 테스트넷 Faucet

  (3) 트랜잭션 생성

 

 부록

  ● 0x4c 이상 크기의 데이터를 스크립트에 저장하는 방법

  ● P2SH 스크립트에서 리딤 스크립트를 전송하는 방식

  ● 세그윗에서 증인(Witness) 데이터를 전송하는 방식

 

Part2 블록(Block)

 1. 블록(Block)

  (1) 비트코인 블록(Block) 기초

  (2) 비트코인 블록 기본 규칙

  (3) 블록 버전

 

 2. 머클 트리(Merkle Tree)와 SPV

  (1) 머클 트리(Merkle Tree)

  (2) SPV(Simplified Payment Verification)

  (3) 블룸 필터(Bloom Filter)

 

 3. 작업증명(Proof-of-Work)과 난이도

 

Part3 네트워크(Network)

 1. P2P 네트워크 연결

 2. 네트워크 요청과 응답

 3. 메시지 헤더와 주요 메시지

 4. 멤풀(Mempool)

 

Part4 기타 주요 표준

 1. BIP39: 니모닉(Mnemonic)과 시드(Seed)

 2. BIP32: HD지갑(Hierarchical Deterministic Wallet)

 3. HD 지갑 파생 경로(Derivation Paths)

 

Part5 탭루트(Taproot)

 1. 탭루트(Taproot)

 2. 탭스크립트와 P2TR