Kandidatblock
Kort sagt är ett kandidatblock ett block som en
utvinningsnod (miner) försöker bryta för att få blockbelöningen. Så ett kandidatblock kan beskrivas som ett tillfälligt block som antingen valideras eller kasseras av nätverket. Miners tävlar med varandra för att validera nästa block och lägga till det i blockkedjan, men först måste de skapa ett kandidatblock för att delta i
utvinningstävlignen.
Kandidatblock skapas av miners genom att samla in och organisera flera obekräftade transaktioner från minnespoolen. Transaktionerna hashas sedan för att bilda en
Merkle-trädstruktur, som så småningom kommer att producera en Merkle-rot (eller rot-hash). Merkle-roten är en enda hash som representerar alla tidigare hashar av det trädet och därför alla transaktioner som inkluderades i just det blocket.
Rot-hashen – tillsammans med hashen från föregående block och ett slumptal som kallas
nonce – läggs sedan in i blockets rubrik. Blocktiiteln hashas sedan av minern, vilket genererar utdata baserad på dessa komponenter (rot-hash, föregående blockets hash och nonce) plus några andra element. Resulterande utmatning är blockhashen och fungerar som en unik identifierare för det nyligen genererade blocket (kandidatblocket).
För att anses vara giltig måste utmatningen (blockhash) börja med ett visst antal nollor (lägre än ett målvärde som definieras av protokollet). Detta innebär att utvinningsprocessen är baserad på flera försök (försök och misstag) eftersom utvinningsnoderna måste utföra en myriad av hashfunktioner med olika nonce-värden tills en giltig blockhash så småningom produceras. Blockhashen som produceras är det som bevisar att minern gjorde sitt arbete (därav
bevis på arbetsinsats).
När en miner hittar en giltig blockhash kommer deras kandidatblock att sändas till resten av noderna i nätverket, vilket kommer att verifiera hashens äkthet. Om allt är bra kommer kandidatblocket sedan att registreras i
blockkedjan. Vid denna tidpunkt uppdaterar varje valideringsnod sin kopia av blockkedjedata för att återspegla det nyligen utvunna blocket och minern får blockbelöningen.