미리 알아야 할 내용들
[비트코인 구조] BIP32: HD지갑(Hierarchical Deterministic Wallet)
미리 알아야 할 내용들 [비트코인 구조] BIP39: 니모닉(Mnemonic)과 시드(Seed) 미리 알아야 할 내용들 [블록체인 용어] 니모닉(Mnemonic) 코인을 보관하기 위해 개인 지갑을 이용하는 경우 사용자는 블록
kwjdnjs.tistory.com
HD 지갑 파생 경로(Derivation Paths)
이번 글에서는 HD 지갑의 파생 경로에 대한 표준에 대해 알아보겠습니다. 이를 위해 먼저 파생 경로를 표현하는 방법에 대해 알아보겠습니다. 지난 글에서 다음과 같은 키 파생을 진행했었습니다.
이는 다음과 같이 표현할 수 있습니다.
마스터 개인키(m) -> 인덱스 0번 일반 개인키(자식)
마스터 개인키(m) -> 인덱스 2147483648 강화 개인키(자식)
위 파생 경로를 표현하는 공식적인 표현 방법은 다음과 같습니다.
m/0
m/0'
파생 경로 표현 방식에 대한 정확한 정의는 다음과 같습니다.
- 마스터 개인키는 m으로 사용합니다.
- 부모 개인키와 자식 개인키의 관계는 '/'로 표시합니다.
- 자식 개인키의 인덱스를 정수로 적습니다. 강화 개인키인 경우 숫자 뒤에 [ ' ] 을 추가합니다. 강화 개인키 0' 번은 인덱스 2147483648번을 의미합니다.
파생 경로를 표현하는 방식에 대해 알아봤습니다. 지금부터는 본격적으로 파생 경로에 대한 표준에 대해 알아보겠습니다.
BIP44
BIP44에서는 파생 경로에 대한 인덱스 표준 방식을 정의하고 있습니다. 정확한 표준은 다음과 같습니다.
m / (목적)' / (코인 종류)' / (계정)' / (잔돈 계정 여부) / 인덱스
위 내용의 의미는 다음과 같습니다.
- 목적: 일반적으로 BIP 번호를 의미합니다. BIP44에서는 44'를 사용합니다.
- 코인 종류: 이름 그대로 코인의 종류입니다. 0'는 비트코인을, 1'는 테스트넷 비트코인을 의미합니다. 이더리움의 경우 60'을 사용합니다.
- 계정: 이름 그대로 계정을 의미합니다. 가장 하위 인덱스를 변경하여 여러 개의 계정을 만들 수도 있지만, 관리의 효율성을 위해 계정을 만들고 그 아래에서 인덱스를 관리합니다.
- 잔돈 계정 여부: 비트코인 트랜잭션에서의 잔돈을 받는 계정인지 여부에 대한 부분입니다. 잔돈을 받는 경우 1을, 그 이외의 경우 0을 사용합니다.
- 인덱스: 여러 개의 개인키 파생을 위한 인덱스입니다.
예를 들어 다음과 같은 파생 경로는 'BIP44번 표준 비트코인 0번 계정 0번 인덱스'라는 의미를 갖습니다.
m/44'/0'/0'/0/0
BIP49, 84
BIP49와 84는 각각 비트코인 네스티드 세그윗, 네이티브 세그윗을 위한 표준입니다. BIP44에서의 목적 부분을 49와 84로 사용하는 것을 제외하면 BIP44와 같은 방식으로 사용합니다.
지금까지 HD 지갑 파생 경로에 대해 알아봤습니다. 감사합니다.
이어지는 글들
[비트코인 구조] 탭루트(Taproot)
미리 알아야 할 내용들 [비트코인 구조] 스크립트(Script)와 Opcode, P2PK 미리 알아야 할 내용들 [비트코인 구조] 잠금 스크립트(scriptPubkey)와 해제 스크립트(scriptSig) 기초 미리 알아야 할 내용들 [비트
kwjdnjs.tistory.com
'비트코인 > 비트코인 구조' 카테고리의 다른 글
[비트코인 구조] 탭스크립트와 P2TR (0) | 2023.01.17 |
---|---|
[비트코인 구조] 탭루트(Taproot) (0) | 2023.01.15 |
[비트코인 구조] BIP32: HD지갑(Hierarchical Deterministic Wallet) (0) | 2023.01.10 |
[비트코인 구조] BIP39: 니모닉(Mnemonic)과 시드(Seed) (0) | 2023.01.09 |
[비트코인 구조] 멤풀(Mempool) (0) | 2023.01.07 |