在Eth2 最終敲定後會發生什麼?

區塊鏈的一個基本屬性是“最終確定性(finality)”,它的大概意思是經過一定時間後,被打包到權威鏈的交易是極其困難,甚至幾乎不可能回滾的。 Eth2 在協議上有一個“明確的”機制是關於鏈的最終確定性的,它區別於現在使用PoW 機制的比特幣和以太坊上的“概率性”最終確定性。

在工作量證明中,共識從根本上說是一場全球競賽,其中第一個挖出有效區塊的幸運礦工會獲勝——比賽方式是找出計算難度問題的數學方案。因此,出塊時間是概率性的。越多的區塊被打包到區塊鏈上,回滾就越難,因為每個區塊都代表了構建區塊所需的電力和算力的累積總和。由於防止攻擊者能夠回滾今天的比特幣和以太坊區塊鍊是有切實的物理保證的,我們可以把超過一定時間的交易看作“被最終敲定了(finalized)”。

然而,權益證明機制的以太坊不是基於概率性最終敲定來運作的。相反,它把最終確定在協議上作了明確規定——“如果超過三分之二的驗證者對區塊鏈頭正確投票了,經過一段很長的時間後,我們就認為這個特定檢查點以前的所有交易都被最終敲定了”。最終確定性是明確的,而遵循協議的節點將無法回滾最終敲定的檢查點(checkpoint),因為不管共識權重如何,這在根本上是不可能的。

在Eth2 裡,最終確定性的機制是什麼樣的?

Eth2 是一個同步協議,它用“檢查點”機制進行記賬。本質上是一個驗證者集被分配到一個有32 個slot 的窗口,履行出塊或對區塊投票的職責。其中,每個slot 是12 秒,而32 個slot 構成一個epoch。在一個epoch 裡,有32 個驗證者被分配到擔當區塊提議者(block proposer),其他驗證者都擔當證明者(attester),他們要給每個epoch 裡被提議的區塊投票。

每個slot 裡只會分到一個區塊提議者,但會有多個“證明者”

例如,Alice 在slot 4 被選為區塊提議者,而Bob、James、Charlie 和Susan 都被選為證明者,這意味著他們都要對Alice 提議的權威區塊投票。

Eth2 使用Casper 權益證明共識,特別是其中的”確定性小工具(finality gadget)”。 Eth2 最終敲定的過程定義如下:

1、如果在一個epoch 裡,大於2/3 的驗證者對區塊鏈頭正確投票,我們說最新的epoch 被證成了(justified)。

2、如果連續兩個epoch 被證成了,那麼current_epoch – 2 (當前epoch – 2)被認為被最終敲定了。

在正常的操作中,鏈的目的是一直做最終敲定。如果在被最終敲定的epoch 後有超過4 個epoch,那麼所有驗證者都會開始受到懲罰,以激勵快速恢復敲定工作。

epoch 末會發生什麼?

在eth2 的epoch 末,狀態轉換函數執行重要的記賬功能,以弄清楚在這個時間段共識層確切發生了什麼,並為下一個epoch 做準備。驗證者在每個epoch 都會被混洗,分配新的任務,除非出現鏈重組,否則我們可以提前兩個epoch 得知我們分配到的任務。

在epoch 過渡中,我們會統計出鏈頭的所有票數。驗證者使用“有效餘額(effective balance)”投票,以gwei 計價。在談論eth2 時,我們通常會提到驗證者參與率,它的定義是在一個epoch 裡用於區塊鏈頭正確投票所質押的總gwei 與所有活躍驗證者所質押的總gwei 的比值。

確定一個新被最終敲定的檢查點意味著什麼?

在Eth2,確定一個最終敲定的檢查點是非常重要的,因為協議裡很多明確定義的東西都以它為界限。也就是,在檢查點被最終敲定前,所有通過p2p gossipsub 收到的信息都會被忽略和丟棄。此外,以下是在eth2 一個新被最終敲定的檢查點會發生的事:

  • 所有從新被最終敲定的檢查點之前傳入gossipsub 的信息都會被忽略

  • 分叉選擇規則的更新只認從最終敲定的檢查點開始的投票。這意味著,遵循協議的節點是不可能對被最終敲定的檢查點進行回滾的。

  • 被最終敲定的檢查點以前的存儲數據是可以被修剪的,沒有安全問題

激勵與重組

協議獎勵對維護我們所謂的”鏈的活性“有一個很強的激勵機制。自從Eth2 的主網在2020 年12 月1 日被激活以來,該鏈一直具有完美的活性,特別是每個epoch 都按預期被最終敲定。而鏈的參與率,即正在給區塊鏈頭正確投票所質押的ETH 佔所有活躍驗證者質押量的百分比,一直保持在90% 以上的高水平。

數據來源:https://beaconcha.in

除非大部分的質押者都離線了,或多人使用的客戶端實現出現嚴重漏洞,否則激勵機制會一直支持最終敲定current_epoch – 2。鑑於在eth2 裡,epoch 時長為6.4 分鐘,即12.8 分鐘前的epoch 應該總是被最終敲定的。

關於MEV,我們當然還沒在區塊鏈裡看到出現超過12.8 分鐘的重組。那麼,我們是否可能通過信標鏈本身的數據獲得交易最終確定性的概率估值呢?

電動汽車

Eth2 裡的每個區塊都包含關於共識的元數據,即每個區塊都包含如下信息:

  • 加入信標鏈的新驗證者(eth1 的驗證者存款)

  • 證明(attenstation),即其他驗證者對鏈上先前區塊的投票

  • 驗證者想要退出其職責的證明

  • 驗證者被罰沒和被強制逐出的證明

對於我們的目的來說,最重要的就是證明。由於每個slot 都會出塊,時間是剛好12 秒。對於我們收到的每個區塊,我們都可以計算目前為止對區塊鏈頭正確投票的驗證者所質押的ETH 佔所有活躍驗證者所質押的ETH 的百分比。例如,如果在一個epoch 結束前我們已經收到超過前2/3 的投票了,且上一個epoch 已經有超過2/3 的驗證者正確投票了,我們能相當確定鏈的最終確定性很快能達成。也就是說,我們可以在最終確定性達成的前6.4 分鐘就對這個結果很有信心了。

儘管這種”信心“是很有用的,但如果在權威鏈的分叉上有足夠多的投票權, 1 個甚至2 個epoch 內的重組仍然是可能的。就我們觀察到的情況,Eth2 上有大量投票權的小型分叉是很罕見的,並在當前的鏈上從未發生過。

關於MEV 的問題:我們要多久才能知道最終確定性,使它對MEV-geth 起作用呢?

對最終確定性的哲學討論

節點可以違反協議嗎?

最終確定性,說到底,是由對協議規則的社會共識執行的一個抽象概念。有一個誠實假設是,節點確實在遵循協議。這意味著即使一些行為不當的節點嘗試修改它們的客戶端軟件,以忽略關於最終確定性的規則,也不會影響整個網絡,因為所有其他節點都會遵循協議。

而決定重組的分叉選擇是從被最新最終敲定的epoch 開始的,除非絕大多數的節點都違反協議,否則重組是不可能發生的。

來源| @prysmaticlabs

作者| Raul Jordan

Total
0
Shares
Related Posts