BIP85는 BIP 32 비공개 루트에서 엔트로피를 결정적으로 파생하는 애플리케이션 명세입니다. 대상 지갑에 마스터 루트를 전달하지 않고 자식을 재현할 수 있으며, 백업을 여러 지분으로 나누는 방식은 아닙니다.
입력은 임의의 텍스트가 아니라 BIP 32 확장 비공개 루트입니다. BIP 39는 먼저 엔트로피를 문구로 인코딩하고 그 문구와 passphrase로 루트에 쓸 시드를 만듭니다. BIP85는 이 과정을 거꾸로 돌리지 않습니다. 루트에서 원래 문구를 복구하는 대신 애플리케이션별로 분리된 새 엔트로피를 만듭니다. [BIP 85 — Deterministic Entropy From BIP32 Keychains] [BIP 32 — Hierarchical Deterministic Wallets] [BIP 39 — Mnemonic code for generating deterministic keys]
모든 파생 단계는 hardened입니다. 얻어진 32바이트 개인 키 k를 메시지로, bip-entropy-from-k를 키로 HMAC-SHA512를 적용하면 64바이트 결과가 나옵니다. 공개 xpub만으로는 부족합니다. 이 변환은 결과 엔트로피와 키를 분리하며 같은 키를 서명에도 쓰라는 뜻은 아닙니다. [BIP 85 — Deterministic Entropy From BIP32 Keychains] [BIP 32 — Hierarchical Deterministic Wallets]
경로 m/83696968'/39'/0'/12'/0'는 BIP85, BIP 39 애플리케이션, 영어 단어 목록, 12단어와 인덱스 0을 선택합니다. 인덱스 1은 다른 자식을 만듭니다. 체코어 목록 코드는 이 페이지의 언어와 관계없이 8'입니다. 언어나 단어 수를 바꾸면 경로가 달라지며 같은 문구의 표시만 바뀌는 것이 아닙니다. [BIP 85 — Deterministic Entropy From BIP32 Keychains]
12단어에는 결과의 앞 128비트, 24단어에는 앞 256비트를 사용하고 BIP 39가 체크섬과 단어를 추가합니다. 이후 시드를 만드는 것은 별도 단계입니다. BIP85 자체는 스크립트, 주소 경로나 지갑 이력을 정하지 않습니다. 출력이 길어져도 약한 원래 비밀의 불확실성은 늘지 않습니다. [BIP 85 — Deterministic Entropy From BIP32 Keychains] [BIP 39 — Mnemonic code for generating deterministic keys]
XPRV 애플리케이션은 m/83696968'/32'/0'를 사용합니다. 앞 32바이트는 chain code, 뒤 32바이트는 개인 키로, BIP 32 루트 생성과 반대 순서입니다. 결과 스칼라가 유효하지 않으면 오류를 내야 하며 사용자가 다음 인덱스를 선택합니다. HEX와 비밀번호에는 다른 애플리케이션 및 형식 규칙이 있습니다. [BIP 85 — Deterministic Entropy From BIP32 Keychains] [BIP 32 — Hierarchical Deterministic Wallets]
올바른 구현에서는 자식으로부터 부모나 형제를 계산해 얻는 것이 현실적으로 불가능합니다. 마스터 루트와 파생 맥락을 확보한 사람은 자식을 재현할 수 있고, 루트를 잃으면 별도 백업이 없는 자식이 위험해집니다. 연결된 지갑으로 자식을 내보내면 유출 범위는 줄지만 침해된 마스터 루트가 복구되지는 않습니다. [BIP 85 — Deterministic Entropy From BIP32 Keychains] [COLDCARD — Export Deterministic Entropy (BIP-85)]
부모 BIP 39 문구의 passphrase는 입력 루트와 모든 자식을 바꿉니다. 대상 지갑에서 파생 문구에 추가한 passphrase는 해당 지갑의 시드를 바꾸며 BIP85는 이를 백업하지 않습니다. 복구에는 정확한 부모 맥락, 애플리케이션, 형식, 단어 목록, 길이와 인덱스, 그리고 사용했다면 대상 passphrase도 필요합니다. [BIP 39 — Mnemonic code for generating deterministic keys] [COLDCARD — Export Deterministic Entropy (BIP-85)]
COLDCARD 문서는 같은 부모, 형식과 인덱스로 재현하는 방법과 BIP 39, WIF, XPRV, HEX 내보내기를 설명합니다. BIP85 지원이 모든 애플리케이션 지원을 뜻하지는 않습니다. 백업에 의존하기 전에 자식과 대상 지갑 주소의 재현을 확인하고 필요한 매개변수를 기록하며 공개 테스트 벡터로 해당 구현을 검증해야 합니다. [COLDCARD — Export Deterministic Entropy (BIP-85)] [BIP 85 — Deterministic Entropy From BIP32 Keychains]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 HD Wallet, BIP 39, BIP39 passphrase, Derivation Path, Hardware Wallet. 다음 항목에서도 이 글을 참조합니다 Duress Wallet.