가상 화폐 지갑 (Wallet) 종류
Random Wallet (Non-deterministic Wallet)
- 랜덤한 개인키를 생성해 주소를 파생함
- 여러 개의 지갑을 관리하기 너무 복잡하다. (100개의 지갑을 관리하기 위해서는 100개의 개인키를 갖고 있어야 함)
Hierarchical Deterministic Wallet (HD Wallet)
- 하나의 시드(seed)값 + path + 색인 을 이용해 여러 개의 개인 키를 생성할 수 있다.
- seed : 128, 256, 512 bit의 무작위 숫자
- 관리가 용이하다. (path를 이용해 분류가 가능함)
- 부모 공개키로 자식 공개키를 생성할 수 있기 때문에, 공개키에 대응되는 개인키에 접근하지 않고도 공개키 생성이 가능함 (M/…)
- 실제 생성한 키, 주소는 일반적인 키, 주소와 동일하게 동작
Hardened Derivation
- 체인코드, 자식 개인키가 유출될 경우 다른 개인키에 대한 유출도 같이 일어나기 때문에, 이에 대한 방지책
- 부모 공개키가 아닌 개인키를 사용해 자식 체인코드를 생성해 부모 공개키와 자식 체인코드 간 관계를 끊어 버린다.
- 프라임(‘) 통해 표시 : m/0’/0
BIP32
- 시드값을 통해 여러 지갑 주소를 파생시킬 수 있다. (HD 지갑 구조에 관한 최초 명)세
BIP39
- 니모닉 코드 (Mnemonic code) 생성 방식에 대해 기술
- 12 ~ 24 단어 (human-readable)
- 니모닉 코드를 통해 시드 생성 + path + 색인 -> 개인키 생성 순서로 진행
BIP44
- 미리 규정된 트리 레벨 5개를 정의
m / purpose' / coin_type' / account' / change / address_index
# purpose : 44' 고정
# coin_type : 각 암호화폐 별 상이
# account : 지갑을 논리적인 하위계좌로 세분화할 수 있게 해줌 (각 서브트리의 근원이)
# change
# address_index : 해당 주소의 색인
출처
마스터링 비트코인