驗(yàn)證新區(qū)塊
比特幣共識(shí)機(jī)制的第三個(gè)步驟是網(wǎng)絡(luò)上的每個(gè)節(jié)點(diǎn)獨(dú)立驗(yàn)證新區(qū)塊。當(dāng)新發(fā)現(xiàn)的區(qū)塊在網(wǎng)絡(luò)中傳播時(shí),每個(gè)節(jié)點(diǎn)在將其繼續(xù)發(fā)送到它的對(duì)等節(jié)點(diǎn)前,會(huì)進(jìn)行一系列的測(cè)試工作,以驗(yàn)證其有效性。結(jié)果就是,只有有效的區(qū)塊才會(huì)被傳播到網(wǎng)絡(luò)當(dāng)中。獨(dú)立驗(yàn)證也保證了誠(chéng)實(shí)礦工挖出的新區(qū)塊能被區(qū)塊鏈接納,并贏得獎(jiǎng)勵(lì)。而那些不誠(chéng)實(shí)的礦工,其區(qū)塊將被拒絕,不僅失去獎(jiǎng)勵(lì),也浪費(fèi)了尋找工作量證明解的努力,甚至連電力成本都無(wú)法得到補(bǔ)償。
當(dāng)一個(gè)節(jié)點(diǎn)接收到新區(qū)塊時(shí),它將依據(jù)一個(gè)長(zhǎng)長(zhǎng)的規(guī)則列表對(duì)其進(jìn)行驗(yàn)證,如果不符合任一要求,區(qū)塊將被拒絕。這些規(guī)則可以在比特幣核心客戶(hù)端的函數(shù)CheckBlock和CheckBlockHeader中查到,主要包括如下內(nèi)容。
●區(qū)塊數(shù)據(jù)結(jié)構(gòu)的語(yǔ)法正確。
●區(qū)塊頭哈希比目標(biāo)難度?。ù_保滿足工作量證明要求)。
●區(qū)塊的時(shí)間戳早于未來(lái)2小時(shí)(允許時(shí)間錯(cuò)誤)。
●區(qū)塊大小在允許范圍內(nèi)。
●第一個(gè)交易(只有第一個(gè))是一個(gè)鑄幣交易。
●區(qū)塊中的所有交易有效,通過(guò)交易檢查列表驗(yàn)證(參看本章中“獨(dú)立交易驗(yàn)證”)。
每個(gè)新區(qū)塊均接受所有節(jié)點(diǎn)的獨(dú)立驗(yàn)證,這樣確保了礦工不能進(jìn)行欺詐。在前面幾節(jié)中,我們研究了礦工們?nèi)绾蝿?chuàng)建一筆特殊交易,以獲得在此區(qū)塊中產(chǎn)生的新比特幣和交易費(fèi)。為什么礦工不能隨意創(chuàng)建一個(gè)交易給自己發(fā)送1000比特幣,而只能獲得正確的獎(jiǎng)勵(lì)金額呢?原因在于每個(gè)節(jié)點(diǎn)都是基于相同的規(guī)則來(lái)驗(yàn)證區(qū)塊的。一個(gè)無(wú)效的鑄幣交易會(huì)導(dǎo)致整個(gè)區(qū)塊無(wú)效,并被其他節(jié)點(diǎn)拒絕,永遠(yuǎn)無(wú)法成為賬本的一部分。礦工必須創(chuàng)建完美的區(qū)塊,基于所有節(jié)點(diǎn)接受的公共規(guī)則,并且根據(jù)正確的工作量證明方法進(jìn)行挖礦。為了完成這個(gè)證明,他們已經(jīng)投入大量的電力挖礦,如果涉嫌欺詐,所有的電力投入和挖礦努力都將付之東流。這就是為什么獨(dú)立驗(yàn)證會(huì)成為去中心化共識(shí)的重要組成部分。
免責(zé)聲明:以上內(nèi)容源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請(qǐng)告知,我們將盡快刪除相關(guān)內(nèi)容。