Eth2驗證者須知:如何判定“證明”的有效性

買賣虛擬貨幣
譯者按:Eth2.0驗證者怎樣才能獲得更高的獎勵呢?原來證明越早被打包進區塊鏈,驗證者獲得的獎勵便越高。本文根據關鍵度量“打包距離 (inclusion distance)”幫助驗證者判定“單個證明”以及“聚合證明”的有效性。何為證明

證明指的是由驗證者就Eth2.0區塊鏈當前狀態所發起的投票。每位活躍驗證者每epoch(約6.5分鐘)發起一次證明,由以下元素組成:

其中一個有趣的過程是鏈頭投票,指的是驗證者投票證明出最新的有效區塊,即鏈頭。鏈頭投票的組成見下圖:

在這裡,slot指的是驗證者投票證明當前鏈頭所在的位置,雜湊值則標識了驗證者所在的位置。而這兩者組合起來,獨特地標識出區塊鏈上的某一點,並且獲得足夠的票數之後,網路就鏈的狀態達成了共識。

儘管每個證明中的資料都相對較小,但隨著成千上萬的驗證者參與,該資料會迅速龐大起來。由於此資料將永遠儲存在鏈上,因此減少儲存資料的大小很重要,可以透過聚合(aggregation)過程來實現。

聚合由多個證明組成,並且所有證明都由同一委員會投票,包括鏈頭投票和最終確定性投票,然後將其合併成為一個聚合證明:

聚合證明與簡單證明在兩個方面有所不同。首先,聚合證明中有多個驗證者。其次,他的簽名是聚合簽名,由匹配的簡單證明的簽名構成的。聚合證明非常有利於儲存,但是會帶來額外的通訊和計算負擔(更多資訊請參見下文)。

如果要求每個驗證者聚合所有證明,這意味著每一個證明的資訊都需傳遞給每位驗證者,其中的通訊總量會迅速使網路超載。同樣的,如果聚合是可選可不選的,那麼驗證者不會情願浪費自己的資源。

然而如果我們換一種方式,由網路來選擇驗證者子集執行聚合任務。那麼他們會更樂意做好自己工作,因為聚集證明所包含的驗證者數量更多,更有可能被打包進鏈,意味著驗證者將更有可能獲得獎勵。

執行此聚合過程的驗證者被稱為聚合者(affregators)。

提高證明獎勵

Eth2.0使用打包距離度量(metric inclusion distance)來計算驗證者證明所獲得的獎勵。一個slot的打包距離指的是進行證明的slot與最先打包證明進區塊的slot之間的差。例如,在slot ss中進行證明,而在slot s+1s+1中被打包進區塊,那麼打包距離為11。如果是在s + 5s + 5處被打包進區塊,則打包距離為55。

在Eth2.0中,證明的價值取決於其打包距離,打包距離越短越好。這是因為資訊越早呈現在網路上,它就越有用。

如果網路執行良好,所有證明的打包距離將會是1。這意味著證明實現最大的有效性,並且相應地獲得最大的獎勵。如果證明產生延遲,那麼驗證者獲得的獎勵將相應地減少。

打包證明過程

那麼證明是如何打包進Eth2.0區塊鏈的呢?過程如下:

➤ 每個證明驗證者都會根據鏈狀態相關的資料生成證明;
➤ 證明廣播到Eth2.0網路中相應的聚合者中;
➤ 而收到證明的聚合者將其與其他由同一個委員會投票的證明合併起來;
➤ 聚合證明被廣播至Eth2.0網路的所有節點中;以及
➤ 如果聚合證明還沒有被新增到鏈上,任意一個提議區塊的驗證者能夠將其打包進區塊。

當證明的打包距離超過1時,我們就有必要搞清楚其中原因,有以下幾種影響因素:

證明產生延遲(Attestation Generation Delay)

驗證者可能會出現“證明產生延遲”的問題。比如,關於鏈狀態的資訊可能會出現過時的狀況,或者驗證者能力不足,需要花很多時間來生成證明以及對證明進行簽名。無論出於何種原因,延遲的證明對於該過程的其餘步驟都有間接影響。

證明廣播延遲(Attestation Propagation Delay )

一旦有驗證者生成證明,需要將其廣播至網路的聚合者中。該過程旨在讓聚合者及時接收到最早的證明資訊,從而在證明資訊廣播至整個網路之前便將證明聚合起來。驗證者應嘗試和儘可能多的其他驗證者連線,以確保快速廣播證明至聚合者中。

聚合產生延遲(Aggregate Generation Delay)

證明聚合過程可能會出現延遲的狀況。其中最常見的原因是,產生的證明使得節點超載。然而,當有大量的驗證者需要聚合證明時,聚合演算法的速度也會造成聚合產生的明顯延遲。

聚合廣播延遲(Aggregate Propagation Delay)

類似於證明廣播延遲,聚合證明也需要廣播至網路,並且可能遭受相同的延遲。

區塊產生失敗(Block Production Failure)

證明要想要成為鏈上資料的一部分,必須得打包進區塊。然而,區塊產生有可能會失敗。當驗證者離線,或者沒有成功同步網路其餘驗證者的資料時,生成的失效資料將被鏈否決。

區塊產生失敗會造成另一個影響,由於之前的有效證明沒有打包進區塊,下一個產生的區塊需要接收更多的證明資料。如果可打包進下一個區塊的證明超過了其所能容納的範圍,那麼驗證者將很有可能會選擇那些有著最短的打包距離的證明,因為可以獲得更多的獎勵。這使得剩餘的證明的打包獎勵越來越少,導致證明錯過最佳塊以及隨後的區塊。

由於區塊產生會受到驗證者狀態的影響,我們界定了最早打包slot,該slot是有效區塊產生且進行證明的slot之後的第一個slot。這樣的界定考慮到證明不能打包進不存在的塊中,並且避免受到驗證者有效性的影響。

  作惡行為(Malicious Activity)

儘管如此,惡意驗證者還是有可能拒絕將任何給定的證明聚合起來,或者拒絕將證明打包進其區塊裡。前者的解決方法是為每個證明組分配多個聚合者,而後者的解決方法是對拒絕打包聚合證明進區塊的行為進行懲罰。

然而,拒絕打包進塊的懲罰如果受到經濟補償,或者該行為在政治上更有價值,那麼負責證明的驗證者無法採取任何措施來強制負責產生區塊的驗證者打包證明進塊。

計算證明的有效性

考慮到區塊生產和打包距離,證明的有效性指的是一個證明對網路的有用性。其計算方式為:

並以百分比值表示。以下是一些有效性計算的例子:

如果一個證明因為其打包距離為最大值32而打包失敗,那麼該證明的有效性為0。

聚合證明的有效性

對於單個證明來說,計算證明有效性或許有那麼點意思,但就這個值本身來說沒有多大的意義。而聚合證明的有效性(包含的時間更久以及更多的驗證者),可以讓我們更好地瞭解一組驗證者的整體有效性。聚合證明的有效性是單個證明有效性的平均值。例如,對給定組中所有驗證者的有效性進行7天的記錄,取其平均值。

總結

Eth2.0啟動之後,成千上萬個節點將彼此定位並開始提議區塊以及對區塊進行證明。與所有不成熟的網路一樣,想要節點儘可能的有效還有很多問題要解決。如本文所述,用於記錄節點效率的明確指標便是證明有效性。驗證者如果想要最大程度地提高獎勵,可以透過證明有效性來評判其自身整體表現。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;