서명 커밋 원장과 위트니스 보호

AeroNyx2026년 7월 16일5분 읽기56회 조회

AeroNyx는 암호화된 MemChain 레코드를 위한 서명형 append-only 커밋 원장을 운영합니다. 원장은 순서와 무결성을 검증하지만 인프라는 기억 내용을 읽을 수 없습니다. 공개 블록체인이 아닙니다.

프로토콜 불변식: 코디네이터, 팔로워, 위트니스, 백엔드와 공개 웹사이트는 암호문 커밋과 제한된 운영 증거만 처리하며 평문, 복호화 키, 소유자 관계 또는 소셜 그래프를 받지 않습니다.

현재 운영 구조

코디네이터 1대와 감사를 거친 팔로워/위트니스 3대를 사용합니다. 시작 시 3대 중 2대의 서명 체크포인트가 필요하고, 실행 중 생산에는 3/3 단기 lease가 필요합니다.

observed_at=2026-07-16 · reporting_nodes=4 · coordinator=1 · followers=3 · height=33 · commitments=8,339 · witness_lease=3/3.

text
client.encrypt_and_sign
  -> coordinator.append_opaque_commitment
  -> follower.verify_signed_ancestry
  -> pinned_witness.retain_checkpoint_and_grant_bounded_lease
<!-- commitment-ledger-flow-i18n-v1:start -->

쓰기 및 검증 흐름

  1. 클라이언트가 대상 메모리 레코드를 로컬에서 암호화하고 서명합니다.
  2. 코디네이터는 불투명 커밋과 순서 metadata만 append합니다.
  3. append마다 이전 서명 Block을 검증하고 로컬 signed high-water anchor를 갱신합니다.
  4. Follower는 제한된 page를 가져와 ancestry와 signature를 검증하고 checkpoint certificate를 보관합니다.
  5. 설정된 모든 runtime witness가 동일한 단기 lease instance를 승인하는 동안에만 새 commitment Block을 생성합니다.

시작 및 런타임 강제

rollback 감지와 복제된 코디네이터의 동시 생산 방지를 위해 서로 독립된 두 제어를 사용합니다.

  • 시작 임계값: UDP, TUN 또는 API listener를 열기 전에 운영자가 고정한 witness 3대 중 서로 다른 2대 이상의 유효한 서명 증거가 필요합니다.
  • 런타임 lease: 설정된 witness 3대 모두 active coordinator에 짧은 lease를 부여해야 합니다. 일부 갱신은 degraded가 되며 권한 만료 시 새 생산을 중지합니다.
  • 복구: witness 연결이 복구되면 완전한 새 lease round가 생산 권한을 복구하고 집계 recovery counter를 증가시킵니다.
<!-- commitment-ledger-flow-i18n-v1:end -->

장애 동작

일부 위트니스가 응답하지 않으면 기존 lease가 유효한 동안 degraded 상태로 재시도하며, 만료되면 새 커밋 생산을 자동 중지합니다. remote-ahead 또는 분기된 서명 이력은 시작을 차단합니다.

renewal_degraded -> retry_until_expiry

expired -> coordinator_lease_production_permitted=false

remote_ahead | diverged -> startup_denied

공개 관측성

공개 API는 검증 노드 수, tip 높이, 커밋 수, lease 집계 상태만 제공합니다. hash, 서명, 위트니스 ID, endpoint, owner, 내용은 제공하지 않습니다.

text
GET https://api.aeronyx.network/api/privacy_network/vpn/public/network-stats/
data.protocol_status.memory_chain
json
{
  "mode": "signed_commitment_ledger",
  "status": "witness_protected",
  "verified_nodes": 4,
  "coordinator_nodes": 1,
  "follower_nodes": 3,
  "max_verified_tip_height": 33,
  "max_verified_commitment_count": 8339,
  "max_granted_witnesses": 3,
  "max_required_witnesses": 3,
  "network_consensus": "not_claimed"
}

코디네이터, 팔로워, 위트니스, 백엔드와 공개 웹사이트는 암호문 커밋과 제한된 운영 증거만 처리하며 평문, 복호화 키, 소유자 관계 또는 소셜 그래프를 받지 않습니다.

<!-- commitment-ledger-privacy-i18n-v1:start -->

개인정보 경계

중앙/공개 contract에서 record ID, Block hash, signature, witness identity, endpoint, owner, ciphertext body, plaintext, route, client metadata, wallet-level traffic 및 social-graph edge를 제외합니다. 집계 commitment count는 시스템 작업량만 증명하며 메모리 내용이나 작성자를 식별하지 않습니다.

<!-- commitment-ledger-privacy-i18n-v1:end -->

해당하지 않는 것

  • 무허가 합의, 비잔틴 finality 또는 fork choice가 아닙니다.
  • 토큰 원장이나 스마트 컨트랙트 플랫폼이 아닙니다.
  • 노드가 기억 평문을 읽도록 허용하지 않습니다.

Heartbeat

coordinator_lease_state, coordinator_lease_granted_witnesses, coordinator_lease_required_witnesses, coordinator_lease_seconds_remaining, coordinator_lease_production_permitted, coordinator_lease_last_failure_at, coordinator_lease_consecutive_failures, coordinator_lease_recoveries_total.

<!-- commitment-ledger-faq-i18n-v1:start -->

자주 묻는 질문

AeroNyx에 현재 Block이 있습니까?

예. commitment subsystem은 서명 Block으로 불투명한 암호화 레코드 commitment의 순서를 정합니다. 그러나 public blockchain이나 global consensus network로 설명해서는 안 됩니다.

Witness가 오프라인이면 어떻게 됩니까?

기존 권한이 유효한 동안 일부 갱신은 degraded로 표시됩니다. lease 만료 전에 모든 witness의 새 승인을 받지 못하면 새 commitment 생산이 자동 중지됩니다.

Witness가 MemChain 메모리를 읽을 수 있습니까?

아니요. witness는 서명 commitment 구조와 lease ownership만 검증하며 plaintext record나 복호화 키를 받지 않습니다.

관련 문서: MemChain and Decentralized Node Operations.

<!-- commitment-ledger-faq-i18n-v1:end --> <!-- aof-semantic-integrity-v1:start -->

로컬 append-only 기록 검증

현재 AeroNyx 탈중앙화 노드는 메모리 내용을 출력하지 않고 로컬 MemChain append-only 파일을 검사할 수 있습니다. 재시작, 업그레이드, mirror 복구 및 incident review를 위한 로컬 무결성 게이트입니다.

검증 항목

  • 정규화되고 제한된 record framing. 디코딩된 단일 record 최대 크기는 10 MiB입니다.
  • 독립 Fact와 Block 내부의 모든 Fact가 내용에서 파생된 fact_id와 일치합니다.
  • 각 Block의 Merkle root가 저장 순서의 Fact ID와 일치합니다.
  • 연속 Block의 height와 previous-Block hash link가 이어집니다.
  • 파일이 완전한 record 경계에서 끝납니다. 불완전한 물리 tail은 별도로 보고됩니다.

읽기 전용 명령

설정된 path 또는 명시적 path에 실행합니다:

bash
sudo aeronyx-server memchain verify-aof \
  --config /etc/aeronyx/server.toml

sudo aeronyx-server memchain verify-aof \
  --path /var/lib/aeronyx/.memchain
필드의미
valid_bytes완전하고 의미 검증을 통과한 record가 차지하는 byte 수입니다.
fact_records / block_records독립 Fact record와 Block record 수이며 Block 내부 Fact는 중복 계산하지 않습니다.
last_block_height마지막 유효 로컬 Block의 height입니다.
torn_tail_bytes마지막 유효 record 뒤의 불완전한 물리 byte이며 0이면 clean입니다.
statusverified는 관찰된 파일 전체가 로컬 scan을 통과했음을 뜻합니다.

업그레이드 및 복구 게이트

  1. binary 교체 전에 verify-aof를 실행하고 집계 결과를 command audit에 보존합니다.
  2. 새 binary를 validate하고 service 재시작 전에 동일한 읽기 전용 scan을 실행합니다.
  3. 재시작 후 replay가 같거나 더 높은 height를 복원했는지 확인한 뒤 node health check를 실행합니다.
  4. 완전한 record가 의미 검증에 실패하면 중지하고 증거를 보존합니다. truncate 또는 자동 merge하지 않습니다.

증명 경계

명령은 path와 집계 count만 출력합니다. Fact 내용, record ID, Block hash, 서명, owner, witness identity, endpoint, route 또는 복호화 키를 출력하지 않습니다. Mirror 또는 Full node는 동기화 후 암호화된 메모리 내용을 알지 못한 채 동일한 로컬 byte를 독립 검증할 수 있습니다.

이 scan은 Block 서명 검증, witness certificate, runtime lease, fork choice 또는 consensus를 대체하지 않습니다. clean AOF는 로컬 구조 무결성을 증명할 뿐 모든 인프라 참여자의 정직성을 증명하지 않습니다.

구현 경로:

  • crates/aeronyx-server/src/services/memchain/aof.rs
  • crates/aeronyx-server/src/main.rs
<!-- aof-semantic-integrity-v1:end -->