Что такое хеш?

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

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

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

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

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

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

Чтобы проиллюстрировать это, давайте запустим слова "Binance" и "binance" через алгоритм SHA-256 ), используемый в Bitcoin (.

ША-256 Вход: Binance Выход: f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191

Вход: binance Выход: 59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2

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

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

ША-1 Вход: Binance Выход: 7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1

Вход: binance Выход: e58605c14a76ff98679322cca0eae7b3c4e08936

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

Почему они важны?

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

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

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

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

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

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

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

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

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

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

Сопротивление к предобразу

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

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

Сопротивление второй пре-изображении

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

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

Майнинг

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

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

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

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

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

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

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