
Шифрування приватним ключем — це спосіб, коли для шифрування і дешифрування даних використовується один і той самий секретний ключ. Цей процес називають симетричним шифруванням. Це схоже на дверний ключ: один ключ і закриває, і відкриває двері.
У криптосфері "приватний ключ" може викликати плутанину. Приватний ключ у вашому гаманці використовується для підпису транзакцій і базується на асиметричній криптографії. Водночас "шифрування приватним ключем" означає симетричне шифрування, де спільний секретний ключ захищає дані. Обидва варіанти пов’язані з приватними ключами/секретами, але їх призначення різні.
Шифрування приватним ключем використовує один секрет для шифрування і дешифрування, тому підходить для особистого або малого кола конфіденційного використання. Шифрування публічним ключем застосовує пару ключів: загальнодоступний публічний ключ для шифрування і приватний ключ для дешифрування. Це оптимально для безпечної передачі інформації конкретному отримувачу.
У Web3 пари публічних і приватних ключів найчастіше використовують для підписів, де приватний ключ підтверджує транзакції так, що їх неможливо підробити. Шифрування приватним ключем здебільшого застосовують для захисту зберігання — наприклад, для шифрування мнемонічних фраз або резервних файлів приватного ключа перед локальним чи хмарним збереженням. Публічне шифрування вирішує питання "як безпечно надіслати іншому", а приватне — "як безпечно зберігати самому".
Гаманці зазвичай не використовують пароль для входу напряму для шифрування приватного ключа. Спочатку пароль перетворюють на стійкий ключ шифрування через функцію деривації ключа (KDF). Далі симетричний алгоритм шифрує вашу мнемоніку або приватний ключ і додає інформацію для захисту від підробки.
Типовий процес: введення пароля → KDF використовує сіль (випадкове число) і параметри для створення стійкого ключа → створення IV (ініціалізаційного вектора, який забезпечує різний результат при шифруванні одного й того ж вмісту) → шифрування симетричним алгоритмом → додавання MAC (перевірки цілісності, що не дозволяє підробку) → збереження шифротексту разом із сіллю, IV і параметрами KDF у JSON-файлі сховища ключів.
У Ethereum JSON keystore (V3) широко використовують scrypt або PBKDF2 як KDF, а шифрування здійснюється через AES-128-CTR із MAC-перевіркою. Під час розблокування гаманець знову генерує ключ за тими ж параметрами, перевіряє MAC і дешифрує дані. Такий підхід спрощує відновлення на різних пристроях і запобігає зберіганню приватних ключів у відкритому вигляді.
Основними симетричними алгоритмами є AES і ChaCha20. AES (Advanced Encryption Standard) має потужну апаратну підтримку і високу швидкість; популярні режими — GCM (з автентифікацією) і CTR (режим лічильника). ChaCha20-Poly1305 ефективний на мобільних пристроях без апаратної підтримки AES.
Серед KDF для отримання ключа з пароля найпоширеніші scrypt, PBKDF2, а також Argon2. KDF — це інструмент, що перетворює простий пароль на ключ, який важко підібрати перебором. Вищі параметри підвищують вартість кожної спроби атаки.
Станом на 2024 рік багато гаманців і утиліт використовують scrypt/PBKDF2 з AES (наприклад, Ethereum keystore — AES-128-CTR+MAC). Також поширені AES-256-GCM і ChaCha20-Poly1305 для шифрування даних на рівні застосунків.
Найпоширеніше використання — захист мнемонічних фраз гаманця і резервних копій приватних ключів. Зберігання мнемонік у відкритому вигляді дуже ризиковане; шифрування приватним ключем для створення keystore.json суттєво знижує ризик витоку.
Інші сценарії — шифрування локальних конфіденційних файлів: записів транзакцій, API-ключів, дослідницьких нотаток; або безпечна передача експортованих ключів самому собі (з тим самим паролем на різних пристроях). Для обміну повідомленнями чи синхронізації з хмарою шифрування перед завантаженням допомагає мінімізувати ризики у разі витоку на сервері.
Поширений міф — плутати "шифрування приватним ключем" з "використанням приватного ключа для підпису". Підписування підтверджує особу; шифрування приватним ключем забезпечує конфіденційність даних — це різні функції.
Основні ризики: слабкі паролі, що дозволяють атаки перебором; забуті паролі унеможливлюють дешифрування; повторне використання IV чи неправильні параметри KDF послаблюють захист; зберігання шифротексту без захисту в чатах чи електронній пошті; шифрування на заражених пристроях призводить до кейлогінгу чи підробки.
Якщо йдеться про кошти: завжди використовуйте складні паролі і відповідні параметри KDF; працюйте лише на чистих пристроях; безпечно зберігайте шифротекст і параметри; для великих активів поєднуйте апаратні гаманці з офлайн-зберіганням.
Збільшення параметрів KDF підвищує обчислювальні витрати на кожну спробу дешифрування — це захищає від атак, але може уповільнювати розблокування на старих чи мобільних пристроях. Балансуйте силу параметрів відповідно до можливостей пристрою і частоти використання: для резервних копій із високою цінністю застосовуйте сильніші налаштування; для щоденного використання — менш вимогливі.
Вибір алгоритму також має компроміси: AES зазвичай швидший на сучасних процесорах; ChaCha20-Poly1305 ефективніший на пристроях без апаратної підтримки AES. GCM має вбудовану автентифікацію для простоти; режим CTR треба поєднувати з MAC — це дає гнучкість, але потребує ретельної реалізації.
Шифрування приватним ключем — це різновид симетричного шифрування, де один і той самий секретний ключ використовується для шифрування і дешифрування — оптимально для ситуацій, коли потрібно самостійно безпечно зберігати дані. У Web3-гаманцях це часто передбачає отримання ключів через KDF, шифрування через AES або ChaCha20 і збереження разом із сіллю, IV і MAC у файлі сховища ключів. На відміну від схем шифрування/підпису публічним ключем, які орієнтовані на безпечну передачу чи перевірку, шифрування приватним ключем спеціалізується на захисті зберігання. Надійна безпека потребує складних паролів, коректних параметрів, правильної реалізації і резервного копіювання у кількох місцях.
Якщо приватний ключ втрачено, відновити його неможливо — це основна особливість безпеки блокчейна. Приватний ключ — єдиний спосіб доступу до акаунта; жодна компанія чи система резервного копіювання не допоможе його повернути. Вкрай важливо надійно зберігати приватний ключ або мнемоніку — бажано на холодному гаманці чи офлайн-пристрої — і ніколи не робити скриншоти чи передавати їх будь-кому.
Безпека залежить від типу гаманця. Апаратні гаманці (холодні гаманці) зберігають приватні ключі офлайн із дуже низьким ризиком крадіжки; програмні гаманці працюють на телефонах чи комп’ютерах і можуть бути вразливими, якщо пристрій заражено шкідливим ПЗ чи зламано. Для великих сум використовуйте апаратний гаманець; для щоденних транзакцій підійдуть надійні програмні гаманці, наприклад офіційний гаманець Gate — завжди вмикайте блокування пристрою і антивірусний захист.
Обидва варіанти — це різні форми доступу до одного акаунта: приватний ключ — це 64-символьний шістнадцятковий рядок; мнемонічна фраза складається з 12–24 англійських слів. Обидва надають доступ до одного й того ж акаунта. Мнемоніку легше запам’ятати і резервувати; приватний ключ — більш прямий. Рекомендується резервувати мнемоніку, а не приватний ключ — імпорт працює однаково для обох.
Ваш приватний ключ означає повне володіння активами — будь-хто, хто його отримає, може повністю контролювати кошти на акаунті. Легітимні платформи (зокрема Gate) ніколи не запитують приватний ключ чи мнемонічну фразу — такі запити характерні для шахрайства. Якщо хтось, називаючи себе представником платформи, просить приватний ключ — негайно блокуйте і повідомляйте про це.
Одна і та сама мнемонічна фраза може генерувати різні приватні ключі і адреси в різних блокчейнах — але для кожного ланцюга приватний ключ унікальний. Наприклад, використання однієї мнемоніки в Ethereum і Bitcoin створює два окремих приватних ключі і адреси. Це дозволяє одній мнемоніці управляти активами в різних ланцюгах, але ризики на кожній мережі треба контролювати окремо.


