Блок-кандидат

Середній рівень
Блок-кандидат – це блок, який майнінг-нода (майнер) намагається здобути, щоб отримати винагороду за блок. Таким чином, блок-кандидат може бути описаний як тимчасовий блок, який буде або перевірений, або відкинутий мережею. Майнери змагаються один з одним, щоб перевірити наступний блок і додати його до блокчейну, але спочатку вони повинні створити блок-кандидат для участі у змаганні з майнінгу.
Блоки-кандидати створюються майнерами шляхом збору й організації багатьох непідтверджених транзакцій з мемпулу. Потім транзакції хешуються, щоб сформувати структуру дерева Меркла, яка зрештою створить корінь Меркла (або кореневий хеш). Корінь Меркла – це один хеш, який представляє всі попередні хеші цього дерева, а отже, і всі транзакції, які були включені в цей конкретний блок.
Кореневий хеш, разом із хешем попереднього блоку й випадковим числом, яке називають nonce, потім поміщається в заголовок блоку. Потім майнер хешує заголовок блоку, генеруючи вихід на основі цих компонентів (кореневий хеш, хеш попереднього блоку й nonce) плюс кілька інших елементів. Отриманий результат є хешем блоку, який буде слугувати унікальним ідентифікатором згенерованого блоку (блоку-кандидата).
Щоб вважатися дійсним, вихід (хеш блоку) повинен починатися з певної кількості нулів (менше цільового значення, визначеного протоколом). Це означає, що процес майнінгу заснований на декількох спробах (спробах і помилках), оскільки майнінг-ноди повинні виконувати безліч хеш-функцій з різними значеннями nonce, поки в результаті не буде створено дійсний хеш блоку. Створений хеш блоку є доказом того, що майнер виконав свою роботу (тому й називається Proof of Work).
Після того, як майнер знайде дійсний хеш блоку, його блок-кандидат буде передано решті нод мережі, які перевірять справжність хешу. Якщо все в порядку, блок-кандидат буде записаний у блокчейн. На цьому етапі кожна нода-валідатор оновлює свою копію даних блокчейну, щоб відобразити нещодавно здобутий блок, і майнер отримує винагороду за блок.