Vitalik 這 75 條推文,其實是解釋了 Casper 研究的歷史和現狀,包括 FFG 與 CBC 之爭、隨機性的作用以及機制設計等問題。從創始人及 FFG 提出者的角度,洋洋灑灑 4000 字對以太坊 Casper 的發展進行較爲詳盡的解讀。在瞭解 V 神說了什麼之前,我們首先要知道什麼是 Casper?

瞭解以太坊 Casper

Csaper 是以太坊選擇實行的 PoS 協議。它實施了一個進程,使得它可以懲罰所有的惡意因素。這就是權益證明在 Casper 下是如何工作的:

-驗證者押下一定比例的他們擁有的以太幣作爲保證金。

-然後,他們將開始驗證區塊。也就是說,當他們發現一個他們認爲可以被加到鏈上的區塊的時候,他們將以通過押下賭注來驗證它。

-如果該區塊被加到鏈上,然後驗證者們將得到一個跟他們的賭注成比例的獎勵。

-但是,如果一個驗證者採用一種惡意的方式行動、試圖做「無利害關係」的事,他們將立即遭到懲罰,他們所有的權益都會被砍掉。

Vitalik 連發 75 條推文,告訴你以太坊 Casper 究竟咋回事…

正如你可以看到的,Casper 被設計成可以在一個無需信任的系統上工作,並且是更加拜占庭容錯的。

任何人,如果以一種惡意的,或者說是拜占庭叛徒式的方式行動,就會立即受到懲罰、失去他們的保證金。這就是它不同於其他權益證明協議的地方。

在第 33-75 條推文中,Vitalik 分析了自己與 Vlad 的不同觀點,並闡述了 Casper CBC 和 Casper FFG 的發展近況及未來規劃。

Casper FFG 和 Casper CBC

Casper 不是一個具體的項目。它是兩個研究項目的融合,這兩個在最近一直由以太坊開發者團隊承擔:

-Casper the Friendly Finality Gadget (FFG)

-Casper the Friendly GHOST: Correct-by-Construction (CBC)

Casper FFG

Casper FFG 也就是衆所周知的 Vitalik 版 Casper,是一個混合 PoW/PoS 共識機制。它是正準備進行初步應用的版本,也是被精心設計好來緩衝權益證明的轉變過程的。設計的方式是,一個權益證明協議被疊加在正常的以太坊版工作量證明協議上。雖然區塊仍將通過工作量證明來挖出,每 50 個區塊就將有一個權益證明檢查點,也就是網絡中驗證者評估確定性 Finality 的地方。

在確定了利用保證金進行懲罰後,該如何去確定惡意行爲以及具體的實現這一懲罰?

我在相當長一段時間內嘗試的方向是「通過投注達成共識 consensus by bet」。驗證者對他們認爲的最終區塊進行投注,區塊所在的位置也同時決定了他們更傾向的是哪一條主鏈。驗證者們得到的獎勵跟他們的賭注成正比,失敗者將失去賭注。

當驗證者看到其他人對某個區塊越來越有信心時——這也意味着該區塊勝出的可能性呈指數級上升,他會選擇把所有的賭注全押在這同一個區塊上。

但我最終放棄了這一方向,它看上去存在一些根本性的風險。在此之後,我轉去研究實用拜占庭容錯算法 PBFT 的運行機制。

我設法簡化了 PBFT,並讓其適用於區塊鏈環境。我的規則確定了四種「消減條件 slashing conditions」——在這些情況下,驗證者的消息組合被認爲是自相矛盾的,因而其行爲是惡意的,保證金將會被削減。下圖的右側情況即是一組自相矛盾的消息。

Vitalik 連發 75 條推文,告訴你以太坊 Casper 究竟咋回事…

該規則可以確定最終區塊,以及證明其安全性與合理性。在這些規則之下:1. 如果一個區塊已被確定,其他衝突區塊將無法被確定,除非多於三分一的驗證者違反「消減條件」;2. 如果一個區塊已被確定,2/3 的誠實驗證者可以合作生成一個新區塊。

因此,只要多於 2/3 的驗證者是誠實的,該算法既不能「回頭」也不會「卡住」。

我最終將「消減條件」從四個簡化爲兩個,並在其基礎上建立了 FFG 即 Casper the Friendly Finality Gadget 協議。該協議可以疊加在 PoW,PoS 或其他區塊鏈協議之上。

Casper CBC

Casper CBC 就是我們所知的 Vlad 版 Casper 使用建構修正協議。

這是一個普通的協議設計的樣子:

-你正式指定協議。

-定義該協議必須滿足的屬性。

-證明該協議可以滿足給定的屬性。

而 CBC 協議的樣子是:

-你正式地但只是部分地指定協議。

-定義該協議必須指定的屬性。

-從滿足所有它被規定去指明的屬性中推導出該協議。

就在我研究「通過投注達成共識」和 FFG 的同時,Vlad 開始大量研究受 traditional BFT 傳統的拜占庭容錯算法啓發的共識協議,比如 Tendermint。Vlad 嘗試重塑了 BFT,也就有了之後的 CBC 即 Correct by Construction 協議。

CBC 不同於傳統 BFT,它的「確定性」是完全主觀性的。在 CBC 中,驗證者選擇區塊,如果他選擇的區塊和其之前的選擇有衝突,則必須先給出一個理由,證明他新投的區塊比原先的區塊更值得被支持,否則不能改變之前的選擇。

做一個假設,如果每個人都投票支持 B,則投出來的區塊包含有「每個人都投票支持 B」的信息,這將證明投票者支持 B 並且他也知道其他人都支持 B,投票者將沒有理由從投 B 轉換爲投其他節點。

Casper 的「確定性」

當一個區塊被確定後,在 Casper 協議中,無論網絡如何延遲它都是安全的,不同於 PoW。改變最終共識需要有多於三分之一的驗證者作弊,這種作弊將導致他們的保證金被罰沒。一次共識逆轉需要耗費數十億美元。

Casper CBC 與 Casper FFG 兩種協議都實現了「確定性」這一目標,雖然採用的方法不同。這種「確定性」是我們邁出的一大步。

要注意的是,在協議的運行上, CBC 和 FFG 都是疊加層,需要應用在現有的分叉選擇規則 fork choice rule,即決定哪一條鏈有效的規則之上,但兩者的工作方法不同。

簡單來講就是在 CBC 裏,區塊確定疊加層需要適應分叉選擇規則,而在 FFG 中,分叉選擇規則需要適應區塊確定疊加層。

Vlad 最初傾向的分叉選擇規則是「最新消息驅動的 GHOST (Greedy Heaviest-Observed Sub-Tree)」,這是 GHOST 的一種演化版,因此在 CBC 協議下,直接 PoS 出塊。

我則傾向於混合 PoS,區塊仍通過 PoW 挖出,但區塊的最終確定通過 PoS 完成。

Casper 哲學本質

如下圖所示,網絡中存在三個派別: 少數派、多數派和用戶協議方,以及四種可能的攻擊:少數派攻擊協議,少數派攻擊多數派,多數派 51% 攻擊協議,以及多數派對少數派的審查攻擊。

Vitalik 連發 75 條推文,告訴你以太坊 Casper 究竟咋回事…

Casper 的哲學本質在於:對於這四類攻擊,都通過設置受害者的損失與攻擊者的成本之間的比例來解決。 在某種意義上來說,Casper 的每一個設計決定都來自這個原理。

對於前兩類攻擊,由於攻擊者需要冒着區塊不被納入區塊鏈的風險,因而成本高昂,可以被有效避免。

但 PoW 無法防備 51% 攻擊。如果攻擊者佔多數,攻擊就是無成本的,因爲攻擊者總能保證他們的鏈成爲主鏈,攻擊導致受害者損失利益,攻擊者得到利益。

Casper 協議通過懲罰自相矛盾的行爲來防止 51% 攻擊—— 如果驗證者發送互相沖突的消息,即使其中一條消息與共識一致,也會受到嚴重的懲罰,保證金會被消減。

如果發生最終共識逆轉,造成逆轉事件的人就會受到懲罰,而其他人則不受影響。多數派只能以沉重的代價攻擊協議,且多數派的行爲不會導致少數派利益受損。

懲罰審查攻擊則更具挑戰,因爲這是一個非唯一可歸因的錯誤,活躍度錯誤(脫機)和審查錯誤可能導致同樣的結果。

活躍度錯誤是指大部分的驗證者下線,使得共識無法最終確定;審查錯誤是指大多數驗證者拒絕接受某些交易,或拒絕接受來自其他驗證者(受害者)的審查信息,從而使其他驗證者無法獲得報酬。

比如一個執行中的協議,70% 的驗證者的消息被包含在鏈中,30% 的沒有被包含,那麼就無法判斷問題到底是出在 30% 的驗證者下線了,還是出在 70% 驗證者惡意審查。

懲罰唯一可歸因錯誤很簡單,但懲罰非唯一可歸因錯誤很難。

解決這一問題有三種不同的思路:1. 輕微的懲罰雙方;2. 嚴厲的懲罰雙方(Vlad 的偏好);3. 把鏈拆分爲兩條,懲罰鏈上的每一方,然後讓市場決定哪條鏈更有價值(我的偏好)。

Casper 的最新進展

FFG 正在進行的工作包括形式化證明,規範的改進,規則的實施,另外尤其關注安全和性能的提升,CBC 方面的情況也基本類似。

如果對比 CBC 和 FFG,會發現 CBC 看上去有更好的理論基礎,但 FFG 似乎更容易實現。

我決定在近期開始研究 Leslie Lamport 寫於 1982 年的老論文,在一個低延遲,所有節點均在線的網絡環境裏,Leslie 的共識算法可以達到 99% 的容錯性。

進行這一研究的長期目標是儘可能減少協議執行對社會層面的依賴,同時最大化破壞區塊鏈穩定性的成本。

鏈聞 ChainNews:提供每日不可或缺的區塊鏈新聞。


文章來源:碳鏈價值、 DappVision
由鏈聞編輯整理
版權聲明:文章爲作者獨立觀點,不代表 鏈聞 ChainNews 立場。