Guides ·

Генерация Ethereum-кошелька офлайн: полное руководство


Генерация Ethereum-кошелька при подключённом интернете удобна. Но это ненужный риск. Каждую секунду, пока ваша seed-фраза или приватный ключ существует на подключённом устройстве, они подвержены кейлоггерам, clipboard-малвари, браузерным расширениям с чрезмерными правами и троянам удалённого доступа. Решение просто: сгенерируйте кошелёк офлайн, запишите бэкап и перенесите в онлайн только публичный адрес.

Это руководство описывает весь технический процесс --- от генерации энтропии до готового Ethereum-адреса --- и объясняет, почему ваши офлайн-сгенерированные ключи работают на L2-сетях Polygon, Arbitrum, Optimism и Base.

Зачем генерировать офлайн?

Ethereum-кошелёк --- это по сути приватный ключ. Кто владеет ключом --- контролирует средства. При онлайн-генерации приватный ключ проходит через слои неконтролируемого ПО: JavaScript-движок браузера, расширения, управление памятью ОС и сетевой стек.

Офлайн-генерация полностью устраняет сетевой вектор. Если машина не имеет подключения --- Wi-Fi выключен, Ethernet отсоединён, Bluetooth выключен --- приватный ключ невозможно похитить удалённо.

Идеальная конфигурация:

  1. Чистая машина (свежая ОС или Live-USB).
  2. Никаких сетевых подключений.
  3. Инструмент, работающий в браузере через Web Crypto API.
  4. Бумага или металл для записи seed-фразы.

Ethereum Seed Phrase Generator от SafeSeed создан именно для этого --- полностью клиентский, без API-вызовов, серверной связи и аналитики. Подробнее о практиках офлайн-безопасности --- в Руководстве по холодному хранению 2026.

secp256k1 и Keccak-256

Два криптографических примитива определяют систему ключей Ethereum: эллиптическая кривая secp256k1 для генерации ключей и Keccak-256 для деривации адреса.

secp256k1: эллиптическая кривая

Ethereum унаследовал кривую secp256k1 от Bitcoin. Приватный ключ Ethereum --- 256-битное целое число (32 байта, 64 hex-символа). Публичный ключ получается умножением точки-генератора G кривой на скаляр приватного ключа --- односторонняя операция. Сравнение secp256k1 с кривой Ed25519, используемой Solana, смотрите в статье secp256k1 vs Ed25519.

Keccak-256: от публичного ключа к адресу

Ethereum не использует публичный ключ напрямую как адрес. Keccak-256 (вариант SHA-3) применяется к несжатому публичному ключу (без префикса 04), производя 32-байтный хеш. Последние 20 байт становятся адресом Ethereum с префиксом 0x.

Приватный ключ (32 байта)
    → умножение secp256k1 → Публичный ключ (64 байта)
    → хеш Keccak-256 → 32 байта
    → Взять последние 20 байт → Адрес Ethereum (0x...)

От seed-фразы к ETH-адресу

Большинство современных кошельков используют BIP39 seed-фразы и деривацию HD-кошелька для создания дерева ключей из единого бэкапа.

Шаг 1: Генерация энтропии

Процесс начинается со 128 или 256 бит криптографически безопасной случайности (энтропии). На SafeSeed это crypto.getRandomValues() браузера. Для 12 слов --- 128 бит, для 24 --- 256. Подробнее --- BIP39 простым языком.

Шаг 2: Энтропия в мнемонические слова

Энтропия хешируется SHA-256 для получения контрольной суммы. Биты контрольной суммы добавляются к энтропии, и строка делится на 11-битные сегменты, каждый из которых соответствует одному из 2 048 слов BIP39.

Шаг 3: Мнемоника в мастер-seed

Мнемонические слова (плюс необязательная парольная фраза) обрабатываются PBKDF2-HMAC-SHA512 с 2 048 итерациями, что даёт 512-битный мастер-seed.

Шаг 4: Мастер-seed в мастер-ключ

512-битный seed обрабатывается HMAC-SHA512 с ключом "Bitcoin seed". Левые 256 бит становятся мастер-приватным ключом, правые 256 --- мастер-chain-кодом.

Шаг 5: Деривация ключа Ethereum

Ethereum использует путь деривации m/44'/60'/0'/0/0 по BIP44. На каждом уровне выполняется функция деривации дочернего ключа.

Шаг 6: Приватный ключ в адрес

Полученный приватный ключ при m/44'/60'/0'/0/0 умножается на точку-генератор secp256k1 для получения публичного ключа. Публичный ключ хешируется Keccak-256, и последние 20 байт становятся адресом Ethereum.

Ethereum Private Key Generator от SafeSeed показывает каждый шаг деривации.

Те же ключи на L2-сетях

Одно из самых практичных свойств Ethereum: ваши ключи работают идентично на всех EVM-совместимых сетях. Тот же приватный ключ, контролирующий 0xABC... на Ethereum, контролирует 0xABC... на Polygon, Arbitrum, Optimism и Base. Дополнительная генерация ключей не требуется.

Все EVM-сети используют одинаковые криптопримитивы --- secp256k1 для подписей и Keccak-256 для деривации адреса. Различается Chain ID --- сетевой идентификатор в подписях транзакций (EIP-155), предотвращающий replay-атаки.

Для офлайн-генерации это значит: один бэкап seed-фразы защищает активы на всех EVM-сетях. Сгенерируйте раз, сделайте бэкап раз, используйте один адрес везде.

Подробнее о безопасности общих адресов --- в статье Безопасность EVM-адресов.

Проверка валидатором адресов

После офлайн-генерации проверьте адрес с помощью Ethereum Address Validator:

  1. Проверка формата: Адрес начинается с 0x и содержит ровно 40 hex-символов.
  2. Контрольная сумма EIP-55: Регистр символов корректен.

Подробнее о валидации адресов --- Как проверить криптоадрес.

Экспорт в MetaMask или другие кошельки

Импорт в MetaMask

MetaMask принимает BIP39 seed-фразы:

  1. Установите MetaMask в чистом профиле браузера.
  2. Выберите «Импортировать существующий кошелёк».
  3. Введите 12 или 24 слова.
  4. Установите локальный пароль (только шифрование на устройстве).

MetaMask выведет ключ по m/44'/60'/0'/0/0 и покажет адрес. Убедитесь, что он совпадает со сгенерированным офлайн.

Импорт в аппаратный кошелёк

Ledger и Trezor принимают BIP39 seed-фразы при инициализации. Вводите фразу на экране самого устройства --- никогда на компьютере.

Несколько аккаунтов

Путь m/44'/60'/0'/0/0 порождает первый аккаунт. Увеличение последнего индекса даёт дополнительные адреса: m/44'/60'/0'/0/1, m/44'/60'/0'/0/2 и так далее. Все из одной seed-фразы.

Офлайн-генерация Ethereum-кошелька --- не паранойя, а базовая операционная безопасность. Несколько минут на отключение, генерацию и запись --- инвестиция, защищающая каждый ETH, токен и NFT, который вы когда-либо будете хранить на этом адресе, на каждой EVM-сети, пока вы владеете ключами.