1. 程式人生 > >以太坊中的叔塊(uncle block)

以太坊中的叔塊(uncle block)

孤塊(orphan block)

在比特幣協議中,最長的鏈被認為是絕對的正確。如果一個塊不是最長鏈的一部分,那麼它被稱為是“孤塊”。一個孤立的塊是一個塊,它也是合法的,但是發現的稍晚,或者是網路傳輸稍慢,而沒有能成為最長的鏈的一部分。在比特幣中,孤塊沒有意義,隨後將被拋棄,發現這個孤塊的礦工也拿不到採礦相關的獎勵。

最重的鏈(heaviest)

Ethereum的GHOST協議,不認為孤塊沒有價值,而是會給與發現孤塊的礦工以回報。在以太坊中,孤塊被稱為“叔塊”(uncle block),它們可以為主鏈的安全作出貢獻。

相對來說,比特幣有很長的塊間隔時間。在比特幣區塊中,平均約10分鐘可以得到一個確認(也就是發現一個新的後續區塊)。但是自從比特幣成立以來,大量關於塊鏈技術的研究已經發展起來。這些研究表明,更短的塊間隔確實是可能的,而且在很多應用場景下是需要的。然而,隨著擁有更快的出塊速度,孤塊的增加而帶來的昂貴的成本和浪費也隨之增加。

GHOST協議支付報酬給叔塊,這激勵了礦工在新發現的塊中去引用叔塊。引用叔塊使主鏈更重。在比特幣,最長的鏈是主鏈。在以太坊中,主鏈是指最重的鏈。

叔塊的好處

解決了兩個問題:
1. 以太坊十幾秒的出塊間隔,大大增加了孤塊的產生,並且降低了安全性。通過鼓勵引用叔塊,使引用主鏈獲得更多的安全保證(因為孤塊本身也是合法的)
2. 比特幣中,採礦中心化(大量的集中礦池)成為一個問題。給與叔塊報酬,可以一定程度上緩解這個問題。

叔塊的引用

  • 區塊可以不引用,或者最多引用兩個叔塊
  • 叔塊必須是區塊的前2層~前7層的祖先的直接的子塊
  • 被引用過的叔塊不能重複引用
  • 引用叔塊的區塊,可以獲得挖礦報酬的1/32,也就是5*1/32=0.15625 Ether。最多獲得2*0.15625=0.3125 Ether
  • 被引用的叔塊,其礦工的報酬和叔塊與區塊之間的間隔層數有關係。
間隔層數 報酬比例 報酬(ether)
1 7/8 4.375
2 6/8 3.75
3 5/8 3.125
4 4/8 2.5
5 3/8 1.875
6 2/8 1.25