"BIP44"의 두 판 사이의 차이
leejia1222 (토론 | 기여) (→BIP44의 트리 레벨 구조) |
leejia1222 (토론 | 기여) (→BIP44의 트리 레벨 구조) |
||
14번째 줄: | 14번째 줄: | ||
* level-4 (change, 잔돈 계정 여부) : BIP44는 원래 비트코인을 위해 제작되었기 때문에 이더리움 세계와 관련이 없는 '특이점(quirk)'이 포함되었다. HD 지갑에는 2개의 하위 트리가 있는데 하나는 입금 주소 작성용이고 다른 하나는 잔액 주소 작성용이다. (이더리움은 비트코인에 있는 잔액 주소가 필요 없음므로 단지 '입금'경로만 사용하여 항상 0이다) 이전 레벨은 강화파생만 사용했지만 이 레벨은 비보안 환경에서 사용할 수 있도록 확장된 공개키를 트리의 계정 수준에서 내보낼 수 있게 하기 위해서 일반 파생을 사용한다. <ref name="책"></ref> | * level-4 (change, 잔돈 계정 여부) : BIP44는 원래 비트코인을 위해 제작되었기 때문에 이더리움 세계와 관련이 없는 '특이점(quirk)'이 포함되었다. HD 지갑에는 2개의 하위 트리가 있는데 하나는 입금 주소 작성용이고 다른 하나는 잔액 주소 작성용이다. (이더리움은 비트코인에 있는 잔액 주소가 필요 없음므로 단지 '입금'경로만 사용하여 항상 0이다) 이전 레벨은 강화파생만 사용했지만 이 레벨은 비보안 환경에서 사용할 수 있도록 확장된 공개키를 트리의 계정 수준에서 내보낼 수 있게 하기 위해서 일반 파생을 사용한다. <ref name="책"></ref> | ||
* level-5 (address_index, 사용 가능한 주소 인덱스) : HD 지갑에서 파생된 level-4의 자식이다. | * level-5 (address_index, 사용 가능한 주소 인덱스) : HD 지갑에서 파생된 level-4의 자식이다. | ||
− | + | ||
− | + | * '''BIP44 HD 지갑 구조 예''' | |
− | |||
:{|border=2 width=600 | :{|border=2 width=600 |
2019년 7월 15일 (월) 10:40 판
BIP43(Bitcoin Improvement Proposal 43)이란 BIP32에 설명된 알고리즘을 기반으로 결정성 지갑에 사용하기 위한 "Purpose Field"를 소개하는 제안이다. BIP44는 BIP32 및 BIP43을 기반으로 한 HD 지갑의 구현을 정의한다. 특히 P2PKH 주소(예: Bitcoin의 1-주소) 및 지갑 검색 알고리즘에 대한 다중 동전 지갑 구조를 설명한다.
개요
BIP44는 BIP43의 스펙을 확장하여 '목적'번호를 44'로 설정하여 다중 통화 다중계정(복수 화폐 복수 계정) 구조를 제안한다. BIP44의 구조를 따르는 모든 HD 지갑 구조는 하나의 트리 분기(브랜치)인 m/44'/* 만 사용하여 식별된다.[1]
배경
HD 지갑 트리 구조는 매우 유연하다. 이것의 반대 부분은 무한한 복잡성을 가능하게 한다. 각 확장된 키는 20억 개의 일반 자식과 20억 개의 강화된 가식으로 40억 개의 자식을 가지고 있다. 이 자식들은 각각 다른 40억 개 자식들을 가진다. 잠재적인 무한한 수의 생성과 함께 원하는 만큼 트리는 깊어질 수 있다. 따라서 이렇게 매우 큰 트리를 탐색하는 것은 꽤 까다롭다.[1] BIP32만 해도 지갑이 어떻게 구현될 수 있는지에 대해 너무 많은 자유도를 제공한다. 따라서 이것이 BIP43이 호출하는 첫 번째 파생 인덱스 'purpose'가 후속 레벨에서 지갑 구조를 설명하는 BIP와 일치해야 한다는 규칙을 도입한 이유이다. [2]
BIP44의 트리 레벨 구조
m / purpose' / coin_type' / account' / change / address_index
- level-1 (purpose', 목적') : 항상 44'로 설정한다.
- level-2 (coin_type', 코인 종류') : 암호화폐 동전의 유형을 지정한다. 각 통화가 두 번째 레벨 아래에 자체 하위 트리를 갖는 화폐 HD 지갑을 허용한다는 의미이다. SLIP0044라는 표준 문서에는 여러 화폐가 정의되어있다. 예를들어 이더리움은 m/44'/60'이다. 모든 화폐의 테스트넷은 m/44'/61'이다.
- level-3 (account', 계정') : 사용자는 지갑을 회계 또는 조직 목적을 위한 별도의 논리적 하위 계좌로 세분화할 수 있다. 예를 들어, m/44'/0'/0', m/44'/0'/1'처럼 HD 지갑에는 2개의 비트코인 계정을 포함할 수 있다. 각 계정은 자체 하위 트리의 루트다.
- level-4 (change, 잔돈 계정 여부) : BIP44는 원래 비트코인을 위해 제작되었기 때문에 이더리움 세계와 관련이 없는 '특이점(quirk)'이 포함되었다. HD 지갑에는 2개의 하위 트리가 있는데 하나는 입금 주소 작성용이고 다른 하나는 잔액 주소 작성용이다. (이더리움은 비트코인에 있는 잔액 주소가 필요 없음므로 단지 '입금'경로만 사용하여 항상 0이다) 이전 레벨은 강화파생만 사용했지만 이 레벨은 비보안 환경에서 사용할 수 있도록 확장된 공개키를 트리의 계정 수준에서 내보낼 수 있게 하기 위해서 일반 파생을 사용한다. [1]
- level-5 (address_index, 사용 가능한 주소 인덱스) : HD 지갑에서 파생된 level-4의 자식이다.
- BIP44 HD 지갑 구조 예
HD 경로 키 설명 M/44'/60'/0'/0/2 메인 이더리움 계정에 대한 세 번째 수신 공개키 M/44'/0'/3'/1/14 4번째 비트코인 계정의 15번째 주소 변경 공개키 m/44'/2'/0'/0/1 트랜잭션 서명을 위한 라이트코인 메인 계정의 두 번째 개인 키
관련 BIP
- BIP32 : HD 지갑의 일반적인 형식과 HD 지갑을 구축하는 방법을 설명한 문서
- BIP39 : 결정성 열쇠를 파생하기 위한 니모닉 코드(복원 규칙)의 유형 및 BIP32 시드로 전환하는 프로세스
- BIP43 : 트리 구조의 목적을 나타내는 특별한 식별자로써 첫 강화된 자식 인텍스의 자용을 제안
- BIP44 : BIP32 지갑의 특정 형식, 목적을 44로 설정해서 나타나는 다중화폐 다계정 주고를 제안
- BIP47 : 비트코인 개선 제안 및 결제 코드 작성 방법
- BIP49 : P2WPKH가 중첩 된 P2SH 기반 계정의 유도 스키마
- BIP63 : 스텔스 주소
- BIP70 : SSL/TLS 통신을 이용하여 비트코인의 결제를 안전하게 함
- BIP84 : P2WPKH 기반 계정의 유도 스키마
- BIP141 : 분리된 증인(Consensus layer)
각주
- ↑ 1.0 1.1 1.2 안드레아스 M외 2인, 〈지갑-지갑의 모범 사례〉, 《Mastering Ethereum》, 제이펍, 2019-05-23
- ↑ 〈Cryptocurrency 표준〉 , 《trezor WiKi》
참고자료
- 안드레아스 M외 2인, 〈지갑-지갑의 모범 사례〉, 《Mastering Ethereum》, 제이펍, 2019-05-23
- 〈Cryptocurrency 표준〉 , 《trezor WiKi》
같이 보기