티스토리 뷰

사전지식

  • 지갑에 비트코인이 들어 있는 것은 아니다
    • 나의 비트코인은 블록체인 공개 장부에 기록되어 있다.
    • 비트코인 지갑에는 금고(잠금장치)를 여는 열쇠(비밀키)가 보관되어 있을 뿐이다
  • 비트코인의 지갑 주소는 공개키로부터 만들어 진다.
    • 공개키로부터 주소를 만드는 방법은 총 4가지
      • p2pkh
        • legacy(비압축)
        • legacy(압축)
      • p2sh
      • p2wpkh
    • 공개키는 비밀키로부터 만들어 진다.
    • 비밀키는 무작위로 선택한 1 ~ 2^256 사이의 임의의 숫자일 뿐이다.

 

 

지갑의 역할

  • 잔액확인, 거래 발생
    • 온라인(인터넷 연결) 필수
  • 비밀키를 안전하게 보관
    • 오프라인(인터넷 차단) 필요

 

 

 

종이지갑

  • 비밀키와 주소를 출력한 것
  • 원시적인 형태로 옛날에 많이 사용하던 것
  • 장점
    • 단순하고 이해하기 쉬움
    • 지갑 준비에 비용이 발생하지 않음
  • 단점
    • 출금시 비밀키가 온라인에 노출
    • 하나의 주소를 계속 사용함으로 개인 거래내역이 쉽게 노출됨

 

 

 

HD Wallet

  • 수 많은 종이지갑을 한 바구니?에 담아 놓은 것
  • 하나의 마스터키로부터 수억개의 비밀키를 파생시킬 수 있음
    • BIP32
    • 특정 공식에 따라 자식 키들을 파생시키기 때문에 마스터키만 있으면 수억개의 나머지 비트코인 주소를 파생시킬 수 있음
    • 마스터키는 니모닉으로부터 결정됨
      • 패스프레이즈를 사용할 경우 `니모닉+패스프레이즈`로부터 결정됨
      • BIP39
    • 니모닉으로부터 지갑을 만드는 방법 3가지(압축 공개키만 사용)
      • BIP44
        • p2pkh
        • 1로 시작하는 주소
        • legacy
      • BIP49
        • p2sh
        • 3으로 시작하는 주소
        • nested segwit
      • BIP84
        • p2wpkh
        • bc1q 로 시작하는 주소
        • native segwit
  •  장점
    • 프라이버시 보호
      • 입금시 매번 다른 주소 사용
      • 출금하고 잔돈을 받을 때도 매번 다른 주소 사용
    • 마스터 공개키로부터 자식 공개키를 만들어내는 마법
      • 온라인 지갑(잔액확인/거래생성/거래전송)과 오프라인 지갑(키보관/서명)을 분리할 수 있음
  • 단점
    • 직관적으로 이해하기 어렵(공부가 조금 필요)

 

 

파생방식

m / purpose' / coin_type' / account' / change / address_index

 

 

HD Wallet 의 동작 방식

  • 최초 입금은 m/84/0/0/0/0 으로 파생된 주소를 사용
    • 최초 입금액을 사용하고 남은 금액은 m/84/0/0/1/0 으로 파생된 주소로 입금
    • m/84/0/0/1/0 주소에서사용하고 남은 금액은 m/84/0/0/2/0 주소로 입금
  • 두번재 입금은 m/84/0/0/0/1 로 파생된 주소를 사용
    • 두번째 입금액을 사용하고 남은 금액은 m/84/0/0/1/1 주소로 입금
    • m/84/0/0/1/1  주소에서사용하고 남은 금액은 m/84/0/0/2/1 주소로 입금
  • 세번째 입금은 m/84/0/0/0/2 로 파생된 주소를 사용
  • 잔액확인
    • m/84/0/0/0/0 주소의 잔액(거래내역) 확인
      • 거래 내역이 있으면 잔액(거래내역이 없을 때까지)이 0이 될 때까지 추적
    • m/84/0/0/0/0 에 잔액이 있든 없든 m/84/0/0/0/1 잔액도 확인
      • 그런데 거래내역이 없는 주소가 20개가 이상이 될 경우 그 다음은 더 이상  확인하지 않음
    • 거래내역이 있는 계정의 다음 계정까지는 무조건 확인
      • 그런데 계정에 거래내역이 없으면 다음 번째 계정은 확인하지 않음
      • 계정의 사용은 무조건 0번부터 순서대로 사용

 

 

 

 

Ref.

https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account-discovery

https://iancoleman.io/bip39/

https://learnmeabitcoin.com/technical/hd-wallets

https://kwjdnjs.tistory.com/84

 

 

 


 

https://youtu.be/aVH9kN8bSD4

 

728x90
반응형
댓글
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함