leanSPHINCS, 양자 컴퓨터에도 안전한 거래 서명
Strawmap I* (2028) · leanSPHINCS PQ transactions
이더리움 거래에 지금의 타원곡선 서명 대신 해시 함수만으로 만든 양자 내성 서명(leanSPHINCS)을 쓸 수 있게 합니다. 양자 컴퓨터가 등장해도 계정 자산을 지키기 위한 준비입니다.
왜 필요한가
지금 이더리움 거래는 타원곡선 전자서명(ECDSA)으로 보낸 사람이 본인임을 증명합니다. 이 방식은 어떤 수학 문제가 풀기 어렵다는 가정에 기대는데, 충분히 큰 양자 컴퓨터가 나오면 쇼어 알고리즘으로 공개키에서 개인키를 역산할 수 있습니다. 거래를 한 번 보내면 공개키가 드러나므로 그 뒤로는 계정이 위험해집니다. 해시 기반 서명은 해시 함수가 한 방향으로만 계산된다는 성질만 믿습니다. 양자 컴퓨터도 해시 함수를 뒤집는 데는 큰 이점이 없다고 알려져 있어 가장 보수적인 양자 내성 방식으로 꼽힙니다. SPHINCS+는 미국 표준기술연구소(NIST)가 표준으로 채택한 해시 기반 서명입니다. 어떤 키를 썼는지 서명자가 기록해 둘 필요가 없는 무상태(stateless) 방식이라 지갑에 쓰기 알맞습니다. 다만 서명이 지금보다 훨씬 커서 그대로 쓰면 블록 공간을 많이 차지합니다. leanSPHINCS는 이 방식을 이더리움에 맞게 가볍게 다듬어 거래 서명으로 쓸 수 있게 하자는 항목입니다. 이름의 lean은 재단이 추진하는 린 이더리움(lean Ethereum) 흐름과 같은 맥락입니다. Strawmap에서는 실행층 I* 포크(2028) 칸에 있지만 예상일 뿐 확정은 아닙니다.
어떻게 동작하나
- 열쇠 만들기 비밀값을 여러 개 뽑고 각각 해시해 공개키를 만듭니다. 비밀값에서 공개키로는 쉽게 가지만 되돌리는 길은 없습니다. SPHINCS는 이런 일회용 열쇠를 트리로 많이 묶어 한 공개키로 여러 번 서명할 수 있게 합니다.
- 서명하기 거래 내용을 해시한 결과에 따라 비밀값 가운데 어떤 것을 공개할지 정해지고 그 값들을 서명으로 붙입니다. 거래 내용이 바뀌면 공개해야 할 값도 달라집니다.
- 검증하기 노드는 서명에 든 값들을 다시 해시해 공개키와 맞는지만 확인합니다. 어려운 수학 문제 대신 해시 계산만 쓰므로 양자 컴퓨터로도 뚫기 어렵습니다.