블록체인을 활용한 전자 투표 시스템
[블록체인을 활용한 전자 투표 시스템]
전자 투표는 90년대 중반부터 세계 주요 국가들이 도입을 하고 있으며, 현재는 약 50여개국이 공직선거에 전자 투표를 도입하여 활용하고 있습니다.
이러한 전자 투표 시스템이 유권자의 신뢰를 얻기 위해서 오늘날 전 세계적으로 공정성과 투명성 담보를 위해 기존의 전자 투표 시스템에 블록체인 기술을 활용하고 있습니다.
먼저, 블록체인 기술을 활용한 전자 투표 시스템을 알아보기 앞서 기존의 전자 투표 시스템에 대한 소개와 문제점에 대해 알아보겠습니다.
[1] 기존의 전자 투표 시스템 소개 및 문제점
전자 투표는 전자 기술을 사용하여 그 업무나 개표를 돕는 투표를 의미합니다.
전자 투표 시스템을 사용하는 이유는 유권자가 시간과 장소의 구애 없이 PC와 이동통신 단말기를 이용하여 웹과 모바일 환경에서 다양한 의견수렴 및 대표자 선출을 지원할 수 있기 때문입니다.
하지만,
이런 전자투표 시스템은 아래와 같은 문제점이 있습니다.
보안 문제 및 신뢰 확보의 문제
첫 번째로 보안 문제와 신뢰 확보의 문제가 있습니다.
휴대전화 혹은 공인인증서 인증 시스템과 같은 본인인증방식이 전자 투표 시스템에서의 부정선거를 막기 위해 활용되고 있지만, 본인확인이나 투표내용의 완벽한 보안을 지원하기는 어렵습니다.
또 해커나 바이러스 등의 사이버 공격에 취약하고,
정부의 통제와 조작의 가능성이 존재할 가능성이 있어 운영기구에 대한 불신 또한 있습니다.투표의 비밀보장 문제
두 번째로 투표의 비밀보장의 문제가 있습니다.
전자 투표 시스템은 감시 기구의 통제를 벗어난 투표 방식으로, 투표 행태를 공적인 성격에서 사적인 성격으로 바꿀 수 있습니다. 사적인 성격으로 인해 투표자들의 편리함은 극대화될 수 있지만, 원격에서 진행되는 투표는 제3자에 의해 비밀 투표의 원칙을 훼손할 가능성이 존재합니다. 전자 투표시스템은 대부분 아무런 감시가 이루어지지 않는 사적인 공간들에서 진행되기 때문에 유권자의 자율적 의사 결정을 위협할 수 있는 부정선거의 위험성이 존재할 수 있습니다.디지털 격차의 문제
세 번째로 디지털 격차의 문제가 있습니다.
한 투표 참여는 각 사회계층 및 집단의 정치적 참여 기회에 불균등한 영향을 미칠 수 있습니다. 컴퓨터나 스마트폰에 익숙한 젊은층이나 교육수준이 높은 계층은 손쉽게 온라인상에서 투표 할 수 있습니다. 그러나 컴퓨터나 스마트폰, 인터넷에 익숙하지 않은 계층에게는 부담으로 작용할 가능성이 크기 때문입니다. 특히 고령자나 저학력 계층의 투표율 하락을 야기할 수 있고, 이는 불평등의 문제를 야기합니다.
따라서 위와 같이 기존의 전자 투표 시스템의 신뢰 확보를 위한 보안성의 문제를 해결하기 위한 블록체인 기술을 활용한 전자 투표 시스템은 이에 대한 대안이 될 수 있을 것입니다.
[2] 블록체인의 적용
블록체인을 적용한 전자 투표 시스템은 유권자 인증부터 투표결과 저장 및 검증까지 전 과정에 블록체인 기술을 적용하는 방법입니다.
기존의 전자 투표에 비해 투명성과 보안성이 강화된 방법이라고 할 수 있습니다.
그렇다면 블록체인의 어떤 점 때문에 투표에 적용이 되는 걸까요?
먼저 블록체인의 가장 중요한 특징인 분산형 원장 구조라는 점 때문입니다.
기존의 전자투표 시스템은 중앙에서 표를 관리하고 통제해야 하기 때문에 중앙에 서버를 두어야 합니다.
집중된 정보의 보호를 위해 고가의 보안 장비가 필요하고, 중앙 서버가 해킹을 당하면 위,변조의 위험이 존재합니다.
정보의 저장 방식이 중앙집중형에서 분산형 시스템으로 바뀌기 때문에 투표에 참가한 모든 사람이 거래내역을 기록한 원장을 소유하게 됩니다.
분산화 된 거래장부에 저장되기 때문에 해킹 공격시도가 있더라도 위,변조가 불가능 합니다.
또한 중앙 서버 관리에 필요한 유지 비용이 줄어들게 됩니다.
또한 모든 유권자의 투표정보를 블록체인에 기록하고, 이를 네트워크상의 사용자에게 전송하면 모든 시민과 지자체는 이 기록을 확인할 수 있게 됩니다.
만약 하나의 정보가 수정되거나 삭제되면 그 정보가 다른 사용자에게도 알려지기 때문에 투표 결과의 조작 가능성이 희박합니다.
그리고 블록이 시간별로 정렬된다는 점입니다.
블록체인은 앞 블록의 내용을 변경하게 되면 뒤에 이어지는 모든 블록을 다시 생성해야 합니다.
따라서 앞 블록의 내용을 조작하는 것이 어려워집니다.
반대로 과거의 어느 시점에 거래 기록이 존재한다면 그것은 그 시점에 거래가 이루어졌다는 것을 객관적으로 알 수 있습니다.
여기서 거래를 투표로 본다면 A유권자가 행사한 표를 보장해주는 것입니다.
블록체인은 공정성과 투명성, 확실성은 물론 중간자가 존재하지 않더라도 높은 신뢰성을 가지고 있음이 증명되었습니다. 이러한 이점을 선거에 적용시켜 직접민주주의 요소를 강화 시킨 형태로 제시된 것이 ‘블록체인 전자 투표 시스템’입니다.
블록체인을 활용해 투표권한 부여나 투표 집계 등에 응용함으로써 업무를 더 효율화 할 수 있다는 장점이 있습니다.
이러한 특징을 바탕으로 블록체인은 신뢰성이 확보된 전자 투표 시스템이라는 것을 알 수 있습니다.
한국예탁결제원에서 블록체인 기술 적용을 위한 개념검증을 완료했다고 밝혔습니다.
개념검증은 새로운 기술을 도입하기 전, 기술에 대한 성능 및 기능을 검증하는 작업을 말합니다.
개념검증을 통해 예탁결제원과 발행회사 간 전자투표의 스마트계약 적용 및 참여기관 간 투표결과의 분산합의를 통해 분산원장을 구현함으로써 블록체인의 위변조 방지 효과를 검증했습니다.
또한 전반적인 처리성능과 속도, 안정성, 기존 시스템과의 연계 가능 여부를 검증했습니다.
블록체인 기반 전자투표 모델의 안정성과 보안성을 확인하면 내년 중으로 시범서비스를 추진할 계획이라고 밝혔습니다.
[3] 해외 적용 사례
이미 해외 많은 나라에서는 블록체인 기반 전자투표를 시행하고 있습니다.
먼저 에스토니아의 경우 세계 최초로 전 국민 전자 ID 시스템과 전자 투표 시스템을 도입한 나라입니다.
유권자의 대부분이 디지털 인증서가 들어있는 ID카드를 소유하고 있기 때문에 블록체인 기반 전자 투표 시스템을 구축할 수 있게 되었습니다.
이 때 두 개의 별개의 블록체인을 사용합니다. 하나는 유권자가 등록을 했는지, 투표를 안 한 유권자를 확인하기 위한 트랜잭션을 기록합니다. 또 다른 하나는 투표 내용(어떤 정당에 투표를 했는지)이 포함되어 있는 블록체인 입니다.
이를 통해 투표를 했을 때 유권자의 익명성을 보장해줍니다.
스페인의 경우 ‘아고라보팅(Agora Voting)’이라는 시스템을 이용하고 있습니다. 사용자는 웹을 통해 편리하게 유권자 등록 및 투표를 진행할 수 있습니다. 유권자의 컴퓨터에서만 투표 전 과정을 처리하는 시스템으로 여러 개의 잠금 장치와 키 암호로 투표 내용을 보호하게 됩니다.
이를 2014년 창당한 정당 ‘포데모스’에서 당내 의사결정 시스템에 활용하였습니다.
호주에서는 2015년부터 중립투표블록(Neutral Voting Bloc, NVB)이라는 기관이 블록체인 기술을 적용한 전자 투표를 활용해 투표기록과 의사결정 내용을 독립적으로 검증하고 있습니다.
시민들의 의견 적극적으로 반영, 다수 시민의 의사를 모으는 도구로써 잘 활용했다는 긍정적인 시사점을 제시하였습니다.
덴마크 또한 2014년 작은 마을 지역부서 연례회의에서 이용하였습니다. 블록체인 기술 기반으로 정확한 투표 기록을 작성하고 결정을 내릴 수 있는 방식을 제시하였습니다.
미국의 경우는 2016년 텍사스주 자유당의 대선후보 선정과 유타주 공화당의 대선후보 선정에 활용하였습니다.
텍사스주에서 시행한 투표에서는 기존 투표 방식을 보존하면서 블록체인의 신뢰성 부분을 결합하여 사용하였기 때문에 유권자의 혼란을 막을 수 있었습니다.
에스토니아를 제외하고는 적용 규모가 크지는 않지만 적용한 국가 모두 시민 참여가 증가했다는 효과를 보여주고 있습니다.
[4] 국내 적용 방법
그렇다면 우리나라에서는 어떻게 적용해야 할까요?
제도적, 기술적, 정책적인 측면에서 고려할 사항들이 있습니다.
블록체인 투표에 맞는 관련 법과 제도를 개정해야 합니다.
현재 법적으로는 직접 본인의 신분 증명서를 투표 참관인에게 제출하고 확인을 받도록 되어있습니다. 이 부분을 개정하여 비대면 확인 절차나 대체할 수 있는 제도를 마련하는 것이 선행되어야 합니다.
또한 전자 투표가 불안하다는 여론이 많다면, 지금처럼 투표소에 직접 방문하여 투표하고 투표 결과를 현장에서 블록체인에 담는 방식을 생각해 볼 필요가 있습니다.투표 서비스를 위한 한국형 블록체인 인프라를 구축해야 합니다.
신뢰할 수 있는 국가 주도의 공공서비스 플랫폼이 먼저 구축이 되어야 합니다. 전자 투표는 비밀 투표 원칙에 위배가 되는 부분이 존재하기 때문에 이를 해결할 수 있어야 합니다.
공공서비스를 위한 합의 구조를 설계하여야 합니다. 투표 시스템에 블록체인 기술을 적용하기 위해서 운영상 발생하는 문제, 기능 추가, 정책 변경 등에 대해 어떻게 합의할지 명확한 룰을 설계해 두어야 합니다.공공 주도의 시범의 사업을 추진해야 합니다.
시범 사업을 추진하여 Best Practice 사례를 확보하는 방향으로 진행해야 합니다.
또한 블록체인 구축 사례를 많이 적용한 미국, 에스토니아, 독일 등의 국가와 교류를 강화하여 선진 사례를 공유하고 우리나라 환경에 맞는 인프라를 적용시켜야 합니다.
중앙선거관리위원회에서 과학기술정보통신부와 함께 블록체인을 기반으로 하는 전자 투표 시스템의 개발을 진행하고 있습니다. 개발을 12월까지 완료하고 향후 시범적으로 민간분야 투표 및 설문조사 등에 선보인다고 밝혔습니다.
선관위의 기존 전자 투표 시스템인 K-voting에 적용시킬 예정이라고 합니다.
[5] 블록체인이 어떻게 문제 해결하는가?
기존의 전자 투표 방식에 블록체인 기술을 활용하면,
- 투표 결과를 위·변조할 수 없고, 2) 투표가 완료된 즉시 투표 결과를 확인 가능하기 때문에 투표 관리 비용이 획기적으로 줄어듭니다. 그리고 3) 투표의 목적에 맞게 유연한 방법을 제공할 수 있습니다.
블록체인 기술을 활용한 전자 투표 시스템을 사용하기 위해 제도적, 기술적 쟁점 사항을 고려해보았습니다.
먼저 제도적 측면에서 이슈를 알아보겠습니다.
블록체인 기반의 선거 시스템은 기존의 투표와는 다른 절차를 가지고 있습니다. 모바일이나 태블릿으로 전자 투표를 진행한다면 본인이 신분증을 가지고 있는지 타인이 가지고 있는지 확인이 불가능하기 때문에 직접 선거 원칙의 이슈가 발생합니다.
투표참관인이 없기 때문에 선거인의 행동을 통제하기가 어렵고, 투표 비밀이 보장되는지 다른 사람으로부터 침해가 되는지를 확인할 수 없기 때문에 비밀 선거 원칙의 이슈가 발생합니다.
사용자 식별기술을 개발하더라도 유권자가 투표를 하는 공간은 공개되지 않거나 일부만 공개되어 타의에 의한 투표를 하거나 대리 투표 가능성이 존재하기 때문에 자유선거의 원칙의 이슈가 발생합니다.
그 다음, 기술적 측면에서 이슈를 알아보겠습니다.
블록체인 플랫폼 구축의 문제가 있습니다.
현재 블록체인 기술을 도입한 투표 시스템이 많지 않고 검증되지 않았기 때문에 시스템의 표준이 필요합니다.평등 선거 원칙과 관련된 쟁점사항이 있습니다.
온라인 투표를 사용할 네트워크 인프라는 잘 구축되어 있지만 PC나 모바일 사 용에 익숙하지 않은 계층에서 온라인 투표는 부담으로 작용할 수 있습니다. 또한 원격 투표 시 선거인의 본인 여부를 확인하기 힘들기 때문에 대리투표나 중복투표 가능성으로 인해 평등선거 원칙을 위배여부가 제기될 수 있습니다.익명성의 문제가 있습니다.
블록체인은 모든 참가자가 장부를 공유하기 때문에 선거인의 개인정보를 통해 인증을 하게 되면, 선거인의 정보와 투표 내역에 대해 추정하는 것이 가능한 문제점이 제기될 수 있습니다.키 관리의 문제가 있습니다.
투표할 때 사용하는 암호 키를 생성 및 제공하는 과정에서 키 관리에 대한 이슈도 존재합니다. 선거인이 직접 키를 관리해야하는지 선거관리위원회에서 키를 관리할 것인지를 정해 안전하게 키 관리를 할 방안을 모색해야 할 것입니다.대중의 신뢰 확보의 문제가 있습니다.
선거인에게는 생소한 기술이고 직관적으로 이해하기 힘들기 때문에 블록체인 기술에 대해 대중의 신뢰를 확보하기가 쉽지 않습니다. 그러므로 투표 절차와 선거결과에 대한 정당성 확보가 필요합니다.
[6] 기술 동작방법
1] 블록체인 정의
블록체인이란 데이터를 거래할 때 중앙집중형 서버에 기록을 보관하는 기존 방식과 달리 거래 참가자 모두에게 내용을 공개하는 분산형 디지털 장부입니다.
블록체인에 참여한 모든 구성원이 네트워크를 통해 서로 데이터를 검증하고 저장함으로써 특정인의 임의적인 조작이 어렵도록 설계된 저장 플랫폼이며 높은 보안성·확장성·투명성 등을 보장합니다.
2] 블록체인 기술 특징
시간별로 정렬된 블록
한 블록에는 앞의 블록과 뒤의 블록과 연결되는 연결 정보가 포함돼 있으며, 앞 블록의 내용을 변경하면 뒤에 이어지는 모든 블록을 다시 생성해야 합니다. 따라서 과거 블록의 내용을 조작하는 것은 어렵습니다. 반대로 과거의 어느 시점에 거래 기록이 존재한다면 그것은 그 시점에 거래가 이루어졌다는 것을 객관적으로 알 수 있습니다.분산형 원장 구조
블록체인 네트워크에 참가한 모든 사람이 모든 거래내역을 기록한 원장을 소유합니다. 그렇기 때문에 블록체인 기술을 활용하면 별도의 거래관리기관 없이 분산화된 거래장부인 블록체인에 의해 작동되기 때문에 시스템 유지비용이 적고 해킹을 원천 차단할 수 있다는 장점이 있습니다.
3] 블록체인 합의 알고리즘
ㄱ. PoW(Proof of Work)
비트코인을 시작으로 많은 블록체인 기반 기술이 채택하고 있는 합의 알고리즘입니다. 블록을 만들어 배포한 후 많은 참가자가 사용하는 것을 올바른 블록으로 정의하기 때문에 참가자의 수에 영향을 받지 않고 얼마든지 참가 자를 늘릴 수 있습니다. 반면 네트워크 상태에 따라 일부분에 불일치가 생긴 경우, 결과가 불확실하게 되는 점이나 성능이 나오지 않는다는 단점이 있습니다.
ㄴ. PoS(Proof of Stake)
이더리움이 채택한 알고리즘입니다. 화폐량을 더 많이 소유하고 있는 승인된 자가 우선하여 블록을 생성할 수 있는 특징이 있습니다. 이것은 ‘대량 통화를 소 유하고 있는 참가자는 그 통화 가치를 지키기 위해 시스템의 신뢰성을 손실 하지 않을 것이다’라는 전제를 바탕으로 하고 있습니다. 기본적인 구조는 PoW와 다르지 않지만 화폐량에 따라 해시 계산의 난이도가 낮아지기 때문에 PoW와 비교하여 자원 소비가 작아지는 장점이 있습니다.
ㄷ. PBFT(Practical Byzantine Fault Tolerance)
PBFT는 PoW나 PoS와 마찬가지로 Byzantine Fault 모델이지만 PoW와 PoS의 단점인 결과의 불확실성과 성능 문제를 해결한 것입니다.
PoW나 PoS와는 달리 다수결로 의사결정한 뒤 블록을 만들기 때문에 블록체인의 분기가 발생하지 않습니다. 따라서 한 번 확정된 블록은 변경되지 않기 때문에 최종 결과를 확보할 수 있습니다. 그리고 PoW와 같이 조건을 만족시킬 때까지 계산을 반복하지 않아도 되기 때문에 매우 고속으로 동작합니다.
4] 블록체인 기술 구조
블록체인은 공인된 제3자 없이도 거래 기록의 무결성 및 신뢰성을 확보하기 위해 해시(Hash), 전자서명(Digital Signature), 암호화Cryptography) 등의 보안 기술을 활용한 분산형 네트워크 인프라를 기반으로 다양한 응용서비스를 구현할 수 있는 구조를 가지고 있습니다.
5] 전자 투표 시스템의 블록체인 기술 동작방법
블록체인을 P2P 네트워크에 접속하는 각 노드들의 참여를 컨트롤함으로써 블록체인을
무허가 블록체인, 반허가 블록체인, 허가 블록체인으로 구분할 수 있습니다.
무허가 블록체인은 블록을 채굴하는 검증자 노드들과 블록체인을 이용하는 사용자들이 특별한 허가 없이 자유롭게 네트워크에 참여하여 사용하는 것으로써 익명성과 탈 앙집식을 구하는 블록체인입니다.
반허가 블록체인은 검증자 노드들을 허가를 통하여 네트워크에 참여시키고 사용자는 자유롭게 참여하는 방식으로써 한정된 탈 앙집식을 구하게 됩니다.
허가 블록체인은 검증자 노드들과 사용자를 특정 앙기의 허가를 통하여 네트워크에 참여시키게 됨으로써 앙집식 구조를 따르게 되고 모든 작업을 컨트롤할 수 있습니다.
전자 투표 시스템에 블록체인을 활용하게 될 때,
사용용도에 따른 방식으로는 무허가 블록체인 방식을 사용한다면 전자투표에서 중요한 익명성을 보장해 수 있지만 많은 운영비용이 발생하고 검증자 노드에 대한 검열이 불가능하여 법적근거에 문제가 될 수 있습니다.
또한 허가 블록체인 방식을 사용한다면 특정기관의 앙집식으로 인하여 가장 중요한 신뢰성과 무결성을 훼손하게 될 수 있으므로
전자투표 블록체인은 ‘반허가 블록체인’ 방식을 사용하여 검증자에 대한 정보를 공개하고 법적근거를 확보하는 동시에 사용자(투표자) 에 한 익명성을 보호하는 방식을 활용합니다.
6] 전자 투표 시스템 설계
전자투표 시스템의 블록체인 개발을 위해서 ‘이더리움(Ethereum)’플랫폼을 사용하며, 반허가 블록체인 방식을 따른다.따라서 유권자는 자율적으로 참여가 가능하지만 검증자 노드는 사전에 자발적 참여 신청을 받아 신원확인 후 블록체인 네트워크 에 참여토록 합니다. 자발적 참여자가 없을 것을 대비하여 중앙기관(선관위)에서는 기본적으로 한 개의 노드로 참여를 합니다. 따라서 검증자 노드는 자발적 참여자 수가 n이였을 경우 총 n+1이 될 것입니다. 이후 블록체인에 부정행위가 감지된다면 해당 검증자 노드는 공격행위를 한 것으로 간주하고 법적 제재를 당할 것입니다. 하지만 블록체인의 작업증명이 있는 한 부정행위는 무산될 것이고 투표시스템은 안정적으로 지속될 것입니다.
전자투표 시스템은 총 유권자 등록, 선거 등록, 투표, 집계, 개표 5가지로 구성되어 있습니다.
각 기능의 구성도는 다음과 같습니다.
전자투표 진행과정을 정리하면 다음과 같습니다.
[참조]
중앙선거관리위원회 온라인 투표 시스템 홈페이지
논문 - 블록체인 방식 온라인 투표시스템 적용 가능성 연구
논문 - 블록체인 방식의 전자투표 시스템 구현 및 성능 개선 방안 연구
한국정보화진흥원(NIA) [NIA Special Report 2017-5] ‘블록체인 활용 전자투표’ 주요사례 및 시사점