Abstract
Existing online voting is not being used for public elections due to uncertainty about security threats, and offline voting costs a lot of money. As an alternative, blockchain is emerging. Applying blockchain technology to online voting will ensure transparency and confidentiality, because voter information and aggregate information are distributed and managed. Since a blockchain distributes the voting information, it will be more secure than existing central server - based online voting systems. If blockchain technology is applied to public elections, and the transparency and confidentiality of the voting information is guaranteed, the cost of voting will be greatly reduced. This paper tries to apply to an online voting system the Ethereum platform from among the blockchain technologies. Ethereum is a highly scalable blockchain technology that provides a smart contract based on the Solidity language to develop an online voting contract and to distribute the contract to each voter. Each voter votes on the contract that has been distributed, and the votes are distributed to other voters. The experiment verifies the consistency of the stored voting information.
기존의 온라인 투표가 보안 위협에 대한 불확실성 때문에 공적 선거에 활용되지 못하고 있으며 오프라인 투표로 인해 막대한 비용이 소요되고 있다. 이에 대한 대안으로 블록체인 기술이 대두되고 있다. 블록체인 기술을 온라인 투표에 적용하면 투표자 정보 및 집계 정보를 분산 관리하므로 투명성과 기밀성이 보장될 수 있을 것이다. 블록체인은 투표 정보에 대해 분산관리하므로 기존의 중앙 서버 기반의 온라인 투표 시스템보다 보안 위협으로 부터 안전할 것이다. 이와 같이 블록체인 기술이 공적 선거에 적용되어 투표 정보의 투명성과 기밀성이 보장된다면 투표로 인한 비용을 획기적으로 감소시킬 수 있을 것이다. 본 연구에서는 블록체인 기술 중에 이더리움 기술을 온라인 투표시스템에 적용 개발하고자 한다. 이더리움은 확장성이 뛰어난 블록체인 기술로서 솔리디티 언어 기반의 스마트 컨트랙트를 제공한다. 이더리움의 스마트 컨트랙트를 이용하여 온라인 투표 컨트랙트를 개발하고 각 투표자에게 컨트랙트를 배포한다. 각 투표자는 배포 받은 컨트랙트에 투표하며 투표한 집계는 다른 투표자들에게 분산 저장된다. 실험에서는 저장된 투표 집계 정보에 대해 일관성을 검증한다.