Как работает майнинг?

Опубликовано: 10 Июля, 2021

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

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

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

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

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

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


Таблица - Структура блока
Блокировать 8896
Кол-во транзакций 1800
Стоимость транзакции $ 1349873
Отметка времени 2017-11-11 01:35:55
Передано ЧерезBTC
Сложность 1765987453897,67
Размер 1063.67 кБ
Nonce 880
Блокировать хеш 0000abcdcee78ab745b9f…

Блок фактически содержит намного больше полей, чем упомянутые выше. Но пока мы сосредоточимся на полях Block Hash и Nonce.

  1. Блокировать хеш -
    Что ж, данные в блокчейне могут быть «сохранены» путем хранения хэшей данных, так что вы можете по крайней мере проверить, что это те данные, чей хеш был сохранен, если у вас есть данные для хеширования самостоятельно, и сверить их с данными в блокчейне. . Дерево Меркла - один из способов сделать это. Обратитесь к следующей диаграмме, чтобы понять, почему используется дерево Меркла.


    Рисунок - Дерево Меркла

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

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



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

  2. Одноразовый номер -
    Здесь в игру вступает концепция Nonce. Nonce означает «Число, используемое только один раз». Как мы знаем, майнер должен вычислить хэш, который должен быть ниже назначенного ему целевого хеша. Но он не может изменить номер блока, данные, предыдущий хеш, чтобы угадать новый хеш из-за эффекта лавины. Единственное поле, которое он может изменять, - это Nonce.

    Одноразовый номер - это 32-битное число. Таким образом, может быть максимум около 4 миллиардов возможных значений Nonce как 2 ^ (32) = 4, 294, 967, 296.

    Одноразовый номер выбирается случайным образом для каждой итерации. Таким образом, для каждой итерации выбирается случайное целое число от 0 до 4, 294, 967, 296.

    Рассмотрим следующую таблицу:

    Блокировать 8896
    Кол-во транзакций 1800
    Стоимость транзакции $ 13849673
    Отметка времени 2017-11-11 01:35:55
    Передано ЧерезBTC
    Сложность 1456324543655.677
    Размер 1066.34 Кбайт
    Nonce 880
    Блокировать хеш 000abddbcdef673bedb4…


    Рисунок - все возможные хеши

    На приведенном выше рисунке кружки представляют хеш-значение, полученное для определенного значения одноразового номера. Черные кружки означают, что вычисленный хэш недействителен. Зеленый кружок представляет действительный хеш. ЦЕЛЬ, назначенная майнеру, подразумевает, что блок может быть добыт майнером только в том случае, если вычисленный хэш состоит из 4 ведущих нулей здесь (только в качестве примера. Целевой хэш может варьироваться с несколькими ведущими нулями). Все хэши, превышающие этот, будут отброшены.

    Мы начинаем со значения одноразового номера 88, что, как мы видим, дает хеш, больший, чем целевой хэш. Значение nonce изменяется на 777, и хэш пересчитывается. Мы повторяем процесс до тех пор, пока не найдем одноразовый номер, который дает хэш, значение которого меньше целевого хэша. Согласно приведенному выше рисунку, это происходит при значении Nonce 7778. Теперь блок может быть аутентифицирован майнером и добавлен в цепочку блоков.