編者註:本文來自Eth2 驗證者快速啟動器的“Validator FAQ” 頁面,集中列舉和回答了跟參與驗證活動有關的問題。快速啟動器頁面另有一個“參與須知” 頁面,亦提醒了參與驗證活動有關的風險,可相互參照。但內容重合度高,在此不錄。快速啟動器的多語言支持還在實現中,相信不久後就會跟大家見面。

簡介

1. 到底什麼是“驗證者(validator)”?

驗證者是參與ETH 2.0 協議共識機制的實體。

用大白話來說,就是持續運行特定的一段計算機程序的人。這個程序會提議並證明新的區塊,使之能添加到區塊鏈上。

換言之,你可以將驗證者看作新區塊的投票者。一個區塊獲得的票數越多,被添加到區塊鏈上的可能性就越大。

重要的是,驗證者的投票權重由其權益數量(the amount it has at stake)決定。

2. 保證金合約(deposit contract)是什麼?

你可以將保證金合約理解為以太坊賬戶和ETH 2.0 驗證者之間的資金轉移通道。

保證金合約的狀態指明了誰存儲了保證金、由誰來參與驗證、保證金數量有多少,以及誰能取出這些資金。

3. 為什麼驗證者需要先存入保證金?

系統需要扣押驗證者的資金,以便在某個驗證者被證明行為不軌之時對其進行懲罰。

換句話來說,為保證這些驗證者都遵守協議,要讓這些驗證者的行為都會產生經濟後果。

4. 驗證者需要質押多少ETH ?

在驗證者可以開始保護網絡之前,ta 需要質押 32 ETH 。這32 ETH 就是驗證者的初始餘額。

5. 質押量超過32 ETH 有什麼好處嗎?

沒有。單個驗證者存入超過32 ETH 不會獲得任何優勢。

將有效質押量設定在32 ETH 有助於推動權力的去中心化,因為這樣可以防止某個驗證者的投票權重過大。

請記住,驗證者的投票權重取決於其權益數量。

(譯者註:實際上,驗證者的投票權重取決於其“有效餘額(effect balance)”。有效餘額並不是賬戶的表面餘額,有效餘額有個上限是“32”,假設一個驗證者一直勤勤懇懇地賺錢,其有效餘額也不會超過“32”,同理,其被罰沒時,也不會一次性被罰沒超過32 ETH。原文此處用語是“the amount it has at stake”,雖然也嫌太模糊,但顯然不能直譯成“驗證者已存入的數額”。漢語中缺乏與“at stake” 對應又不顯累贅的說法,故此處譯為“權益數量”,實屬無可奈何)

驗證者職責

1. 經濟激勵機制是如何幫助用戶保持活躍和誠實的?

除了會因為離線而遭受懲罰之外,驗證者還會因為作惡而遭受懲罰—— 例如,投票給無效或有衝突的區塊。

另一方面,如果驗證者所提議/所見證的區塊被添加到了區塊鏈上,驗證者就會獲得獎勵。

基本概念是:

幫助網絡達成共識的行為會獲得獎勵妨礙共識的無意行為(或不作為)會招致輕微懲罰惡意行為會招致嚴重懲罰(或稱罰沒)

換言之,驗證者在努力獲得獎勵的同時也在為整個網絡做貢獻。

2. 獎勵/懲罰是如何發放的?

請記住,每個驗證者都有自己的餘額—— 初始餘額則可在保證金合約中看到。

以太坊網絡規則會基於驗證者的履職情況定期更新其餘額。

換言之,驗證者所獲得的獎懲都會在餘額中反映出來。

3. 獎勵/懲罰多久發放?

大約每6.5 分鐘(即,一個epoch )發放一次。每個epoch 期間,網絡都會評估每個驗證者的表現,並相應給予獎勵或懲罰。

4. 獎勵/懲罰金額有多大?

這個問題很難回答,因為在計算時需要考慮很多因素。

驗證交易所獲得的獎勵主要受網絡總權益量(即,驗證者總數)的影響。根據總權益量,驗證者的最高年化收益率可能在2% 至20% 之間。

在驗證者總數固定的情況下,獎勵/懲罰主要取決於驗證者的餘額規模—— 如果提供證明的驗證者的餘額越高,ta 所受到的獎勵/懲罰就越高;餘額越低,獎勵/懲罰就越低。

請注意,這種動態機制是以不那麼明顯的方式運作的。要想了解其具體原理,你先要理解有效餘額(effective balance)這個概念。如果你對這個概念還不熟悉,我們建議你閱讀這篇文章(編者註:見文末超鏈接)。

5. 為什麼獎勵取決於網絡中的驗證者總數?

區塊獎勵是根據網絡中的ETH 總權益量按比例計算的。

簡單來說,如果ETH 總權益量很少,獎勵(利率)就很高,但是隨著權益量增加,每個驗證者所獲得的獎勵(利率)就會降低。

為什麼會有這種動態調整?雖然本文不會揭開其中的真相,但是直覺告訴我們,為了確保網絡良好運轉,驗證者總數不能低於某個下限(ETH 總質押量也是)。因此,為了激勵更多驗證者參與進來,利率需要維持在較高水平,直到驗證者總數達到下限為止。

6. 如果離線,驗證者會遭到什麼懲罰?

視情況而定。除了實際餘額的影響之外,還需要注意兩個重要情況:

如果絕大多數(2/3)驗證者都在線,那麼離線所造成的懲罰較低,因為有足夠多的驗證者在線,可以實現區塊的終局性。這是預料之中的情況。如果有超過1/3 的驗證者同時離線,離線懲罰就會較高,因為網絡無法繼續實現區塊的確定性。這種屬於不太可能發生的極端情況。

請注意,如果是第二種情況,離線驗證者會在21 天內逐漸損失高達50%(16 ETH)的權益量。 21 天之後,這批驗證者就會被逐出驗證者池。這樣一來,網絡就可以恢復正常,開始達成區塊的終局性。

7. 正常運行時間占到多大比例,誠實的驗證者才能實現盈利?

總的來說,只要驗證者的正常運行時間超過50% ,就能實現盈利。

這就意味著,驗證者不需要備份客戶端或冗餘的網絡連接,因為離線的後果並沒有那麼嚴重。

8. 作惡的驗證者會遭受什麼懲罰?

同樣視情況而定。惡意行為(例如,投票給無效或有衝突的區塊)會讓驗證者遭到罰沒。

最低罰沒金額是1 ETH ,但是如果其他驗證者在同一時間遭到罰沒,這一金額還會增加。

其目的是盡可能減少驗證者因無心之失而蒙受的損失,同時抑制協同攻擊。

9. 罰沒是什麼?

罰沒有兩個目的:(1)大幅提高攻擊ETH 2.0 的成本,使攻擊無利可圖;(2)通過檢查驗證者是否履行其職責來防止他們偷懶。所謂的罰沒,指的就是如果有驗證者被證明作惡,ta 的權益(中的一部分)就會被銷毀。

遭到罰沒的驗證者無法繼續參與網絡的共識機制,會被強制退出。

(譯者註:在這幾個問題的答案中沒有顯明的信息是:對一名驗證者來說,每一個epoch (6.4 分鐘)就要發出一條見證消息(attestation,包含投票內容),而且需要發出消息的時間在一個epoch 中的位置不是固定的。顯然,上述驗證者職責的履行不可能由人手動操作程序來執行,必定是自動化的。因此,驗證者會不會被罰沒,高度依賴於所用的客戶端軟件。因此,有意自己運行驗證者的用戶,首先要關心自己所用的客戶端性能好不好,保護措施到不到位。)

密鑰

1. 如果簽名密鑰(signing key)丟了會怎麼樣?

如果簽名密鑰丟失,驗證者就無法繼續提議及見證區塊。

隨著時間的流逝,驗證者的餘額就會逐漸減少,因為ta 會因為無法參與共識流程而遭到懲罰。一旦驗證者的餘額只剩下16 ETH ,系統就會自動將ta 逐出驗證者池。

不過,這件事並非完全沒有轉機。如果驗證者的簽名密鑰是使用EIP2334(根據默認引導流程)生成的,就可以隨時根據取款密鑰重新計算簽名密鑰。

在取回保證金時,用戶也需要用到取款密鑰,而且取款時要等待大概一天才能到帳。

請注意,如果同一時間段內退出或被踢出驗證者池的人很多,延遲期可能會延長。

(譯者註:在Phase 0 階段,不會開啟驗證者取回保證金的功能。)

2. 如果取款密鑰(withdrawel key)丟了會怎麼樣?

如果弄丟了取款密鑰,驗證者就再也拿不回屬於自己的資金了。

因此,你最好使用助記詞(mnemonics)來創建取款密鑰以便備份。如果驗證者是通過Medalla 測試網的引導流程加入的,則取款密鑰是默認通過助記詞創建的。

3. 如果取款密鑰被偷了會怎麼樣?

如果取款密鑰被盜,盜竊者可以轉走驗證者的餘額,但是必須在驗證者退出之後。

如果盜竊者沒有該驗證者的簽名密鑰,就無法讓驗證者退出。

驗證者可以先使用簽名密鑰退出驗證者池,然後在盜竊者之前使用取款密鑰將資金轉走。

(譯者註:我認為這個回答沒有提示大家真實的風險。根據問題一的回答,如果用戶的簽名密鑰是用取款密鑰生成出來的,則偷盜了一把取款密鑰的人,是有可能計算出驗證者所用的取款密鑰的,因此驗證者的取款密鑰也將變得不再安全,儘管取款密鑰生成簽名密鑰的方法可以提高取款密鑰的安全性,但這個風險並不是不存在。應該提醒大家的是,取款密鑰始終是重中之重,一定要保護好這把密鑰。回答裡面提供的逃離方法僅在取款功能正常時才能使用,但Phase 0 階段不會開啟取款功能,偷盜了取款密鑰的人有充分長的時間可以埋伏。)

4. 為什麼不能將這兩個密鑰合二為一?

一言以蔽之,為了安全。簽名密鑰必需保證隨時可用。因此,簽名密鑰需要保持在線。由於保持聯網的東西很容易遭到攻擊,讓簽名密鑰兼具取款功能是不明智的。

(譯者註:簽名密鑰是驗證者用來對見證消息籤上數字簽名的,需要經常被客戶端調用以履行驗證者職責。所以說簽名密鑰是聯網的。)

原文鏈接:

https://medalla.launchpad.ethereum.org/faq

作者: Eth2 Validator Launchpad

翻譯&校對 :

閔敏 & 阿劍