SlideShare a Scribd company logo
Mastering Bitcoin
Chap 5. Wallet
Song Je-Ho
qwerwon@gmail.com
지갑이란?
지갑
 사용자의 돈에 대한 접근, 키 및 주소 관리, 잔액 추적 및 트랜잭션 작성 및 서명을 제어함.
 사용자의 키를 저장하고 관리하는 데 사용되는 데이터 구조를 의미함.
 지갑의 개인 키의 컨테이너이며, 구조화 된 파일이나 간단한 데이터베이스로 구현됨.
 지갑에는 key만으로 보관하고, 비트코인에서 말하는 “bitcoin”의 개념은 네트워크의 블록체인
에 기록됨(UTXO).
 사용자는 지갑의 키를 사용하여, 트랜잭션에 서명함으로써 네트워크의 동전을 제어함.
Key
Address
Others
비결정적 지갑(Nondeterministic Wallet)
 무작위로 생성된 개인 키를 사용하는 지갑, 고로 각 키 사이에는 아무런 관계가 없다
-> 백업 및 가져오기가 힘들다라는 큰 단점이 있음
 임의의 개인 키를 미리 생성하여 각 키를 한 번만 사용하고 필요에 따라 키를 추가로 생성함.
비결정적 지갑(Nondeterministic Wallet)
 무작위로 생성된 개인 키를 사용하는 지갑, 고로 각 키 사이에는 아무런 관계가 없다
-> 백업 및 가져오기가 힘들다라는 큰 단점이 있음
 임의의 개인 키를 미리 생성하여 각 키를 한 번만 사용하고 필요에 따라 키를 추가로 생성함.
아무런 관계가 없으므로,
k1으로 k2를 유추하거나
복구하는 것이 불가능
결정적 지갑(Deterministic Wallet)
 공통의 seed에서 파생된 개인 키들을 관리하는 지갑
 Seed를 사용하여, 파생된 키를 복구할 수 있으므로 생성시 단일 백업이 가능
계층결정적 지갑(HD Wallet)
 Tree 구조의 지갑으로, 단일 seed에서 많은 키를 쉽
게 파생 시킬 수 있음.
 HD 지갑은 트리구조를 사용하여, 부모 키가 일련의
자식 키를 파생시킬 수 있음.
 지갑에서 키 사용에 있어 조직적 의미를 나타낼 수
있음.
 사용자가 개인 키에 액세스 하지 않고도 공개 키들
을 생성 할 수 있음.
 상응하는 개인키 없이도 공개키 생성 가능
(Extented key)
계층결정적 지갑(HD Wallet)
확장 개인/공개키(Extended Key)
 256bit의 key와 256bit의 chain code를 합친 것을 extended key라고 지칭함(512bit)
 확장 개인키로는 다음 세대의 개인/공개키를 모두 생성 가능하고, 확장 공개키는 다음 세대의 공개키만 생성이
가능하다.
->상응하는 개인키 없이도 공개키 생성 가능(Extented key)
xpub
xprv
지갑( Wallet )
bitcoin/src/wallet/wallet.h
비트코인에서 HD지갑을 사용하고있다.
지갑( Wallet )
계층 결정적(hierarchical deterministic) 지갑
 HD지갑 구현시 중요한 점은 부모키에서 자식키를 만드는 것이다.
 이때 chain code 라는 숫자를 사용하여 자식키를 만든다. 자식의 public key 로 부모의 public key를
추론하기 어려워진다.
Chain code와 nchild값으로 hash값을 구한다.
구한 hash값으로 자식의 chain code를 구한다.
부모의 pubkey와 hash값으로 자식의 pubkey를 만든다.
지갑( Wallet )
계층 결정적(hierarchical deterministic) 지갑
 HD지갑은 128, 256, 512비트 크기의 무작위 숫자인 root seed로 부터 마스터 체인코드와 마스터
개인키를 생성한다. 이로부터 자식키를 생성한다.
Seed and Mnemonic Code ( BIP-39 )
Mnemonic ( BIP-39 )
 Seed를 만들어 내는 일련의 영어 단어를 의미함.
 대부분의 bitcoin 지갑에서 mnemonic을 사용하여, backup 및 recovery할 때 사용함.
Wallet Technology Details
Mnemonic Code Words ( BIP-39 )
 Mnemonic code는 시드로부터 생성된 임의의 숫자를 표현하는 일련의 단어로, 각 단어별로
지칭하는 숫자가 정해져있다.
 이 일련의 단어들은 사람이 기억하고 복구하기 쉽고, 다른 지갑 어플리케이션과 호환이 가능
하도록 사용한다.
실제 비트코인 Mnemonic word list
Wallet Technology Details
Generating mnemonic words From mnemonic to seed
Creating an HD Wallet from the Seed
Private child key derivation
Public child key derivation
참고 문헌
 https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch05.asciidoc

More Related Content

PDF
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)
PDF
비트코인
PDF
쉽게 풀어쓴 블록체인과 이더리움
PDF
Mastering bitcoin chap1
PDF
비트코인 비지니스 개요
PPTX
블록체인 이슈와 전망 New db
PDF
블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
PDF
비트코인 채굴과정
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)
비트코인
쉽게 풀어쓴 블록체인과 이더리움
Mastering bitcoin chap1
비트코인 비지니스 개요
블록체인 이슈와 전망 New db
블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
비트코인 채굴과정

What's hot (20)

PDF
블록체인 개요
PDF
8 week: Technology of Platformless Media Blockchain
PPTX
비트코인 네트워크 기술 소개 - 임석의, 윤석주
PDF
블록체인 한 번에 이해하기
PPTX
이더리움 기초 스터디 (암호, 스토리지)
PPTX
PDF
비트코인과 블록체인 핵심개념정리
PDF
비트코인 네트워크 기술 소개 - 임석의, 윤석주
PDF
비트코인 개인간 전자화폐시스템 요약 설명
PDF
블록 체인 기술 원리, 이용 현황, 전망과 활용 분야.
PPTX
비트코인으로 이해하는 블록체인 기술
PPTX
분산형 컴퓨팅 플랫폼 [에테리움]
PDF
Blockchain trends and research
PPTX
블록체인
PDF
How Blockchain Works - 블록체인의 원리
PDF
초심자를 위한 블록체인 기초
PPTX
비트코인에 관한 교육자료 입니다.
PDF
Bitcoin 기술분석 - 조남수
PDF
전자상거래 보안-블록체인(Blockchain) 기술
PDF
블록체인 업계 현황
블록체인 개요
8 week: Technology of Platformless Media Blockchain
비트코인 네트워크 기술 소개 - 임석의, 윤석주
블록체인 한 번에 이해하기
이더리움 기초 스터디 (암호, 스토리지)
비트코인과 블록체인 핵심개념정리
비트코인 네트워크 기술 소개 - 임석의, 윤석주
비트코인 개인간 전자화폐시스템 요약 설명
블록 체인 기술 원리, 이용 현황, 전망과 활용 분야.
비트코인으로 이해하는 블록체인 기술
분산형 컴퓨팅 플랫폼 [에테리움]
Blockchain trends and research
블록체인
How Blockchain Works - 블록체인의 원리
초심자를 위한 블록체인 기초
비트코인에 관한 교육자료 입니다.
Bitcoin 기술분석 - 조남수
전자상거래 보안-블록체인(Blockchain) 기술
블록체인 업계 현황
Ad

Similar to Mastering bitocin chap5 (20)

PDF
Blockchain 1st bitcoin_core
PDF
[Blockchain and Cryptocurrency] 04. Bitcoin and Nakamoto Blockchain
PDF
가상화폐 비트코인, 아직은 성공적, 미래는 불투명 | 2013.08.13
PPTX
Bitcoin
PDF
비트코인과 디지털통화 - 이주영
PDF
[Blockchain and Cryptocurrency] 02. Blockchain Overview and Introduction - Te...
PPTX
Block chain introduction slideshare
PDF
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
PDF
블록체인과 암호화폐 그리고 악성코드
PDF
암호화폐로 시작하는 블록체인 이야기 - 2018년 10월의 하늘. 목포어린이도서관
PDF
Kid Blockchain - Everything You Need to Know - (Part 1)
PDF
V SYSTEMS - SPoS Whitepaper_KR
PDF
Hyomin the economics of cryptocurrency review
PDF
Ethereum 스마트 컨트랙트 보안
PDF
짱 쉬운 블록체인 안종길
PDF
짱 쉬운 블록체인
PDF
Introblockchaininfra 180806105137
PDF
AirBit Club Korean Presentation
PDF
JTBC 차이나는 클라스 [62강] '블록체인, 신세계인가? 신기루인가?' (2018.5.23)
PDF
Bitcoin Basics Part1
Blockchain 1st bitcoin_core
[Blockchain and Cryptocurrency] 04. Bitcoin and Nakamoto Blockchain
가상화폐 비트코인, 아직은 성공적, 미래는 불투명 | 2013.08.13
Bitcoin
비트코인과 디지털통화 - 이주영
[Blockchain and Cryptocurrency] 02. Blockchain Overview and Introduction - Te...
Block chain introduction slideshare
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
블록체인과 암호화폐 그리고 악성코드
암호화폐로 시작하는 블록체인 이야기 - 2018년 10월의 하늘. 목포어린이도서관
Kid Blockchain - Everything You Need to Know - (Part 1)
V SYSTEMS - SPoS Whitepaper_KR
Hyomin the economics of cryptocurrency review
Ethereum 스마트 컨트랙트 보안
짱 쉬운 블록체인 안종길
짱 쉬운 블록체인
Introblockchaininfra 180806105137
AirBit Club Korean Presentation
JTBC 차이나는 클라스 [62강] '블록체인, 신세계인가? 신기루인가?' (2018.5.23)
Bitcoin Basics Part1
Ad

More from 제호 송 (9)

PDF
Blockchain sharding
PDF
Multisig and segwit
PDF
About dapp
PPTX
Cryptokitties Code Review
PDF
Mastering ethereum(oracle)
PDF
Mastering ethereum(smart contract)
PDF
Mastering bitcoin chap7
PDF
Mastering bitcoin chap6
PDF
Mastering bitcoin chap8
Blockchain sharding
Multisig and segwit
About dapp
Cryptokitties Code Review
Mastering ethereum(oracle)
Mastering ethereum(smart contract)
Mastering bitcoin chap7
Mastering bitcoin chap6
Mastering bitcoin chap8

Mastering bitocin chap5

  • 1. Mastering Bitcoin Chap 5. Wallet Song Je-Ho qwerwon@gmail.com
  • 2. 지갑이란? 지갑  사용자의 돈에 대한 접근, 키 및 주소 관리, 잔액 추적 및 트랜잭션 작성 및 서명을 제어함.  사용자의 키를 저장하고 관리하는 데 사용되는 데이터 구조를 의미함.  지갑의 개인 키의 컨테이너이며, 구조화 된 파일이나 간단한 데이터베이스로 구현됨.  지갑에는 key만으로 보관하고, 비트코인에서 말하는 “bitcoin”의 개념은 네트워크의 블록체인 에 기록됨(UTXO).  사용자는 지갑의 키를 사용하여, 트랜잭션에 서명함으로써 네트워크의 동전을 제어함. Key Address Others
  • 3. 비결정적 지갑(Nondeterministic Wallet)  무작위로 생성된 개인 키를 사용하는 지갑, 고로 각 키 사이에는 아무런 관계가 없다 -> 백업 및 가져오기가 힘들다라는 큰 단점이 있음  임의의 개인 키를 미리 생성하여 각 키를 한 번만 사용하고 필요에 따라 키를 추가로 생성함.
  • 4. 비결정적 지갑(Nondeterministic Wallet)  무작위로 생성된 개인 키를 사용하는 지갑, 고로 각 키 사이에는 아무런 관계가 없다 -> 백업 및 가져오기가 힘들다라는 큰 단점이 있음  임의의 개인 키를 미리 생성하여 각 키를 한 번만 사용하고 필요에 따라 키를 추가로 생성함. 아무런 관계가 없으므로, k1으로 k2를 유추하거나 복구하는 것이 불가능
  • 5. 결정적 지갑(Deterministic Wallet)  공통의 seed에서 파생된 개인 키들을 관리하는 지갑  Seed를 사용하여, 파생된 키를 복구할 수 있으므로 생성시 단일 백업이 가능
  • 6. 계층결정적 지갑(HD Wallet)  Tree 구조의 지갑으로, 단일 seed에서 많은 키를 쉽 게 파생 시킬 수 있음.  HD 지갑은 트리구조를 사용하여, 부모 키가 일련의 자식 키를 파생시킬 수 있음.  지갑에서 키 사용에 있어 조직적 의미를 나타낼 수 있음.  사용자가 개인 키에 액세스 하지 않고도 공개 키들 을 생성 할 수 있음.  상응하는 개인키 없이도 공개키 생성 가능 (Extented key)
  • 7. 계층결정적 지갑(HD Wallet) 확장 개인/공개키(Extended Key)  256bit의 key와 256bit의 chain code를 합친 것을 extended key라고 지칭함(512bit)  확장 개인키로는 다음 세대의 개인/공개키를 모두 생성 가능하고, 확장 공개키는 다음 세대의 공개키만 생성이 가능하다. ->상응하는 개인키 없이도 공개키 생성 가능(Extented key) xpub xprv
  • 9. 지갑( Wallet ) 계층 결정적(hierarchical deterministic) 지갑  HD지갑 구현시 중요한 점은 부모키에서 자식키를 만드는 것이다.  이때 chain code 라는 숫자를 사용하여 자식키를 만든다. 자식의 public key 로 부모의 public key를 추론하기 어려워진다. Chain code와 nchild값으로 hash값을 구한다. 구한 hash값으로 자식의 chain code를 구한다. 부모의 pubkey와 hash값으로 자식의 pubkey를 만든다.
  • 10. 지갑( Wallet ) 계층 결정적(hierarchical deterministic) 지갑  HD지갑은 128, 256, 512비트 크기의 무작위 숫자인 root seed로 부터 마스터 체인코드와 마스터 개인키를 생성한다. 이로부터 자식키를 생성한다.
  • 11. Seed and Mnemonic Code ( BIP-39 ) Mnemonic ( BIP-39 )  Seed를 만들어 내는 일련의 영어 단어를 의미함.  대부분의 bitcoin 지갑에서 mnemonic을 사용하여, backup 및 recovery할 때 사용함.
  • 12. Wallet Technology Details Mnemonic Code Words ( BIP-39 )  Mnemonic code는 시드로부터 생성된 임의의 숫자를 표현하는 일련의 단어로, 각 단어별로 지칭하는 숫자가 정해져있다.  이 일련의 단어들은 사람이 기억하고 복구하기 쉽고, 다른 지갑 어플리케이션과 호환이 가능 하도록 사용한다. 실제 비트코인 Mnemonic word list
  • 13. Wallet Technology Details Generating mnemonic words From mnemonic to seed
  • 14. Creating an HD Wallet from the Seed
  • 15. Private child key derivation
  • 16. Public child key derivation