HD Wallets
(Hierarchical deterministic wallets,
참고1-잘못된 정보에 주의,
참고2)
- BIP(Bitcoin Improvement Proposals) 32 (BIP 0032) 에 정의되어 있는 Bitcoin 류의 blockchain의 계정 묶음(wallet)을 생성하는 방법에 대한 표준이다.
- 특정한 키 생성 방법과 체계를 가지고 있어, 특정 코인 주소 대신 seed를 사용해 여러 개의 코인 주소를 추출해 낼 수 있도록 되어있다.
- HD Wallet은 wallet 내의 주소를 구분하기 위해 m/44'/0'/0'/0 과 같은 형식을 따르고 있으며 통상 아래와 같은 규칙으로 사용된다. (참고1, 참고2)
- m / purpose' / coin_type' / account' / chains / address_index
- m: 최초 시드(master seed)로 부터 생성된 마스터 노드(master node)
- purpose: 통상 44 값이 쓰이는데, BIP44(다중 HD wallet 계정)를 뜻한다.
- coin_type: 코인의 종류를 나타내며 대표적으로 아래와 같은 코드가 쓰인다.
- 0: Bitcoin
- 1: Testnets
- 2: Litecoin
- 60: ETH
- 61: ETC (Ledger의 경우 표준을 부분적으로만 따르기 때문에 60을 사용)
- 194: EOS
- 2018: EOS Classic
- 더 많은 정보는 SLIP 0044 문서를 참조
- account: 계정 번호이며 사용자가 용도에 따라 임의로 정할 수 있다. 가족 구성원 또는 코인의 사용처 별로 구분해 사용하는 시나리오를 생각해볼 수 있다.
- chains: 0 또는 1만 쓰인다. 0은 외부 keypair chain을 나타내며 새로운 공개키를 생성할 때 사용된다. 1은 내부 keypair chain을 나타내며, 새로운 거래를 위해 내 wallet안의 계정에 소속된 코인을 옮겨담을 때 중개 역할을 한다 (TODO: 추가 참고자료 필요).
- ※주 index' = 0x80000000 + index
- Public key seed를 사용하면 public key만 생성할 수 있으며, private key는 오직 private key seed로 부터만 생성될 수 있다.
- Master seed는 복구의 용이성 때문에 통상 mnemonic(BIP39) 으로 부터 생성된다.
- Wallet을 복구할 수 있다면, wallet으로부터 생성된 모든 계정을 복구할 수 있다.
- 이 표준을 따르게 되면 Wallet 소프트웨어의 종류에 상관 없이 계정 복구가 가능하다.
- Master seed의 보안이 무엇보다 중요하다!
댓글 없음:
댓글 쓰기