Рассмотрим, что такое хеш и хеш-мощность, почему важно знать эти понятия, и как они могут помочь в добыче криптовалюты.
Скорость хеширования (хеш-мощность) - это скорость, с которой работает устройство для майнинга криптовалюты.
Для успешного майнинга скорость оборудования имеет существенное значение, поскольку главная задача майнера - раньше всех решить сложную задачу, добавить блок в цепочку и получить вознаграждение.
Функция хэширования или хэш-функция (hash-function), или функция свертки –
это детерминированная функция, на вход которой подается строка битов произвольной длины, а выходом всегда является битовая строка фиксированной длины.
Хэш - это, простыми словами, выходное значение хэш-функции, то есть полученный блок фиксированный длины.
Хэш также называют «хеш-кодом», «хеш-суммой» и «сводкой сообщения».
Хеш или хэш - как правильно?
Слово хэш берет начало с английского выражения hash - «превращать в фарш», «мешанина». В русскоязычном сообществе распространена как транслитерация “хеш”, так и написание через “э” - “хэш”.
Свойства хеш-функций
Хэш обеспечивает безопасность всего блокчейна, в этом его основная функция.
Криптографическая функция хэша, применяемая в майнинге функционирует на базе чрезвычайно сложной формулы, которую понимают только немногие. Она имеет несколько основных свойств, которые мы перечислим.
Но сначала обратимся еще к одному понятию:
Коллизия — это ситуация, когда хеш-функция преобразует более чем один массив входных данных в одинаковые сводки. Поскольку блок фиксированной длины, то он имеет ограниченное число возможных значений, а следовательно возможны повторы.
Теперь рассмотрим свойства хэш-функций:
- Детерминированность. Не имеет значения, сколько будет проведено преобразований, на выходе получается один и тот же хэш. Данное свойство дает возможность отследить исходную информацию.
- Оперативное вычисление. Хэш-функции необходимо как можно быстрее обеспечить возвращение исходной информации, иначе вся система окажется неэффективной.
- Устойчивость к коллизиям. Данное свойство обеспечивает надежную безопасность цифровых монет.
Хеширование в блокчейне Биткоин
Биткоин работает на блокчейне и использует алгоритм хеширования SHA-256 (алгоритм криптографического хеширования 256). Данный алгоритм позволяет преобразовать любой объем информации в строку из 64 символов.
В случае с биткоином хеш-функции выполняют три основные задачи:
- Майнинг – майнеры конкурируют за решение задач. Каждый майнер берет информацию из блоков, о которых они уже знают и выстраивают из них новый блок. Если на выходе алгоритм выдает значение, меньше целевой цифры, оно считается действительным и может быть принято остальными участниками сети. Майнер получает право на создание следующего блока.
- Соединение блоков – в целях дополнительной безопасности. Каждый блок в блокчейне связан с предыдущим, что достигается посредством хеш-указателя (переменные, хранящие адрес другой переменной). Каждый блок содержит результат хеширования от предыдущего блока в блокчейне. Благодаря этой функции можно легко отслеживать историю в блокчейне и исключить добавления вредоносного блока в сеть.
- Создание ключей – чтобы отправить или получить криптовалюту необходимы частный и публичный ключи. Оба ключа связаны друг с другом через хеш-функцию. Это неотъемлемый компонент, который исключает получение вашего частного ключа третьими лицами.
Процесс майнинга (биткоинов) осуществляется следующим образом:
- Берется хэш содержимого нового блока.
- К хешу добавляется одноразовый номер (случайная строка).
- Новая строка снова хешируется.
- Затем окончательный хэш сравнивается с уровнем сложности и проверяется, действительно ли он меньше этого или нет.
- Если нет, то одноразовый номер изменяется, и процесс повторяется снова.
- Если да, то блок добавляется в цепочку, а публичный реестр обновляется и получает уведомление о добавлении.
- Майнеры, ответственные за это, награждаются биткоинами.
Заключение: почему это важно?
Хеш-функцией обеспечивается высокий уровень безопасности криптовалюты. И хотя в теории ничто полностью не защищено от взломов, такой подход дает максимально высокий из доступных уровней сложности.
С помощью хеш-функции можно достигать высокого уровня безопасности систем.Также она позволяет хешировать пароли и шифровать другие данные.