Skip to main content

펑크폴 플랫폼에 기반이 되는 솔루션

투표 시스템

펑크폴 투표 시스템은 영지식증명(zkBlockchain) 블록체인 기반으로 개발되었으며, 이는 데이터의 투명성 및 블록체인의 처리량과 속도를 향상시키기 위한 목표를 가지고 있습니다.

이 시스템은 중요한 유권자 정보, 참여 정보, 집계 정보 등을 포함하는 'Indexer'라는 단일 머클맵 구조와 재귀 증명(recursion proof)기술을 활용하며, 이를 통해 투표 과정의 투명성과 신뢰성을 높입니다.

'Indexer'는 투표 시스템에서 중요한 역할을 하는 NFT를 관리하며, 유권자는 이를 통해 투표에 참여할 수 있습니다. 투표 시에는 이 NFT가 유권자의 지갑(투표 스마트컨트랙트에 존재하는 wallet)에서 투표하고자 하는 항목의 지갑으로 이동하며, 이를 통해 투표 참여 정보를 안전하게 추적하고 결과를 정확하게 집계할 수 있습니다.

펑크폴 투표 시스템은 단일 머클맵 구조를 통해 정보를 효율적으로 관리하고 검증할 수 있으며, 이는 블록체인에 업데이트해야 하는 정보의 양을 줄이는데 기여합니다. 또한, 재귀 증명 기술은 투표 검증 과정을 간소화하고 시스템 전체의 확장성을 향상시키는 역할을 합니다. 이로써, 펑크폴은 데이터의 유효성을 보장하면서도 처리량과 속도를 향상시키는 혁신적인 접근 방식을 제공합니다.

펑크폴 투표 시스템은 블록체인 기반의 투표 시스템이 갖는 문제들을 해결하고, 효율성, 확장성, 투명성을 높이는 방법을 제공합니다. 이를 통해, 블록체인 기술의 잠재력을 극대화하며, 디지털 투표 시스템의 중요한 쟁점들을 해결하게 됩니다. 이러한 펑크폴의 기여는 블록체인 기반 투표 시스템의 발전에 크게 기여할 것으로 예상됩니다.

zk-투표-Smart Contract

zk-투표(nft)는 투표에 대한 스마트컨트랙트로 zk-PUNK와 유권자 NFT의 상태 값을 관리하는 역할이 포함됩니다. 투표 스마트 컨트랙트는 투표가 배포될 때마다 생성되며, 투표 내용과 유권자의 NFT에 대한 상태 값을 관리합니다.

투표 배포 시, 유권자를 등록하고, 유권자가 투표에 참여할 때 NFT가 발행 되고, 이에 대한 정보(유권자의 NFT 보유 정보)가 NFT Indexer에 등록됩니다. 투표 내용 중 사용자가 응답할 각 항목에 대해 별도의 wallet이 생성되어 NFT Indexer에 추가됩니다. 사용자가 제출한 참여 정보는 투표 내용과 비교하여 유효한 값인지 확인하고, 사용자의 투표 NFT를 항목별 wallet으로 전송합니다.

이 과정이 끝나면, 참여자에게는 보상으로 PUNK가 지급되고 투표가 마무리됩니다.

🔨 Indexer 구조


👩‍🔧 Indexer 구조로 투표 처리하는 과정

1단계: NFT 발행

먼저, Indexer에 유권자 정보가 추가 됩니다. 각 유권자는 투표에 참여하는 시점에 자신의 NFT가 발행 됩니다. 이 NFT는 투표 참여를 위한 '표'와 같은 역할을 합니다. 이 경우, 총 6명의 유권자가 있으므로 6개의 NFT가 발행 됩니다. 각각의 NFT는 고유한 ID를 가지며 (예: nftID220, nftID221, nftID222, nftID223, nftID224, nftID225), 이 ID는 "Indexer"에 의해 관리되고 기록됩니다.

2단계: 투표

유권자 1은 '시장후보 4번'에 자신의 NFT(nftID223)를 전송합니다. 이 과정은 오프체인에서 발생하므로, 투명하고 변조 불가능합니다. 이 때, 유권자 1의 "Indexer"는 nftID223가 유권자 1의 wallet에서 '시장후보 4번'의 wallet으로 보내고 추적하고 기록합니다. 이는 Indexer에서 유권자 1의 nftIds[] 배열에서 nftID223를 삭제하고, '시장후보 4번'의 wallet의 nftIds[] 배열에 nftID223를 추가함으로써 이루어집니다. 전체 과정이 각 단계별로 recursion을 사용해서 증명되고 검증 됩니다. 그리고 recursion의 최종 증명 상태가 온체인에 업데이트 됩니다.

3단계: 투표 결과 집계

투표가 종료되면, 각 후보의 wallet의 투표된 NFT를 집계합니다. 각 시장 후보 wallet에 NFT의 수를 집계하게 되고, 여기서 "Indexer"는 '시장후보 4번' wallet에 투표된 NFT의 수를 확인하고, 이를 바탕으로 투표 결과를 정리합니다.

4단계: 결과 공개

집계된 결과는 블록체인에 기록되며, 모든 참여자들이 확인할 수 있습니다. 이 과정에서 블록체인의 투명성과 무결성이 보장되며, 이를 통해 투표의 신뢰성을 확보할 수 있습니다.

이런 식으로, "Indexer"는 각 유권자의 투표 참여부터 결과 집계까지 모든 과정을 효과적으로 관리하고 기록하며, 이 과정을 통해 블록체인 기반의 투표 시스템에서 투표의 투명성과 정확성을 보장하면서도, 처리의 효율성을 크게 향상시킬 수 있습니다.