﻿---
title: "TWAP 기간 선택 방법"
description: "TWAP 조회 기간은 보편적인 기본값이 아니라 조작 비용, 시장 깊이, 가격 지연, 관측 데이터, 프로토콜 위험 노출을 검증해 선택해야 합니다."
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.

# TWAP 기간 선택 방법

> 교육 목적으로만 제공되며 투자 또는 보안 조언이 아닙니다. 잘못 설계된 가격 오라클은 부당 청산, 담보 부족 대출, 프로토콜 손실을 일으킬 수 있습니다.

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

## 직접 답변

모든 상황에 안전한 TWAP 기간은 없습니다. **해당 풀과 프로토콜에서 수익성 있는 조작을 비현실적으로 만드는 가장 짧은 기간**을 선택하고 실제 가격 급변 시 지연도 허용 가능한지 확인해야 합니다. 기간이 길면 보통 공격자가 시장에 더 오래 영향을 줘야 하지만 과거 가격도 평균에 더 오래 남습니다. 얕은 유동성, 관련 가격 경로 밖의 집중 유동성, 과도한 위험 금액, 잘못된 통합을 보완하지는 못합니다.

5분, 30분, 1시간 같은 기본값 중 하나를 고르는 일이 아니라 위험 예산으로 결정해야 합니다. 소스 풀과 평균 방식, 허용할 최대 오차와 응답 지연, 추출 가능한 경제적 가치, 모델링한 공격 비용, 관측 이력, 장애 시 동작을 문서화합니다. 유동성, 인센티브, 블록 생성, 담보 한도, 시장 구조가 바뀌면 다시 평가합니다.

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

## 작동 방식

누적값 기반 오라클은 시간에 따라 가격을 기록합니다. 산술 누적값에서 `t1`부터 `t2`까지 평균은 다음과 같습니다.

`TWAP(t1,t2) = (cumulativePrice(t2) - cumulativePrice(t1)) / (t2 - t1)`

Uniswap v2는 각 블록 시작 가격을 누적하고 외부 사용자가 두 누적값을 저장합니다. Uniswap v3는 누적 tick 관측값을 저장하므로 평균 tick을 가격으로 바꾸면 시간 가중 **기하**평균이 됩니다. 평균 방식, 호가 방향, 관측 용량, 반올림, 업데이트 조건은 오라클 명세의 일부입니다. 모든 TWAP를 현물 표본의 산술평균으로 가정하면 안 됩니다.

다음 절차를 따릅니다.

1. **사용자의 손실 함수를 정의합니다.** 가격이 대출 한도, 청산, 발행, 상환, 결제를 어떻게 바꾸는지 기록하고 상승·하락 시 최대 허용 지연과 오차를 정합니다.
2. **체결 가능한 유동성을 측정합니다.** 공격자가 지나야 할 전체 가격 경로의 준비금, 수수료, 활성 범위 유동성을 모델링합니다. TVL과 최근 거래량만으로 조작 저항성을 증명할 수 없습니다.
3. **공격자의 보상을 제한합니다.** 담보·대출 한도, 청산 보너스, 기존 포지션, 다른 프로토콜과의 결합, 중단 전 이익을 포함합니다. 공격 비용은 한 사용자의 거래가 아니라 총 추출 가능 가치와 비교합니다.
4. **가능한 공격을 모델링합니다.** 단일·다중 블록 왜곡, 플래시 자금, 제안자 통제와 순서 우위, 차익거래와 백런, 혼잡, 청산 비용을 시험합니다. 강한 공격자 모델에서는 비용이 기간에 선형 비례한다는 단순 가정이 깨질 수 있다는 연구가 있습니다.
5. **후보 기간을 전수 시험합니다.** 각 기간에 과거 급변과 적대적 가격 경로를 재현하고, 수익성 있는 조작이나 허용 불가능한 낡은 가격을 만드는 후보를 제외합니다.
6. **독립 통제를 추가합니다.** 노출 한도, 독립 가격과의 편차·상식 검사, 신선도 제한, 보수적 담보율, 시험된 일시정지·대체 정책을 사용합니다. 위험한 소스를 안전하게 만들지는 않지만 전제가 무너질 때 손실을 줄입니다.

결론은 풀, 수수료 등급, 체인, 구현, 자산 쌍, 프로토콜 상태마다 다릅니다. 다른 프로토콜의 30분 기간을 복사해도 그 유동성과 손실 한도는 복사되지 않습니다.

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

## 예시

단순 산술 TWAP에서 시장 가격이 `100`에서 즉시 `70`으로 이동한 뒤 `70`에 유지된다고 가정합니다. 15분 뒤의 30분 이동 기간에는 두 가격이 각각 15분씩 들어갑니다.

`(15 x 100 + 15 x 70) / 30 = 85`

30분 후 과거 `100` 관측이 모두 빠져야 TWAP가 `70`에 도달합니다. 5분 기간은 5분 후 `70`에 도달하지만 공격자가 왜곡을 유지할 시간도 짧아집니다. 대출 시장에서 체결 가격이 `70` 부근인데 담보를 약 `85`로 평가하면 청산이 늦어져 부실채권이 생길 수 있습니다. 다른 용도는 느린 값을 허용할 수도 있습니다.

이 예시는 지연만 보여 주며 조작 비용을 추정하지 않습니다. `85`는 기하평균 오라클에도 적용되지 않습니다. 실제 검토에서는 정확한 계산식으로 관측값, 활성 유동성, 수수료, 블록 순서, 포지션을 재현해야 합니다.

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

## 위험과 통제

- **너무 짧은 기간:** 소수의 왜곡된 블록만으로 공격이 수익화될 수 있습니다. 소스와 시장을 강화하고 노출을 줄이거나 더 분산된 기준가를 사용합니다.
- **너무 긴 기간:** 실제 급변을 크게 뒤따라 하락 시 청산을 늦추고 상승 시 담보를 과소평가합니다. 최악 지연을 측정하고 보수적인 위험 변수를 설정합니다.
- **유동성 오측정:** 표시 TVL이 비활성, 좁은 범위, 한쪽에 치우치거나 공격 경로 밖일 수 있습니다. 관련 tick과 가격의 체결 가능 깊이를 사용합니다.
- **관측 실패:** 이력 부족, 낡은 관측, 미초기화 용량, 잘못된 시간, 풀이나 호가 방향 오류는 계산을 무효화합니다. 조용히 대체하지 말고 revert하거나 문서화된 안전 상태로 전환합니다.
- **공격자 모델 실패:** 플래시 유동성, 다중 블록 제안자, 거래 순서, 교차 프로토콜 이익은 순비용을 낮춥니다. '수수료 x 분'을 증명으로 보지 말고 스트레스 테스트합니다.
- **거버넌스와 시장 변화:** 유동성 이동, 수수료 변경, 신규 담보, 한도 확대, 업그레이드, 체인 변경 후 안전성이 달라집니다. 입력을 감시하고 재검토 기준을 둡니다.
- **대체 경로 실패:** 독립 피드도 시장 범위, 소수점, 지연, 장애 모드가 다릅니다. 중단·거부·제한·전환 조건을 명시하고 온체인에서 시험합니다.

배포 전 단위, 호가 방향, 평균 방식, 기간, 최소 이력, 소스 풀 기준, 위험 한도, 장애 동작을 공개합니다. 운영 중에는 기준가 편차와 공격 비용 모델의 경제 입력을 함께 감시합니다.

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

## 흔한 오해

- **"기간이 길수록 항상 안전하다."** 공격 시간은 늘 수 있지만 지연도 커지며 얕은 유동성이나 불완전한 모델은 해결하지 못합니다.
- **"30분 TWAP는 업계의 안전 보장이다."** 기간은 한 변수일 뿐이며 풀 깊이, 활성 유동성, 수수료, 블록 생성, 계산 방식, 위험 금액도 중요합니다.
- **"플래시 론은 TWAP에 영향을 줄 수 없다."** 거래 내 자본 제약을 없앱니다. 성공 여부는 표본 방식, 영향을 줄 수 있는 기간, 주변 로직에 달렸습니다.
- **"높은 TVL은 높은 조작 비용을 뜻한다."** 관련 가격 경로에서 체결 가능한 유동성만 모델 속 거래에 직접 저항합니다.
- **"TWAP는 현재 시장 가격이다."** 특정 시장의 과거 온체인 상태 평균이므로 의도적으로 늦고 넓은 시장을 대표하지 않을 수 있습니다.

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

## 관련 주제

- [유동성 풀](/crypto/liquidity-pool/)
- [청산](/crypto/liquidation/)
- [오라클 공격](/crypto/oracle-attack/)
- [오라클 가격 노후화](/crypto/oracle-price-staleness/)
- [TWAP 오라클](/crypto/oracle-twap/)

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

## 출처

- [Uniswap v2 Core](https://docs.uniswap.org/whitepaper.pdf) - Uniswap (열람일: 2026-08-21)
- [Uniswap v3 Core](https://app.uniswap.org/whitepaper-v3.pdf) - Uniswap (열람일: 2026-08-21)
- [Uniswap v3 TWAP Oracles in Proof of Stake](https://blog.uniswap.org/uniswap-v3-oracles) - Uniswap Labs (열람일: 2026-08-21)
- [TWAP Oracle Attacks: Easier Done than Said?](https://doi.org/10.1109/ICBC54727.2022.9805499) - IEEE (열람일: 2026-08-21)

Source: https://wiki.fcontext.com/ko/crypto/twap-window-selection/index.mdx
