您當前的位置:首頁 > 遊戲

詳解以太坊2.0信標鏈

作者:由 ECN以太坊中文網 發表于 遊戲時間:2022-03-14

ethos。dev

作者 | JosephC

詳解以太坊2.0信標鏈

還記得你剛窺探到區塊鏈的奧秘時那份喜悅嗎?

你對信標鏈有同樣的求知慾嗎?

信標鏈是以太坊2。0系統的核心,然而針對該系統的大部分描述都過於技術化、針對性過強或者不夠深入。但是從這篇文章中,讀者可以充分了解到信標鏈中的各個元素和執行機制。為了使讀者在理解信標鏈時事半功倍,文章將透過一些例子,用通俗的語言解釋其中的關鍵細節。

閱讀本文之前,我們假設讀者對以太坊和比特幣有不錯的基礎知識,並對權益證明 (Proof of Stake) 這一共識機制有一定了解。

現在進入正題,讓我們一起深入探討信標鏈的各個部分,諸如分片(shards)、質押驗證者 (staking validators)、證明 (attestations)、委員會 (committees)、檢驗點 (checkpoints) 和最終確定性 (finality)。

分片:未來藍圖

要想進入信標鏈的世界,首先我們需要開啟分片的大門。在擴容性方面,包括以太坊在內的區塊鏈現在面臨的主要問題是:每個節點必須驗證和執行每一筆交易。

在計算機科學中,主要有兩種擴容方式:

A

.縱向擴容:

即增強節點能力

B。

橫向擴容:

即增加節點數量

為了保證去中心化,區塊鏈需要採取橫向擴容方式。以太坊2。0 (也即Eth2或Serenity) 其中一個目標就是讓節點可以在消費級硬體中執行。

總體來說,Eth2採用的分片機制指的就是對資料庫進行橫向分割。

總的來說,每條分片鏈都擁有一個節點子集,在該鏈上進行工作。虛擬礦工和驗證者被分配到不同的分片中,並且只處理和驗證自己所在分片鏈上的交易。

以太坊分片上的節點子集是動態的,按照區塊順序處理分片。

區塊鏈實行分片機制的主要挑戰在於如何確保分片安全性。由於驗證者分散在不同的分片中,有的節點可能會惡意控制某個分片。

解決該問題的關鍵在於:

隨機分配 (shuffling) 驗證者,每個分片區塊都有一個委員會,其中的驗證者都經由隨機挑選。這種做法的目的是,經數學計算,如果攻擊者控制的驗證者少於總數的三分之一,其想要攻擊單個分片是難以實現的。

此外,錯誤性證明(fraud proofs)、資料託管證明 (custody proofs) 和資料可用性檢查 (data availability checks) 都是確保安全的重要因素,不過需要單獨的講解才能說清楚。

Eth2 目前的計劃是啟用

64個分片

。儘管分片和信標鏈是獨立運作的,我們還是會針對整個系統的關鍵部分進行闡述。

分片向我們揭示了以太坊信標鏈能做什麼,需要什麼。我們也能從中瞭解到為什麼在傳統的區塊鏈基礎上需要增添這些新元素。分片式區塊鏈作為一片新大陸,始終等待著創新者的開墾。

以太坊2.0的各個階段

簡單來說,以太坊2。0有三個階段:

Phase 0 – 信標鏈

Phase 1 – 分片

Phase 2 – 執行

可以和人體進行類比:

Phase 0 – 心臟

Phase 1 – 四肢

Phase 2 – 大腦

也可以和一支強大的管絃樂隊進行類比:

Phase 0 – 指揮

Phase 1 – 樂器

Phase 2 – 樂手

每個階段都是系統裡的重要組成部分,有著不同的特性。

階段0是以太坊2020年的目標之一

。與其他階段相比,階段1要更加穩定,而階段2側重於執行與代理。

時隙 (slots) 和時段 (epochs)

信標鏈是以太坊2。0的心臟,它令以太坊系統在和諧與共識中有序執行。

每個slot為12秒,每個epoch由32個slots組成,即6.4分鐘。

詳解以太坊2.0信標鏈

Epoch 0中的前32個slots,創世區塊在Slot 0中產生

(本文參考了

信標鏈規範v0。10。1

相關內容)

在每個slot中,在信標鏈和分片中都可能新增一個區塊。我們可以想象,信標鏈和分片鏈有序且緊密地排列在一起,

當系統在理想情況下運轉時,每12秒就有一個信標(鏈)區塊和64個分片區塊產生。

驗證者大致按照

這個時間

同步。

我們可以將一個slot看作是區塊生成時間,不同的是slots內可以沒有區塊。信標鏈和分片的創世區塊都在Slot 0中產生。分片將在信標鏈epoch 0的下一個epoch中開始運作,但無論是分片鏈還是信標鏈,都有自己的epoch 0,且包含其創世區塊。

驗證者 (validators)、證明 (attestations) 和信標鏈

工作量證明(PoW)與礦工密不可分,而在以太坊2。0中,驗證者 (validators) 便是權益證明 (PoS) 共識機制中的“虛擬礦工”。驗證者這一概念在Eth2共識協議中應用率極高。相關激勵機制稍後將在“信標鏈驗證者獎懲制度”這一部分加以討論。

區塊提議者

(block proposer)是被(偽)隨機挑選出來生產區塊的驗證者。

大多數時候,驗證者則充當

證明人

(attesters)的角色,對信標區塊和分片區塊進行投票。這些投票會記錄在信標鏈上,用以決定信標鏈和分片鏈的頭部 (heads)。

(隨機驗證者在每個slot中提議一個區塊,

如果其他驗證者投票贊成該區塊,那麼提議驗證者將會獲得獎勵)

詳解以太坊2.0信標鏈

(Slots可能會丟失區塊,當被選中的驗證者因為掉線、同步失敗等原因而沒有提議區塊時,就會丟失區塊,那麼驗證者也無法得到獎勵)

某epoch中第28個slot無區塊提議

在每一個epoch中,一個驗證者被(偽)隨機分配到一個slot和分片中。該驗證者參與到他所被分配的分片的共識中,從而他可以對該分片的分片頭進行投票。然後驗證者將該slot上的分片頭和信標區塊連線起來。

一份證明

(attestation)則是驗證者的一記投票,投票透過驗證者的餘額進行加權。除區塊之外,證明也會由驗證者在系統中進行廣播。

驗證者之間也會互相監督,透過舉報其他驗證者自相矛盾的投票或提議多個區塊的行為,從而獲得獎勵。

信標鏈裡主要記錄了驗證者的地址、每個驗證者的狀態、證明和分片的連結。驗證者需經由信標鏈啟用,也可以轉變線上狀態,稍後在“信標鏈驗證者啟用和生命週期”中有簡單的介紹。

質押驗證者:含義

驗證者是虛擬的,並由質押者啟用。在工作量證明 (PoW) 共識機制中,成為礦工需要購買挖礦硬體。而在以太坊2。0階段,使用者透過質押ETH來啟用和管理驗證者。

為了更清楚地理解質押驗證者的含義,我們可以將質押者(stakers)和質押金 (stake),驗證者 (validators) 和

餘額

(balance) 聯絡起來。每個驗證者擁有的餘額最多為32個ETH,不過,質押者可以質押他們所有的ETH。每質押32個ETH,一個驗證者就會被啟用。

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

交聯 (crosslinks):分片紮根信標鏈

交聯是指將一個信標區塊和一個分片區塊連線起來,在一個交聯中,信標鏈緊跟分片鏈頭。由於一個信標區塊中有64個分片,因此至多可以容納64個交聯。如果在某個slot中,沒有驗證者為其他63個分片提議區塊的話,在這個信標區塊上可能只有一個交聯。交聯計劃於eth2的階段1實現,為的是將分片紮根在信標鏈中,為分片分叉選擇、分片鏈最終確定性和跨分片通訊打好基礎。所有分片鏈全程都與信標鏈緊密相連。

委員會 (committees):介紹

一個委員會由一組驗證者組成。為加強安全保障,

每個slot(在信標鏈和每個分片裡)的委員會至少由128位驗證者組成。

而一個惡意攻擊者能夠控制2/3委員會成員的可能性低於

萬億分之一

以太坊信標鏈這一名詞,來源於隨機信標(randomness beacon, 向公眾提供隨機數字)這一概念。信標鏈在一個偽隨機的過程(RANDAO)中執行共識。

詳解以太坊2.0信標鏈

(在每個epoch中,RANDAO為每個slot挑選區塊提議者,並將驗證者打亂,分配至委員會中)

RANDAO根據驗證者餘額的權重,選擇出區塊提議者。在同一個slot中,一個驗證者可以同時是區塊提議者和委員會成員,但這並不是常態。出現這種情況的機率為1/32,因此我們大概會在每個epoch碰到一次。上圖情景中的驗證者不到8192個,不然每個slot就得至少包含兩個委員會。

關於委員會,本文重點講解

信標鏈委員會:

為信標鏈服務的驗證者。一個(信標鏈)委員會將會被偽隨機分配到一個分片上,將其交聯到信標區塊中。委員會成員不是固定不變的,負責交聯的委員會都是逐塊更替的。

分片委員會僅進行生產分片區塊的工作,此話題留待日後討論。

許多分片區塊由分片鏈驗證者生產,且不需要與信標鏈聯絡。然而,如果某個分片想要和其他分片通訊,則需要藉助信標委員會將其與信標區塊進行交聯。

詳解以太坊2.0信標鏈

(委員會里的驗證者應該要投票選出區塊鏈頭)

上圖綜合描述了三個slot中發生的情況。在slot1中,有驗證者提議出一個區塊,該區塊得到兩個驗證者的證明;而委員會A裡的一個驗證者離線了。Slot 1中的證明和區塊被廣播到網路上,許多驗證者也收到了該資訊。在slot 2中,又一個區塊被提議出來,而委員會B的一個驗證者錯過了該資訊,於是該驗證者認為信標鏈頭是slot 1中的區塊。請注意,這個驗證者跟slot 1的離線驗證者有所不同。

投票證明信標鏈頭的這個過程被稱為”LMD GHOST 投票”。

在slot 3中,委員會C上所有的驗證者都遵循LMD GHOST分叉選擇規則,並獨立地投票選出同一個信標頭。

一名驗證者在每個epoch中只參與一個委員會。

一般來說,系統中的驗證者會超過8192個,所以每個slot中會有一個以上委員會。所有委員會的規模都一樣大,至少由128個驗證者組成。當系統中的驗證者少於4096個時,安全性就會打折扣,因為這意味著單個委員會的驗證者將少於128個。

委員會 (committees):關鍵

在每個epoch中,驗證者們被均勻地分配到各個slot中,然後進一步分配到規模相當的各委員會中。所有驗證者都要在自己所在的slot中投票選出信標鏈頭。每個委員會都要在自己所在的slot中嘗試交聯某個特定的分片。混洗 (shuffling) 演算法會適時調整每個slot中委員會的數量,以保證每個委員會都至少有128名驗證者。

舉個例子,假定有16384名驗證者,其中512名驗證者被偽隨機分配到slot 1中,另外512名被分配到slot 2中,以此類推。Slot 1中的512名驗證者被進一步分成4個委員會,並被偽隨機分配到分片中。

假設分片33、55、22、11是這四個委員會所分配到的分片。所有512名驗證者都要在slot 1中發起LMD GHOST投票;其中一個委員會的 128 名驗證者試圖和分片33產生交聯;另一個委員會的128名驗證者試圖與分片55產生交聯;剩餘兩個委員會則試圖與分片22和分片11產生交聯。

在slot 2中,這個過程會重複一遍,512名驗證者同樣分成4個委員會,然後被偽隨機分配到分片中。假定他們被分配到分片41、20、17、15中。所有的 512名驗證者都要在slot 2中投票選出信標鏈頭;同時這幾個委員會也試圖與分片41、20、17、15產生交聯。

這個過程也會在該epoch剩下的slot中再三重複。每個驗證者在自己所處的slot中,可以進行投票、證明以及交聯。在該epoch結束之後,所有16384名驗證者都已發出過投票並且和分片進行過交聯。

但是,前面所提到的驗證者投票都是針對slot的,而並非針對epoch。打個比方,其區別類似在地方選舉和全國大選中進行投票。到目前為止,全體驗證者還並未就同一個事物進行投票。

以下部分將進一步闡釋檢查點 (checkpoints) 和最終確定性 (finality),描述了各驗證者處於分配的slot時,針對epoch發起的投票。也就是說,全體驗證者在自己所處的slot中,還要為epoch的檢查點投票。

信標鏈檢查點 Beacon Chain Checkpoints

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

詳解以太坊2.0信標鏈

(包含64個slots的epoch檢查點)

值得注意的是,從slot 65 到slot 128 之間是沒有區塊的。Epoch 2 的檢查點本來應該是位於slot 128 處產生的區塊,但因為該slot丟失了,所以epoch 2 的檢查點還是slot 64 處產生的區塊。Epoch 3 同理,slot 192 處是空塊,因此epoch 3的檢查點為slot 180處產生的區塊。

時段邊界區塊 (epoch boundary block, EBB) 是一些文獻 (比如

Gasper 論文

,也是上圖的來源) 中用到的術語,可以理解為“檢查點”(checkpoint) 的同義詞。

在發起一次LMD GHOST投票時,驗證者也要為最近一個epoch的檢查點投票,該檢查點叫做 “目標檢查點” ( target) 。該投票叫做

Casper FFG投票

,而且還包括對前一個檢查點的投票,叫做“來源檢查點“ (source)。

上圖中,epoch 1中的一個驗證者進行投票,將創世區塊選為來源檢查點,然後推舉slot 64 處產生的區塊為目標檢查點。在epoch 2中,同一個驗證者又為相同的檢查點投票了。驗證者只需為自己所分配到的slot發起LMD GHOST投票,但是每一個epoch上的所有驗證者都要為epoch的檢查點發起FFG投票。

絕對多數 supermajority

絕對多數(supermajority)是指

某個投票獲得了所有活躍驗證者總餘額2/3的支援

。 簡單來說,假設有 3 個活躍驗證者,其中兩個的餘額是8 ETH,另一個驗證者的餘額為32 ETH。那麼,那個擁有最多餘額的驗證者所進行的投票才是絕對多數;儘管另外兩個驗證者的投票可能不一樣,但是他們的餘額不足以形成絕對多數。

最終確定性 Finality

當一個epoch結束之後,如果其檢查點得到了2/3餘額票數,也就是形成了絕對多數,那麼該檢查點就被證明 (justified) 了。

如果檢查點B已經被證明,且其下一個epoch的檢查點也被證明了,那麼B就被最終確定了 (finalized)。一般來說,一個檢查點會在兩個epoch內得以最終確定,即12。8分鐘。

通常來說,使用者交易發生在一個epoch的中間部分;那麼距下一個檢查點就還有半個epoch的時間,也就是說,一筆交易經過2。5 個epoch(16 分鐘)便可得以最終確定 (finality)。在理想情況下,超過2/3的證明 (attestations) 將會被打包進某個epoch的第22個slot中。

因此,交易得以最終確定的平均時長為14分鐘(16+32+22個slot)。

區塊確認過程則經由區塊證明 (attestations),到被證明 (justification),再到最終確定 (finality)。使用者可以自己決定是否等到交易最終確定,還是說稍低一點的安全性也足夠了。

詳解以太坊2.0信標鏈

Slot 64處的檢查點被證明,slot 32處產生的一個區塊得以最終確定

為簡要敘述,下文將假設所有驗證者的餘額相同。

信標鏈頭髮生了什麼

在slot 96處,一個時段邊界區塊 (EBB) 被提議,且該區塊還包含了對epoch 2中檢查點的證明。Epoch 2檢查點的證明投票現達到了2/3的絕對多數,意味著epoch 2的檢查點被證明了。因此,上一個被證明的檢查點,即epoch 1檢查點,也獲得了最終確定性。Slot 32處的區塊一旦被最終確定,此前所有區塊都會被最終確定。

在對檢查點進行最終確定時,對同時可以得到最終確定的區塊在數量上並沒有限制。所以,雖然最終確定性僅在epoch邊界的時候產生,但證明 (attestations) 是逐塊累加的,下文的“從創世區塊到區塊鏈頭會發生什麼”提供了另一種解釋。

從slot 1到slot 32的信標鏈區塊所包含的所有交聯,也會使分片鏈獲得最終確定性。換句話說,當一個信標區塊被最終確定時,與該塊所交聯的分片區塊也能被最終確定。交聯本身不足以使一個分片區塊被最終確定,但是對分片鏈的分叉選擇有所幫助。

從創世區塊到區塊鏈頭會發生什麼

採取同樣的辦法,我們可以觀察到從創世區塊開始的一條故事線:

從slot 1到slot 36,所有的提議者都提議了一個區塊,且所有區塊都被新增到鏈上。對於epoch 1的所有區塊來說,其檢查點 (slot 32 處的區塊) 累積了55%的驗證者證明。驗證者在slot 64處提議區塊時,同時也對epoch 1處的檢查點發起投票。現在,有70%的驗證者都證明了epoch 1的檢查點,因此epoch 1檢查點被證明 (justified)。Epoch 2結束後,epoch 2 的檢查點 (slot 64處的區塊) 累積了投票證明但還達不到2/3的多數要求。驗證者在Slot 96處提議區塊時,同時也對epoch 2處的檢查點發起投票,所以這時候,epoch 2 檢查點的投票達到了2/3的多數要求,也就是被證明了(justification)。Epoch 2的檢查點被證明的同時,epoch 1的檢查點以及所有此前的區塊被最終確定了。

還有一種可能性,我們只考慮到epoch1。Epoch 2的檢查點被提議出來之前,epoch 1的檢查點可能已經獲得了絕對多數投票。

譬如說,當slot 32和slot 54的區塊被提議出來時,slot 32的檢查點的證明投票可能已經達到多數要求了。因而在這種情況下,檢查點可能在epoch 2之前就已經被證明了。最後一點,檢查點可以在離其最近的epoch中被證明,但是至少隔一個epoch才能被最終確認。

有時,一個區塊被證明意味著兩個甚至多個epoch以前的區塊被最終確定。Gasper論文裡討論了這種情況,只有在網路高延遲、網路隔離或遭遇強大攻擊等個別情況下,才會出現這種狀況。

最終確定性對於分片及以太坊區塊上的使用者來說是無比重要的,保證使用者們的交易安全進行,不被纂改,並且降低了跨分片通訊的複雜性。如果沒有最終確定性,分片內部和分片之間的交易回滾會具有破壞性,或讓分片的利好不復存在。

更加深入地瞭解證明 (attestations)

一則證明包含一個LMD GHOST投票和一個FFG投票。

理想情況下,每個epoch中所有驗證者提交一份證明。每一個證明有32個slot的機會被打包進鏈,這意味著在單個epoch,一名驗證者可能有兩份證明被打包上鍊。

如果驗證者在其所分配的slot裡傳送證明,且該證明被打包上鍊,那麼驗證者獲得的獎勵為最大值;隨後打包上鍊所獲得的獎勵就會不斷減少。為了留給驗證者準備的時間,他們被提前一個epoch分配到委員會中。一旦epoch開始,提議者只會被分配到各slot中。儘管如此,

秘密領導人選舉

旨在降低攻擊和賄賂提議者的風險。

委員會使得聯合簽名的技術達到最最佳化狀態,將每一名證明者的簽名聚合成一個簽名。當驗證者在同一個委員會中,並做出了同樣的LMD GHOST和FFG投票時,他們的簽名就可以被聚合。

信標鏈驗證者獎懲機制

1。 證明者獎勵(attester rewards)

2。 證明者懲罰(attester penalties)

3。 質押者特有風險(typical downside risk for stakers)

4。 罰沒和吹哨者獎勵(slashings and whistleblower rewards)

5。 提議者獎勵(proposer rewards)

6。 “不作為”懲罰(inactivity penalty)

當驗證者所給出的證明 (LMD GHOST或FFG投票) 為其他大部分驗證者所同意時,會獲得獎勵。在eth2的階段1中,驗證者也可以透過與分片產生交聯而獲取獎勵。當區塊被最終確定,獎勵也隨之確定。

相反,如果驗證者沒有提交證明,或者其投票選出的區塊最終沒有被確定,那麼驗證者就會受到懲罰。

在描述相對來說不那麼常見的獎懲制度之前,你可能想知道成為一名質押者所面臨的風險。作為一名質押者,損失ETH的風險與回報並存。如果一名驗證者在一年中能賺取10%的報酬,那麼一名工作表現差強人意的 (誠實) 驗證者則面臨10%的損失。比如說,一名驗證者總是不線上,或者其投票的區塊總是無法被最終確定,他將會受到懲罰,而罰款數額等於一名驗證者投出有效區塊所獲得的獎勵數額。

罰沒的數額最少為0.5個ETH,最多則是一名驗證者的所有質押金額。

一名驗證者如果受到了罰沒 (slashing) 懲罰,其將至少損失餘額的1/32,且會被停止繼續參與工作。該名驗證者所受懲罰的程度,與連續8192個epoch都離線的驗證者所受的懲罰相當。基於同時受到罰沒懲罰的驗證者的數量,協議還會對驗證者做出額外的懲罰。施以額外懲罰的基本公式是:“validator_balance*3*fraction_of_validators_slashed”。也就是說,如果1/3的驗證者同時受到了罰沒,他們會損失所有餘額。而對罰沒行為舉報成功的驗證者,則可以獲取吹哨者獎勵。

區塊一旦得以最終確定,區塊提議者便可以獲得相當可觀的獎勵。一直線上且妥善完成工作的驗證者,他們提議區塊所能獲得的獎勵將提高1/8。如果發生罰沒行為,提議者還可以將罰沒證據打包進區塊,從而獲得少量報酬。在eth2階段0,所有吹哨者的獎勵實際上都歸於提議者。

以太坊2。0這個系統裡有許多機制,通過了解其作用,便可以更好地瞭解這些機制。這套獎懲制度裡,最後一項便是“不作為”懲罰。

簡單來說,如果有超過4個epoch沒有獲得最終確定性那麼所有驗證者都要受到翻倍的“不作為”懲罰,直到下一個檢查點被最終確定。“不作為”懲罰的作用在於:如果50%的驗證者掉線了,在21天后會再次重新對區塊進行最終確定。

罰沒 Slashing

如果出現以下這三種情況,要對驗證者進行罰沒懲罰:雙重提議、FFG雙重投票和FFG環繞投票。LMD GHOST投票不會受到罰沒懲罰。

雙重提議 (double proposal)

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

雙重投票 (double vote)

指一名驗證者針對同一個目標檢查點 (target),不同的源檢查點 (source) 發起的兩次FFG投票。

環繞投票 (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投票

在epoch 6內,針對slot 128目標檢查點的FFG投票是雙重投票,除非slot 32為源檢查點,否則要受到罰沒。相同的FFG投票不會遭到罰沒。

針對同一個源檢查點的兩次FFG投票,不用受到罰沒。這對系統的活性很重要。比如說,如果有兩個分叉,每個分叉佔有驗證者50%的餘額,那麼協議需要鼓勵 (而非懲罰) 驗證者透過對同一個源檢查點和一個不同的目標檢查點發起投票,從而在分叉間轉換。驗證者可以在分叉之間安全地來回轉換,並嘗試達到2/3的絕對多數,以避免陷入僵局。

一名吹哨驗證者提出舉報時,需要打包衝突投票的相關資訊來證明該驗證者應受到罰沒。要在一個龐大的記錄系統裡,有效地找出衝突投票,是對演算法和資料結構的一項巨大挑戰。

“罰沒檢測工程挑戰”

正在尋求參與者。

驗證者完全有能力使自己避免被罰沒:只需要記住其對哪些證明和提議進行了簽名。一名誠實的驗證者不會因為其他驗證者的行為而受到罰沒。只要驗證者沒有對沖突的證明或提議進行投票,就不會受到罰沒。

一個驗證者客戶端可以執行多個信標節點,從而延長系統的正常執行時間、增強信任和DoS攻擊抵禦。在執行節點或是執行備份驗證者客戶端時,使用者需要注意,驗證者有無對沖突的資訊進行簽名。

信標鏈驗證者啟用和生命週期

每一位驗證者需要32個ETH才能啟用。一個使用者在以太坊主網的存款合約 (deposit contract) 裡質押32個ETH,就會啟用一位驗證者。

當驗證者的餘額低於16個ETH時,信標鏈就會停止這些驗證者的工作。

質押者可以將剩餘的驗證者餘額提出來,但目前無法在eth2的階段中實現。

在2048個epoch,將近9天時間的工作之後,驗證者還可以自願選擇退出。

退出時,質押者需要等待4個epoch才能撤出其質押金在這4個epoch之內,驗證者仍然有可能面臨舉報和罰沒。一名誠實驗證者大概27小時之後便可以提出其餘額。然而,如果一名驗證者受到了罰沒懲罰,則必須等8192個epoch (大約36天) 之後才能夠提出餘額。

“以太坊2。0階段0驗證者生命週期”

中有更詳細的技術說明,內含以下示意圖:

詳解以太坊2.0信標鏈

為了避免短時間內對驗證者造成巨大的變動,存在一些機制對單位epoch上驗證者啟用和退出的數量進行限制。其作用之一在於使得很難在短時間內啟用大量驗證者對系統進行攻擊。

信標鏈深度應用了有效餘額 (effective balances) 的概念,這就使得驗證者的餘額變動範圍更加小,以達到技術的最最佳化。

總結

在每個epoch,驗證者們被均勻地分配到各個slot中,然後進一步分配到規模相當的各委員會中。各個驗證者同時只能位於一個slot和一個委員會中。

總結幾點:

同一個epoch裡的所有驗證者嘗試最終確定同一個檢查點:這是FFG投票;

所有驗證者被分配到一個slot中,嘗試投票選出同一個信標鏈頭:這是LMD GHOST投票;

所有驗證者被分配到一個委員會中,嘗試交聯某個分片。

採取最優行為的驗證者獲得的獎勵最多。

啟用信標鏈至少需要16,384個創世驗證者。驗證者的數量可能會因為罰沒或者自動退出而減少,也會隨質押者的啟用而增加。當系統升級到eth2階段1或以上時,將需要更多的驗證者工作。信標鏈需要至少262,144個驗證者 (質押金額將超過800萬ETH) 來生產區塊,每個區塊包含64條交聯。

歷史上從來沒有過為去中心化系統和應用搭建的擴容平臺。如果你受到了啟發,想要更深入地參與,

“ETH2。0規範”

裡有權威的參考。其中包含信標鏈規範,還有其他關鍵資源以及賞金的相關問題。

目前來說,點對點網路層

最亟待完善。來和我們一起參與這項挑戰吧!更多技術細節請訪問ethresear。ch或者Ethereum Magician’s forum,和我們一起創造歷史吧!

感謝 Danny Ryan 對多個部分的審校和反饋,感謝 Momo Araki 的圖表以及提供諮詢的各位。標題圖由 Hsiao-Wei Wang 的原作修改而來。如果讀者朋友覺得本文對你有所幫助,請不吝分享!

標簽: 驗證  區塊  Slot  分片  epoch