모든 투표지를 이름과 함께 공개하면 개표는 쉬워집니다. 누가 누구를 찍었는지 한 줄씩 더하면 되니까요. 대신 비밀투표가 사라집니다. 반대로 투표함을 완전히 감추면 비밀은 지킬 수 있지만, 이제 선거관리기관이 알려준 숫자를 믿는 일만 남습니다.

우리가 원하는 것은 그 사이의 다소 까다로운 지점입니다. 유권자는 자기 선택이 제대로 처리됐는지 확인하고 싶습니다. 감사자는 모든 유효표가 정확히 집계됐는지 확인하고 싶습니다. 그러나 어느 쪽도 특정 유권자와 특정 후보를 연결해서는 안 됩니다.

거래소의 준비자산 증명도 비슷한 질문에서 시작합니다. 고객 잔고를 전부 공개하면 부채 합계는 검산하기 쉽지만 금융 프라이버시가 사라집니다. 반대로 전부 감추면 고객은 거래소의 주장을 독립적으로 확인할 수 없습니다.

두 문제를 한 문장으로 묶으면 이렇습니다.

개인의 내용은 숨긴 채, 내 기록의 포함 여부와 전체 계산은 검증할 수 있을까?

답은 ‘상당 부분 가능하다’입니다. 다만 투표와 PoR은 마지막 한 걸음에서 갈라집니다. 거래소 고객은 자기 잔고가 적힌 포함 증명을 보관해도 괜찮습니다. 반면 유권자가 자신의 선택을 제3자에게 입증할 수 있으면 강요나 매표에 이용될 수 있으므로, 투표 확인증에는 선택 내용이 드러나지 않아야 합니다.

공개할 것과 숨길 것을 먼저 나눠야 합니다

여기서 익명성은 유권자 자체가 사라진다는 뜻이 아닙니다. 선거기관은 투표 자격을 확인하고, 유권자는 자기 표의 접수를 확인합니다. 다만 그 두 기록을 다시 맞춰도 사람과 선택이 연결되지 않아야 합니다.

유권자는 기기가 자기 선택을 제대로 암호화했고 그 암호문이 집계 대상에 들어갔는지 확인해야 합니다. 선거기관은 유효한 자격이 한 번만 사용됐는지 확인하되, 익명화된 표와 유권자를 다시 연결할 수 없어야 합니다. 시민과 감사자는 유효표 전체의 집계를 검증하되 특정 표의 주인을 알아서는 안 됩니다. 강요자에게는 확인할 수 있는 것이 없어야 합니다.

여기서 “내가 누구를 찍었는지 확인한다”는 말에는 두 뜻이 섞여 있습니다. 나는 당연히 내가 고른 후보를 압니다. 전자투표가 추가로 확인해야 하는 것은 기기가 그 후보를 정확히 암호화했고, 그 암호문이 사라지지 않고 집계에 들어갔는가입니다.

그 확인 결과가 후보 이름이 적힌 영구 영수증일 필요는 없습니다. 오히려 그러면 안 됩니다. 미국 선거지원위원회(EAC)가 2025년 공개한 암호학적 종단간 검증 프로토콜 평가 절차 공고도 영수증이 선택 내용을 표시하거나 유권자가 자신의 선택을 다른 사람에게 증명할 수 있게 해서는 안 된다고 명시합니다. EAC의 E2E 프로토콜 평가 절차

전체 투표자 수와 개별 참여자의 실명 명단은 다른 정보입니다. 전자는 공개 검증에 도움이 되지만, 후자는 반드시 공개해야 하는 자료가 아닙니다. 선거관리기관은 중복 투표를 막기 위해 참여 여부를 처리해야 하지만, 시민에게 필요한 것은 유효한 자격으로 만들어진 표의 수와 중복이 제거됐다는 증거입니다.

참여자 이름까지 공개하면 강요자가 “투표하지 말라”는 지시를 지켰는지 확인하거나, 작은 집단의 참여 명단과 세부 결과를 결합해 선택을 추론할 수 있습니다. 에스토니아의 선거 원칙도 본인의 의사에 반해 타인이 투표 내용뿐 아니라 참여 여부를 알아내지 못하게 해야 한다고 설명합니다. 에스토니아의 선거 원칙

공개해야 하는 것은 이름표가 붙은 투표지가 아닙니다. 이름표를 떼어낸 표들이 빠짐없이 들어왔다는 증거입니다.

유권자에게는 확인증을 주되, 투표 영수증은 주지 않습니다

종단간 검증 가능 투표는 보통 세 가지 질문을 차례로 묻습니다.

  1. 의도대로 만들어졌는가(Cast as Intended)
    유권자가 A를 눌렀을 때 기기가 실제로 A를 선택한 암호문을 만들었는가.

  2. 제출한 대로 기록됐는가(Recorded as Cast)
    그 암호문이 바뀌거나 사라지지 않고 공개 기록에 포함됐는가.

  3. 기록한 대로 집계됐는가(Tallied as Recorded)
    공개 기록의 유효한 암호문 전체로 결과를 정확히 계산했는가.

첫 번째 단계에서는 별도의 검증기기, 후보별 확인 코드 또는 ‘검사할 표’와 ‘실제로 넣을 표’를 무작위로 고르는 방식 등을 사용할 수 있습니다. 두 번째 단계에서 유권자가 받는 것은 보통 암호화 표의 해시나 추적 번호입니다. 공개 게시판에서 같은 번호를 찾으면 자기 암호문이 들어왔다는 사실은 확인할 수 있지만, 그 번호만으로 후보를 알아낼 수는 없습니다.

세 번째 단계에서는 표를 검증 가능하게 섞어 제출 순서와 복호화 결과의 연결을 끊는 믹스넷, 또는 개별 표를 열지 않고 암호화된 상태에서 합계를 계산하는 동형암호를 사용할 수 있습니다. 그 과정이 규칙대로 수행됐다는 영지식증명을 함께 공개하면 감사자는 평문 투표지를 보지 않고도 집계를 검산할 수 있습니다.

이 구조를 디지털 이중봉투라고 생각해도 좋습니다. 선거기관은 자격 확인용 바깥 봉투와 암호화된 표가 든 안쪽 봉투를 함께 받습니다. 바깥 봉투에서 자격과 중복 여부를 확인한 뒤 두 봉투의 연결을 끊습니다.

이후 공개 게시판에는 안쪽 봉투와 유효성 증명만 올라갑니다. 유권자는 추적값으로 자기 봉투가 들어왔는지 확인하고, 개표 뒤에는 표가 더해지거나 빠지지 않았고 계산도 맞았다는 증명이 공개됩니다.

DID가 들어간다면 자격을 확인하는 첫 단계입니다. 다만 DID는 익명 신분증도, 유권자 자격 그 자체도 아닙니다. 공개키 같은 검증수단을 찾을 수 있게 하는 식별자이며 블록체인을 반드시 사용하지도 않습니다. “이 사람은 유효한 유권자다”라는 사실은 선거기관이 별도의 자격증명으로 발급해야 합니다.

이름을 드러내지 않고 자격만 보이려면 선택적 공개나 영지식증명을 지원하는 자격증명이 필요하고, 같은 자격으로 두 번 투표하지 못하게 하려면 선거별 일회성 표식이나 그에 준하는 장치도 필요합니다. 이 기능들은 DID 표준이 자동으로 제공하지 않습니다. 국가 전자신분증이나 선거용 일회성 자격증명도 같은 역할을 맡을 수 있습니다. W3C DID Core, W3C VC Data Model 2.0

전자투표와 준비자산 증명에서 개인 데이터는 숨긴 채 개인 포함 여부와 전체 계산을 검증하는 공통 구조

투표와 PoR은 ‘개인 기록 → 포함 증명 → 공개된 전체 증명’이라는 뼈대를 공유합니다. 다만 투표의 확인증은 선택 내용을 제3자에게 입증할 수 없게 설계해야 합니다.

현실의 전자투표는 이미 이 경계를 시험하고 있습니다

에스토니아의 인터넷 투표는 이 문제를 비교적 구체적으로 보여줍니다. 유권자는 ID 카드, Mobile-ID 또는 Smart-ID로 본인을 확인하고, PC 투표 앱은 선택을 암호화한 뒤 전자서명해 전송합니다. 별도의 스마트기기 검증 앱으로 서버에 도착한 암호문이 자신이 선택한 후보와 맞는지 확인할 수 있습니다.

에스토니아는 이 확인 기능에 일부러 유효기간을 둡니다. 투표 뒤 30분 동안 최대 세 차례 확인할 수 있으며, 후보를 표시한 검증 앱은 30초 뒤 자동으로 닫힙니다. 선거당국은 특히 QR 코드의 30분 유효 제한을 투표 비밀을 위한 예방 조치라고 설명합니다. 확인은 가능하지만, 영구적인 후보 선택 증명서를 만들어 주지는 않는 것입니다. 에스토니아의 i-vote 확인 안내, 에스토니아 i-voting FAQ

다만 이 확인은 선거가 끝난 뒤 내 암호문을 공개 명단에서 찾아 최종 집계까지 추적하는 영구 확인증은 아닙니다. 제한 시간 안에 서버가 돌려준 암호문과 자신의 선택이 맞는지를 확인하는 절차입니다. 이후 전체 투표함의 무결성과 혼합·개표의 정확성은 별도의 감사 자료와 검증 프로그램으로 확인합니다.

개표 전에는 전자서명과 암호화 표를 분리하고, 중복 전자표와 종이투표로 대체된 전자표를 취소합니다. 투표 기간에는 다시 온라인으로 투표할 수 있고, 이후 투표소에서 종이표를 내면 종이표가 우선합니다. 누군가 지켜보는 자리에서 표를 강요당했더라도 나중에 다시 바꿀 여지를 남기는 운영 장치입니다. 다만 강요자가 투표 기간이 끝날 때까지 유권자를 통제한다면 재투표만으로 문제가 사라지지는 않습니다. 이 방식은 강요의 위험을 줄일 뿐, 강요 자체를 제거하지는 못합니다. 에스토니아 인터넷 투표 절차

스위스도 2026년 7월 현재 일부 칸톤의 제한된 유권자를 대상으로 전자투표를 시험하고 있습니다. 연방 규정은 유권자가 반환 코드를 통해 자신의 선택이 올바르게 등록됐는지 확인하는 개별 검증과, 감사자가 전체 전자투표함과 집계를 검사하는 보편 검증을 함께 요구합니다. 이를 ‘완전한 검증 가능성’이라고 부릅니다. 소스코드 공개, 독립 심사와 공개 검토도 운영 요건에 포함됩니다. 스위스 전자투표 현황, 스위스 전자투표 보안 기준

Helios라는 공개 검증형 온라인 투표 시스템도 유권자에게 암호화 표의 추적값을 주고, 암호화된 합계와 개표 과정을 공개적으로 검증하게 합니다. 동시에 Helios 운영진은 강요와 대규모 공격이 예상되는 공직선거에는 사용하지 말라고 직접 안내합니다. 검증 가능한 암호학과 안전한 원격 공직선거는 같은 말이 아니기 때문입니다. Helios FAQ

이 사례들이 공유하는 중심은 블록체인이 아니라 암호화된 표, 개인 확인 수단, 검증 가능한 혼합·집계와 독립 감사입니다. 다만 증거를 공개하는 범위와 방식은 서로 다릅니다. Helios는 유권자가 추적값을 공개 기록에서 찾게 하고, 스위스는 개인 반환 코드와 전체 검증용 증명을 결합합니다. 에스토니아는 제한된 개인 확인과 등록 시각 기록, 별도의 개표 감사 절차를 사용합니다. 세 제도를 모두 같은 공개 게시판 구조로 묶을 수는 없습니다.

실제 전자투표는 DID나 퍼블릭체인이 완성되기를 기다리지 않았습니다. 기존 전자신원과 선거용 코드, 믹스넷, 암호학적 증명과 독립 감사를 조합해 각자 감당할 수 있는 범위에서 운영되고 있습니다.

PoR도 ‘내 기록’과 ‘전체 계산’을 나눕니다

PoR(Proof of Reserves·준비자산 증명)에서 개인 정보는 후보 선택 대신 고객의 계정과 잔고입니다. 여기서 말하는 프라이버시는 대개 거래소에 대해서도 익명이라는 뜻이 아닙니다. 거래소는 고객과 잔고를 알고 있습니다. 다만 다른 고객과 외부 검증자에게 개별 잔고를 펼쳐 보이지 않으면서 전체 부채와 준비자산의 관계를 확인하려는 것입니다.

업계의 ‘PoR’ 페이지는 대개 세 가지 검증을 한 화면에 묶어 보여줍니다. 다만 엄밀히 말하면 셋은 서로 다른 주장입니다.

  1. 준비자산 증명: 거래소가 특정 시점에 공개한 온체인 주소의 키를 통제했고, 그 주소에 얼마가 있었는가. 주소 서명은 키 통제를 보여줄 뿐 자산의 배타적 소유권이나 담보 설정 여부까지 증명하지는 않습니다.
  2. 고객부채 증명: 거래소가 고객에게 돌려줘야 할 잔고들을 어떤 합계로 제출했는가.
  3. 지급능력 관계의 검증: 확인한 준비자산이 제출된 고객부채 이상인가.

첫 번째가 좁은 의미의 PoR이고, 두 번째와 세 번째를 더해야 고객부채를 고려한 지급능력에 가까운 질문을 다룰 수 있습니다.

고객부채를 공개하지 않고 묶을 때 머클 트리를 사용할 수 있습니다. 각 고객에게 대응하는 익명화된 값과 잔고로 나뭇잎을 만들고, 이를 두 개씩 계속 묶으면 맨 위에 하나의 머클루트가 남습니다. 구체적인 나뭇잎 구성과 프라이버시 보호 방식은 사업자마다 다릅니다. 고객은 자기 나뭇잎과 몇 개의 중간 해시만 받아도 자신의 잔고가 그 루트에 포함됐는지 확인할 수 있습니다. 다른 고객의 잔고를 볼 필요는 없습니다.

여기에 영지식증명을 붙이면 개별 잔고를 공개하지 않고도 트리에 들어간 값들의 합계가 맞는지, 허용되지 않은 음수 계정으로 부채를 줄이지 않았는지 같은 계산 규칙을 검증할 수 있습니다.

OKX는 자사 설명에서 고객이 머클 구조로 자신의 잔고 포함 여부를 확인하고, 공개된 파일과 zk-STARK 검증 도구로 제출된 데이터의 합계와 비음수 제약을 검사할 수 있다고 설명합니다. OKX의 PoR 설명

Kraken은 독립 회계인이 고객 잔고를 머클 트리로 묶고 온체인 주소의 통제와 잔액을 확인한 뒤, 고객이 자기 잔고가 검토 범위에 포함됐는지 확인하게 합니다. Kraken의 PoR 설명

두 구조의 차이는 확인증에서 가장 뚜렷하게 드러납니다.

질문 비밀투표 PoR
숨길 개인 정보 유권자의 후보 선택과 신원 연결 고객의 계정과 잔고
본인이 확인할 것 내 암호화 표가 공개 기록과 집계 대상에 들어갔는가 내 잔고가 고객부채 집합에 들어갔는가
외부가 확인할 것 유효한 암호화 표만 정확히 집계됐는가 제출된 부채 합계와 확인된 자산의 관계가 맞는가
확인증의 성격 선택 내용을 제3자에게 증명해서는 안 됨 고객이 자기 잔고의 포함 증명을 보관해도 됨
운영자가 아는 정보 자격과 선택의 연결을 끊어야 함 거래소는 보통 고객과 잔고를 알고 있음

비슷한 포함 증명과 영지식 기술을 사용하더라도 설계의 마지막 목표는 다릅니다. PoR에서는 고객이 자신의 잔고를 확인할 수 있는 구체적인 포함 증명이 유용합니다. 투표 확인증은 자신의 표가 포함됐다는 사실까지만 보여주고, 후보 선택은 제3자에게 증명하지 못하게 해야 합니다.

계산이 맞다는 증명과 입력이 빠짐없다는 증명은 다릅니다

트리에 들어 있는 모든 값을 더했다는 주장과, 들어가야 할 모든 값을 트리에 넣었다는 주장은 다릅니다.

거래소가 만든 머클 트리에 내 계정이 들어 있다면 나는 내 잔고의 포함 여부를 확인할 수 있습니다. 영지식증명은 제출된 트리 안에서 합계와 비음수 조건이 맞는지 보여줄 수 있습니다. 그러나 현실의 고객 장부에서 계정 하나를 처음부터 빼버리면, 제출된 데이터만 계산해서는 그 누락을 발견할 수 없습니다.

이 때문에 고객별 포함 확인이 중요하고, 검토 주체가 거래소의 실제 장부와 증명 입력의 완전성을 대조하는 절차도 필요합니다. 머클 기반 지급능력 증명의 잘못된 구현과 서로 다른 사용자에게 다른 루트를 보여주는 문제를 분석한 연구가 공개 게시판을 중요한 장치로 지목하는 이유도 여기에 있습니다. Broken Proofs of Solvency 연구

투표에서도 마찬가지입니다. 공개된 암호화 표의 집계가 완벽하게 검증돼도, 유권자 명부에서 누군가 빠졌거나 한 사람에게 자격이 두 번 발급됐다면 암호학적 계산은 그 행정 오류를 스스로 알아내지 못합니다. 개인 확인과 전체 검증 사이에는 “현실의 전체가 증명 입력에 빠짐없이 반영됐는가”를 확인하는 별도 절차가 필요합니다.

PoR에도 다른 한계가 있습니다. 보고 범위에서 빠진 부채와 고객 자산에 딸린 권리·의무, 스냅샷 시점에 빌려온 자산, 보고서 이후 자산의 사용·대여·이동과 내부통제는 온체인 잔고와 머클루트만으로 알기 어렵습니다. PCAOB 투자자보호실도 2023년 직원 명의 주의문에서 PoR 보고서가 재무제표 감사가 아니며 이런 항목을 보장하지 않을 수 있다고 설명했습니다. 해당 문서는 PCAOB 이사회의 규칙이나 공식 정책은 아닙니다. PCAOB의 PoR 주의문

연구에서는 주소와 총액까지 숨긴 채 지급능력을 증명하는 방식도 제안됐습니다. Provisions 원논문

현재 주요 구현은 한 가지 방식으로 통일돼 있지 않습니다. Kraken은 회계인이 고객 잔고를 머클 트리로 묶고 거래소가 서명한 온체인 주소의 잔액과 비교합니다. OKX는 머클 구조에 zk-STARK를 결합해 고객별 포함 여부와 제출된 데이터의 합계·비음수 제약을 검증하게 합니다. 어느 쪽이든 온체인 자산 정보만으로 완성되는 것은 아니며, 거래소 내부의 고객장부와 외부 검토 절차를 함께 사용합니다.

블록체인의 자리는 비밀 데이터가 아니라 공개 증거 쪽입니다

이제 블록체인의 역할도 좁게 정리할 수 있습니다. 암호화 표, 머클루트와 영지식증명을 여러 사람이 같은 버전으로 보고 나중에 바뀌었는지 확인해야 한다면 블록체인은 공개 게시판으로 쓸 수 있습니다. 증거가 게시된 시점과 순서를 남기고, 운영자가 사람마다 다른 루트를 보여주는 일을 어렵게 만드는 데도 도움이 됩니다.

그러나 퍼블릭 블록체인이 이 구조의 필수조건은 아닙니다. 에스토니아와 스위스의 전자투표, Helios는 블록체인 없이도 공개 검증 구조를 만듭니다. Kraken과 OKX의 고객 포함 증명도 핵심은 머클 트리와 암호학적 증명이지, 모든 고객 잔고를 퍼블릭체인에 기록하는 데 있지 않습니다.

체인에 평문 투표, 유권자 명단이나 고객 잔고를 올리면 검증 가능성보다 먼저 영구적인 개인정보 데이터베이스가 생깁니다. 블록체인은 비밀을 만들어 주지 않습니다. 잘 설계된 비밀의 커밋먼트와 증명을 여러 사람이 함께 보관하게 해줄 뿐입니다.

설계에서 먼저 물어야 할 것은 “무엇을 체인에 올릴까”보다 “누가 어느 주장까지 검증해야 할까”에 가깝습니다. 유권자에게는 접수 확인을, 시민에게는 집계 증명을, 거래소 고객에게는 잔고 포함 증명을, 외부에는 자산과 제출된 부채의 관계를 보여주면 됩니다.

다만 증명은 질문받은 것만 대답합니다. 집계가 맞다는 증명은 투표권 발급이 공정했다는 증명이 아니고, 부채 합계가 맞다는 증명은 숨은 채무가 없다는 감사도 아닙니다. 계산에 들어오지 않은 표와 장부는 여전히 사람과 제도가 찾아야 합니다.

그럼 다음 선거부터 지갑 앱으로 투표하자는 얘기냐고요? 아직은 아닙니다. 블록체인은 투표함보다 ‘제대로 셌다는 증거’를 맡는 쪽에 더 잘 어울립니다. 그러니 다음 선거 전까지 시드 문구를 찾을 필요는 없습니다.


참고 자료

안내

이 글은 공개된 기술 표준과 기관·사업자 자료를 바탕으로 전자투표와 준비자산 증명의 검증 구조를 설명한 일반 정보입니다. 특정 전자투표 제도의 도입이나 특정 거래소의 재무건전성을 보증하지 않습니다. 시험 운영 범위와 PoR 방식은 이후 달라질 수 있습니다.