블록체인은 데이터를 모든 참여자들에게 투명하게 공개하고, 이 데이터를 처리할 때는 모든 참여자에게 의견을 물어 합의 하에 처리하는 '탈중앙화' 특성이 있다. 그런데 사실 이러한 합의를 통한 데이터 처리 방식을 블록체인이 최초로 제안한 것은 아니며, 훨씬 이전부터 많은 암호학자들이 이미 다양한 합의 알고리즘(consensus algorithm)들을 발표해 왔다.
블록체인의 가장 큰 학문적 성과는 기존 합의 알고리즘들의 경우 참여자가 사전에 정해져 있어야 하는 반면, 사토시 나카모토가 제안한 블록체인의 경우 참여자 수에 제한이 없으며 사용자들이 언제든 자유롭게 합의에 참여하거나 탈퇴하는 것이 가능하다는 점이다. 이를 우리는 '비허가형(permissionless) 합의' 또는 '나카모토 합의'라고 부르며, 이러한 자유로운 참여나 탈퇴에도 불구하고 안정적인 합의가 이루어지도록 하는 근간에는 바로 비트코인을 통한 인센티브가 있다. 첨언하면 '작업증명(PoW)' 또는 '지분증명(PoS)'을 합의 알고리즘으로 잘 못 소개하는 글들을 종종 볼 수 있는데, PoW나 PoS는 시빌 공격(sybil attack)을 막기 위한 장치이지 합의 알고리즘이 아니다.
이렇듯 블록체인이란 것이 본디 자체적으로 합의 기능을 내장하고 있고, 여기에 더해 일단 기록된 데이터는 더 이상 수정하거나 삭제하는 것이 불가능한 '불변성(immutability)' 특성까지 갖고 있기 때문에, 많은 이들은 블록체인을 이용하면 안전한 인터넷 투표나 모바일 투표 시스템을 쉽게 만들 수 있다고 생각한다.
결론부터 말하면 이는 틀린 얘기이다. 안전한 온라인 투표 시스템이 지녀야 할 조건에는 여러 가지가 있으나 그 중 가장 중요한 것이 '소프트웨어 독립성'이다. 소프트웨어 독립성이란 투표 소프트웨어에서 발생한 오류 또는 무단 변경이 선거 결과에 영향을 미쳐서는 안 된다는 조건으로, 이를 위해서는 자신의 표가 본인이 의도한 대로 정확히 기록되고 개표 결과에 반영됐는지 여부를 투표자가 직접 확인할 수 있어야 한다. 그런데 문제는 블록체인을 이용한 온라인 투표 시스템의 경우 이러한 소프트웨어 독립성을 달성하기가 매우 어렵다는 것이다.
투명하게 누구에게나 모든 것이 공개되는 퍼블릭 블록체인을 이용할 경우 투표자가 행사한 표는 블록체인에 기록되고 이는 쉽게 확인될 수 있으므로 소프트웨어 독립성을 달성하기가 쉽다. 하지만 퍼블릭 블록체인에 기록된 데이터는 투표자 외에 다른 이들 또한 볼 수 있으므로 비밀 투표 보장이 어렵게 되며, 이는 곧 매표(투표할 사람에게 돈을 주고 표를 얻는 일) 행위를 조장할 위험성까지 갖게 된다. 즉, 특정 후보에게 투표했는지 여부를 직접 확인한 후에 돈을 줄 수 있으니 매표가 더욱 용이해 지는 것이다. 이러한 문제를 해결하기 위해 프라이빗 블록체인을 사용할 수도 있겠으나 이렇게 할 경우 투명성이 제한되므로 소프트웨어 독립성을 달성하기가 어렵게 된다. 바로 이러한 이유로 외국의 전문가들과 전미과학공학의학한림원(NASEM)에서는 블록체인 기반의 투표 방식을 강하게 비난해왔으며, 단지 공개 투표 방식인 상원 투표에 대해서만 제한적으로 블록체인의 적용을 검토하고 있는 실정이다.
현재 우리 정부는 2022년까지 블록체인 기반의 온라인 투표 시스템을 개발해 이를 학교장 선거ㆍ당내 경선ㆍ의견 수렴용 투표 등에 적용할 예정이다. 선거는 가상통화에 비해 훨씬 위험도가 높은 분야이다. 우리 정부의 보다 더 신중한 접근이 요구된다.
꼭 봐야 할 주요 뉴스
상장 첫날 70% 폭등 "엔비디아 독주 끝나나"…AI ...
김승주 고려대학교 정보보호대학원 교수
<ⓒ투자가를 위한 경제콘텐츠 플랫폼, 아시아경제(www.asiae.co.kr) 무단전재 배포금지>