Skip to main content

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

완전한 투표 시스템의 조건

첫째, 투표 시스템에서는 '신뢰성', '투명성', 그리고 '검열 저항성'이 핵심적인 요소입니다.

'신뢰성'은 유권자들이 자신의 투표가 정확하게 집계되었다는 확신을 가질 수 있게 해줍니다. 유권자는 자신의 투표가 올바르게 처리되었으며, 중복 없이 투표함에 포함되었음을 확인할 수 있어야 합니다. 그 다음으로 '투명성'은 투표 과정이 완전하고 일관성 있게 이루어져야 함을 의미합니다. '검열 저항성'은 중앙의 개입 없이 모든 유권자의 투표가 정확하게 집계되도록 보장하는 특성입니다.  이를 보장하기 위해, 투표의 모든 과정은 영지식증명 블록체인(zkBlockchain) 위에 구현된 스마트 컨트랙트로 투명하게 처리되어야 합니다. 이 세 가지 요소가 투표 시스템의 무결성을 확보하고, 유권자들의 신뢰를 얻기 위한 핵심 기준이 됩니다. (영지식증명 블록체인, 스마트컨트랙트)

검열 저항성(자유로운 정보 공유의 보장) Censorship resistance은 중앙 기관이나 권력자의 통제를 받지 않는 정보의 전달과 행동의 자유를 의미합니다. 이는 탈중앙화 투표 시스템에서 투표 결과나 투표 과정이 어떤 조직이나 단체에 의해 조작되거나 변경되는 것을 방지하는 핵심 요소입니다. 예를 들어, 권력자가 불리한 투표 결과를 삭제하거나 숨기려는 시도를 할 때, 탈중앙화 투표 시스템은 그러한 시도를 무력화 시킬 수 있습니다. 이는 특히 민주주의 체제에서 중요한 요소로, 국민들의 선택이 공정하게 반영될 수 있도록 보장해줍니다.

둘째, '유권자의 개인 정보 보호'와 '강압 저항성'입니다. 어떠한 경우에도 유권자의 개인정보는 안전하게 보호되어야 합니다.

이를 위해, 투표 시스템은 "Own My Data" 원칙을 가지고 있어야 합니다. 이것은 유권자의 정보를 오직 본인만이 소유하고 접근할 수 있도록 보장해야 함을 의미합니다. '강제 저항성'은 특정 당사자나 조직의 압력이나 강요로부터 시스템이 보호받는 특성을 의미합니다. 즉, 외부의 부당한 간섭이나 압력에도 투표 시스템은 그 기능과 목적을 온전히 수행할 수 있어야 합니다.이렇게 구현하면, 유권자의 투표 의사가 정확하게 반영되는 데 도움이 됩니다. 개인 정보의 보호를 통해, 유권자들은 자신의 의견을 공개적으로 드러내지 않고도 투표에 참여할 수 있게 되며, 이로 인해 익명성이 보장되어 투표에 대한 유권자들의 불안감을 줄일 수 있습니다. 또한 개인 정보 보호는 투표 시스템에 대한 신뢰성을 높이고, 투표 참여율을 증가시키는 데에도 기여합니다.. (zk-PUNK, 영지식증명 블록체인)

강압 저항성(선택의 자유와 보안성의 향상) Coercion resistance은 개인의 선택이나 의사가 외부 압박이나 강요로부터 보호받는 특성을 말합니다. 이는 투표 시스템에서 특히 중요한데, 투표자가 자신의 선택을 특정 당사자에게 알리지 않아도 되며, 그 결과로 인한 부정적인 영향을 받지 않도록 보장합니다. 이런 시스템은 투표자들이 보다 자유롭게 자신의 의사를 표현할 수 있게 만들며, 투표의 정직성과 공정성을 높입니다.

셋째, '쉬운 접근성'입니다. 투표 시스템은 언제 어디서나 누구나 쉽게 참여할 수 있도록 설계되어야 합니다.

이를 위해, 투표 방식은 사용자 친화적이고 접근이 용이해야 하며, 인터넷을 이용한 온라인 투표 혹은 메신저를 이용한 방식을 고려할 수 있습니다. 또한, 장애가 있는 유권자들을 포함한 모든 사람들이 참여할 수 있도록 보조 기술 및 도구를 제공하는 것도 고려해야 합니다.
접근이 어려운 투표 시스템은 평등한 선거를 보장하지 못하게 됩니다. 이는 일부 유권자들이 투표에 참여하지 못하거나 참여에 어려움을 겪게 되어 대표성이 왜곡될 수 있기 때문입니다. 쉬운 접근성을 보장함으로써, 모든 유권자들이 투표 과정에 참여할 수 있게 되어 더욱 공정하고 평등한 선거가 가능해집니다. 이를 통해 투표 결과가 전체 유권자들의 의견을 더 정확하게 반영하게 되며, 투표의 대표성이 향상됩니다. (메신저 인터페이스 등 참여자 환경에 맞는 다양한 UI)

넷째, '유권자와 투표 주최자가 언제든지 투표의 전 과정과 결과를 검증'할 수 있어야 합니다.

이를 통해 투표 과정의 투명성이 보장되며, 투표 결과에 대한 신뢰성이 강화됩니다. 투표 시스템은 유권자가 자신의 투표 내용을 검증할 수 있는 기능을 제공해야 합니다. 이를 통해 유권자는 자신의 투표가 정확하게 기록되었는지 확인할 수 있습니다. 또한, 전체 투표 결과를 쉽게 확인할 수 있는 방식으로 구현되어야 하며, 이를 위해 영지식증명, 블록체인 기술 및 IPFS(3) 등을 활용할 수 있습니다. 이러한 검증 기능은 투표 시스템의 투명성을 높이고, 유권자와 투표 주최자 모두에게 투표 과정에 대한 신뢰를 제공합니다. 이를 통해 투표 결과가 정확하게 반영되어 선거의 공정성과 대표성이 보장됩니다. (영지식증명 블록체인,IPFS, 검증 프로세스)

다섯째, '적절한 인센티브'를 제공함으로써 참여율을 높일 수 있어야 합니다.

인센티브를 제공하면 사람들이 투표에 참여할 동기를 부여받게 됩니다. 이로 인해 전체 투표 참여율이 증가하며, 대표성이 향상되고, 데이터 질 개선 효과가 있습니다. 즉. 인센티브를 제공하면 참여자들이 조금 더 시간을 들여서 투표나 여론조사에 응답할 가능성이 높아집니다. 또한 인센티브를 통해 소외된 또는 경제적으로 어려운 상황에 있는 사람들이 투표에 참여할 기회를 얻을 수 있습니다. (PUNK Token)

완전한 투표 시스템의 조건을 만족시키는 '펑크폴 투표 시스템'

분류번호

투표 시스템 조건

펑크폴 투표 시스템 

A.

신뢰성과 투명성

  • zk-PUNK(nft): 영지식 사용자 '표'  

  • zk-투표(nft): 영지식증명 투표 스마트 컨트랙트 

유권자의 개인정보보호

  • zk-PUNK(nft): 유권자 정보보호
    (Own my data)와 유권자 확인

B

쉬운 접근성

  • Messenger, 챗봇 Interface 

C

투표 검증과 결과분석 

  • 펑크폴 투표 검증 Process

  • 익명성을 보장하면서도 결과를 분석 할 수 있는 시스템 

D

적절한 인센티브

  • PUNK Token의 인센티브와 리워드   



A. '신뢰성, 투명성' 그리고 '개인정보 보호'

a. 펑크폴 투표 시스템이 영지식증명을 사용하는 이유

블록체인은 모든 정보를 공개하므로 투표 시스템에 사용되면 투명성과 견고한 신뢰성을 제공합니다. 하지만 이로 인해 생기는 문제는 투표 내용이 공개되어 어떤 유권자가 어떤 후보에 투표했는지 알 수 있다는 점입니다. 이는 비밀 투표 원칙을 위반하게 됩니다.

그래서 블록체인에 투표 정보를 저장할 때는 암호화 과정을 거치게 되는데, 이 경우 암호화된 투표 정보가 올바른지 확인하기 어렵습니다. 정보를 검증하려면 암호화를 해제해야 하는데, 이는 다시 비밀 투표 원칙에 위반됩니다.

이러한 문제를 해결하기 위해 펑크폴 투표 시스템은 영지식증명(zkp)을 사용합니다. 영지식증명은 암호화된 정보를 해제하지 않고도 그 정보의 정확성을 검증할 수 있는 암호화 알고리즘입니다. 이를 활용하면, 투표 정보의 보안성을 유지하면서도 정보가 올바른지 검증할 수 있습니다.

투표 과정에서는 유권자 인증, 투표 과정 인증, 투표 결과 인증 등의 정보가 암호화되고, 이 암호화된 정보와 함께 영지식증명(zk-SNARKs)이 블록체인에 저장됩니다. 이후 블록체인에 참여하는 노드들은 암호화된 정보를 해제하지 않고도 영지식증명을 통해 정보의 정확성을 검증할 수 있습니다. 따라서 영지식증명은 보안성을 유지하면서도 정보의 정확성을 검증하는 데 필수적인 역할을 하는 기술입니다.

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

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

기능 / 특징

설명

유권자 정보 보호

유권자 개인 정보가 철저히 보호됨 (개인정보보호)

유권자 확인

영지식증명 기술을 사용하여 유권자의 정당성을 확인함

투표 내용 비공개

투표 내용은 공개되지 않음. 유권자 프라이버시 보장(Own my data)

무결성 검증

영지식증명을 통해 투표 참여자들이 자신의 투표가 투표함에 포함되었는지, 두 번 투표하지 않았는지 등을 검증

완전성 보장

투표의 내용이 완전하고 일관되며 정확하게 시행되었음을 보장

투명성 보장

투표 참여 내용이 ipfs 등으로 시스템화 되어 누구나 투명하게 확인 가능

분산 시스템

다수의 참여자들이 참여하는 퍼블릭 블록체인 zk-Blockchain

보안성

미나 프로토콜의 zk-SNARKs 기술을 사용하여 블록체인의 무결성을 보호하고 51% 공격 방지

c. 투표 스마트컨트랙트

PUNKPOLL 투표 스마트 컨트랙트는 탈중앙화된 Trustless 시스템참고으로 다음과 같은 구조로 되어 있습니다.

  1. 투표 생성: 펑크폴 빌더에서 투표를 생성하고, 투표 내용, 조건 등의 정보를 입력합니다.
  2. 참여자 등록: 투표에 참여하는 유권자를 등록 합니다.
  3. 투표 진행: 유권자는 zk-PUNK(nft) 토큰으로 인증한 뒤 투표를 진행하며, 투표한 내용은 zk블록체인에 기록됩니다. 또한 투표 참여를 유도하기 위해 PUNK Token은 참여자에게 리워드로 제공됩니다. 동시에, 이 토큰은 투표 참여의 영수증 역할을 하여 사용자가 투표에 참여했다는 것을 확인하고 검증할 수 있는 수단이 됩니다.
  4. 투표 결과 집계: 투표 마감 후, 유권자가 보낸 zk-PUNK(nft) 토큰을 후보자 별로 집계하고, 모든 참여자들에게 결과를 제공합니다.
  5. 결과 확인: 모든 유권자는 자신의 Wallet에서 투표 내용을 확인할 수 있고, 투표의 모든 과정 및 결과를 블록체인 및 ipfs를 통해서 확인할 수 있습니다.
Trustless: 사람의 개입없이 오로지 블록체인 안에 스마트 컨트랙트로 운영되는 시스템, 사람의 트러스트를 전제하지 않으면서 믿을 수 있는 시스템을 말함

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

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

⏱ 스마트컨트랙트 Process

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

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

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

off-chain 역할: 투표 빌더에서 '특정 투표'와 유권자 정보 등 블록체인에 기록할 내용(tx)을 생성하고 이들 내용에 대한 영지식증명을 생성하는데 이때 미나 프로토콜에서는 이 트랜젝션들을 off-chain에서 검증하고 블록체인에 올리게 됩니다.

on-chain 역할:'특정 투표'가 스마트컨트랙트 구조로 블록체인에 등록(on-chain)되는데, 이때 zk-SNARKs 기술을 이용하여 블록체인의 보안성과 투명성이 강화되게 됩니다.

B. 투표 시스템의 '쉬운 접근성'

a. 평등선거의 원칙을 위한 인터페이스

투표의 평등성을 위하여 스마트폰 기반 메신저 뿐만 아니라 피쳐폰 및 오프라인으로 투표를 위하여 모바일 Pad 앱도 개발할 예정입니다.

순차적으로 우선 참여의 편의성을 위한 메신저(챗봇) 인터페이스로부터 시작하여, 투표 전용 앱, 온라인에 익숙하지 않은 유권자를 위한-오프라인에서 사용할 수 있는-패드 형태의 인터페이스, 시각 장애인을 위한 점자 인터페이스 등을 계획하고 있습니다.

b. 쉬운 접근성과 높은 응답률을 위한 인터페이스

아무리 중요한 투표나 좋은 여론조사도 쉬운 접근성과 높은 응답률이 보장되지 않는다면 좋은 투표 서비스가 될 수 없습니다. 전세계인이 가장 많이 사용하고 있는 커뮤니케이션 수단은 '무선 전화기'와 좀 더 진화한 '스마트폰'일것입니다. 스마트폰으로 전세계 사람들을 상대로 투표를 진행한다면, 전세계 인구의 약 48.5%참고가 사용할 수 있을 것입니다. 하지만 이는 스마트폰을 가지고 있는 사람들의 비율이고, 실제로 투표에 참여하는 사람들의 비율은 더 낮을 수 있습니다.

메신저를 이용한 인터페이스는 참여자의 접근성과 놀라운 응답율로 상호작용을 극대화 할 수 있습니다.

전세계 인구는 2022년 11월 15일 기준으로 세계 인구는 약 80.0억 명 추정, 전세계 인터넷 사용 현황 Internet World Stats - Usage and Population Statistics에 따르면 2020년 기준으로 전 세계 인터넷 사용자 수는 약 50억 9천 800만 명(전 세계 인구의 64.7%) 전세계 스마트폰 사용 인구는 2020년 기준으로 약 37억 8천 600만 명으로 (전 세계 인구의 48.5%) 이 중에서 안드로이드 스마트폰 사용자는 약 30억 2천 500만 명(80.4%), 아이폰 사용자는 약 6억 3천 900만 명(16.8%)

c. 챗봇 인터페이스

쉬운 접근성과 높은 응답률을 위한 챗봇 인터페이스참고

펑크폴 투표시스템이 Messenger 인터페이스를 선택한 이유는 참여자의 접근성과 놀라운 응답율로 상호 작용을 극대화 하여 실제적인 효과를 얻을 수 있는 구조이기 때문입니다.

  • 사용자 친화적인 UI/UX: 펑크폴 플랫폼은 사용자 경험을 최우선으로 두고 설계되었습니다. 디지털 플랫폼이라는 점에서 웹과 모바일 환경 모두에서 편리하게 사용할 수 있는 UI/UX를 제공하고자 합니다. 이는 사용자들이 투표, 여론조사 등에 쉽게 참여하고 결과를 확인할 수 있도록 하기 위한 것입니다.
  • 접근성 강화: 펑크폴은 전 세계 어디서든 누구나 이용할 수 있도록 접근성을 강화하였습니다. 인터넷 접속이 가능한 환경이라면 어떤 국가에 거주하는지, 어떤 사회적 배경을 가지고 있는지와 관계없이 펑크폴 플랫폼에서 사용성이 가장 많은 Messenger로 투표 등에 참여할 수 있도록 설계 했습니다.
  • WhatsApp 같은 메신저들의 엔드 투 엔드 암호화(End-to-End Encryption, E2EE) 방법으로 메시지의 보안 위에 영지식증명으로 되어 있는 유권자의 브라우즈(zkApps참고) 에서 처리 합니다.
'Voting Assistant Chatbot for Increasing Voter Turnout at Local Elections: An Exploratory Study'와 '챗봇 기반 인터페이스의 상호작용성과 사용 모드가 사용자 경험에 미치는 영향', '챗봇과 온라인 설문 조사의 설문문항에 따른 응답 품질 비교 분석'에서는 실제 사용 후 응답률과 응답품질에 대한 내용을 참고 함

Mina’s zkApps: Mina의 zkApps는 제로 지식(zero knowledge)을 활용한 스마트 컨트랙트입니다. 다른 스마트 컨트랙트 언어와 같이 튜링 완전(Turing complete)이지만, 원래 제로 지식 기능을 가지고 있기 때문에 프라이버시와 오프체인 계산과 같은 추가적인 기능을 제공합니다.


C.투표 검증 PROCESS와 결과

👉 유권자와 주최자 모두가 투명하게 검증할 수 있는 시스템

모든 참여자들이 관리자가 되어 모든 투표.여론조사 과정을 모니터링하고 펑크폴 뷰어참고를 통해서 각 단계와 결과를 검증할 수 있습니다.

투표 혹은 여론조사 후, 익명성을 전제로 투표 내용과 나의 투표 참여 내용, 다른 사람들이 투표 참여 내용, 투표 결과 등을 확인할 수 있는 뷰어


👉 투표 결과 분석

zk-PUNK(nft)를 이용한 투표 결과 분석은 개인정보를 적극적으로 보호하면서도, 유의미한 통계 데이터를 얻는 데 도움을 줍니다. 그런데, 적은 수의 유권자 일 때 혹은 과도한 데이터 세분화 문제로 결과 분석 할 때, 익명성을 침해할 수 있기 때문에, 이를 관리하는 것은 필수적입니다.

zk-PUNK(nft) 투표 시스템은 통계적 임계값참고 및 k-익명성참고과 같은 통계 분석 방법을 활용하여, 투표 결과의 유효성과 신뢰성을 분석합니다. 통계적 임계값은 투표 결과가 통계적으로 유효한지 판단하는 기준을 제공하며, k-익명성은 개인정보 보호를 위한 방법으로, 유권자의 정보가 최소 k명의 유권자와 묶여서 표시되는 방법을 말합니다.

이러한 통계적 방법들을 활용하면, 투표의 유효성을 통계적으로 분석하고, 결과의 정확성을 높이는 동시에 유권자의 개인정보를 보호할 수 있습니다. 이 방법은 블록체인 기반 투표 시스템에서 투표의 투명성과 정확성을 보장하면서도, 개인정보 보호의 중요성을 지키는 데 중요합니다.

예를 들어서, '유권자A-28세-남성-뉴욕','유권자B-35세-여성-서울','유권자C-42세-남성-런던'등 이렇게 특정할 수 있는 조건을 가진 유권자가 10명 미만 일 때, 익명성을 보장하며 통계적 의미를 유지하는 결과를 발표할 수 있도록 하려는 것인데,

PunkPoll 투표 시스템은 통계적 임계값과 k-익명성 방식을 사용하여 유권자 정보의 익명성을 보장하면서도 유의미한 통계 데이터를 제공합니다.

통계적 임계값은 특정 그룹의 유권자 수가 임계값(예를 들어, 10명) 이상일 때만 그룹의 투표 결과를 공개하는 방식입니다. 이 방식은 '20대 남성 1표', '30대 여성 1표'와 같은 특정한 정보가 10명 이상의 유권자가 있는 그룹에서만 공개되도록 하여, 소수의 유권자의 투표 선호도가 노출되는 것을 방지합니다.

한편, k-익명성은 각 유권자의 정보가 최소한 k-1명의 다른 유권자 정보와 일치하도록 하는 방식입니다. 이 방식은 유권자의 연령, 성별, 지역 등의 정보를 일반화하거나 그룹화하여 개별 유권자의 투표 선호도가 노출되는 것을 방지합니다. 예를 들어, k를 5로 설정하면, 각 유권자의 정보는 최소한 4명의 다른 유권자 정보와 일치하게 됩니다.

이 두 방법은 상황과 목표에 따라 적용됩니다. 투표 참여자의 수가 적은 경우에는 통계적 임계값을 사용하여 투표 결과를 공개하는 것이 적합하며, 반대로 응답자들이 충분히 많은 경우에는 k-익명성을 활용하여 개별 유권자의 투표 선호도를 보호하는 것이 적합합니다.

또한, 통계적 임계값과 k-익명성과 같은 통계적 방법을 활용하여 투표 결과의 신뢰성과 정확성을 분석하는 동시에 개인정보를 보호하는 방법을 제시하였습니다. 이를 통해 투표 결과에 대한 신뢰성을 높이고, 개인정보 보호와 투명성 사이의 균형을 맞출 수 있습니다.

Statistical Thresholds (통계적 임계값): 이는 소수 그룹의 데이터를 공개하지 않는 방법입니다. 이는 주로 그룹의 크기가 특정 임계값 이상일 때만 데이터를 공개하는 방법으로 구현됩니다. 데이터 그룹의 크기 n이 임계값 T보다 크거나 같은 경우에만 데이터가 공개됩니다.: n >= T.

k-anonymity (k-익명성): 이는 각 개별 데이터 포인트가 최소 k-1개의 다른 데이터 포인트와 동일하게 보이도록 하는 방법입니다. 이는 일반적으로 데이터의 일부 속성을 일반화하거나 그룹화하는 방법으로 구현됩니다. 수학적으로, 각 데이터 포인트는 데이터셋에서 최소 k개의 동일한 튜플이 있는 것을 보장합니다.


적절한 인센티브

유권자는 투표에 참여하고 Punk Token으로 리워드를 받게 됩니다. 자세한 내용은 PUNK Token에 있습니다.

👉 다음 페이지