작성일 : 18-06-12 17:12
[생활정보] 비밀투표 보장하는 블록체인 선거 시스템 만든다
 글쓴이 : happy
조회 : 11  

비밀투표 보장하는 블록체인 선거 시스템 만든다

2018년 06월 11일 19:32

 

‘주민등록증으로 본인인증- 투표용지 수령- 가림막 안에서 투표’

 

코앞으로 다가온 6월 13일 지방선거 투표장에 갔을 때 거칠 투표 과정이다. 중앙선거관리위원회(이하 선관위)가 개표를 완료하면 최종당선자와 총 득표수가 공개된다. 특정 유권자가 오직 한 표만 행사했는지 검증하면서도, 누구에게 투표했는지는 알수 없는 현행 비밀투표 시스템을 대부분 민주주의 국가에서 시행하고 있다.

 

 

GIB 제공
GIB 제공

 

최근 길게 늘어서 기다리는 시간조차 필요없는 편리한 전자투표 시스템 구축 노력이 한창이다. 이를 위해 비트코인으로 유명해진 블록체인 기술이 급부상했다. 그런데 일반적 의미의 블록체인 기술로는 완전한 비밀 투표가 불가능하다는 지적이 나온다.

 

각각의 블록에 들어가는 거래정보를 모든 참여자에게 공개하는 특징이 있는 현재의 블록체인 기술을 투표에 적용할 경우, 누가 어떤 후보에게 투표했는지 공개되는 상황이 되기 때문이다. 거래정보를 암호화해 유권자를 감출 수 있어야 완전한 의미의 전자적 비밀투표가 가능하다는 의미다.

 

국내에선 오현옥 한양대 정보통신공학과 교수팀이 정치적 프라이버시를 완전히 보장하는 블록체인 선거 시스템을 만드는 연구를 진행 중이다. 올해 안에 성과를 보인다는 목표다.

 


블록체인의 핵심 ‘탈중앙화’, 투표시스템 전환엔 장애물

 

블록체인은 전자투표에 적합한 특성을 가졌다. 일단 블록에 들어간 거래정보(Transaction)를 삭제하기는 거의 불가능한 점이다. 모든 정보를 탈중앙화 방식으로 공개해 참여자가 나눠 갖기 때문에 참여자의 과반수가 가진 정보를 한 번에 바꾸지 않는 이상 삭제 할 수 없다. 한번 투표가 완료돼 블록을 형성하면 이 정보를 없애지 못한다.

 

그런데 탈중앙화라는 블록체인 시스템의 최대 장점이 기존 투표 방식의 완전한 대안으로 진화하기에는 걸림돌이 될 수 있다. 갑이 을에게 5 비트코인을 준다는 거래정보가 발생했다고 하자. 이는 곧 투표에선 A라는 유권자가 a후보에게 1표를 행사하는 상황과 같다.

 

 

블록체인에  블록별로 입력되는 거래정보(트랜잭션)로 갑이 을에게 5비트코인을 줬다는 내용이 암호처리없이 입력돼 공개된다-오현옥 한양대 교수 제공
블록체인에 블록별로 입력되는 거래정보(트랜잭션)로 갑이 을에게 5비트코인을 줬다는 내용이 암호처리없이 입력돼 공개된다-오현옥 한양대 교수 제공

 

오 교수는 “a 후보가 1표를 받았다는 건 개표 과정에서 확인되는 정보이지만, A유권자가 a 후보에게 표를 줬는지는 누구도 알 수 없어야 비밀이 보장된다”라며 “거래정보를 적절한 암호처리를 하지 않고 블록에 입력하는 기존 블록체인 기술로는 A라는 유권자를 완전히 감출 수는 없다”고 지적했다.

 

그는 “(현재의 블록체인 기반 투표 시스템에선) 선관위의 서버를 관리하는 세력이 확인하려 들면 어느 유권자가 a 후보에게 투표했는지 알 수 있다는 우려가 있다”고 말했다.

 

 

해외서 이미 도입한 블록체인 투표시스템... 비밀보장 문제는 우려”

 

해외에선 이미 블록체인 기술을 적용해 투표를 실시한 사례가 있다. 에스토니아는 2005년부터 선거에 블록체인을 활용하고 있으며, 2014년 유럽의회 선거와 2015년 국회의원 선거에선 전체 투표자의 3분의 1이 블록체인 기반 전자투표를 시행했다. 스페인의 신생 정당 포데모스도 2014년 블록체인 기반 투표를 활용했으며, 미국에서는 2015년 텍사스주 자유당과 유타주 공화당이 대선후보를 뽑는데 블록체인을 적용했다.

 

하지만 기존에 선제적으로 도입된 해외의  블록체인 기반 전자투표는 엄밀한 의미에선 비밀보장이 되지 않았었다는 우려가 나온다. 블록에 들어가는 투표정보에 적절하게 암호화 처리를 되지 않은 채로 입력돼 선관위와 같은 서버 관리자가 이를 확인할 여지가 남아 있기 때문이다. 물론 민주주의 사회에선 일어나선 안될 일이다.

 

그래서 2013년 투표정보를 암호화해 보장하는 '제트케이-스낙(zk-snark)' 기술이 개발됐다. 제트케이-스낙'기술은 다음과 같은 세 가지를 동시에 보장한다. 블록에 들어가는 투표 정보를 입력하는 A라는 유권자가 진짜 시민이라는 것과 A가 단 한번 투표했다는 점, 그리고 서버 측에서 A가 누구인지는 알수 없게 감추는 것이 포함된다.

 

오 교수는 " 이 세 가지를 동시에 암호화해 증명하는 제트케이-스낙 기술을 사용하지 않은 현재 의 블록체인 투표 시스템이 완전히 비밀 선거를 보장하지는 못 할 것"이라고 말했다. 개발 당시 제트스낙 기술이 2013년도 부터  개발됐기 때문에 2005년부터 블록체인을 투표에 적용한 해외 사례들은 비밀 보장 측면에서 허점이 있었을 수 있다는 주장이다.

 

 

-오현옥 한양대 교수 제공
현재의 블록체인 기반 전자투표시스템은 유권자 명부를 가진 선거관리위원회가 공개된 투표정보와 개표정보를 비교해 누가 누구에게 투표했는지 분석할 수 있다. 엄밀한 의미에서 민주주의의 비밀투표가 보장되지 않는 허점이 존재하는 것이다. -중앙선거관리위원회 제공

 


유권자 암호화와 증명 기술, 거래속도 높이는게 관건

 

투표정보를 암호화하고 그 투표를 한사람이 진짜 유권자여야 하며, 이전에 투표한 적이 없어야한다. 이를 수학적으로 암호화해 증명하는 기술이  앞서 언급한 제트케이-스낙이다.

 

만약 제트케이-스낙 기술을 적용한 블록체인 기반 전자투표 앱이 한국에서 출시됐다고 해보자.  유권자가 이 앱으로 자신을 입증하면 공개키와 개인키를 발급받을 수 있다. 이때 사람들은 공개키만 선관위에 등록해 둔다. 그리고 등록하지 않은 개인키를 활용해 본인만의 시리얼 번호를 따로 생성하고, 이 시리얼번호로 앱을 이용해 투표를 하게 된다.

 

선거관리위원회는 공개키를 통해 총 몇 명이 투표에 참여했는지 알 수 있다. 또 어떤 시리얼번호가 a후보에게 투표했는지 알 수 있지만, 그 시리얼번호를 생성한 유권자 A는 본인만 아는 개인키로 숨어 있기 때문에 확인이 불가능하다. 오 교수는 “제트케이-스낙 기술은 A라는 유권자 한 사람이 앱을 통해 발급받은 공개키와 개인키로 단 한번 투표했음을 증명한다"며 “블록체인에 입력되는 각각의 투표(혹은 거래)정보가 제대로된 과정을 거친 것인지 확인하는 수학적 컴퓨팅 기술이다”고 설명했다.

 

개발당시 제트케이-스낙 기술을 이용한 투표정보 암호화와 증명에는 1분이 소요됐다. 오 교수 연구팀이 현재 이를 약 2.3초로 줄였고,  증명을 마친 투표정보를 다시 암호화해 블록에 넣는 것까지 고려하면 총 4~5초 이내로 단축시키는데 성공했다. 오 교수는 “투표를 누르고 4~5초는 기다려야 그 정보가 입증돼 완료되는 것”이라며 “올해 안에 이 과정을 1초 이내로 빠르게 처리하는 기술을 확보해, 비밀보장형 블록체인 선거 시스템의 데모 버전을 내놓는게 목표다”라고 말했다.

  • 김진호 기자 twok@donga.com