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

## 핵심 답변

스테이크 그라인딩 공격은 PoS 무작위성이 확정되기 전에 참여자가 행사할 수 있는 선택을 악용합니다. 여러 유효 키, 후보 블록, 무작위성 기여를 평가한 뒤 미래 제안자, 위원회, 포크 결과에 유리한 선택만 유지하거나 공개합니다. 한 번의 추첨을 여러 후보 추첨으로 바꿔 명목 지분보다 큰 영향력을 얻을 수 있습니다.

이는 공격군의 이름입니다. 블록 또는 시드 그라인딩은 결과 해시가 미래 무작위성에 쓰일 때 허용된 블록 내용이나 조상을 바꿉니다. 키 그라인딩은 등록 전에 많은 키를 만들고 유리한 자격을 가진 신원만 남깁니다. 선택적 공개는 각 선택이 시드에 미치는 효과를 안 뒤 commitment, reveal, 서명, 블록을 보류하거나 공개합니다.

해시, 검증 가능한 무작위 함수(VRF), commit-reveal만으로 전체 과정이 무편향해지지는 않습니다. 입력 선택자, 자격 확인 시점, 시험 가능한 대안 수, 중단이 추가 선택을 주는지, 시드와 선정 대상 사이의 시간 간격이 중요합니다. 원시 기술의 이름이 아니라 정확한 프로토콜 버전을 검토해야 합니다.

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

## 공격 및 분석 경로

1. **선정 규칙을 고정합니다.** 네트워크, 버전, epoch 또는 라운드, 지분 스냅샷, 시드 도출, 자격 시험, fork choice, 보상과 벌칙을 기록합니다.
2. **공격자의 선택을 모두 표시합니다.** 등록 전 키, 유효한 거래 순서, 선택 필드, 후보 부모, 공개, reveal, 중단을 포함하되 승인 상태나 시드를 바꾸는 것만 관련됩니다.
3. **탐색 예산을 측정합니다.** 마감 전 후보 수, 독립성, 계산 비용, 손실 보상, 예치금, 지연, slash 대상 행위 비용을 추정합니다.
4. **시드와 미래 권한을 연결합니다.** 얼마나 앞서 제안자나 위원회를 뽑는지, 확정 전에 결과를 보는지, 유리한 선정이 다음 grinding을 만드는지 확인합니다.
5. **승인과 누적을 평가합니다.** 후보는 상태 전이, 시간, 서명, fork choice를 만족해야 합니다. 라운드가 독립이라고 가정하지 말고 상태 과정으로 모델링합니다.
6. **각 방어를 각 선택에 시험합니다.** 지연 시드, VRF, 키 등록, 벌칙, 임계값 비콘, 검증 가능한 지연 함수는 서로 다른 능력과 가정을 다룹니다.

후보 블록이나 commitment, 정확한 해시와 도메인, 시각, 스냅샷, 구현된 시드 계산, 반사실 결과를 보존합니다. 정직한 추첨에도 연속 선정이 생기므로 제안 연속만으로는 증거가 아닙니다.

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

## 계산 예시

단순한 프로토콜에서 공격자가 다음 제안자일 확률을 `10%`라고 합시다. 고정 시드 하나라면 `0.10`입니다. 결함 때문에 서로 독립이고 유효한 시드 `20`개를 거의 무료로 평가한 뒤 하나를 공개할 수 있다고 가정합니다.

적어도 하나가 공격자를 선택할 확률은 `1 - (1 - 0.10)^20`, 약 `87.8%`입니다. 공격자의 지분이 `87.8%`인 것이 아니라 프로토콜이 실수로 `20`번의 추첨과 결과 확인 후 선택권을 준 것입니다.

설명용 계산이지 예측이 아닙니다. 상관관계, 마감, 비용, 보상 손실, 보류 벌칙, 제안자 권한 한계가 효과를 줄일 수 있습니다. 경제 또는 합의 영향을 정하기 전에 측정해야 합니다.

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

## 방어와 검토 목록

### 무작위성 구성

- 참여자가 배정을 알거나 통제하기 전에 확정한 입력에서 선정 무작위성을 도출합니다.
- 기여, commitment, reveal, 사용을 충분히 분리해 현재 리더가 직후 후계자의 시드를 싸게 탐색하지 못하게 합니다.
- 마지막 공개자를 고려합니다. reveal 보류로 결과를 선택할 수 있으면 commit-reveal도 편향됩니다.
- 정직한 참여, liveness, 복구, 구성원 변경 가정을 명시한 경우에만 임계값 또는 분산 비콘을 씁니다.

### 자격과 신원

- 시드를 알기 전 등록 스냅샷에 VRF 키와 지분을 묶어 오프라인 키 생성 grinding을 막습니다.
- chain, 버전, 라운드, 역할, 목적별로 도메인을 분리해 증명의 문맥 간 재사용을 막습니다.
- 비공개 자격은 사전 표적화를 줄이지만 편향된 시드 생성은 고치지 못함을 인식합니다.
- 값싼 신원 교체를 제한하고 위임 지분, pool, 변하는 validator set의 추첨 참여를 정의합니다.

### 경제와 운영

- 놓친 블록과 보상, 잠긴 자본, 검출 가능한 equivocation, 상관 벌칙을 평가하고 모든 합법 선택을 slashable이라 하지 않습니다.
- 의미 있는 기간에 기여, reveal 실패, 비정상 후보, 제안 빈도, 소프트웨어 다양성을 감시합니다.
- 무해함이 입증되지 않았다면 핵심 무작위성을 임의 builder, relay, 거래 순서 인터페이스에서 격리합니다.
- fallback을 시험합니다. 모두 응답할 때만 무편향한 장치는 liveness를 희생할 수 있습니다.

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

## 흔한 오해

- **해시는 무작위라 grinding이 불가능합니다.** 고정 입력에서 예측 불가해도 여러 입력 중 고르면 출력이 편향됩니다.
- **VRF가 모든 grinding을 없앱니다.** 출력만 증명하며 키, 시드, 등록 시점, 선택적 공개는 별도 문제입니다.
- **Commit-reveal은 자동으로 무편향합니다.** 마지막 참여자가 reveal과 중단 중 고를 수 있으면 편향이 남습니다.
- **과반 지분이 필요합니다.** 소수도 값싼 시험으로 확률을 늘릴 수 있지만 보안 실패에는 추가 조건이 필요합니다.
- **연속 제안은 조작 증거입니다.** 무작위성도 연속을 만들므로 통계 모델과 기술 증거가 필요합니다.
- **Grinding과 nothing at stake는 같습니다.** 전자는 무작위성·자격 편향, 후자는 경쟁 이력을 지지할 유인의 문제입니다.

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

## 관련 주제

- [Proof of stake](/ko/crypto/proof-of-stake/)
- [검증자](/ko/crypto/validator/)
- [암호학적 해시](/ko/crypto/cryptographic-hash/)
- [Fork choice 규칙](/ko/crypto/fork-choice-rule/)
- [Nothing at stake](/ko/crypto/nothing-at-stake/)

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

## 출처

- [작업증명 없는 암호화폐](https://arxiv.org/abs/1406.5694) - arXiv (접근일: 2026-08-21)
- [Ouroboros: 안전성을 증명할 수 있는 지분증명 블록체인 프로토콜](https://eprint.iacr.org/2016/889) - IACR Cryptology ePrint Archive (접근일: 2026-08-21)
- [Ouroboros Praos: 적응적 보안의 반동기식 지분증명 프로토콜](https://eprint.iacr.org/2017/573) - IACR Cryptology ePrint Archive (접근일: 2026-08-21)
- [Algorand: 암호화폐를 위한 비잔틴 합의 확장](https://doi.org/10.1145/3132747.3132757) - ACM (접근일: 2026-08-21)
- [Ethereum 합의 사양: Beacon Chain](https://github.com/ethereum/consensus-specs/blob/master/specs/phase0/beacon-chain.md) - Ethereum Foundation (접근일: 2026-08-21)

Source: https://wiki.fcontext.com/ko/crypto/stake-grinding-attack/index.mdx
