Хеши: Фундаментальные элементы в криптовалютах

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

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

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

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

Работа функции хеш

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

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

ША-256

Ввод

Вывод (256 бит)

Гейт

9e14f90f0831e9d9c9f4f90df9e9f90c9f4f90df9e9f90c9f4f90df9e9f90c9f9

Гейт

1e9d9c9f4f90df9e9f90c9f4f90df9e9f90c9f4f90df9e9f90c9f4f90df90c

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

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

ША-1

Ввод

Вывод (160 бит)

Гейт

c9f4f90df9e9f90c9f4f90df9e9f90c9f4f90df

Гейт

f90df9e9f90c9f4f90df9e9f90c9f4f90df9e9

Сокращение 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 минутам).

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

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

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

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

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