비트코인(BTC) 개발자들이 포스트양자 서명 연구용 라이브러리 ‘libshrincs’를 공개했다. 비트코인 본체에 바로 적용하는 업데이트가 아니라 C 언어로 작성한 코드와 보안 증명을 기계검증으로 함께 점검하는 개념증명이다.
조나스 닉(Jonas Nick) 블록스트림(Blockstream) 연구원과 개발자 remix7531은 12일 한국시간 델빙 비트코인(Delving Bitcoin)에 libshrincs를 공개했다. 이 라이브러리는 비트코인용 포스트양자 서명 체계로 제안된 SHRINCS의 일회용 서명 구성요소 WOTS+C를 C 언어로 구현했다.
개발진은 Rocq Prover와 SSProve를 이용해 보안 증명을 형식화했다. 이어 VST를 통해 C 구현이 Rocq 명세를 따르는지 검증했으며, 증명 작업의 상당 부분에는 대규모 언어모델(LLM)이 활용됐다.
이번 공개의 초점은 새로운 암호 체계를 제안하는 데 있지 않다. 이번 공개는 AI를 활용한 증명 연구가 비트코인 암호 증명과 구현 검증으로 이어진 사례에 가깝다.
깃허브 저장소는 libshrincs를 ‘개념증명(proof-of-concept)’으로 규정했다. C 코드와 VST 계약도 잠정적인 상태로 향후 변경될 수 있다고 명시했다.
구현과 검증 도구는 역할에 따라 나뉜다. 구현에는 C 언어, 보안 증명에는 Rocq 9.0과 SSProve·MathComp, 기능 검증에는 Rocq 9.0과 VST·CompCert가 사용됐다. ‘make audit’ 명령은 허용된 가정만 표로 점검하도록 설계됐다.
libshrincs의 기반인 SHRINCS는 블록체인의 제한된 저장 공간을 고려한 해시 기반 포스트양자 서명 체계다. 포스트양자 암호는 양자컴퓨터를 이용한 공격에도 견디도록 설계한 암호 기술을 뜻한다.
블록스트림은 SHRINCS가 상태 유지형 모드에서 324바이트 크기의 서명을 생성한다고 설명했다. 서명 상태가 손상되거나 사라졌을 때 사용하는 무상태 대체 경로의 서명 크기는 3~8KB다. 블록스트림은 이 방식의 서명 데이터가 NIST 표준 대안보다 블록 공간을 97% 적게 사용한다고 설명했다.
조나스 닉은 앞서 비트코인에 포스트양자 서명을 도입하는 방식으로 탭루트(Taproot) 트리에 별도의 지출 경로를 두는 구상을 제시했다. 평소에는 기존 슈노르 서명을 사용하고 필요할 때 포스트양자 서명 경로를 여는 구조다.
탭루트는 여러 지출 조건을 트리 구조에 담고 실제 사용한 조건만 공개할 수 있게 한다. 다만 새로운 서명 검증 기능을 비트코인 본체에 추가하려면 합의 규칙 변경과 비트코인개선제안(BIP) 논의가 필요하다.
현재 연구의 한계도 명확하다. 개발진은 이번에 정리한 증명이 완전한 QROM 기반 포스트양자 보장까지 제공하지 않으며, 실제 배포 환경보다 약한 보안 개념을 사용한다고 밝혔다. libshrincs를 비트코인 코어에 반영된 코드로 볼 수 없는 이유다.
상태 유지형 서명은 같은 키의 사용 이력을 안전하게 보관해야 한다. 백업을 중복 사용하거나 기기 상태가 초기화되면 서명 보안이 약해질 수 있어 하드웨어 지갑과 펌웨어의 상태 관리가 핵심 과제로 꼽힌다.
델빙 비트코인 토론에서는 낮은 수수료가 필요한 평상시 경로와 복구용 무상태 경로를 함께 둔 설계가 긍정적인 평가를 받았다. 반면 상태 초기화 오류와 백업 중복, 전원 차단 등 실제 사용 과정에서 발생할 수 있는 운영 위험도 제기됐다.
조나스 닉은 시드를 가져온 기기에서는 무상태 경로만 사용해야 한다고 설명했다. 하드웨어 지갑이 상태를 안전하게 유지할 수 있는지 판단하려면 지갑 개발자들의 실무 피드백이 필요하다는 입장도 밝혔다.
remix7531은 별도 블로그에서 LLM이 증명을 빠르게 완성할 수 있지만 잘못 작성된 명세까지 더 빨리 통과시킬 위험이 있다고 지적했다. libshrincs는 복잡한 증명을 늘리기보다 사람이 검토해야 할 명세와 가정을 줄이는 방향으로 설계됐다.
<저작권자 ⓒ TokenPost, 무단전재 및 재배포 금지>
많이 본 기사