목차
1. 블록체인 투표 도입의 필요성
2. 크립토 투표 방식, 거버넌스란?
3. 블록체인 투표 방법
4. 블록체인 투표의 문제점
5. 영지식 증명(ZKP)
요약
블록체인을 활용한 온라인 투표 시스템은 투명성과 안전성을 높이며, 투표의 무결성을 보장하고 부정행위를 방지할 수 있다. 더불어 영지식 증명 기술을 활용하면 온라인 투표에서도 비밀성을 유지할 수 있다.
선거를 치를 때마다 투표 결과에 대한 불신이 깊어지고 있다. 유튜브와 SNS에서 자극적인 기사들이 쉽게 전달되는 까닭도 있지만 근본적인 이유는 투표 결과에 대해 사람들이 신뢰하지 않는다는 점이다. 개표를 눈앞에서 확인하는 것이 아니다 보니 기대한 결과가 나오지 않았을 때에는 쉽게 부정해버리기 때문이다. 하지만 투표 시스템의 문제도 분명 존재한다.
블록체인 기술은 투표와 개표 과정에서 발생하는 여러 문제를 해결할 수 있는 강력한 도구다. 블록체인은 투명성과 불변성을 제공하여 투표 과정의 신뢰성과 투명성을 높일 수 있기 때문이다. 게다가 온라인 투표 시스템을 통해 더 많은 사람들이 투표에 참여할 수 있으며, 투표 과정에 대한 감독과 모니터링도 간편해진다. 무엇보다도 굳이 긴 줄을 서가며 투표장에 가지 않아도 투표가 가능하다.
1. 블록체인 투표 도입의 필요성
블록체인 투표 시스템이 필요한 이유는 3가지가 있다.
첫 번째 이유는 기존 투표 시스템이 보안에 취약하기 때문이다. 작년 지난 2023년 10월 국정원과 한국인터넷진흥원이 실시한 보안 점검에서 선거관리위원회(이하 선관위)의 투표 시스템은 해킹에 취약한 것으로 밝혀졌다. 해당 보안점검으로 외부 해킹으로 투표뿐만 아니라 개표까지 조작할 수 있는 것으로 나타나 충격을 줬다. 이후 선관위는 총선을 앞두고 보안 시스템을 강화했지만 거센 비난을 피할 수는 없었다.
https://www.yna.co.kr/view/AKR20231010052900504
일본의 경우 2017년 국회의원 총선거에서 선관위에서 투표함을 분실하자 백지 투표용지로 조작하려는 시도가 있었다. 실제 투표함이 뒤늦게 발견되자 투표함을 태워버렸지만 몇 개월 뒤 내부 고발에 의해 백지 투표용지가 세상에 알려졌다.
두 번째는 전 세계적으로 투표 결과를 받아들이지 못해 발생하는 사회 문제들이 계속된다는 점이다. 2021년, 미국에서는 시위대가 선거 결과를 인정하지 않고 미의사당에 진입했으며 2023년 1월에는 브라질 시위대가 대통령 궁에 난입하기도 했다. 사람들이 투표 결과를 인정하지 않는 이유는 조작이 가능하다는 강력한 의구심을 가지고 있기 때문이다.
세 번째, 현장 투표를 진행하는 데 막대한 비용이 발생하기 때문이다. 투표를 진행하는데 국가가 지불하는 금액이 3,000~8,000억에 달한다. 만약 현장 투표가 아니라 온라인 투표로 전환시킬 수 있다면 상당한 금액을 절감시킬 수 있다.
이런 이유들로 지금까지 여러 스타트업들이 블록체인을 활용한 투표를 실제 선거에 도입하기 위해 노력하고 있다. 대표적인 기업으로는 국내 스타트업 ‘지크립토’가 있다. ‘지크립토’는 CES (세계 최대 소비자가전박람회)에서 블록체인 투표 기술로 2023, 2024 2차례 최고혁신상을 받기도 했다.
2. 크립토 투표 방식, 거버넌스란?
그렇다면 블록체인 기술을 어떻게 투표에 활용할 수 있는 것일까?
이미 여러 블록체인 서비스들은 블록체인 기술을 활용해 투표를 진행하고 있다. 이를 ‘거버넌스(governance)’라고 하며 서비스 혹은 재단의 주요 안건을 결정하는데 블록체인 투표 방식을 이용하고 있다.
투표에 참여하기 위해서는 해당 서비스 혹은 재단에서 발행한 코인을 보유하고 있어야 투표권을 얻을 수 있다. 코인을 보유하기만 해도 투표권을 얻을 수 있는 곳이 있고 특정 코인을 소모해야지만 투표권을 얻을 수 있는 곳도 있다. 혹은 특정 코인을 스테이킹(예치)하면 거버넌스에 참여할 수 있는 거버넌스 토큰을 예치자에게 제공하는 서비스들도 쉽게 찾아볼 수 있다.
3. 블록체인 투표 방법
중앙선거를 블록체인으로 진행하기 위해서도 역시나 토큰 발행이 필요하다. 유권자 수만큼 토큰을 발행해 투표용지처럼 사용하는 방식이다. 투표 과정을 정리하면 아래와 같다.
1. 유권자 수만큼 토큰 발행
2. 발행한 토큰을 각각의 유권자들의 지갑 주소로 지급
3. 토큰을 후보의 지갑 주소에 전송
4. 후보자들의 지갑주소에 있는 토큰 잔액 비교
5. 당선
유권자에게 지급된 각각의 토큰은 후보자들에게 투표하는 역할을 한다. 유권자가 후보자에게 토큰을 전송하는 과정은 실질적인 투표 과정과 동일하다. 이를 통해 유권자는 자신이 지지하는 후보자에게 투표할 수 있다. 유권자(From)가 후보자(To)에게 표(토큰)를 전송했기 때문에 모든 표는 블록체인에 저장된다.
누구라도 개표 방송을 기다릴 필요 없이 블록체인을 통해 실시간으로 투표를 집계할 수 있다. 후보자들의 지갑 주소의 토큰 잔액을 실시간으로 비교하여 누가 당선되었는지 확인할 수 있기 때문이다. 이는 블록체인 기술의 특성으로 인해 위변조가 거의 불가능하다는 장점을 갖고 있다. 투표 결과를 조작하려면 블록체인 네트워크 상에서 투표에 사용된 토큰의 수를 조작해야 하기 때문에 블록체인 투표는 매우 안전하고 신뢰할 수 있다.
2017년 일본에서 발생했던 투표함 분실도 걱정할 필요 없다. 블록체인 기술을 통해 데이터가 분산 원장에 기록되기 때문에 투표 과정에 대한 모든 정보가 안전하게 저장된다. 따라서 투표 결과의 안전성과 신뢰성이 보장된다.
4. 블록체인 투표의 문제점
블록체인 투표 방식도 완벽하지는 않다. 블록체인 투표의 문제점은 크게 2가지가 있다.
첫 번째는 본인이 직접 투표했다는 사실을 증명하기 어렵다는 점이다. 현장에서는 신분증과 실제 얼굴을 대조해서 본인이 투표하는 것을 감시할 수 있다고 하지만 만약 투표하기 직전에 핸드폰이나 기타 디바이스를 타인에게 건네주기라도 한다면 직접선거라는 선거 원칙에 위배된다.
이러한 문제를 해결하기 위해 얼굴 인식 기술, 생체 인식 기술 등과 신분증 인식, ARS(전화 인증 시스템) 인증 등을 활용하여 사용자가 자신의 디바이스를 사용하고 있는지를 인증할 수 있다. 이를 통해 본인 확인 절차를 보다 강화한다면 해당 문제점을 해결할 수 있다.
두 번째는 선거 참여자들의 신원확인이 불가능하다는 점이다. ‘0 xs12…mh15’라는 지갑 주소만으로는 유권자의 신원을 확인할 수 없다. 투표권이 있는 유권자인지도 확인이 불가능하다. 그렇다고 이 지갑 주소가 투표권을 가지고 있는 특정인이라고 밝혔을 때에는 비밀선거라는 선거 원칙에 위배된다. 해당 지갑 주소로 참여했던 모든 투표 내역들이 공개되기 때문이다.
5. 영지식 증명(ZKP)
이런 문제점을 해결힐 수 있는 것이 영지식 증명이라는 기술이다. 영지식 증명(Zero Knowledge Proof, ZKP)은 어떤 정보가 맞음을 증명할 수 있지만 그 정보 자체를 공개하지 않는 증명 방법이다. 이 기술을 이용해 유권자들이 전송한 표들을 암호화한다. 누구에게 표를 던졌는지 알 수 없게 하는 것이다.
이런 구조라면 중앙 정부에서 유권자에게 지갑주소를 만들어주고 토큰을 지급하더라도 특정 유권자가 어떤 후보자에게 토큰을 전송했는지 알 수 없다. 비밀투표도 가능해진다. 이렇게 되면 후보자들의 득표수를 실시간으로 모니터링할 수 있다.
이처럼 블록체인은 공공 투표 서비스에서 투명성과 안전성을 높이는 데 유용한 기술이다. 특히 블록체인을 활용한 온라인 투표 시스템은 투표의 무결성을 보장하고 부정행위를 방지하는 데 효과적이다. 블록체인 기술을 활용한 온라인 투표 시스템을 구축한다면 비용 절감은 물론이고 유권자들의 편의성 증대와 투표 시스템의 신뢰도 향상 등 정확한 투표 결과를 제공할 수 있을 것으로 기대한다.
라인기 님이 브런치에 게재한 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다.