펑크폴 투표 시스템의 기본 구조

펑크폴 투표 시스템의 기본 구조
Hi AI, 투표 시스템 그려줘~

펑크폴 투표 시스템의 기본 구조는 비트코인을 송금 하는 것과 같은 단순한(Complete structure) 구조입니다.

Alice가 Bob에게 비트코인을 보냅니다.  

Alice의 Wallet에는 1 bitcoin이 있습니다. 이것을 Bob의 Wallet 주소로 1 bitcoin을 보냅니다.
이제 Alice의 1 bitcoin은 이제 Bob의 Wallet에 있습니다. 

펑크폴이 투표 시스템의 설계를 시작할 때, 비트 코인의 구조와 많은 유사점이 있음을 발견했습니다. 👇 여기를 누르세요


이러한 구조를 통해 '탈중앙화 투표 시스템'의 구현이 가능할 것이라고 판단했습니다. 우리의 목표는 중앙 기관의 개입 없이 블록체인에서 독립적으로 작동하는 시스템을 만드는 것이었습니다. 이를 통해 전 세계 어디서든 쉽게 참여하고 신뢰할 수 있게 하면서도, 개인의 프라이버시와 익명성을 보장하고, 이중 투표를 방지하고, 종단간 검증을 제공하며, 투표 내용의 무결성을 지키고, 어떠한 강압에도 저항할 수 있는 투표 시스템을 구축하려는 생각을 하였습니다.
비트코인은 중앙 집중화된 기관 없이 디지털 화폐의 본질적인 문제인 '이중 지불'을 해결하기 위해 탄생했습니다. 이와 유사하게, 펑크폴 투표 시스템은 탈중앙화된 환경에서 투표를 진행할 수 있으며, 그 구조는 비트코인의 구조와 많은 공통점을 가지고 있습니다.

🌈 비트코인은 디지털 화폐의 핵심 문제인 "이중 지불" 문제를 해결하려고 설계되었습니다. 이중 지불 문제는 디지털 정보의 복제가 쉽기 때문에 한 디지털 화폐를 여러 번 사용하려는 시도를 말합니다.

전통적인 온라인 결제 시스템에서는 중앙 집중화된 서드 파티 (예: 은행 또는 결제 처리 중앙 기관)가 모든 거래를 확인하여 이중 지불을 방지합니다. 그러나 이 방식은 중앙 기관의 중재가 필요하므로, 시스템이 그 기관에 의존하게 됩니다.

비트코인은 이런 중앙 집중화된 서드 파티 없이도 이중 지불을 방지할 수 있는 시스템을 제안합니다. 이는 전 세계적으로 분산된 노드들이 공동으로 거래의 유효성을 확인하고 합의를 통해 거래 내역을 블록체인에 기록함으로써 이루어집니다.

결과적으로 비트코인은,

  1. 이중 지불 문제를 해결: 분산된 네트워크가 거래의 유효성을 확인하므로 중앙 기관의 중재 없이도 이중 지불을 방지함.
  2. 금융 거래의 중앙화 및 중재를 제거: 사용자는 중앙 기관 없이 직접 거래할 수 있음.
  3. 전세계적인 접근성 제공: 은행 계좌나 특별한 인증 없이도 전 세계 어디에서나 비트코인을 사용할 수 있음.

이렇게 비트코인은 디지털 화폐의 이중 지불 문제를 해결함으로써 중앙 기관 없이도 안전하게 거래할 수 있는 시스템을 제공하게 되었습니다.


☕ 참고: 비트코인 백서 "Bitcoin: A Peer-to-Peer Electronic Cash System"
이 백서는 비트코인과 그 기반 기술인 블록체인의 주요 아이디어와 구현 방법을 설명하고 있습니다.

  • 개요: 전통적인 결제 시스템에서는 금융 기관의 중재가 필요하지만, 비트코인은 중앙 기관 없이도 송금과 거래를 할 수 있는 방법을 제시합니다.
  • 이중 지불 문제: 디지털 화폐의 주요 문제점 중 하나는 동일한 화폐를 두 번 사용할 수 있다는 것입니다. 비트코인은 분산된 네트워크를 통해 이 문제를 해결합니다.
  • 타임스탬프 서버: 모든 거래는 타임스탬프를 받아 연속적인 블록 체인에 추가됩니다. 이 체인은 이전 거래를 확인하여 이중 지불을 방지합니다.
  • PoW (작업 증명): 거래를 포함하는 블록을 생성하기 위해서는 컴퓨팅 파워를 사용해 복잡한 문제를 해결해야 합니다. 이것을 해결하는 노드는 새로운 블록을 체인에 추가하고, 보상을 받게 됩니다.
  • 네트워크: 가장 긴 체인을 가진 노드가 "정확한" 체인으로 간주되며, 그 체인에 거래가 포함되어야 합니다.
  • 보상 메커니즘: 블록을 성공적으로 체인에 추가하는 노드는 새로 만들어진 비트코인과 거래 수수료로 보상받습니다. 이 보상은 시간이 지남에 따라 감소하게 되어 있습니다.
  • 개인 정보 보호: 비록 모든 거래는 공개적으로 이루어지지만, 사용자의 실제 정보는 익명화되어 공개되지 않습니다.

비트코인 백서는 암호화 화폐와 블록체인 기술의 발전에 큰 기여를 하였고, 현재 많은 디지털 화폐와 블록체인 기반 프로젝트의 기초가 되고 있습니다.


펑크폴 투표 시스템은 Alice(유권자)가 Bob(후보)에게 비트코인을 보내는 것과 같습니다.

다만 암호화폐 대신, 유권자의 Wallet에서 원하는 후보의 Wallet으로 zk-PUNK-nft을 보내는 것입니다.

zk-PUNK-nft : 펑크폴에서 사용하는 ''로 영지식증명 기반 유권자의 기본 정보를 담은 대체 불가능한 토큰 Non-fungible token

  1. 특정 투표 스마트 컨트랙트에 후보의 Wallet이 만들어 집니다.

2.  유권자는 원하는 후보에게 자신의 zk-PUNK 토큰을 보냅니다.

3.  투표 스마트 컨트랙트가 유권자에게 참여 증명(리워드, 영수증)으로 PUNK token을 보냅니다.

4. 선거 결과는 후보의 Wallet에서 zk-PUNK 토큰 수에 의하여 결정됩니다.

5.  zk-PUNK 토큰의 정보를 분석해서 투표 결과를 디테일하게 알 수 있습니다.(성별, 나이..)  물론 영지식증명 NFT 이기 때문에 유권자 데이타는 익명화 되어 있습니다.

위에 구조로 PUNKPOLL 투표 스마트 컨트랙트는 다음과 같은 구조로 되어 있습니다.

  1. 투표 생성: 펑크폴 빌더에서 투표를 생성하고, 투표 제목, 설명, 옵션 등의 정보를 입력합니다.
  2. 유권자 등록: 투표 유권자를 등록(전화번호, 메신저 주소 등)합니다.  
  3. 투표 진행: 유권자는 zk-PUNK 토큰으로 인증한 뒤 투표를 진행하며, 투표한 내용은 zk블록체인에 기록됩니다. 또한 PUNK 토큰으로 리워드(영수증)을 받게 됩니다.
  4. 투표 결과 집계: 투표 마감 후, 유권자가 보낸 zk-PUNK 토큰을 후보자 별로 집계하고, 모든 참여자들에게 결과를 제공합니다.
  5. 결과 확인: 모든 유권자는 자신의 Wallet에서 투표 내용을 확인할 수 있고, 투표의 모든 과정 및 결과를 블록체인 및 ipfs를 통해서 확인할 수 있습니다.
좀 더 자세히 zk-PUNK-nft

📌 펑크폴 투표 시스템은 zk-PUNK(표)와  PUNK Token(보상)으로 운영됩니다.


펑크폴 투표 시스템의 기본 구조를 보여주는 데모:
사용자는 원하는 뮤지션에 투표한 후, 원한다면 다른 뮤지션에게 투표를 변경할 수 있습니다. 그러나 이는 이중 투표가 아니라, 최종적으로 선택된 뮤지션에게만 투표가 유효하게 됩니다. 이 시스템은 zk-PUNK(nft)를 이용한 투표 메커니즘을 통해 구현되었습니다. 이는 '영지식-인증된 사용자 정보-특정 투표 nft'의 메커니즘을 통해, 사용자는 여러 번 투표할 수 있지만, 마지막으로 선택된 후보에게만 표가 주어지는 방식입니다.
PunkPoll Voting Example with Tokens and Results

Vote for your favorite band

Vote: 1 zk-PUNK

펑크폴 투표 시스템 2.0
개인 프라이버시 보장과 투명하고 안전한 영지식증명 기반 블록체인 투표 시스템 입니다. 기존 투표 시스템의 문제 기존 투표 시스템은 소홀한 개인 프라이버시 보호,투명성 부족, 투표 과정 조작, 결과 조작과 같은 여러 가지 문제에 직면해 있습니다. 또한 현재 시스템은 중앙 집중식인 경우가 많습니다. 즉, 해킹 및 변조에 취약할 수 있는 소수의