﻿---
title: "治理攻擊"
description: "治理攻擊藉由取得足夠的投票權或執行權，沿協議授權的治理路徑通過有害變更。"
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>

## 直接答案

治理攻擊是指攻擊者取得足夠的投票、提案、取消或執行權，使協議透過自身授權的治理路徑執行有害操作。相關呼叫可能通過智慧合約的每一項檢查。真正的失敗在於，治理系統讓控制權的取得成本、速度或問責程度與其支配的價值不相匹配。

投票權可能來自自有代幣、受委託票數、借入代幣、投票賄賂、遭竊密鑰，或治理合約與時間鎖中的特權角色。歷史投票檢查點可以阻止同一餘額在轉帳後重複投票，也能抵禦快照之後才發生的借票行為；但它無法阻止快照前取得的票數、委託權集中、薄弱的法定人數規則或執行者失陷。

並非每項不受歡迎的提案都是攻擊，治理本來就是用來改變規則的。安全判斷應關注：某個參與者是否取得了不成比例或臨時性的控制權，是否隱瞞或歪曲了可執行效果，或是否越過公開聲明的權限邊界。審查時要看實際呼叫、取得決定性權力的最低成本路徑、可用的回應時間，以及執行後能夠觸及的最大價值或控制範圍。

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

## 運作方式

1. 從投票資產出發，經委託與檢查點追蹤至治理合約、時間鎖、代理管理員、資金庫、緊急角色和最終目標合約。治理介面並不等於權限圖。
2. 固定鏈、合約位址、實作版本、時鐘模式、快照、提案門檻、法定人數計算、計票規則、投票延遲、投票期、排隊延遲、到期條件、取消權限和執行角色。
3. 使用 `getPastVotes` 等歷史讀取，在精確的快照時點重建投票權。把受同一主體控制或協調的位址歸組，並區分代幣餘額與獲委託的投票權重。
4. 解碼每一項提案操作：`targets`、`values`、`calldatas` 和 `descriptionHash`。解析代理與函式選擇器，檢查批次呼叫，並把可執行載荷與人類可讀的說明逐項對照。
5. 在分叉環境中重現提案建立、投票、排隊和執行。對比執行前後的餘額、所有權、角色、授權額度、實作合約、預言機設定、抵押參數以及任何新開放的可呼叫函式。
6. 估算所有控制路徑中的最低成本，包括現貨買入、借貸市場、閃電流動性、場外借幣、委託、投票激勵、衍生品避險、密鑰失陷和特權角色遭奪取。計入手續費、滑價、抵押品、平倉損失及資本必須鎖定的時間。
7. 測試回應路徑。確認誰能取消或暫停、需要何種證據、能否在延遲期內完成操作、使用者從何處取得權威公告，以及治理如何在不遺留無限緊急權限的前提下恢復。

典型的代幣治理流程會依序經歷提案、延遲、快照、投票、通過或否決、排隊、時間鎖和執行，但具體規則取決於實作。採用 ERC-5805 式檢查點時，可以查詢過去某個時點的委託投票權；時鐘既可能使用區塊高度，也可能使用時間戳記。審查者必須採用已部署合約的時鐘與設定，不能把介面顯示的時長或代幣餘額當作權威依據。

時間鎖只提供最短公告窗口，不會判斷意圖，也不會讓載荷自動變得安全。其提案者、執行者、取消者和管理員角色本身都是關鍵權限。若外部管理員能夠繞過延遲，時間鎖就不是最終權力層；若無人能夠取消已排隊的惡意操作，僅僅發現問題也無法阻止執行。

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

## 計算範例

- **低參與率下的控制。** 某協議共有 `100 million` 枚代幣，其中 `40 million` 枚流通。提案需要 `2 million` 張參與票、贊成票多於反對票，並經過 `6-hour` 時間鎖。某主體買入 `1.2 million` 票，又獲得 `1 million` 張委託票。反對票共 `0.8 million`，因此其 `2.2 million` 張贊成票足以通過一項可從資金庫轉出 `15 million USDC` 的呼叫。該主體只控制總供應量的 `2.2 / 100 = 2.2%`、流通量的 `2.2 / 40 = 5.5%`，卻占已投票數的 `2.2 / 3.0 = 73.3%`。決定安全性的是真實參與率、委託、法定人數、載荷權限和延遲，而不是一句 `51%`。
- **快照邊界。** 如果投票權按目前餘額讀取且可立即執行，同一筆交易就能借入代幣、投票、執行並歸還。改為讀取投票開始前某個時點不可變的歷史投票權，可以阻斷這條單筆交易路徑。但快照前借入或取得委託的資本仍可使用，因此提案延遲和可觀察的票權累積窗口仍是防線的一部分。
- **2022 年四月 17 日的 Beanstalk 事件。** Beanstalk Farms 報告稱，攻擊者利用閃電貸攻擊協議的治理機制，竊取了約 `$77 million` 的非 Beanstalk 使用者資產。該事件說明閃電流動性只是融資工具，決定性缺陷在於治理允許臨時經濟權力觸及高價值執行權限。

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

## 風險與控制措施

- **實際權力集中。** 衡量委託代表和協同行動主體，而不只是持幣位址。公開最大委託代表占比、參與度分布，以及對基金會、託管機構、造市商和代表的依賴。
- **提案與法定人數規則薄弱。** 將門檻與活躍投票權、可借供應量和資金庫曝險比較。日常參數與高影響升級或轉帳應採用不同要求。
- **快照不安全。** 使用不可變歷史檢查點，並讓投票代幣與治理合約共享同一時鐘。在快照前保留足夠延遲，使異常累積或委託能夠被觀察到。
- **臨近截止或突襲式投票。** 當法定人數在臨近截止時才達到，可考慮設定最短延長期，並在整個提案生命週期監控大額委託變化。
- **載荷不透明。** 發布已解碼呼叫和獨立模擬結果。拆分彼此無關的高風險操作，避免正常事項掩蓋管理員變更或資金庫轉帳。
- **執行延遲不足。** 按影響程度設定時間鎖，並公開排隊操作。有效延遲必須容納審查、警示、取消或暫停，以及可信的使用者退出路徑。
- **緊急角色權力過大。** 按函式、價值、期限和審查標準限定守護者權限。公開成員、門檻、輪換、證據要求以及罷免和恢復流程。
- **升級路徑未審查。** 追蹤代理管理員、信標、實作初始化器、可變形部署路徑，以及取得權限後仍可升級的合約。
- **跨鏈執行風險。** 驗證來源治理合約與訊息、防止重放、限制目標函式、為高影響呼叫增加本地延遲，並規定橋故障或暫停期間的行為。
- **監控不足。** 對提案建立、票權集中、法定人數變化、排隊與取消事件、解碼後的狀態變更、實作升級、角色授予、授權額度和資金庫流出設定警示。
- **事件回應失效。** 演練惡意提案、簽署者失聯、前端失陷、跨鏈橋中斷和誤暫停。記錄由誰決策、溝通、簽署、驗證並安全恢復運作。
- **風險價值無上限。** 限制單次及滾動資金庫轉帳、升級範圍、鑄幣、抵押品變更和授權額度。不能只因投票通過就自動賦予治理無限權限。

審查結果應形成可重現的控制台帳：逐項記錄特權操作、控制者、所需票數或密鑰、最早執行時間、取消路徑、監控來源和最大可觸及價值。每次升級、代幣分配、委託變化、跨鏈橋遷移，或流動性與參與度發生重大變化後，都要重新計算。

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

## 常見誤解

- **「攻擊者必須持有總供應量的 51%。」** 多數系統取決於獲委託或實際參與的票數、法定人數和通過規則。取得決定性控制的成本可能遠低於總供應量的一半。
- **「快照能消除治理攻擊。」** 快照只能阻止特定形式的重複用票或臨近投票時借票，無法阻止提前借入、買入、委託集中、賄賂或特權密鑰失陷。
- **「鏈上投票通過就證明提案正當。」** 它只證明已部署程式碼的條件得到滿足，並不能證明說明與載荷一致，也不能證明結果安全、公平或符合公開承諾。
- **「時間鎖越長越安全。」** 只有在延遲期內能完成監控、分析、取消或暫停、溝通與退出時，延遲才有用。過長的延遲也會妨礙緊急維護。
- **「增設安全委員會就能解決治理風險。」** 委員會能縮短回應時間，卻也增加了一條控制路徑。其權限、問責、罷免和失效模式必須納入同一威脅模型。

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

## 相關主題

- [AMM 自動造市商](/zh-tw/crypto/amm/)
- [DAO](/zh-tw/crypto/dao/)
- [閃電貸](/zh-tw/crypto/flash-loan/)
- [治理代幣](/zh-tw/crypto/governance-token/)
- [熱錢包](/zh-tw/crypto/hot-wallet/)

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

## 資料來源

- [Governance](https://docs.openzeppelin.com/contracts/5.x/api/governance) - OpenZeppelin Documentation（存取日期：2026-08-20）
- [ERC-5805: Voting with delegation](https://eips.ethereum.org/EIPS/eip-5805) - Ethereum Improvement Proposals（存取日期：2026-08-20）
- [Compound v2 Governance](https://docs.compound.finance/v2/governance/) - Compound Documentation（存取日期：2026-08-20）
- [Beanstalk Governance Exploit](https://bean.money/blog/beanstalk-governance-exploit) - Beanstalk Farms（存取日期：2026-08-20）

Source: https://wiki.fcontext.com/zh-tw/crypto/governance-attack/index.mdx
