引介:Casper FFG在ETH2.0中的實現
編者按:本文來自以太坊愛好者(ID:ethfans)編者按:本文來自
以太坊愛好者(ID:ethfans)
以太坊愛好者(ID:ethfans)
編者按:本文來自
以太坊愛好者(ID:ethfans)
以太坊愛好者(ID:ethfans)
編者按:本文來自
以太坊愛好者(ID:ethfans)
以太坊愛好者(ID:ethfans)
,作者:Aditya Asgaonkar,翻譯&校對:閔敏& 阿劍,Odaily經授權轉載。
我的上一篇文章介紹了Casper FFG 的基本知識。本文的第一部分將對Eth2.0 信標鏈中所用的Casper FFG 實現作出扼要的描述。第二部分將討論信標鏈的分叉選擇規則及其它有關區塊鏈活性的因素。
本文直接解釋了ETH 2.0 規範中的一些概念,並儘可能地附上了規範中相關參數和函數的鏈接。這些鏈接僅作參考之用,無需閱讀鏈接內容也可理解本文。
第一部分—— Casper FFG 機制
Slot、Epoch 和Attestation
Slot(時隙):區塊鏈上的時間是按照slot 來劃分的,每一個slot 期間都可以提議一個新的區塊。目前,一個slot 的時長是SECONDS_PER_SLOT = 12,即12 秒。系統會為每一個slot 分配一名驗證者來創建新的區塊。
- 當SLOTS_PER_EPOCH = 3 且區塊A、D 和G 為檢查點時,slot 和epoch 的情況 -
我在上一篇文章中提到的確定性達成(Finalization)定義有了一處改變:
圖片描述
確定性達成:只要區塊B 滿足以下條件,即可獲得確定性
圖片描述
二級標題
在按slot 編號遞增的[B_0, B_1, ... , B_n](n >= 1)鏈上有一系列檢查點,所有這些檢查點都得到了合理化,且
圖片描述
二級標題
更改後的定義依然保留了上一篇文章中所述的Casper FFG 安全性證明的概要。關於安全性證明的完整內容,可參見這篇文章中的“安全性” 一節。
二級標題
信標鏈的鏈上FFG 機制專門通過處理區塊和attestation 來檢測確定性。在每個epoch 邊界,該機制都會處理新的attestation 並更新已經得到合理化和確定性的區塊。
圖片描述
鏈上FFG 機制只處理特定的來源區塊-目標區塊對的attestation ,而非所有可能的來源區塊-目標區塊對的attestation ,從而降低了成本。具體來說,該機制僅處理當前和上一個epoch 中的attestation(另外還要滿足其他一些條件!)。因此,鏈上FFG 機制無法檢測所有確定性實例!簡而言之,該鏈上機制是可靠的,但並不完善。
圖片描述
第一步是檢測區塊的合理性,即,使用來自最新兩個epoch 的attestation 來驗證最新兩個epoch 邊界區塊的合理性。
圖片描述
二級標題
- 確定性檢查中的檢查點情況(黃色區塊是被證明合理的,紅色區塊是得到最終確定的) -
儘管Casper FFG 機制概述了保障區塊確定性的規則,但是它並未提及該機制是如何保障網絡活性的(注:本文並非試圖證明網絡的活性,而是概述了有望實現活性的過程。想要了解更嚴謹的分析,請參閱這篇文章)。這一部分主要介紹了關於活性的兩大注意事項:
二級標題
驗證者所遵循的區塊和attestation 生成方案
二級標題
提議區塊的驗證者必須先確定(本地觀察到的)區塊鏈的頂端。為此,他們需要使用Hybrid Latest Message Driven (HMLD) GHOST 分叉選擇規則。
二級標題
該分叉選擇的規範如下:
二級標題
使用一般LMD GHOST 規則沿著區塊樹向下,直到找到葉子塊為止。
https://github.com/ethereum/eth2.0-specs/tree/dev/specs/phase0


