時(shí)間:2021-04-04|瀏覽:1158
比特幣網(wǎng)絡(luò)大致分為兩種類型,一種類型為錢包節(jié)點(diǎn),它不負(fù)責(zé)生成區(qū)塊,而是利用錢包對(duì)應(yīng)的私鑰來(lái)簽署屬于此賬戶的未消費(fèi)交易記錄,然后生成新的交易記錄(轉(zhuǎn)至指定賬戶)并將之傳播到比特幣網(wǎng)絡(luò),錢包定期從比特幣網(wǎng)絡(luò)中獲取錢包對(duì)應(yīng)的公共密鑰地址的所有未消費(fèi)交易記錄,這些公共交易記錄所涉及的比特幣總數(shù)即是該賬戶的余額。另外一種類型是挖礦節(jié)點(diǎn),它收集交易記錄,然后刪除重復(fù)的交易記錄,然后對(duì)交易記錄進(jìn)行簽名驗(yàn)證,然后將驗(yàn)證成功的數(shù)據(jù)放入交易池,在開始生成下一個(gè)數(shù)據(jù)塊時(shí)將交易池中的記錄全部放入該數(shù)據(jù)塊。
在比特幣網(wǎng)絡(luò)的多個(gè)節(jié)點(diǎn)之間進(jìn)行競(jìng)爭(zhēng),看誰(shuí)先找到滿足條件的值,一旦某個(gè)節(jié)點(diǎn)先找到了,就會(huì)把新產(chǎn)生的區(qū)塊分發(fā)出去,而其他節(jié)點(diǎn)一旦收到,就會(huì)停止挖掘,將該區(qū)塊寫到自己保存的區(qū)塊鏈中,然后將新區(qū)塊的散列值作為previous_hash開始挖掘下一個(gè)區(qū)塊。
當(dāng)兩個(gè)比特幣網(wǎng)絡(luò)節(jié)點(diǎn)幾乎同時(shí)計(jì)算出滿足條件的nouce值并將其傳播到網(wǎng)絡(luò)中時(shí),該如何解決整個(gè)網(wǎng)絡(luò)的沖突?
在比特幣網(wǎng)絡(luò)中,人們一致認(rèn)為只有最長(zhǎng)的鏈才能維持,但是此時(shí)網(wǎng)絡(luò)中有兩個(gè)高度相同的區(qū)塊在網(wǎng)絡(luò)中傳輸,解決辦法是網(wǎng)絡(luò)中的節(jié)點(diǎn)接收到哪個(gè)區(qū)塊并根據(jù)其哈希值挖掘下一個(gè)區(qū)塊,這將導(dǎo)致部分節(jié)點(diǎn)承諾延長(zhǎng)A鏈,部分節(jié)點(diǎn)承諾延長(zhǎng)B鏈,見(jiàn)圖2。在此之后,如果某個(gè)節(jié)點(diǎn)挖出了一個(gè)新的區(qū)塊,那么與該新區(qū)塊對(duì)應(yīng)的鏈將被整個(gè)比特幣網(wǎng)絡(luò)所承認(rèn)。簡(jiǎn)而言之,一個(gè)簡(jiǎn)單的句子就是只維持一個(gè)最長(zhǎng)的鏈,每一個(gè)鏈的長(zhǎng)度相同,則每個(gè)節(jié)點(diǎn)都要延長(zhǎng)它自己首先收到的鏈。
如果有惡意勢(shì)力在操縱區(qū)塊鏈,那么區(qū)塊鏈分叉就需要超過(guò)51%的算力,以取代存在正常用戶交易記錄的區(qū)塊鏈,方法是生成更長(zhǎng)的鏈(在區(qū)塊中放置什么交易由他們決定)。值得注意的是,它們生成的區(qū)塊中存儲(chǔ)的必須是有效的交易,否則將被其他比特幣網(wǎng)絡(luò)節(jié)點(diǎn)視為惡意節(jié)點(diǎn),無(wú)法進(jìn)行交易驗(yàn)證。所以它們只能破壞其他人進(jìn)行的交易,因?yàn)樗鼈児室獠粚⑦@些交易寫入所產(chǎn)生的區(qū)塊,而其他普通節(jié)點(diǎn)想要寫入這些交易,但它們所產(chǎn)生的區(qū)塊會(huì)被更長(zhǎng)的替代。只要他們沒(méi)有這些帳戶對(duì)應(yīng)的鑰匙,惡意勢(shì)力就不能使用其他帳戶的余額。
希望深入了解比特幣網(wǎng)絡(luò)運(yùn)營(yíng)的朋友,可以繼續(xù)關(guān)注我,我們一起探討,共同前進(jìn)!
熱點(diǎn):比特幣 區(qū)塊鏈 挖礦 數(shù)據(jù) 比特幣是怎么產(chǎn)生的 比特幣 錢包 比特幣網(wǎng)