Понимание хеш-функций в Криптовалюте

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

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

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

Как работает хеш-функция?

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

Чтобы проиллюстрировать, давайте пропустим слова "Gate" и "Gate" через алгоритм хеширования SHA-256 ( тот, который используется в Bitcoin).

ША-256

Вывод

Вывод (256 бит)

Гейт

7f43e4e2c9d9e6249ba0df8a911b46400f6fd5e9993a5f1ea65e4633e2de5a6c

Гейт

9c6b057a2b9d96746c38a3f4e466678e1b4c4425ff8fe9659e96c903e7a1f3cc

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

И если мы пропустим те же данные через алгоритм хеширования SHA-1, мы получим следующие результаты:

ША-1

Вывод

Вывод (160 бит)

Гейт

f8e4eba8d46e2b1079e6a1a8abf0a0d8c3a81d73

Гейт

b7e23ec29af22b0b4e41da31e868d57226121c84

Интересно, что SHA означает Secure Hash Algorithms. Это набор криптографических хэш-функций, который включает алгоритмы SHA-0 и SHA-1, а также группы SHA-2 и SHA-3. SHA-256 является частью семейства SHA-2, вместе с SHA-512 и другими вариантами. В настоящее время только группы SHA-2 и SHA-3 считаются безопасными.

Почему эта технология важна?

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

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

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

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

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

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

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

  • Устойчивость к коллизиям: невозможность найти два разных входа, которые производят одинаковый хеш.

  • Первая стойкость к предобразу: невозможность "обратить" хеш-функцию (, найти входные данные по заданному выходу ).

  • Сопротивление вторичному изображению: невозможность найти второй ввод, который имеет такой же хеш, как первый.

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

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

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

Среди различных алгоритмов SHA группы SHA-0 и SHA-1 больше не являются безопасными, так как были обнаружены коллизии. В настоящее время только группы SHA-2 и SHA-3 считаются устойчивыми к коллизиям.

Первое сопротивление изображению

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

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

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

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

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

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

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

Майнинг

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

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

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

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

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

Заключение

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

IN-1.12%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Репост
  • Поделиться
комментарий
0/400
Нет комментариев
  • Закрепить