티스토리 뷰
사전지식
- 지갑에 비트코인이 들어 있는 것은 아니다
- 나의 비트코인은 블록체인 공개 장부에 기록되어 있다.
- 비트코인 지갑에는 금고(잠금장치)를 여는 열쇠(비밀키)가 보관되어 있을 뿐이다
- 비트코인의 지갑 주소는 공개키로부터 만들어 진다.
- 공개키로부터 주소를 만드는 방법은 총 4가지
- p2pkh
- legacy(비압축)
- legacy(압축)
- p2sh
- p2wpkh
- p2pkh
- 공개키는 비밀키로부터 만들어 진다.
- 비밀키는 무작위로 선택한 1 ~ 2^256 사이의 임의의 숫자일 뿐이다.
- 공개키로부터 주소를 만드는 방법은 총 4가지
지갑의 역할
- 잔액확인, 거래 발생
- 온라인(인터넷 연결) 필수
- 비밀키를 안전하게 보관
- 오프라인(인터넷 차단) 필요
종이지갑
- 비밀키와 주소를 출력한 것
- 원시적인 형태로 옛날에 많이 사용하던 것
- 장점
- 단순하고 이해하기 쉬움
- 지갑 준비에 비용이 발생하지 않음
- 단점
- 출금시 비밀키가 온라인에 노출
- 하나의 주소를 계속 사용함으로 개인 거래내역이 쉽게 노출됨
HD Wallet
- 수 많은 종이지갑을 한 바구니?에 담아 놓은 것
- 하나의 마스터키로부터 수억개의 비밀키를 파생시킬 수 있음
- 장점
- 프라이버시 보호
- 입금시 매번 다른 주소 사용
- 출금하고 잔돈을 받을 때도 매번 다른 주소 사용
- 마스터 공개키로부터 자식 공개키를 만들어내는 마법
- 온라인 지갑(잔액확인/거래생성/거래전송)과 오프라인 지갑(키보관/서명)을 분리할 수 있음
- 프라이버시 보호
- 단점
- 직관적으로 이해하기 어렵(공부가 조금 필요)
파생방식
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번부터 순서대로 사용
- m/84/0/0/0/0 주소의 잔액(거래내역) 확인
Ref.
https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account-discovery
https://learnmeabitcoin.com/technical/hd-wallets
https://kwjdnjs.tistory.com/84
728x90
반응형
'비트코인 전도' 카테고리의 다른 글
한국인들이라면 특히 더욱 비트코인에 관심을 가져야 합니다. (1) | 2023.06.14 |
---|---|
인류는 아직 비트코인을 이해하지 못했다. (0) | 2023.04.20 |
비밀키와 니모닉은 다릅니다. (15) | 2023.03.28 |
종이지갑 주장하던 내가 하드월렛을 주문한 이유 (10) | 2023.03.21 |
어떤 지갑을 사용해야 할까 (2) | 2023.03.13 |
댓글