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