Хеш: Основополагающая концепция в криптографии и блокчейне

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

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

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

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

Функционирование функции хеш

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

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

ША-256

Вход

Выход (256 бит)

Гейт

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Гейт

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

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

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

ША-1

Вход

Выход (160 бит)

Гейт

3a7bd3e2360a3d29eea436fcfb7e44c735d117c4

Гейт

5df9954f1ca26eabf18c663cc9258ba7f7712c45

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

Важность хеширования

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

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

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

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

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

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

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

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

  • Предыдущая устойчивость к изображению: нецелесообразно "обратить" хеш (, чтобы найти вход для данного выхода ).

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

Сопротивление столкновению

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

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

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

( Предыдущая сопротивляемость к изображению

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

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

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

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

Чтобы упростить, можно сказать, что стойкость второй предобраза находится на каком-то промежуточном уровне между другими двумя свойствами. Атака второго предобраза происходит, когда кто-то может найти конкретный ввод, который генерирует тот же вывод, что и другой ввод, который он уже знает.

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

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

Майнинг и хеширование

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

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

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

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

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

Финальные размышления

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

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