어젯밤 제주 모바일 경선 개표 과정에서 문제가 발생했습니다.
이에 대해서 언론에도 나오고 논란이 되어서 여러분들의 정확한 이해를 돕기 위해 글을 올립니다.
24일밤 10시경 캠프 총무팀장으로부터 급한 전화가 왔습니다.
제주 투표 결과결과가 모든 후보가 0으로 나왔다. 그래서 더 이상 진행을 못하고 있다. 시스템 문제인거 같은데 현장에는 기술적인 문제를 이해할 사람이 없으니 급히 가서 확인을 해 봤으면 좋겠다. 라는 내용이었습니다.
여기서 잠깐 부연 설명을 드리겠습니다.
일반적인 오프라인 투표의 경우에는 개표과정이라는 것이 시간이 걸리는 일입니다. 투표용지를 확인해서 숫자를 기록해야 하니까요.
그렇지만 온라인, 모바일 투표의 경우에는 사실상 개표과정이라는 것이 없습니다. 왜냐하면 투표 즉시 서버에 결과가 저장되니까요. 그런데 왜 개표과정이라는 말을 쓰는지 설명드리겠습니다.
비밀투표의 원칙을 지키기 위해 모바일로 투표한 결과를 암호화시켜서 서버에 저장합니다. 그래서 그냥 서버의 내용을 들여다보면 어느 후보가 몇표를 얻었는지를 알 수 없도록 되어 있습니다. 예를 들어 설명드리면 기호 2번을 10명이 찍었다고 해도 그 10명의 투표값은 서로 다른 숫자로 저장됩니다. 2 라는 숫자로 저장되지 않습니다. 따라서 이것을 실제 투표결과로 집계를 하려면 그 암호를 풀어야 합니다. 서로 다른 숫자로 저장된 것을 원래 투표한 기호번호로 변환해야 하는 거죠. 그리고 각 후보별로 몇표를 득표했는지 합산합니다. 물론 이 과정은 컴퓨터 프로그램상으로 진행되니까 순식간에 처리됩니다. 몇초도 안걸리죠.
암튼 전화를 받자 마자 바로 여의도 투개표 관리 업체로 갔습니다.
개표과정에는 각 캠프에서 참관인이 1명씩 참관하도록 되어 있습니다.
비상상황이기 때문에 각 캠프의 중요 책임자들도 와 있는 상황이었습니다.
업체는 자신들의 프로그램실수라는 것을 알아차린 상태였고, 프로그램 수정을 하면 된다고 이야기를 하는데 각 캠프입장에서는 그대로 받아들일 수 있는 상황이 아니었죠. 특히, 참관인들의 경우 기술적으로 전문성을 가진 분들이 아니니까 업체의 말을 믿을 수도 없고 뭔가 큰 문제가 있는 것이 아니냐는 의혹제기는 당연한 것이었습니다.
그런데 저는 차를 몰고 가는 와중에도 대략 상황이 그려졌습니다. 위에 설명드린 시스템 구조상 문제는 암호를 푸는 프로그램에서 발생할 수 밖에 없는 것이었죠. 그런데 왜 이렇게 중요한 선거 시스템에서, 미리 여러차례 검증을 했을 텐데 문제가 발생했을까 이해가 되지 않았죠.
업체 관리 책임자분의 이야기는 암호를 푸는 과정에서 원래는 후보 5명을 가정해서 프로그램을 만들었는데 후보가 4명으로 되면서 문제가 발생했다고 이야기했습니다. 이렇게 이야기를 하니 의혹은 더 증폭되었습니다. 참관인들은 그렇다고 해도 무슨 다른 값이라도 나와야지 모두 0이 된다는 것은 말이 안되지 않느냐, 원본 데이타에 문제가 있는 것 아니냐, 후보 숫자가 바뀐거 며칠전에 알았는데 그런 문제가 생긴다는게 말이 되느냐 등 의문을 제기하였습니다.
제가 볼 때 해결방법은 간단했습니다. 그냥 투개표 소스 코드를 공개해서 왜 문제가 발생했는지를 확인시켜주고 해결후의 소스도 확인시키고 샘플테스트를 해서 검증하면 되는 겁니다. 갑론을박할 필요가 없는 거죠.
그래서 소스코드를 오픈하고 그것을 짠 프로그래머가 와서 설명을 하라고 요구를 했습니다.
사실 이 부분에서는 업체의 대응이 좀 안이했다고 생각합니다. 저는 그 자리에 당연히 프로그래머가 와 있는 줄 알았는데 없더군요. 문제 상황이 발생한지 거의 1시간 반이상이 지났는데 없다니...프로그래머는 12시 넘어서, 문제상황이 발생후 2시간 반이 지나서야 왔습니다.
업체에서는 처음에는 난색을 표했는데 당선관위에서 각 후보측에서 추가로 전문가들을 오도록 해서 공동으로 소스를 검토하도록 하자고 하여 각 캠프쪽에서 기술 전문가들을 오도록 했습니다.
갑작스럽게 사람을 호출하니 모이는데 시간이 좀 걸렸고 그 와중에 언론에 이 상황이 뜨고 트윗에는 말도 안되는 이야기들이 나돌더군요.
일단, 투표결과 무효화니 하는 말들은 최소한 우리 캠프쪽에서는 전혀 나오지 않았습니다. 개표상의 문제 발생은 어느 후보쪽의 유불리와는 무관하게 당전체의 신뢰도를 떨어뜨리는, 그리고 경선의 흥행을 저하시키는 문제이므로 빨리 원인파악을 해서 해결하자는게 우리 캠프의 입장이었고 현장 책임자가 지속적으로 주장한 이야기였습니다. 그리고 의혹의 여지가 없도록 조금 시간이 걸리더라도 확실히 해명을 해야 한다고 하였습니다.
김두관캠프에서 개표조작 의혹을 제기해서 쓸데없이 문제제기만 했다는 트윗글도 있던데, 그 상황에서 기술적 전문가로 와 있던 캠프는 저희밖에 없었고 이것은 제가 볼 때 분명히 조작문제가 아니라 프로그램 오류라는 것이 너무나 명백했기 때문에 그건 말이 안되는 이야기입니다. 다만 프로그램 오류의 원인 설명이 납득이 안되었던 것입니다.
의문은 프로그래머가 와서 설명하니 쉽게 풀렸습니다. 그리고 너무나 어이없는 프로그램 실수였습니다.
투개표 프로그램은 C++ 로 작성되었는데 투표기호를 암호화하는 과정에서 암호화변수로 투표일시및 여러가지 변수를 넣는데 그 중에 후보자 수도 들어있었던 것입니다. 그런데 개표프로그램중에 한 곳에서는 4로 넣고 한곳에서는 5로 넣었던 것입니다.
그리고 나중에 암호값을 체크할 때 값이 틀리면 무조건 0으로 출력하도록 되어 있었습니다. 하나는 4로 넣고 다른곳에서는 5로 넣었으니 값이 틀리는건 당연한 것이고 모두 0으로 출력되었던 것이죠. 개표프로그램만 에러가 있었기 때문에 원본 데이타에는 아무런 문제가 없었고요.
원래는 모두 5로 되어 있었는데 수정하다가 한군데 빼먹은 것이죠.
사실 저도 프로그래머 입장에서 프로그램하다가 이런 실수를 가끔 합니다.
발생가능한 상황이긴 합니다. 그래서 상황 자체에 대해서는 이해가 되었습니다.
그러나 이런 중대한 이벤트를 치르는데 충분한 사전 검증이 안되었다는 것은 문제입니다.
이것은 사전 모의 투표를 몇번 해보면 걸러지는 사항입니다. 즉, 사전 검증이 미비했다는 뜻이죠.
설명을 듣고 각 캠프의 전문가들이 납득을 했고, 그 자리에 있는 사람들을 대상으로 ARS 모의투표를 해서(11명) 결과가 제대로 나옴을 확인했습니다.
이후 정상적인 개표 절차 진행을 했습니다. 새벽 3시반경에 모든 절차가 마무리되었습니다.
선관위의 정청래 의원님이 계속 계시면서 전체적인 과정을 체크를 했고, 나중에 4개의 캠프 책임자 모두와 함께 공동으로 합의 각서도 작성을 해서 문제가 없음을 확인했습니다.
이상이 어제 밤 사태의 전말이고, 결론적으로는 아주 사소한 실수에서 비롯된 해프닝이었습니다.
제가 이글을 올리는 이유는 여러분들이 갖는 불필요한 불안, 불신을 없애드리고자 함입니다. 시스템에 대한 걱정은 하지 않으셔도 됩니다. 많이들 참여하셔서 투표하셔도 됩니다.
현재 모바일 투개표 시스템은 큰 문제가 없고, 어제부로 소스 코드를 선관위에 보관시키고, 또 앞으로는 각 캠프의 기술적 검증단이 참여하도록 했기 때문에 추가적인 문제가 발생할 가능성은 거의 없습니다. 또 발생하더라도 즉시 해결될 수 있을 것으로 보입니다.
또 하나의 목적은 김두관 캠프가 네거티브만 일삼고 사사건건 시비만 거는 것처럼 몰고가려는 일부 네티즌, 트위터리안에 대한 반박근거를 제공하려는 것입니다. 김두관 캠프는 시비꾼모임이 아닙니다. 그렇다면 저부터 여기를 떠날겁니다.
제가 느끼는 김두관 캠프의 행동은 당전체의 신뢰도를 걱정하고 어떻게든 경선이 훌륭하게 마무리되기를 바라는 입장입니다. 투개표 시스템의 소스 공개는 그전부터 요구했었던 것이고 그것이 아무런 문제가 없음에도 별다른 이유없이 실행되지 않았습니다. 일반 공개도 아니고 선거의 당사자들에게만 공개되고 서로 감시 확인하는 시스템이 구축되었다면 어제같은 사태는 없었을 것입니다. 또한 사소한 문제가 생기더라도 어떠한 의혹도 제기되지 않을텐데 어제의 문제는 그런 의혹을 자초한 면이 있습니다.
쓸데없는 의혹이 제기되는 곳이 있다면 이 글을 퍼날라 주시기 바랍니다. 이번 후보 경선은 어느 후보 지지자인지에 상관없이 모두들 힘을 합쳐 잘 치러내야 하는 중요한 일이기 때문입니다. 감사합니다.
첫댓글 성익님, 안그래도 참여도가 낮아 내심 걱정했는데 다행입니다. 만전을 기하시기 바랍니다.
1위는 당연 김두관, 김두관, 김두관, 김두관 ,김두관, 김두관, 김두관, 김두관, 김두관, 입니다.
수고많았습니다! 참 큰일 날뻔한 일!
속보 보고...어제 3시까지 잠을 자지 못하였습니다. 수고 많으셨네요^^ 좋은 소식이 전해지기를..기원합니다.
고맙습니다 고상하셨습니다~!!! 내게 힘이 되는 나라 건설 "두관이명관이다"~!!!
고생 많으시군요.
애 많이 쓰셨습니다. 앞으로도 부탁드립니다.
에고!!! 늦은시간까지 현장에서 ....수고하셨습니다
이 날밤 신속한 업무처리가 우리당 경선에 드리운 악재를 다 없애고
후보간 쓸데없는 소모전도 없애고
수구언론의 모바일투표 공정성시비도
일축했습니다!
경선을 축제로!
김두관을 우리민주통합당대선후보로!
제주경선에서 투표신청자 13000여명이 투표를 못한 것을 밝혀내야 합니다. 36000여명 신청, 투표 23000여명....