HD 지갑
HD 지갑(Hierarchical Deterministic Wallet)은 하나의 시드 키를 사용하여 여러 주소를 생성할 수 있는 암호화폐 지갑으로 계층적 결정 지갑이라고도 합니다. HD 지갑은 트리 형태로, 하나의 부모 키가 여러 개의 연속된 자식 키를 만들고, 이 자식 키는 다시 여러 개의 손자 키를 만들어내는 방식으로 주소를 생성합니다.
비결정적 지갑과 결정적 지갑
비결정적 지갑
비결정적 지갑은 매 트랜잭션마다 새로운 비밀 키를 생성하는 지갑으로 지갑의 데이터를 자주 백업해야 합니다.
결정적 지갑
결정적 지갑은 하나의 시드 키를 가지고 있으며, 이 시드 키는 비밀 키를 만들기 위한 난수로 사용됩니다. 이 시드 키를 가지고 있으면 시드 키로부터 만들어진 비밀 키를 복구할 수 있습니다. 즉 결정적 지갑은 시드 키를 사용하는 지갑으로 비결정적 지갑의 단점을 해결한 지갑입니다.
BIP32
BIP32에서 결정적 지갑을 이진 트리 형식으로 계층화하여 끝없이 비밀 키를 생성할 수 있는 구조를 처음으로 제안하였습니다. 즉 HD지갑은 BIP32의 제안을 구현한 것입니다.
※BIP : 비트코인의 기술을 논의하기 위해 작성하거나 공개된 제안 양식입니다.
HD 지갑 구조
HD 지갑은 시드 키로부터 마스터 키를 하나 생성하고, 마스터 키로부터 자식 키를 2^32개 생성할 수 있습니다.
자식 키는 일반 자식 키와 단절 자식 키가 있습니다. 일반 자식 키는 0~2^31-1번째 인덱스까지의 키를 말하며, 부모 키의 공개 키를 통해 자신의 공개 키를 알아낼 수 있습니다. 반면 단절 자식 키는 2^31부터 마지막 인덱스까지의 키를 말하며, 부모의 비밀 키를 알아야 자신의 공개 키를 구할 수 있습니다. 즉 부모의 공개 키와 연관없어 보이는 공개 키를 만들기 위해서는 단절 자식 키를 사용해야 합니다.
HMAC-SHA512
HMAC-SHA512는 SHA512 해시 알고리즘을 이용해서 메시지를 인증합니다. HD 지갑의 경우, 부모 키를 통해 자식 키를 확인할 수 있어야 하기 때문에, HMAC 방식을 이용해 키를 생성합니다.
'BlockChain > theory' 카테고리의 다른 글
[BlockChain] DID와 SSI 알아보기 (1) | 2022.05.30 |
---|---|
[BlockChain] 니모닉 알아보기 (1) | 2022.05.15 |
[BlockChain] 디지털 서명 알아보기 (1) | 2022.05.13 |
[BlockChain] 블록체인에서 해시함수의 역할 (2) | 2022.05.13 |
[BlockChain] 머클 트리 와 머클 루트 알아보기 (0) | 2022.05.12 |
댓글