← 모든 콜 보기
ARBORIST#96

NU7 config 플래그 규약 논의

계정 메타데이터 키 ZIP 325와 NU7용 config 플래그 방식이 논의됐다

안건별 요약 15

  1. 진행 공지: 달력 파일과 생태계 파트너 메일링 리스트

    Zcash Foundation · Dodger

    • ZconVI 주간인 3월 6일에는 Arborist 콜이 없다.
    • zcasharborist.org에서 올바른 일정을 담은 새 달력 파일을 내려받을 수 있으나, 취소되거나 건너뛴 콜은 반영되지 않는 단순한 파일이다.
    • Arborist 콜과 커뮤니티 콜을 구독할 수 있는 공개 Google 캘린더를 만들지 의견을 물었다.
    • 생태계 파트너가 소프트웨어 변경이나 deprecated 소식을 받아볼 수 있는 Google Groups 메일링 리스트를 만들었다.
    • 이 그룹은 승인된 메일만 게시되는 중재형이며, Google 계정 없이도 이메일로 구독할 수 있다.
  2. Zebra 업데이트: 지난 콜 진행 작업 결과

    Zcash Foundation · Alfredo, Daira Emma

    • Docker 파일과 엔트리포인트 리팩터링을 마쳤고, invalidateblock과 reconsiderblock RPC에 필요한 finalized state 내부 함수는 Arya와 외부 기여자가 완료했다.
    • 잘못된 정보를 보내는 피어를 점수 체계로 추적해 차단하는 기능을 마쳤고, getpeerinfo RPC에 인바운드 연결을 추가하는 작업도 병합 전 단계까지 끝났다.
    • Zcash script 교체는 Conrado가 FROST 작업 때문에, sinsemilla 교체는 Natalie가 진행 중이다.
    • Daira Emma는 차단 메커니즘이 문서화돼 있지 않으면 합법 노드를 쫓아내는 데 악용될 수 있으니 분석을 위해 문서화가 필요하다고 했다.
    • Alfredo가 점수 체계 차단 문서를 쓰기로 했다.
  3. Zebra 업데이트: 최근 RPC 변경과 진행 중 작업

    Zcash Foundation · Alfredo

    • getblockchaininfo가 더 많은 데이터를 반환하도록 확장했고, Zaino 요청으로 regtest의 투명 주소에 새 네트워크 종류를 적용했다.
    • getblock 출력에 block commitment 필드를 추가했고, zcashd와의 호환을 위해 sendrawtransaction의 추가 파라미터를 받되 아무 동작도 하지 않게 했다.
    • getrawmempool에 verbose 지원을 추가했고, getinfo RPC가 더 많은 정보를 반환하도록 확장했다.
    • 일부 RPC에 음수 높이 지원을 추가하고 있으며, getblocktemplate의 코인베이스 출력 순서를 zcashd와 맞추는 수정과 invalidateblock·reconsiderblock 구현을 진행 중이다.
    • 고품질의 외부 기여자가 코드를 많이 보내고 있어 생태계에 좋은 소식이라고 덧붙였다.
  4. ECC 업데이트: librustzcash crate 릴리스와 ZIP 325

    ECC · Str4d, Daira Emma, Kris

    • 지난 몇 달간의 변경을 정리해 릴리스하는 데 집중했으며, Keystone이 고정 의존성 없이 공개 버전에 올라타도록 하위 스택 변경을 마쳤다.
    • 투명 거스름돈 복구 작업은 지갑의 투명 동기화 방식을 크게 바꾸므로 이번 릴리스에서 제외하고 별도의 breaking 릴리스로 낸다.
    • 릴리스 후 모바일 SDK에 반영해 Zashi, Edge, Unstoppable 등이 시험하게 하고, Zallet도 투명 관련 RPC 키를 추가할 수 있게 된다.
    • ZIP 325는 지갑이 만드는 오프체인 메타데이터를 시드 구문 백업만으로 복구하도록 암호화하는 공통 계정 메타데이터 키 트리를 정의한다.
    • 하드웨어 지갑이 UFVK를 내보낼 때 이 키도 내보내게 해 별도 파생 없이 쓸 수 있으며, 주소록·거래 주석·환율·세금 관련 기록 같은 것이 대상이다.
    • Kris는 NU7 ZIP 중 v6 트랜잭션 포맷 ZIP에서 상당한 진전이 있었다고 알렸다.
  5. ECC 업데이트: Tor로 트랜잭션 제출

    ECC · Str4d, Daira Emma

    • 모바일 SDK에서 Tor를 통해 트랜잭션을 가져오고 제출하는 기능을 구현했고, Swift 바인딩만 마치면 다음 릴리스에 나간다.
    • 트랜잭션 제출을 먼저 적용해 lightwalletd가 누가 제출했는지 직접 관찰하는 연결을 끊을 수 있다.
    • 제출 직후 같은 정보를 조회하면 시간 상관 관계가 생길 수 있어 지갑은 요청 패턴을 신중히 설계해야 한다.
    • Daira Emma는 Tor가 전역 감시를 막도록 설계되지는 않았지만 손상된 인프라에는 꽤 효과적이라고 했다.
    • Str4d는 더 강한 단계로 NYM 같은 믹스넷도 관심 대상이라고 했다.
  6. FROST 감사와 데모

    Conrado, Kris, Dodger

    • Least Authority가 FROST 클라이언트와 frostd 도구의 감사 보고서를 보냈고, 중대한 문제 없이 경미한 이슈들을 이번 주나 다음 주 초까지 처리한다.
    • 전날 커뮤니티 콜에서 FROST 서버를 시연했으며 데모 오류가 있어 다시 녹화해 올릴 예정이다.
    • PCZT 통합 등 작은 작업이 남았고, 다음 단계는 지갑과 소프트웨어가 FROST를 통합해 보는 것이다.
    • Kris는 참조 구현을 zcash devtool 명령으로 제공하자고 제안했고, Conrado는 일정을 잡겠다고 했다.
    • Dodger는 현재 우선순위가 zcashd 폐기와 ZSA의 Zebra 병합이라고 밝혔다.
  7. Crosslink 채용과 로드맵 논의

    Shielded Labs · Nate, Daira Emma, Dodger

    • Shielded Labs는 몇 명을 채용했고 한 명이 곧 합류하며, 다음 주 팀이 직접 만나 Crosslink 구현 로드맵과 코드 설계를 정리한다.
    • 첫 마일스톤은 Zebra 포크에 Crosslink 기능 일부를 담아 누구나 실행해 볼 수 있는 데모이며, 3월 말까지 완성하려 한다.
    • Zebra CI는 기본적으로 복제하지 않고 Crosslink 프로토타입용 자동 CI를 새로 만들되, 필요할 때 초안 PR로 전체 CI 피드백을 받는 방식을 검토한다.
    • Zebra 팀이 CI 설정을 소개하는 커뮤니티 콜을 이날 진행했다.
    • Daira Emma는 Crosslink 보안 분석이 아직 미완성이며 유한 사건 Python 모델을 완성하고 싶다고 했고, Nate는 첫 마일스톤 이후에 필요하다고 답했다.
  8. NSM 업데이트

    Shielded Labs, Eiger · Jason McGee, Str4d, Kris

    • ZIP 233은 기능 플래그를 제거하고 v6 트랜잭션 포맷에 NU7을 추가했으며, ZIP 234와 235는 별도의 두 기능 플래그로 구현했다.
    • librustzcash의 기능 플래그도 제거하고 v6 포맷에 NU7을 넣었으며 Zcash 테스트 벡터를 v6에 맞게 갱신했다.
    • librustzcash PR을 제외한 모든 PR은 최신 upstream에 리베이스했고, Zebra가 최신 librustzcash를 쓰지 않아 librustzcash PR은 2024년 12월 코드를 유지했다.
    • Str4d는 곧 나올 crate 릴리스 직후에 리베이스하는 것이 가장 매끄럽다고 했다.
    • Eiger와 화요일에 만나 업스트림 병합 전에 필요한 작업을 논의한다.
  9. ZSA 오프체인 메타데이터: asset desc 설계 변경

    ECC · Daira Emma, Str4d, Kris, Nate

    • ZIP 에디터는 자산 설명 문자열 asset desc를 온체인에 해시로만 인코딩하자고 제안했다.
    • 지갑이 asset desc를 그대로 보여주면 오해를 부르며, 사용자는 발행자 평판, 가치, 보안 문제, 래핑 주장의 진위 같은 메타데이터를 알아야 한다.
    • 이런 정보는 평판에 기대는 오프체인 프로토콜이 필요하고, 해시로 두면 설명 원문을 받으면 검증할 수는 있다.
    • Nate는 이더리움 MetaMask의 token list처럼 큐레이션된 목록을 지갑이 구독하는 방식을 소개했다.
    • Str4d는 해시여도 원문 공개를 강제할 수 없는 것은 원래 문자열 방식과 같고, 메모 번들을 첫 발행 트랜잭션에 넣어 공개할 수 있다고 했다.
    • Kris는 온체인 설명을 사용자에게 보이는 것 자체가 안티패턴이라며 사용자가 명시적으로 선택한 오프체인 프로토콜로만 얻게 해야 한다고 했다.
  10. 공개 발표: ZconVI 일정

    Zcash Foundation · Dodger, Daira Emma

    • ZconVI는 3월 4일부터 7일까지 전면 온라인으로 열리며 zfnd.org에서 정보를 볼 수 있다.
    • Daira Emma는 양자내성 Zcash에 대한 자신의 발표를 소개했다.
  11. 공개 토론: Arborist 콜 X 라이브스트리밍 논의

    Jason McGee, Daira Emma, Dodger, Str4d, Conrado

    • Jason McGee는 Arborist 콜을 Zcash X 계정 등에 라이브 스트리밍하자고 제안했다. 유튜브 영상은 조회수가 150회를 넘기 어렵고, 공개 개발을 알리고 참여를 늘리려는 목적이다.
    • Daira Emma는 X가 트랜스젠더를 배척하는 플랫폼이며 참가자 위험이 커질 수 있다고 강하게 반대했고, 항의 의미로 참여하되 위험이 커지면 불참할 수 있다고 했다.
    • Dodger는 Zcash가 정치적으로 중립이어야 한다는 입장이며 Zoom 운영과 마찬가지로 실용적으로 판단하겠다고 했고, 불참을 원하는 사람은 비공개로 알려 달라고 했다.
    • Str4d는 라이브 스트리밍의 실제 이점, 왜 X인지, 그리고 중재 부담을 먼저 따져야 한다고 했다.
    • 스트리밍은 Zoom 진행은 그대로 두고 영상만 다른 플랫폼에 재송출하는 방식이다.
    • Conrado는 지난해 8월 개발 기금 Twitter Space 청취자가 305명이었다며 효과가 크지 않을 것으로 봤다.
  12. 공개 토론: ZIP 231 암호화 메모 번들

    ECC, Zcash Foundation · Alfredo, Kris, Str4d, Daira Emma

    • Alfredo는 ZIP 231을 보고 전체 복호화 없이 메모 유무를 알 수 있다는 요구사항이 어떻게 충족되는지 이해하기 어려웠다고 했다.
    • Str4d는 메모 키가 모두 0이면 누구나 복호화할 수 있고, 모두 1이면 메모가 없다는 표시로 쓴다고 설명했다.
    • ZIP 231은 아직 구현되지 않았고 참조 구현이 나올 때까지 제안 상태이며, Kris가 구현을 진행하다 다른 일로 중단했다.
    • 합의 부분은 지난해 말 ZIP 에디터 논의에서 검토했고, sighash는 ZIP 에디터가 다른 ZIP들과 함께 정의 중이다.
    • Daira Emma는 구형 메모 포맷 ZIP 302와의 상호작용이 있어 해당 ZIP을 갱신하거나 철회해야 할 수 있다고 했다.
    • Alfredo는 모호한 부분을 ZIP에 의견으로 남기기로 했다.
  13. 공개 토론: asset desc 제한 방안과 FROST·CT 로그

    ECC · Conrado, Kris, Str4d, Daira Emma

    • Conrado는 지갑마다 임의로 표시할 것이므로 asset desc를 사용자명처럼 허용 문자로 제한하는 방안을 제안했다.
    • Kris는 온체인 설명은 유명 자산을 흉내내 다른 발행자 키로 속이거나 발행자 키가 탈취됐을 때 악용될 수 있다고 설명했다.
    • 임의 문자열은 모욕적 내용이나 개인 정보 노출에도 쓰일 수 있고 체인에 영구히 남으므로 PR 975의 동기를 읽어 보라고 했다.
    • Str4d는 FROST는 단일 서명과 구별되지 않아 외부 검증에 이점이 없고, 블록체인 자체가 CT 로그와 같은 역할을 하므로 CT 로그는 필요 없다고 답했다.
  14. 공개 토론: 생태계 공통 설정 플래그 제안

    ECC · Kris, Daira Emma, Str4d

    • 기존 zcash_unstable = zfuture 플래그는 같은 식별자를 동시에 여러 개 켤 수 없다는 한계가 있어 생태계 공통의 zcash_unstable = NU7 설정을 제안했다.
    • 각 crate 안에서는 이 설정 플래그 아래에서 메모 번들, ZSA 같은 기능을 일반 Rust feature 플래그로 도입해 모두 켜면 NU7 기능이 갖춰지도록 한다.
    • Str4d는 feature 플래그는 가산적이라 합의에 영향을 주지 않으려면 반드시 설정 플래그가 필요하며, 비가산적 변경을 위해 두 번째 설정 플래그 규약도 열어 두자고 했다.
    • Daira Emma는 이 설정 플래그가 메인넷 합의 표준 모드가 아님을 나타내야 하며, 한 노드에 새 회로와 옛 회로가 함께 필요한 부분은 중복 코드가 불가피하다고 했다.
    • 메인넷과 테스트넷은 글로벌 합의 네트워크라 코드를 플래그 없이 넣고, 비공개 테스트넷용 변경은 플래그 뒤나 병렬 저장소에서 관리한다.
  15. 공개 토론: 설정 플래그 적용 방식과 합의

    Zcash Foundation, ECC · Alfredo, Str4d, Daira Emma, Dodger, Arya

    • Alfredo가 Zebra에서 라이브러리를 가져올 때 설정 플래그가 어떻게 동작하는지 묻자 Str4d는 RUSTFLAGS의 --cfg로 지정하며 별도 빌드로 완전히 분리된다고 답했다.
    • Rust 1.85에서 RUSTFLAGS 처리가 개선돼 캐시 안정성이 좋아졌고, CI에서는 이 플래그를 켠 빌드를 경고 수준으로 먼저 점검하는 것이 좋다.
    • Dodger는 제안을 문서로 정리해 새로 오는 사람과 Zebra 팀이 쉽게 검토할 수 있게 하자고 했다.
    • NSM 변경은 이미 설정 플래그로 옮겼으며, 일부는 맥락에 따라 feature 플래그로 되돌릴 수 있으나 최상위 설정 플래그는 유지한다.
    • Str4d는 ZSA는 note encryption 변경은 플래그 없이 병합했지만 Halo 2와 Orchard 변경은 첫 통합 때 설정 플래그 뒤에 둘 것이라고 했다.
    • Arya는 이 계획이 ZSA 통합에 도움이 될 것이라고 했고, 다음 정식 콜은 3월 20일 늦은 시간대에 열린다.

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