Приватный ключ
Секретная половина пары ключей, дающая полный контроль над кошельком. В TON — 32 байта Ed25519, выводимые из сид-фразы по детерминированной схеме. Утечка приватного ключа равнозначна потере всех средств на адресе.
Синонимы: private key, секретный ключ, приватник
Приватный ключ — это секретное число, которым подписываются транзакции от имени кошелька. В TON используется схема Ed25519, ключ длиной 32 байта (256 бит). Знание приватного ключа равнозначно владению средствами: тот, кто его держит, может отправить любое количество TON и любые jetton-ы.
Откуда берётся
В обычном пользовательском флоу приватный ключ напрямую никто не видит:
- Кошелёк генерирует сид-фразу (24 слова BIP-39).
- Сид-фраза прогоняется через PBKDF2 → master seed.
- Master seed → BIP-32 / Ed25519 derivation → приватный ключ.
Поэтому в обиходе говорят про «защиту сида» — это и есть защита приватного ключа. Сама фраза эквивалентна ключу, просто в более удобной для записи форме.
Где может утечь
- Файл-бэкап. Старые версии некоторых кошельков сохраняли приватный ключ в локальном файле; стиллер на ПК достаёт его моментально.
- Экспорт ключа в текстовом виде. Пользователь вытащил «raw key» из кошелька, скопировал в заметки — заметки синхронизировались в облако.
- Скомпрометированное приложение. Поддельный «Tonkeeper» из APK-файла, скачанный с фишингового сайта, передаёт ключ злоумышленнику в момент создания.
- JavaScript-кошельки в браузере — расширения, не использующие изоляцию контекстов, при компрометации XSS-уязвимостью могут раскрыть ключ.
Защита
- Hardware-кошелёк. Приватный ключ не покидает защищённый чип Ledger/Tangem. Даже на полностью скомпрометированном ПК украсть его удалённо невозможно.
- Никогда не экспортировать в plain. Если кошелёк предлагает «показать приватный ключ» — это feature для разработчиков, обычному пользователю она не нужна.
- Изоляция. Браузер для криптоопераций — отдельный профиль или вообще отдельный пользователь ОС.
Что не работает как защита
- «Шифрование» в облаке. Любой облачный сервис, имеющий доступ к расшифрованным данным, — это не защита; ключ должен быть зашифрован локально, никогда не отдаваться в plain.
- Пароль на кошелёк. Большинство кошельков шифруют локальное хранилище паролем, но если стиллер дождался момента ввода пароля — это не помогает.
- Sharing с «другом-разработчиком». Никогда. Никаких обстоятельств, при которых приватный ключ нужно кому-то отправить, не существует.