Smart contract based decentralized voting system
Dimnik, Luka (2023)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202304246067
https://urn.fi/URN:NBN:fi:amk-202304246067
Tiivistelmä
This project has started out of the need for secure voting system which minimizes the need for trust regarding the party conducting the vote operation as well as other participants. The outcome of the project is intended as a proof of concept for the application of blockchain voting system on a small organizational level with minimal overhead. This new voting system should also eliminate the need for external database dependency for authentication.
In the theoretical part of the thesis reader can get an understanding of the concepts that make blockchain development possible. Concepts such as blockchain, smart contracts, NFTs, Ethereum, cryptocurrencies and more are explained in moderate detail.
Thesis goes in to details and describes the technologies that were chosen to complete the project and what was the rationale behind the decision.
Practical part of the thesis describes the architecture of the application and describes the details of setting up the local development environment. It continues with describing the process of implementing the smart contracts and user interface. Smart contracts were implemented with solidity, Openzeppelin, NodeJS, Hardhat and ethers and user interface was implemented with ReactJS, ethers and Metamask wallet.
Results and outcome of the project are discussed at the end of the thesis. Project provided a good outlet for the author to gain knowledge about the emerging field of blockchain development. Project achieved the initial objectives of the thesis. Outcome of the project was a functional decentralized application deployed on the Ethereum testnet with a functional UI and an access token NFT as a form of authentication. Smart contracts were never deployed to the mainet due to high Ethereum fees which were also stated as one of the reasons why Ethereum smart contract platform is not yet ready for mass adoption.
In the theoretical part of the thesis reader can get an understanding of the concepts that make blockchain development possible. Concepts such as blockchain, smart contracts, NFTs, Ethereum, cryptocurrencies and more are explained in moderate detail.
Thesis goes in to details and describes the technologies that were chosen to complete the project and what was the rationale behind the decision.
Practical part of the thesis describes the architecture of the application and describes the details of setting up the local development environment. It continues with describing the process of implementing the smart contracts and user interface. Smart contracts were implemented with solidity, Openzeppelin, NodeJS, Hardhat and ethers and user interface was implemented with ReactJS, ethers and Metamask wallet.
Results and outcome of the project are discussed at the end of the thesis. Project provided a good outlet for the author to gain knowledge about the emerging field of blockchain development. Project achieved the initial objectives of the thesis. Outcome of the project was a functional decentralized application deployed on the Ethereum testnet with a functional UI and an access token NFT as a form of authentication. Smart contracts were never deployed to the mainet due to high Ethereum fees which were also stated as one of the reasons why Ethereum smart contract platform is not yet ready for mass adoption.