아키텍처 개요
CloudBank은 BNB 스마트 체인(BSC)의 분산형 예측 시장 플랫폼입니다. 이 시스템을 통해 사용자는 AI 기반 결제 및 가스 없는 거래를 통해 바이너리(YES/NO) 및 다중 결과 시장을 사용하여 실제 이벤트의 결과를 거래할 수 있습니다.
시스템 아키텍처
┌─────────────────────────────────────────────────────────────┐
│ Frontend Layer │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Web App │ │ Admin │ │ Presale │ │ Docs │ │
│ │ React 19 │ │ Ant Dsn │ │ Next.js │ │VitePress │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └──────────┘ │
│ │ │ │ │
├───────┼──────────────┼──────────────┼────────────────────────┤
│ │ Backend Layer │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────┐ │
│ │ Custodial Wallet Service │ │
│ │ Go + Gin + GORM + JWT │ │
│ │ ┌─────────┐ ┌────────────────┐ │ │
│ │ │Orderbook│ │ Signing/Auth │ │ │
│ │ │ Engine │ │ EIP-191/712 │ │ │
│ │ └─────────┘ └────────────────┘ │ │
│ └──────────┬───────────────────────────┘ │
│ │ │
├─────────────┼────────────────────────────────────────────────┤
│ │ Smart Contract Layer │
│ ▼ │
│ ┌──────────────────────────────────────┐ │
│ │ BSC (BNB Smart Chain) │ │
│ │ ┌──────────┐ ┌────────────────┐ │ │
│ │ │ Factory │ │ Optimistic │ │ │
│ │ │ Registry │ │ Controller │ │ │
│ │ └──────────┘ └────────────────┘ │ │
│ │ ┌──────────┐ ┌────────────────┐ │ │
│ │ │ Binary │ │ Sora Oracle │ │ │
│ │ │ CPMM │ │ + Adapters │ │ │
│ │ └──────────┘ └────────────────┘ │ │
│ │ ┌──────────┐ ┌────────────────┐ │ │
│ │ │ Gnosis │ │ Verifying │ │ │
│ │ │ CTF │ │ Paymaster │ │ │
│ │ └──────────┘ └────────────────┘ │ │
│ └──────────────────────────────────────┘ │
│ │
├──────────────────────────────────────────────────────────────┤
│ Indexing Layer │
│ ┌──────────────────────────────────────┐ │
│ │ The Graph (Goldsky hosted) │ │
│ │ AssemblyScript mappings │ │
│ │ GraphQL API │ │
│ └──────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘기술 스택
| Layer | Technology | Purpose |
|---|---|---|
| 스마트 계약 | 솔리디티 ^0.8.19, 파운드리 | 시장 논리, AMM, oracle, paymaster |
| 백엔드 | 가 1.23, 진, GORM | 수탁 지갑, 주문서 엔진, 서명 |
| 프런트엔드 | 반응 19, Vite, TanStack | UI 거래, 관리자 패널 |
| 사전 판매 | Next.js 16, 와그미 | 노드 사전 판매 신청 |
| 데이터 베이스 | MySQL(GORM), 레디스 | 사용자 데이터, 세션, 속도 제한 |
| 색인 생성 | 더 그래프, 골드스키, AssemblyScript | 온체인 이벤트 인덱싱, GraphQL API |
| 하부 구조 | GitHub 작업, Cloudflare 페이지, EC2 | CI/CD, 정적 호스팅, 백엔드 배포 |
| 지갑 | 와그미, 비엠, EIP-191/712 | 지갑 연결, 서명 |
| AA | ERC-4337, EntryPoint v0.6 | 가스 없는 거래를 위한 계정 추상화 |
모듈 맵
- 스마트 계약 — 견고성 계약, 시장 수명주기, CTF 통합
- 주문서 & AMM — CPMM 공식, 주문서 엔진, 하이브리드 라우팅
- 정산 — 낙관적 오라클, AI 자동 정산, 분쟁 흐름
- 가스 후원 — ERC-4337 AA, Paymaster, 가스 없는 거래
- 백엔드 서비스 — Go API, 수탁 지갑, 인증
- 프런트엔드 — React 앱, 지갑 통합, 상태 관리
- 인덱싱 — 그래프 하위 그래프, GraphQL 스키마, 이벤트 핸들러
- 인프라 — CI/CD, 배포, 모노레포 구조
- API 참조 — REST API, 계약 ABI, GraphQL 쿼리
데이터 흐름
사용자 행동부터 결제까지 완전한 거래 흐름:
User Action Backend Blockchain
──────────── ─────── ──────────
1. Connect Wallet →
2. Sign EIP-191 message → Verify signature
3. Receive JWT ← Issue JWT token
4. Place order → Validate + match
5. Submit transaction → Sign with custodial key → Execute on BSC
6. Confirm ← ← Tx receipt
7. Position updated ← Subgraph indexes event
...
8. Market expires → Oracle resolves
9. AI verifies result → Sora Keeper proposes → OptimisticController
10. Settlement ← ← CTF reports payouts
11. Redeem positions → → CTF.redeemPositions외부 종속성
| Dependency | Purpose | Integration |
|---|---|---|
| 그노시스 CTF | ERC-1155 조건부 토큰 | 포지션 발행, 분할, 병합, 상환 |
| ERC-4337 EntryPoint v0.6 | 계정 추상화 | UserOperation 검증, 가스 후원 |
| 골드스키 | 하위 그래프 호스팅 | 인덱싱된 온체인 데이터의 경우 GraphQL API |
| 연금술 | RPC 제공자 | BSC 노드 액세스(기본) |
| Cloudflare 페이지 | 정적 호스팅 | 프런트엔드 배포 |