信標鏈、PoS、分片……接觸以太坊 2.0 得先理解這些術語

買賣虛擬貨幣

原文標題:《以太坊 2.0 術語庫》
整理:eth 中文網

attestation 證明

證明是指驗證者所發起的投票,由驗證者的簽名聚合而成,用以證明區塊的有效性,投票透過驗證者的餘額進行加權。

attester 證明者

信標鏈上的驗證者可以充當區塊提議者和證明者,證明者對區塊發起投票。

beacon chain 信標鏈

以太坊 2.0 階段 0 中實現,將引進權益證明 (pos) 共識機制。也被認為是 eth2 的「協調層」。

職能:

  • 為驗證者分配職責
  • 對檢查點進行最終確定
  • 在協議層上執行隨機數生成
  • 鞏固信標鏈
  • 對鏈頭進行投票,作為分叉選擇的基礎
  • 針對分片鏈的過渡 / 資料進行連線和投票

block proposer 區塊提議者

由信標鏈透過 randao 機制隨機選擇出來的驗證者,對下一個區塊進行提議。每個 slot 中僅有一個區塊提議者。

casper ffg

casper ffg 是基於 pos 共識機制的區塊最終確定系統,其規定了區塊最終確定的規則,並對已確定的區塊進行檢測。casper ffg 融合了 pos 演算法技術及拜占庭容錯共識原理,其與鏈增長過程脫鉤,可以作為一個獨立的疊加層,為任何有效區塊鏈協議提供最終確定區塊的服務。與 pow 共識機制相比,ffg 可以為區塊鏈帶來更高的安全性,防止區塊被篡改。

casper ffg vote 指驗證者為最近一個 epoch 的檢查點即 「目標檢查點」 和前一個檢查點即 「來源檢查點」 發起投票,證明投票由驗證者廣播到 p2p 網路,最終再由區塊生產者打包進區塊。

committees 委員會

信標鏈和分片裡每個 slot 中的委員會至少由 128 位驗證者組成,根據偽隨機過程 randao,驗證者們被隨機分配到委員會中,對區塊發起投票,確定其有效性。

checkpoint 檢查點

檢查點指位於每個 epoch 第一個 slot 裡的區塊,如果該 slot 內沒有產生區塊,則最近的前一個區塊為檢查點。每個 epoch 都會有一個檢查點區塊;一個區塊可能同時是多個 epoch 的檢查點。

chain head 鏈頭

鏈頭是指信標鏈或分片鏈末端的一個區塊,每個 slot 中的區塊都要發起一次 lmd ghost 投票,對信標鏈頭進行驗證。

current balance & effective balance 現存餘額 & 有效餘額

現存餘額指驗證者當前持有的 eth 總數,而有效餘額指根據現存餘額計算出來的 eth 數量。有效餘額規定了驗證者獲得的 eth 賞金或者罰沒數量的範圍。有效餘額最多為 32 個 eth。

驗證者若想要擴大有效餘額數量,需要持有的現存餘額為「有效餘額+1.25 個 eth」。換句話說,如果驗證者原本持有有效餘額 20 個 eth,想要增加到 21 個 eth,驗證者的現存餘額必須增加到 21.25 個 eth。如下文第三個例子所示,倘若現存餘額減少了 0.25 個 eth,低於閾值,有效餘額也會隨之調整。

以下舉例說明了如何計算有效餘額:

  • 如果現存餘額為 32 個 eth — 有效餘額為 32 個 eth;
  • 如果現存餘額由 22 個 eth 減少到 21.76 個 eth — 有效餘額將為 22 個 eth;
  • 如果現存餘額由 22 個 eth 減少到 21.749 個 eth — 有效餘額將為 21 個 eth;
  • 如果現存餘額增加到 19.25 個 eth,且原有有效餘額為 18 個 eth,那麼有效餘額將增加到 19 個 eth;
  • 如果現存餘額增加到 22.25 個 eth,且原有有效餘額為 21 個 eth,那麼有效餘額將增加到 22 個 eth。

deposit contract 存款合約

部署在以太坊 pow 鏈上的智慧合約。要成為 eth2 的 pos 驗證者,需要首先向存款合約傳送一筆交易,包含一定量的 eth 作為質押金。存款合約記錄了質押歷史紀錄,並且將所有質押金鎖定在 pow 鏈上,之後可以轉移至 eth2 信標鏈上。請注意,在 eth2 早期階段,存款合約只支援單向轉移,不能將質押金從 eth2 轉回 pow 鏈。

double proposal 雙重提議

一名區塊提議者在他所分配到的 slot 裡提議一個以上的區塊。

double vote 雙重投票

一名驗證者針對同一個目標檢查點 (target),不同的源檢查點 (source) 發起的兩次 ffg 投票。雙重投票可以被看做是 pos 版本的雙花攻擊 (double-spend attack)。

雙重投票及環繞投票示例,圖源 justin drake

epochs 時段

每個 epoch 由 32 個 slots (時隙) 組成,每個 slot 為 12 秒,一個 epoch 即 6.4 分鐘。

ebb 時段邊界區塊

時段邊界區塊 (ebb, epoch boundary block) 是一些文獻中用到的術語,可以理解為「檢查點」(checkpoint) 的同義詞。

fork choice rule 分叉選擇規則

eth2 中的分叉選擇規則是 lmd ghost (latest message driven ghost, 由最新訊息驅動的 ghost)。在該協議中,獲得投票數最高的分叉將被選為鏈頭。與最長鏈規則相比, ghost 的優點在於能夠在網路延遲較高時降低攻擊效率,同時最小化鏈重組的深度。即使攻擊者能夠高效地在其分叉鏈上繼續產生區塊,嘗試使該鏈成為最長鏈,協議也會選擇另一條票數更高的分叉鏈。

finalization 最終確定

最終確定性指兩個相沖突的區塊 (檢查點) 無法同時被最終確定,也可以稱之為經濟確定性 (economic finality)。在 eth2 中,一旦兩個相沖突的檢查點被最終確定,那麼系統中至少三分之一的活躍驗證者將受到罰沒。如果連續兩個 epoch 被證明 (或跳過一個 epoch 的連續兩個 epoch),則第一個 epoch 被認為獲得最終確定。

justification 證明

證明指驗證者對檢查點進行投票並確定信標鏈頭的行為。如果 2/3 的驗證者 (即絕對多數) 對兩個 epoches 達成共識,例如源檢查點 (source) 和目標檢查點 (target),那麼這兩個檢查點都被證明了。如果連續兩個 epoch 被證明 (或跳過一個 epoch 的連續兩個 epoch),則第一個 epoch 被認為獲得最終確定。

lmd ghost

lmd ghost 是 eth2 中的分叉選擇規則。ghost (greediest heaviest observed subtree) 實際上是一種較早的協議,在 pow 和其他區塊鏈中應用頗廣。協議僅遵循「最重」子樹,即最長鏈。在比特幣語境中,最重分支是雜湊算力最高的鏈,並且被視作是最長鏈 (規範鏈)。lmd (last message driven) 透過「最新訊息驅動」來發揮「訊息」 (message) 的作用。訊息是一則證明 (attestation),其不同之處在於獲得最多票數的分叉將被視為規範鏈。

proof of stake (pos) 權益證明

權益證明 (pos) 是一種用於公共區塊鏈的共識演算法,該演算法取決於驗證者在網路中的經濟權益。在基於工作量證明 (pow) 的公共區塊鏈中,透過獎勵解決密碼難題的參與者,以驗證交易並建立新區塊 (即挖礦)。而在基於 pos 鏈中,一組驗證者輪流對下一個區塊進行提議和投票,每個驗證者的投票權重取決於其押金 (即權益) 的多少。pos 的顯著優勢包括提高安全性、降低中心化風險和節省能耗。

在以太坊 2.0 上,啟用一名驗證者需要在網路中質押 32 eth。

phase 0 階段 0

階段 0 作為以太坊 2.0 的首個階段,也即啟動信標鏈(信標鏈已於北京時間 2020 年 12 月 1 日創世)。階段 0 透過管理協調驗證者來實現 pow 到 pos 共識機制的轉變。此階段不會提供分片鏈或執行等功能,也就是說,參與者在此階段無法在 eth2 網路中進行交易或是呼叫智慧合約。

*phase 1 階段 1

階段 1 是以太坊 2.0 繼階段 0 之後的第二次網路升級,主要目標是啟動分片鏈,並將資料寫入分片鏈。分片是提升以太坊可擴充套件性的關鍵,因為其允許並行處理交易而大大提升了吞吐量,目前最新方案是在階段 1 中部署 64 個資料分片(將來或許會更多)。

phase 1.5 階段 1.5

階段 1.5 指以太坊 1.0 和 2.0 區塊鏈的合併時期。在階段 1.5,以太坊 1.0 鏈將合併到具備執行功能的 eth2 信標鏈上。彼時,1.0 鏈的全部功能 (包括 eth 的使用) 將在 2.0 鏈上實現,而不會破壞資料一致性。

phase 2 階段 2

階段 2 是以太坊 2.0 的第三個階段。在之前的路線圖中,階段 2 的計劃是整合整個 2.0 系統的功能性,並引入基於 ewasm 的虛擬機器,為分片提供執行環境,以便基於 eth2 構建可擴充套件的應用,並且將 1.0 鏈完全引入 2.0,最終棄用工作量證明機制。在最新的「可執行信標鏈+資料分片+layer2」路線圖中,階段 2 暫時被擱置,但仍然保留內建虛擬機器的可能性。

sharding 分片

分片概念原本指資料庫的橫向分割,將大型資料庫分割為更小、更快、更易於管理的部分。為了保證去中心化,區塊鏈需要採取類似的橫向擴容方式。每條分片鏈都擁有一個節點子集在該鏈上進行工作。虛擬礦工和驗證者被分配到不同的分片中,並且只處理和驗證自己所在分片鏈上的交易。eth2 的短期計劃是啟用 64 個分片,預計在階段 1 實現分片與信標鏈的交聯。

shuffling 「混洗」機制

驗證者「混洗」的主要目的在於確保分片的安全性。由於驗證者分散在不同的分片中,有的節點可能會惡意控制某個分片。對驗證者進行混洗 (shuffling),使得每個分片區塊都有一個委員會,其中的驗證者都經由隨機挑選。經數學計算,如果攻擊者控制的驗證者少於總數的三分之一,就難以對某個分片發起攻擊。

slots 時隙

12 秒的時間段,其中隨機選擇的驗證者將提議一個區塊。在每個 slot 中,在信標鏈和分片中都可能新增一個區塊,但是 slot 中也可以沒有產生區塊。每個 epoch 中,驗證者被隨機分配到一個 slot 和分片中組成委員會,除了一名區塊提議者,其他委員會成員負責對該區塊進行證明 (attest)。每個委員會最少有 128 名驗證者。

surround vote 環繞投票

一名驗證者發起的 ffg 投票環繞之前的 ffg 投票,或是被之前的 ffg 投票所環繞。

舉個例子,假設一名驗證者在 epoch 5 內,為 slot 32 處的源檢查點和 slot 128 處的目標檢查點發起了一次 ffg 投票:

  • 在 epoch 6 內,為 slot 64 處的源檢查點和 slot 96 處的目標檢查點發起的 ffg 投票,被其在 epoch 5 中的投票環繞。
  • 在 epoch 6 內,為 slot 0 處的源檢查點和 slot 160 處的目標檢查點發起的 ffg 投票,則環繞了其在 epoch 5 中的 ffg 投票。

slashing 罰沒

對驗證者進行罰沒,是指如果驗證者被證實存在破壞行為,其 (部分) 質押金將被銷燬。在 eth2 階段 0 時期,驗證者主要會因為三種惡意行為被罰沒:雙重投票 (double voting)、環繞投票 (surround voting)、雙重提議 (double proposal)。被罰沒的驗證者將被停止繼續參與協議,並且會被強制退出。

被銷燬的質押金會與同時段被罰沒的驗證者數量成一定比例,以避免驗證者因無心之舉而受到超額懲罰。因為攻擊需要大量驗證者參與,被罰沒的驗證者越多,說明被攻擊的可能性越大,懲罰力度也就越強。最低罰沒金額為 1 eth,最高罰沒金額為驗證者全部餘額。

validator 驗證者

驗證者可以看作是權益證明 (pos) 共識機制中的「虛擬礦工」。使用者透過質押 eth 來啟用和管理驗證者,每質押 32 個 eth,就會啟用一名驗證者。

驗證者透過驗證者客戶端進行工作,而客戶端藉助信標(鏈)節點來執行。每個信標節點都有跟蹤和讀取信標鏈的功能。而每個驗證客戶端都可以執行信標節點的功能,或者呼叫信標節點。一個客戶端允許一個或以上驗證者執行驗證職能。

驗證者生命週期:

1. 質押:已將 32 eth 存入 eth2 存款合約,此狀態將保留約 7 個小時。這可以在 eth2 鏈遭遇攻擊時保障安全性。

2. 等待在 eth2 啟用

  • 在網路中有 327680 個有效驗證者之前,每個 epoch 可以啟用 4 個驗證者 (每天 900 個)。在此之後,每個 epoch 可以啟用 5 個驗證者。並且每增加 6.4 萬個活躍驗證者,每個 epoch 可以啟用的驗證者數量+1
  • 啟用數量與活躍驗證者的數量成比例,上限是有效驗證者集除以 64,000

活躍驗證者(參與證明 & 提議區塊):

出現以下情況任一,驗證者停止工作

  • 餘額低於 16 個 eth (被驅逐)
  • 自願退出
  • 受到罰沒

免責聲明:

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

推荐阅读

;