IEUM Runtime & 하이브리드 렛저

IEUM Runtime은 NestJS 기반 API 서버와 비동기 Commit Worker로 구성됩니다. Hybrid Ledger(오프체인 SSOT)를 통해 결제의 즉시성과 정산의 확정성을 분리합니다.

4.1 시스템 구성 요소

구성 요소
기술 스택
역할

White-label API 서버

NestJS

인증/지갑/결제/발행 API 제공. 오프체인 즉시 응답(1초 목표).

Commit Worker

Queue / Worker

비동기 체인 트랜잭션 실행. 재시도·중복방지 내장.

Off-chain Ledger (SSOT)

TypeORM / PostgreSQL

Receipt·Batch·정산 상태 관리의 단일 진실 원본.

Vault Execution

스마트컨트랙트

사전 민팅된 Vault에서 Transfer로 충전 처리. Multicall/Bulk 최적화.

Subnet

Avalanche Subnet

실제 체인 트랜잭션 실행 레이어.

4.2 Receipt 상태 머신

상태
설명

AUTHORIZED

즉시 응답. 정책 평가·잔액 락(Lock) 완료. 사용자 기준 결제 완료 상태.

COMMITTED

비동기 체인 실행 성공. txHash 확보. 중복 처리 불가한 고정점.

BATCHED

정산 배치(Batch)에 포함. 앵커링 대기 상태.

ANCHORED (v1.1~)

배치 머클 루트가 L1(PayChain)에 기록됨. 기술적·법적 정산 확정.

SETTLED (v1.1~)

은행 레일 또는 스테이블코인 전송을 통한 최종 정산 완료.

4.3 SSOT 데이터 모델

영역
테이블/개념
용도

기관/키

orgs, api_keys

파트너사 및 API 키 관리

사용자/지갑

users, wallet_registry

userId ↔ 지갑 주소 매핑

결제

receipts, legs

결제 논리 단위 + 결제/캐시백/수수료 세부 항목

발행·소각

mint_requests, burn_requests

Mint/Burn 요청 및 상태 추적

정산

batches, batch_items

정산 배치 단위 및 Receipt 링크

감사

audit_logs

누가/언제/무엇을 변경했는지 초단위 기록

4.4 Vault 아키텍처 (충전 최적화)

  • 담보 입금 확인 시 최대 발행량(maxSupply)까지 선(先)민팅하여 Vault에 보관합니다.

  • 사용자 충전 시에는 기존 Mint/Burn 대신 Vault → 사용자 지갑으로 Transfer 처리합니다.

  • 1개 트랜잭션으로 다수 사용자에게 배분 가능한 Multicall/Bulk 방식을 적용하여 처리 속도를 개선합니다.

  • Dual Control 원칙 유지: Bank(issuer) + Trust(trustee) 양측 승인이 있어야만 maxSupply 조정 가능합니다.

Last updated