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