Открыть сервис

Алгоритмы хеширования в криптовалютах

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

Роль хеширования в архитектуре криптовалют

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

Основные области применения хеширования:

  • Связывание блоков: каждый блок содержит хеш предыдущего блока, что создаёт неизменяемую цепочку. Любая попытка модификации данных в историческом блоке приводит к рассогласованию всех последующих хешей.
  • Майнинг (Proof-of-Work): участники сети подбирают такое значение nonce, чтобы хеш заголовка блока был меньше заданного целевого значения. Сложность подбора регулирует скорость создания блоков.
  • Формирование адресов: в Bitcoin адрес получается путём двойного хеширования открытого ключа (SHA-256 и RIPEMD-160), что сокращает длину и добавляет контрольную сумму.
  • Деревья Меркла: хеширование пар транзакций в бинарное дерево позволяет проверять принадлежность транзакции блоку без загрузки всего блока (облегчённые клиенты SPV).
  • Генерация ключей и детерминированных кошельков: хеш-функции используются в алгоритмах типа HMAC для получения дочерних ключей из сид-фразы.

Основные алгоритмы хеширования

SHA-256

SHA-256 (Secure Hash Algorithm 2) — основной алгоритм Bitcoin и большинства первых криптовалют. Размер хеша — 256 бит. Разработан Агентством национальной безопасности США в 2001 году. Используется также в протоколе TLS, PGP и системах цифровых подписей. Аппаратные майнеры (ASIC) оптимизированы именно под вычисление SHA-256, что привело к централизации майнинговых мощностей.

Scrypt

Scrypt — функция формирования ключа, представленная Колином Персивалем в 2009 году. Отличается высокой требовательностью к оперативной памяти, что изначально затрудняло создание специализированных ASIC-устройств. Применяется в Litecoin, Dogecoin и ряде других монет. Однако с развитием технологий производства микросхем для Scrypt также были созданы ASIC-майнеры.

Ethash (Dagger-Hashimoto)

Ethash — алгоритм, использовавшийся в Ethereum до перехода на Proof-of-Stake в 2022 году. Требовал наличия большого набора данных (DAG), который пересчитывался каждые 30 000 блоков. Такой подход позволял майнить на видеокартах и препятствовал созданию эффективных ASIC. После перехода Ethereum на PoS алгоритм утратил актуальность для основной сети, но используется в форках (Ethereum Classic).

Equihash

Equihash — алгоритм, основанный на задаче обобщённого дня рождения. Память-трудозатратный, применяется в Zcash и Horizen. Особенность — возможность проверки решения с минимальными затратами памяти, что делает его асимметричным: сложно найти решение, но легко проверить.

Blake2b и другие

Blake2b — быстрая хеш-функция, применяемая в Decred и Siacoin. Отличается высокой скоростью работы на программном уровне. Также существуют алгоритмы X11 (цепочка из 11 различных хеш-функций, используется в Dash), CryptoNight (приватность и устойчивость к ASIC, применялся в Monero) и другие.

Атаки на хеш-функции и защита

Основные угрозы для криптовалютных систем связаны не со взломом самой хеш-функции, а с атаками на протокол:

  • Атака 51%: если злоумышленник контролирует более половины вычислительной мощности сети, он может переписывать историю транзакций, так как сможет генерировать блоки быстрее остальных.
  • Атака «двойная трата»: использование одной и той же монеты дважды путём создания альтернативной ветки цепочки.
  • Квантовые угрозы: теоретически, квантовый компьютер с достаточным числом кубитов мог бы ускорить поиск коллизий (алгоритм Гровера), что снизило бы эффективную стойкость SHA-256 со 128 до 64 бит. Однако практическая реализация таких вычислений на сегодняшний день отсутствует.

Для защиты от перечисленных угроз применяются увеличение сложности майнинга, использование нескольких алгоритмов хеширования в одной сети, а также переход на консенсус Proof-of-Stake, где хеширование не используется для соревнования за право создания блока.

Перспективы развития

С развитием постквантовой криптографии рассматриваются кандидаты на замену классических хеш-функций, устойчивые к квантовым атакам. Кроме того, активно развиваются протоколы на основе хеширования для масштабирования (например, Plasma, zk-Rollups), где хеш-функции применяются для сжатия данных и доказательств корректности вычислений.

Источники

  • Накамото С. «Биткойн: одноранговая электронная наличная система», 2008.
  • Персиваль К. «Stronger key derivation via sequential memory-hard functions», 2009.
  • Вуд Г. «Ethereum: A secure decentralised generalised transaction ledger», 2014.
  • Бирюков А., Ховантович Д. «Equihash: Asymmetric Proof-of-Work Based on the Generalized Birthday Problem», 2016.
  • Антонопулос А. «Осваиваем Bitcoin», 2017.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →