Что такое алгоритм SHA-256 и как это связано с Bitcoin?

SHA-256-это криптографическая хэш-функция, которая принимает входные данные случайного размера и выдает Выходные данные фиксированного размера. Хэш-функции являются мощными, потому что они являются «односторонними». Это означает, что любой может использовать хэш-функцию для получения выходных данных при заданном входе. Однако невозможно использовать Выходные данные хэш-функции для восстановления заданных входных данных. Простым языком, это функция которая принимает входные данные (строку) любого размера и содержания. А на выходе выдает закодированную строку фиксированной длины.

Эта мощная функция хэш-функции SHA-256 делает его идеальным для использования в сети Биткоин.

Хэш-функция SHA-256 используется в сети Bitcoin двумя основными способами:

  • Для Майнинга
  • Создание адреса Биткоин кошельков

Майнинг

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

Для того, чтобы человек имел право добавить блок в блокчейн Биткойн, он должен сначала управлять так называемым узлом майнинга. После успешной настройки узла майнинга, пользователь может приступить к созданию блоков-кандидатов, которые затем передаются в сеть Биткойн для проверки их валидности. Внутри блока есть то, что известно как Заголовок блока; для построения блока есть 6 параметров, которые должны быть заполнены майнером. К ним относятся:

  • Version –  номер версии программного обеспечения Bitcoin
  • Previous block hash — ссылка на хэш предыдущего блока
  • Merkle Root –  репрезентативный хэш всех транзакций, входящих в блок
  • Timestamp  – время, в котором блок был создан
  • Target – Алгоритм доказательства работы блока
  • Nonce – переменная, используемая в процессе доказательства работы

Состав Блока Bitcoin

 

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

Это:

Предыдущий Хэш Блока = SHA-256(SHA-256(Загаловок блока))

Алгоритм SHA-256 также используется для создания Дерева хэшей,который затем вставляется в Заголовок блока. Подробное объяснение этого аспекта протокола Bitcoin можно найти здесь: Merkle Tree & Merkle Root Explained (скоро).

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

Например, если nonce будет иметь переменную «12345», она будет помещена в Заголовок блока вместе с другими 5 параметрами, перечисленными выше. Заголовок блока будет хэширован, однако, если полученный хэш окажется выше целевого значения, майнер должен повторить попытку. Затем майнер может изменить nonce на другую переменную, например, «90872», и поместить ее в Заголовок блока, при этом остальные 5 параметров остаются постоянными. Полученный хэш оказывается ниже целевого, таким образом, блок майнера затем передается в сеть, чтобы убедиться, что он действителен.

 

Создание Биткоин адресов

Чтобы получить Биткойн-адрес, приватный ключ, который является случайным образом выбранным числом, умножается с помощью эллиптической Кривой для получения публичного ключа. Затем этот открытый ключ проходит через алгоритмы хэширования SHA-256 и RIPEMD160.

 

Где K = открытый ключ и A = Биткоин-адрес:

A = RIPEMD160 (SHA-256 (K))

Использование алгоритмов хэширования SHA-256 и RIPEMD160 для создания Биткоин адреса имеет одно неоспоримое преимущество:

Короткие адреса
Более короткие адреса: открытый ключ имеет длину 256 бит, тогда как хешированная версия, т.е. Биткоин-адрес, длиной 160 бит. Это делает его намного более удобным для пользователей из-за более короткой длины символов.

Вывод

Таким образом, алгоритм хэширования SHA-256 является неотъемлемой частью протокола Bitcoin. Он видел реализацию в различных аспектах технологии, таких как: добыча биткойнов, деревья хэшей и создание Биткойн-адресов.

 

Spread the love
12345 (1 оценок, среднее: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *