E-voting System Based on Ethereum Blockchain Technology Using Ganache and Remix Environments

—In the second decade of the twenty-first century, blockchain is considered one of the most popular computer technologies. Blockchain is a zero-trust network, making it a potent tool for various services provided that people are ready to believe and invest in it. In the Ethereum world, the blockchain runs on smart contracts, self-executing applications that come at the cost of security. As technology is used increasingly, Election is facing new issues of trust and management. Therefore, E-voting systems are increasingly acceptable because they are more accurate, reliable, practical, and secure. This research purpose is to propose a decentralized elections application based on Ethereum; the application was developed using the Truffle development framework. The actions of the software were written into an Ethereum smart contract, which was then deployed on the Ethereum network. A web interface had been used to read the user's vote before it was broadcast to the Ethereum network through the web3.js API. The ganache was utilized as the Ethereum client. Metalmark was used as a wallet on a website, and the remix was used to deploy the smart contract on the main network, the results of implementing the proposed system show that the cost of each transaction is not stable, its increases with the increase the network load, and the throughput ends up at 14 transactions per second.

• A smart contract-based blockchain-based eelection system that operates on Ethereum and provides a set of rules for communication and contract decisionmaking among participants. • Blockchain technology has the potential to move beyond the constraints of centralized voting systems, demonstrating that it is not only quick and cheap but also safe and secure. • Ganache, the Truffle framework, NPM, metamask, and Remix ide were among the technologies utilized in this project.
Abstract-In the second decade of the twenty-first century, blockchain is considered one of the most popular computer technologies. Blockchain is a zerotrust network, making it a potent tool for various services provided that people are ready to believe and invest in it. In the Ethereum world, the blockchain runs on smart contracts, self-executing applications that come at the cost of security. As technology is used increasingly, Election is facing new issues of trust and management. Therefore, E-voting systems are increasingly acceptable because they are more accurate, reliable, practical, and secure. This research purpose is to propose a decentralized elections application based on Ethereum; the application was developed using the Truffle development framework. The actions of the software were written into an Ethereum smart contract, which was then deployed on the Ethereum network. A web interface had been used to read the user's vote before it was broadcast to the Ethereum network through the web3.js API. The ganache was utilized as the Ethereum client. Metalmark was used as a wallet on a website, and the remix was used to deploy the smart contract on the main network, the results of implementing the proposed system show that the cost of each transaction is not stable, its increases with the increase the network load, and the throughput ends up at 14 transactions per second.

Introduction
In contemporary society, e-voting systems are becoming more popular. It has a considerable chance of lowering administrative expenses as well as raising the rates of participation. In the case when utilized in elections, e-voting systems need to be accurate, reliable, practical, and secure [1]. Even though numerous electronic voting has become popular in several nations, there is no acceptable, trustworthy, or efficient system for people in the national elections since it necessitates some contradictory qualities. For authentication and privacy protection, the election requires one or more authorities, but a voter cannot trust a government or authority that will never be hacked and always respect the law [2].
Blockchain technology is an emerging field, but it has a solid cryptographic base, allowing applications to benefit from such capabilities and produce adaptable security solutions. Satoshi Nakamoto developed the blockchain in 2008 as a global ledger for the Bitcoin cryptocurrency [3]. It is a distributed decentralized database that keeps an exhaustive list of continuously expanding and growing data records made secure against unauthorized tampering [4].
The main aim of this research is to design and implement a proposed electronic voting system based on blockchain technology to achieve the principle of security that is capable of offering fairness and privacy, providing transparency, and preventing fraud and manipulation. Ethereum blockchain is one of the most popular types of blockchain that relies on the proof of work protocol. Our contributions were implementing the electronic voting system using Ethereum smart contract in the truffle environment and using the ganache environment as a local blockchain, in addition to implementing the smart contract in 563 the remix environment in order to deploy our smart contract in the main blockchain, General Structure of the Research consist of the following topics: Section one: The research starts by explaining the general overview of electronic voting systems based on 1) Ethereum blockchain technology, remembering the aim of the research, and explaining our contribution. Section two: in this section, we reviewed some of the related work and make a comparison of them 2) depending on some criteria. Section three: this section explains the significant problems in the traditional E-voting systems.

3)
Section Four: In this section, we explained the reasons for using blockchain technology to build an 4) electronic voting system. Section five: This section explains the Ethereum Blockchain, its structure, Structure and its mining.

5)
Section six: Explain the implementation of the proposed system.

6)
Sections seven and eight: These sections explain the measurement, results, and discussion. 7)

Literature Review
There are many previous studies based on blockchain technology in electronic voting systems, and here is a review of some of them, Table 1, shows a comparison among them:  [5]. The significant idea of the study is that voting data can be stored on a blockchain and linked to a Bitcoin token. All voters will be made aware of the addresses of the nominated candidates. The token is sent to the appropriate candidate's Bitcoin address to cast a vote. The number of tokens sent to the associated Bitcoin address determines how many votes the candidate receives.

Internet Voting Using Zcash
(Pavel Tarasov & Hitesh Tewari,) [6]. This study employed Zcash technology, a decentralized blockchain payment seeking anonymity for transactions. Zcash depends on zero-knowledge proofs. It makes the transaction data public. When a voter clicks on the ballot link, they are taken to the ballot page, where they must enter a receiving t-address and a z-address to send their vote. The voter uses a z-address to secure the anonymity of their vote. If the candidate utilizes a z-address, the transaction between the voter and the candidate is private. The vote count and audit, which take place after the count to assess the election process and confirm that the integrity of the election has not been compromised, are the last stages of the voting procedure.

Trustworthy Electronic Voting Using Adjusted Blockchain Technology
(Basit Shahza & Jon Crowcroft,) [7].The authors of this study proposed a system using efficient hashing techniques to ensure that the data is secure. This work presented the concept of block creation and block sealing. Implementing a blocksealing idea made the blockchain adaptable to the voting process requirements. The authors advised adopting a consortium blockchain, which guarantees that the blockchain is held by a government board and cannot be accessed by other parties without authorization.

A Modernized Voting System Using Fuzzy Logic and Blockchain Technology
(Mousumi Mitra & Aviroop Chowdhury,) [8]. This study proposed a new idea that used weighted logic to determine the number of points that must be assigned to each candidate. Every voter and candidate would have a digital wallet. After the vote is cast and the points are decided, the points are used to programmatically transfer coins from the wallet of the voters to the wallet of the candidates. There would be one transaction for every chosen candidate. Each candidate would receive an equivalent number of coins based on the fuzzy logic-derived points. 564

The Problems Statements of The Traditional E-Voting Systems
This research addresses the problems and limitations of the traditional voting systems, including: Security Attack: Elections always need a high level of security to safeguard voter privacy and the fairness 1) of the process. Lack of confidence in elections may be depressing voter turnout.

2)
Vote-buying, when a candidate or a political party tries to buy a voter's vote in an upcoming election, 3) makes the voter open to exploitation and pressure. Lack of transparency is fundamental to a successful voting system.

Motivation for Using Blockchain Technology
Blockchain technology is fundamentally a decentralized system, which eliminates the need to deal with a third-party organization or a central administrator.
The system database may be protected using Blockchain technology since each transaction has its evidence of validity and authority to impose limitations.
Every action is recorded on the blockchain, and the data included in the records are available to all Blockchain participants and cannot be changed or withdrawn.
The blockchain's immutability is achieved by agreeing on and sharing transactions. Once a transaction is connected to the blockchain, it will be difficult to change or delete it [9,10].

Ethereum Blockchain
The Ethereum effort started in 2014 and is now the second most well-known blockchain project after Bitcoin. It was described in Vitalik Buterin's paper and addressed various constraints of Bitcoin's programming language. The key advantages over blockchain structure include full Turing-completeness, which means that Ethereum supports all forms of computations, such as loops, then supports the state of the transaction [11]. With Ethereum, developers can create random consensus-based applications with standardization, ease of development, feature completeness, and interoperability offered via various models. Ethereum aims to combine and enhance the concepts of scripting, altcoins, and on-chain meta-protocols. It achieves this by building a blockchain with a built-in Turing-complete programming language that anyone could use for creating smart contracts and decentralized applications with their own random ownership rules [12]. There are two main Ethereum accounts, which are: the Externally Owned Account (EOA), which allows a user to send a transaction with other users in a direct manner, and the Contract Account (i.e., the Smart Contract), which enables the user to send internal transactions according to the contract's run code [13].

Ethereum Virtual Machine (EVM)
A programmable blockchain exists in Ethereum. Instead of providing the users with a group of predefined operations (such as the bitcoin transactions), Ethereum lets the user design his procedures regarding any level of complexity. Acting that way provides a platform for a wide range of decentralized blockchain applications [14]. Each of the opcodes has a particular cost (gas) based upon the necessity of the instruction's resources, as well as fees paid to the miners. Executing such instructions on the EVM requires a certain gas amount, and execution will be terminated when the gas ends. To run smart contracts and pay for the computational cost, like CPU and energy, the user of EVM fills gas with Ether [15].

Smart contract
A contract has been designed to carry out certain tasks. Nick Szabo coined the term "smart contract" in 1994, and it refers to a piece of software that performs a series of tasks in a blockchain system using the consensus protocol. A smart contract is a computer program written in a high-level language like Solidity that may be used in a variety of industries to eliminate thirdparty transactions and automate processes [16,17].

A decentralized application (DApp)
is software that operates on a peer-to-peer network of computers without using a central computer to send or receive data. Decentralized apps use blockchain and smart contracts to enforce their agreements between parties [12] .

Ethereum Blockchain Structure
We discover that a block B has transactions T, a header H, and Ommer block, sometimes known as uncles U: = ( , , ) Ethereum blockchain structure is visualized in Figure 1, as it may be seen, the block header links various tries, and the body contains the transitions. hash.
Beneficiary: This header, which comprises a 160-bit address, is the account address of the user who mined 3) this block and received a reward. StateRoot: The root node of the state trie's Keccak 256-bit hash is contained in this header. It is determined 4) following the processing and completion of all transactions. ReceiptsRoot: The Transaction Receipt Trie root's Keccak 256-bit hash is contained in this header.

5)
TransactionsRoot: The root node regarding the transaction trie's Keccak 256-bit hash is contained in this 6) header. The list of the transactions that are included in the block is represented by the transaction trie.
Receipts root: This header contains the Keccak 256-bit hash regarding the transaction receipt trie's root 7) node. All of the receipts from the transactions in the block are collected in this trie. After each transaction is performed, transaction receipts are created, and they include helpful post-transaction data. The logger address and log topics from each transaction receipt's log entry in the block's included transaction list make up the logs bloom filter. Difficulty: The current block's difficulty is indicated by this header. 8) Number: This block's ordinal number is represented by the scalar value of this header. Each new block 9) adds one to the chain's total number. GasLimit: This header is the scalar value containing an accumulated gas limit required to process all 10) transactions in this block. GasUsed: This header is a scalar value that contains the total amount of real gas utilized to perform the 11) transactions in this block. Timestamp: This header contains the block initialization time in UNIX epoch time.

12)
Extra data: Any data pertaining to the block may be stored in this header.

13)
Mixhash field: When paired with the nonce, this header's 256-bit hash can be utilized to demonstrate that 14) enough computational work was done to create this block.

Nonce
In conjunction with the mixedhash field, this header's 64-bit hash (a number) is utilized to demonstrate that sufficient computational effort was expended to construct this block.

Ethereum Transaction
The life cycle of a transaction in the Ethereum network is depicted in Figure 2. Users must first log onto an Ethereum account to receive and send transactions. All transactions are collected in the Mempool at this point. Then, to mine a block, a 566 miner chooses a transaction from the Mempool and decides whether to reject or confirm it. When miners successfully validate a block, they add it to the blockchain and update the chain across all Ethereum network nodes [19].

Ethereum Blockchain Mining
Even though there are a few distinctions, the Bitcoin and Ethereum blockchains are comparable in various aspects. The primary difference between Bitcoin and Ethereum's blockchain architecture is that, in contrast to Bitcoin, Ethereum blocks include copies of the most current state and transaction list [12]. The following describes the fundamental Ethereum block validation algorithm, as shown in Figure 3.
Check that the previous block referenced is both valid and present. 1) Make sure the timestamp is less than 15 minutes in the future, higher than the timestamp regarding the 2) referenced previous block. Check the validity of difficulty, block number, uncle root, transaction root, and gas limit (as well as other 3) valid Ethereum-specific concepts).
Check that a block's PoW is valid.

4)
Let S[0] be the state at the previous block's end.

5)
Assuming that TX represents the transaction list of the block, with n transactions. For each i in 0...n-1, set 6) . Return an error when any applications return an error or if the block's total gas consumption up to this point is greater than the GASLIMIT. Assume that S_FINAL is S[n]; however, the addition of the block reward that has been paid to the miner. 7) I was checking that the final state root specified in a block header matches the Merkle tree root regarding 8) state S_FINAL. If so, the block is valid; if not, it isn't valid. Since the state is stored in the tree structure, a small portion of the tree must be modified after each block. Because almost all trees must be the same between two adjacent blocks data could be stored once and referenced twice via pointers (hashes of subtrees). To do this, a unique sort of tree referred to as a "Patricia tree" has been utilized. Along with a tweak to the Merkle tree idea that makes it possible for nodes to be added and removed, rather than updated, efficiently [20].

Design Considerations
When designing the system, the following points were taken into consideration • Illegal candidates should not be permitted to use the electronic voting system.
• A voter should only be permitted to vote once, and the system should prevent voters from voting multiple times. • It should provide the greatest privacy to voters while also ensuring that their votes are not tracked. • No one should be able to influence the outcome of the vote.
• No single authority should be able to control counting in the system.

Developing Tools
To implement this decentralized application, the following tools are required:

NPM
With no less than 1.7 million packages, the Node.js Package Manager (also known as npm) supports one of the largest developer ecosystems in the world and it plays a crucial part in the JavaScript community [21]. With each package frequently depending on many others, such packages give developers significant libraries and features without them having to "reinvent the wheel" [22]. NPM's most distinctive feature is that it enables users to not just install multiple versions regarding a package, yet also utilize multiple versions. throughout one execution run [23].

Node.js
Node.js. has been created by R. Dahl in the year 2009, and sponsored by joyent, which is the company Dahl was working for. Basically, Node.js uses Google V8 2 engine to run JavaScript code on the server side [24]. One recent JavaScript technology is represented by Node.js. It creates scalable, quick network applications. Node.js is effective and lightweight, which makes it ideal for real-time data-intensive applications which operate across distributed devices. It utilizes an eventdriven, non-blocking I/O approach. Corporations are rapidly realizing the significance of Node.js and 5 main PAAS providers have supported Node.js. [25]. With the use of the NPM package repository's thousands of modules, Node.js provides a convenient trade-off between application performance and developer productivity, enabling developers to create apps rapidly and ready for production [26].

Web3.js (Ethereum JavaScript API)
With the use of HTTP, WebSocket, or IPC, you can communicate with a remote or local Ethereum node utilizing the web3.js library collection.

Ganache
A local development blockchain called Ganache is employed to simulate the actions of a public blockchain, smart contracts are released using Ganache, which is also utilized to execute testing. To test the smart contracts on the local bases of the blockchain, Ganache provides ten accounts with 100 Ether [27].

Truffle framework
For use with Ethereum smart contracts, a truffle is a potent tool. A command-line program called truffle has a built-in smart contract compiler. It serves as a platform for testing automated contracts, and administers networks, and packages in addition to being utilized for the compilation, deployment, and linking of smart contracts [28 , 29].

Solidity
Solidity can be defined as a contract-oriented, high-level language that can be utilized for the implementation of smart contracts. A high-level, statically typed programming language called Solidity is Turing-complete. It is intended to target the EVM and was influenced by C++, JavaScript, and Python [30]. In addition to supporting libraries, inheritance, and sophisticated user-defined types, Solidity is statically typed. Solidity enables the creation of contracts for various purposes, which include crowdfunding, blind auctions, voting, multi-signature wallets, and more [31].

Metamask
With a GUI, Metamask can be defined as a user-friendly, open-source, solution for Ethereum transactions. The framework browser could be used to run Ethereal Dapps without a full Ethereum hub. In essence, Metamask acts as a bridge between a browser and Ethereum blockchain [32].

Remix IDE
For JavaScript-based smart contracts, Remix IDE (Integrated Development Environment) represents a well-liked browserbased IDE.

E-voting System Architecture
Building the system consist of creating a smart contract, deploying them on the Ethereum network, and `constructing a voting client-side application. We have an HTML, CSS, and JavaScript front-end client. Rather than using a back-end server, the client will connect to an Ethereum blockchain. Depp's code was written in Solidity.
Ganache Initialization : first, start the Ganache to start the blockchain 1) Create the smart contract: The responsibility for reading from and writing to the Ethereum blockchain will 2) fall to this smart contract. It will enable us to keep track of all votes and voters, as well as a list of candidates running in the election. It will also administer all election regulations, such as the requirement that accounts only vote once. Test Voting: using the Mocha testing framework and the Chai assertion library to write our tests in 3) JavaScript. The test was created for two purposes: • Determines whether the contract was formed with the appropriate number of applications.
• Ensure each person has the appropriate identification, name, and vote total. Also, ensure that our function prohibits a vote from being cast twice. Deploy the smart contract: make the smart contract available to users of an Ethereum network, 4) transmitting an Ethereum transaction containing the smart contract's-built code to no one in particular. migrate the smart contract: Migrations are JavaScript files that assist in the deployment of smart contracts 5) on the Ethereum network.
To vote, users must pay a small fee in the form of gas. This gas fee can be made in a variety of ways.

6)
Metamask is one of the methods we will employ here. It is a Google Chrome or Mozilla Firefox extension. Metamask enables us to access the decentralized blockchain via our browser and execute Ethereum contracts without having to run an entire Ethereum node. To log into Metamark, we must select one of the ten accounts offered by ganache. The transaction execution steps can explain in the following steps as shown in Figure 4: the user selects the candidate and clicks Vote on the HTML page.

1)
The vote click event is handled by a JavaScript component. After that establishing a connection with a 2) node of the Ethereum network using the Web3.js module of Ethereum communication creates a proxy to the Voting smart contract and runs its castvote() function while passing chosen candidate along. Since a function call modifies the voting Dapp's state and necessitates a digital signature that is issued at the time of the call, it has been known as a "transaction." "Local" Ethereum node that has validated voting transaction verifies it. The validation transaction entails 3) verifying several factors, including that sender has enough ether for covering the whole cost of executing the transaction, that the digital signature matches the address of the sender, and that castVote() function 569 won't fail due to the submitted data. The current node publishes the transaction to each one of its peer nodes if validation is successful (which are nodes it is connected to). If the validation fails, the transaction just disappears and is not published again. The transaction finally reaches multiple "mining nodes" after being correctly validated. A mining node 4) represents a unique type of node that actively processes incoming transactions hoping to receive a reward rather than just validating them. A cryptographic puzzle called Proof of Work (PoW) utilizes the newly constructed block as input. The 5) mining node has the right to append the new block to the blockchain and then claim the reward for the job that has been completed in the form of a set amount of ether, the cryptocurrency used by Ethereum if it solves the puzzle. A mining node announces a new block to its peer nodes as soon as it successfully appends it to the 6) blockchain. The block will be verified by every one of the receiving nodes. After processing transactions in the block, it will verify that the transaction root hash and state tree root hash that had been reported on the block correspond to the matching local transaction Patricia-Merkle trie and local Dapp state Patricia-Merkle trie. The receiving node will additionally confirm the accuracy of the hash of the prior block reported on the present block. The node will broadcast this block to the peers in the case where validation was successful, and so forth. The node where the transaction has been first submitted eventually receives the block. The smart contract 7) will publish an event of VoteConfirmation after the voting transaction has been carried out throughout block validation, which will be received via the voter's web UI, which is registered to listen to this event. A message of confirmation is shown on the screen to let the user know their vote submission 8) was effective as soon as the web UI's JavaScript handles the VoteConfirmation event.

the Details of The Proposed System Implementation
6.4.1 Typically, the system consists of two models

The Administrator Module
The Administration module is made for the authorized person or admin of the organization. Admin can insert the names of candidates, and Deletion of the names of candidates.

The User or Voter Module
in this module, the User or voter will able to see the names of all electing Candidates and vote for the candidate. The implementation of smart contracts consists of setting up an Ethereum-based blockchain, using the Ganache tool, that will create a blockchain with ten accounts already configured, with 100 Ethers each. Then, running a smart contract on this blockchain requires uploading it to the Ethereum Virtual Machine through one account. Therefore, the steps to set up, and deploy a smart contract are the following: • Configuration of a local blockchain with nodes (virtual machines) and accounts, using Ganache.
• Develop a smart contract using Solidity language.
• Compile the Smart contract code using truffle.
• Deploy the smart contract: make the smart contract available to users of an Ethereum network.

Migrate the Smart Contract
Migrations are JavaScript files that assist in the deployment of smart contracts on the Ethereum network. These files are in charge of staging our deployment activities and are created with the premise that your deployment requirements would vary over time.

Client-Side Election
To carry out the voting, users need to pay a small gas amount. This gas payment can be done in multiple ways. One of the ways that we will be using here is Metamask. To log into Metalmark, we must select one of the ten accounts offered by Ganache, then we create a form that allows accounts to vote in an HTML file. Each candidate's id, name, and vote total are listed in this app. It has a ballot box where we can select our preferred candidate. We use the web3 library, a JavaScript package that enables the communication between our client-side application and the blockchain.

Measurement
Measurements used are 7.1.1 transaction cost which is referred to as the gas cost as well, and it means fees that are required for the successful execution of a contract on the platform of the blockchain [33].
Gas Fee = Gas Price x Gas Limit 7.1.2 Block time which can be defined as a measure of time that is taken by validators or miners within the network for the verification of the transactions within a block and the production of a new block in this blockchain [34].

Blockchain difficulty
which specifies how difficult it is to mine the following block [35].

Transaction per Second (TPS)
Stransaction throughput that is referred to as the TPS (transactions per second). TPS represents the ratio of valid transactions that are initiated within a specified duration of time [36].
transactions Per Block= block size /average transaction size 571

Test voting smart contract in the local blockchain (ganache)
For this test, we created 20 Ethereum wallets loaded with 100 ETH for each round of election and assigned 20 voting keys to the 20 voters. We used these keys throughout this evaluation. At each round of the election, we reset the blockchain and deployed the voting smart contract. Table 2, shows the deployment, and the details of running the 10 accounts. Figure 5 shows the transaction fees that are paid for each smart contract are constant, the detail shown in Table 3.   Due to the mainnet's large scale (about 8, 000 nodes) and the high price of Ether, we executed many transactions at different times, the execution in the mainnet needs a real ether, theTable 4 shows sample details of the execution. The result of implementing the smart contract on the mainnet is as the following, also explained in Table 5 7

.2.2.1 The transaction cost
The price of Ether is not fixed for one day, it changes with the change of the network activity. When the number of transactions in the network increases, the price of Ether also increases as shown the Figure 6 and Figure 7, sometimes reaching more than $150 for one transaction and it goes back down to $10 or $11. In general, notes that the transaction price on Ethereum goes up a bit over time as shown the Figure 8.

Gas price
We note that the price of gas turn between 8.830704778 Gwei and 17.365398166 Gwei, the price of gas has a direct impact by the transaction fee. As shown in Figure 9.

Total difficulty
Total Ethereum difficulty is 58750000000000, As more hashing power has been added to Ethereum mining network, the difficulty has to increase to ensure blocks aren't being produced too fast. The difficulty has been increased in the case where preceding blocks have been produced faster than the block time that has been specified and reduced in the case where previous blocks have been generated at a slower pace compared to the specified block time. In the last two years, we notice that the amount of difficulty is constantly increasing, as shown in Figure 10, highest avg difficulty of 15,101.178 ether.

Throughput
Ethereum has very tiny blocks and ends up at about 14 transactions/second.

Discussion
This research describes a smart contract on the blockchain that operates on Ethereum and provides a set of rules for communication and contract decision-making among participants. It suggests that blockchain technology has the potential to move beyond the constraints of centralized voting systems, demonstrating that it is not only quick and cheap but also safe and secure, making it more trustworthy and exact than previous techniques. Ganache, the Truffle framework, NPM, and metamask were among the technologies utilized in this project. A virtual client was used to test this implementation as well as deployed it in the main network using remix ide.
The results show that the proposed system has the following advantages: • ability to assess the voter's rights and anonymity.
• the voter's ability to verify the authenticity of his vote. As well as the entire counting process of the votes is open to all to be monitored thus. • reducing any chances of manipulations of the votes and the results are seen in real-time. can solve security and transparency. • fairness and trust issues. The Ethereum speed is faster than Bitcoin and Zcash blockchains, the TPS in bitcoin was 7 transactions per second, and in Zcash is 6 transactions per second, we make a comparison among different types of blockchains as shown in Table 6 Ethereum still suffers from Challenges due to its limited capacity for handling transactions. In the case where an excessive number of users attempt to push a transaction through simultaneously, it bogs down the system and results in slower times of transaction and greater fees for each one of the transactions. In the Proof of Work consensus, those block times must be quite high for the minimization of the odds of several validators that simultaneously produce a new valid block in a simultaneous manner.

Conclusion
Blockchains are a new database type, they have solved some issues in centralized systems, like transactions with no need for any middlemen, time that is spent on every one of the transactions, and special or unintentional data modification or deletion in a Blockchain.
Through this work, we have come up with a set of conclusions that included: On top of that, Ethereum has been inhibited by a 15 transactions/sec shared rate. This is because Ethereum 1) keeps utilizing the Proof-of-Work and Ethereum d-Apps compete for limited single blockchain sources. the cost of performing a transaction on Ethereum is typically between $5 and $160 per transaction, 2) depending on network congestion. the Ethereum block time averages around 10 to 20 seconds. In the Proof of Work consensus, those block 3) times must be quite high for the minimization of odds of several validators that produce new valid block in a simultaneous manner. Ethereum was more scalable than Bitcoin and Zcash blockchains. 4)

Future Works
Several directions for future work are based on the results and the discussion of the research: • we need to perform a security analysis of the Potential security attacks.
• One of the main disadvantages of the PoW is computing resource waste. To solve that issue, attempting to come up with a mechanism of hybrid consensus of PoS and PoW. • Using the barcode of the voter identification card for authorization the voters because it's more secure.