Blockchain

比特幣制衡

  • March 25, 2019

創建新區塊時,是否需要驗證每個區塊?它與驗證交易有何不同?

當礦工可以花時間挖礦時,為什麼他們會浪費時間驗證交易和區塊

當礦工可以花時間挖礦時,為什麼還要浪費時間驗證交易和區塊?

當礦工成功挖出一個區塊時,他們會通過網路傳輸該區塊。隨著區塊開始在網路中傳播,每個完整節點都會收到區塊的副本,並在驗證後將區塊添加到現有鏈中。現在考慮一種情況,即開采的區塊不符合共識規則。當全節點接收到塊時,它們會驗證塊以確保它符合驗證標準,如果塊無效,全節點將拒絕該塊並且不會進一步傳輸它。因此,那些不滿足共識規則的礦工將被拒絕他們的區塊,並將失去他們的區塊獎勵和他們為探勘區塊所付出的努力。

創建新區塊時,是否需要驗證每個區塊?它與驗證交易有何不同?

當全節點收到區塊時,每個節點都會進行一系列檢查,以確保區塊符合共識規則。類似地,當交易被廣播時,每個接收交易的完整節點都會在將其包含到記憶體池之前進行檢查。如果交易無效,該交易將被拒絕並且不會被該節點進一步廣播。區塊中包含的所有有效交易都是區塊驗證標準的子集。您可以在此處參考比特幣 wiki 頁面以獲取有關交易和區塊驗證的清單。

創建新區塊時,是否需要驗證每個區塊?

是的,必須驗證新塊。

它與驗證交易有何不同?

一個塊包含的資訊不僅僅是交易。塊本身必須是有效的,並且塊的有效不僅僅是它包含的交易有效。區塊頭中有必須檢查的資訊。必須檢查訂單或交易。還有一些交易規則只有在交易被包含在區塊中時才能被驗證。

當礦工可以花時間挖礦時,為什麼他們會浪費時間驗證交易和區塊

如果礦工不花時間驗證區塊和交易,那麼最終可能會在無效的區塊鏈上進行探勘。如果他們探勘的任何塊包含無效塊(也可能包含無效交易),那麼這些塊也將是無效的,並且該礦工所做的探勘工作將被浪費。通過確保他們始終在有效區塊之上進行探勘,礦工確保他們不會浪費任何工作。驗證區塊和交易不會浪費時間,而是確保他們的錢不會被浪費。

過去,礦工在對其進行探勘之前放棄了對區塊的驗證,這導致了採礦能力的嚴重浪費。例如,2015 年發生了一次分叉,因為一些礦工沒有驗證他們正在開采的區塊,以便他們可以最大限度地利用他們進行採礦工作的時間。然而,這對他們適得其反,因為它導致在無效塊之上產生了幾個塊。因此,這些塊也是無效的,並且被比特幣網路的其餘部分忽略。這些礦工無法從這些區塊中獲得區塊獎勵,因此浪費了時間和金錢。如果他們正在驗證他們正在探勘的區塊,則可以避免這種情況。

引用自:https://bitcoin.stackexchange.com/questions/85594