Bitcoin Key & Address Explorer

Исследуйте криптографические основы Bitcoin. Обучающий инструмент для понимания деривации private key, public key и адресов.

Исследуйте криптографические основы Bitcoin.
Узнайте, как private key, public key и адреса связаны между собой — наглядно.

Этот обучающий инструмент демонстрирует структуру и формат типов key и адресов Bitcoin. Генерируйте случайные примеры значений, чтобы увидеть, как каждый шаг в цепочке деривации преобразует данные — от raw entropy до адресов, которые вы используете каждый день.

Только в образовательных целях

Никогда не используйте key, показанные на любом веб-сайте, для реальных средств. Этот инструмент демонстрирует структуру и формат key и адресов Bitcoin, а не фактическую криптографическую деривацию. Значения, генерируемые здесь, являются случайными примерами, предназначенными для иллюстрации правильных prefix, длин и форматов кодирования. Реальная деривация key требует безопасного офлайн-программного обеспечения.

Key & Address Explorer

Нажмите кнопку ниже, чтобы сгенерировать новый набор случайных примеров значений. Каждая генерация использует Web Crypto API для получения случайных байтов, а затем форматирует их в соответствии с реальными структурами key и адресов Bitcoin.

1

Private Key (Raw)

Случайное 256-битное число (32 байта)

--

64 HEX-символа = 256 бит entropy, сгенерировано через crypto.getRandomValues()

2

Wallet Import Format (WIF)

private key, закодированный Base58Check

--

Структура: version-байт (0x80) + байты private key + флаг сжатия (0x01) + 4-байтовый checksum. checksum — это первые 4 байта от SHA-256(SHA-256(payload)). Результат затем кодируется в Base58. Compressed WIF key начинаются с K или L; uncompressed — с 5.

Примечание Приведённый выше пример показывает правильную структуру формата. Фактическое преобразование WIF требует кодирования Base58Check с двойным хешированием SHA-256.

3

Сжатый Public Key

33 байта через умножение на эллиптической кривой secp256k1

--

Деривация: public key вычисляется как P = k * G, где k — это private key, а G — generator point secp256k1. Сжатый формат использует prefix 02 (y чётное) или 03 (y нечётное), за которым следует 32-байтная x-координата. Это односторонняя функция — из public key невозможно получить private key.

4

Форматы адресов

Различные кодировки хеша public key

Legacy P2PKH Пример формата

--

Начинается с 1 | ~25-34 символа | Base58Check(0x00 + RIPEMD160(SHA256(pubkey)) + checksum)

SegWit P2SH Пример формата

--

Начинается с 3 | ~25-34 символа | Base58Check(0x05 + RIPEMD160(SHA256(script)) + checksum)

Native SegWit Пример формата

--

Начинается с bc1q | ~42 символа | Bech32(hrp + witness version 0 + 20-байтный keyhash)

Taproot Новейший Пример формата

--

Начинается с bc1p | ~62 символа | Bech32m(hrp + witness version 1 + 32-байтный tweaked pubkey)

Диаграмма потока деривации

Диаграмма ниже показывает полную цепочку от случайной entropy до адресов Bitcoin. Каждое преобразование является односторонней криптографической операцией — вы всегда можете двигаться вперёд, но никогда назад.

Случайное 256-битное число

Private Key (HEX)

Формат WIF

Кодирование Base58Check

Version + Key + Flag + Checksum

Public Key

secp256k1 (k * G)

RIPEMD160(SHA256(pubkey))

20-байтный hash

P2PKH

1...

P2SH

3...

SegWit

bc1q...

Taproot

bc1p...

Понимание эллиптической криптографии

Bitcoin использует эллиптическую кривую secp256k1, определяемую уравнением y² = x³ + 7 над конечным полем. Эта конкретная кривая была выбрана за её эффективность и отсутствие известных бэкдоров — в отличие от некоторых кривых NIST, которые вызвали обеспокоенность в криптографическом сообществе.

Умножение точек

private key k умножается на generator point G для получения public key P = k * G. Это использует повторное сложение точек на эллиптической кривой. Операция вычислительно проста в одном направлении, но невыполнима в обратном — это проблема дискретного логарифма на эллиптической кривой (ECDLP).

Размер пространства ключей

Кривая secp256k1 имеет порядок примерно 2256 — около 1,16 x 1077 возможных private key. Для сравнения, оценочное количество атомов в наблюдаемой Вселенной составляет около 1080. Подбор private key методом полного перебора вычислительно невозможен с текущими или предвидимыми технологиями.

Сжатые vs несжатые

Точка эллиптической кривой имеет обе координаты x и y (64 байта без сжатия). Поскольку y можно вывести из x с помощью уравнения кривой, compressed key хранят только x плюс префиксный байт, указывающий чётность y — уменьшая размер с 65 до 33 байт. Современный Bitcoin использует исключительно compressed public key.

Подписи Schnorr (Taproot)

Taproot представил подписи Schnorr (BIP 340), которые предлагают несколько преимуществ по сравнению с ECDSA: они доказуемо безопасны, позволяют эффективную агрегацию мульти-подписей и делают сложные условия расходования неотличимыми от простых в блокчейне — значительно улучшая приватность и снижая комиссии.

Объяснение форматов Private Key

Bitcoin private key по сути является просто 256-битным числом, но может быть представлен в нескольких форматах. Каждый формат служит своей цели — от raw-вычислений до удобочитаемого импорта/экспорта.

Формат Prefix
Raw HEX —
WIF (несжатый) 5
WIF (сжатый) Рекомендуется K или L
Mini Private Key S

Кодирование адресов: Base58Check vs Bech32

Bitcoin использует две принципиально разные схемы кодирования для адресов. Понимание различий объясняет, почему форматы адресов выглядят так по-разному и почему более новые форматы считаются лучшими.

Base58Check Legacy & P2SH
  • Использует алфавит Base58: 1-9, A-Z, a-z, исключая 0, O, I, l во избежание визуальной неоднозначности
  • 4-байтовый checksum из двойного хеша SHA-256, добавленный к payload
  • Чувствителен к регистру (смешанный регистр), что делает QR-коды менее эффективными
  • version-байт определяет prefix: 0x00 = "1...", 0x05 = "3..."
  • Может обнаружить ошибки, но не может определить, какой символ неверен
Bech32 / Bech32m SegWit & Taproot
  • Использует 32-символьный строчный алфавит: a-z, исключая b, i, o + цифры 0-9, исключая 1
  • BCH-код исправления ошибок может обнаружить до 4 ошибок в символах и определить их местоположение
  • Только строчные буквы — более эффективные QR-коды (буквенно-цифровой режим)
  • Human-readable part (bc) + separator (1) + data + 6-символьный checksum
  • Bech32m (BIP 350) исправляет проблему изменяемости при расширении длины в оригинальном Bech32

Почему существуют разные типы адресов?

Эволюция форматов адресов Bitcoin отражает годы улучшений протокола, каждое из которых решает определённые ограничения, сохраняя обратную совместимость со всей сетью.

2009

P2PKH — Оригинал

Представлен вместе с Bitcoin. Pay-to-Public-Key-Hash добавляет слой безопасности путём хеширования public key перед использованием в адресе. Если ECDSA когда-либо будет взломан, средства в P2PKH-адресах, где public key не был раскрыт, остаются защищены хеш-функцией.

2012

P2SH — Программируемые скрипты

BIP 16 представил Pay-to-Script-Hash, позволяющий сложные условия расходования (мульти-подпись, тайм-локи), сохраняя при этом простоту адреса. Отправителю не нужно знать скрипт — он просто отправляет на адрес "3...". Позже стал обёрткой для совместимости с SegWit.

2017

Bech32 — Segregated Witness

Обновление SegWit (BIP 141/173) отделило данные подписи от данных транзакции, исправив пластичность транзакций и обеспечив работу Lightning Network. Native SegWit-адреса используют кодирование Bech32, уменьшая вес транзакции примерно на 30-40% и соответственно снижая комиссии.

2021

Bech32m — Taproot

Обновление Taproot (BIP 340/341/342) представило подписи Schnorr, MAST (Merkelized Alternative Script Trees) и улучшенную приватность. Сложные мульти-подписи становятся неотличимыми от простых платежей в блокчейне. Использует кодирование Bech32m (BIP 350) для исправления незаметной проблемы checksum в оригинальном Bech32.

Часто задаваемые вопросы

Какова связь между private key и public key?
private key — это случайное 256-битное число, а public key выводится из него с помощью умножения на эллиптической кривой secp256k1. Математическое соотношение: P = k * G, где k — private key, G — фиксированная generator point на кривой, а P — результирующая точка public key. Это односторонняя функция-ловушка — вычисление public key из private key тривиально, но обратный процесс (нахождение k при известных P и G) вычислительно невыполним. Эта асимметрия — основа безопасности Bitcoin.
Почему формат WIF начинается с 5, K или L?
Ведущий символ определяется version-байтом и общей длиной payload. Uncompressed WIF key используют version-байт 0x80 с 33 байтами payload (version + 32-байтный key), создавая строку Base58, которая всегда начинается с "5". Compressed WIF key добавляют дополнительный байт 0x01 (всего 34 байта), что сдвигает кодирование Base58 для создания строк, начинающихся с "K" или "L". Это позволяет легко визуально различать сжатые и несжатые ключи с первого взгляда.
Может ли кто-то угадать мой private key?
На практике — нет. 256-битный private key имеет 2256 возможных значений — примерно 1,16 x 1077. Даже если бы каждый компьютер на Земле пробовал миллиарды ключей в секунду, потребовалось бы больше времени, чем возраст Вселенной, чтобы перебрать значимую долю пространства ключей. Реальный риск — не полный перебор, а плохая генерация случайных чисел, вредоносное ПО, фишинг или неправильное хранение key. Всегда используйте надёжный wallet с правильным криптографическим генератором случайных чисел.
В чём разница между Bech32 и Bech32m?
Bech32 (BIP 173) был оригинальным кодированием, используемым для SegWit v0 адресов (bc1q...). Однако была обнаружена незаметная уязвимость: вставка или удаление символов "q" в определённых позициях в строке Bech32 всё равно могла создать валидный checksum. Bech32m (BIP 350) исправляет это, используя другую константу в алгоритме checksum. SegWit v0 (bc1q) продолжает использовать оригинальный Bech32, в то время как SegWit v1+ (bc1p для Taproot) использует Bech32m. Для пользователей они выглядят идентично — разница чисто в вычислении checksum.
Почему Bitcoin хеширует public key вместо прямого использования?
Адреса Bitcoin выводятся путём хеширования public key через SHA-256, за которым следует RIPEMD-160 (создавая 20-байтный хеш, называемый Hash160). Это даёт три преимущества: (1) более короткие адреса — 20 байт против 33 байт для compressed public key; (2) дополнительный слой квантовой устойчивости — пока вы не потратили с адреса, ваш public key скрыт за двумя хеш-функциями; (3) защита от потенциальных будущих уязвимостей ECDSA — даже если эллиптическая криптография будет скомпрометирована, средства на неиспользуемых адресах остаются защищены хеш-функциями.
Безопасно ли использовать этот инструмент? Реальны ли сгенерированные значения?
Этот инструмент генерирует случайные примеры значений исключительно в образовательных целях. private key являются реальными случайными числами, но показанные адреса отформатированы так, чтобы выглядеть правильно (правильный prefix, правильная длина) без выполнения фактической криптографической деривации (которая требует умножения secp256k1, SHA-256, RIPEMD-160 и кодирования Base58Check/Bech32). Всё работает на стороне клиента в вашем браузере — никакие данные не отправляются на сервер. Никогда не используйте key или адреса, отображаемые на веб-сайте, для реальных средств.
Безопасность корпоративного уровня

Используйте свои знания на практике

Теперь, когда вы понимаете, как работают key и адреса Bitcoin, начните майнинг с NoxHash. Мы занимаемся криптографией — вы собираете вознаграждения. Безопасное управление key, мгновенные выводы на любой формат адреса.