Блок-кандидат
Если кратко, блок-кандидат — это блок, который майнинг-
нода (майнер) пытается создать, чтобы получить вознаграждение за блок. Таким образом, блок-кандидат можно описать как временный блок, который будет либо подтвержден, либо отклонен сетью. Майнеры соревнуются друг с другом, стремясь подтвердить следующий блок и добавить его в блокчейн, но сначала они должны создать блок-кандидат, чтобы присоединиться к
майнингу.
Майнеры создают блоки-кандидаты, собирая и организуя несколько неподтвержденных транзакций из мемпула. Затем транзакции хешируются, образуя структуру
дерева Меркла, которая в конечном итоге создает корень Меркла (или корневой хеш). Корень Меркла — это единый хеш, который содержит информацию обо всех предыдущих хешах дерева, а значит, и обо всех транзакциях, которые были включены в конкретный блок.
Корневой хеш вместе с хешем предыдущего блока и случайным числом
nonce (нонс) помещается в заголовок блока. Затем майнер хеширует заголовок, который генерирует выходной сигнал на основе этих компонентов (хеш корня, хеш предыдущего блока и nonce) плюс несколько других элементов. В результате получается хеш блока, служащий уникальным идентификатором вновь созданного блока (блока-кандидата).
Валидным считается только тот результат (хеш блока), который начинается с определенного количества нулей (меньше целевого значения, определяемого протоколом). Это означает, что процесс майнинга основан на многочисленных попытках (метод проб и ошибок), поскольку майнинг-ноды должны выполнить множество функций хеширования с различными значениями nonce, прежде чем они получат правильный хеш блока. Созданный хеш служит доказательством того, что майнер выполнил свою работу: отсюда и название механизма
Proof of Work (доказательство работы).
После того, как майнер находит достоверный хеш блока, его блок-кандидат транслируется остальным нодам сети, которые проверяют подлинность хеша. Если все верно, то блок-кандидат записывается в
блокчейн. В этот момент каждая нода-валидатор обновляет свою копию данных блокчейна, чтобы отметить недавно созданный блок, а майнер получает вознаграждение за блок.