펑크폴 투표 시스템의 기본 구조
![펑크폴 투표 시스템의 기본 구조](/content/images/size/w2000/2023/03/Punkpoll-Vote-Complete-Vtructure.png)
펑크폴 투표 시스템의 기본 구조는 비트코인을 송금 하는 것과 같은 단순한(Complete structure) 구조입니다.
Alice가 Bob에게 비트코인을 보냅니다.
펑크폴이 투표 시스템의 설계를 시작할 때, 비트 코인의 구조와 많은 유사점이 있음을 발견했습니다. 👇 여기를 누르세요
이러한 구조를 통해 '탈중앙화 투표 시스템'의 구현이 가능할 것이라고 판단했습니다. 우리의 목표는 중앙 기관의 개입 없이 블록체인에서 독립적으로 작동하는 시스템을 만드는 것이었습니다. 이를 통해 전 세계 어디서든 쉽게 참여하고 신뢰할 수 있게 하면서도, 개인의 프라이버시와 익명성을 보장하고, 이중 투표를 방지하고, 종단간 검증을 제공하며, 투표 내용의 무결성을 지키고, 어떠한 강압에도 저항할 수 있는 투표 시스템을 구축하려는 생각을 하였습니다.
비트코인은 중앙 집중화된 기관 없이 디지털 화폐의 본질적인 문제인 '이중 지불'을 해결하기 위해 탄생했습니다. 이와 유사하게, 펑크폴 투표 시스템은 탈중앙화된 환경에서 투표를 진행할 수 있으며, 그 구조는 비트코인의 구조와 많은 공통점을 가지고 있습니다.
🌈 비트코인은 디지털 화폐의 핵심 문제인 "이중 지불" 문제를 해결하려고 설계되었습니다. 이중 지불 문제는 디지털 정보의 복제가 쉽기 때문에 한 디지털 화폐를 여러 번 사용하려는 시도를 말합니다.
전통적인 온라인 결제 시스템에서는 중앙 집중화된 서드 파티 (예: 은행 또는 결제 처리 중앙 기관)가 모든 거래를 확인하여 이중 지불을 방지합니다. 그러나 이 방식은 중앙 기관의 중재가 필요하므로, 시스템이 그 기관에 의존하게 됩니다.
비트코인은 이런 중앙 집중화된 서드 파티 없이도 이중 지불을 방지할 수 있는 시스템을 제안합니다. 이는 전 세계적으로 분산된 노드들이 공동으로 거래의 유효성을 확인하고 합의를 통해 거래 내역을 블록체인에 기록함으로써 이루어집니다.
결과적으로 비트코인은,
- 이중 지불 문제를 해결: 분산된 네트워크가 거래의 유효성을 확인하므로 중앙 기관의 중재 없이도 이중 지불을 방지함.
- 금융 거래의 중앙화 및 중재를 제거: 사용자는 중앙 기관 없이 직접 거래할 수 있음.
- 전세계적인 접근성 제공: 은행 계좌나 특별한 인증 없이도 전 세계 어디에서나 비트코인을 사용할 수 있음.
이렇게 비트코인은 디지털 화폐의 이중 지불 문제를 해결함으로써 중앙 기관 없이도 안전하게 거래할 수 있는 시스템을 제공하게 되었습니다.
☕ 참고: 비트코인 백서 "Bitcoin: A Peer-to-Peer Electronic Cash System"
이 백서는 비트코인과 그 기반 기술인 블록체인의 주요 아이디어와 구현 방법을 설명하고 있습니다.
- 개요: 전통적인 결제 시스템에서는 금융 기관의 중재가 필요하지만, 비트코인은 중앙 기관 없이도 송금과 거래를 할 수 있는 방법을 제시합니다.
- 이중 지불 문제: 디지털 화폐의 주요 문제점 중 하나는 동일한 화폐를 두 번 사용할 수 있다는 것입니다. 비트코인은 분산된 네트워크를 통해 이 문제를 해결합니다.
- 타임스탬프 서버: 모든 거래는 타임스탬프를 받아 연속적인 블록 체인에 추가됩니다. 이 체인은 이전 거래를 확인하여 이중 지불을 방지합니다.
- PoW (작업 증명): 거래를 포함하는 블록을 생성하기 위해서는 컴퓨팅 파워를 사용해 복잡한 문제를 해결해야 합니다. 이것을 해결하는 노드는 새로운 블록을 체인에 추가하고, 보상을 받게 됩니다.
- 네트워크: 가장 긴 체인을 가진 노드가 "정확한" 체인으로 간주되며, 그 체인에 거래가 포함되어야 합니다.
- 보상 메커니즘: 블록을 성공적으로 체인에 추가하는 노드는 새로 만들어진 비트코인과 거래 수수료로 보상받습니다. 이 보상은 시간이 지남에 따라 감소하게 되어 있습니다.
- 개인 정보 보호: 비록 모든 거래는 공개적으로 이루어지지만, 사용자의 실제 정보는 익명화되어 공개되지 않습니다.
비트코인 백서는 암호화 화폐와 블록체인 기술의 발전에 큰 기여를 하였고, 현재 많은 디지털 화폐와 블록체인 기반 프로젝트의 기초가 되고 있습니다.
펑크폴 투표 시스템은 Alice(유권자)가 Bob(후보)에게 비트코인을 보내는 것과 같습니다.
다만 암호화폐 대신, 유권자의 Wallet에서 원하는 후보의 Wallet으로 zk-PUNK-nft을 보내는 것입니다.
zk-PUNK-nft : 펑크폴에서 사용하는 '표'로 영지식증명 기반 유권자의 기본 정보를 담은 대체 불가능한 토큰 Non-fungible token
- 특정 투표 스마트 컨트랙트에 후보의 Wallet이 만들어 집니다.
2. 유권자는 원하는 후보에게 자신의 zk-PUNK 토큰을 보냅니다.
3. 투표 스마트 컨트랙트가 유권자에게 참여 증명(리워드, 영수증)으로 PUNK token을 보냅니다.
4. 선거 결과는 후보의 Wallet에서 zk-PUNK 토큰 수에 의하여 결정됩니다.
5. zk-PUNK 토큰의 정보를 분석해서 투표 결과를 디테일하게 알 수 있습니다.(성별, 나이..) 물론 영지식증명 NFT 이기 때문에 유권자 데이타는 익명화 되어 있습니다.
위에 구조로 PUNKPOLL 투표 스마트 컨트랙트는 다음과 같은 구조로 되어 있습니다.
- 투표 생성: 펑크폴 빌더에서 투표를 생성하고, 투표 제목, 설명, 옵션 등의 정보를 입력합니다.
- 유권자 등록: 투표 유권자를 등록(전화번호, 메신저 주소 등)합니다.
- 투표 진행: 유권자는 zk-PUNK 토큰으로 인증한 뒤 투표를 진행하며, 투표한 내용은 zk블록체인에 기록됩니다. 또한 PUNK 토큰으로 리워드(영수증)을 받게 됩니다.
- 투표 결과 집계: 투표 마감 후, 유권자가 보낸 zk-PUNK 토큰을 후보자 별로 집계하고, 모든 참여자들에게 결과를 제공합니다.
- 결과 확인: 모든 유권자는 자신의 Wallet에서 투표 내용을 확인할 수 있고, 투표의 모든 과정 및 결과를 블록체인 및 ipfs를 통해서 확인할 수 있습니다.
📌 펑크폴 투표 시스템은 zk-PUNK(표)와 PUNK Token(보상)으로 운영됩니다.
펑크폴 투표 시스템의 기본 구조를 보여주는 데모:
사용자는 원하는 뮤지션에 투표한 후, 원한다면 다른 뮤지션에게 투표를 변경할 수 있습니다. 그러나 이는 이중 투표가 아니라, 최종적으로 선택된 뮤지션에게만 투표가 유효하게 됩니다. 이 시스템은 zk-PUNK(nft)를 이용한 투표 메커니즘을 통해 구현되었습니다. 이는 '영지식-인증된 사용자 정보-특정 투표 nft'의 메커니즘을 통해, 사용자는 여러 번 투표할 수 있지만, 마지막으로 선택된 후보에게만 표가 주어지는 방식입니다.
Vote for your favorite band
Vote: 1 zk-PUNK
![](https://www.punkpoll.com/content/images/2023/03/WordPress-Image.jpg)