> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 공격 벡터

> AMM 및 Raydium 관련 알려진 공격 패턴 — 샌드위칭/MEV, 가격 조작, 기증 공격, Token-2022 훅 남용, 조합 버그 — 각각에 대한 Raydium의 방어 방법 포함.

<Info>
  **이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.**

  [영문판 보기 →](/security/attack-vectors)
</Info>

<Info>
  AMM은 악의적인 코드의 주요 표적입니다. LP 자금이 완전히 공개된 풀에 있고, 모든 스왑이 결정론적으로 가격을 변경합니다. 이 페이지는 AMM을 대상으로 입증된 공격 클래스, Raydium에 적용되는 방식, 그리고 Raydium과 통합자가 각각에 대해 어떻게 방어하는지를 정리합니다.
</Info>

## 1. 샌드위칭 / MEV 공격

### 공격

봇이 메모풀/가십 스트림을 감시하다가 사용자의 스왑을 발견하고, 같은 방향의 매수로 앞서 실행(가격 상승)한 후, 사용자의 트랜잭션이 더 나쁜 가격에 실행되도록 하고, 반대 방향의 매도로 뒤에서 실행합니다. 봇은 스프레드로 이익을 얻습니다.

### 노출도

* **가장 노출됨**: 낮은 TVL의 CPMM 풀 및 AMM v4 풀 — 작은 거래도 가격을 의미 있게 변동시킵니다.
* **덜 노출됨**: 깊은 CLMM 풀 — 틱 내의 거래는 가격을 변동시키지 않습니다.
* **노출 없음**: 팜 수확, LP 입금 (비율이 강제되며, 가격 민감도가 동일하지 않습니다).

### 방어 수단

* **Jito 번들** ([`integration-guides/routing-and-mev`](/ko/integration-guides/routing-and-mev)) 공개 메모풀에서 트랜잭션을 숨깁니다.
* **엄격한 슬리피지** — 예상값에 가까운 최소 출력은 샌드위칭을 수익성이 없게 만듭니다. 약 0.3% 이하에서는 대부분의 샌드위칭이 손실을 입습니다.
* **더 작은 거래 규모** — \$100k 스왑을 10개의 \$10k로 분할합니다. 각각은 가격을 덜 변동시킵니다.

### Raydium의 입장

Raydium의 핵심 프로그램은 anti-MEV 보호를 강제하지 않습니다 — 프로그램 수준에서는 중립입니다. 보호는 제출 계층(Jito, 지갑의 기본 제공 보호)에서 발생합니다. UI는 슬리피지를 기본값으로 0.5%로 설정하며, 이는 대부분의 풀에 합리적입니다.

## 2. 가격 조작

### 공격

대규모 거래자가 풀의 가격을 일시적으로 이동시키고(플래시 론 또는 자체 자금 지원 고래를 통해), 가격에 따라 달라지는 다운스트림 작업(청산, 오라클 파생 차용, 파생상품 지급)을 트리거한 다음, 가격을 정상으로 되돌립니다.

### 노출도

* **네이티브 Raydium 작업**: 노출되지 않습니다. 스팟 스왑의 왕복은 단지 수수료를 발생시킬 뿐입니다. 거래자는 손실을 입습니다.
* **통합 프로그램**: 나이브한 방식으로 Raydium 풀 가격을 읽으면 노출됩니다.

### 방어 수단

* **스팟 가격이 아닌 TWAP 사용** ([`security/oracle-and-token-risks`](/ko/security/oracle-and-token-risks) 참조).
* **CLMM ObservationState** 지속된 자본 약정 없이 조작할 수 없는 단기 TWAP을 제공합니다.
* **다중 오라클 컨센서스**: 프로그램이 Raydium, Pyth, Jupiter를 읽고 1% 이내에서 동의할 때만 작동하면, 단일 소스의 플래시 론 조작으로는 충분하지 않습니다.

### Raydium의 입장

CLMM은 ObservationState TWAP 지원을 제공합니다. 스팟 가격을 사용하고 TWAP을 무시하는 통합자는 자신의 책임입니다. Raydium의 프론트엔드는 USD 표시를 위해 여러 가격 소스를 사용합니다.

## 3. 기증 / 인플레이션 공격

### 공격

새로운 풀의 첫 번째 LP가 극소량을 입금하고(예: 6진법 민트 각각 1개 토큰 → 1개 LP 발급), 공격자가 1,000,000개의 토큰을 SPL 토큰 전송을 통해 풀 금고에 직접 "기증"합니다. 이제 1개 LP 유닛은 각 민트의 500,000을 나타냅니다. 그 이후 그보다 적게 입금하는 LP는 0 LP 유닛으로 반올림되고 입금을 잃습니다.

### 노출도

* **CPMM / AMM v4**: 새로 생성된 저유동성 풀에서 잠재적으로 노출됩니다.
* **CLMM**: 노출되지 않습니다 (공유 LP 민트가 없음. 각 포지션은 명시적 유동성 값을 가진 자체 NFT입니다).

### 방어 수단

CPMM의 `initialize` 명령은 최소 LP 양을 풀에 잠금 처리합니다 (Uniswap V2의 `MINIMUM_LIQUIDITY` 패턴에서 영감을 받음). 이는 첫 번째 LP가 `sqrt(x × y) - MINIMUM_LIQUIDITY`를 받는 것을 의미하며, `MINIMUM_LIQUIDITY` (1000 유닛)는 null로 소각됩니다. 기증 공격은 공격자가 초기 입금보다 훨씬 많이 기증해야 하므로 경제적으로 불가능해집니다.

또한 Raydium의 SDK는 초기 입금이 작을 때 큰 경고를 표시하고 사용자에게 합리적인 양으로 안내합니다.

### Raydium의 입장

`MINIMUM_LIQUIDITY` 잠금 처리는 CPMM에서 제공됩니다. AMM v4는 유사한 메커니즘을 가지고 있습니다. 풀을 만드는 사용자는 어쨌든 각 민트의 최소 `10,000+` 유닛으로 시드해야 기증 공격을 경제적으로 불가능하게 만듭니다.

## 4. Token-2022 transfer-hook 남용

### 공격

민트의 transfer hook은 업그레이드 가능합니다. 공격자는 민트 출시 시 무해한 훅을 배포하고, Raydium에 나열되고, 사용자로부터 LP를 축적합니다. 나중에 훅을 업그레이드하여 모든 전송을 차단합니다 (실질적으로 소프트 러그 — 사용자는 출금할 수 없음). 공격자는 풀을 한 방향으로만 거래 가능하게 만들고, LP를 저렴하게 매입한 후, 훅을 잠금 해제하고, 승리합니다.

### 노출도

transfer-hook 민트를 포함하는 풀.

### 방어 수단

* **프로그램 수준**: Raydium 프로그램은 스왑 중에 훅을 호출합니다. 훅이 차단하면 스왑이 되돌립니다. 이것이 공격을 기계적으로 방지하지는 않습니다.
* **UI 수준**: Raydium은 transfer-hook 민트가 있는 풀을 표시합니다.
* **통합자 수준**: 집계자는 기본적으로 transfer-hook 민트를 건너뛰고 검증된 훅만 허용 목록에 추가해야 합니다.

### Raydium의 입장

Raydium은 transfer-hook 풀을 금지하지 않습니다 (정당한 훅이 존재함), 하지만 명확하게 태그합니다. `tags.includes("TRANSFER_HOOK")`을 필터링하는 집계자는 원하면 제외할 수 있습니다.

## 5. 조합 / CPI 익스플로잇

### 공격

프로그램이 CPI를 통해 Raydium을 조합하고 버그를 도입합니다: 예를 들어, 잘못된 `observation_state`, CLMM 스왑에 대한 잘못된 틱 배열, 또는 계정 이중 지출을 전달합니다. 공격자는 버그 있는 조합을 식별하고 악용합니다.

### 노출도

* **버그 있는 통합자** — 보통 버그의 원인입니다.
* **Raydium** — Raydium 프로그램 자체에서 의도하지 않은 동작을 트리거하는 경우에만 해당됩니다.

### 역사적 사례

Raydium의 프로그램은 CPI를 통해 악용된 사례가 없습니다 — Raydium의 계정 검증자는 잘못된 형태의 계정을 포착하고 되돌립니다. 광범위한 생태계의 익스플로잇은 AMM을 조합했지만 AMM에서 비롯되지 않은 사용자 정의 프로그램 버그를 통해 발생했습니다.

### 방어 수단

* 호출 프로그램은 가능하면 수동 구축 명령이 아닌 Anchor CPI 도우미를 사용해야 합니다 — 타입 안전성이 대부분의 오용을 포착합니다.
* 메인넷 포크 상태에 대한 통합 테스트는 조합 케이스를 다룹니다.

## 6. 관리자 / 키 손상

### 공격

관리자 키 (업그레이드 권한, AmmConfig 관리자, 프로토콜 수수료 청구)가 손상되었습니다. 공격자는 풀을 드레인하는 악성 업그레이드를 배포하거나, AmmConfigs를 수정하여 수수료를 공격자 지갑으로 라우팅하거나, 프로토콜 수수료를 드레인합니다.

### 노출도

[`security/admin-and-multisig`](/ko/security/admin-and-multisig)에서 문서화된 모든 역할.

### 방어 수단

* **3/4 다중 서명** 업그레이드 권한에서 4명의 독립적인 서명자를 손상시키도록 요구합니다.
* **24시간 타임락** 업그레이드는 악성 업그레이드가 활성화되기 전에 사용자가 풀 해제할 시간을 제공합니다.
* **운영 모니터링** — Squads의 공개 큐를 통해 다중 서명 활동에 대한 경고.

### 역사적 사건

AMM v4의 풀 권한 키는 2022년 12월에 손상되었습니다 (다중 서명 이전). 수정: 모든 권한을 Squads 다중 서명으로 이동. 수정 후 사건 없음.

## 7. CLMM 틱 수학에 대한 경제적 공격

### 공격

정교한 공격자는 CLMM 틱 수학의 반올림 또는 수수료 회계 엣지 케이스를 악용합니다. *다른* CLMM 구현에서 발견된 예 (Raydium 아님):

* 사용자에 반하는 반올림을 하는 수수료 성장 회계, 먼지 축적.
* 잘못된 fee\_growth 델타를 크레딧/차변하는 틱 교차.
* `sqrtPrice * liquidity` 곱에서 정수 오버플로우.

### 노출도

복잡한 맞춤형 수학. 감사 및 퍼징이 주요 방어입니다.

### Raydium의 입장

CLMM은 두 개의 독립적인 감사(OtterSec + MadShield) 및 지속적인 속성 기반 퍼징을 거쳤습니다. 현재까지 프로덕션 영향 버그가 발견되지 않았습니다. `sqrt_price_x64` Q64.64 산술은 경계 틱을 다루는 단위 테스트와 함께 포화 128비트 수학을 사용합니다.

## 8. 포지션 NFT 혼동

### 공격

사용자가 CLMM 포지션 NFT를 공격자에게 전송하는 트랜잭션에 서명하도록 속습니다. 공격자는 이제 포지션의 유동성을 소유합니다.

### 노출도

포지션 NFT 홀더.

### 방어 수단

* 지갑 UI는 Raydium 포지션 NFT를 인식하고 구별되게 표시해야 합니다 ("전송"할 일반 NFT가 아님).
* 사용자는 NFT를 전송하는 트랜잭션에 서명할 때 주의해야 합니다.

### Raydium의 입장

포지션 NFT는 Metaplex의 메타데이터 표준을 구현합니다. CLMM 포지션을 이해하는 지갑 앱은 거래 가능한 NFT가 아닌 유동성 포지션으로 표시합니다. 대부분의 주요 Solana 지갑은 2026년 기준으로 이들을 특별하게 표시합니다.

## 9. 팜 보상 스트림 조작

### 공격

팜 작성자가 보상 금고에 자금을 조성하고, 스테이커를 끌어들인 다음, `restartRewards`를 호출하여 미결제 보상 계산을 복잡하게 만들고, 수확 가치를 훔칩니다.

### 노출도

악의적인 작성자가 있는 팜. Farm v6는 작성자 권한을 엄격하게 제한합니다. 이 공격은 작동하지 않습니다.

### 방어 수단

Farm v6의 관리자 명령어 (`setRewards`, `restartRewards`, `addReward`)는 pro-rata 자격을 유지합니다 — reward\_per\_share는 변경 시점에 조정되므로, 사전 변경 적립금이 소급하여 손상되지 않습니다.

### Raydium의 입장

OtterSec의 팜 감사는 특히 restart-rewards 시나리오를 테스트했습니다. 익스플로잇이 발견되지 않았습니다.

## 10. 시뮬레이션-실행 발산

### 공격

공격자는 시뮬레이션에서 성공하지만 실행 시 되돌려지는 트랜잭션을 구성합니다 (또는 그 반대). 시뮬레이션에 의존하는 지갑을 괴롭히는 데 사용됩니다.

### 노출도

시뮬레이션을 기반으로 "받을 금액 X"를 표시하는 지갑.

### 방어 수단

* 실제 제출과 동일한 블로케시로 `simulateTransaction`을 사용합니다.
* 예상 출력을 정확한 것이 아닌 "≈" (약)로 표시합니다.
* 제출 직전에 재시뮬레이션합니다.

### Raydium의 입장

CLMM 시뮬레이션은 현재 풀 상태가 주어진 결정론적입니다. 발산은 시뮬레이션과 실행 사이에 상태가 변경될 때만 발생합니다 (정상 케이스, 슬리피지 바운드를 통해 처리됨).

## 요약 표

| 벡터               | Raydium 특화   | 방어 위치              | 사용자를 위한 잔존 위험    |
| ---------------- | ------------ | ------------------ | ---------------- |
| 샌드위칭 / MEV       | 예            | 제출 계층 (Jito, 슬리피지) | Jito를 사용하면 낮음    |
| 가격 조작            | 조합만          | TWAP 사용            | TWAP이 소비되면 낮음    |
| 기증 공격            | CPMM         | MINIMUM\_LIQUIDITY | 낮음               |
| Transfer-hook 남용 | Token-2022 풀 | UI 플래그             | 검증되지 않은 훅의 경우 중간 |
| CPI 익스플로잇        | 통합자 버그       | Raydium의 검증자 되돌림   | 낮음 (버그는 통합자에 유지) |
| 관리자 손상           | 모든 프로그램      | 다중 서명 + 타임락        | 낮음 (대응할 시간 24h)  |
| CLMM 틱 수학        | CLMM         | 감사 + 퍼징            | 낮음               |
| 포지션 NFT 혼동       | CLMM         | 지갑 UX              | 현대 지갑으로 낮음       |
| 팜 조작             | Farm v6      | 제한된 작성자 권한         | 낮음               |
| 시뮬레이션 발산         | 모두           | 지갑 UX              | 낮음               |

## 사용자가 할 수 있는 것

* 기본적으로 슬리피지를 엄격하게 유지합니다. 필요할 때만 높입니다.
* Jito 지원 지갑 / 스왑 흐름을 사용합니다.
* LP 전에 민트 확장을 확인합니다.
* Squads 다중 서명에서 보류 중인 업그레이드를 모니터링합니다.
* 풀에 다양하게 분산하세요. 모든 LP를 하나의 신규 출시 풀에 집중하지 마세요.

## 통합자가 할 수 있는 것

* 파생상품 가격책정을 위해 ObservationState TWAP을 사용합니다.
* CPI를 통해 조합할 때 계정 제약 조건을 검증합니다.
* `tags` 필드로 풀을 필터링합니다 (`scam`, `honeypot`, 검증되지 않은 transfer-hook 건너뛰기).
* 합리적인 슬리피지 바운드를 설정합니다. 사용자 입력에서 0 슬리피지를 받아들이지 마세요.
* 주의해서 `simulateTransaction`을 사용합니다 — 추정값임을 문서화합니다.

## 포인터

* [`security/oracle-and-token-risks`](/ko/security/oracle-and-token-risks) — Token-2022 위험 상세.
* [`security/admin-and-multisig`](/ko/security/admin-and-multisig) — 권한 구조.
* [`security/disclosure`](/ko/security/disclosure) — 버그 바운티 프로그램.
* [`integration-guides/routing-and-mev`](/ko/integration-guides/routing-and-mev) — MEV 완화.

출처:

* [Rekt News](https://rekt.news) — 이 목록을 알리는 DeFi 사후 분석.
* [`security/audits`](/ko/security/audits)에 링크된 감사 보고서.
