Professional Documents
Culture Documents
Decentralized Voting System Application: Presented By: Professor
Decentralized Voting System Application: Presented By: Professor
Application
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Plan
1 Objectives
2 Introduction
3 Technical Environment
4 Website Development
5 Android Development
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Objectives
Research Blockchain Why are we decentralizing the
Technologies voting system?
• Transparency
• Security
Develop a Decentralized • Accessibility
Voting System Web Page
• Privacy
Develop a Decentralized
Voting System Android
Application
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Introduction
Fault
Tolerance
Distribution Security
Autonomy
Ethereum
Blockchain
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Introduction
Mining
Level
Block Header
Merkle Tree
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Consensus
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Why Ethereum?
Encryption Encryption
Public Private
Permissionless Permissioned
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Technical Environment
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Architecture
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Development
Infura
Infura is a collection of full nodes on the Ethereum network that enable
developers to connect to these nodes through its interface
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Development
Rinkeby
• An Ethereum Test Net
• Uses Testing Ether that can be acquired
for free
• Used by developers to test their applications
before deploying them
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Development
Smart Contracts DataBase
Model a Contract: ID, Name, Address
Issue an event
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Development
Manage votes:
Voter Eligible?
Valid Vote?
-> Store Voter
Smart Contract -> Increment Vote Number
-> Issue an Event
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Development
Web3.js
• Develop websites that interact with the Ethereum Blockchain.
• Make requests to an Ethereum Node with JSON-RPC to read/write data
Web3 Interface
JSON-RPC
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Demonstration
Android Application Development
Specifications:
• Users can Login to their wallet using:
- Private Key
- 12 words Mnemonic Phrase
• New Users can create a wallet
• Admin can create multiple elections and delete them
• Users can vote only once in the same election
• Admin can create/delete/modify candidates
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Android Application Development
Welcome Screen:
• Login to wallet with Private Key/Mnemonic
• New Users can create a wallet
- 0.005 Ether transferred to their new address
• Save Login information
• Login users directly every time they open the app
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Android Application Development
Central Wallet
Holds over 30 Ethers
0.005
Ether
User Wallet
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Website Development
Smart Contracts DataBase
Model a Contract: ID, Name, Address
Issue an event
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Android Application Development
Model a Candidate
Add/Remove a Candidate
Modify a Candidate
Manage votes:
Voter Eligible?
Valid Vote?
-> Store Voter
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Android Application Development
Generate .bin Generate
.sol .j
.abi
Web3.j Web3.j
Web3 Interface
JSON-RPC
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.
Android Application Demonstration
Impact & Conclusion
Security
Decentralization
Transparency
Time Saving
M1 – Blockchain Final Project Decentralized Voting System Application Michel – Imad – Charbel H.