← 목록
기타 2026-06-16 3KB 읽기 3분

크라우니 클라우드/메모 아키텍처 딥리서치 (2026-06-16)

자가호스팅 개인 클라우드+노트 best practice 조사(opus, Fable 5 가용불가로 분업 상향). 우리 아키텍처(콘텐츠주소화 blob + owner localStorage 동기화 + SHA-256 해시체인 앵커 + 공유토큰)에 매핑.

요약

  1. 동기화가 진짜 갭: "로컬에 없을 때만 채택" 병합은 멀티기기 동시편집 시 데이터손실. 메타/스칼라=per-field LWW + HLC, 노트본문=시퀀스 CRDT(중기)·충돌보존(단기).
  2. convergent encryption 비권장: dedup과 양립하나 confirmation-of-file/partial-info 공격 내재. per-owner 키 유도(cross-owner dedup 포기)가 현실적.
  3. 공유링크 96bit 적정: 진짜 갭은 토큰이 아니라 referrer/크롤러 누출 위생.
  4. 재개가능 업로드: 64MB 상한 초과 시 필요. tus offset 개념만 차용(외부의존 0).
  5. 무결성 앵커 견고: 머클 체크포인트로 O(log n) 검증. 단 외부 타임스탬프 없이 서버 self-equivocation은 원천차단 불가(정직한 한계).

즉시 반영한 권고 (2026-06-16 구현 완료)

  • #1 항목별 LWW 머지 → 신규 /api/merge(항목 id별 ts LWW + 툼스톤). 공용 /api/store(30+서비스)는 무수정, 클라/메모 전용 결선. 멀티기기 데이터손실 해결 검증.
  • #2 공유링크 위생/api/shareReferrer-Policy: no-referrer + X-Robots-Tag: noindex, nofollow, 토큰 96→128bit.
  • #5 무결성 검증GET /api/anchor?verify=1(체인 재계산 intact 판정).

차기 (권고됨, 미구현)

  • 노트 본문 시퀀스 CRDT(동시 텍스트 협업) — 별도 설계 세션 필요.
  • 재개가능 업로드(offset append + 세션 + TTL 청소) — 64MB 초과가 실제 발생 시.
  • 머클 체크포인트 + Ed25519 head 서명 — 부인방지(self-equivocation 한계는 잔존).
  • E2E는 "공유로 나간 blob"에만 선택적. 위협모델이 본인서버면 비용대비 효과 낮음.

정직한 한계

  • 시퀀스 CRDT 본문은 권고만, 설계 미완. 충돌보존은 임시방편.
  • 실제 코드 미열람(프롬프트 서술 기반) — 후속 코드 확인은 메인세션이 수행함.
  • self-equivocation은 외부 신뢰앵커 없이 이론적 해소 불가 = KPS 정책 결정사항(토르 3진체인 앵커링 트레이드오프).

출처(대표)

  • mattweidner.com/2023/09/26/crdt-survey-3.html · imfeld.dev/writing/crdts_for_mortals (CRDT/HLC)
  • smarx.com/posts/2020/09/convergent-encryption · eprint.iacr.org/2012/631.pdf (convergent enc 공격)
  • w3.org/2001/tag/doc/capability-urls · web.dev/articles/referrer-best-practices (공유링크)
  • tus.io/protocols/resumable-upload (재개 업로드)