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.
Code
Clone this repository
Search code…
Latest commit message
이더리움 기반 동형암호 기술 전자 익명 투표 시스템
프로젝트 개요
이 프로젝트는 이더리움 블록체인과 동형암호 기술을 활용하여 전자 투표 시스템을 설계 및 구현하는 것을 목표로 합니다. 탈중앙화된 블록체인 기술과 강력한 보안성을 제공하는 동형암호를 결합하여 투표 데이터의 무결성과 익명성을 보장하는 시스템을 구축하였습니다.
주요 기능
1. 스마트 계약
- 투표 생성, 참여, 집계 기능 제공
- 데이터 암호화 및 검증 처리
- MetaMask와 Web3.js를 통한 연동
2. 프론트엔드
- 사용자 친화적인 투표 인터페이스 제공
- 실시간 투표 결과 조회
- 블록체인 네트워크와의 데이터 동기화
3. 동형암호
- 데이터 암호화 및 안전한 연산 수행
- 투표 데이터 익명성 보장
시스템 구조
구성 요소
- 스마트 계약: 투표 관련 로직을 이더리움 네트워크에 배포
- 프론트엔드: 사용자가 투표에 참여하고 결과를 확인할 수 있는 인터페이스 제공
- 백엔드: 데이터베이스 관리 및 API 제공
- 동형암호 알고리즘: 데이터의 보안성과 익명성을 보장
테스트 진행
1. 기능 테스트
- 테스트 항목: 스마트 계약의 투표 생성, 참여, 집계 기능 및 UI 점검
- 결과: 모든 기능 정상 동작
2. 통합 테스트
- 테스트 항목: 블록체인, 스마트 계약, 백엔드, 프론트엔드의 연동 확인
- 결과: 데이터 동기화 및 통신 정상 확인
3. 보안 테스트
- 테스트 항목: 사용자 인증, 데이터 암호화, 네트워크 통신 안전성 검증
- 결과: 데이터 보안 및 익명성 확보
개발 진행 상황
진행 현황
- 스마트 계약 개발
- 데이터 암호화 및 검증 기능 구현
- MetaMask와 Web3.js를 통한 연동
- 프론트엔드 개발
- 사용자 인터페이스 설계 및 개발
- 투표 결과 실시간 조회 기능 구현
- 동형암호 설계
- 암호화 알고리즘 비교 및 데이터 처리 로직 설계
사용 기술 스택
프로그래밍 언어
- 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
소감 및 향후 계획
이 프로젝트를 통해 블록체인 기술과 동형암호 알고리즘을 실제 시스템에 통합하는 방법을 학습할 수 있었습니다. 향후에는 대규모 네트워크 환경에서의 성능 최적화와 동형암호 알고리즘 개선을 진행할 계획입니다.