Inspiration

VTrust is decentralize blockchain empowered web based voting eco system. Varies fields utilize varies voting methods to achieve the many goals like as analysis the society ideas about particular term, for researches, for appointed to new committee members and many more. Even national level ballot we voted and appointed new people to control the country. So in that time we say vote is democracy. So according those stuffs voting system is essential term of our life. In traditionally we used paper base ballot system. Actually it has huge issues than the advantages first like as,\n • Higher amount of cost • Confidentiality issues • Tracking issues • Authentication issues • Privacy issues • Security issues • Time consumption is high According to those bottlenecks, we can understand paper base voting system not appropriate approach to organize the ballot. So the last impact is make unappropriated bad decisions according to the input data. In this digital era humans try to found the digitalize solution. So try to implement the E voting systems but that has also huge issues.

Software industry kind of challenging and competitive industry because technologies are rapidly changing and this generally software’s made by humans not the computers, so any time we can’t say each E voting system which we use are secure or not because sometimes critical bug until not seek by the human include in that particular system. And other thing is normal e voting system has a owner so it is reason to decrease the trust of that kind of systems. Another thing is vote should be confidential term. So according that kind of voting system, we can’t say that terminology protect the system as 100%. So it is kind of huge issue. So security it is a most unavoidable challenge in the normal l Evoting system because that security levels broke by also the humans. So normal Evoting system mainly has that confidentiality and security issue. So humans try to implement the solution for this kind of barriers. So they introduce new technology which called blockchain. We can say blockchain is a distributed database. This concept is introducing by Sathoshi Nakamoto on 2008. He introduces that concept for bitcoin that world famous cryptocurrency. After implement bitcoin on the bitcoin blockchain it is population increase higher than they expected because of trust. Blockchain is a distributed decentralize database. It has so many mechanisms to implement the security like as proof of works(mining) and more. It is kind of complex mechanism because each data must want to verify from whole network. So it has very few amount of probability to break this mechanism. That’s why people always trust this blockchain. Generally, platform that have social media characteristics, make some social conflicts because of this trust. Sometimes people create fake accounts and try to inspire their interest idea in the platform and utilize bots to break the technical barriers and many more. VTrust voting system I develop for answering for all these points. This is blokchain empowered voting system. Each person can trust about their voting because no one can’t execute exploits in this system because every activity verifies the blockchain and store that data inside it.

What it does

World technology have several weak areas. Security is the one of main term of that. It is the measure of the reputation of certain organization because users trust is the major point to earn it. So in this project I very much focus of that. I hope develop the Voting system web application empowered with blockchain. In traditional voting system has several weaknesses. Can’t trust system 100% is the main problem. So blockchain avoid that problem. So I discuss deeply those stuffs in background chapter. When initiate this project I try to add basic features of the ballots including blockchain features. So I stick with plan to achieve milestone one by one. So I mainly concern about 5 objectives Objective and Goals

  1. Provide 100% secure voting system As I previous mention security is major requirement in the voting system. So this major objective my VTrust voting system. So I used blockchain to achieve that objective. So website ballot related processes all are verify through blockchain and also that related data store in the blockchain. So it is helpful to avoid the confidentiality, privacy issues and security issues. Every person same voting in the system. So no any specialty user wise configuration in there. Another thing is in the voting process voter and voted details are verifying through the blockchain, if user not pass the that verification website pop up the error flash messages.

  2. Provide secure and flexible authentication system VTrust system has unique authentication system. It is data verify through the blockchain and also the internal server. So automatically kind of 2 factor authentication system process in the system. When register the user to website, user must have a Etherium wallet address and also the metamask wallet because most blockchain validation execute base on the etherium account address. And I also implement the VT token. So when user register, that token automatically deploy in the user’s wallet. Another thing is when user login it also verifies through from blockchain and internal server. So according that login next stages authentication system working. And also good form validation used for the valid the form values inside the frontend. When user are doing something wrong, he or she can identify that via frontend. So that’s increase the flexibility of the system. And other thing is no any payment want to purchase when register and login to the system.

  3. Provide public ballot environment VTrust voting system have two-way process. First one is public perspective of the website. Actually After user logged into the system, user can see ballots which are publicly published. Anyone can vote to that public ballots without any cost. But one user has one voting power for each ballot. It is very much important thing to maintain the trust of the system. Whole ballot part control through the ballot smart contract. So every data store only on the blockchain according to ballot part. And all verifications also provide through the blockchain. So even ballot admin who create that particular ballot can’t control it. That the wonder of this D centralize applications. Other things is this public behave as a social media site because anyone can follow the ballots, anyone can share the ballot links to other social media like as Facebook. And also anyone can view the winning proposal after end of the ballot voting period. And analysis chart embedded into every ballot card. So user can understand current status of the ballot easily.

  4. Provide private ballot environment Other perspective is private ballot. It is behaving as official ballot because it is extremely private and only can voting for people who invite by the ballot admin. Ballot admin can invite to vote for ballot through email. That feature has implement in this system. And this special verification also executes through the blockchain. It monitors the voters and given access for only right person.

  5. Simple user interface VTrust is a voting site. So any people should be can engaged with simple as possible. So that’s why I decide to use simple and clear user interface for system. It is increase productivity of the system and it is cause to increase the attraction. When filling the forms, most of occasion provide simple and effective validation messages. Some flash messages are directly manipulating from the blockchain. So it also increases the trust of the system.

  6. Provide analysis environment Vtrust voting system also provide analysis dashboard every user. That dashboard views the ballot data that user owns. That dashboard provides so many details. So according that details ballot can get decisions.

How we built it

VTrust is mobile responsive blockchain empowered web application. So there are some basic and also the blockchain related specification should have to implement this system. We can divide into that two categories, A. Hardware requirements • PC or laptop which have good processing power and RAM. • Internet connection

B. Software requirements • Integrated Development Environment  VS code – Develop for web system.  Remix IDE- Develop for smart contracts. • Metamask wallet – Execute transaction between web system and blockchain. • Ganache – Etherium blockchain simulator • Mailhog local email server • Browser which support to web3 feature. • Github – Control the version of the system. • Trello board – For track the project

Challenges we ran into

Challenge solidity language has a method to identifying the user that execute the transaction through metamask, in my project all the transaction executes through one metamask account (website account). So smart contract only identify that account weather execute transaction through other wallet address. So in that method smart contract cannot identify correct wallet address and can’t execute the authentication right manner.

Solving method Actually that’s why we get the wallet address as an input when user register and login to the system. According that method smart contract can determine the correct wallet address and also it is helpful for create a powerful authentication system because after user logging into the website smart contract store mind it and it is helpful for manage authentication very secure way.

Challenge In profile data store in mysql database and also the blockchain. So when change the data, data that store in two places should want to edit. Otherwise that user account corrupts. In here main problem is edit the password. Because I used Django default authentication system for authentication to inside the server. That password store using sha256+salt so when I try to verify the current password it given error.

Solving method Then I realize problem is salt so then I split that current password hash and get the salt. Make password according that salt and hash256. So then I solved that problem.

Challenge Inside the ballot creation form how get the proposal count and show the certain count fields according the given proposal count.

*Solving method * I used to ajax to solve this problem. When user press the first forward arrow inside in the initial ballot creation stage, get that proposal count using js and pass to server and then pass to js and create for loop inside in the java script file and create it manually.

Challenge As we previous mention when I stored data in the blockchain through smart contract I should want to implement the correct data structure to handle and maintain the data. So In that time mapping used for the store the data belongs to the unique reference, according to that proposal also I wanted to create for unique identity to store data. Issue is proposal count is dynamic and how to create a unique identity for certain proposal.

Solving method First I realized thing I every proposal belongs to particular ballot and so I used that id for part the unique identity of the proposals and other part I get from the proposal number. It is mean when I create the 2 proposal for ballot that id is 1. Proposal ids are manipulating below way. 1-0 1-1 That way never repeats the same identity in twice. It is string so I used several solidity programming methods to implement that one.

Accomplishments that we're proud of

VTrust ballot system is a provide a unique experience for users because It is very difference than normal ballot system. In the Background chapter I discuss those weaknesses that traditional ballot system. VTrust voting system is blockchain empowered decentralize system. So users who involve this system can trust the system completely. Other thing is any user who registered system can vote without any fees to the public ballot. So I used some social media concepts to the public ballots also. So people can get trusted preferences from the public world. According private ballot, Eligible people only can vote for those ballots. That eligible users can chose by the ballot owner. Other thing is some analysis charts display in UI to get the correct idea about the certain ballot. VTrust system hasn’t business mode for yet. As I mention in the future work chapter, I supposed impalement the user friendly business model. According that way people haven’t any limitation for voting but each person can’t vote twice for certain ballot. Overall system has a super decentralize mechanism. According to that some innovative strategies I used to implement the system, i. Authentication work parallel with internal server. So it works as a automatic 2 authentication system. ii. File structuring - I used new file system than normal Django file system because in here we use blockchain to control the system. iii. Login and Registration has some new look than the traditional system. iv. Inside the ballot creation process, agreement part interface implement as innovative way. v. Most validation and display messages provide through blockchain.

What's next for VTrust Voting System

VTrust voting system most features I implemented but there is main weakness of the system, that is this system I not proposed a business model. Actually according present implementation, all the transaction executes through the website wallet address. So that all cost should want to pay website owner but in the future I try to introduce a business model that model is, • Anyone can have registered to the system without spend any payment. • Anyone can vote to the ballots without spend any payment. • When user create a ballot that user should want to pay according to ballot creation and I add some profit margin also. • Private ballot fees much higher than public ballot creation. VT token I develop for execute this purpose. So when user create the ballot he can pay the fee through VT tokens. That VT tokens can buy through website store. That is another future implementation. And also I supposed to implement the user friendly contact area, therefore I hope to utilize chat robot and social medias. If user have to problem, they can clarify that problem through contact area.

Share this project:

Updates