03.12.2024

Какую задачу выполняют майнеры в блокчейне?

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

Задача майнинга

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

Для того, чтобы стать майнером необходимо выполнить ряд обязательных действий.

Во-первых, нужно присоединиться к децентрализованной сети и тем самым стать еще одним ее узлом.

Во-вторых, начать перехват и подтверждение новых блоков и транзакций в блокчейне.

В-третьих, непосредственно осуществлять поддержку работоспособности распределенной сети.

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

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

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

Процесс поиска блока

Ниже мы расскажем, что такое процесс обнаружения валидного («правильного») блока, за которого сражаются все майнеры, не щадя своего оборудования.

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

В связи с этим, первая задача майнера – сбор всех транзакций, полученных от майнингового пула, в дерево Меркла.

Далее майнером создается блок с валидным заголовком, указывающим на предыдущий блок. После этого решается самая сложная задача – поиск nonce (случайный код). Это необходимо для того, чтобы начало хэша заголовка имело нужное количество нулей.

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

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

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

Сложность нахождения nonce

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

Резюмируя, сложность на сегодняшний день составляет 266, что является достаточно большим числом. Для сравнения, данное число – население нашей планеты в квадрате.

Как определить сложность майнинга

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

Таким образом, сложность майнинга пересчитывается на регулярной основе в целях поддержания средней скорости создания и подтверждения новых блоков. Средняя скорость составляет – 1 блок каждые 10 минут. Данная константа была установлена Сатоши Накамото в ходе создания экосистемы биткоина.

Стоит отметить, что сложность майнинга зависит от многих факторов. Среди основных необходимо отметить следующие:

  • Активность на рынке криптовалют;
  • Количество новых майнеров в сети;
  • Текущий рыночный курс цифровой валюты;
  • Увеличение мощностей для вычисления кода.

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

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