---
status: PEER_CERTIFICATE_PROTOCOL_SELF_TESTED_LIVE_CROSS_NAT_AGGREGATION_BLOCKED
production_public_relay_enabled: false
validator_changed: false
external_transaction_enabled: false
main_server_outage_continuity_proven: false
---

# Peer RPC certificate 교환과 NAT gap

## 구현된 경로

Sync Client `1.4.70-peer-rpc-certificate-default-off-locked`에 다음을 추가했다.

- 각 PC의 Ed25519 RPC block attestation을 로컬 상태에 보관
- 기존 PC gateway의 공개 읽기 전용 `POST/GET /gateway/rpc-attestation`
- 서로 다른 node key 3개가 같은 block number/hash/parent hash에 동의할 때만 `GET /gateway/rpc-quorum-certificate` 제공
- payload 변조, 만료 서명, 중복 node key, 단일 노드 certificate 거부
- main heartbeat와 별개로 60초마다 실행되는 outbound peer exchange worker
- cached common checkpoint와 peer URL을 로컬에 보존

이 코드는 pure self-test에서 3-of-3 certificate 생성, 변조 거부, 단일 노드 거부를 통과했다.

## live canary에서 확인된 경계

세 PC 모두 1.4.70 설치와 동일 블록 `620000` 서명에는 성공했다. 서버 실행 환경의 사설망 제한을 제거하고 실제 네트워크로 검사했을 때 gateway 한 대는 직접 접근 가능했다.

그러나 나머지 두 PC가 받은 peer URL은 각 PC의 사설 LAN 주소였다. 서로 다른 NAT 뒤의 PC들은 그 주소로 outbound push할 수 없었다. 접근 가능한 gateway의 certificate endpoint는 `503 PEER_RPC_ATTESTATION_QUORUM_NOT_REACHED`를 반환했다. 따라서 이 canary는 성공으로 기록하지 않았다.

기능 플래그를 OFF로 바꾸었고 attestation lease를 회수 중이다. production 공개 relay나 permissionless RPC 환경 flag는 켜지 않았다.

## 다음 보정: 적격 노드의 임대형 public relay

특정 PC를 고정 relay로 지정하지 않는다. 정책에 포함된 적격 노드가 UPnP IGD를 발견하면 기존 gateway port에 대해 짧은 TCP lease를 요청하고, 외부 IPv4가 사설/CGNAT가 아닐 때만 public relay 후보가 된다.

안전 조건은 다음과 같다.

- 별도 `peerRpcPublicRelayEnabled` 기능 플래그, production 기본 OFF
- 1,800초 lease, 주기적 갱신, 정책 OFF 시 `DeletePortMapping`
- 외부/내부 포트 동일
- public endpoint는 서명 attestation과 certificate만 무인증 허용
- 파일·chunk·manifest는 기존 gateway token 요구 유지
- read-only RPC relay와 transaction submission은 계속 OFF
- health 응답에서 hostname과 로컬 저장 경로 제거
- UPnP 미지원, CGNAT, 충돌, 권한 실패는 relay 부적격으로 처리

표준 parser, SOAP envelope, public/CGNAT 주소 판별, 유한 lease 규칙은 `1.4.71-upnp-attestation-relay-default-off-locked`에 구현하고 self-test했다. 실제 라우터 매핑은 아직 활성화하지 않았다.

## 판정

서명 quorum과 peer certificate 형식은 준비됐지만 cross-NAT 전달 경로가 없으므로 메인 서버 단절 생존은 아직 증명되지 않았다. 다음 live 단계는 사용자가 명시적으로 허용한 범위에서만 UPnP 임대형 relay canary를 실행하고, 그 뒤 직접 PC gateway certificate 조회와 정책 OFF/매핑 삭제를 검증하는 것이다.
