← 목록
기타 2026-05-27 3KB 읽기 3분

요청: cycle-v2.1-잔여작업-거래원장-CSRF

  • 날짜: 2026-05-27 19:02:21
  • 작업 경로: /Users/ef/crowny-cycle

요청 본문

잔여작업 계속. (cycle v2.1: 사용자별 거래 원장 통합 + CSRF 토큰 + 추가 검증)

관련 산출

(클로드가 작업 결과를 이어 기록)

산출

v2.1 — 사용자별 거래 원장 + CSRF 토큰

1) 사용자별 거래 원장 (가치원장 패턴 inline)

  • 글로벌 append-only 배열: 거래아이디/유형/금액/설명/해시/시각 + 마지막해시 매핑
  • 사용자마지막해시(id) 역방향 스캔 — 사용자별 해시 체인 분리
  • 거래기록(id, 유형, 금액, 설명) — 해시_SHA256 체인 + WAL 영속 (data/거래.dat)
  • 사용자유형합계(id, 유형) / 사용자순가치(id) / 사용자거래수(id)
  • 등록 자동 거래: 테더/바이낸스 등록 시 [순환] 거래 자동 기록 (메타 트레일)

2) /tx-form + /api/tx-record + /api/tx-list

  • /tx-form?token= → 폼 (유형 select + 금액 + 설명) + nonce 자동 발급
  • POST /api/tx-record → 토큰 + nonce 검증 → 거래 기록 → HTML 완료 페이지
  • GET /api/tx-list?token= → 사용자 거래 JSON 배열 + net + count
  • /wallet에 거래 원장 카드 추가 (최근 5건 + 순가치 + USDT 변환)

3) CSRF 토큰 (nonce)

  • 글로벌 append-only: nonce값/세션/만료 — 600초 유효
  • nonce생성(세션토큰) → 해시_SHA256(세션+시간+순번) 32자
  • nonce검증(값, 세션) — 세션 일치 + 미만료 (append-only 한계로 일회용 아님)
  • /tx-form 진입 시 자동 발급 → 폼 hidden input
  • /api/tx-record에 nonce 검증 강제

검증 결과

#시나리오결과
1가입+로그인 → 토큰 발급
2테더/바이낸스 등록 → 자동 [순환] 거래 2건
3/tx-form → nonce 발급 (32자)
4POST 거래 3건 (유입/지출/생산) — 각각 새 nonce✓ 거래 기록 완료
5잘못된 nonce 시도✓ CSRF 검증 실패
6/api/tx-list — 5건(자동2+수동3), net=77000
7/wallet 거래 원장 카드 + 순가치 77000 + 5건 표시
순가치 계산 검증: 유입 50000 + 생산 32000 - 지출 5000 = 77000 테더센트 (770 USDT) — 정확.

관련 파일

  • /Users/ef/crowny-cycle/사이클서버.한선 (1507줄, v2.1)
  • /Users/ef/crowny-cycle/data/거래.dat (WAL 영속)

보안 등급 추이

  • v0 D · v1 D · v1.5 D+ · v1.6 C · v2 B · v2.1 B+ (CSRF 추가)

v2.2 잔여

  • CSRF nonce 일회용 강제 (현재 append-only 한계로 만료까지 재사용 가능)
  • HTTPS (gateway TLS — 별도 세션)
  • gateway 매핑 cycle.crowny.org (별도 세션)
  • 실 바이낸스 읽기전용 API (외부 키 필요)
  • 실 Claude API 결제 자동화 (외부 키 필요)
  • value.crowny.org:9879 와 양방향 거래 동기화 (현재는 cycle 자체 원장만)