﻿---
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>

## 한눈에 보는 답

거버넌스 공격은 충분한 투표권, 제안권, 취소권 또는 실행 권한을 확보해 프로토콜이 정식 거버넌스 경로로 유해한 작업을 수행하게 만드는 공격이다. 각 호출이 스마트 계약의 모든 검사를 통과할 수도 있다. 실패의 본질은 거버넌스가 통제하는 가치에 비해 통제권을 너무 싸고 빠르게, 또는 책임 없이 얻을 수 있게 설계됐다는 데 있다.

투표권은 직접 보유한 토큰, 위임받은 표, 빌린 토큰, 매수된 투표자, 탈취된 키, Governor와 타임록의 특권 역할에서 나올 수 있다. 과거 투표 체크포인트는 같은 잔액을 전송 뒤 다시 투표에 쓰는 행위와 스냅샷 뒤에 이뤄진 차입을 막을 수 있다. 그러나 스냅샷 전에 확보한 표, 위임 집중, 허술한 정족수 규칙, 손상된 실행자는 막지 못한다.

인기 없는 제안이 모두 공격인 것은 아니다. 거버넌스는 규칙을 바꾸기 위해 존재한다. 판단할 핵심은 한 주체가 불균형하거나 일시적인 통제권을 얻었는지, 실행 효과를 숨기거나 왜곡했는지, 공개된 권한 경계를 넘었는지다. 실제 호출, 결정권을 얻는 가장 저렴한 경로, 대응 가능한 시간, 실행 뒤 도달할 수 있는 최대 가치와 권한을 검토해야 한다.

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

## 작동 방식

1. 투표 자산에서 위임과 체크포인트를 거쳐 Governor, 타임록, 프록시 관리자, 금고, 비상 역할, 최종 대상 계약까지 권한을 추적한다. 거버넌스 화면은 권한 그래프가 아니다.
2. 체인, 계약 주소, 구현 버전, 시계 모드, 스냅샷, 제안 기준, 정족수 계산, 개표 규칙, 투표 지연, 투표 기간, 대기열 지연, 만료, 취소 권한, 실행 역할을 고정한다.
3. `getPastVotes` 같은 과거 조회로 정확한 스냅샷 시점의 투표권을 재구성한다. 한 주체가 통제하거나 공조하는 주소를 묶고 토큰 잔액과 위임 투표 가중치를 구분한다.
4. 모든 제안 작업의 `targets`, `values`, `calldatas`, `descriptionHash`를 디코딩한다. 프록시와 선택자를 해석하고 묶음 호출을 검사하며 실행 페이로드와 사람이 읽는 설명을 대조한다.
5. 포크에서 제안 생성, 투표, 대기열 등록, 실행을 재현한다. 실행 전후의 잔액, 소유권, 역할, 허용량, 구현, 오라클 설정, 담보 매개변수와 새로 접근 가능해진 함수를 비교한다.
6. 현물 매수, 대출 시장, 플래시 유동성, 장외 차입, 위임, 투표 유인, 파생상품 헤지, 키 탈취, 특권 역할 장악을 아우르는 최저 비용 통제 경로를 계산한다. 수수료, 슬리피지, 담보, 청산 손실, 자본이 묶이는 시간도 포함한다.
7. 대응 경로를 시험한다. 누가 취소하거나 일시 중지할 수 있는지, 어떤 증거가 필요한지, 지연 시간 안에 대응 가능한지, 사용자가 공식 공지를 어디서 얻는지, 무제한 비상 키를 남기지 않고 거버넌스를 어떻게 재개하는지 확인한다.

일반적인 토큰 Governor는 제안, 지연, 스냅샷, 투표, 가결 또는 부결, 대기열, 타임록, 실행 상태를 거친다. 정확한 규칙은 구현마다 다르다. 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는 공격자가 플래시 론으로 프로토콜의 거버넌스 메커니즘을 악용해 Beanstalk 외 사용자 자산 약 `$77 million`을 탈취했다고 보고했다. 이 사건은 플래시 유동성은 자금 조달 수단이고, 일시적 경제력이 가치 있는 실행 권한에 도달하도록 한 거버넌스가 결정적 취약점임을 보여준다.

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

## 위험과 통제

- **실질 권력 집중.** 보유 주소만 보지 말고 대표자와 공조 주체를 측정한다. 상위 대표 비중, 참여 분포, 재단, 수탁자, 시장 조성자, 대표자 의존도를 공개한다.
- **허술한 제안 및 정족수 규칙.** 기준을 활성 투표권, 차입 가능한 공급량, 금고 노출액과 비교한다. 일상 매개변수와 영향이 큰 업그레이드 또는 이체에는 다른 요건을 적용한다.
- **안전하지 않은 스냅샷.** 변경 불가능한 과거 체크포인트와 투표 토큰 및 Governor가 공유하는 시계를 쓴다. 비정상적 축적이나 위임을 관측할 수 있도록 스냅샷 전에 충분한 지연을 둔다.
- **막판 또는 기습 투표.** 마감 직전 정족수에 도달하면 최소 투표 연장을 적용하는 방안을 검토하고, 제안 수명 주기 전체에서 대규모 위임 변화를 감시한다.
- **불투명한 페이로드.** 디코딩된 호출과 독립 시뮬레이션을 공개한다. 관련 없는 고위험 작업을 분리해 정상 항목이 관리자 변경이나 금고 이체를 숨기지 못하게 한다.
- **불충분한 실행 지연.** 영향에 맞춰 타임록을 정하고 대기 작업을 공개한다. 유효한 지연에는 검토, 경보, 취소 또는 일시 중지, 신뢰할 수 있는 사용자 이탈이 들어가야 한다.
- **과도한 비상 역할.** 가디언 권한을 함수, 가치, 기간, 검토 기준으로 제한한다. 구성원, 기준, 순환, 증거 요건, 해임과 재개 절차를 공개한다.
- **검토되지 않은 업그레이드 경로.** 프록시 관리자, 비컨, 구현 초기화 함수, 변형 가능한 배포 경로, 권한을 받은 뒤 업그레이드 가능한 계약을 추적한다.
- **크로스체인 실행 위험.** 원본 Governor와 메시지를 인증하고 재생을 방지하며 대상 함수를 제한한다. 영향이 큰 호출에는 로컬 지연을 추가하고 브리지 장애나 중지 때의 동작을 정한다.
- **불충분한 감시.** 제안 생성, 투표 집중, 정족수 변경, 대기열 및 취소 이벤트, 디코딩된 상태 변경, 구현 업그레이드, 역할 부여, 허용량, 금고 유출에 경보를 건다.
- **고장 난 사고 대응.** 악성 제안, 서명자 상실, 프런트엔드 침해, 브리지 중단, 오탐 일시 중지를 훈련한다. 누가 결정하고 소통하며 서명하고 검증하고 안전하게 복구하는지 기록한다.
- **무제한 위험 가치.** 건별 및 누적 금고 이체, 업그레이드 범위, 발행, 담보 변경, 허용량을 제한한다. 투표가 통과했다는 이유만으로 거버넌스에 무제한 권한을 자동 부여해서는 안 된다.

검토 결과는 재현 가능한 통제 원장이어야 한다. 각 특권 작업, 통제자, 필요한 표나 키, 가장 이른 실행 시점, 취소 경로, 감시 출처, 도달 가능한 최대 가치를 기록한다. 업그레이드, 토큰 분배, 위임 변경, 브리지 이전, 유동성과 참여의 큰 변화 뒤에는 다시 계산한다.

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

## 흔한 오해

- **"공격자는 전체 토큰 공급량의 51%가 필요하다."** 대부분의 시스템은 위임됐거나 실제 참여한 표, 정족수, 통과 규칙에 달려 있다. 결정권을 얻는 비용은 총공급량 절반보다 훨씬 낮을 수 있다.
- **"스냅샷은 거버넌스 공격을 없앤다."** 특정한 표 재사용이나 막판 차입은 막지만 사전 차입, 매수, 위임 집중, 뇌물, 특권 키 탈취는 막지 못한다.
- **"온체인 투표 통과는 정당성을 증명한다."** 배포된 코드 조건이 충족됐다는 뜻일 뿐이다. 설명과 페이로드의 일치, 안전성, 공정성, 공개 약속 준수를 증명하지 않는다.
- **"타임록은 길수록 안전하다."** 그 안에 감시, 분석, 취소 또는 일시 중지, 소통, 이탈이 가능할 때만 유용하다. 지나친 지연은 긴급 유지보수를 방해할 수도 있다.
- **"보안 위원회를 추가하면 거버넌스 위험이 해결된다."** 위원회는 대응 시간을 줄이지만 또 다른 통제 경로를 만든다. 권한, 책임, 해임, 실패 방식도 같은 위협 모델에 포함해야 한다.

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

## 관련 주제

- [AMM 자동화 시장 조성자](/ko/crypto/amm/)
- [DAO](/ko/crypto/dao/)
- [플래시 론](/ko/crypto/flash-loan/)
- [거버넌스 토큰](/ko/crypto/governance-token/)
- [핫 월렛](/ko/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/ko/crypto/governance-attack/index.mdx
