Block
一個新區塊是否必須包含在其生成之前發生的所有交易?網路延遲呢?
我讀了到底什麼是採礦?比特幣礦工真正解決了什麼問題?,但有人想知道:如果在挖礦時有新交易進來會發生什麼?為了回答這個問題,我發現交易會影響區塊的發現嗎?,如果我理解正確的話,它說採礦必須“重新開始”(但在第一次嘗試中找到“nonce”的機會與任何後續嘗試大致相同,因此沒有“工作損失”)。
但是,網路延遲呢?新交易必須花費有限的時間才能到達礦工手中——那麼如果礦工解決了一個區塊,但隨後收到了一個在區塊被解決之前帶有時間戳的交易,會發生什麼?
礦工可以完全自由地選擇他們將哪些交易包含在他們的區塊中。大多數礦工將包括到達他們的任何交易(假設它包括適當的費用),但沒有什麼迫使他們這樣做。
但是,如果礦工出於某種原因決定省略特定交易,或者由於時間意外而省略,則不會造成永久性傷害。另一個礦工可以毫無問題地將該交易包含在以後的區塊中。交易本身甚至沒有時間戳,因此如果需要很長時間(除了給相關各方帶來不便),這不是問題。(Blockchain.info 及其同類可能會記錄他們第一次在網路上看到交易的時間,但據我所知,該時間戳並不是交易本身的一部分。)