← 모든 콜 보기
ARBORIST#99

양자 내성 설계 상세 설명

Str4d가 노트 커밋의 양자 내성 보강 설계를 상세히 설명했다

안건별 요약 11

  1. Zebra 업데이트

    Zcash Foundation · Arya

    • Docker 환경에서 Zebra가 사용자가 마운트한 설정 파일을 덮어쓰려던 문제를 고쳤다.
    • 다른 Zebra 인스턴스가 같은 DB 디렉터리를 쓰는 중에도 tip height와 copy state 명령을 실행할 수 있게 했다.
    • getaddresstxids RPC는 시작·끝 높이를 선택 사항으로, getrawtransaction은 누락된 필드를, getpeerinfo는 인바운드 피어 정보를 추가해 zcashd와 더 가깝게 맞췄다.
    • 불필요한 getblocktemplate RPC 기능을 제거했고, v6 트랜잭션 변형을 기능 플래그 뒤에 병합했다.
    • Zebra와 sinsemilla crate 간 공통 로직 중복 제거, 내부 miner 복원, getaddressbalance에 received 필드 추가, getblock에 값 풀 정보 추가가 진행 중이다.
  2. ECC 업데이트: zcashd 6.2.0과 Zallet

    ECC · Kris, Str4d

    • zcashd 6.2.0이 이날 모든 정식 배포처에 올라왔고, 6.1.0은 8~9일 뒤 EOS halt되므로 업그레이드해야 한다.
    • Zallet에는 기능을 많이 병합해 기능 알파에 가까워졌고, 마지막 남은 조각은 ZIP 321 처리이다.
    • Blockchain Commons의 Zewif 지갑 교환 포맷 도구로 zcashd wallet.dat을 읽어 Zallet으로 이전하는 작업도 진행 중이며, ECC 코어 팀이 이 포맷을 조정하고 있다.
    • 다음 콜까지 zcashd 지갑 이전과 이전된 Zallet 지갑의 동기화·전송 기본 기능을 갖추는 것이 목표이다.
    • Str4d가 ZK 암호 crate들을 새 rand crate 릴리스에 맞춰 갱신하는 작업을 했다.
    • createrawtransaction은 6.2.0에서 deprecated일 뿐 제거된 것은 아니며, 부분 트랜잭션 생성·갱신은 PCZT로 제공할 계획이다.
  3. Zaino와 ECC의 API 조율

    ECC, Zingo Labs · Kris, Dan

    • ECC는 Zallet이 기대하는 것과 Zaino의 현재 구현 사이의 불일치를 Zaino 팀과 가까이 협업해 풀고 있다.
    • Zaino와 zebrad 사이의 적절한 분리와 공통 API 방향으로 진전이 있으며 생태계 조직 간 상호작용이 활발하다.
  4. Zcash Shielded Assets(ZSA) 업데이트

    QEDIT · Pablo

    • ZSA ZIP의 최종 마무리에 가까워졌고, 이번 주 ECC와 마지막 부분을 논의했으며 참조 구현도 막바지 손질 중이다.
    • 이번 주 sinsemilla crate 리뷰와 Halo 2 PR 리뷰를 받았고, ECC의 Orchard crate 초기 리뷰도 받아 오늘 답변했다.
    • Orchard의 ZSA 변경은 매우 커서 리뷰 대응과 이후 librustzcash와 Zebra로의 전파에 주력하고 있다.
    • 원자적 스왑은 백그라운드로 진행해 한 번에 액션 그룹 하나가 아니라 여러 액션 그룹을 하나의 번들로 합치는 Orchard 브랜치를 준비했다.
    • 스왑용 librustzcash 브랜치와 txtool을 만들었고 Zebra용 스왑 버전도 준비 중이다.
  5. NSM 업데이트

    Shielded Labs · Mark

    • NSM PR은 트랜잭션 v6와 NU7 변형 변경으로 파일 수가 많았으나, 그 부분이 별도 PR로 병합되면 NSM PR은 훨씬 작아져 리뷰가 쉬워질 것이다.
    • Mark의 PR 하나가 병합됐고 NU7 PR이 곧 병합될 것으로 보이며, 이후 NSM PR과 지원용 librustzcash PR로 넘어간다.
    • 모두 플래그 뒤에 있어 리뷰해도 안전하다.
  6. Crosslink 업데이트: Malachite와 시각화

    Shielded Labs · Sam, Andrew, Mark

    • 이번 주 Malachite 통합의 기술 부채를 정리해 BFT가 임의 페이로드를 실을 수 있게 했고, Sam과 Andrew가 각자 메시지를 제안해 블록으로 확정되는 것을 시연했다.
    • 제안자가 돌아가며 맡는 방식이라 제안이 없으면 라운드가 늘어 지연될 수 있다.
    • 시각화 도구에 노드가 가지를 치는 기능을 추가해 force-directed 레이아웃으로 균형 잡힌 트리와 사이드 체인을 그릴 수 있다.
    • 테스트가 출력한 데이터를 시각화 도구로 가져와 테스트 모델을 확인할 수 있도록 설정했다.
    • 피어를 끄고 다시 켜면 재동기화하는 지원을 고쳤고 NAT 통과는 아직 작업 중이다.
  7. FROST 프로젝트 현황

    Zcash Foundation · Conrado, Str4d

    • 감사의 마지막 두 가지 제안을 반영 중이며, 리뷰와 병합이 끝나면 이 프로젝트는 마무리된다.
    • FROST 구현 자체는 frost-core와 암호 스위트 crate에 구현되고 감사를 거쳐 지난해부터 릴리스됐으며, frost client와 frostd 도구가 감사를 받았다.
    • PCZT 지원은 아직 일정이 없으나 한 달쯤 안에 추가할 수 있고, 장기적으로 지갑 통합을 원하지만 직접 하지는 못하고 타인을 돕는다.
    • ZIP 312는 다른 사람의 리뷰와 피드백이 없어 막혀 있으며, 업데이트하고 생태계에 요청할 계획이다.
    • Str4d는 ZIP 312의 남은 쟁점이 키 생성과 랜덤화 처리라고 했다.
    • 아직 Zcash에서 FROST를 배포한 곳이 없어 양자 안전한 키 구조를 정할 기회가 남아 있다.
  8. 공개 토론: ZSA 포크와 업스트림 동기화

    QEDIT · Pacu, Pablo

    • Pacu는 ZSA 팀이 오랫동안 별도 저장소에서 일해 왔으니 업스트림 변경의 영향과 따라잡기 상황을 물었다.
    • Pablo는 Orchard는 PCZT 도입까지 포함해 완전히 따라잡았고 PCZT 위에 자신들의 작업을 병합했다고 답했다.
    • librustzcash는 업스트림 활동이 많아 아직 덜 따라잡았으며, Str4d와 이번 주 갱신 시점을 확인해 곧 따라잡을 예정이다.
    • 업스트림 변경마다 따라잡는 비용은 있으나 대부분 NU7에 명세된 변경이며, 핵심인 회로와 Halo 2, sinsemilla 의존성은 오랫동안 바뀌지 않아 안정적이다.
  9. 포스트양자 대비: 노트 커밋먼트와 rcm 유도

    ECC · Str4d

    • Str4d는 Daira Emma가 쓰고 있는 ZIP 초안 아이디어를 소개했고, 현재 Zcash 프로토콜은 양자 안전하지 않아 양자 컴퓨터가 노트 커밋먼트를 만족하는 다른 노트를 찾아 위조할 수 있다고 했다.
    • 해결책은 노트 커밋먼트의 입력을 이미 쓰는 Blake2b 해시로 유도하는 rcm에 묶는 것으로, 공격이 해시 그라인딩으로 바뀌어 양자에도 어렵다.
    • 이 변경은 지갑이 새 노트를 만드는 방식만 바꾸고, 양자 컴퓨터가 등장하면 해시 입력의 지식 증명으로 쓰는 느린 포스트양자 회로를 폴백으로 둘 수 있다.
    • 지갑은 업그레이드 후 기존 노트를 새 노트로 옮겨야 하며, 옮기지 않은 기존 노트는 취약한 회로를 끌 때 잃을 수 있다.
  10. 포스트양자 대비: viewing key와 FROST 키 트리

    ECC, Zcash Foundation · Str4d, Conrado, Kris

    • commit IVK도 같은 문제가 있어 SK에서 파생된 해시로 묶는 방식을 쓰며, 노트는 일회성이지만 키 자료는 장기 상태이므로 Orchard에 한해 SK 지식 증명을 새 지출 권한 증명으로 쓴다.
    • Sapling은 ZIP 32 파생 세부 사항 때문에 더 복잡해 제안 대상에서 제외했다.
    • 하드웨어 지갑은 SK를 지갑 안에 두려면 회로 안에서 해시 세 번을 증명해야 해 비효율적이며, FROST는 아직 배포되지 않아 키 트리를 더 효율적으로 설계할 수 있다.
    • FROST 키 트리에 양자 키 QK 유도를 추가하면 양자 공격자가 등장했을 때 임계 서명이 1-of-n으로 우아하게 열화된다.
    • Conrado는 FROST가 NK와 RVK를 무작위로 만들면 안 되느냐고 물었고, Str4d는 해시 기반 유도가 있어야 양자 복구가 가능하다고 답했다.
    • Kris는 키 이전은 사용자에게 좋지 않으니 배포 전에 지금 고쳐야 한다고 했고, Conrado는 FROST 배포를 막지 않고 나중에 양자 저항 옵션을 추가해도 된다고 했다.
  11. 포스트양자 대비: NU7 동시 배포와 일정

    ECC · Str4d, Conrado, Kris

    • 이 변경을 NU7과 함께 배포하길 원하는 이유는 ZSA 노트를 아직 만든 사람이 없어, 그 이후 모든 비ZEC 노트가 양자 복구 가능하다고 가정할 수 있기 때문이다.
    • ZEC 노트는 이미 양자 복구가 불가능한 노트가 섞여 있어 Sprout처럼 구분이 안 되는 프로토콜 복잡성이 남는다.
    • 합의 규칙 영향은 Orchard 차폐 코인베이스가 rcm 유도를 검증하는 부분뿐이며, 허용하지 않으면 차폐 코인베이스는 양자 복구가 안 된다.
    • NU7이 반드시 필요하지는 않고 NU7 일정에서의 변경은 최소이며, 막으면 쉽게 뺄 수 있다.
    • Conrado는 NU7에 더 얹는 것이 조금 불안하지만 생각해 볼 만하다고 했고, 곧 ZIP 초안이 올라올 예정이다.
    • 양자 위협은 빠르면 3년, 늦으면 10~30년으로 전망이 갈리며, NIST 등은 2030~2035년을 타원곡선 암호 폐기 기한으로 본다.

한국어 요약은 원문을 바탕으로 정리한 것으로, 정확한 내용은 원문을 확인하세요.