Block
為什麼將交易分組到塊中?(拼圖創建)
為什麼將交易分組到塊中(第 2 部分)?
- 假設我們剛剛在鏈上放了一個塊。在那一刻,協議是否會創建一個新的獨特難題來解決?在那一刻之前知道新的謎題嗎?不同的謎題能否同時共存(讓使用者並行解決不同的謎題)?
編輯:從這個意義上說,難題意味著目標(每 2016 個塊更改一次)、散列函式和礦工用來猜測解決方案的其他協議強加要求的組合。
“謎題”比喻可能沒有幫助。目標始終相同:創建一個區塊,其頭部的雜湊值足夠小,小於目前目標。
所以每個礦工都可以按照自己的意願創建一個區塊,只要它符合協議的一般要求(所有交易都經過有效簽名,區塊獎勵不大於目前標準值等),然後開始改變隨機數希望找到一個使散列足夠小的值。沒有一個集中的權威或協議可以分發塊供人們使用。
實際上,這意味著沒有兩個礦工在完全相同的區塊上工作。兩個不同的獨立礦工會有不同的區塊,因為每個人都會有一個 coinbase 交易,將獎勵支付到他自己的地址。同一池的兩個不同成員將被分配同一塊的不同變體,以避免重複工作(也許每個人都會將自己的標識符放在塊中的某個位置)。
在某種意義上,**目標是由協議唯一確定的。**比特幣協議根據先前區塊的時間戳指定如何計算目標;這確保了它會根據網路的總挖礦能力進行調整,以保持出塊時間大致恆定在 10 分鐘。應該是網路上的所有礦工都使用相同的目標值與他們的區塊進行比較。
所以從這個意義上說,每個人都在嘗試解決相同的“難題”(針對相同的目標),但每個人都在嘗試不同的方法來解決問題(不同的候選塊)。
目標僅每 2016 個區塊(大約每兩週)更改一次。所以大多數時候,你可以知道下一個塊之後的目標是什麼:與目前目標相同。如果下一個區塊是 2016 年的倍數,那麼您需要等到它被探勘出來,因為它的時間戳將參與下一個目標的計算。