486 / 691SEED-GEN

Seed Generation

Generowanie seedu portfela

Seed Generation pozyskuje nieprzewidywalne wejście i stosuje ściśle określony proces portfela. Poprawna liczba słów lub suma kontrolna nie dowodzą same w sobie jakości losowości ani poufności.

W BIP39 początkowa entropia staje się frazą; fraza z opcjonalną passphrase tworzy następnie binarny seed. BIP32 wyprowadza z niego klucz główny i chain code. Te wartości i kroki nie są zamienne; inne formaty kopii mogą działać inaczej.

BIP39 służy do czytelnego zapisu losowości wygenerowanej komputerowo, a nie zdań wymyślonych przez człowieka. Wybór znanego cytatu lub własnej sekwencji słów nie jest więc odpowiednikiem generowania entropii według określonego procesu. [BIP39 — Mnemonic generation and seed conversion]

Linux getrandom() domyślnie czeka na inicjalizację źródła. GRND_NONBLOCK może zamiast czekania zwrócić EAGAIN. Implementacja musi uwzględniać stan i zwróconą długość; błąd odczytu nie może uchodzić za poprawnie uzyskane wejście. [Linux getrandom — Initialization and return values]

Web Crypto getRandomValues() dostarcza kryptograficznie bezpieczne bajty do tablicy liczb całkowitych; powyżej 65536 bajtów zgłasza QuotaExceededError. Zgodność z interfejsem nie weryfikuje sama załadowanego kodu, dalszego przetwarzania ani ochrony frazy przed ujawnieniem. [W3C Web Crypto — getRandomValues contract]

BIP39 dodaje 4 bity kontrolne do 128 bitów wejścia, tworząc 12 słów; do 256 bitów dodaje 8 bitów, tworząc 24 słowa. Te bity pochodzą z SHA256, a nie z dodatkowej niezależnej entropii. [BIP39 — Mnemonic generation and seed conversion]

BIP39 wyprowadza 512-bitowy seed przez PBKDF2-HMAC-SHA512 z 2048 iteracjami. Używa frazy i soli z dosłownego tekstu mnemonic oraz passphrase, obu w UTF-8 NFKD. Brak passphrase oznacza pusty ciąg; długość wyniku nie dowodzi 512 bitów entropii wejścia. [BIP39 — Mnemonic generation and seed conversion]

BIP32 przetwarza seed przez HMAC-SHA512 z kluczem Bitcoin seed i dzieli wynik na główny klucz prywatny oraz chain code. Wartość zerowa lub poza dozwolonym zakresem jest nieprawidłowa; cały seed nie jest bezpośrednio jednym kluczem prywatnym. [BIP32 — Master key generation]

BIP39 publikuje wektory z entropią, frazą i seedem, w tym testową passphrase TREZOR. Zgodność dowodzi konwersji danego wejścia, nie nieprzewidywalności działającego generatora. Publiczne wejście testowe nie może być tajną kopią dla rzeczywistych środków. [BIP39 — Mnemonic generation and seed conversion]

NIST SP 800-90C łączy źródła entropii i mechanizmy generowania. Ocena portfela musi więc obejmować konkretną wersję, obsługę błędów i przekazywanie wartości do kolejnych etapów. Dowód dotyczący jednej części nie potwierdza bezpieczeństwa całego procesu ani późniejszego przechowywania kopii. [NIST SP 800-90C — Random bit generator constructions]

Pełniejszy obraz uzyskasz, czytając to hasło razem z Random Number Generator, BIP 39, HD Wallet, Seed Phrase. Do tego hasła prowadzą również odsyłacze z Random Number Generator, CSPRNG, Deterministic RNG, Entropy Mixing.

DOC · 001BIP39 — Mnemonic generation and seed conversionSpecyfikacja ↗DOC · 002Linux getrandom — Initialization and return valuesDokumentacja ↗DOC · 003W3C Web Crypto — getRandomValues contractSpecyfikacja ↗DOC · 004BIP32 — Master key generationSpecyfikacja ↗DOC · 005NIST SP 800-90C — Random bit generator constructionsSpecyfikacja ↗
Najpierw źródła · To nie jest porada inwestycyjna