HD Wallet 생성을 위한 핵심 원리 정리
참고자료 : https://huangwenwei.com/blogs/bip32-bip39-and-hd-wallet 비트코인 지갑 참고자료(Hardened Keys) : https://wikidocs.net/14538 HD Wallet 상용화 사이트 : https://docs.kaleido.io/kaleido-services/hdwallet/
블록체인 관련 화제가 계속해서 뜨거워지면서 많은 사람들이 암호화폐 지갑에 대해 알고싶어 한다. 지갑은 일반 사용자가 암호화폐 시스템과 상호 작용할 수 있는 방법입니다. 모바일 지갑, 데스크톱 지갑, 하드웨어 지갑, 웹 등 다양한 형태의 지갑이 존재한다. 지갑과 종이 지갑 등 지갑을 통해 국경과 제한 없이 디지털 자산을 전송할 수 있습니다. 개발자 입장에서 지갑의 역할은 사용자의 개인키를 관리하고 개인키 서명 트랜잭션을 통해 블록체인 상에서 사용자의 디지털 화폐를 관리하는 것입니다.
비트코인 주소 + 개인키 = 비트코인 지갑
지갑은 키의 관련 여부에 따라 비결정적 지갑 과 결정적 지갑 의 두 가지 유형으로 나눌 수 있습니다.
비결정론적 지갑에 속하는 비트코인 코어에서 생성한 키 쌍 사이에는 관계가 없습니다. 하나. Deterministic Wallet은 BIP32 (Bitcoin Improvement Proposal 32) 표준을 기반으로 구현되었으며 , 공통된 seed를 통해 n개의 여러 개인키를 유지합니다. BIP32 및 BIP44 표준을 지원하는 지갑에서는 모든 개인 키를 가져오기 위해 니모닉만 가져옵니다.
주소 재사용 방지 원칙: 주소 재사용 방지 옹호 디지털 화폐 주소가 이미 이전된 경우 개인 키 유출 가능성이 있습니다.
상술한 바와 같이 Deterministic Wallet은 Seed를 통해 많은 키를 도출할 수 있으며, BIP32 표준을 기반으로 구현되어 있으며, Seed는 마스터키(Master Key), 마스터키는 하위키(Child Key), 하위 키 손자 키(손자 키) 등을 추론합니다.
BIP32 표준의 시드는 임의의 16바이트 16진수 문자열입니다. 영어 단어를 니모닉 단어로 사용할 수 있다면 의심할 여지 없이 시드 백업 및 지갑 복구의 어려움을 줄일 수 있을 것입니다. PBKDF2 및 HMAC를 통과합니다. SHA512 함수는 BIP32 시드로 임의의 시드를 생성합니다.