Mining-Theory
交易驗證
我知道礦工通過檢查雙重支出來驗證交易,並且交易尚未確認,我不明白的是,當他們擁有的所有數據都是交易時,礦工如何能夠做到這一點。
- 礦工是否維護一個包含網路中所有節點的 UTXO 詳細資訊的 UTXO 集?如果是這種情況,那麼在給定的時間點,任何不同的礦工所維護的 UTXO 集可能是不同的。
- 現在,一旦該區塊被廣播到網路上,我們就知道其他礦工通過在此之上探勘下一個區塊來表達他們對該區塊的接受。但在此之前,他們會驗證剛剛發布的區塊。他們如何驗證這個區塊?另外,當他們可以通過創建下一個區塊來節省時間時,他們為什麼還要關心這樣做呢?是不是我們假設
真正有興趣賺錢的礦工誠實?
首先,網路上的每個節點都維護一個 UTXO 集。不僅是礦工。
到 1. UTXO 集是通過從一開始就應用鏈中每個塊中的所有交易來創建的。到達鏈尖時仍未花費的所有交易都在 UTXO 集中。區塊越舊,整個網路擁有相同區塊的機率就越高。相等的塊導致相等的 UTXO 集。
**到 2.**每個節點都驗證區塊,而不僅僅是礦工。如果一個區塊遵循共識規則,它就被認為是有效的。一個共識規則是,每筆支出交易 (TXO) 必須在目前(預接受)UTXO 集或在同一塊早期創建的 TXO 中。區塊驗證不會干擾實際挖礦(僅在短時間內,當區塊被接受並且必須將新的區塊模板推送到 ASIC 時)。驗證發生在主機 CPU 上,實際的探勘部分發生在 ASIC 中。如果礦工不驗證無效區塊,他會浪費時間/電力/金錢在前一個無效區塊之上探勘無效區塊。