---
title: "弱主觀性"
description: "弱主觀性的解釋及其在以太坊權益證明 (PoS) 中的作用。"
lang: zh-tw
---

區塊鏈中的主觀性是指依賴社交資訊來對當前狀態達成共識。可能存在多個有效的分叉，並根據從網路上其他對等節點收集的資訊來進行選擇。相反的是客觀性，指的是只有一條可能的有效鏈，所有節點透過應用其編碼規則必然會對此達成共識。還有第三種狀態，稱為弱主觀性。這指的是在透過社交方式獲取一些初始資訊種子後，能夠客觀地推進的鏈。

## 先決條件 {#prerequisites}

要理解此頁面，必須先了解[權益證明 (PoS)](/developers/docs/consensus-mechanisms/pos/)的基礎知識。

## 弱主觀性解決了什麼問題？ {#problems-ws-solves}

主觀性是權益證明 (PoS) 區塊鏈固有的特性，因為從多個分叉中選擇正確的鏈是透過計算歷史投票來完成的。這使區塊鏈面臨幾種攻擊向量，包括長程攻擊 (long-range attacks)，即在鏈的極早期參與的節點維護一個替代分叉，並在很久之後發布以謀取自身利益。或者，如果 33% 的驗證者提取了他們的質押，但繼續進行證明並產生區塊，他們可能會產生一個與規範鏈衝突的替代分叉。新節點或長時間離線的節點可能不知道這些發起攻擊的驗證者已經提取了他們的資金，因此攻擊者可能會欺騙他們跟隨錯誤的鏈。[以太坊](/)可以透過施加約束來解決這些攻擊向量，將機制的主觀方面（以及因此產生的信任假設）降至最低。

## 弱主觀性檢查點 {#ws-checkpoints}

弱主觀性在以太坊權益證明中是透過使用「弱主觀性檢查點」來實現的。這些是網路上所有節點都同意屬於規範鏈的狀態根。它們與創世區塊具有相同的「普遍真理」作用，只是它們不位於區塊鏈的創世位置。分叉選擇演算法信任該檢查點中定義的區塊鏈狀態是正確的，並從該點開始獨立且客觀地驗證鏈。這些檢查點充當「回滾限制」，因為位於弱主觀性檢查點之前的區塊無法被更改。這透過在機制設計中將長程分叉定義為無效，從而破壞了長程攻擊。確保弱主觀性檢查點之間的距離小於驗證者提款期，可以確保分叉鏈的驗證者在提取其質押之前至少被罰沒一定的閾值金額，並且新加入者不會被已經提取質押的驗證者欺騙而進入錯誤的分叉。

## 弱主觀性檢查點與已定案區塊之間的差異 {#difference-between-ws-and-finalized-blocks}

以太坊節點對已定案區塊和弱主觀性檢查點的處理方式不同。如果一個節點發現兩個相互競爭的已定案區塊，它將在兩者之間陷入兩難——它無法自動識別哪個是規範分叉。這是共識失敗的徵兆。相比之下，節點會直接拒絕任何與其弱主觀性檢查點衝突的區塊。從節點的角度來看，弱主觀性檢查點代表了絕對的真理，不能被來自其對等節點的新知識所破壞。

## 弱主觀性有多弱？ {#how-weak-is-weak}

以太坊權益證明的主觀方面在於，需要從受信任的來源獲取最近的狀態（弱主觀性檢查點）以進行同步。獲得不良弱主觀性檢查點的風險非常低，因為可以透過幾個獨立的公共來源（例如區塊鏈瀏覽器或多個節點）對其進行交叉檢查。然而，執行任何軟體應用程式總是需要一定程度的信任，例如，信任軟體開發人員編寫了誠實的軟體。

弱主觀性檢查點甚至可能作為客戶端軟體的一部分提供。可以說，攻擊者可以破壞軟體中的檢查點，並且同樣可以輕易地破壞軟體本身。沒有真正的加密經濟途徑可以繞過這個問題，但在以太坊中，不可信開發人員的影響被降至最低，因為有多個獨立的客戶端團隊，每個團隊都使用不同的語言構建等效的軟體，並且都對維護誠實的鏈擁有既得利益。區塊鏈瀏覽器也可能提供弱主觀性檢查點，或者提供一種方法，將從其他地方獲得的檢查點與額外的來源進行交叉比對。

最後，可以向其他節點請求檢查點；也許另一個執行全節點的以太坊使用者可以提供一個檢查點，然後驗證者可以根據區塊鏈瀏覽器的資料對其進行驗證。總體而言，信任弱主觀性檢查點的提供者可以被認為與信任客戶端開發人員一樣存在問題。所需的整體信任度很低。值得注意的是，只有在極不可能發生的情況下（即大多數驗證者共謀產生區塊鏈的替代分叉），這些考量才會變得重要。在任何其他情況下，只有一條以太坊鏈可供選擇。

## 進一步閱讀 {#further-reading}

- [Eth2 中的弱主觀性](https://notes.ethereum.org/@adiasg/weak-subjectvity-eth2)
- [Vitalik：我如何學會愛上弱主觀性](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity)
- [弱主觀性（泰庫 (Teku) 文件）](https://docs.teku.consensys.io/concepts/weak-subjectivity)
- [階段 0 弱主觀性指南](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/weak-subjectivity.md)
- [以太坊 2.0 中弱主觀性的分析](https://github.com/runtimeverification/beacon-chain-verification/blob/master/weak-subjectivity/weak-subjectivity-analysis.pdf)