← 모든 콜 보기
ARBORIST#55

Zebra 감사 보고서 공개

NCC Group이 Zebra 감사 최종 보고서를 공개했고 zcashd 5.6.1 핫픽스가 나왔다

안건별 요약 9

  1. Zcashd 5.6.1 핫픽스와 lightwalletd 릴리스 임박

    Electric Coin Company · Kris

    • 5.6.0이 Orchard 지갑의 노트 커밋먼트 트리 관리에 넣은 버그를 고친 핫픽스 5.6.1을 릴리스했다. 5.6.0으로 올린 사용자는 업그레이드를 권고한다.
    • 5.5.0 이전부터 채굴되지 않은 노트 정보가 Orchard 지갑에 남을 수 있는 문제가 알려져 있다.
    • 5.6.1은 지출에 필요한 정보가 없는 불일치를 감지하면 Orchard 지갑을 rescan하는데, 이 경우 zcashd를 켤 때마다 rescan이 일어나 불편하며 완화 작업 중이다.
    • lightwalletd 작업은 사실상 끝났고 protobuf 인코딩 몇 가지만 정리하면 릴리스된다. ECC 라이트월렛 SDK가 새 인프라를 쓰는 데 필요한 librustzcash 갱신도 다음 주까지 끝낼 예정이다.
  2. Zebra 1.0.0 이후 작업

    Zcash Foundation · Deirdre, Kris

    • 1.0.0 안정 릴리스를 약 2주 전 태깅했고, ECC의 증분 머클 트리 등 최신 크레이트를 통합해 lightwalletd 빠른 동기화를 지원하는 중이다.
    • 크레이트가 0.3에서 0.4로 오며 직렬화가 바뀌어 예상보다 늦어지고 있다. Kris는 직렬화 코드는 옮겨졌을 뿐이라며 따로 논의하자고 했다.
    • 안정 릴리스 후 보류했던 PR을 많이 병합했다. Docker 아티팩트에서 초기 피어와 로깅 등 설정을 바꾸기 쉽게 했다.
    • 감사자가 이해하기 어렵다고 한 Zebra State의 문맥적 검증 코드를 리팩터링하고 이름을 바꿨다. 다음 릴리스는 곧 나온다.
  3. Zebra 감사 완료 보고

    Zcash Foundation · Deirdre

    • NCC Group이 최종 감사 보고서를 블로그에 게시했고 Zebra 저장소에도 올릴 예정이다. 보고서는 약 50쪽 분량이다.
    • 범위는 Zebrad의 모든 Rust 코드와 Zcash script 래퍼, Zcash proofs 등 직접 작성하거나 의존하는 일부 의존성이다.
    • 결과는 중간 등급 1건(주소록의 피어 주소 상태 관리가 취약)과 낮음 및 정보성 등급이며 모두 수정했거나 병합됐다.
    • 남은 변경은 블록이 부족할 때 패닉하던 것을 오류로 바꾸는 것이며 1.0.1 또는 1.1.0에 들어간다.
    • ed25519-zebra 라이브러리에서는 메모리를 완전히 zeroize하지 않던 문제와 비밀 데이터를 debug 구현으로 로깅하던 문제를 고쳤다.
  4. FROST 업데이트 - 데모와 감사 시작

    Zcash Foundation · Conrado

    • FROST 구조체를 주고받는 직렬화를 위한 serde 지원을 병합했다. 분산 키 생성(DKG)을 포함해 FROST가 지원하는 모든 것의 데모를 만들고 있다.
    • FROST 감사가 다음 주 NCC로 시작한다. 바인딩 팩터 계산에서 공개키를 해시하는 명세 변경은 Chelsea가 CFRG 목록에 알렸고 아직 반대가 없다. 병합되면 라이브러리에도 같은 변경을 한다.
    • Zcash에 FROST를 적용하는 방법에 관한 커뮤니티 콜이 다음 주쯤 열릴 것이다.
  5. ZSA 업데이트 - 널리파이어 도출 변경

    QEDIT · Vivek, Daira, Deirdre

    • ZIP은 수식과 변수 이름 일관성 정비에 집중했다. 구현은 Zcash 저장소 업데이트에 리베이스했고 Orchard와 librustzcash는 끝났으며 zcashd는 아직 남았다.
    • 분할 노트의 널리파이어 도출 방식을 바꿨다. Daira와 Sean의 제안으로 안전해 보이는 최종안을 정했고 구현에는 반영됐지만 ZIP에는 아직 반영하지 않았다.
    • Daira는 공격자가 트랜잭션을 보고 노트 지출을 막는 Faerie gold와 roadblock 공격 저항성(지출 가능성)을 위해 널리파이어 도출을 바꾼 것이라고 설명했다.
    • 회로 변경은 별도 PDF로 문서화해 ZIP에서 링크하는 방안을 논의했다.
    • Daira와 Deirdre는 링크 부식을 막기 위해 ZIPs 저장소의 protocol 폴더에 두자고 했고, FROST 보안 증명은 비합의 문서라 별도 FROST 폴더에 둔다.
    • 자산 교환의 초기 설계 아이디어가 나왔다. 구현과 스펙을 병행하며 겪은 반복 수정을 피하려고 ZIP 번호를 미리 확보해 스펙을 먼저 구체화할 계획이다.
  6. Nighthawk 업데이트

    Nighthawk Apps · Adi, Daira, Kris

    • iOS와 Android 네이티브 앱에 병렬 동기화를 도입해 동기화 속도가 크게 좋아졌고, Secant 프로젝트 구조 위에서 성능과 보안을 높였다.
    • 분산 인프라는 자동화 구성을 모니터링하며 노드를 5.6.0에서 5.6.1로 올렸다. 블록 탐색기의 메인넷과 테스트넷 프런트엔드도 5.6.1에 맞췄다.
    • Adi는 DAGSync가 아직 갈 길이 멀지만 병렬 동기화만으로도 스캔 속도가 크게 줄었다고 했다. Daira와 Kris는 이것이 다른 변경과 상호보완적이며 DAGSync의 첫 단계가 librustzcash와 SDK 작업이라고 했다.
  7. Halo 2의 hacspec 구현

    Deirdre, Daira

    • 독립 석사 학생들이 Halo 2의 대부분을 hacspec으로 구현했다. hacspec은 Coq, EasyCrypt, F* 같은 증명 백엔드로 형식화되는 Rust의 함수형 부분집합이다.
    • PLONKish 산술화, pasta 곡선과 Halo 2 증명 시스템 대부분이 있고 석사 논문이 함께 있다.
    • Halo 2의 형식화가 이전에 없었기에 의미가 크며, 실제로 동작하지만 ECC 구현의 성능과 메모리 최적화는 없을 것이다. Deirdre는 프로덕션 구현과 같은 일을 하는지 연결하는 후속 연구가 필요하다고 했다.
    • Daira는 형식 증명보다 약한 비형식 논증이나 같은 입력으로 비교하는 quickcheck식 테스트부터 해도 확신이 크게 늘 것이라고 했고, 유지보수가 Coq보다 쉬울 것이라 큰 관심을 보였다.
  8. 호출 시간대 변경 안내와 ZIP 편집자 모집

    Dodger, Daira

    • Dodger는 후반부 호출을 22:30 UTC에서 21:00 UTC로 앞당기는 안을 다시 알렸다. Daira는 영국과 미 서부 모두에 도움이 된다고 했고, 의견은 R&D Discord의 arboristcall 채널에 남기면 된다.
    • Daira는 세 번째 ZIP 편집자를 계속 찾고 있다고 했다. 문서 편집과 표준 경험이 도움이 되며 자원봉사 직책이고 ZIP-0을 읽어보라고 했다.
  9. DAGSync 현황 - librustzcash PR과 공통 동기화 라이브러리

    Electric Coin Company · Luca Campobasso, Kris

    • Eiger의 Luca는 UniFFI 그랜트 참여자로서 DAGSync의 librustzcash 작업 현황과 도울 점을 물었다.
    • Kris는 증분 머클 트리 저장소 PR 1건과 librustzcash PR 2건(831, 861)이 리뷰 중이며 이번 주 병합될 수 있다고 했다.
    • 지금 단계는 전체 DAGSync가 아닌 pre-DAGSync(fast spendability)다. 지갑은 노트 커밋먼트 트리를 채울 구간과 지갑 활동 관련 구간을 포함한 스캔 구간을 질의한다.
    • 남은 일은 제안 스캔 구간이며, DAGSync 전체 배포에도 lightwalletd 추가 변경은 필요 없을 것으로 본다.
    • Luca가 공통 동기화 라이브러리를 묻자 Kris는 zcash client backend가 공통 인터페이스를 제공한다고 했다. 다만 두 방식은 상태 관리가 달라 같은 API가 맞을지 불확실하다고 했다.
    • 논의는 R&D Discord의 walletdev 채널과 Light Client Working Group에서 하면 된다.

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