хэш-алгоритмы используются во многих областях техники, особенно в криптовалютах, таких как Bitcoin (BTC). В этой статье мы сосредоточились на хэш-структурах, которые иногда используются для шифрования, а иногда для контроля целостности данных. В подготовленной нами статье мы объясним такие термины, как алгоритм хеширования, SHA-256, MD5, сводная функция. Вы можете найти подробную информацию о хэш-алгоритме, используемом в Bitcoin, в нашей статье.
Что такое хеш? Математическая операция, преобразующая входные данные в выходные данные фиксированной длины, называется хешем. Одна из целей этого процесса - скрыть данные. Например, пароли, вводимые при подписке на веб-сайты, преобразуются в хеши и записываются в базу данных. Таким образом, человек, который исследует базу данных, не может знать пароль пользователя.
Другая цель использования - создать безопасную сводку данных. Независимо от длины входных данных, хеш-код может быть сохранен для сводных целей, так как выходные данные всегда будут одинаковой длины.
При создании хеш-алгоритмов учитываются следующие четыре фактора:
- Сводку ввода должно быть легко вычислить - Должно быть очень сложно найти запись в сводных данных - Резюме должно измениться при изменении входных данных - Вероятность получения одного и того же резюме из разных записей должна быть очень низкой.
Пример алгоритма хеширования MD5. Независимо от ввода, длина вывода всегда 32 символа.
Алгоритмы хеширования и хеш-функции часто используются в приложениях электронной подписи.
Например, хеш-данные для нового черновика, состоящего из сотен страниц, представляют собой короткую строку. Вместо того, чтобы проверять весь пост, чтобы увидеть, был ли изменен черновик, достаточно взглянуть на хэш-код.
Какой алгоритм SHA-256 используется в Bitcoin? SHA (Secure Hash Algorithm - безопасный алгоритм хеширования); Это название серии алгоритмов хеширования, разработанных Агентством национальной безопасности США (NSA).
Этот стандарт начал использоваться с SHA-0 в 1993 году, а его производительность была увеличена с помощью SHA-1, разработанного в 1995 году. Стандарт SHA-2 был разработан в 2004 году после выявления различных уязвимостей. Стандарт SHA-2; SHA-224 имеет подмножества, такие как SHA-256, SHA-384 и SHA-512.
В сети Bitcoin используется алгоритм хеширования SHA-256. Стандарт SHA-256; Независимо от того, состоят ли входные данные из одной буквы или длиной в сотни страниц, они всегда обеспечивают вывод из 64 символов в шестнадцатеричных числах. Вы можете использовать ссылку здесь, чтобы увидеть рабочий пример.
Использование алгоритма SHA-256 на блокчейне В сети Bitcoin: Информация о блоке, которая включает в себя текущие транзакции между пользователями, номер блока, значение «nonce» и хэш-код предыдущего блока, объединяется и преобразуется в хэш-код в соответствии со стандартом SHA-256.
Например, на момент написания этой статьи хэш-код для транзакции передачи 2.684 в блоке 629.334, созданном в сети Bitcoin, был следующим:
Как видите, информация о более чем 2600 транзакциях преобразуется только в 64-символьный итоговый вывод. Таким образом, можно проверить только эти сводные данные вместо того, чтобы проверять все данные на предмет любых изменений в блоке.
Блоки в сети Bitcoin содержат хэш-коды предыдущего блока. Следовательно, когда данные в блоке изменяются, хэш-код также будет отличаться, поэтому обратное изменение будет сразу понято.
Можно ли взломать алгоритм хеширования SHA-256? Хотя сгенерировать хеш-вывод из входных данных легко, найти вход из хеш-данных математически почти невозможно.
Используя выходные данные, нельзя найти никаких входных данных, но можно найти простые данные, последовательно пробуя каждый символ один за другим, что называется «грубой силой».
В Интернете есть множество веб-сайтов, которые расшифровывают хэш-коды. На этих сайтах записываются данные, вводимые пользователями в систему, и их эквиваленты в алгоритмах хеширования. Таким образом, в базе данных накапливаются миллионы данных. Если имеющийся хэш-код относится к простым данным, его можно решить.
На веб-сайте md5hashing.net, на котором есть простой поиск в Google, данные преобразуются в хеш-код с помощью различных алгоритмов. Если отмечена опция «Сохранить результат», ваш поиск сохраняется в базе данных. Если полученный хэш-код введен любым пользователем в поле «Расшифровать», результат будет найден, потому что теперь он зарегистрирован в системе.
Когда мы вводим в систему хэш-код формата SHA-256 «Bitcoin», как показано выше, мы видим, что он получил ответ, потому что другой пользователь ранее сохранил эти данные в системе.
Короче говоря, можно найти хеш-коды коротких данных, состоящих из нескольких символов, с помощью упомянутых нами методов проб и ошибок. Поэтому, если вы укажете пароль «123456» при регистрации на веб-сайте, эквивалент формата SHA-256 будет таким:
Однако, как и в случае с сетью Bitcoin, с помощью современных технологий невозможно отменить хэш-код, в котором преобразуются данные блока, содержащие тысячи транзакций передачи. Однако мы не знаем, что нас ждет в будущем.