검수요청.png검수요청.png

"BIP43"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
 
(사용자 5명의 중간 판 39개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''BIP43'''(Bitcoin Improvement Proposal 43)이란 [[BIP32]]에 설명된 알고리즘을 기반으로 결정성 지갑에 사용하기 위한 "Purpose Field"를 소개하는 제안이다. '''BIP44'''는 [[BIP32]] 및 BIP43을 기반으로 한 [[HD 지갑]]의 구현을 정의한다. 특히 P2PKH 주소(예: Bitcoin의 1-주소) 및 지갑 검색 알고리즘에 대한 다중 동전 지갑 구조를 설명한다.
+
'''BIP43'''(Bitcoin Improvement Proposal 43)은 다목적(multipurpose) '''[[HD 지갑]]'''(Hierarchical Deterministic Wallet) 구조를 설명하는 일반적인 산업 표준이다.
  
 
== 개요 ==  
 
== 개요 ==  
[[BIP]]는 [[HD 지갑]] 트리의 구조에 대한 표준을 만듦으로써 이러한 잠재적인 복잡성을 관리하는 방법을 제공한다. BIP43은 트리 구조의 '목적'을 나타내는 특별한 식별자로써 처음 강화된 자식 인덱스의 사용을 제안한다. BIP43을 기반으로 한 HD 지갑은 트리구조와 나머지 레벨의 네임스페이스(namespace)를 식별하고, 지갑의 목적을 정의하는 인덱스 번 호화 트리 레벨 1분기만 사용해야 한다. 예를 들어, m/i'/*분기만을 사용하는 HD 지갑은 특정 목적을 나타내기 위한 것이고, 그 목적은 인덱스 번호 i로 식별한다. BIP44는 이 스펙을 확장하여 '목적'번호를 44'로 설정하여 다중 통화 다중계정(복수 화폐 복수 계정) 구조를 제안한다. BIP44의 구조를 따르는 모든 HD 지갑 구조는 하나의 트리 분기(브랜치)인 m/44'/* 만 사용하여 식별된다.<ref name=""> 안드레아스 M외 2인, 〈지갑-지갑의 모범 사례〉, 《Mastering Ethereum》, 제이펍, 2019-05-23 </ref>
+
[[BIP]]는 [[HD 지갑]] 트리의 구조에 대한 표준을 만듦으로써 이러한 잠재적인 복잡성을 관리하는 방법을 제공한다. BIP43은 강화된 첫 번째 자식 인덱스를 트리 구조의 '목적'을 나타내는 특수한 식별자로 사용하도록 제안한다. BIP43을 기반으로 한 HD 지갑은 트리의 구조와 나머지 레벨의 네임스페이스(namespace)를 식별하고, 지갑의 목적을 정의하는 인덱스 번호화 함께 트리 레벨 1분기만 사용해야 한다. 예를 들어, m/i'/*분기만을 사용하는 HD 지갑은 특정 목적을 나타내기 위한 것이고, 그 목적은 인덱스 번호 i로 식별한다.<ref name=" 마스터링이더리움">박성훈, 류길성, 강동욱, 《Mastering Ethereum》, J-Pub, 2019, p.106</ref>
  
== 배경 ==  
+
* [[HD 지갑]]
HD 지갑 트리 구조는 매우 유연하다. 이것의 반대 부분은 무한한 복잡성을 가능하게 한다. 각 확장된 키는 20억 개의 일반 자식과 20억 개의 강화된 가식으로 40억 개의 자식을 가지고 있다. 이 자식들은 각각 다른 40억 개 자식들을 가진다. 잠재적인 무한한 수의 생성과 함께 원하는 만큼 트리는 깊어질 있다. 따라서 이렇게 매우 큰 트리를 탐색하는 것은 꽤 까다롭다.<ref name=""></ref> BIP32만 해도 지갑이 어떻게 구현될 수 있는지에 대해 너무 많은 자유도를 제공한다. 따라서 이것이 BIP43이 호출하는 첫 번째 파생 인덱스 'purpose'가 후속 레벨에서 지갑 구조를 설명하는 BIP와 일치해야 한다는 규칙을 도입한 이유이다. <ref>〈[https://wiki.trezor.io/Cryptocurrency_standards#BIP43_-_Purpose_field_for_deterministic_wallets Cryptocurrency 표준]〉 , 《trezor WiKi》</ref>
+
[[HD 지갑]]은 단일 시드에서 많은 키를 쉽게 유도하기 위해 만들어졌다. HD 지갑은 [[비트코인]]의 BIP32 표준으로 정의되어 현재 가장 개선적인 지갑이라는 평가를 받고 있다. HD 지갑은 부모 키가 연속된 자식 키를 유도할 수 있고, 각각의 자식키는 손자 키를 유도할 수 있는 구조인 트리 구조로 파생된 키를 포함한다. 이러한 구조는 부모 키가 자식 키의 시퀀스를 유도할 수 있고, 각각의 자식은 다시 또 손자 키의 시퀀스를 유도할 수 있다. HD 지갑은 BIP32에서 제안되었고, BIP44에서 개선되었다. 기존의 암호화폐 지갑은 필요할 때마다 매번 새로 생성해야 해서 매우 번거롭고 불편했지만, HD 지갑을 사용하면 하나의 마스터 시드 키에서 다수의 지갑을 생성할 수 있어서 매우 편리하다. HD 지갑을 사용하는 암호화폐에는 [[카르다노]](에이다)와 한국의 [[모파스]](MoFAS) 등이 있다. {{자세히|HD 지갑}}
 +
 
 +
== 등장배경 ==  
 +
HD 지갑 트리 구조는 매우 유연하다. 뒤집어 말하면, 무한한 복잡성을 가능하게 한다는 뜻이다. 각 부모의 확장 키는 40억 개의 자식을 가질 수 있는데, 20억 개의 일반 자식과 20억 개의 강화된 자식들을 가지고 있다. 이 자식들은 각각 다른 40억 개 자식들을 가진다. 트리는 원하는 만큼 깊을 수 있으며 무한한 세대가 될 있기 때문에, 이와 같은 잠재력 때문에 매우 큰 트리를 탐색하는 일이 상당히 어려워질 수 있다.<ref name="마스터링이더리움"></ref> BIP32만 해도 지갑이 어떻게 구현될 수 있는지에 대해 너무 많은 자유도를 제공한다. 따라서 이것이 BIP43이 호출하는 첫 번째 파생 인덱스 'purpose'가 후속 레벨에서 지갑 구조를 설명하는 BIP와 일치해야 한다는 규칙을 도입한 이유이다.<ref>〈[https://wiki.trezor.io/Cryptocurrency_standards#BIP43_-_Purpose_field_for_deterministic_wallets Cryptocurrency 표준]〉 , 《트레저위키》</ref>
 +
 
 +
== 특징 ==
 +
BIP43은 BIP32, BIP41과 함께 바이텀 코인에서 다중통화, 다중주소, 다중키를 지원하여 현존하는 모든 자산에 대한 대응이 가능하다.
 +
또한 비트코인 지갑을 구현하는 경우 표준에 따라 백얼을 위한 연상기호(menmoric)로 인코딩된 시드를 사용하여 HD 지갑을 구축해야 한다.
  
== BIP44의 트리 레벨 구조 ==
+
BIP43의 특별한 응용프로그램으로 BIP44를 구현하는 HD 지갑을 보완하기위한 것으로 BIP47이 있다.
m / purpose' / coin_type' / account' / change / address_index
+
BIP32만으로도 지갑을 어떻게 사용할 있는지에 대한 너무 많은 자유를 제공한다. 이것이 BIP43이 첫번째 파생 지수라 불리는 규칙을 도입한 이유이다. 예를 들어, 만약 BIP39를 준수하는 지갑이m/44'/...파생 경로는 그 구조가 BIP44로 설명되어 있음을 암시한다.
* 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이다) 이전 레벨은 강화파생만 사용했지만 이 레벨은 비보안 환경에서 사용할 수 있도록 확장된 공개키를 트리의 계정 수준에서 내보낼 수 있게 하기 위해서 일반 파생을 사용한다. <ref name="책"></ref>
 
* level-5 (address_index, 사용 가능한 주소 인덱스) : HD 지갑에서 파생된 level-4의 자식이다.
 
M/44'/60'/0'/0/2 : 메인 이더리움 계정에 대한 세 번째 수신 공개키
 
M/44'/0'/3'/1/14 : 4번째 비트코인 계정의 15번째 주소 변경 공개키
 
m/44'/2'/0'/0/1 : 트랜잭션 서명을 위한 라이트코인 메인 계정의 두 번째 개인 키
 
  
== 여러 버전 ==
+
==활용==
* [[BIP32]] : [[HD 지갑]]일반적인 형식과 HD 지갑을 구축하는 방법을 설명한 문서
+
암호화폐 [[지갑]] 기술이 성숙해짐에 따라 광범위하게 상호운용할 수 있고, 사용하기 쉽고, 안전 하고, 유연한 지갑을 만들기 위한 일반적인 산업 표준이 등장했다. 또한 이러한 표준을 통해 지갑은 단일 [[니모닉]]에서 여러 개의 서로 다른 암호화폐에 대한 키를 파생시킬 수 있다. 이러한 일반적인 표준은 다음과 같다.
* [[BIP47]] : 페이먼트 코드
+
* BIP-39 기반 [[니모닉 코드 단어]]
* [[BIP63]] : 스텔스 주소
+
* BIP-32 기반 HD 지갑
* [[BIP70]] : SSL/TLS 통신을 이용하여 비트코인의 결제를 안전하게 함.<ref> 추천도서천권읽기, 〈[https://blog.naver.com/sd96210/221058971588 블록체인의 충격]〉, 《네이버 블로그》, 2017-07-25 </ref>
+
* BIP-43 기반 [[다목적]](multipurpose) HD 지갑 구조
 +
* BIP-44 기반 [[복수화폐]](multicurrency) 및 [[복수계정]](multiaccount) 지갑
 +
이러한 표준은 향후 개발로 변경되거나 폐기될 수도 있지만, 현재 대부분의 블록체인 플랫폼 과 암호화폐를 서로 열결해 주는 사실상의 기술적 지갑 표준으로 사용되고 있다.<ref>안드레아스 M, 안토노폴로스, 개빈 우드, 《마스터링 이더리움 스마트 컨트랙트 및 댑 구축하기》, 오 리얼리 제이펍, 2019-05-23</ref>
  
 
{{각주}}
 
{{각주}}
  
 
== 참고자료 ==
 
== 참고자료 ==
* 안드레아스 M외 2인, 〈지갑-지갑의 모범 사례〉, 《Mastering Ethereum》, 제이펍, 2019-05-23
+
* 사토시랩스 홈페이지 - https://satoshilabs.com/
* 〈[https://wiki.trezor.io/Cryptocurrency_standards#BIP43_-_Purpose_field_for_deterministic_wallets Cryptocurrency 표준]〉 , 《trezor WiKi》
+
* 박성훈, 류길성, 강동욱, 《Mastering Ethereum》, J-Pub, 2019, p.106
 +
* 〈[https://wiki.trezor.io/Cryptocurrency_standards#BIP43_-_Purpose_field_for_deterministic_wallets Cryptocurrency 표준]〉 , 《트레저위키》
  
 
== 같이 보기 ==
 
== 같이 보기 ==
 
* [[HD 지갑]]
 
* [[HD 지갑]]
 
* [[BIP32]]
 
* [[BIP32]]
* [[블록체인]]
+
* [[사토시랩스]]
  
 
{{블록체인 기술|검토 필요}}
 
{{블록체인 기술|검토 필요}}

2019년 8월 30일 (금) 00:39 기준 최신판

BIP43(Bitcoin Improvement Proposal 43)은 다목적(multipurpose) HD 지갑(Hierarchical Deterministic Wallet) 구조를 설명하는 일반적인 산업 표준이다.

개요[편집]

BIPHD 지갑 트리의 구조에 대한 표준을 만듦으로써 이러한 잠재적인 복잡성을 관리하는 방법을 제공한다. BIP43은 강화된 첫 번째 자식 인덱스를 트리 구조의 '목적'을 나타내는 특수한 식별자로 사용하도록 제안한다. BIP43을 기반으로 한 HD 지갑은 트리의 구조와 나머지 레벨의 네임스페이스(namespace)를 식별하고, 지갑의 목적을 정의하는 인덱스 번호화 함께 트리 레벨 1분기만 사용해야 한다. 예를 들어, m/i'/*분기만을 사용하는 HD 지갑은 특정 목적을 나타내기 위한 것이고, 그 목적은 인덱스 번호 i로 식별한다.[1]

HD 지갑은 단일 시드에서 많은 키를 쉽게 유도하기 위해 만들어졌다. HD 지갑은 비트코인의 BIP32 표준으로 정의되어 현재 가장 개선적인 지갑이라는 평가를 받고 있다. HD 지갑은 부모 키가 연속된 자식 키를 유도할 수 있고, 각각의 자식키는 손자 키를 유도할 수 있는 구조인 트리 구조로 파생된 키를 포함한다. 이러한 구조는 부모 키가 자식 키의 시퀀스를 유도할 수 있고, 각각의 자식은 다시 또 손자 키의 시퀀스를 유도할 수 있다. HD 지갑은 BIP32에서 제안되었고, BIP44에서 개선되었다. 기존의 암호화폐 지갑은 필요할 때마다 매번 새로 생성해야 해서 매우 번거롭고 불편했지만, HD 지갑을 사용하면 하나의 마스터 시드 키에서 다수의 지갑을 생성할 수 있어서 매우 편리하다. HD 지갑을 사용하는 암호화폐에는 카르다노(에이다)와 한국의 모파스(MoFAS) 등이 있다. 가기.png HD 지갑에 대해 자세히 보기

등장배경[편집]

HD 지갑 트리 구조는 매우 유연하다. 뒤집어 말하면, 무한한 복잡성을 가능하게 한다는 뜻이다. 각 부모의 확장 키는 40억 개의 자식을 가질 수 있는데, 20억 개의 일반 자식과 20억 개의 강화된 자식들을 가지고 있다. 이 자식들은 각각 다른 40억 개 자식들을 가진다. 트리는 원하는 만큼 깊을 수 있으며 무한한 세대가 될 수 있기 때문에, 이와 같은 잠재력 때문에 매우 큰 트리를 탐색하는 일이 상당히 어려워질 수 있다.[1] BIP32만 해도 지갑이 어떻게 구현될 수 있는지에 대해 너무 많은 자유도를 제공한다. 따라서 이것이 BIP43이 호출하는 첫 번째 파생 인덱스 'purpose'가 후속 레벨에서 지갑 구조를 설명하는 BIP와 일치해야 한다는 규칙을 도입한 이유이다.[2]

특징[편집]

BIP43은 BIP32, BIP41과 함께 바이텀 코인에서 다중통화, 다중주소, 다중키를 지원하여 현존하는 모든 자산에 대한 대응이 가능하다. 또한 비트코인 지갑을 구현하는 경우 표준에 따라 백얼을 위한 연상기호(menmoric)로 인코딩된 시드를 사용하여 HD 지갑을 구축해야 한다.

BIP43의 특별한 응용프로그램으로 BIP44를 구현하는 HD 지갑을 보완하기위한 것으로 BIP47이 있다. BIP32만으로도 지갑을 어떻게 사용할 수 있는지에 대한 너무 많은 자유를 제공한다. 이것이 BIP43이 첫번째 파생 지수라 불리는 규칙을 도입한 이유이다. 예를 들어, 만약 BIP39를 준수하는 지갑이m/44'/...파생 경로는 그 구조가 BIP44로 설명되어 있음을 암시한다.

활용[편집]

암호화폐 지갑 기술이 성숙해짐에 따라 광범위하게 상호운용할 수 있고, 사용하기 쉽고, 안전 하고, 유연한 지갑을 만들기 위한 일반적인 산업 표준이 등장했다. 또한 이러한 표준을 통해 지갑은 단일 니모닉에서 여러 개의 서로 다른 암호화폐에 대한 키를 파생시킬 수 있다. 이러한 일반적인 표준은 다음과 같다.

이러한 표준은 향후 개발로 변경되거나 폐기될 수도 있지만, 현재 대부분의 블록체인 플랫폼 과 암호화폐를 서로 열결해 주는 사실상의 기술적 지갑 표준으로 사용되고 있다.[3]

각주[편집]

  1. 1.0 1.1 박성훈, 류길성, 강동욱, 《Mastering Ethereum》, J-Pub, 2019, p.106
  2. Cryptocurrency 표준〉 , 《트레저위키》
  3. 안드레아스 M, 안토노폴로스, 개빈 우드, 《마스터링 이더리움 스마트 컨트랙트 및 댑 구축하기》, 오 리얼리 제이펍, 2019-05-23

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 BIP43 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.