簡單來說,候選區塊是挖掘節點(礦工)為了獲得區塊獎勵而嘗試挖掘的區塊。因此,候選區塊可以被描述為將被網路驗證或丟棄的臨時區塊。礦工們相互競爭以驗證下一個區塊並將其添加到區塊鏈中,但首先,他們必須創建一個候選區塊來參與挖礦競爭。
候選區塊是礦工透過從記憶體池收集和組織多個未確認的交易來創建的。然後對交易進行哈希處理,形成 Merkle 樹結構,最終產生 Merkle 根(或根哈希)。 Merkle 根是一個雜湊值,代表該樹之前的所有雜湊值,因此也代表該特定區塊中包含的所有交易。
根雜湊值 - 以及前一個區塊的雜湊值和一個稱為隨機數的隨機數 - 然後被放入區塊的標頭中。然後,礦工對區塊頭進行哈希處理,根據這些組件(根哈希、前一個區塊的哈希和隨機數)以及一些其他元素產生輸出。結果輸出是區塊哈希,並將作為新生成的區塊(候選區塊)的唯一識別碼。
要被視為有效,輸出(區塊雜湊)必須以一定數量的零開頭(小於由協定)。這意味著挖掘過程是基於多次嘗試(反覆試驗),因為挖掘節點必須使用不同的隨機數值執行無數的雜湊函數,直到最終產生有效的區塊雜湊。產生的區塊哈希證明礦工完成了工作(因此稱為工作量證明)。
礦工找到有效的區塊後區塊哈希,它們的候選區塊將被廣播到網路的其餘節點,這將驗證哈希的真實性。如果一切順利,候選區塊將被記錄到區塊鏈中。此時,每個驗證節點都會更新其區塊鏈資料副本以反映最近開採的區塊,礦工將獲得區塊獎勵。