[英]Transaction Validity in bitcoin blockchain
我正在閱讀有關區塊鏈在比特幣交易中的工作,對此我了解很多,這些塊是相互連接的,塊包含前一個塊的 hash,每當創建一個塊時,礦工都會嘗試解決所謂的數學難題工作量證明,無論誰先解決它,都可以獲得一個比特幣並添加該區塊,具有最長的區塊將被視為有效區塊鏈
我沒有得到的是,只要有一組交易,就會創建一個塊,假設其中一個交易是無效的,那么礦工將開始做的是解決一個難題,但是那個難題必須做什么檢查該無效交易?
塊拼圖與交易有效性或無效性無關。
每當礦工(或另一個節點)從對等節點接收到新交易時,他都會根據現有區塊鏈和一些內部規則來驗證交易。 如果交易有效,礦工將此交易添加到內存池中,並轉發給對等方。
當交易添加到內存池時,內存池的默克爾根會發生變化,它出現在區塊 header 中。
在此過程中,礦工試圖 select隨機值,以生成小於目標值的塊 header 的 hash。
如果礦工發現一個隨機數,滿足網絡規則,他將塊分發給對等點,僅包含有效交易(從內存池打包)。
對等節點,無論何時收到塊,驗證來自該塊的所有交易,並使用檢查 merkle 樹和塊 hash 驗證塊的完整性。
因此,如果惡意礦工將無效交易添加到他的區塊中,他的同行只會拒絕該區塊。
他們首先解決了這個難題,在找到所需的 nonce 后,他們創建了一個包含來自 mempool 的 VALID 交易、先前的 hash 和一個特定交易的塊,向自己發送交易費用和解決難題的獎勵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.