Seed Phrase? Pagbuo at Gamit ng Mnemonic Code sa HD Wallets
Seed Phrase? Pagbuo at Gamit ng Mnemonic Code sa HD Wallets

Seed Phrase? Pagbuo at Gamit ng Mnemonic Code sa HD Wallets

Ang paggamit ng mnemonic code ay iminungkahi sa BIP-0039 at naging standard na sa mga hierarchical deterministic (HD) wallets. Ito ay naglalayong mapadali ang pagtatago ng seed ng iyong wallet sa paraang mas kayang tandaan ng tao. Kumpara sa pagsulat at pagkabisado ng mahabang binary o hexadecimal na anyo ng seed, di hamak na mas madali ang paggamit ng mga pamilyar na salita. Kahit na sabihin mong mahirap pa rin kabisaduhin ang grupo ng 12-24 na salita.

Madalas na tinatawag itong seed phrase. Pero ang mnemonic code ay nagsisilbing representasyon ng entropy na sya pang pagmumulan ng seed. Paano malalaman ang mnemonic code?

  • Gamit ang CSPRNG ng wallet, kukuha ng entropy ENT na mula 128-256 bits ang haba, na multiple ng 32 bits.
  • Ang inisyal na halaga ay padadaanin sa SHA-256 para makuha ang checksum CS. Ang checksum ay ang ENT/32 bits sa unahan ng hashed value.
  • Iduduktong ang CS sa ENT. (Magreresulta ito sa dami ng bits na divisible ng 11)
  • Tapos ay hahatiin ENT||CS sa tig-11 bits. Ang dami ng tig-11 bits na lupon ay ang dami ng salita sa mnemonic sentence MS. At ang halaga ng bawat 11-bits ay representasyon ng isa sa 2,048 na mga salitang naka index mula 0 hanggang 2047.

Dami ng bits ng ENT at CS, at dami ng salita sa MS

ENT, bitsCS, bitsENT+CSMS, words
128413212
160516515
192619818
224723121
256826424

Makikita rito ang English word list na rekomendasyon ng BIP-0039: https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

Mapapansin mo siguro na sa mga wallets madalas gamitin ay 12 o 24 na salita.

PBKDF2 – Password-based Key Derivation Function 2 – ito ang gamit na paraan upang mabuo ang seed mula sa mnemonic codes. Ang konsepto ng PBKDF2 ay:

DK = PBKDF2 (P, S, c, HMAC, dkLen)

Kung saan:
DK = derived key
P = password
S = salt (wag ikalito sa seed ha)
c = iteration count
HMAC = hash-based message authentication code
dkLen = derived key length

Pero tandaan na ang DK na tinutukoy natin sa operasyong ito ng wallet ay ang magiging master seed ng wallet. Ang iba pang sangkap:
DK = master seed
P = mnemonic sentence/code na nabuo
S = “mnemonic” + passphrase (optional)
c = 2048 (ang dami!)
HMAC = HMAC-SHA512
dkLen = 512 bits

Kapag nakuha na sa wakas ang master seed, susundin lang ang nabanggit na paraan sa taas para makuha ang master secret key at master chain code, atbp. child keys.

Ang salt ay maaaring maiba dahil sa passphrase. May mga wallet na nagbibigay ng ganitong opsyon. Mas lalo pang magdadagdag ng seguridad ito. Kahit pa sa napakaliit na tsansang parehas ang mnemonic code na nakuha, kapag naglagay ka ng passphrase, ibang halaga ang kalalabasan ng master seed! At kapag may nakakita ng mnemonic code mo, hindi rin sila makakapag back-up ng wallet na makikita at makukuha ang Bitcoin mo kung hindi nila alam ang passphrase. Kasi nga, ibang set ng keys ang mabubuo nila.

Hiwalay din ang pagbuo ng entropy sa paggawa ng seed. Kaya maaari itong maiba sa bawat wallet. Subalit ang pagkakaparehas ng deribasyon mula mnemonic hanggang seed ay magbibigay ng compatibility sa mga iba-ibang wallets, basta sumusunod lang sila sa CKD function na nabanggit sa BIP-0032. Pero kailangan alam mo ang index na ginamit!


Kitakits sa ika-10.

Mag-iwan ng Tugon

Ang iyong email address ay hindi ipa-publish. Ang mga kinakailangang mga field ay markado ng *