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

# 아키텍처

> 모듈형 설계, 업그레이드 가능, 가스 최적화

TED Protocol의 스마트 컨트랙트 및 시스템 아키텍처를 설명합니다.

***

### 개요

TED Protocol은 **Diamond Pattern (EIP-2535)** 을 사용하는 모듈형, 업그레이드 가능한 아키텍처로 구축되었습니다.

사용자 트랜잭션은 단일 **DiamondProxy** 진입점을 통해 흐르며, 전문화된 facet으로 라우팅됩니다:

* **Swap Facet** — FXSwapFacet, CurveAdapter, UniswapV3
* **Bridge Facet** — CCTPFacet, LayerZeroFacet, WormholeFacet
* **Admin Facet** — AdminFacet, DiamondCut, DiamondLoupe

***

### Diamond Pattern (EIP-2535)

#### 왜 Diamond인가?

* **모듈성** — 각 기능이 별도 facet으로 분리
* **업그레이드 가능성** — 전체 컨트랙트 재배포 없이 단일 facet만 업데이트
* **사이즈 제한 없음** — 24KB 컨트랙트 제한 우회
* **단일 주소** — 모든 기능에 하나의 진입점
* **가스 효율성** — delegatecall 기반 라우팅

#### 구조

**DiamondProxy** 컨트랙트는 함수 셀렉터를 facet 주소에 매핑합니다.

1. 함수가 호출되면 프록시가 해당 셀렉터를 처리하는 facet을 조회
2. 호출을 해당 facet으로 위임
3. 메인 컨트랙트 주소 변경 없이 기능 추가, 교체, 제거 가능

#### 스토리지 패턴

모든 facet이 **diamond storage**를 공유하며, 고유한 스토리지 위치(keccak256 해시)를 사용하여 기존 프록시 패턴의 스토리지 충돌 문제를 방지합니다.

스토리지 구조체 포함 내용:

* facet 매핑
* 소유자 주소
* 일시정지 상태 등 프로토콜 상태

***

### 코어 Facets

#### FXSwapFacet

멀티 DEX 라우팅을 통한 스테이블코인 FX 스왑을 처리합니다.

| 함수           | 설명                             |
| ------------ | ------------------------------ |
| `swap()`     | 토큰 교환 실행                       |
| `getQuote()` | 예상 출력, 가격 영향, 라우트 상세, 가스 추정 반환 |

#### DEX 어댑터

| 어댑터                   | 대상             | 특징                 |
| --------------------- | -------------- | ------------------ |
| **CurveAdapter**      | Curve Finance  | 스테이블코인 풀, 메타 풀 최적화 |
| **UniswapAdapter**    | Uniswap V3     | 집중 유동성             |
| **PancakeAdapter**    | PancakeSwap V3 | BSC 풀              |
| **DragonSwapAdapter** | DragonSwap     | Kaia 풀             |

#### Bridge Facets

| Facet              | 브릿지          | 지원 토큰            |
| ------------------ | ------------ | ---------------- |
| **CCTPFacet**      | Circle CCTP  | USDC             |
| **LayerZeroFacet** | LayerZero V2 | USDT, TEDP (OFT) |
| **WormholeFacet**  | Wormhole     | 일반 토큰            |

***

### 데이터 플로우

#### 동일 체인 스왑

1. 사용자가 토큰 쌍과 금액으로 `swap()` 호출
2. **DiamondProxy**가 **FXSwapFacet**으로 라우팅
3. Facet이 모든 DEX 어댑터를 병렬로 조회
4. 최적 라우트 선택 및 스왑 실행
5. 출력 토큰을 사용자에게 전송

#### 크로스체인 스왑

**소스 체인:**

1. 사용자가 `crossChainSwap()` 호출
2. 필요시 브릿지 호환 토큰으로 스왑
3. 적절한 bridge facet을 통해 크로스체인 전송 시작

**브릿지:**

* 브릿지 프로토콜이 메시지 전달

**목적지 체인:**

1. 토큰 수신
2. 필요시 타겟 토큰으로 스왑
3. 최종 토큰을 사용자에게 전달

***

### 보안 아키텍처

#### 접근 제어

변경 사항은 다음 경로를 통해 적용됩니다:

1. **멀티시그** (3/5 요구사항)
2. **타임락** (48시간)
3. **DiamondProxy**

이를 통해 단독 변경을 방지하고, 사용자가 변경 사항에 대응할 시간을 확보합니다.

#### 비상 제어

| 작업    | 필요 서명        | 용도             |
| ----- | ------------ | -------------- |
| 일시정지  | 2-of-5       | 모든 작업 중단       |
| 재개    | 3-of-5       | 작업 재개          |
| 업그레이드 | 3-of-5 + 타임락 | 새 facet 배포     |
| 비상    | 4-of-5       | 타임락 우회 (긴급 수정) |

***

### TEDP 토큰 아키텍처

#### OFT 표준

**TEDP**는 LayerZero **OFT (Omnichain Fungible Token)** 을 구현합니다.

* ERC-20 및 ERC-20Permit 결합
* 배포 시 10억 토큰 고정 공급량 발행
* 원활한 크로스체인 전송 지원

#### 크로스체인 플로우

1. **소스 체인** — TEDP 토큰 소각
2. **검증** — LayerZero DVN (Decentralized Verifier Networks)이 소각 트랜잭션 검증
3. **목적지 체인** — 수신자에게 동등한 TEDP 발행

> 총 공급량은 모든 체인에서 일정하게 유지됩니다.

***

### 외부 통합

#### DEX 컨트랙트

| DEX         | 컨트랙트                            | 비고    |
| ----------- | ------------------------------- | ----- |
| Curve       | 풀별 라우터 + 레지스트리                  | 풀 검색용 |
| Uniswap V3  | SwapRouter02 + UniswapV3Factory | -     |
| PancakeSwap | SmartRouter + V3Factory         | BSC   |

#### 브릿지 컨트랙트

| 브릿지         | 컨트랙트                               |
| ----------- | ---------------------------------- |
| Circle CCTP | TokenMessenger, MessageTransmitter |
| LayerZero   | Endpoint, DVN, Executor            |
| Wormhole    | Core Bridge, Token Bridge          |

***

### 가스 최적화

#### 최적화 기법

| 기법         | 절감 효과     |
| ---------- | --------- |
| 배치 작업      | 30-50%    |
| 스토리지 패킹    | 20-40%    |
| 어셈블리 최적화   | 10-20%    |
| 미니멀 프록시 패턴 | 배포 50% 이상 |

#### 일반적 가스 비용

| 작업       | 가스 (Ethereum/L2) |
| -------- | ---------------- |
| 단순 스왑    | \~150k           |
| 멀티홉 스왑   | \~300k           |
| 크로스체인 시작 | \~200k (소스 체인)   |
