아키텍처 개요
6계층 토폴로지
┌──────────────────────────────────────────────────────────┐
│ L0 — Telegram Bot API │
│ • Bot 프레임워크 (Telegraf, Node) │
│ • WebApp UI (Next.js, TON Connect) │
│ • 인라인 키보드 + WebApp 실행 │
├──────────────────────────────────────────────────────────┤
│ L1 — Round Engine (라운드 엔진) │
│ • 결정론적 FSM (Go) │
│ • 단계: Announce → Commit → Reveal → Settle │
│ • Commit-Reveal 검증 │
│ • Merkle Root (머클 루트) 구성 │
├──────────────────────────────────────────────────────────┤
│ L2 — Oracle Aggregator (오라클 수집기) │
│ • 질문 저장소 (Postgres + IPFS) │
│ • LLM 앙상블 파이프라인 (Claude + GPT + Gemini) │
│ • 적대적 편향 제거기 │
│ • DRAND (디랜드) 비콘 페처 │
│ • TON-VRF (톤-VRF) 폴링 │
├──────────────────────────────────────────────────────────┤
│ L3 — Identity Layer (신원 계층) │
│ • Trust Ladder (트러스트 래더) L0–L7 상태 머신 │
│ • Worldcoin / PoH / Gitcoin Passport (깃코인 패스포트) 어댑터 │
│ • KYC (케이와이씨) 벤더 통합 (Sumsub) │
│ • Reputation Score (평판 점수) 베이지안 업데이터 │
├──────────────────────────────────────────────────────────┤
│ L4 — Ad-Revenue Settlement (광고 수익 정산) │
│ • AdMob SDK (모바일 + WebApp) │
│ • Telegram Ads SDK │
│ • AdMob SSV (에드몹 SSV) 콜백 수신기 │
│ • zk-SNARK (제로지식 SNARK) 증명기 (SP1, Phase 2) │
├──────────────────────────────────────────────────────────┤
│ L5 — TON Settlement (톤 정산) │
│ • $POP Jetton (제트톤) 컨트랙트 (FunC) │
│ • Vesting (베스팅) 래퍼 컨트랙트 │
│ • Round Merkle Root 커밋 컨트랙트 │
│ • 분쟁 해결 컨트랙트 │
│ • DAO (다오) 거버넌스 컨트랙트 (Phase 3) │
└──────────────────────────────────────────────────────────┘데이터 흐름
사용자가 Telegram에서 "Play" 탭
↓
L0: WebApp 열림, Round 진입 요청
↓
L4: 광고 표시 (AdMob), SSV 콜백 대기
↓
L4: SSV 검증됨 → POP (포인트) 크레딧 발행
↓
L1: 사용자가 Round 질문 수신 (L2로부터)
↓
L1: 사용자가 Commit (커밋) 단계에서 c_i 커밋
↓
L1: 사용자가 Reveal (리빌) 단계에서 (s_i, b_i) 공개
↓
L1: Round Engine이 다수결 계산, Merkle Root 구성
↓
L3: 유효 가중치 = α × r_i 적용
↓
L1: Prize Pool (프라이즈 풀)이 생존자에게 분배
↓
L5: Merkle Root가 TON에 커밋됨 (24시간마다 배치)
↓
사용자가 WebApp에서 POP 크레딧 + Round 결과 확인지연 시간 예산
| 단계 | 목표 | 실제 (P50) | 실제 (P95) |
|---|---|---|---|
| Announce | 5초 | 4.2초 | 4.8초 |
| Commit | 30초 | 29.5초 | 30초 |
| Reveal | 15초 | 14.7초 | 15초 |
| Settle | 10초 | 7.3초 | 9.8초 |
| Round 전체 | 60초 | 55.7초 | 59.6초 |
Settle 단계에는 Merkle Root 구성 및 검증이 포함되며, 온체인 TON 커밋은 24시간 주기로 별도 배치 처리됩니다.
인프라
- 호스팅: Cloudflare Workers + R2 + KV (엣지 분산, 저지연).
- 데이터베이스: Postgres (기본), Redis (Round 상태, 임시), R2 (Round 아티팩트, 아카이브).
- Round Engine: 무상태 Go 바이너리; Cloudflare anycast 뒤에서 수평 확장 가능.
- TON 클라이언트: ton-core SDK; TonAPI Cloud를 통한 풀노드 연결.
- 관측 가능성: OpenTelemetry → Grafana Cloud; Sentry로 클라이언트 오류 추적.
오픈소스 구성 요소
- Round Engine: MIT,
github.com/cashpop-protocol/round-engine - WebApp: MIT,
github.com/cashpop-protocol/webapp - 스마트 컨트랙트 (TGE (티지이) 이후): MIT,
github.com/cashpop-protocol/contracts - 질문 저장소 빌드 파이프라인: 소스 공개,
github.com/cashpop-protocol/reservoir
전체 CashPop 스택은 TGE 이후 자체 호스팅이 가능합니다: 모든 운영자가 포크 인스턴스를 실행할 수 있지만, DAO 승인 없이 $POP을 발행할 수는 없습니다.