Clawnet 리팩토링 (프로토콜 + 인증 통합)

목적

단일하고 엄격한 문서:

  • 현재 상태: 프로토콜, 흐름, 신뢰 경계.
  • 문제점: 승인, 다중 홉 라우팅, UI 중복.
  • 제안된 새 상태: 하나의 프로토콜, 범위 지정된 역할, 통합 인증/페어링, TLS 피닝.
  • 식별 모델: 안정적 ID + 귀여운 슬러그.
  • 마이그레이션 계획, 위험, 미결 질문.

목표

  • 모든 클라이언트(mac 앱, CLI, iOS, Android, 헤드리스 노드)를 위한 하나의 프로토콜.
  • 모든 네트워크 참여자가 인증 + 페어링됨.
  • 역할 명확성: 노드 vs 운영자.
  • 사용자가 있는 곳으로 라우팅되는 중앙 승인.
  • 모든 원격 트래픽에 TLS 암호화 + 선택적 피닝.
  • 최소한의 코드 중복.
  • 단일 머신이 한 번만 표시 (UI/노드 중복 항목 없음).

제안된 새 상태 (Clawnet)

하나의 프로토콜, 두 역할

역할 + 범위가 있는 단일 WS 프로토콜.

  • 역할: node (기능 호스트)
  • 역할: operator (제어 플레인)
  • 운영자를 위한 선택적 범위:
    • operator.read (상태 + 조회)
    • operator.write (에이전트 실행, 전송)
    • operator.admin (설정, 채널, 모델)

핵심 규칙

역할은 연결별이며, 디바이스별이 아닙니다. 디바이스가 두 역할을 별도로 열 수 있습니다.

통합 인증 + 페어링

디바이스 바인딩 인증 (베어러 토큰 재생 방지)

권장: 디바이스 키 페어.

  • 디바이스가 키 페어를 한 번 생성.
  • deviceId = fingerprint(publicKey).
  • 게이트웨이가 논스를 전송; 디바이스가 서명; 게이트웨이가 검증.
  • 토큰은 문자열이 아닌 공개 키(소유 증명)에 발급.

승인 재설계 (중앙화)

승인이 게이트웨이 호스팅이며, 운영자 클라이언트에 UI가 전달됩니다.

이점:

  • 사용자가 있는 곳(mac/폰)에 프롬프트가 표시.
  • 원격 노드에 대한 일관된 승인.
  • 노드 런타임은 헤드리스 유지; UI 의존성 없음.

식별 + 슬러그

안정적 ID

인증에 필요; 변경되지 않음. 권장: 키 페어 지문 (공개 키 해시).

귀여운 슬러그 (랍스터 테마)

사람 라벨 전용.

  • 예시: scarlet-claw, saltwave, mantis-pinch.

마이그레이션 전략

0단계부터 6단계까지 점진적 마이그레이션으로, 역할/범위 추가, 브릿지 호환성, 중앙 승인, TLS 통합, 브릿지 폐지, 디바이스 바인딩 인증 순서로 진행합니다.

요약

  • 현재: WS 제어 플레인 + Bridge 노드 전송.
  • 문제: 승인 + 중복 + 두 스택.
  • 제안: 명시적 역할 + 범위가 있는 하나의 WS 프로토콜, 통합 페어링 + TLS 피닝, 게이트웨이 호스팅 승인, 안정적 디바이스 ID + 귀여운 슬러그.
  • 결과: 더 간단한 UX, 더 강한 보안, 더 적은 중복, 더 나은 모바일 라우팅.