← 모든 콜 보기
ARBORIST#78

zcash script API 단순화

Conrado의 zcash script 단순화 API가 리뷰 단계에 들어갔다

안건별 요약 7

  1. Zebra 업데이트: Zebra scan, ECC 의존성, zcash_script 단순 API

    Zcash Foundation · Alfredo, Conrado, Kris

    • ZKProof 워크숍 참석으로 진행은 적었다. note commitment tree 직렬화 버그를 고쳤고 ECC 의존성 업그레이드를 마쳐 Zebra PR 8568을 곧 병합한다.
    • Marek이 zcash_client_backend에 타입을 스레드 간 전달할 수 있게 하는 PR(librustzcash PR 1400)을 열었고 ECC 리뷰를 요청했다. 급하지는 않다.
    • 포럼의 zcashd 폐기 요구사항 목록을 조사한 결과, 대부분 이미 Zebra에 있거나 아직 없는 지갑 지원이 필요하다.
    • Zebra scan은 새 저장소 대신 별도 프로세스로 실행해 키가 Zebra 밖에 있게 하는 쪽으로 범위를 줄였다.
    • Conrado가 zcash_script API를 바꿔 C++ 트랜잭션 포인터 대신 투명 트랜잭션 검증 파라미터와 sighash 계산 콜백을 받게 했다.
    • 이제 zcash_script는 C++ 코드 외에 Rust crate 의존성이 없고, Kris는 Rust 대체 구현과 나란히 비교 테스트하기도 쉬워진다고 했다.
  2. ECC 업데이트: zcashd 5.9.1과 Zashi 환율 변환

    Electric Coin Company · Kris, Daira, Pacu

    • zcashd 5.9.1은 Binance가 요청한 TEX 주소 생성 유틸리티 API와 P2P 프로토콜의 사소한 예외 수정을 담았다. Daira는 이것이 ZIP-320 지원이 아니라 TEX 주소 검증용 유틸리티 API뿐이라고 정정했다.
    • incrementalmerkletree와 shardtree crate에서 note commitment tree 샤드 끝부근의 매우 좁은 경우에 증인을 계산하지 못해 자금이 일시적으로 사용 불가해지던 버그를 고쳤다.
    • 환율 변환에서 지갑 사용자의 IP가 환율 제공자에게 노출되지 않도록 lightwalletd가 요청을 프록시하는 프로토타입을 만들었다.
    • 서명된 환율 데이터를 lightwalletd가 가져와 클라이언트가 서명을 검증하는 방식도 검토 중이나, 서명 데이터를 제공하는 곳이 두 군데뿐이고 ZEC가 있는지도 불확실하다.
    • 서명 방식과 TLS 프록시 방식을 모두 추진하며 클라이언트가 둘을 함께 쓸 수도 있다. 클라이언트는 평균이나 중앙값과 함께 값의 타당성 검사도 해야 한다. Zashi 1.1 기능도 순조롭게 개발 중이다.
  3. zcashd 폐기: Rust zcash_script와 전환 계획

    Electric Coin Company · Kris, Daira

    • Sean과 Kris가 투명 스크립트 인터프리터를 순수 Rust로 옮기는 작업을 몇 시간 진전시켰다.
    • zcashd 지갑을 대체하는 투명 기능 지원에 필요하고, zcashd 폐기 후에도 C++ 코드를 유지해야 하는 부담을 없애려는 것이다.
    • 계획은 NU6에서 순수 Rust 구현을 완성해 풀노드가 기존 C++ 인터프리터로 합의를 유지하면서 Rust 구현을 병행 실행해 결과가 같은지 확인하고, NU7에서 네트워크 전체를 전환하는 것이다.
    • Daira는 이 전환이 NU7에 묶일 필요는 없고 늦어져도 NU7을 막지 않는다고 했다. 대부분의 투명 스크립트는 P2PKH처럼 쓰이는 P2SH이며 멀티시그와 일부 HTLC 정도가 나머지이다.
    • Str4d가 스크립트 분포 분석 도구를 복원해 새 인터프리터를 전체 체인 이력에 돌려볼 계획이다.
  4. ZSA 업데이트

    QEDIT · Vivek, Daira

    • 기존 lookup range check를 Orchard ZSA 회로와 기존 Orchard 회로에서 모두 쓰도록 일반화한 halo2 가젯 trait를 추가했고, 기존 Orchard 회로의 레이아웃에 영향이 없음을 테스트했다.
    • halo2 저장소에 곧 PR을 낼 예정이다. Orchard crate는 0.8 위에서 안정화했고 librustzcash는 일부 남았다.
    • zcash_note_encryption PR은 ECC가 리뷰를 아직 못 했으나 우선순위가 높다고 밝혔다. 테스트 벡터는 Orchard ZSA 작업을 분리한 PR을 먼저 내고, 트랜잭션 구조와 발행 번들 변경은 이후에 별도로 낸다.
    • ZIP 이슈들에도 답변하며 수정하고 있다.
  5. FROST 데모 업데이트

    Zcash Foundation · Conrado, Pacu

    • Zcon에서 시연한 데모의 2단계 PR이 병합되어 같은 데모를 직접 시험해 볼 수 있고, 이에 맞춘 문서도 만들었다.
    • Natalie는 refresh share 기능을 작업 중이며 trusted dealer 키 생성 PR을 올렸고 분산 키 생성(DKG) 지원을 진행 중이다. 이후 데모가 쓰는 FROST 서버 작업을 이어간다.
    • Pacu가 FROST 팀의 지원으로 frost-uniffi-sdk라는 개념 증명(POC)을 만들었으며 이 피드백이 API 개선에 도움이 된다고 했다.
  6. ZKProof 6 요약: Plonkish 표준화

    Electric Coin Company · Daira

    • Daira, Str4d, Mary Maller가 주도하는 Plonkish 표준화 작업이 순조롭다. 세션에서 사양의 버그 두 개를 발견했으며 쉽게 고칠 수 있다. 현재는 Plonkish 회로의 인코딩을 정의하는 단계이다.
    • Plonkish는 Halo2 등이 쓰는 산술화 방식으로 R1CS보다 복잡하다. 표준화되면 서로 다른 증명 시스템과 회로 언어 간 상호운용성이 높아지고 고수준 언어로 회로를 쓰기 쉬워진다.
  7. 공지: Z|ECC 행사

    Electric Coin Company · Daira, Pili

    • 다음 모임은 7월 샌디에이고에서 열리는 Z|ECC이며 ECC 트위터와 포럼에 안내가 있다.
    • 다음 Arborist Call은 6월 13일 21:00 UTC이다.

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