Сийд фраза
Сийд фраза биткойн са 12 до 24 думи по BIP 39, с ентропия и контролна сума. Вижте как думите стават сийд и какво прави допълнителната парола.
От Dimitar Zurnov · Обновено на 4 ноември 2026
Адаптирано от Learn Me a Bitcoin на Greg Walker.
Сийд фраза, наричана още мнемонична фраза или мнемоника, е списък от 12 до 24 думи, взети от фиксиран списък от 2048. Думите кодират голямо случайно число, наречено ентропия, плюс къса контролна сума. Key stretching (бавно хеширане) превръща фразата в 64-байтов сийд, а от сийда тръгва HD портфейлът. Правилата са описани в BIP 39.
Фразата е резервното копие на целия портфейл. Който я има, може да възстанови всеки ключ, затова я запишете, пазете офлайн и никога не я въвеждайте в уебсайт.
Защо портфейлите ползват думи?
Портфейлът се нуждае от случайно число от 128 до 256 бита, което хората не могат да копират надеждно. Записано в шестнадесетичен вид, 128 бита са 32 знака без проверка за грешки. Записани като 12 думи, същите битове са лесни за четене на глас и за писане на ръка.
Списъкът с думи е проектиран за това. Той има 2048 английски думи, като никои две думи нямат еднакви първи четири букви, така че телефонът може да допълни думата, след като напишете четири букви. Грешката при писане често дава дума, която не е в списъка, а контролната сума хваща повечето от останалите.
Списъци има и на други езици, например японски, испански или чешки. Английският е този, който портфейлите ползват най-често, и примерите в тази страница са на английски.
Как се създава мнемоника?
Създаването на фраза има три стъпки.
1. Създайте ентропията
Генерирайте между 128 и 256 бита случайност, на стъпки от 32 бита. Ползвайте сигурен източник на случайност, например генератора на операционната система. Общата функция за случайни числа в повечето езици за програмиране е бърза, но не е сигурна, затова не я ползвайте за ключове.
2. Добавете контролната сума и разделете на думи
Хеширайте ентропията веднъж с SHA-256. Вземете първите битове от хеша като контролна сума, по един бит на всеки 32 бита ентропия. Добавете контролната сума към ентропията, после нарежете резултата на групи по 11 бита. Всяка група е число от 0 до 2047, което избира една дума от списъка.
| Ентропия | Контролна сума | Общо битове | Думи |
|---|---|---|---|
| 128 бита | 4 бита | 132 | 12 |
| 160 бита | 5 бита | 165 | 15 |
| 192 бита | 6 бита | 198 | 18 |
| 224 бита | 7 бита | 231 | 21 |
| 256 бита | 8 бита | 264 | 24 |
И 12, и 24 думи са добри. Фраза от 24 думи има повече ентропия, а фраза от 12 думи е по-лесна за пазене.
3. Превърнете думите в сийд
Прекарайте фразата през PBKDF2, който е описан по-долу. Резултатът е 64 байта, а това е сийдът на портфейла.
Как изглежда фраза от 12 думи?
Примерът ползва официалния тестов вектор на BIP 39 с ентропия от 128 нулеви бита. Неговият SHA-256 започва с 37, което е 0011 в двоичен вид, така че контролната сума е 0011. Тези 132 бита се делят на дванайсет групи по 11 бита. Всяка група става една дума.
Фразата е abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about. Всеки може да я намери, затова тя никога не трябва да държи монети. Ползвайте я само за проверка на кода си.
Как се създава сийдът?
Сийдът идва от PBKDF2 с HMAC-SHA512, изпълнен за 2048 итерации, с 64-байтов изход. Фразата е входът (password в PBKDF2). Солта е фиксираният текст mnemonic, плюс незадължителната допълнителна парола. И двете стойности се нормализират с NFKD, преди да се ползват.
PBKDF2 е бавен нарочно. Всеки опит за фраза струва 2048 итерации на HMAC, което прави големите търсения скъпи.
С празна допълнителна парола сийдът на примерната фраза е 5eb00bbddcf069084889a8ab9155568165f5c453ccb85e70811aaed6f6da5fc19a5ac40b389cd370d086206dec8aa6c43daea6690f20ad3d8d48b2d2ce9e38e4.
Какво прави допълнителната парола?
Допълнителната парола е незадължителна дума, която понякога се нарича 25-ата дума. Тя не е част от фразата. Добавя се към солта, така че друга допълнителна парола дава напълно различен сийд. Същите 12 думи с допълнителната парола TREZOR дават c55257c360c07c72029aebc1b53c05ed0362ada38ead3e3e9efa3708e53495531f09a6987599d18264c1e1c92f2cf141630c7a3c4ab7c81b2f001698e7463b04, който не прилича на сийда по-горе.
Това има три последствия.
- Допълнителната парола не е PIN. Без нея фразата сама отваря портфейла.
- Грешната допълнителна парола не дава грешка. Тя отваря празен портфейл, което може да изглежда като изгубени средства.
- Запазете допълнителната парола отделно от думите. Ако я загубите, думите няма да възстановят монетите.
Как да проверите, че фразата е валидна?
Фразата носи собствена контролна сума, така че можете да я проверите, преди да разчитате на нея. Вземете индекса на всяка дума, свържете 11-битовите групи в един низ от битове и отделете контролната сума в края. Хеширайте частта с ентропията със SHA-256, вземете същия брой битове и ги сравнете.
Случаен списък от 12 думи минава проверката в около един от 16 случая. Фраза от 24 думи има 8-битова контролна сума, така че само около един от 256 случайни списъка минава.
Този Python код строи фразата от ентропия и ползва английския списък с думи от BIP 39, запазен като english.txt. Нуждае се само от стандартната библиотека.
import hashlib
def mnemonic_from_entropy(entropy: bytes, wordlist: list[str]) -> str:
cs_len = len(entropy) * 8 // 32 # checksum bits
checksum = hashlib.sha256(entropy).digest() # one SHA-256 pass
bits = bin(int.from_bytes(entropy, "big"))[2:].zfill(len(entropy) * 8)
bits += bin(int.from_bytes(checksum, "big"))[2:].zfill(256)[:cs_len]
return " ".join(wordlist[int(bits[i:i + 11], 2)] for i in range(0, len(bits), 11))
words = [w.strip() for w in open("english.txt")]
print(mnemonic_from_entropy(bytes(16), words)) # ... about
Сийдът идва от още едно извикване, hashlib.pbkdf2_hmac("sha512", phrase.encode(), ("mnemonic" + passphrase).encode(), 2048). Кодът пропуска NFKD нормализацията, която изисква BIP 39. За английските думи това не променя нищо, но библиотеката я прави за всеки език. За истински портфейли ползвайте библиотека и първо проверете всеки код с тестовите вектори.
Как да пазите сийд фразата си?
- Запишете думите на хартия и пазете листа офлайн, на повече от едно място.
- Никога не пазете фразата в снимка, облачна бележка, имейл или мениджър на пароли, от който не можете да я възстановите.
- Никога не въвеждайте фразата в уебсайт и никога не ползвайте фраза, която уебсайт е генерирал за вас. Сайтът може да запази копие.
- Проверете, че портфейлът ви може да се възстанови от фразата, с малка сума, преди да местите големи суми.
Какво да запомните за сийд фразите?
- Мнемониката е 12 до 24 думи, които кодират от 128 до 256 бита ентропия плюс контролна сума.
- PBKDF2 превръща фразата и незадължителната допълнителна парола в 64-байтов сийд.
- Сийдът е коренът на портфейла, така че фразата е най-чувствителното резервно копие, което държите.
Следващо прочетете разширени ключове, за да видите как сийдът става главен ключ, и пътища за деривация, за да видите как портфейлът намира всеки адрес от него.
В този раздел: Ключове и адреси
Целият курс „Биткойн от нулата“
Нещо не изглежда наред? Кажете ни