이더리움 기반 동형암호 기술 전자 익명 투표 시스템
This repository has been archived on 2026-07-10. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • CSS 25.4%
  • JavaScript 22.3%
  • Python 21.8%
  • HTML 16.1%
  • Solidity 14.4%
Find a file
2026-07-10 16:15:16 +09:00
contracts Inital commit 2026-07-10 16:15:16 +09:00
Database_API Inital commit 2026-07-10 16:15:16 +09:00
migrations Inital commit 2026-07-10 16:15:16 +09:00
src Inital commit 2026-07-10 16:15:16 +09:00
.env Inital commit 2026-07-10 16:15:16 +09:00
.gitignore Inital commit 2026-07-10 16:15:16 +09:00
browserify Inital commit 2026-07-10 16:15:16 +09:00
index.js Inital commit 2026-07-10 16:15:16 +09:00
package.json Inital commit 2026-07-10 16:15:16 +09:00
README.md Inital commit 2026-07-10 16:15:16 +09:00
truffle-config.js Inital commit 2026-07-10 16:15:16 +09:00

이더리움 기반 동형암호 기술 전자 익명 투표 시스템

프로젝트 개요

이 프로젝트는 이더리움 블록체인과 동형암호 기술을 활용하여 전자 투표 시스템을 설계 및 구현하는 것을 목표로 합니다. 탈중앙화된 블록체인 기술과 강력한 보안성을 제공하는 동형암호를 결합하여 투표 데이터의 무결성과 익명성을 보장하는 시스템을 구축하였습니다.


주요 기능

1. 스마트 계약

  • 투표 생성, 참여, 집계 기능 제공
  • 데이터 암호화 및 검증 처리
  • MetaMask와 Web3.js를 통한 연동

2. 프론트엔드

  • 사용자 친화적인 투표 인터페이스 제공
  • 실시간 투표 결과 조회
  • 블록체인 네트워크와의 데이터 동기화

3. 동형암호

  • 데이터 암호화 및 안전한 연산 수행
  • 투표 데이터 익명성 보장

시스템 구조

구성 요소

  • 스마트 계약: 투표 관련 로직을 이더리움 네트워크에 배포
  • 프론트엔드: 사용자가 투표에 참여하고 결과를 확인할 수 있는 인터페이스 제공
  • 백엔드: 데이터베이스 관리 및 API 제공
  • 동형암호 알고리즘: 데이터의 보안성과 익명성을 보장

테스트 진행

1. 기능 테스트

  • 테스트 항목: 스마트 계약의 투표 생성, 참여, 집계 기능 및 UI 점검
  • 결과: 모든 기능 정상 동작

2. 통합 테스트

  • 테스트 항목: 블록체인, 스마트 계약, 백엔드, 프론트엔드의 연동 확인
  • 결과: 데이터 동기화 및 통신 정상 확인

3. 보안 테스트

  • 테스트 항목: 사용자 인증, 데이터 암호화, 네트워크 통신 안전성 검증
  • 결과: 데이터 보안 및 익명성 확보

개발 진행 상황

진행 현황

  1. 스마트 계약 개발
    • 데이터 암호화 및 검증 기능 구현
    • MetaMask와 Web3.js를 통한 연동
  2. 프론트엔드 개발
    • 사용자 인터페이스 설계 및 개발
    • 투표 결과 실시간 조회 기능 구현
  3. 동형암호 설계
    • 암호화 알고리즘 비교 및 데이터 처리 로직 설계

사용 기술 스택

프로그래밍 언어

  • Solidity
  • JavaScript (Web3.js, React)
  • Python (FastAPI)

도구 및 프레임워크

  • Ganache
  • Truffle
  • MetaMask

데이터베이스

  • MySQL

설치 및 실행 방법

1. 의존성 설치

Node.js 패키지

npm install fastapi mysql-connector-python pydantic python-dotenv uvicorn uvicorn[standard] PyJWT

Python 패키지

pip install -g truffle browserify

3. Ganache 실행

Ganache를 실행하여 로컬 블록체인을 시작합니다.

4. 스마트 계약 배포

truffle migrate --reset

5. 서버 실행

  • 백엔드: FastAPI 서버 실행
uvicorn main:app --reload --host 127.0.0.1
  • 프론트엔드: Node.js 서버 실행
node index.js

소감 및 향후 계획

이 프로젝트를 통해 블록체인 기술과 동형암호 알고리즘을 실제 시스템에 통합하는 방법을 학습할 수 있었습니다. 향후에는 대규모 네트워크 환경에서의 성능 최적화와 동형암호 알고리즘 개선을 진행할 계획입니다.