펑크폴 투표 시스템 2.0

펑크폴 투표 시스템 2.0

펑크폴 투표 시스템은 개인 프라이버시 보장과 투명하고 안전한 영지식증명 기반 블록체인 투표 시스템 입니다.Update2023년1월

기존 투표 시스템의 문제

기존 투표 시스템은 소홀한 개인 프라이버시 보호,투명성 부족, 투표 과정 조작, 결과 조작과 같은 여러 가지 문제에 직면해 있습니다. 또한 현재 시스템은 중앙 집중식인 경우가 많습니다. 즉, 해킹 및 변조에 취약할 수 있는 소수의 강력한 엔터티에 의해 제어됩니다. 이러한 문제를 해결하려면 투표 개인 정보 보호, 엔드 투 엔드 검증 가능성, 무결성 및 투명성을 보장하는 새롭고 안전하며 투명한 투표 시스템이 필요합니다.

펑크폴 투표 시스템의 원칙

  • 어떠한 경우에도 유권자의 프라이버시가 보호되어야 합니다.
  • 언제 어디서나 쉽게 투표 할 수 있어야 합니다.
  • 유권자 인증, 투표, 개표 결과까지 모든 과정을 객관적으로 검증 할 수 있어야 하고 무결성과 투명성을 보장해야 합니다. 중립성과 정당성을 확보할 수 있는 탈중앙화된 Trustless 시스템(1)이 되어야 합니다.
(1)Trustless: 사람의 개입없이 오로지 블록체인 안에 스마트 컨트랙트로 운영되는 시스템, 사람의 트러스트를 전제하지 않으면서 믿을 수 있는 시스템을 말함

펑크폴 투표 시스템 기술 개요

PUNKPOLL 투표 시스템은 유권자의 개인 정보를 보호하기 위해 영지식증명(ZKPs)을 채택하여 유권자가 선호도나 신원과 같은 민감한 정보를 공개하지 않고 유효한 투표를 했음을 증명할 수 있도록 합니다. 투표 결과는 암호화되어 블록체인에 저장되어 투명성, 보안 및 신뢰성을 보장합니다. 또한 카카오톡, 왓츠앱(WhatsApp)과 같은 인기 메신저 어플리케이션을 통해 유권자들이 투표 과정에 참여할 수 있도록 하여 사용자 친화적이고 편리하게 설계되었습니다. 친숙한 메신저 앱을 사용하여 유권자는 복잡한 인증 프로세스의 번거로움 없이 쉽게 신원을 인증하고 투표할 수 있습니다. 이를 위하여 영지식증명(zk-SNARKs)과 스마트 컨트랙트 기술을 사용하여 투표의 보안과 프라이버시를 보장합니다.

특징 및 기능

  1. 펑크폴 투표 시스템은 우리가 평소에 사용하는 메신저를 유저 인터페이스로 하여 접근성을 극대화 했고,
  2. 유권자의 자격 확인 및 투표는 유권자의 기본정보와 자격을 담고 있는 'zk-PUNK- nft'(2)로 처리하고 또한 'zk-PUNK-nft'는 유권자의 정보가 공개되지 않으면서도 '투표' 하고 '투표 결과'를 분석하는데 사용하도록 설계되어 있습니다.
  3. 특정 투표를 위하여 '고유한 투표 NFT'를 발행하여 투표의 고유하고 검증 가능한 기록을 생성하고 IPFS를 사용하여 데이터를 안전하게 저장하고 가용성을 보장합니다.
  4. 또한 투표 후에 유권자에게 PUNK Token(3)을 보내 '투표 확인과 보상'을 하도록 설계 되어 있습니다.
  5. 투표 시스템은 토큰을 보내고 받는 구조로 단순하지만 완전한 구조로 설계되어 있습니다.

(2)zk-PUNK-nft : 영지식증명 기반 유권자의 기본 정보를 담은 Non-fungible token
(3)PUNK Token : 투표 주최자, 유권자등 리워드 및 비용 등을 처리하기 위한 유틸리티 Token
*펑크폴 토큰

영지식증명 기반 블록체인으로서 특징 및 기능

기능/특징 설명
유권자 정보 보호 유권자 개인 정보가 철저히 보호됨
유권자 확인 영지식증명 기술을 사용하여 유권자의 정당성을 확인함
투표 내용 비공개 투표 내용은 공개되지 않음. 유권자 프라이버시 보장
무결성 검증 영지식증명을 통해 투표 참여자들이 자신의 투표가 투표함에 포함되었는지, 두 번 투표하지 않았는지 등을 검증
완전성 보장 투표의 내용이 완전하고 일관되며 정확하게 시행되었음을 보장
투명성 보장 투표 참여 내용이 ipfs 등으로 시스템화 되어 누구나 투명하게 확인 가능
분산 시스템 다수의 참여자들이 참여하는 퍼블릭 블록체인 zkBlockchain
보안성 미나 프로토콜의 zk-SNARKs 기술을 사용하여 블록체인의 무결성을 보호하고 51% 공격 방지

"영지식 증명(zk-SNARKs) 기반 블록체인 투표시스템"은,
블록체인은 누구나 정보를 확인할 수 있는 장점이 있습니다. 하지만 블록체인에 올리는 정보는 중요한 정보일 경우 암호화되어 있습니다. 그렇기 때문에 보안을 위해 암호화된 정보를 블록체인에 저장할 때, 정보가 맞는지 검증하는 방법이 필요합니다. 이때 사용되는 것이 영지식 증명(zk-SNARKs)입니다. 영지식 증명은 특정한 정보(예: 투표 내용)가 맞다는 것을 증명할 때 사용됩니다. 이 방법을 사용하면 암호화된 정보를 열어보지 않고도, 정보가 맞는지 검증할 수 있습니다.예를 들어, 투표 시스템에서는 투표한 내용을 암호화한 후, 영지식 증명을 함께 블록체인에 저장합니다. 이때 블록체인에 참여한 노드들은 암호화된 정보를 열어보지 않아도, 영지식 증명을 통해 정보가 맞는지 검증할 수 있습니다.즉, 영지식 증명은 보안성을 유지하면서도, 정보가 맞는지 검증하는 기술로서 블록체인에서 중요한 역할을 합니다.

* 영지식증명 기반 블록체인: MINA PROTOCOL

스마트컨트랙트 Process

① 펑크폴 빌더(off-chain1) 에서 'A 투표'를 제작하여, 블록체인(on-chain)에 등록
스마트컨트랙트에 등록(블록체인)하면 주최자 관여 없이 조건에 맞춰 운영됩니다.
② 참여자는 메신저를 통해서 펑크폴 채널에서 'A 투표'에 참여
③ 'A 투표'의 스마트컨트랙트에서 참여자가 유권자인지를 zk-PUNK-nft로 확인
④ 투표에 참여하고 나면 PUNK Token을 리워드로 받게 되고
⑤ 리워드 후 나머지 PUNK Token을 주최자의 wallet으로 보내어 정산
⑥ 투표 기간이 완료되면 'A 투표' 개표
⑦ 투표 결과 오픈 & 결과 분석 (zk-PUNK-nft)

이 모든 과정(투표 내용, 유권자, 유권자 리스트, 유권자의 투표 내역등)은 모두 영지식증명으로 증명되고, 유권자 모두는 자신의 참여 내용을 비롯한 모든 과정이 투명하면서도 검증 가능한 구조로 되어 있습니다.

투표 시스템이 스마트컨트랙트화 되어야 하는 이유

  • 투명성: 스마트컨트랙트는 블록체인에 기록되며, 블록체인의 특성상 누구나 데이터(투표과정과 결과 등)를 확인할 수 있습니다.
  • 신뢰성: 스마트컨트랙트는 중앙화된 서버가 아닌 분산화된 블록체인 네트워크 상에서 실행되므로, 개별 참가자나 조직이 데이터를 조작하거나 변경하기 어렵습니다.
  • 보안성: 스마트컨트랙트를 사용하면 투표 과정에서 발생할 수 있는 보안 취약점을 줄일 수 있습니다. 블록체인은 암호화 기술을 사용하여 데이터를 보호하므로, 공격자가 투표 데이터를 해킹하거나 조작하기 어렵습니다.
  • 자동성: 스마트컨트랙트는 코드로 작성된 계약으로, 특정 조건이 충족되면 자동으로 실행됩니다. 이를 통해 투표 과정에서 발생할 수 있는 인간의 실수나 부정행위를 방지하고, 투표 진행 및 집계 과정을 자동화할 수 있습니다.
  • 비용 절감: 스마트컨트랙트를 사용한 투표 시스템은 중앙화된 서버를 사용하지 않기 때문에 서버 유지 비용을 절감할 수 있습니다. 또한, 자동화되는 과정으로 인해 인력 비용도 절감할 수 있습니다.
  • 개인정보 보호: 스마트컨트랙트를 사용한 투표 시스템에서는 익명성을 보장하기 위해 사용자 인증 과정에서 암호화 및 익명화 기술을 사용할 수 있습니다. 특히 영지식증명 기반 투표 스마트컨트랙트인 경우 개인정보와 투표 내용은 철저히 보호됩니다. 

영지식증명 블록체인 기반 펑크폴 투표 시스템은,

  • 개인의 프라이버시가 보호되면서, 정당한 유권자인지를 확인하고 투표 내용이 공개되지 않으면서(Ballot privacy)
  • 유권자의 투표가 투표함에 포함되었다는 것과 두 번 투표하지 않았다는 것, 정확하게 집계되었다는 것을 검증하고(End-to-end verifiability)
  • 투표의 모든 내용이 완전하게 진행되었다는 것을 보장하고(Integrity)
  • 투표 참여 내용을 누구나 투명하게 검증할 수 있도록 시스템화 되어 있습니다(Transparency)

(1)블록체인의 off-chain과 on-chain의 역할

  • off-chain 역할: 투표 빌더에서 '특정 투표'와 유권자 정보 등 블록체인에 기록할 내용(tx)을 생성하고 이들 내용에 대한 영지식증명을 생성하는데 이때 미나 프로토콜에서는 이 트랜젝션들을 off-chain에서 검증하고 블록체인에 올리게 됩니다.
  • on-chain 역할:'특정 투표'가 스마트컨트랙트 구조로 블록체인에 등록(on-chain)되는데, 이때 zk-SNARKs 기술을 이용하여 블록체인의 보안성과 투명성이 강화하게 됩니다.
펑크폴 투표 시스템의 기본 구조
Vote for your favorite band Token balance: 10 PUNK Coldplay Green Day BTS Vote (Costs 1 PUNK)

👇 이 '펑크폴 투표2.0'은 펑크폴 Platform의 근간을 이루는 시스템 (update2023년1월)

펑크폴 Platform 백서 목차

  1. 나의 거버넌스
  2. 펑크폴 Platform
  3. 펑크폴 Architecture
  4. 펑크폴에 근간을 이루는 Solutions(투표.설문.여론조사 시스템)
  5. 펑크폴 생태계를 위한 경제 구조
  6. 로드맵