以太坊後合併時代,15個概念帶你深入瞭解以太坊2.0

(示意圖/取自pixabay)

台灣時間9月15日下午2點42分左右,以太坊正式完成合併。以太坊在區塊高度15537393觸發合併機制,並產出首個PoS區塊,高度為15537394,以太坊共識正式從PoW轉為PoS機制。

以太坊進入後合併時代,你對以太坊2.0瞭解多少?本文用15個概念帶你深入瞭解它。

1、信標鏈(Beacon chain)

信標鏈向以太坊1.0引入了權益證明,與以太坊1.0並行運行,信標鏈也被稱為協調層。

信標鏈具有一下作用:

  • 分配驗證者的職責

  • 確認檢查點

  • 執行協議級隨機數位生成器(RNG)

  • 促進信標鏈運行

  • 投票決定分叉鏈頭

2、Slots

32 Slot = 1 Epoch

1 slot的時間是12秒,隨機選擇的驗證者在此時間內提議一個區塊,每個slot中可能有也可能沒有區區塊。

全部驗證者被分成多個委員會,由一個或多個單獨的委員會負責驗證每個slot。

委員會中有一個驗證者將被選為聚合者(aggregator),而其他127個驗證者將進行驗證。

在每個Epoch之後,各委員會的驗證者被混合併合併到新的委員會。每個委員會至少有128名驗證者。

3、Epoch

1 Epoch = 32 Slot

1個Epoch表示32個slot的數量,大約耗時6.4分鐘。

當涉及到驗證者隊列和最終確定性時,Epoch扮演著重要的角色。

4、存款合約

存款合約是通過以太坊1.0上的智慧合約到達以太坊2.0的網關。

智慧合約接受任何最少1個ETH和有效輸入數據的交易。

廣告

以太坊2.0信標節點監聽存款合約,並運用輸入數據來信任各驗證者節點。

5、輸入數據

輸入數據,也稱為存款數據,是用戶生成的,長度為842個字符的序列。

它表示驗證者公鑰和取款公鑰,由驗證者私鑰簽名,輸入數據需要添加到交易和存款合約中,以便由信標鏈辨識。

6、驗證者(Validator)

驗證者需要在以太坊1.0鏈上的驗證者存款合約中,存入32個ETH。

驗證者營運業者必須運行一個驗證者節點,驗證者的職責是提議區塊和簽署證明,驗證者必須至少保證一半的線上時長,才能獲得正向回報。

符合啟動資格&預估啟動

具體參考下文關於等待啟動驗證者的相關術語解釋,保證金存款已經過ETH2鏈「符合激活條件」時間戳辨識。

如果存在等待啟動驗證者隊列,則需計算預估啟動時間戳。

7、唯一索引(Unique Index)

每個驗證者都會接收屬於自己的唯一索引。

8、當前餘額 & 有效餘額(Current Balance和Effective Balance)

當前餘額表示驗證者目前持有的ETH數量;有效餘額表示由當前餘額計算的值,用於確定驗證者獲得的獎勵或懲罰的大小。

有效餘額永遠不得超過32 ETH。

為了增加有效餘額,驗證者要求「有效餘額 + 1.25 ETH」。換換句話說,如果有效餘額為20 ETH,則需要當前餘額為21.25 ETH,才能獲得21的有效餘額以太坊。

如上例所示,有效餘額將在低於閾值0.25時進行調整。

以下是說明有效餘額如何變化的例子:

  • 如果當前餘額為32.00 ETH,有效餘額為32.00 ETH。

  • 如果當前餘額從22.00 ETH下降到21.76 ETH,有效餘額將為22.00 ETH。

  • 如果當前餘額增加到22.25 ETH、且有效餘額為21 ETH,則有效餘額增加到22 ETH。

9、舉報人(Slasher)

Slasher自成實體,但需要一個信標節點來接收證明。

為了通過驗證者發現惡意行為,slasher遍歷所有接收到的證明,直到發現罰沒攻擊。

被發現的罰沒被廣播到網路中,下一個區塊提議者將證明添加到區塊中,區塊提議者會因為罰沒惡意驗證者而獲得獎勵。

然而,舉報人(Slasher)不會得到獎勵。

可罰沒的罪行

證明者違規(Attestation Violation)

  • 雙重投票:驗證者在同一個epoch簽署兩個衝突的證明。

  • 環繞投票:驗證者環繞另一個證明簽署證明。

提議者違規(Proposer Violation)

  • 雙重區塊提議:一個區塊提議者為同一個slot簽署兩個衝突區塊。

10、證明(Attestation)

驗證區塊有效性的證明者(Attester)進行的投票。

11、區塊提議者(Block Proposer)

信標鏈所選擇的驗證者,提議出下一個區塊,每個slot只能有一個有效區塊。

12、區塊狀態(Block Status)

  • 已提議區塊(Proposed):區塊通過驗證被驗證者提議。

  • 提議中區塊(Scheduled):驗證者正在提交數據。

  • 漏塊(Missed/Skipped):提議者沒有在既定時間內成功提議區塊,所以該區塊被漏掉了。

  • 孤塊(Orphaned):為了理解該術語,我們來看下圖,其中數字1-9代表slot。

1、slot1的驗證者提議區塊「a」。

2、slot2的驗證者提議區塊「b」。

3、slot4被漏掉了,因為驗證者沒有提議任何區塊(如離線)。

4、在slot5/6出現了分叉:驗證者(5)提議了一個區塊,但是驗證者(6)沒有收到相關信息(例如,該區塊到達該驗證者的速度不夠快)。所以驗證者(6)根據從驗證者(3)那裡看到的最新資訊提議了一個區塊。

5、分叉選擇規則在這裡起關鍵作用,決定了可用鏈中那條鏈是規範鏈。

13、驗證者生命週期

(1)已存入保證金

32 ETH已存入ETH1存款合約,該狀態將維持7小時左右,這為在ETH1鏈受到攻擊時提供了安全性。

(2)等待啟動

等待在ETH2上啟動。

在驗證者進入驗證者隊列之前,它們需要經其他活躍的驗證者投票加入,每4小時進行一次投票。

  • 直到網路中有327680個活躍驗證者之前,每個epoch可以啟動4個驗證者。每增加65536(=4 * 16384)個活躍驗證者,驗證者啟動率就相應增加1個點。

  • 此後每個epoch可啟動5個驗證者,則需要327680個活躍驗證者,也就是每天1125個驗證者。

  • 每個epoch啟動6個驗證者,則需要393216個活躍驗證者,也就是每天1350個驗證者。

  • 每個epoch啟動7個驗證者,則需要458752個活躍驗證者,也就是每天1575個驗證者。

  • 每個epoch啟動8個驗證者,則需要524288個活躍驗證者,也就是每天1800個驗證者。

  • 每個epoch啟動9個驗證者,則需要589824個活躍驗證者,也就是每天2025個驗證者。

  • 每個epoch啟動10個驗證者,則需要655360個活躍驗證者,也就是每天2200個驗證者。

  • 激活數量隨啟動驗證者數量的增加而增加,其限制為激活驗證者集除以64.000。

(3)活躍驗證者(Active Validator)

當前正在確認和提議的塊(=區塊提議者)

驗證者將保持活動狀態,直到:

  • 其餘額低於16 ETH(被踢出網路)

  • 自願退出

  • 被罰沒

(4)被罰沒驗證者(Slashing Validator)

驗證者是惡意驗證者,將被罰沒並踢出系統。

懲罰(Penalty)是一S種消極的獎勵(如離線),「罰沒(Slashing)是重大的懲罰(≥1/32的質押餘額)和強制退出......」Justin Drake說。

(5)正退出的驗證者(Exiting Validator)

  • 踢出網路:驗證者餘額低於閾值,被踢出網路。

  • 退出網路:自願退出,取款密鑰持有人可提取相應驗證者餘額的當前餘額。

14、最終確定(Finalization)

在以太坊2.0中,至少有三分之二的驗證者必須誠實,因此,如果存在兩個相互競爭的epoch,並且三分之一的驗證者決定實施惡意行為,他們將受到懲罰,誠實的人會得到獎賞。

為了確定一個Epoch是否已經最終確定,驗證者必須同意連續的最新兩個Epoch(=「被證明的」),然後所有之前的Epoch都可以被認為已經最終確定。

15、最終確定性問題(Finality issues)

如果某個epoch的投票率低於66.6%(=參與率),則該epoch不能成立。

正如在「最終確定」概念提到的,需要連續三個被證明的epoch才能達成最終確定性,只要鏈不能達到這個狀態,就存在最終確定性問題。

在存在最終確定性問題期間,驗證者隊列將被暫停,新的驗證者不能加入網路。

但是,餘額小於16 ETH的非活躍驗證者將被踢出網絡,這使得網路更加穩定,參與率也更高。

本文為金色財經授權刊登,原文標題為「金色觀察 | 以太坊後合併時代 15個概念帶你深入瞭解以太坊2.0