﻿---
title: "輕量用戶端"
description: "介紹具備分叉感知能力的共識輕量用戶端啟動、同步委員會、弱主觀性檢查點、樂觀與最終確定標頭、執行狀態證明、RPC 服務提供者、資料可用性和隱私。"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 輕量用戶端

> 僅供教育參考，不構成安全或交易建議。輕量用戶端只驗證其設定之協定與證明涵蓋的物件；請確認特定鏈、分叉、檢查點、標頭狀態、服務提供者和未經驗證的資料範圍。

<a id="answer"></a>

## 直接答案

輕量用戶端是一種驗證軟體，它追蹤區塊鏈時所需的本機執行、狀態和歷史資料少於完整節點。輕節點是執行這類軟體的裝置或程序。在權益證明以太坊上，共識輕量用戶端從近期可信任的最終確定檢查點啟動，並驗證能辨識分叉的同步委員會更新，以維護樂觀標頭和最終確定標頭；它不會重播每筆 EVM 交易。

這個經過驗證的共識視圖只是第一層信任錨。若要驗證帳戶或合約儲存空間的值，用戶端必須將已認證的信標鏈標頭連結至執行酬載標頭，選定其中的 `stateRoot`，並以該根驗證帳戶或儲存空間證明。缺少所需證明的一般 RPC 回應仍只是服務提供者的主張。共識簽章不會自動證明交易歷史、收據、呼叫追蹤、資料可用性、應用程式行為或長期可檢索性。

<a id="mechanism"></a>

## 運作機制

1. 鎖定網路與信任根：鏈身分、創世驗證者根和創世時間、分叉時程與預設值、目前時鐘、用戶端版本，以及近期可信任的最終確定弱主觀性檢查點。透過彼此獨立且經過認證的來源交叉核對檢查點；節點意見一致無法修復惡意起始根。
2. 為可信任區塊根取得 `LightClientBootstrap`。驗證啟動物件的標頭、目前同步委員會及其 Merkle 分支，然後初始化 `LightClientStore`。若鏈、分叉摘要、廣義索引或序列化結構與所設定分叉不符，應拒絕處理。
3. 按同步委員會週期處理 `LightClientUpdate` 物件。在輪替委員會前，驗證時槽、參與位元、BLS 聚合簽章與域、目前及下一委員會分支、最終性分支和單調性。分叉升級可能改變物件欄位與廣義索引，因此 Altair 常數並非永久通用值。
4. 分別維護 `optimistic_header` 和 `finalized_header` 政策。樂觀更新能提供較新的資訊，但重組或資料扣留風險更高；最終確定更新的共識狀態較強，卻可能有所落後。應用程式必須明確選擇合適的標頭，不能把最新回應重新標為最終確定。
5. 錨定執行資料。驗證已認證輕量用戶端標頭所攜帶的執行酬載標頭及其分支，再把每項帳戶或儲存空間查詢綁定至該執行 `stateRoot`、區塊雜湊和最終性狀態。在以太坊上，`eth_getProof` 可傳回帳戶證明及指定儲存空間證明；應在本機驗證節點、路徑、值和不存在性。
6. 盤點每個未經驗證的範圍。餘額證明不會認證交易收據、事件紀錄查詢、呼叫追蹤、呼叫模擬、記憶體池、代幣標籤、預言機、blob、歷史區間，也不會證明服務提供者沒有省略結果。每種必要物件都應有證明、獨立重建、完整節點備援方案或明確的信任假設。
7. 依失敗即關閉原則運作。記錄檢查點、分叉、樂觀與最終確定根、執行區塊與狀態根、證明節點、服務提供者和時間戳記。強制執行最大陳舊期限，分散服務提供者與網路路徑，保護查詢隱私，測試日蝕攻擊與停機復原；輕量用戶端的證明範圍不足時，應使用完整節點或其他驗證系統。

<a id="example"></a>

## 計算範例

- **同步委員會整數邊界。** 對於 `512` 人委員會，規範中的超多數測試為 `participants * 3 >= 512 * 2`。參與者為 `341` 人時，`341 / 512 = 66.6015625%` 且 `1,023 < 1,024`，測試不通過。參與者為 `342` 人時，`342 / 512 = 66.796875%` 且 `1,026 >= 1,024`，測試通過。這只驗證所設定的更新規則，不能證明每名委員或每個實作都是誠實的。
- **標頭時鐘。** 教學範例中的檢查點位於時槽 `10,000`，被認證標頭位於 `10,064`，其最終確定標頭位於 `10,032`。按 `12 seconds/slot`，被認證標頭比檢查點晚 `64 * 12 = 768 seconds = 12 minutes 48 seconds`，而最終確定標頭落後被認證標頭 `32 * 12 = 384 seconds = 6 minutes 24 seconds`。時槽時間不保證網路傳遞，也不構成固定牆上時鐘時間的最終性服務承諾。
- **精簡分支，有限主張。** 在包含 `2^20` 個葉節點的理想平衡樹中，單一葉節點分支有 `20` 個同層雜湊。按 `32 bytes/hash` 計，共 `640 bytes`；與 `8 MiB = 8,388,608 bytes` 的物件相比，該分支占 `0.00762939453125%`，減少 `99.99237060546875%`。該分支只證明葉節點到根的關係，不證明其他位元組可用。
- **證明與裸 RPC。** 在最終確定的執行 `stateRoot` 下，經驗證的帳戶證明得出 `3.25 ETH`，而未經證明的 RPC 回應聲稱是 `3.30 ETH`。差額為 `0.05 ETH`，且裸回應高出 `0.05 / 3.30 = 1.5151515152%`。應接受在所選根下證明的值，但不能據此推斷稍後的餘額、收據、歷史結果或代幣身分。

<a id="risks"></a>

## 風險

- 設定錯誤的鏈、創世驗證者根、創世時間或預設值。
- 從惡意、陳舊或未最終確定的檢查點啟動。
- 只使用一個未經認證的檢查點來源，或接受長程分叉。
- 本機時鐘漂移導致時槽、週期、域或陳舊性判斷錯誤。
- 使用過時的分叉時程、物件結構或廣義索引。
- 未驗證同步委員會參與度、BLS 簽章或域。
- 遺漏委員會輪替，或接受無效的目前或下一委員會。
- 把樂觀標頭當成最終確定標頭。
- 連結錯誤的信標鏈標頭、執行酬載或執行區塊雜湊。
- 對錯誤的 `stateRoot` 驗證帳戶或儲存空間證明。
- 接受格式錯誤的 trie 節點、路徑、編碼或不存在性證明。
- 把不支援或沒有證明的 RPC 方法視為已驗證。
- 收到陳舊、受審查、不完整或偽造的服務提供者回應。
- 表面獨立的服務提供者共同受控，或遭遇日蝕、Sybil 攻擊。
- 提供證明的完整節點修剪或停止服務，造成活性喪失。
- 混淆共識有效性與執行重播或應用程式正確性。
- 混淆有效證明與資料可用性或永久可檢索性。
- 缺少應用程式所需的收據、事件紀錄、追蹤、區塊內容或歷史。
- 用戶端實作、相依套件、二進位檔案或分叉升級失敗。
- 向服務提供者或節點洩露查詢、IP、帳戶和交易隱私。

<a id="misconceptions"></a>

## 常見誤解

- 輕量用戶端只是較小的完整節點，或是遠端 RPC 的另一個名稱。
- 同步委員會標頭通過驗證後，每項 RPC 回應都可信任。
- 最新的樂觀標頭等同於最終確定標頭。
- Merkle 證明或共識簽章能證明資料可用性和完整歷史。
- 使用輕量用戶端會自動取得完整節點的隱私、活性與抗審查能力。

<a id="related"></a>

## 相關主題

- [完整節點](/zh-tw/crypto/full-node/)
- [弱主觀性](/zh-tw/crypto/weak-subjectivity/)
- [狀態根](/zh-tw/crypto/state-root/)

<a id="sources"></a>

## 來源

- [Light clients](https://ethereum.org/developers/docs/nodes-and-clients/light-clients/) - Ethereum.org（查閱日期：2026-08-13）
- [Altair Light Client -- Sync Protocol](https://ethereum.github.io/consensus-specs/specs/altair/light-client/sync-protocol/) - Ethereum Consensus Specs（查閱日期：2026-08-13）
- [Altair Light Client -- Light Client](https://ethereum.github.io/consensus-specs/altair/light-client/light-client/) - Ethereum Consensus Specs（查閱日期：2026-08-13）
- [Electra Light Client -- Sync Protocol](https://ethereum.github.io/consensus-specs/electra/light-client/sync-protocol/) - Ethereum Consensus Specs（查閱日期：2026-08-13）
- [Weak subjectivity](https://ethereum.org/developers/docs/consensus-mechanisms/pos/weak-subjectivity/) - Ethereum.org（查閱日期：2026-08-13）
- [eth_getProof](https://ethereum.github.io/execution-apis/api/methods/eth_getProof/) - Ethereum Execution APIs（查閱日期：2026-08-13）
- [Merkle Patricia Trie](https://ethereum.org/developers/docs/data-structures-and-encoding/patricia-merkle-trie/) - Ethereum.org（查閱日期：2026-08-13）
- [Data availability](https://ethereum.org/developers/docs/data-availability/) - Ethereum.org（查閱日期：2026-08-13）

Source: https://wiki.fcontext.com/zh-tw/crypto/light-client/index.mdx
