Ключевые выводы

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

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

  • Биткойн использует SHA-256 для майнинга, проверки транзакций и генерации адресов, в то время как Эфириум использует Keccak-256 для управления состоянием и операций смарт-контрактов.

  • Современные хэш-функции, такие как SHA-256 и SHA-3, остаются безопасными против известных угроз квантовых вычислений, требуя только больших размеров выходов, а не совершенно новых алгоритмов.

Binance Academy courses banner

Введение

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

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

Как работают хэш-функции

Разные хэш-функции производят выходы разных размеров, но каждый алгоритм всегда генерирует выход фиксированной длины независимо от размера ввода. Например, SHA-256 всегда производит выход 256 бит (64-символьный шестнадцатеричный), в то время как SHA-1 генерирует дайджест 160 бит.

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

Чтобы проиллюстрировать, выполнение слов "Binance" и "binance" через SHA-256 производит совершенно разные выходы:

  • "Binance" производит: f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191

  • "binance" производит: 59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2

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

Семейство алгоритмов SHA (Secure Hash Algorithms) включает несколько поколений. SHA-0 и SHA-1 больше не считаются безопасными, так как были найдены коллизии. В настоящее время только семейство SHA-2 (включающее SHA-256 и SHA-512) и семейство SHA-3 (основанное на алгоритме Keccak) считаются криптографически безопасными.

Криптографические хэш-функции

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

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

Сопротивление коллизиям

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

На практике устойчивость к коллизиям означает, что потребуется миллионы лет вычислений, чтобы найти два ввода, которые производят один и тот же хэш. SHA-256 требует примерно 2 в 128-й операций для нахождения коллизии (предел дня рождения), что далеко превышает текущие вычислительные возможности.

Сопротивление образам

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

Это свойство жизненно важно для таких приложений, как хранение паролей: служба может хранить хэш пароля, а не сам пароль, и даже если база данных хэшей будет раскрыта, оригинальные пароли останутся защищенными.

Сопротивление вторичному образу

Сопротивление вторичному образу означает, что, имея один конкретный ввод и его хэш, практически невозможно найти другой ввод, который производит тот же хэш. Хотя это связано с сопротивлением коллизиям, это свойство касается более целенаправленного сценария атаки.

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

Хеширование в блокчейне

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

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

Биткойн также использует хеширование для генерации адресов. Открытый ключ обрабатывается через SHA-256, затем через RIPEMD-160, чтобы получить более короткий и удобный формат адреса. Этот подход добавляет дополнительный уровень безопасности и уменьшает размер данных, необходимых для транзакций.

Эфириум использует вариант под названием Keccak-256 (близкий к стандарту SHA-3) для управления состоянием, селекторов функций смарт-контрактов, ведения событий и вывода адресов. Каждая платформа блокчейна выбирает хэш-функции в зависимости от своей конкретной модели безопасности и требований к производительности.

Майнинг и хэш-скорость

В майнинге Биткойна основной задачей является нахождение ввода (изменяя значение nonce в заголовке блока), который производит хэш SHA-256 ниже целевого порога. Цель корректируется каждые 2,016 блоков, чтобы поддерживать среднее время блока в 10 минут, независимо от того, сколько вычислительной мощности есть в сети. Это и делает блокчейн безопасным.

Хэш-скорость представляет собой общую вычислительную мощность, посвященную майнингу. На начало 2026 года сеть Биткойн работает на уровне примерно 800-900 экзахешей в секунду (EH/s), что означает, что майнеры коллективно выполняют сотни квинтиллионов хэш-вычислений каждую секунду.

Майнерам не нужно находить коллизии. Им просто нужно найти любой ввод, который производит хэш ниже текущей цели сложности. Поскольку существует множество возможных действительных выходов, задача заключается в вычислительном throughput, а не в использовании уязвимостей в самом SHA-256.

Поскольку майнинг требует значительных вычислительных затрат, у майнеров есть сильные экономические стимулы следовать правилам, а не пытаться атаковать сеть. Чем больше майнеров участвует, тем более безопасным становится блокчейн.

Хеширование в постквантовую эпоху

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

Алгоритм Гровера, наиболее актуальная квантовая атака на хэш-функции, предоставляет лишь квадратное ускорение. Это означает, что хэш-функция размером 256 бит обеспечит примерно 128 бит безопасности против квантового противника, что по-прежнему считается практически невозможным для взлома. Для сравнения, алгоритмы с открытым ключом, используемые в блокчейне (ECDSA, EdDSA), полностью ломаются алгоритмом Шора на достаточно мощном квантовом компьютере.

В августе 2024 года NIST опубликовал FIPS 205 (SLH-DSA), стандарт цифровой подписи на основе хэширования, основанный на SPHINCS+. Эта схема строит свою безопасность исключительно на прочности хэш-функций, что представляет собой сильную институциональную поддержку того, что SHA-2 и SHA-3 остаются надежными в постквантовом мире.

Консенсус среди NIST, ЕС и других стандартных органов на 2025 год ясен: нет необходимости в новых "постквантовых хэш" алгоритмах. SHA-256 и SHA-3 с выходами 256 бит или больше ожидаются как безопасные на обозримое будущее. Срочные усилия по миграции в постквантовую эпоху сосредоточены на замене криптографии с открытым ключом, а не на хэш-функциях.

Хеширование паролей и генерация ключей

Хотя SHA-256 и SHA-3 являются отличными криптографическими хэш-функциями общего назначения, они не подходят для хранения паролей. Причина в скорости: эти функции предназначены для быстроты, что означает, что злоумышленник с доступом к утекшей базе данных паролей может тестировать миллиарды попыток паролей в секунду, используя GPU или специализированное оборудование.

Специальные функции хеширования паролей решают эту проблему, будучи намеренно медленными и требующими много памяти. Текущий рекомендованный стандарт — Argon2id, который выиграл Конкурс по хешированию паролей в 2015 году. Другие широко используемые варианты включают bcrypt и scrypt.

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

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

В чем разница между хешированием и шифрованием?

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

Могут ли два разных ввода произвести один и тот же хэш?

Да, это теоретически возможно и называется коллизией. Однако для безопасных хэш-функций, таких как SHA-256, нахождение такой коллизии требует примерно 2 в 128-й операции (предел дня рождения), что является вычислительно непрактичным с текущими или предстоящими технологиями. Хэш-функции, для которых коллизии были практически продемонстрированы, такие как MD5 и SHA-1, считаются сломанными и не должны использоваться для целей безопасности.

Почему Биткойн использует именно SHA-256?

SHA-256 был выбран для Биткойна, потому что он обеспечивает сильное сопротивление коллизиям, хорошо анализируется криптографическим сообществом, производит выходы подходящего размера для корректировки сложности доказательства работы и уже широко использовался, когда Биткойн был запущен в 2009 году. Он остается безопасным без известных практических атак против него.

Могут ли квантовые компьютеры сломать хэширование блокчейна?

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

Какую хэш-функцию использует Эфириум?

Эфириум использует Keccak-256, который близок к стандарту NIST SHA-3, но использует немного другую упаковку. Он используется для вывода адресов, генерации ключей состояния, селекторов функций смарт-контрактов и хеширования тем сообщений. Как и SHA-256, у Keccak-256 нет известных практических атак и считается криптографически безопасным.

Заключительные мысли

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

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

Дополнительное чтение

  • Что такое алгоритм консенсуса блокчейна?

  • Что такое Биткойн и как он работает?

  • Доказательство работы (PoW) против доказательства доли (PoS)

  • Общие принципы безопасности

  • Введение в скрипт Биткойна

Отказ от ответственности: этот контент представлен вам на основе "как есть" для общего информирования и образовательных целей, без каких-либо представлений или гарантий. Его не следует рассматривать как финансовый, юридический или другой профессиональный совет, а также он не предназначен для рекомендации покупки каких-либо конкретных продуктов или услуг. Вы должны искать собственный совет у соответствующих профессиональных консультантов. Если контент предоставлен третьей стороной, обратите внимание, что мнения, высказанные, принадлежат третьей стороне и не обязательно отражают мнение Binance Academy. Цены на цифровые активы могут быть волатильными. Стоимость ваших инвестиций может как упасть, так и вырасти, и вы можете не вернуть вложенные средства. Вы несете полную ответственность за свои инвестиционные решения, и Binance Academy не несет ответственности за любые убытки, которые вы можете понести. Для получения дополнительной информации см. наши Условия использования, Предупреждение о рисках и Условия Binance Academy.