以太坊學術論文深度解讀系列(一):Gasper 共識協議安全性證明的完整數學推導

Gasper 是以太坊在 The Merge 後採用的共識協議,結合了 CBC 方法論和 LMD Ghost 分叉選擇規則。本文從形式化角度逐步推導 Gasper 的安全性證明,涵蓋 FFG 的最終確定性(Censorship Resilience)、Ghost 的分叉選擇邏輯、罰沒條件的數學基礎、以及活性的數學證明。我們提供完整的數學推導過程,包括雙重投票和環繞投票的防禦機制、安全閾值的推導、以及實際攻擊成本估算。這是深入掌握以太坊共識機制的核心參考資料。


title: "以太坊 Gasper 共識安全性的形式化學術分析:密碼學證明與經濟安全保障機制"

summary: "Gasper 是以太坊用於達成共識的協議,結合了 Casper the Friendly Finality Gadget(Casper FFG)的最終確定性和 LMD-GHOST 分叉選擇規則。本文從學術角度深入分析 Gasper 的安全性證明,涵蓋委員會共識的數學基礎、罰沒條件的嚴格推導、經濟安全保障的量化分析、以及對各類攻擊向量(51% 攻擊、遠程攻擊、審查攻擊)的安全性論證。我們提供完整的數學推導、形式化描述和 Python 程式碼模擬,幫助研究者和開發者深入理解以太坊共識層的安全性根基。"

date: "2026-03-31"

category: "technical"

tags:

difficulty: "advanced"

status: "published"

parent: null

datacutoffdate: "2026-03-31"

references:

url: "https://ethereum.github.io/yellowpaper/paper.pdf"

desc: "以太坊的形式化技術規範,包含 Gasper 協議的數學定義"

tier: "tier1"

url: "https://arxiv.org/abs/1710.09437"

desc: "Casper FFG 的原始學術論文,發表於 arXiv"

tier: "tier1"

url: "https://vitalik.eth.limo/general/2017/12/31/pos_faq.html"

desc: "Vitalik 對 PoS 設計哲學的經典論述,包含安全性論證"

tier: "tier1"

url: "https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/gasper/"

desc: "以太坊官方對 Gasper 協議的技術說明"

tier: "tier1"

url: "https://arxiv.org/abs/1710.09437"

desc: "Casper FFG 學術論文的正式發表版本,包含安全性證明"

tier: "tier1"

url: "https://docs.prylabs.network/docs/how-prysm-works/consensus-mechanisms/ghost/"

desc: "LMD-GHOST 分叉選擇規則的詳細說明"

tier: "tier1"

url: "https://arxiv.org/abs/2006.12344"

desc: "對 PoS 共識機制各類攻擊向量的形式化分析"

tier: "tier2"

url: "https://runtimeverification.com/blog/ethereum-2/"

desc: "Runtime Verification 對以太坊 2.0 共識的形式化驗證報告"

tier: "tier2"

url: "https://consensys.net/diligence/audits/"

desc: "對共識層合約的第三方安全審計報告"

tier: "tier2"

url: "https://github.com/ethereum/cbc-casper/"

desc: "用 Coq 定理證明器對 Casper 的形式化建模"

tier: "tier2"

url: "https://www.youtube.com/c/Bankless"

desc: "對以太坊最終確定性的深入討論"

tier: "tier3"

url: "https://ethresear.ch"

desc: "以太坊研究論壇上的 Gasper 技術討論"

tier: "tier3"

url: "https://research.flashbots.net"

desc: "Flashbots 對 MEV 與共識機制交互的研究"

tier: "tier3"

disclaimer: "本篇文章屬於學術技術分析,涉及複雜的密碼學和形式化方法內容。讀者需要具備離散數學、密碼學基礎和區塊鏈共識機制的基本了解。"


以太坊 Gasper 共識安全性的形式化學術分析:密碼學證明與經濟安全保障機制

搞學術研究的人最喜歡做的事情,就是把一個看似直觀的概念,用一堆希臘字母和數學符號包裝起來,然後聲稱「這是顯而易見的」。共識機制的安全性分析就是這樣一個領域——表面上大家在討論「網路如何達成一致」,實際上背後涉及複雜的投票理論、經濟激勵和密碼學假設。

Gasper 是以太坊用於實現共識的核心協議,名字來自「Gas」和「Casper」的組合。它結合了兩個關鍵組件:Casper the Friendly Finality Gadget(簡稱 Casper FFG)負責最終確定性,Latest Message Driven GHOST(簡稱 LMD-GHOST)負責區塊分叉選擇。理解這兩個組件如何協作,以及它們的安全性邊界,是深入理解以太坊的必經之路。

Gasper 的形式化定義

基本假設

在我們開始數學推導之前,需要先明確定義幾個基本假設。這些假設不是無中生有的——它們反映了網路和參與者的現實約束。

異步網路假設(Partial Synchrony):Gasper 的安全性證明基於「部分同步」網路模型。這個模型假設網路有一段未知的「全球穩定時間」(Global Stabilization Time, GST),在 GST 之後,所有消息都能在某個已知的最大延遲 Δ 內被傳遞。在 GST 之前,網路可能是完全異步的,消息可能無限期延遲。

這個假設的現實意義是:在正常情況下,網路會正常運作;在災難性故障(如大規模 DDoS 攻擊)後,網路會最終恢復,而 Gasper 的安全性在恢復後能得到保證。

誠大多數假設(Honest Majority):協議假設在任意時間點,至少 2/3 的驗證者質押量是由「誠實」的驗證者控制的。誠實的定義是:這些驗證者會遵守協議規範,不會進行惡意行為如雙重投票或等價投票。這個假設是密碼學領域的標準假設,稱為「誠實大多數」(Honest Majority)。

同步典範假設(Synchrony Assumption):用於 LMD-GHOST 的安全性論證,假設攻擊者控制的驗證者比例低於 1/3。這是一個比 Casper FFG 更嚴格的假設,但適用於不同的安全性需求。

符號約定

讓我們定義一些符號,這些符號會在後面的推導中反覆出現:

V 表示驗證者集合,|V| = n 表示驗證者數量。

wi 表示驗證者 i 的質押權重(或投票權重),滿足 Σ wi = W,其中 W 是總質押量。

η = Σ{i 是誠實的} wi 表示誠實驗證者的總權重。

α = η / W 表示誠實驗證者的權重比例,根據假設 α > 2/3。

β 表示攻擊者的權重比例,β = 1 - α < 1/3。

Epoch 是時間的基本單位,每個 Epoch 包含 32 個 Slot,每個 Slot 為 12 秒。因此,一個 Epoch 大約是 6.4 分鐘。

Casper FFG 的核心機制

Casper FFG 是一個「最終確定性子系統」,它建立在任何基於工作量證明或權益證明的「分叉選擇規則」之上。它的目標很簡單:一旦某個區塊被「最終確定」,這個確定性就不可撤銷——除非攻擊者願意付出巨大的經濟代價。

最終確定性的概念是這樣的:考慮一個有向無環圖(DAG)表示的區塊樹,每個區塊都有一個「朝代」(Epoch)標記。Casper FFG 的目標是讓驗證者對某些區塊的「最終狀態」達成共識。

具體來說,驗證者會對區塊進行「投票」。一張投票包含三個要素:

  1. 來源區塊(source):投票者認為「已經確定的」區塊
  2. 目標區塊(target):投票者希望「即將確定的」區塊
  3. 朝代標記(epoch):目標區塊所在的 Epoch 編號

投票必須滿足「因果一致性」:目標區塊必須是來源區塊的後代(可以直接或間接通過中間區塊),而且目標 Epoch 必須大於來源 Epoch。這確保了投票反映的是「狀態的演進」,而不是來回跳躍。

最終確定性的達成

當一個區塊 B 滿足以下條件時,它被認為是「已確定的」(Finalized):

存在一個「超級多數連結」(Supermajority Link):在連續兩個 Epoch E 和 E+1 上,分別有 ≥ 2/3 的驗證者對從某個已確定的區塊到 B 的路徑進行投票。

形式化地,我們定義:

supermajority_link(B_prev, E_target) ≡ 
  Σ_{i: vote_i ∈ V and vote_i.source.epoch = E_target-1 and vote_i.target = B} w_i ≥ 2/3 × W

當我們連續兩個 Epoch 都滿足這個條件時,目標區塊就會被最終確定。一旦確定,攻擊者要撤銷這個確定的代價是極其高昂的——這是經濟安全保障的核心。

安全性證明的數學推導

命題 1:可追責安全(Accountable Safety)

命題:如果兩個衝突的區塊 A 和 B 都被最終確定了(意味著網路違反了安全性),那麼至少有一個誠實驗證者會被罰沒,而且罰沒金額正比於攻擊者的質押量。

這個命題叫做「可追責安全」,是以太坊共識協議最重要的安全性保證之一。它的含義是:如果你能讓網路接受兩個衝突的區塊,你一定會被抓,而且你的質押會被沒收。

證明思路:假設 A 和 B 被最終確定。我們需要證明存在一個「等價投票」(Equivocation)——某個驗證者對兩個衝突的區塊都投了票。

根據最終確定的定義,存在兩個連續的 Epoch E 和 E+1,使得:

類似的投票也發生在通往 B 的路徑上。

現在考慮Epoch E 和 E+1 的投票交叉。A 的路徑上的某個投票和 B 的路徑上的某個投票必然來自同一個驗證者(通過簡單的集合論論證)。根據投票的因果一致性要求,這個驗證者對兩個衝突的區塊都投了票——這是一個等價投票。

在 Gasper 的規則下,等價投票會觸發罰沒條件。因此,攻擊者必然會被罰沒。

QED(證明完畢)。

命題 2:可動員安全(Plausible Safety)

命題:一個區塊被最終確定後,在攻擊者質押量 < 1/3 的假設下,無法在不改變 ≥ 1/3 驗證者質押的情況下,與另一個衝突的區塊同時被最終確定。

這個命題確保了「最終確定」的確定性——一旦某個東西被確定了,你不可能再確定一個衝突的東西,除非你控制了 1/3 的驗證者。

證明思路:假設區塊 A 已經被最終確定。現在我們試圖同時確定衝突的區塊 B。

根據命題 1,要確定 B,必然會觸發對 ≥ 1/3 驗證者的罰沒。這與假設「攻擊者質押量 < 1/3」矛盾。

因此,在攻擊者質押量 < 1/3 的假設下,已確定的區塊不可能被撤銷。

命題 3:經濟安全保障(Economic Security)

命題:攻擊者成功對最終確定的區塊進行重組的預期成本,隨著驗證者數量的增加而線性增長,趨近於無窮大。

這個命題連接了密碼學安全性(基於假設的安全性)和經濟學安全性(基於激勵的安全性)。

量化分析

設攻擊者控制的質押比例為 β < 1/3。攻擊者要成功重組,需要:

  1. 控制連續兩個 Epoch 的 2/3 投票權重
  2. 或者說服誠實驗證者在錯誤的鏈上投票

從經濟學角度,我們可以計算攻擊的成本下限:

最小攻擊成本 = β × 總質押量 × 罰沒比例

在以太坊中,罰沒比例是 100%——攻擊者會失去全部質押。

假設總質押量為 3000 萬 ETH,攻擊者控制 1/3(1000 萬 ETH),那麼攻擊成本至少是 1000 萬 ETH。以 2026 年初的 ETH 價格計算,這相當於數百億美元的攻擊成本。

更重要的是,這個成本隨著質押量的增加而增加。當質押量翻倍時,攻擊成本也翻倍。當質押量趨近於網路總供應量時,攻擊成本趨近於整個網路的價值。

LMD-GHOST 分叉選擇規則

設計動機

Casper FFG 解決了「最終確定性」的問題,但沒有解決「在最終確定之前,哪條鏈是正確的」的問題。這就是 LMD-GHOST 的職責。

在 Casper FFG 最終確定區塊之前,網路可能存在多條競爭的分叉。這些分叉可能是網路延遲造成的正常現象,也可能是攻擊者試圖重組區塊的惡意行為。無論如何,驗證者需要一個規則來決定:「在當前時刻,我應該在哪條鏈上繼續構建區塊?」

GHOST 協議

GHOST(Greedy Heaviest Observed SubTree)是一種分叉選擇規則,最初由以太坊為了解決比特幣區塊傳播延遲問題而提出。

基本思想很簡單:沿著一條路徑往下走,每一步都選擇「讓子區塊獲得最多投票」的分支。這個投票可以理解為「大部分礦工/驗證者認為這條路徑是正確的」。

GHOST 選擇讓子區塊獲得最多投票的分支,而不僅僅是選擇最長的鏈。這在網路延遲嚴重的情況下很重要——即使某條鏈更長,如果大多數礦工的區塊在另一條鏈上,那麼那條鏈才是「事實上」的正確鏈。

LMD 擴展

LMD(Latest Message Driven)在 GHOST 的基礎上增加了一個約束:每個驗證者的最新投票只計算一次。

這是為了防止「投票膨脹攻擊」(Vote Amplification Attack)。在沒有 LMD 約束的情況下,攻擊者可能會試圖讓誠實驗證者在多個區塊上反覆投票,製造「大量投票支持某條鏈」的假象。LMD 確保每個驗證者的影響力是固定的,與其質押量成正比,與其投票次數無關。

LMD-GHOST 的安全性論證

LMD-GHOST 的安全性來自以下觀察:

在同步網路假設下,如果攻擊者控制的質押量低於 1/3,則 LMD-GHOST 的分叉選擇總是會指向「誠實鏈」。

直覺上,這是因為:

  1. 誠實驗證者 > 2/3
  2. 誠實驗證者只會在「他們認為最重的」鏈上投票
  3. 攻擊者的投票能力受限於其質押量

因此,即使攻擊者試圖進行「自私挖礦」或「幽靈攻擊」,LMD-GHOST 也能正確識別誠實鏈。

各類攻擊向量的安全性分析

51% 攻擊(Majority Attack)

傳統觀點認為,要攻擊 PoS 網路需要控制 51% 的質押量。這個說法在嚴格意義上是對的——但需要澄清「51% 攻擊」的實際含義。

可以做到的

做不到的

經濟成本:假設 ETH 總質押量為 3000 萬,攻擊者需要質押 1500 萬 ETH(約一半)才能發動有效的 51% 攻擊。以 2026 年 ETH 價格計算,這是一筆數百億美元的開支——而且這些 ETH 最終會被罰沒。

遠程攻擊(Long-Range Attack)

遠程攻擊是一種專門針對 PoS 網路的理論攻擊,攻擊者從區塊鏈的「早期狀態」開始,秘密構建一條更長的替代鏈。

在 PoW 系統中,這種攻擊是不可行的——你需要重做所有早期區塊的工作量證明,成本與時間成正比。

但在 PoS 系統中,原始驗證者可能已經退出了網路,他們的質押已經解除。如果攻擊者能夠說服當前的驗證者忽略他們收到的「新」消息,而去驗證一條從很久以前開始的「舊」鏈,理論上是可以發動這種攻擊的。

Gasper 的防禦:以太坊通過「弱主觀性」(Weak Subjectivity)的概念來防範遠程攻擊。這個概念指的是:雖然新加入網路的驗證者需要信任某個「檢查點」,但已經在線的驗證者不可能被欺騙去驗證一條衝突的鏈。

具體來說,Gasper 會定期發布「弱主觀性檢查點」——這些是歷史上的最終確定區塊。新加入的驗證者需要從這些檢查點之一開始同步,而不是從創世區塊開始。這確保了即使攻擊者秘密構建了一條長鏈,也不可能比包含最近檢查點的誠實鏈更長。

審查攻擊(Censorship Attack)

審查攻擊是指攻擊者試圖阻止某些交易被打包進區塊。這可能是出於政治動機(例如,審查某個不受歡迎的應用),或者是出於經濟動機(例如,阻止某個 DEX 的交易)。

在 PoS 網路中,發動審查攻擊比發動 51% 攻擊更容易。你只需要控制「大多數區塊提議者」——但這並不需要控制 51% 的質押量,因為提議者是隨機選中的。

實際風險分析:假設攻擊者控制 1/3 的質押量。在每個 Slot(12 秒),攻擊者被選為提議者的概率約為 1/3。如果攻擊者拒絕提議包含特定交易的區塊,則大約 2/3 的 Slot 會包含這些交易。

這意味著,攻擊者需要控制非常高的質押比例(遠超 1/3)才能有效審查某筆交易。而且,這種審查是可以被觀測到的——區塊瀏覽器會清楚顯示哪些提議者跳過了某些交易。

罰沒條件的嚴格分析

Gasper 定義了兩種主要的罰沒條件(Slashing Conditions):

條件 1:雙重投票(Double Voting)

驗證者不得在相同的目標 Epoch 上,對兩個不同的區塊進行投票。

形式化地:

∀ v ∈ V, ∀ e ∈ Epochs:
  not (∃ b1, b2: b1 ≠ b2 and 
       vote(v, source=b1, target=e) and 
       vote(v, source=b2, target=e))

條件 2:等價投票(Surround Voting)

驗證者不得投票「包圍」自己之前的投票。

形式化地:

∀ v ∈ V, ∀ (s1, t1), (s2, t2) ∈ Votes(v):
  not (s2 < s1 < t1 < t2)

直覺上,等價投票條件防止驗證者通過投票來否認自己之前的投票。例如,如果驗證者投票了「從 A 到 C」,他就不應該投票「從 B 到 D」,其中 B 在 A 和 C 之間,而 D 在 C 之後。這會造成邏輯上的不一致。

形式化驗證實踐

Coq 中的 Gasper 建模

以太坊基金會資助了一個用 Coq 定理證明器對 Casper 進行形式化建模的項目。這個項目試圖用機器可驗證的方式證明 Gasper 的安全性。

Coq 是一種函數式編程語言和定理證明器。用 Coq 編寫的證明不僅是人類可讀的,而且是機器可驗證的——如果證明有任何漏洞,Coq 會拒絕接受。

這個項目的核心目標是證明:

  1. Gasper 滿足「可追責安全」——衝突的區塊不可能同時被最終確定,除非有人被罰沒
  2. Gasper 滿足「可動員安全」——最終確定的區塊不可能被撤銷,除非攻擊者控制 1/3 以上的質押

Runtime Verification 的審計

Runtime Verification(RV)是一家專門從事區塊鏈安全審計的公司。他們對以太坊 2.0 的共識層合約進行了全面的形式化驗證。

RV 的審計報告識別了幾個潛在的問題和改進建議,但最終確認了核心安全性證明的正確性。

經濟模型的量化分析

驗證者收益的數學期望

驗證者的預期年化收益率(APY)取決於以下因素:

  1. 網路總質押量
  2. 驗證者的在線率和表現
  3. MEV(最大可提取價值)的分配

數學上,驗證者的預期收益可以表示為:

E[reward] = base_reward + attestation_reward + sync_committee_reward + MEV_share

base_reward 是區塊提議的基本獎勵,約為每 Epoch 總質押量的 1/1000。

attestation_reward 是見證投票的獎勵,基於驗證者是否及時、正確地投票。

synccommitteereward 是同步委員會的獎勵,約每 256 個 Epoch(約 27 小時)一次。

罰沒的量化模型

罰沒金額的計算不是線性的,而是取決於「同時被罰沒的驗證者數量」。

slashing_amount(validator_i) = 
  max(min(slashing_penalty, validator_i.stake), 
      (1/3 of total_slashed - other_slashed_amounts))

這個公式確保了:

  1. 單一驗證者被罰沒時,罰沒金額不低於最小值
  2. 大規模罰沒事件(如多個驗證者同時犯規)時,罰沒金額會增加,但總量不會超過攻擊者的質押量

經濟安全保障的量化邊界

根據以太坊經濟學模型,攻擊成功的成本可以量化為:

攻擊成本 = 質押量門檻 × ETH 價格 × 罰沒比例

當質押量為 3000 萬 ETH,ETH 價格為 4000 美元時:

這些數字遠超大多數攻擊者的能力範圍,確保了網路的經濟安全性。

Python 模擬實現

以下是一個簡化的 Gasper 安全性模擬,用於驗證我們的數學推導:

import random
from typing import List, Tuple, Set

class SimplifiedGasper:
    def __init__(self, validators: int, honest_ratio: float = 0.67):
        self.validators = validators
        self.weights = [1.0] * validators
        self.total_weight = validators
        self.honest_ratio = honest_ratio
        
    def simulate_attack(self, attacker_control: float, 
                       epochs: int = 100) -> Tuple[float, List[float]]:
        """Simulate attack outcomes and measure slashing probability."""
        outcomes = []
        for _ in range(epochs):
            # Simulate voting process
            attacker_votes = 0
            honest_votes = 0
            
            for i in range(self.validators):
                if random.random() < attacker_control:
                    attacker_votes += self.weights[i]
                else:
                    # Honest validator might equivocate with small probability
                    if random.random() > 0.999:  # Honesty assumption
                        continue
                    honest_votes += self.weights[i]
            
            # Check if attack succeeded
            attacker_ratio = attacker_votes / self.total_weight
            if attacker_ratio >= 2/3:
                outcomes.append(1.0)  # Attack succeeded
            else:
                outcomes.append(0.0)  # Attack failed
                
        return sum(outcomes) / len(outcomes), outcomes

# Run simulation
simulator = SimplifiedGasper(validators=10000)
success_rate, _ = simulator.simulate_attack(attacker_control=0.34, epochs=1000)
print(f"Attack success rate with 34% control: {success_rate:.4%}")

這個模擬簡化了實際的 Gasper 協議,但展示了核心的安全性動態:當攻擊者控制低於 1/3 時,攻擊成功率趨近於零。

結論

Gasper 的安全性是建立在密碼學假設、經濟激勵和網路同步假設的組合之上的。形式化的安全性證明告訴我們:

在誠實大多數假設下,Gasper 滿足「可追責安全」——衝突的區塊不可能同時被最終確定。

在可動員安全的意義上,最終確定的區塊是不可撤銷的,除非攻擊者控制 1/3 以上的質押。

經濟安全保障與質押量成正比——質押量越大,攻擊成本越高。

這些保證使得以太坊成為一個值得信賴的結算層,為其上的 DeFi、DAO 和各種應用提供了堅實的信任基礎。

延伸閱讀與來源

這篇文章對您有幫助嗎?

評論

發表評論

注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。

目前尚無評論,成為第一個發表評論的人吧!