MemChain 및 암호화 저장소
이 문서는 「MemChain 및 암호화 저장소」이 AeroNyx 오픈 프라이버시 프로토콜에서 맡는 역할, 구현 범위, 프라이버시 불변식, 개발 및 노드 운영상의 주의점을 한국어로 설명합니다.
「MemChain 및 암호화 저장소」은 AeroNyx 문서의 공식 한국어 페이지입니다. AeroNyx는 프로토콜 계층과 제품 경험을 분리합니다. 프로토콜은 지속 가능한 공개 능력을 제공하고, 제품은 App, Nodeboard, 암호화 채팅, 암호화 저장소, 노드 운영 경험을 담당합니다.
개요
이 문서는 「MemChain 및 암호화 저장소」이 AeroNyx 오픈 프라이버시 프로토콜에서 맡는 역할, 구현 범위, 프라이버시 불변식, 개발 및 노드 운영상의 주의점을 한국어로 설명합니다.
AeroNyx 아키텍처에서의 위치
이 주제는 Nodeboard 범주에 속합니다. AeroNyx를 하나의 중앙화 서비스가 아니라 클라이언트, 탈중앙화 프라이버시 노드, 백엔드 조정자, nodeboard가 함께 사용하는 오픈 프라이버시 프로토콜 능력으로 이해해야 합니다.
현재 구현 핵심
- 사용자 내용과 관련된 모든 기능은 종단 간 암호화 또는 암호문 객체로 전달되어야 합니다.
- 탈중앙화 프라이버시 노드는 상태, 용량, 연결, 경로 증명, 집계 통계를 보고할 수 있지만 메시지 본문, 접근 자격 증명, 사용자 비밀을 읽을 수 없습니다.
- nodeboard는 운영 가시성을 위해 노드 상태, peer discovery, 재시작 복구, 용량, 패킷/트래픽, 프로토콜 상태를 보여줍니다.
- 현재 백엔드는 조정, 정렬, 집계, 공개 문서 API를 담당하며, 일부 책임은 이후 Rust 프로토콜 계층으로 이동할 수 있습니다.
프라이버시 경계
AeroNyx의 핵심은 blind-node invariant입니다. 릴레이 노드와 MemChain 조정자는 암호문, 타임스탬프, 증명, 집계된 상태 신호, 제한된 라우팅 메타데이터만 처리합니다. 평문, DNS 내용, 목적지, 통신 관계를 알 수 없어야 합니다.
노드 운영자가 확인할 항목
운영자는 대역폭, 연결 한도, IP 풀, conntrack, 파일 디스크립터, packet drops, pps, bps, peer store, heartbeat freshness, restart recovery를 확인해야 합니다. 운영 UI는 문제 해결을 돕되 사용자 내용이나 식별 가능한 데이터를 노출해서는 안 됩니다.
개발자 및 제품 연동
클라이언트, App, AI agent, 외부 서비스는 AeroNyx의 암호화 envelope, 서명, blind relay, 익명 자격 증명, healthcheck 규칙을 재사용해야 합니다. 새로운 API는 공개 메타데이터와 E2E payload 내부에 남아야 하는 필드를 명확히 구분해야 합니다.
현재 상태
이 페이지는 현재 공개 가능한 AeroNyx 프로토콜 및 제품 설계 경계를 설명합니다. multi-hop routing, blind-signed vouchers, encrypted media blob, MemChain 동기화, 노드 발견 개선은 같은 translation_key 아래에서 계속 유지되어야 합니다.
<!-- memchain-external-witness-v1:start -->커밋먼트 원장과 롤백 보호
MemChain은 암호화 레코드를 위한 추가 전용 커밋먼트 원장을 유지합니다. 블록에는 무결성 커밋먼트와 순서 메타데이터만 포함되며 메모리 평문이나 복호화 키는 포함되지 않습니다. 이 원장은 변조와 롤백을 탐지하기 위한 것으로, 공개 블록체인·분산 합의·최종성·토큰 실행을 의미하지 않습니다.
코디네이터는 UDP, TUN 또는 공개 API 리스너를 열기 전에 내구성 설정, 저장된 전체 체인, 서명된 로컬 tip anchor, 저장된 checkpoint evidence, 운영자가 고정한 외부 노드의 서명 checkpoint를 순서대로 검증합니다.
| 검증 결과 | 시작 결정 |
|---|---|
| 일치 | 시작 계속 |
| 원격이 더 오래됨 | 시작 계속 |
| 원격이 더 최신 | 로컬 롤백 가능성으로 시작 중단 |
| 기록 분기 | 서명 기록 충돌로 시작 중단 |
| 서명 증거 없음 | strict 비활성화 시에만 저하 모드로 계속, strict 활성화 시 중단 |
Witness는 운영자가 명시적으로 고정한 Ed25519 ID만 사용할 수 있습니다. permissionless peer가 peer store에 나타났다는 이유만으로 시작 판정 권한을 얻지 못합니다.
검증된 프로덕션 배포 — 2026년 7월 14일
한 프로덕션 coordinator에 운영자가 고정한 witness ID 세 개가 설정되어 있습니다. 독립적으로 운영되고 감사된 follower 두 대가 호환 checkpoint service를 실행하며, 각각 동일한 33개 block과 8,339개 commitment 기록을 검증하고 저장했습니다. Coordinator는 두 follower가 각각 서명한 converged 응답을 수락한 뒤 commitment_witness_startup_required = true를 활성화했습니다.
검증된 재시작에서 startup guard는 configured=3, eligible=3, attempted=3, verified=2, converged=2를 기록했고 UDP 및 TUN listener는 검사를 통과한 뒤에만 열렸습니다. 이는 운영자가 고정한 node의 rollback evidence이며 consensus, quorum, 공개 체인의 finality 또는 token execution이 아닙니다.
Heartbeat는 witness 범위, 설정 개수, strict 요구 여부만 보고하며 ID, endpoint, hash, 서명, 암호화 내용, 소유자 또는 소셜 관계를 보고하지 않습니다.
<!-- witness-threshold-enforced-v1:start -->2-of-3 시작 임계값 강제 — 2026년 7월 14일
프로덕션 coordinator는 이제 commitment_witness_min_verified = 2와 commitment_witness_startup_required = true를 함께 설정합니다. 서로 다른 고정 witness의 유효한 서명 증거가 두 개보다 적으면 시작을 거부합니다. 유효 응답이 없으면 signed_checkpoint_unavailable, 하나뿐이면 signed_checkpoint_threshold_unmet입니다. 최근 프로덕션 재시작에서는 UDP, TUN, 공개 API listener를 열기 전에 설정된 witness 세 개 중 두 개를 검증했습니다.
이는 운영자가 정의한 시작 임계값이며 네트워크 consensus, quorum, finality, leader election 또는 fork choice가 아닙니다. Rust heartbeat는 startup_minimum_verified를 포함한 집계 정책 및 결과만 보고하며 witness ID, endpoint, checkpoint hash 또는 서명을 노출하지 않습니다.
관련 프로토콜 사양
<!-- signed-commitment-ledger-related-v1:end --> <!-- memchain-model-provider-boundary-v1:start -->Bring-your-own brain과 모델 제공자 경계
MemChain은 node-blind 저장과 선택적 인지 처리를 분리합니다. 운영자가 SuperNode cognitive worker를 켜더라도 저장 노드나 relay 노드에 메모리를 읽을 권한이 자동으로 생기지 않습니다.
각 구성 요소가 볼 수 있는 정보
- node-blind 저장 또는 relay 노드는 암호문, blind index, 제한된 라우팅 메타데이터, 집계 상태 신호만 처리하며 기본적으로 평문 메모리를 받지 않습니다.
- 활성화된 SuperNode cognitive worker는 설정된
structured,summary,fullprivacy level이 허용한 task payload만 받습니다. - 외부 모델 제공자는 전송된 prompt를 읽을 수 있습니다.
full은 사용자가 명시적으로 동의하고 선택한 제공자를 신뢰할 때만 사용해야 합니다. - 로컬 OpenAI 호환 모델은 추론을 운영자 통제 경계 안에 둘 수 있지만, 해당 worker는 신뢰된 처리 구성 요소이며 blind 저장 노드는 아닙니다.
런타임 격리
- 성공 응답은 JSON 파싱 전 8 MiB, 실패 진단 본문은 64 KiB로 제한됩니다.
- 전송, API, 파싱, 빈 응답 실패는 제공자를 영구 비활성화하지 않고 단조 시계 기반 30초 cooldown에 둡니다.
- HTTP 429
Retry-After는 1-300초 범위에서 적용되며 값이 없으면 30초를 사용합니다. - router는 다른 정상 제공자를 사용할 수 있고 cooldown이 끝나면 실패한 제공자를 자동으로 다시 고려합니다. 예약 작업은 필요하지 않습니다.
<!-- memchain-model-provider-boundary-v1:end -->이 제한은 노드 가용성을 보호하지만 외부 추론 호출을 E2E 암호화하지는 않습니다. 외부 제공자는 별도의 명시적 신뢰 결정입니다.