區(qū)塊鏈隨機(jī)節(jié)點(diǎn)的選擇過(guò)程
區(qū)塊鏈共識(shí)是指所有各方就一個(gè)區(qū)塊(一組交易)的有效性以及將該區(qū)塊納入鏈上的過(guò)程。
網(wǎng)絡(luò)中可能有數(shù)千個(gè)節(jié)點(diǎn),每個(gè)人都不能同時(shí)提出有效的事務(wù)集,因此需要隨機(jī)選擇一個(gè)節(jié)點(diǎn)來(lái)提出新的塊。隨機(jī)選擇節(jié)點(diǎn),保證不存在集中控制。
節(jié)點(diǎn)的隨機(jī)選擇有很多方式,這就是區(qū)塊鏈共識(shí)中的不同算法。本文將介紹其中一些流行的算法和隨機(jī)節(jié)點(diǎn)的選擇過(guò)程。
第一個(gè)提出的算法是工作量證明(PoW)。該算法要求節(jié)點(diǎn)解決一個(gè)密碼難題,無(wú)論哪個(gè)節(jié)點(diǎn)只要首先解決了難題,它都有權(quán)構(gòu)建下一個(gè)塊。該算法的隨機(jī)性是建立在加密難題只能通過(guò)蠻力來(lái)解決的基礎(chǔ)之上,所以同一節(jié)點(diǎn)幾乎提出連續(xù)兩個(gè)塊。一旦隨機(jī)選取節(jié)點(diǎn)提出塊,其余節(jié)點(diǎn)驗(yàn)證將會(huì)解謎并接受新的塊。
該算法具有極大的隨機(jī)性和可靠性。但是,由于所有節(jié)點(diǎn)都在爭(zhēng)著解決這個(gè)難題,所以會(huì)有大量的電能浪費(fèi)。
因此,第二種流行的算法是厲害關(guān)系證明 (PoS)。在這種機(jī)制中,希望成為塊提出者的節(jié)點(diǎn)必須阻止一些加密貨幣,這將確保節(jié)點(diǎn)的可靠性和誠(chéng)實(shí)性。這里的隨機(jī)性是建立在有許多節(jié)點(diǎn)愿意下注的基礎(chǔ)之上的。也就是說(shuō)出價(jià)最高的人可以提出構(gòu)建下一個(gè)項(xiàng)目。隨機(jī)性降低到只有一組節(jié)點(diǎn)擁有大量的加密貨幣,但仍然提供了可靠性,因?yàn)槿绻@些節(jié)點(diǎn)惡意行為,加密貨幣的價(jià)值將下降。他們也會(huì)受到懲罰。
權(quán)益證明的變體是股權(quán)權(quán)益證明(DPoS)。在這種情況下,放置權(quán)益的節(jié)點(diǎn)不會(huì)自己提議塊,但是他們會(huì)進(jìn)一步提名提出下一個(gè)塊的節(jié)點(diǎn)。隨機(jī)性與PoS算法的隨機(jī)性非常相似。
授權(quán)證明(PoA)是另一種預(yù)先定義了所建議節(jié)點(diǎn)的算法。該算法具有最少的隨機(jī)性,因?yàn)楣?jié)點(diǎn)是預(yù)先授權(quán)和已知的。這給區(qū)塊鏈帶來(lái)了許多集中化特性,這并不總是可取的,然而,對(duì)于這種共識(shí)也有一些用例。
英特爾實(shí)現(xiàn)了另一種獲得隨機(jī)性的方法是基于節(jié)點(diǎn)CPU等待時(shí)間的區(qū)塊鏈共識(shí)。這種算法被稱(chēng)為“運(yùn)行時(shí)間證明”(PoET)。然而,這只能在英特爾的電腦上使用。
另一種流行的算法是實(shí)用的拜占庭容錯(cuò)算法(pBFT)。該算法不使用一個(gè)塊的單一提出者節(jié)點(diǎn),而是每個(gè)節(jié)點(diǎn)同時(shí)驗(yàn)證事務(wù),并且需要對(duì)該塊進(jìn)行鏈上包含多數(shù)的節(jié)點(diǎn)進(jìn)行投票。
雖然在開(kāi)發(fā)的不同階段有許多算法,但唯一經(jīng)過(guò)驗(yàn)證的算法是工作量證明,并且在大多數(shù)加密貨幣中使用。在未來(lái)幾年里,這將是一個(gè)值得關(guān)注的領(lǐng)域。