Ako funguje vytvorenie X-slovného SEEDu a čo vlastne robí Hierarchicko-Deterministická peňaženka?
HD peňaženky (Hierarchické Deterministické peňaženky) majú niekoľko veľmi zaujímavých vlastností:
Jednotný zdroj a záloha
- Jeden seedZáloha peňaženky, najčastejšie vo forme 12 alebo 24 slov. Pozri tiež HD peňaženka. More = celá peňaženka: Všetky súkromné kľúče a adresy sa generujú z jedného „seed“ – obvykle 12 alebo 24 slov podľa štandardu BIP-39. Stačí si teda zálohovať tento seedZáloha peňaženky, najčastejšie vo forme 12 alebo 24 slov. Pozri tiež HD peňaženka. More a v prípade straty alebo poškodenia zariadenia dokážete obnoviť celú peňaženku.
learnmeabitcoin.com
Hierarchická štruktúra
- Stromová štruktúra kľúčov: HD peňaženky využívajú hierarchickú štruktúru (štandard BIP-32), kde z hlavného (master) kľúča sa odvodzujú „deti“ a ďalej ich potomky. To umožňuje organizovať kľúče do rôznych „účtov“ alebo kategórií – napríklad oddeliť osobné transakcie od obchodných. learnmeabitcoin.com
Bezpečné generovanie verejných kľúčov
- Oddelenie verejných a súkromných kľúčov: Z master kľúča možno odvodzovať nielen súkromné, ale aj rozšírené verejné kľúče (XPUB). To znamená, že môžete napríklad zdieľať XPUB so serverom na generovanie nových adries bez rizika, že by bol kompromitovaný váš master súkromný kľúč. learnmeabitcoin.com
cointelegraph.com
Deterministický proces
- Stabilita a opakovateľnosť: Pri použití toho istého seedu a derivačnej cesty (napríklad m/44’/0’/0’/0/x pre Bitcoin) dostanete vždy rovnaké výsledné kľúče. To zaručuje, že ak stratíte zariadenie, obnovíte prístup k svojim prostriedkom presne tak, ako predtým.
dev.to
Ako sa generuje seed
- Entropia a BIP-39: SeedZáloha peňaženky, najčastejšie vo forme 12 alebo 24 slov. Pozri tiež HD peňaženka. More sa vytvára pomocou náhodnej entropie (napr. 128 alebo 256 bitov). Táto entropia je následne zakódovaná do ľahko zapamätateľného zoznamu slov z vopred definovaného zoznamu (2048 slov).
Disclaimer: tieto výpočty sú iba orientačné a slúžia iba na ukážku. Nepoužívajte ich na vytváranie SEEDU!
V tejto ukážke budeme pracovať s 12 slovným seedom.
Peňaženka najprv vygeneruje RANDOM 128 bitové číslo, teda 128 núl a jednotiek v náhodnom poradí.
Teoreticky sa to dá vygenorovať a vypočítať aj manuálne, napr. hádzaním mincou.
Potom tento reťazec rozdelíme po 11 bitoch. 11 bitov nám po prevode do decimálnej sústavy dá nejaké číslo v rozsahu od 0 do 2047. Čo je spolu 2048 možných čísel.
Binárne (11 bitov, posledný riadok len 7 bitov) | Decimálne | Slovo |
---|
A takýmto spôsobom sme vypočítali decimálnu hodnotu z binárneho zápisu:
Stále však potrebujeme doplniť chýbajúce 4 bity do posledného slova.
Keďže pre 12 slov potrebujeme 12×11 bitov, čo sa rovná 132, ale my máme iba 128 bitový reťazec.
Doplníme prvé 4 bity, ktoré dostaneme, keď znovu zahashujeme náš 128 bitový reťazec.
Výpočet: $$ \text{SHA-256} = \left( \text{SHA-256}(\text{entropy}) \right) $$
Výpočet: $$ \text{checksum} = \text{first 4 bits} \left( \text{SHA-256}(\text{entropy}) \right) $$
Checksum:
Derivačná cesta (WIP)
m / purpose‘ / coin_type‘ / account‘ / change / address_index
m (master key):