{'fraction_non_alphanumeric': 0.018153117600631413, 'fraction_numerical': 0.0, 'mean_word_length': 5.436548223350254, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Blockchain-Based Self-Tallying Voting System with Software Updates in Decentralized IoT

IoT revolutionizes academia as well as industry. An increasing number of interconnected smart devices are gradually changing the urban lifestyle, among which, voting machines are one of the most widely used smart devices. However, the existing voting protocols for IoT are barely satisfactory, in the sense that most of them are centralized and subject to fairness issues. Moreover, the embedded softwares in voting machines are susceptible to internal vulnerabilities and external attacks. To address these issues, in this article, we propose a framework of a blockchain-based self-tallying voting system with software updates in decentralized IoT, which is fully decentralized and fair. In the proposed system, everyone can compute the final election results by collecting the ballots on the blockchain with equal privilege. Voting machines achieve self-tallying voting functionality in decentralized IoT systems and each entity in the system can obtain the voting results. Vendors deploy smart contracts to publish new patches securely and reliably. We implement a prototype of the proposed framework on laptops and mobile phones respectively to demonstrate its practicality.