# PVPBC: Privacy and Verifiability Preserving E-Voting Based on Permissioned Blockchain
## 3 Core of the PVPBC Voting System  
The key innovation of the proposed Privacy- and Verifiability-Preserving E-voting Based on Permissioned Blockchain (PVPBC) voting system is to introduce a fully verifiable e-voting protocol. The PVPBC voting system should provide the verifiability, voter usability, and integrity properties. The PVPBC voting system is comprised of three components which are: the front-end system; the election authority (EA); and finally, the trusted third party (TTP). It is a requirement that these components are independent of each other. To satisfy the aim of implementing E2E verifiability, the PVPBC voting system uses the Selene e-voting scheme [7]. As a consequence of using the Selene protocol, the front-end system has two distinct, desirable characteristics. Firstly, the voters' cast ballots are gathered and presented on a permissioned distributed ledger in an unencrypted format, and then matched with anonymous tracking numbers. This approach is distinct from many other e-voting systems described in the literature, which only disclose an encrypted or hashed rendition of the votes on the bulletin board (BB), (an area within the e-voting system which includes the final election results). By publishing plaintext votes on the DL, voters can be confident that their vote was accurately recorded and tallied. It follows that voters have no need to trust or possess any specific understanding of the cryptographic methods utilized in the election. Publishing votes in plaintext on the DL guarantees individual verifiability. In effect, any voter can check their intended vote against the plaintext vote recorded in the DL by using their tracking number. Universal verifiability is also guaranteed because the tally can be calculated by anyone using the plaintext votes. The PVPBC voting system also provides mechanisms to safeguard against coercion, as a result of using the Selene protocol. These mechanisms are available to voters if they experience coercion.  
To achieve the objective of providing access-control processes which are effective for voting services and information in e-voting systems, the PVPBC voting system offers an anonymous authentication mechanism where the voter's vote can be revoked by the election service provider with the cooperation of a trusted organization. An identity-based capability-token management strategy which is robust is proposed, based on the blockchain network. The use of smart contracts is instrumental in achieving effective registration, propagation and the revocation of access authorization. Consequently, election service providers are able to verify eligible voters without knowing their real identity. Voters only reveal their identity to the trusted organization as a TTP. During the election period, the TTP collaborates with the election service providers to validate voter eligibility without revealing their identity to the election services. This authentication feature is implemented in the PVPBC voting system by making use of a permissioned DL and smart contract. The permission DL is implemented by several trusted authorities within the trust organization, to store and initiate capability access tokens for eligible voters.  
\begin{table}
\begin{tabular}{l c c c c c} \hline
**Voting Scheme** & **E1** & **Pr** & **Vr** & **Us** & **Limitations** & **Strengths** \\ \hline VMV [3] & ✓ & \(\times\) & ✓ & ✓ & The voter-privacy property is at risk as the EA has full control of the voter’s identity. & Offers verifiable and usable online elections. \\ \hline DLT systems [19, 20, 21, 22] & ✓ & \(\times\) & \(\times\) & \(\times\) & Fails to tackle concerns related to electronic voting. These concerns include, but are not limited to, ballot secrecy, E2E verifiability, resistance to coercion, confirmation of accurate casting and recording of votes, voter eligibility, and the guarantee that all cast ballots before the end of the election will be counted. \\ \hline \end{tabular}
\end{table}
Table 1: _Cont._