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

What's hot

블록체인 개요
블록체인 개요블록체인 개요
블록체인 개요
Jongseok Choi
 
8 week: Technology of Platformless Media Blockchain
8 week: Technology of Platformless Media Blockchain8 week: Technology of Platformless Media Blockchain
8 week: Technology of Platformless Media Blockchain
Daemin Park
 
비트코인 네트워크 기술 소개 - 임석의, 윤석주
비트코인 네트워크 기술 소개 - 임석의, 윤석주비트코인 네트워크 기술 소개 - 임석의, 윤석주
비트코인 네트워크 기술 소개 - 임석의, 윤석주
Seok-ju Yun
 
블록체인 한 번에 이해하기
블록체인 한 번에 이해하기블록체인 한 번에 이해하기
블록체인 한 번에 이해하기
Myung Woon Oh
 
이더리움 기초 스터디 (암호, 스토리지)
이더리움 기초 스터디 (암호, 스토리지)이더리움 기초 스터디 (암호, 스토리지)
이더리움 기초 스터디 (암호, 스토리지)
Colin Chae
 
Bitcoin
BitcoinBitcoin
비트코인과 블록체인 핵심개념정리
비트코인과 블록체인 핵심개념정리비트코인과 블록체인 핵심개념정리
비트코인과 블록체인 핵심개념정리
HANSUK KIM
 
비트코인 네트워크 기술 소개 - 임석의, 윤석주
비트코인 네트워크 기술 소개 - 임석의, 윤석주비트코인 네트워크 기술 소개 - 임석의, 윤석주
비트코인 네트워크 기술 소개 - 임석의, 윤석주석의 임
 
비트코인 개인간 전자화폐시스템 요약 설명
비트코인 개인간 전자화폐시스템 요약 설명비트코인 개인간 전자화폐시스템 요약 설명
비트코인 개인간 전자화폐시스템 요약 설명
Seong-Bok Lee
 
블록 체인 기술 원리, 이용 현황, 전망과 활용 분야.
블록 체인 기술 원리,  이용 현황, 전망과 활용 분야. 블록 체인 기술 원리,  이용 현황, 전망과 활용 분야.
블록 체인 기술 원리, 이용 현황, 전망과 활용 분야.
JaeGon Lim
 
비트코인으로 이해하는 블록체인 기술
비트코인으로 이해하는 블록체인 기술비트코인으로 이해하는 블록체인 기술
비트코인으로 이해하는 블록체인 기술
Seong-Bok Lee
 
분산형 컴퓨팅 플랫폼 [에테리움]
분산형 컴퓨팅 플랫폼 [에테리움]분산형 컴퓨팅 플랫폼 [에테리움]
분산형 컴퓨팅 플랫폼 [에테리움]
inucreative
 
Blockchain trends and research
Blockchain trends and researchBlockchain trends and research
Blockchain trends and research
Jongseok Choi
 
블록체인
블록체인블록체인
블록체인
Han Sung Kim
 
How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리
SeokWon Kim
 
초심자를 위한 블록체인 기초
초심자를 위한 블록체인 기초초심자를 위한 블록체인 기초
초심자를 위한 블록체인 기초
So Sun Park
 
비트코인에 관한 교육자료 입니다.
비트코인에 관한 교육자료 입니다.비트코인에 관한 교육자료 입니다.
비트코인에 관한 교육자료 입니다.
Sung Wan Yoon
 
Bitcoin 기술분석 - 조남수
Bitcoin 기술분석 - 조남수Bitcoin 기술분석 - 조남수
Bitcoin 기술분석 - 조남수
00heights
 
전자상거래 보안-블록체인(Blockchain) 기술
전자상거래 보안-블록체인(Blockchain) 기술전자상거래 보안-블록체인(Blockchain) 기술
전자상거래 보안-블록체인(Blockchain) 기술
Yechan Ahn
 
블록체인 업계 현황
블록체인 업계 현황블록체인 업계 현황
블록체인 업계 현황
Jeff Paik
 

What's hot (20)

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

Similar to Mastering bitocin chap5

Blockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreBlockchain 1st bitcoin_core
Blockchain 1st bitcoin_core
ihpark92
 
Neurogress how to guide
Neurogress how to guideNeurogress how to guide
Neurogress how to guide
Neurogress
 
Luniverse Partners Day - Bitberry(Rootone)
Luniverse Partners Day - Bitberry(Rootone)Luniverse Partners Day - Bitberry(Rootone)
Luniverse Partners Day - Bitberry(Rootone)
Luniverse Dunamu
 
블록체인과 암호화폐 그리고 악성코드
블록체인과 암호화폐 그리고 악성코드블록체인과 암호화폐 그리고 악성코드
블록체인과 암호화폐 그리고 악성코드
Jeong-woo Park
 
Blockchain 101
Blockchain 101Blockchain 101
Blockchain 101
Jinho Yoo
 
Blockchain 2nd ethereum_core
Blockchain 2nd ethereum_coreBlockchain 2nd ethereum_core
Blockchain 2nd ethereum_core
ihpark92
 
암호화 이것만 알면 된다.
암호화 이것만 알면 된다.암호화 이것만 알면 된다.
암호화 이것만 알면 된다.
KwangSeob Jeong
 
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
Minwoo Kim
 
Blockchain
BlockchainBlockchain
Blockchain
Sungkyun Kim
 

Similar to Mastering bitocin chap5 (9)

Blockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreBlockchain 1st bitcoin_core
Blockchain 1st bitcoin_core
 
Neurogress how to guide
Neurogress how to guideNeurogress how to guide
Neurogress how to guide
 
Luniverse Partners Day - Bitberry(Rootone)
Luniverse Partners Day - Bitberry(Rootone)Luniverse Partners Day - Bitberry(Rootone)
Luniverse Partners Day - Bitberry(Rootone)
 
블록체인과 암호화폐 그리고 악성코드
블록체인과 암호화폐 그리고 악성코드블록체인과 암호화폐 그리고 악성코드
블록체인과 암호화폐 그리고 악성코드
 
Blockchain 101
Blockchain 101Blockchain 101
Blockchain 101
 
Blockchain 2nd ethereum_core
Blockchain 2nd ethereum_coreBlockchain 2nd ethereum_core
Blockchain 2nd ethereum_core
 
암호화 이것만 알면 된다.
암호화 이것만 알면 된다.암호화 이것만 알면 된다.
암호화 이것만 알면 된다.
 
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
Blockchain Basic Concept Theory (Beginner Version) / 초보자를 위한 블록체인 기초 개념 이론
 
Blockchain
BlockchainBlockchain
Blockchain
 

More from 제호 송

Blockchain sharding
Blockchain shardingBlockchain sharding
Blockchain sharding
제호 송
 
Multisig and segwit
Multisig and segwitMultisig and segwit
Multisig and segwit
제호 송
 
About dapp
About dappAbout dapp
About dapp
제호 송
 
Cryptokitties Code Review
Cryptokitties Code ReviewCryptokitties Code Review
Cryptokitties Code Review
제호 송
 
Mastering ethereum(oracle)
Mastering ethereum(oracle)Mastering ethereum(oracle)
Mastering ethereum(oracle)
제호 송
 
Mastering ethereum(smart contract)
Mastering ethereum(smart contract)Mastering ethereum(smart contract)
Mastering ethereum(smart contract)
제호 송
 
Mastering bitcoin chap7
Mastering bitcoin chap7Mastering bitcoin chap7
Mastering bitcoin chap7
제호 송
 
Mastering bitcoin chap6
Mastering bitcoin chap6Mastering bitcoin chap6
Mastering bitcoin chap6
제호 송
 
Mastering bitcoin chap8
Mastering bitcoin chap8Mastering bitcoin chap8
Mastering bitcoin chap8
제호 송
 

More from 제호 송 (9)

Blockchain sharding
Blockchain shardingBlockchain sharding
Blockchain sharding
 
Multisig and segwit
Multisig and segwitMultisig and segwit
Multisig and segwit
 
About dapp
About dappAbout dapp
About dapp
 
Cryptokitties Code Review
Cryptokitties Code ReviewCryptokitties Code Review
Cryptokitties Code Review
 
Mastering ethereum(oracle)
Mastering ethereum(oracle)Mastering ethereum(oracle)
Mastering ethereum(oracle)
 
Mastering ethereum(smart contract)
Mastering ethereum(smart contract)Mastering ethereum(smart contract)
Mastering ethereum(smart contract)
 
Mastering bitcoin chap7
Mastering bitcoin chap7Mastering bitcoin chap7
Mastering bitcoin chap7
 
Mastering bitcoin chap6
Mastering bitcoin chap6Mastering bitcoin chap6
Mastering bitcoin chap6
 
Mastering bitcoin chap8
Mastering bitcoin chap8Mastering bitcoin chap8
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