Найти в Дзене

Как работает майнинг криптовалюты?

Все новые транзакции в блокчейне отправляются в так называемый пул памяти. Задача майнера заключается в том, чтобы проверить достоверность транзакций в обработке и объединить их в блоки. Блок можно представить в виде страницы реестра блокчейна, куда вносятся несколько транзакций (вместе с другими данными). В частности, майнинг-нода отвечает за сбор неподтвержденных транзакций из пула памяти и их объединение в блок-кандидат. После этого майнер пытается преобразовать свой блок-кандидат в подтвержденный блок. Для этого необходимо найти решение сложной математической задачи, затратив немало вычислительной мощности. За каждый успешно созданный блок майнер получает вознаграждение, состоящее из новых единиц криптовалюты и комиссий за транзакции. Далее мы рассмотрим этот процесс в деталях. Шаг 1. Хеширование транзакций На первом этапе майнер извлекает необработанные транзакции из пула памяти и поочередно хеширует их. При хешировании каждой части данных майнер получает результат фиксированного

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

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

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

Шаг 1. Хеширование транзакций

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

В контексте майнинга хеш каждой транзакции состоит из строки цифр и букв, которая служит идентификатором. Хеш транзакции содержит всю информацию, содержащуюся в этой транзакции.

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

Шаг 2. Создание дерева Меркла

После хеширования каждой транзакции хеши организуются в структуру под названием дерево Меркла (или хеш-дерево). Дерево Меркла формируется путем организации хешей транзакции в пары с их последующим хешированием.

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

Дерево Меркла
Дерево Меркла

Шаг 3. Поиск действительного заголовка блока (хеша блока)

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

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

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

Шаг 4. Передача блока

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

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