📌 [기록 기준 및 기술 면책 안내]
카르다노(Cardano)의 Ouroboros Praos 합의 메커니즘은 과거에 생성된 블록의 서명을 사후에 위조하는 장거리 공격(Long-range Attack)을 원천 봉쇄하기 위해 전방향 보안(Forward-Secure) 서명 체계인 KES(Key Evolving Signature, RFC 8591 표준 기반)를 필수적으로 채택하고 있습니다. 스테이크 풀 운영자(SPO)는 정해진 KES 진화 기간(약 90일, 62개 KES 기간)이 만료되기 전에 블록 프로듀서(BP) 노드의 운영 인증서(Node Certificate)를 회전해야 합니다. 본 고에서는 KES의 암호학적 원리와 단계별 갱신 절차를 기술적으로 검증합니다.
1. 전방향 보안(Forward Secrecy)과 KES 서명 트리의 암호학적 구조
KES는 단일 비밀키가 고정된 것이 아니라, 매 $T$ 슬롯마다 내부 상태가 단방향 암호학적 해시 트리(Merkle Tree)를 따라 이전 상태를 영구 삭제하며 진화합니다.
| 파라미터 / 파일 | 기술 사양 및 공식 값 | 역할 및 보안상 중요성 |
|---|---|---|
| slotsPerKESPeriod | 129,600 슬롯 (정확히 1.5일) | 1 KES 주기가 진화하는 슬롯 단위 간격 |
| maxKESEvolutions | 62회 (총 93일) | 생성된 KES 키 쌍이 유효하게 서명할 수 있는 최대 수명 한도 |
| node.cert | Cold Key 서명 인증서 | 현재 유효한 KES 공개키와 풀의 Cold Vkey를 바인딩하고 시퀀스 카운터를 증명 |
2. 단계별 KES 갱신 및 노드 재시작 무중단 절차
운영자는 네트워크 단절 없이 안전하게 블록 생산 권한을 연장하기 위해 에어갭(Air-gapped) 오프라인 콜드 환경에서 다음 단계를 수행합니다:
- 현재 KES 주기 산출: `cardano-cli query tip` 명령을 통해 현재 슬롯을 확인하고, `slot / slotsPerKESPeriod` 공식으로 현재 주기(Current KES Period)를 정확히 정수 계산.
- 신규 KES 키 생성: `cardano-cli node key-gen-KES`를 실행하여 핫 노드에 위치할 새 `kes.skey`와 `kes.vkey` 생성.
- 콜드 환경 인증서 서명: 인터넷과 분리된 콜드 머신에서 `node.cert`의 카운터를 1 증가시키고 Cold Key로 신규 운영 인증서 서명.
- 무중단 교체: 블록 프로듀서 노드의 파일 시스템에 새 인증서와 KES 키를 배치한 후, `SIGHUP` 신호를 전송하여 프로세스 재시작 없이 메모리 상의 서명 키를 실시간 리로드.
※ 기술 면책 및 서술 기준