eth2.0基本概念

堕落门徒發表於2024-06-07

1. Epoch

在以太坊生態系統中,"epoch" 是一個重要的概念,特別是在以太坊 2.0 (也稱為 Eth2 或 Serenity) 中。以太坊 2.0 引入了權益證明(Proof of Stake, PoS)共識機制,epoch 在其中起到了關鍵作用。以下是關於以太坊 epoch 的詳細解釋:

什麼是 Epoch?

在以太坊 2.0 中,時間被分成了週期性的小段,每段稱為一個 epoch。每個 epoch 包含若干個 slot,每個 slot 可以處理一個區塊。在 PoS 機制下,驗證者(validators)會在這些 slot 中輪流提議和證明區塊。

Epoch 的特點

  1. 固定時長
    • 每個 epoch 包含 32 個 slot。
    • 每個 slot 的時長是 12 秒。
    • 因此,一個 epoch 的總時長是 384 秒,或者說大約 6 分鐘。
  2. 狀態更新
    • 每個 epoch 結束時,驗證者會對前一個 epoch 的提議和證明進行評估。這種評估會影響驗證者的獎勵和懲罰。
    • 這種機制確保了網路的安全性和一致性。
  3. 驗證者的角色
    • 在每個 epoch 開始時,驗證者會被分配到不同的 slot 和職責。
    • 這些職責包括提議新的區塊和驗證其他驗證者提議的區塊。
  4. 最終性
    • 以太坊 2.0 使用最終性檢查點(finality checkpoints)來確認區塊鏈的狀態。
    • 每個 epoch 的第一個區塊通常被用作一個最終性檢查點。
    • 驗證者會透過證明來確保這些檢查點的安全性和一致性。

為什麼 Epoch 重要?

  1. 網路安全
    • Epoch 的劃分幫助以太坊 2.0 網路在每個週期結束時評估驗證者的行為,確保網路的安全性和誠實性。
  2. 高效處理
    • 透過將時間劃分為 epoch 和 slot,以太坊 2.0 能夠更高效地管理驗證者的職責分配和工作流程。
  3. 一致性和穩定性
    • Epoch 提供了一種機制,使得網路可以定期地校正錯誤和調整驗證者的狀態,從而提高區塊鏈的整體一致性和穩定性。

2. validators加入週期

在以太坊 2.0 的權益證明(Proof of Stake, PoS)機制中,新的驗證者(validators)需要經過一個等待期才能啟用並開始驗證區塊。這一過程涉及多個 epochs。具體來說,新的驗證者需要等待 4 個 epochs 才能啟用。

詳細說明

  1. 驗證者加入流程
    • 新的驗證者需要透過存入 32 ETH 到存款合約來申請加入驗證者集合。
    • 一旦存款確認,驗證者將被列入待啟用佇列。
  2. 啟用等待期
    • 待啟用驗證者需要等待 4 個 epochs 才能正式啟用。
    • 每個 epoch 包含 32 個 slot,每個 slot 持續 12 秒,因此一個 epoch 大約持續 6.4 分鐘。
    • 因此,4 個 epochs 大約持續 25.6 分鐘。
  3. 啟用後
    • 啟用後,驗證者開始參與區塊提議和證明工作,並開始獲得獎勵或受到懲罰,具體取決於其行為。

為什麼需要等待期?

  • 安全性:等待期有助於防止惡意行為者快速加入和退出驗證者集合,從而確保網路的穩定性和安全性。
  • 網路一致性:透過設定等待期,網路可以更好地管理和協調驗證者的加入和退出,確保驗證者集合的一致性。

3. validators退出週期

在以太坊 2.0 中,驗證者(validators)退出網路的過程包括多個階段,每個階段都有特定的時間要求。以下是驗證者從請求退出到完全退出所需的最短時間的詳細解釋:

退出流程

  1. 請求退出(Voluntary Exit)
    • 驗證者首先需要傳送一條自願退出訊息,這條訊息會被包含在區塊中。
  2. 退出佇列
    • 在傳送退出請求後,驗證者會進入退出佇列。
    • 退出佇列會根據驗證者的數量和網路狀態處理請求。在網路負荷較高時,退出時間可能會延長。
  3. 退出延遲
    • 一旦退出請求被處理,驗證者需要等待 MIN_EXIT_EPOCHS 才能完全退出,這個時間通常是 4 個 epochs。
  4. 退出期間
    • 退出期間的長度取決於當前網路的負荷和排隊等待的驗證者數量。
  5. 完全退出(Withdrawal Period)
    • 在退出期間結束後,驗證者還需要等待 MIN_VALIDATOR_WITHDRAWABILITY_DELAY 以便完全退出。
    • 該時間通常為 256 個 epochs(大約 27.3 小時)。

最短退出時間

  • 傳送退出請求到退出佇列:立即(0 時間)
  • 退出佇列處理時間:根據網路情況,通常立即(假設網路負荷較低)
  • 退出延遲:4 個 epochs(大約 25.6 分鐘)
  • 完全退出等待時間:256 個 epochs(大約 27.3 小時)

綜上所述,驗證者從請求退出到完全退出所需的最短時間約為 27.6 小時(4 epochs + 256 epochs),假設網路負荷較低且退出請求能夠立即處理。