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