Moderne lommebøker sikkerhetskopierer én gjenopprettingsfrase og utleder hver nøkkel fra den. Flere BIP-er definerer hvordan.
BIP39: ord til seed
Lommeboken genererer 128 til 256 bit tilfeldig entropi og legger til en sjekksum. Resultatet deles i 11-bit biter, hver kartlagt til ett av 2 048 ord, som gir 12 til 24 ord. Ordene, pluss en valgfri passordfrase, går gjennom PBKDF2-HMAC-SHA512 med 2 048 iterasjoner og salt "mnemonic"+passphrase, og produserer en 512-bit seed. En annen passordfrase gir en helt annen lommebok.
BIP32: nøkkeltreet
HMAC-SHA512 av seedet gir en master-privat nøkkel og en 32-byte chain code. Fra hvilken som helst nøkkel kan et barn utledes etter indeks:
- Normale barn (indeks under 231) kan utledes fra foreldre-offentlig nøkkel, så en utvidet offentlig nøkkel (xpub) kan generere alle mottaksadresser uten noen privat nøkkel. Ideelt for watch-only-lommebøker og butikker.
- Herdede barn (indeks 231 og opp, skrevet med ' eller h) trenger foreldre-privatnøkkelen. De stopper at en lekket barne-privatnøkkel pluss xpuben eksponerer forelderen.
BIP44/49/84/86: standardstier
Stier har formen m / purpose' / coin' / account' / change / index.
m/44'/0'/0'/0/0: første legacy (1…)-adresse.m/49'/…: innkapslet SegWit (3…).m/84'/…: native SegWit (bc1q…).m/86'/…: enkeltnøkkel-Taproot (bc1p…).
Mynttype 0' er Bitcoin og 1' er testnet. Change 0 er for mottak og 1 for vekslepenger. BIP44 definerer også en gap-grense på 20: lommebøker stopper skanning etter 20 ubrukte adresser på rad.
Hvor det svikter
En gjenopprettingsfrase sier ikke hvilke stier eller scripttyper som ble brukt. Å gjenopprette i en annen lommebok kan vise null saldo til den skanner riktig sti. Output-deskriptorer løser dette ved å skrive ned hele oppskriften.
Sikkerhetsmerknad
Hvem som helst med seed-ordene dine, og passordfrase hvis brukt, har myntene dine. Aldri skriv dem inn på et nettsted.