在以太坊系統(tǒng)中,如果在同一區(qū)塊高度,多名礦工都挖出了新的區(qū)塊,這些區(qū)塊中,其中一個(gè)將成為最長鏈上的區(qū)塊,而其他區(qū)塊,如果被后續(xù)區(qū)塊引用,將被稱為叔塊(Uncle Block),叔塊也能得到相應(yīng)的獎(jiǎng)勵(lì)。這和比特幣不同,在比特幣系統(tǒng)中,因臨時(shí)性分叉而不在最長合法鏈上的區(qū)塊,都稱為孤塊,孤塊沒有區(qū)塊獎(jiǎng)勵(lì)。
以太坊為什么要設(shè)置叔塊獎(jiǎng)勵(lì)呢?叔塊獎(jiǎng)勵(lì)的具體規(guī)則是怎樣的呢?
以太坊為何要設(shè)置叔塊獎(jiǎng)勵(lì)?
被稱為區(qū)塊鏈2.0的以太坊,不僅是一個(gè)具有智能合約的底層公鏈平臺,它的出塊時(shí)間也比比特幣更短,平均10多秒發(fā)布一個(gè)區(qū)塊。
更短的出塊時(shí)間意味著,臨時(shí)性分叉的幾率將大幅提升。這是因?yàn)楫?dāng)?shù)V工A挖出一個(gè)新區(qū)塊后,需要向全網(wǎng)廣播,廣播的過程需要時(shí)間,由于以太坊出塊時(shí)間短,其他節(jié)點(diǎn)可能還沒有收到礦工A發(fā)布的區(qū)塊,就已經(jīng)挖出了同一高度的區(qū)塊,這就造成了臨時(shí)分叉。在以太坊網(wǎng)絡(luò)中,臨時(shí)性分叉發(fā)生的幾率在8%左右。
參考上表數(shù)據(jù),在以太坊系統(tǒng)中,每100個(gè)區(qū)塊,大約有8個(gè)叔塊產(chǎn)生,如果按照平均出塊時(shí)間為15秒計(jì)算,一個(gè)小時(shí)內(nèi)將接近20次的臨時(shí)性分叉。而比特幣系統(tǒng),因?yàn)槠骄?0分鐘才出一個(gè)區(qū)塊,有足夠的時(shí)間將新區(qū)塊廣播給全網(wǎng)其他節(jié)點(diǎn),這種臨時(shí)性的分叉幾率就相當(dāng)小。根據(jù)歷史數(shù)據(jù),大概平均3000多個(gè)區(qū)塊,才會(huì)出現(xiàn)一次臨時(shí)性分叉,相當(dāng)于20多天出現(xiàn)一次這種臨時(shí)性分叉,屬于比較“罕見”的情況。
以太坊系統(tǒng)出現(xiàn)臨時(shí)性分叉是一種普遍現(xiàn)象,如果采取和比特幣一樣處理方式,只有最長鏈上的區(qū)塊才有出塊獎(jiǎng)勵(lì),對于那些挖到區(qū)塊而最終不在最長鏈上的礦工來說,就很不公平,而且這種“不公平”將是一個(gè)普遍情況。這會(huì)影響礦工們挖礦的積極性,甚至可能削弱以太坊網(wǎng)絡(luò)的系統(tǒng)安全,也是對算力的一種浪費(fèi)。因此,以太坊系統(tǒng)對不在最長鏈上的叔塊,設(shè)置了叔塊獎(jiǎng)勵(lì)。那以太坊的叔塊獎(jiǎng)勵(lì)規(guī)則具體是怎樣的?
叔塊獎(jiǎng)勵(lì)規(guī)則
以太坊叔塊獎(jiǎng)勵(lì)規(guī)則大體如下:
1、叔塊必須是區(qū)塊的前1層至前6層“祖先”的直接子塊;
2、每個(gè)區(qū)塊最多引用兩個(gè)叔塊;
3、被引用過的叔塊不能被重復(fù)引用;
4、被引用的叔塊獲得獎(jiǎng)勵(lì)的數(shù)量,和該叔塊與引用區(qū)塊之間的間隔層數(shù)相關(guān),間隔層數(shù)越少,獎(jiǎng)勵(lì)越多。
5、引用叔塊的區(qū)塊可額外獲得出塊獎(jiǎng)勵(lì),每引用一個(gè)區(qū)塊,可以獲得出塊獎(jiǎng)勵(lì)的1/32,6、交易費(fèi)(也稱礦工費(fèi))不會(huì)分配給叔塊。
我們通過一個(gè)例子來介紹上面的規(guī)則。
假設(shè)當(dāng)前區(qū)塊高度為107(上圖中綠色區(qū)塊),它能有效引用的叔塊,只能是區(qū)塊高度為101~106的區(qū)塊,換句說叔塊的有效引用區(qū)間,最多只能在7代以內(nèi)。上圖中黃色區(qū)塊,區(qū)塊高度為100,就不在107這個(gè)區(qū)塊的有效引用范圍。圖中紅色的區(qū)塊,因?yàn)椴皇亲铋L鏈上區(qū)塊的直接子塊,這種區(qū)塊不能成為叔區(qū)塊。
如果在101和106的區(qū)塊高度,有多個(gè)沒被引用的叔塊,高度為107的區(qū)塊做多只能引用兩個(gè),而且一個(gè)叔塊被它引用后,就不能再被其他區(qū)塊重復(fù)引用。
被引用的叔塊獲得獎(jiǎng)勵(lì)數(shù)量,取決與該叔塊和引用區(qū)塊的“遠(yuǎn)近”關(guān)系。關(guān)系越近,叔塊得到獎(jiǎng)勵(lì)越多。而引用叔塊的區(qū)塊,每引用一個(gè)區(qū)塊,都能得到系統(tǒng)出塊獎(jiǎng)勵(lì)的1/32,最多只能引用兩個(gè)區(qū)塊。當(dāng)前以太坊新區(qū)塊獲得系統(tǒng)獎(jiǎng)勵(lì)為2枚以太幣(2ether),如果叔塊在間隔一層就被引用,該叔塊將獲得出塊獎(jiǎng)勵(lì)的7/8,也就是1.75ether,如果叔塊隔了6層才被引用,它獲得獎(jiǎng)勵(lì)只有0.5ether,具體如下表。
總結(jié)
以太坊系統(tǒng)的平均出塊時(shí)間只有10多秒,這導(dǎo)致臨時(shí)性分叉變得很普遍,出于公平性及系統(tǒng)安全穩(wěn)定的考慮,以太坊系統(tǒng)設(shè)置了叔塊獎(jiǎng)勵(lì)。以太坊叔塊獎(jiǎng)勵(lì)數(shù)量也顯得很”人性化“,關(guān)于越近,叔塊得到的獎(jiǎng)勵(lì)也越多。
評論
查看更多