# 동형암호와 블록체인을 활용한 전자투표 시스템

- URL: https://soohan.dev/projects/cj/e-voting-homomorphic-encryption
- Category: projects/cj
- Published: 2021-11-10
- Tags: blockchain, homomorphic-encryption, hyperledger-fabric, e-voting
- Author: Soohan Park

> 투표값 대신 유권자 정보를 동형암호로 보호하고, 블록체인에 기록해 검증가능성과 통계 분석을 함께 다룬 연구.

---

<Download
  href="https://nptgbqzcpg7dbphu.public.blob.vercel-storage.com/files/projects/cj/e-voting-homomorphic-encryption/paper.pdf?download=1"
  title="E-voting System Using Homomorphic Encryption and Blockchain Technology to Encrypt Voter Data"
  meta="PDF · 463KB"
/>

2021년 CJ올리브네트웍스에 입사한 뒤, 동형암호와 블록체인을 결합한 전자투표 시스템 연구에
공저자로 참여했습니다. 기존 시스템처럼 투표값을 암호화하는 대신 유권자 정보를 암호화하면,
개인의 선택을 직접 확인할 수 있으면서도 유권자 특성에 따른 통계 분석이 가능한지 살펴본 연구입니다.

논문은 [E-voting System Using Homomorphic Encryption and Blockchain Technology to Encrypt Voter Data](https://arxiv.org/abs/2111.05096)로
공개했습니다.

## 투표값 대신 유권자 정보를 암호화

논문에서 비교한 기존 전자투표 시스템은 투표값을 동형암호로 암호화하고,
암호문 상태에서 합산해 결과를 계산합니다. 투표 내용을 감출 수 있지만,
유권자 입장에서는 기록된 암호문이 자신이 선택한 값과 같은지 직접 확인하기 어렵다는 문제가 있었습니다.

제안한 방식은 암호화 대상을 바꿉니다. 투표값은 평문으로 기록하고,
성별·거주지·연령·소득·교육 수준과 같은 유권자 정보만 동형암호로 보호합니다.
유권자는 기록된 투표값을 다시 확인할 수 있고, 시스템은 개인의 응답을 복호화하지 않은 상태에서
유권자 특성에 따른 통계 연산을 수행할 수 있습니다.

| 구분 | 비교 대상 시스템 | 제안한 시스템 |
| --- | --- | --- |
| 암호화 대상 | 투표값 | 유권자 정보 |
| 투표 집계 | 암호문 덧셈 | 평문 집계 |
| 유권자 확인 | 암호문과 선택값 비교가 어려움 | 기록된 선택값 직접 확인 |
| 동형암호 연산 시점 | 투표 집계 중 | 집계 이후 통계 분석 |

핵심은 암호화를 없앤 것이 아니라, 무엇을 보호할지와 언제 비용을 지불할지를 바꾼 데 있습니다.

## 시스템 구성과 투표 흐름

시스템은 선거를 생성하고 결과를 집계하는 관리 서버, 관리자와 후보자 노드로 구성된
블록체인 네트워크, 투표에 참여하는 유권자 기기로 나뉩니다.
전체 과정은 여섯 모듈로 구성했습니다.

1. `verify_voter` — 유권자의 투표 자격과 로그인을 확인합니다.
2. `collect_voter` — 통계에 사용할 유권자 정보를 수집하고 동형암호로 암호화해 블록체인에 기록합니다.
3. `cast_vote` — 유권자의 선택을 평문으로 블록체인에 기록합니다.
4. `check_vote` — 유권자가 다시 로그인해 자신의 선택이 올바르게 기록됐는지 확인합니다.
5. `tally_vote` — 평문으로 기록된 투표값을 집계하고 결과를 발표합니다.
6. `analyze_voters` — 암호화된 유권자 정보를 이용해 결과를 여러 기준으로 분석합니다.

투표 결과를 만드는 경로와 유권자 정보를 분석하는 경로를 분리했기 때문에,
동형암호 연산이 투표 집계의 응답 시간을 직접 늦추지 않도록 설계했습니다.

## 1,024명 기준 성능 비교

성능 비교에는 `SEAL` 동형암호 라이브러리와 Hyperledger Fabric 1.4를 사용하고,
유권자 수를 1,024명으로 설정했습니다.

| 항목 | 비교 대상 시스템 | 제안한 시스템 |
| --- | --- | --- |
| 블록당 데이터 | 암호화된 투표값 80바이트 | 유권자 정보 5개 400바이트와 투표값 1바이트 |
| 집계 중 동형암호 덧셈 | 필요 | 불필요 |

제안한 시스템이 블록마다 더 많은 데이터를 기록하지만, 논문의 실험에서는 두 경우 모두
1,024회의 블록체인 기록에 약 1.7초가 걸렸습니다. 데이터 크기 차이가 기록 시간에
유의미한 영향을 주지 않았습니다.

차이는 집계 과정에서 생겼습니다. 비교 대상 시스템은 암호화된 투표값 1,024개를 더해야 했고,
논문은 해당 동형암호 덧셈의 실행 시간 값을 5.463으로 제시합니다. 제안한 시스템은 투표값을
기록과 동시에 평문으로 집계하므로 이 연산이 필요하지 않습니다. 동형암호 계산은 결과 발표 이후의
통계 분석으로 이동합니다.

이 수치는 제한된 조건에서 두 구조를 비교한 결과입니다. 실제 선거 규모의 처리량이나
장애 상황, 여러 조직에 걸친 노드 운영을 검증한 운영 벤치마크는 아닙니다.

## 설계가 얻고 내주는 것

암호화 대상을 유권자 정보로 옮기면서 투표값의 직접 검증, 빠른 집계,
개인정보를 보호한 통계 분석을 한 구조에 담을 수 있었습니다.
동형암호의 비용을 결과를 만드는 핵심 경로에서 분리한 것도 중요한 선택이었습니다.

현재 운영 관점에서 보면, 반대로 투표값을 평문으로 기록하는 구조는 유권자 식별정보와 선택값이
연결되지 않아야 한다는 더 강한 조건을 요구합니다. 실서비스로 확장하려면 키 관리와 권한 분리,
노드별 데이터 가시성, 재식별 공격과 강압 저항성까지 별도의 위협 모델로 검증해야 합니다.

따라서 이 논문은 완성된 전자투표 제품보다, 보호할 데이터의 경계를 다시 정하고
그 선택이 검증가능성과 처리 시간에 미치는 영향을 비교한 설계 연구에 가깝습니다.

## 논문 정보

- 제목: [E-voting System Using Homomorphic Encryption and Blockchain Technology to Encrypt Voter Data](https://arxiv.org/abs/2111.05096)
- 저자: Hyunyeon Kim, Kyung Eun Kim, Soohan Park, Jongsoo Sohn
- 공개일: 2021년 11월 10일
- 식별자: arXiv:2111.05096
