← 모든 인사이트 보기
RESEARCHZcash Forum · ValarDragon

코인홀더 투표 체인 설계 공개

Ironwood ZEC 1개가 1표이며, 스냅샷 잔액을 비공개로 증명하고 표를 준동형 암호화해 MPC 위원회가 집계하는 투표 체인의 구조를 설명합니다.

Valar Group이 코인홀더 투표 체인(Coinholder Voting Chain)의 설계를 포럼에 공개했다. 이 체인은 최근 NU7 코인홀더 투표에 쓰였고, 보안 사고 이전 투표에도 쓰일 예정이라고 한다. 투표 라운드는 스냅샷 높이, 종료 시각, 여러 제안으로 구성되며, 스냅샷 시점의 Ironwood ZEC 1개가 1표다. 투명 주소 투표자는 기존 방식대로 처리된다.

유권자는 Zcash 메인넷 잔액을 비공개로 스냅샷해 투표 체인에 증명하고, 이 과정은 메인넷 노트와 연결되지 않는다. 각 제안에 대한 투표 금액은 MPC 위원회에 동형 암호화되어 제출되며, 종료 후 위원회가 부분 복호화와 정당성 증명을 제출해 합산한다. 지갑이 세 단계의 증명(Snapshot, Vote Commitment, Reveal ZKP)을 만들고, 금액은 16개 조각으로 나뉘어 여러 제출 서버를 통해 서로 다른 시간에 제출되어 시점 연결을 막는다.

거버넌스 구조는 두 축이다. 코디네이터 멀티시그는 투표 라운드 생성과 검증자 승인을 조율하며 현재 설계는 Project Tachyon, Zcash Foundation, Zodl, Shielded Labs, Valar Group 대표로 구성된 2-of-5다. 선거 기관은 최소 10개 노드의 검증자로, 분산 키 생성(DKG)으로 라운드별 키를 만들고 2/3 임계값으로 복호화한다. 두 집합 모두 프로토콜에 고정되지 않은 설정값이고, 질문은 최소 5일간 공개 검토를 거친다.

눈에 띄는 기술 요소는 스냅샷 시점에 노트가 쓰이지 않았음을 입증하는 널리파이어 제외 증명이다. 오차드 전체 데이터가 2GB라 모바일에서 내려받기 어렵기 때문에, 정렬된 머클 트리와 Private Information Retrieval(PIR)로 널리파이어를 노출하지 않고 머클 경로를 조회한다. 이 방식은 Zellic이 감사했다. 신뢰 모델 표에서는 투표와 신원의 비연결성은 누구도 깰 수 없고, 코디네이터는 어떤 질문이 올라가는지만 정할 뿐 개별 표를 볼 수 없다고 정리한다.

설계는 누구나 투표를 띄우고, 어떤 지갑이든 표시하며, 누구든 체인을 운영하거나 결과를 감사할 수 있도록 개방과 재사용을 목표로 한다. 검증자 실행, 집계 감사, 자체 체인, PIR 서버 운영 방법과 vote-sdk, voting-circuits, zcash_voting 등 코드가 공개되어 있다. 작성자는 설계를 검토한 이들과 테스트 라운드에 참여한 노드 운영자, 지갑 통합을 함께한 Vizor와 Zodl 팀에 감사를 전했다.

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