Zelcore
Z
Zelcore TeamMulti-Asset Crypto Wallet & Web3 Ecosystem

Сид-фрази: як вони працюють, як їх зберігати та що з їхньою допомогою неможливо відновити

12 хв читання
Сид-фрази: головний ключ до всіх ваших облікових записів

Уявіть собі один головний ключ, який відмикає всі двері в будівлі: вхідні двері, офіс, сейф. А тепер уявіть, що цей ключ неможливо замінити. Жоден слюсар не зможе зробити його копію, а в керівника будівлі немає запасного. У криптовалюті такою є сид-фраза. Загубите її — втратите все, що вона захищає. Дасте її комусь іншому — ця людина отримає контроль над усім.

Цей посібник охоплює всю тему в одному місці: що насправді закодовано у 12 або 24 словах, як із них утворюються ключі для десятків блокчейнів, як їх зберігати, що можна й не можна відновити за їхньою допомогою, а також які проблеми можуть виникнути саме під час відновлення. Якщо ви прочитаєте лише одну статтю про безпеку гаманця, нехай це буде вона.

Простими словами

Сид-фраза (її також називають мнемонічною фразою або фразою відновлення) — це список із 12 або 24 звичайних англійських слів, наприклад correct horse battery staple. Разом вони кодують головний секрет вашого криптогаманця. Це не пароль, який ви придумали самі. Це зручне для людини подання випадкового числа, настільки великого, що його неможливо вгадати обчислювальними методами.

Коли ви відновлюєте гаманець на новому пристрої, вводите слова в потрібному порядку — і повертаються всі адреси та приватні ключі, які цей гаманець коли-небудь створював. Не потрібно відновлювати обліковий запис, надсилати запит у службу підтримки чи чекати. У цьому й полягає сенс сид-фрази, але водночас і весь ризик.

Що насправді являє собою сид-фраза

Процес стандартизовано в BIP-39 (пропозиції щодо вдосконалення Bitcoin № 39), де визначено, як програмне забезпечення гаманця перетворює випадкові дані на список слів.

  1. Гаманець генерує випадкове число, яке називають ентропією: 128 бітів для фрази з 12 слів або 256 бітів для фрази з 24 слів. Загалом визначено п’ять довжин: 128 бітів — 12 слів, 160 — 15, 192 — 18, 224 — 21, 256 — 24.
  2. До числа додається коротка контрольна сума. Гаманець обчислює хеш ентропії за допомогою SHA-256 і бере перші кілька бітів результату: 4 біти для ентропії у 128 бітів або 8 бітів для ентропії у 256 бітів.
  3. Ентропію разом із контрольною сумою ділять на фрагменти по 11 бітів. Кожен фрагмент є індексом у фіксованому списку з 2,048 англійських слів, тож кожне слово кодує рівно 11 бітів. Саме тому сид-фрази складаються зі слів зі словника, а не з довільних рядків символів.
  4. Результат — 12 слів для ентропії у 128 бітів або 24 слова для ентропії у 256 бітів.

На практиці важливі дві деталі. Перші чотири літери кожного слова зі списку унікальні, тому скорочене введення не спричиняє неоднозначності. Контрольна сума дає змогу виявляти помилки: якщо гаманець відхиляє фразу під час імпорту, це означає, що контрольна сума не збігається. Зазвичай це свідчить про помилкове слово або неправильний порядок слів, а не про втрату коштів.

Список слів однаковий у всіх гаманцях із підтримкою BIP-39. Завдяки цьому сид-фразу Zelcore можна відновити в інших сумісних гаманцях — і навпаки.

Щоб дізнатися, що саме відновлюється із сид-фрази на новому пристрої, прочитайте посібник про синхронізацію Zelcore між пристроями.

Фраза з 12 слів забезпечує 128 бітів захисту — стільки ж, скільки один приватний ключ Bitcoin. Фраза з 24 слів забезпечує 256 бітів. За допомогою сучасного обладнання чи такого, яке можна передбачити в найближчому майбутньому, перебрати всі можливі варіанти практично неможливо. Тож вибір між ними залежить від вашої моделі загроз і готовності записати більше слів, а не від того, що один варіант є «небезпечним».

Від слів до головного сіду: PBKDF2 і парольна фраза

Слова не використовуються безпосередньо як ключ. Вони слугують вхідними даними для функції розтягування ключа.

PBKDF2 приймає мнемонічну фразу як рядок і 2,048 разів виконує над нею HMAC-SHA512. Сіллю є слово mnemonic, за яким іде необов’язкова парольна фраза, яку іноді називають 25-м словом. На виході отримуємо 512-бітне значення, яке називають головним сідом. Цей етап розтягування робить спроби перебору дорогими навіть тоді, коли зловмисник має більшу частину фрази.

Парольна фраза створює чимало проблем, тому варто точно пояснити, як вона працює:

Ця модель безпеки передбачає два фактори: якщо хтось викраде слова, але не парольну фразу, ця людина потрапить у гаманець за замовчуванням. Його можна використовувати як гаманець-приманку з невеликим балансом. Однак компроміс тут серйозний: якщо ви забудете парольну фразу, відновити її неможливо. Немає ні функції скидання, ні способу звернутися по допомогу. У статті «25-те слово» пояснено, коли ця функція може стати в пригоді. Якщо коротко, початківцям спершу варто навчитися правильно зберігати звичайну сид-фразу.

Від головного сіду до всіх ключів: BIP-32 і BIP-44

512-бітний головний сід передається на вхід HMAC-SHA512 разом із фіксованим ключем Bitcoin seed. Результат ділиться навпіл: ліві 256 бітів стають головним приватним ключем, а праві 256 бітів — кодом ланцюга, частиною ентропії, яка використовується на кожному наступному етапі виведення ключів. Разом вони утворюють корінь ієрархічного детермінованого (HD) гаманця, визначеного в BIP-32.

Від цього кореня гаманець виводить практично необмежене дерево дочірніх ключів. На кожному етапі батьківський ключ, код ланцюга та номер індексу поєднуються в результаті ще одного запуску HMAC-SHA512. Є два режими:

BIP-44 стандартизує структуру шляхів для різних монет:

m / 44' / coin_type' / account' / change / address_index

Значення coin_type залежить від блокчейну: для Bitcoin це 0, для Ethereum — 60 і так далі для сотень зареєстрованих монет. Апострофи на перших трьох рівнях позначають захищене виведення й оберігають ключі облікових записів, навіть якщо витече xpub адресного рівня. Завдяки цьому одна сид-фраза може бути резервною копією гаманця для багатьох блокчейнів: кожен ланцюг має власний шлях від того самого кореня. Так Zelcore виводить облікові записи для понад 80 ланцюгів з однієї фрази. Докладніше про це — у статті «Проблема зберігання активів у мультичейн-гаманці».

Оскільки кожен етап детермінований, той самий сід завжди дає ті самі ключі. Самого головного приватного ключа недостатньо, щоб отримати всі дочірні ключі, адже для кожного виведення потрібен також код ланцюга. Але сид-фраза містить обидва компоненти. Хто має сид-фразу, той має доступ до всього.

Чому її втрата означає кінець

У блокчейнах немає скидання пароля. Жодна компанія не зберігає копію ваших ключів, а служба підтримки не може повернути втрачені кошти. Підписуючи транзакцію в блокчейні, ви використовуєте приватний ключ, похідний від вашого сіду. Якщо сід втрачено, зникають і ключі, а кошти на відповідних адресах назавжди стають недоступними.

За оцінками дослідників, від 2.3 до 3.7 мільйона BTC назавжди недоступні. Значну частину цих коштів втрачено через те, що в перші роки існування Bitcoin сид-фрази й приватні ключі не зберігали належним чином.

PIN-код апаратного гаманця тут не допоможе. Після надто багатьох неправильних спроб введення PIN-коду апаратний гаманець стирає всі дані. Пристрій втрачено, але сид-фраза, збережена офлайн, дає змогу за кілька хвилин відновити гаманець на новому пристрої. Без сид-фрази самого фізичного пристрою недостатньо.

Саме тому під час налаштування будь-якого серйозного гаманця вас просять одразу записати сид-фразу й перевірити її, перш ніж ви внесете бодай одну монету.

Що відновлює сид-фраза, а що — ні

«У мене є сид-фраза, отже, усе гаразд» — це правда для стандартних облікових записів, але не для кількох речей, які люди помилково вважають відновлюваними.

Що можна відновити лише за сид-фразою:

Що не можна відновити за сид-фразою:

Скидання апаратного гаманця можна повністю виправити, якщо сид-фраза збереглася, а ви забули лише PIN-код. Якщо втрачено й сид-фразу, пристрій перетворюється на непотріб.

Як зберігати сид-фразу

Коли ви розумієте, що таке сид-фраза, правила стають очевидними.

Робіть так:

Не робіть цього:

Оберіть спосіб зберігання відповідно до загроз

Питання не в тому, «яка резервна копія найкраща», а в тому, «від чого я захищаюся». Для більшості людей реальні загрози — це не цілеспрямовані атаки. Це пожежа, затоплення, крадіжка зі зломом або забуте місце, де лежить резервна копія.

Не розділяйте сид-фразу на частини

Зберігати половину слів в одному місці, а половину — в іншому поширено, але це послаблює захист. Якщо зловмисник знайде половину 12-слівної фрази, простір пошуку звузиться настільки, що решту можна підібрати повним перебором. Щоб розподілити ризик між різними місцями, зберігайте окремі повні копії або скористайтеся схемою розподілу секрету Шаміра (SLIP-39). Вона розділяє секрет на N частин, з яких будь-які M дають змогу його відновити, не послаблюючи захист окремих частин. Trezor підтримує SLIP-39; в інших гаманцях ця функція доступна не всюди.

Помилки під час відновлення, про які не попереджають

Вони даються взнаки лише під час відновлення — саме тоді, коли на кону найбільше.

Забута парольна фраза. Слова введено правильно. Гаманець генерує адреси без балансу. Повідомлення про помилку немає. Кошти залишаються в гаманці, захищеному парольною фразою, і до них неможливо дістатися. Це найпоширеніший випадок безповоротної втрати коштів серед тих, хто ввімкнув парольну фразу й покладався лише на пам’ять.

Неправильний шлях деривації. Якщо відновити в застосунку з типовим шляхом BIP-44 гаманець, який використовував BIP-49 (обгорнутий SegWit) або BIP-84 (нативний SegWit), з тієї самої сид-фрази буде отримано інший набір адрес. Може здатися, що баланси зникли. Щоб це виправити, змініть шлях деривації в розширених налаштуваннях нового застосунку, якщо знаєте, де шукати.

Несумісність гаманців. Не кожен гаманець підтримує всі мови BIP-39 або всі типи монет. Якщо відновити гаманець у програмі, яка не підтримує шлях для потрібного блокчейну, нічого не відобразиться. Кошти не зникли — їх просто не видно, доки ви не скористаєтеся програмою з підтримкою цього блокчейну.

Канали Lightning без SCB. Сид-фраза відновлює баланс у блокчейні. Щоб спільно закрити відкриті канали, потрібен файл SCB. Без нього канали можуть закрити примусово, а застаріла резервна копія може дозволити контрагенту скористатися транзакцією зі штрафом.

Зберігання, яке можна зчитати камерою. QR-код із сид-фразою або фотографія в галереї, синхронізованій із хмарою, означають, що одного зламу облікового запису досить для повної втрати коштів. Сид-фраза ніколи не має існувати у формі, яку камера чи знімок екрана можуть передати на сервер.

Найпоширеніші помилки

Що робити далі

Головне


Читайте також

Що таке блокчейн насправді?

Що таке блокчейн насправді?

Без зайвого галасу пояснюємо, що блокчейн — це спільний реєстр, який не контролює жодна окрема сторона. Для простоти уявіть дошку оголошень, яку всі можуть читати, але ніхто не може таємно очистити.

5 хв читання
Публічні та приватні ключі: чому це важливо

Публічні та приватні ключі: чому це важливо

Пояснює асиметричну криптографію на прикладі замка й ключа, щоб читачі зрозуміли, чому публічною адресою можна безпечно ділитися, а приватний ключ має залишатися під їхнім контролем.

6 хв читання
Безпека в блокчейні: шахрайство, тривожні ознаки та безпечні звички

Безпека в блокчейні: шахрайство, тривожні ознаки та безпечні звички

Лише за 2025 рік криптошахрайство завдало американцям збитків на 11,3 мільярда доларів, але більшість атак відбувається за передбачуваними схемами. Навчіться їх розпізнавати та виробіть звички, які допоможуть захистити ваші кошти.

8 хв читання

Підпишіться на нашу розсилку

Раз на місяць — дружній лист від нас. Жодного спаму, лише останні новини Zelcore.

Підпишіться на нашу розсилку