弱主觀性
最後編輯: @hmsc(opens in a new tab), 2023年8月15日
區塊鏈中的主觀性是指依賴社交資訊來達成對當前狀態的共識。 可能有多個有效分叉,可根據從網路上其他對等節點收集而來的資訊進行選擇。 主觀性的反面是客觀性,是指只存在唯一一條可能有效的鏈,所有節點都需要透過套用其程式碼規則達成共識。 還有第三種狀態,稱為弱主觀性。 這是指在擷取一些初始社交資訊種子後,可以客觀地繼續運作的區塊鏈。
前置要求
要理解本頁內容,需先理解權益證明的基礎知識。
弱主觀性解決了什麼問題?
主觀性是權益證明區塊鏈固有的,因為從多個分叉中選擇正確的鏈是透過計算歷史投票結果得來的。 這使區塊鏈暴露在多種攻擊媒介之下,包含遠程攻擊,即很早就加入區塊鏈的節點維護了另一個分叉,並在很久後為了自身利益將其釋放。 或者,如果 33% 的驗證者提取其質押、但繼續證明和產生區塊,他們可能會產生另一個與規範鏈衝突的分叉。 新的節點或是下線許久的節點可能會沒有意識到這些發動攻擊的驗證者已經提取他們的資金,所以攻擊者可能哄騙這些節點跟隨不正確的區塊鏈。 以太坊可以透過施加約束,將機制的主觀方面及由此而來的信任假設減少到最低限度,來解決這些攻擊媒介。
弱主觀性檢查點
弱主觀性透過使用「弱主觀性檢查點」在權益證明以太坊上實行。 它們是網路上所有節點都同意屬於規範鏈的狀態根。 除了不直接位於區塊鏈上的創世位置之外,它們有著與創世區塊相同的「普適真理」用途。 分叉選擇演算法信任在該檢查點中所定義的區塊鏈狀態是正確的,且從該點開始獨立並客觀地驗證區塊鏈。 因為位於弱主觀性檢查點之前的區塊不能被改變,這些檢查點作為「還原限制」。 只需透過定義遠端分叉為無效且當作機制設計的一部分,即可瓦解遠程攻擊。 確保弱主觀性檢查點的間隔距離小於驗證者提款期間的間隔距離,能夠確保將區塊鏈分叉的驗證者在能夠提取其質押前至少被罰沒一定的門檻數量,且新進者不會被已經提取質押的驗證者誘騙至跟隨不正確的分叉。
弱主觀性檢查點與最終確定區塊的區別
以太坊節點以不同方式處理最終確定的區塊和弱主觀性檢查點。 如果一個節點意識到有兩個競爭的最終確定區塊,則會左右為難;它沒有辦法自動辨識出哪個為規範分叉。 這是共識失敗的症狀。 相反,一個節點直接拒絕與其弱主觀性檢查點衝突的任何區塊。 從節點的角度來說,弱主觀性檢查點代表無法被其對等節點的新認知損害的絕對事實。
多弱是為弱?
以太坊權益證明的主觀方面是要求從可信來源同步最近狀態(弱主觀性檢查點)。 因為可以根據幾個獨立的公開來源(例如區塊瀏覽器或多個節點)對弱主觀性檢查點進行檢查,所以獲得不佳的弱主觀性檢查點的風險非常低。 然而,執行任何軟體應用程式總是需要一定程度的信任,例如,相信軟體開發者產出誠實的軟體。
弱主觀性檢查點甚至可能作為用戶端軟體的一部分出現。 可以說,攻擊者能夠破壞軟體內的檢查點,就能非常容易地破壞軟體本身。 雖然沒有能夠完全避免此問題的加密貨幣經濟方法,但以太坊透過多個獨立的用戶端團隊最小化了不可信開發者帶來的影響。每個團隊以不同語言建構等效的軟體,而所有團隊在維護誠實區塊鏈上有既得利益。 區塊瀏覽器也可以提供弱主觀性檢查點,或者提供一種方法,將從其他地方獲得的檢查點與其他來源進行交叉比對。
最後,可以從其他節點要求檢查點;或許另一個運作全節點的以太坊使用者可以提供一個檢查點,然後由驗證者比對來自區塊瀏覽器的資料進行驗證。 整體來說,信任弱主觀性檢查點的提供者被認為跟信任用戶端開發者一樣存在問題。 需要的整體信任很低。 值得注意的是,只有當大多數驗證者串謀產生區塊鏈的另一個分叉這種微乎其微的情況下,上述考量才會變得非常重要。 其他情況下,只有一個以太坊鏈可供選擇。