没有合适的资源?快使用搜索试试~ 我知道了~
沙特国王大学学报DVTChain:一种基于区块链的去中心化机制,以确保数字投票系统的安全性Syada Tasmia Alvia,Mohammed Nasir Uddinb,Linta Islamb,Sajib Ahamedba孟加拉国水仙国际大学CSE系b孟加拉国Jagannath大学CSE系阿提奇莱因福奥文章历史记录:收到2021年2022年5月29日修订2022年6月23日接受2022年7月1日上线关键词:投票区块链以太坊智能合约A B S T R A C T投票是一项基本的民主活动。许多专家认为,纸质投票是确保每个人选举权的唯一但这种方法容易出现错误和滥用。许多国家利用数字投票方法来解决纸质投票的困难。数字投票中的一个缺陷可能导致大规模的投票操纵。选举投票方式必须合法、准确、安全、方便。然而,数字投票方法的问题可能会限制接受。由于其端到端的验证能力,区块链技术被开发来解决这些问题。为了保证我们在投票中使用了区块链技术的匿名性、隐私性、可验证性、移动性、完整性、安全性和公平性。通过使用区块链,我们提出的系统确保了安全性,隐私性和完整性。该系统通过将选民信息作为哈希值保存在区块链中来提供选民匿名。它还通过保持投票加密直到选举结束时间来提供公平性。投票结束后,选民可以验证他们的投票,确保可验证性。为了测试我们的协议,我们将其放在以太坊2.0上,这是一个使用Solidity作为编程语言来创建智能合约的区块链平台。智能合约的采用提供了一种安全的方式来执行选民验证,确保投票结果的正确性,使计票系统公开,并防止欺诈活动。我们分析了系统的性能的基础上的安全性和天然气成本。它在安全特性和必要基础设施的相关成本方面有所©2022作者(S)。由爱思唯尔公司出版代表沙特国王大学这是一个开放的访问CC BY-NC-ND许可证下的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 介绍民主的定义是人民有权选择他们的领导人。投票是一个关键的过程,使人们能够选出他们的政府领导人。选举制度应当民主、独立、公正。因此,它必须是一个透明和安全的程序,允许每个人自由地分享他们的观点(Bosri等人,2019年)的报告。世界上许多人不相信选举制度(Inzamam-Ul,YYYY)。传统投票是受控的,充满了调解人(Asraful和Rashid,2018)。此外,人们正在处理各种各样的问题,*通讯作者:Daffodil International University,Department of CSE,Dhaka,Bangladesh电子邮件地址:syada.cse@diu.edu.bd(S.T. Alvi)。沙特国王大学负责同行审查制作和主办:Elsevier例如摊位捕获(Inzamam-Ul,YYYY),虚拟投票和适当监控问题(Rajendran,2018),投票站前的大量人群,虚假投票,投票前投票,多余的投票,缺乏执法和审计,政治不稳定,缺乏意识,投票站位于远离房子的地方。老年人面临着降低选票数量的重大挑战(Madhuri等人, 2017年)。电子投票机(EVM)是旧投票系统的替代方案。然而,由于EVM(电子投票机)没有解决任何安全问题,它也遭受普遍批准的问题。EVM(电子投票机)的主要困难在于,很容易将任何恶意软件注入到设备中,从而扰乱服务器(Yi,2019)。另一种类型的投票是数字投票,它利用自动配对的工具来投票,并且有两种类型的自动投票:电子投票和I投票。电子投票是指选民是否使用投票机,而I-vote是指他们使用互联网浏览器进行投票。数字投票系统使选举人能够在世界上任何地方投票,超越位置限制,考虑到投票的灵活性、保密性、保护和便利性(Dogo等人,2018年)。许多国家已经开始使用数字技术https://doi.org/10.1016/j.jksuci.2022.06.0141319-1578/©2022作者。由爱思唯尔公司出版代表沙特国王大学这是一个在CC BY-NC-ND许可证下的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.comSyada Tasmia Alvi,Mohammed Nasir Uddin,L.Islam等人沙特国王大学学报6856投票方法。爱沙尼亚是第一个建立全国互联网投票系统的国家。他们允许公民通过互联网从世界任何地方投票(Hengavalli等人,2019年)的报告。此后不久,瑞士在地区选举中采用了电子投票,挪威在地方选举中采用了电子投票(Ayed,2017)。数字投票也有某些缺点(Krishnamurthy等人, 2019年)的报告。该代码的重要部分的保密性是对爱沙尼亚和挪威电子投票系统的主要批评之一。由于各种保密问题,爱沙尼亚I-Voting系统的投票形式受到限制。IV事物的权力集中使得DDOS攻击容易受到影响,这将使选民无法进行选举(Ayed,2017)。投票的人可能会质疑投票过程的公平性和保密性(Zhang等人,2019年)的报告。警察和安全部门可以访问网络流量的种类和处理能力,以检查投票数据是否有可能被修改。尽管安全性得到了加强,但在所有以前的方案中仍然可能发生系统攻击(Ayed,2017)。一些增强的安全方案或过程还必须确保投票或测量程序是可靠的,并且避免上述列出的问题(Krishnamurthy等人, 2019年)的报告。然而,区块链技术是克服上述问题的可靠方法。随着区块链的发展,去中心化的中心思想逐渐得到了更多的认可(Hsiao等人,2018年)。区块链是一种去中心化的网络(Zhang et al.,2018),其中节点成员交换数据,但是每个用户维护相同的数据复制。区块链技术提供了诸如传播、隐私和数据准确性的特征(Fusco等人,2018)等(Asraful和Rashid,2018)。在区块链技术的帮助下,可以建立一个可靠和安全的电子投票系统(Barnes和Perry,YYYY)。比特币是区块链技术在加密货币中的首次应用(Sun et al.,2018年)。截至2019年11月,以太坊的价格超过160亿美元,使其成为仅次于比特币的第二大区块链(Seifelnasr等人,2020年)。在以太坊区块链上执行的分布式Web应用程序被称为dApp。它包含智能合约和dApp等功能,可以在没有第三方滥用、伪造或干预的情况下构建和运行。DApp可以使用智能合约与区块链进行通信(Uddin,2021)。以太坊虚拟机(EVM)全球设备被认为是执行智能合约的一种手段。一旦EVM(以太坊虚拟机)配备了智能合约,它就变成了静态的,这意味着代码不能再被修改或修复(Seifelnasr等人,2020年)。由于其专用虚拟机和专用编程语言,以太坊的去中心化和分布式应用程序数量显著增加。这些特征为强大的开发社区、不断的进步和新技术职位的引入创造了环境(Cortes-Goicoechea等人, 2021年)。网络在区块链上,交易需要很长时间才能执行,经常遇到拥塞,并导致高油价。由于这些限制,以太坊第2层解决方案开始发挥作用(Finextra,YYYY)。第2层是指允许程序通过在以太坊主网(第1层)之外处理交易来增长的技术,同时保留与主网相同的保护和去中心化。第2层方法提高了吞吐量(交易速度),同时还降低了天然气成本(White-Gomez,YYYY)。以太坊正处于重大协议升级的边缘,这将使其可扩展性提高许多数量级,并创建一个可以灵活满足不断发展的行业 需 求 的 架 构 ( Cortes-Goicoecheaet al. , 2021 年 ) 。 以 太 坊 2(Ethereum 2)2.0)是以太坊区块链系统的下一次迭代,代表了重大改进。这意味着 以 太 坊 区 块 链 将 从 工 作 量 证 明 切 换 到 区 块 验 证 的 权 益 证 明(Bitcoin Suisse,YYYY)。这一改进使得可以以更环保的方式生成块,节省电力,同时开发更灵活的网络架构。Eth2中分片的实现也被分成了几个部分,这是因为添加这种共识方法的挑战PoS在第一阶段部署在信标链上,称为信标链确保验证者被随机分配到委员会,为下一阶段奠定基础(Cortes-Goicoechea等人, 2021年)。由于其安全性,透明度和灵活性,我们的目的是创建一个基于以太坊区块链的数字投票基础设施,并添加智能合约,以避免和消除投票系统缺陷,并减轻与采用区块链投票相关的困难。本文件的主要目标是:验证该系统,以确保只有合法选民才能投票。通过在选民和他们投出的选票之间提供不可链接性来保护选民身份。与现有系统相比,降低交易成本。由于投票系统必须满足一些安全属性,例如认证,透明性,匿名性,完整性,安全性,隐私性,移动性,公平性和可验证性,以实现公平和透明的结果,因此在实现基于以太坊的应用程序的情况下,成本是一个大问题因此,我们已经讨论了所提出的系统所满足的安全属性我们试图在保持其基本安全属性的同时,最大限度地减少系统的计算和我们使用Ganache(一个集成到Truffle中的本地区块链平台)解释了该实现,并分析了与通用选举相关的成本我们还比较了当前提案与先前提案的性能论文的其余部分组织如下-第2和第3节概述了问题的定义和相关工作。第4节描述了所提出的基于区块链的数字投票系统的细节第5节描述了拟议系统的实施部分第6节和第7节对安全性分析方法进行了评估,并给出了实验结果。第8节总结了本文,并强调了一些未来的工作。2. 问题定义在世界上,主要是民主国家面临着许多挑战,这些挑战通过各种非法活动阻止国家增长,如腐败和侵犯人权等。公民往往无法参加选举,因为投票制度(Krishnamurthy et al.,2019年)的报告。因此,每当涉及到投票,典型的人在澄清和保护方面遭受了很大的痛苦。在像孟加拉国这样的国家,传统的投票系统需要数小时的投票,同时他们有很多重复的操作和许多奇怪的选举障碍:占领投票站,加固选票,将投票代理人与竞争者分开,威胁选民不要投票,有时投票官员会做出奇怪的行为来支持特定的候选人(独立,YYYY)。由于这些原因,主要是老年人面临着投票和回避投票的困难。在孟加拉国,总人口中有5.2%的人属于老年公民(维基百科,YYYY)。在投票的情况下,5.2%意味着很多,因为票数可以改变结果。所以●●●Syada Tasmia Alvi,Mohammed Nasir Uddin,L.Islam等人沙特国王大学学报6857老年人不参加投票并不能实现真正的民主。在某些情况下,未登记的选民在投票站作为“死亡选民”参与政治制度。不诚实的办事员和投票站管理人员甚至在投票后决定修改结果(Hjálmarsson等人,2018年)。当局经常命令非选区居民离开城市,移动电话网络经常被关闭,并执行全面的交通禁令以确保公平投票,所有这些都是对人民的骚扰和不幸。让我们想一个人谁需要去机场赶飞机,谁需要看医生的紧急基础。选举人可能在度假、出差或出于其他目的出国,主要是为了协会成员,这将有利于特定选民投票,并将减少他们对选举的总体参与(《独立报》,YYYY)。一些公民提出了保护、保密、可访问性和匿名问题(《独立报》,YYYY)。这对一个公民对行使选择领导人的权利持谨慎态度并对行政部门的民主进程失去信心的社会来说是不好的(Pankaj等人,2017年)。数字投票方法将比其他方法具有更大的保护和诚实性(Patidar和Jain,2019)。数字投票有各种各样的问题(Krishnamurthy等人,2019年)的报告。对爱沙尼亚和挪威电子投票系统最严重的批评之一是他们无法对代码的关键部分保密。由于一般保密问题,提交爱沙尼亚I-投票方法的投票内容被丢弃。选民可能会担心投票系统的有效性和缺乏匿名性,以及欺诈的可能性(Zhang等人,2019年)的报告。当局可以访问广泛的网络活动和足够的计算能力来估计投票结果,以改变他们(Veldre和Andrews,2014)。即使在所有以前的系统中增强了安全性,国家级攻击仍然是可能的(Ayed,2017)。在瑞士的软件编程语言中发现了重大错误。 由于缺乏保护和选民信任,电子投票在某些情况下也被拒绝。例如,挪威、芬兰、爱尔兰、荷兰和德国都发生了这种情况(Barnes和Perry,YYYY)。当使用数字投票程序时,安全性始终是首要关注的问题(Barnes和Perry,YYYY)。区块链现在是一种新兴的、坚固的技术,使应用程序能够获得强大的安全机制(Uddin等人,2019年)的报告。区块链技术可用于创建可靠且安全的自动投票系统(Barnes和Perry,YYYY)。3. 相关作品在Khan et al.(2020)中,提出了一种通过使用区块链技术来消除传统选举的问题方面的方法。本文旨在通过区块链技术建立一种去中心化的电子投票方法,并建立一种易于使用的投票机制,以保证选民身份识别和数据传输与验证的安全性。该系统使用了几种技术,包括ganache,truffle框架和metamask。该系统的局限性在于,在投票过程中投出的选票是可见的,并且它不向选民提供匿名性。Boshri等人 提出了基于以太坊网络的基于区块链的民主进程(Bosri et al., 2019年)的报告。选举委员会建立了一个以太坊账户,以这种方式保存选民数据。那些没有智能手机的选民可以在指定的投票站投票他们将被要求在投票前完成生物识别验证程序。虽然它使用区块链技术,但在这个系统中有许多第三方的参与只所投的票被记录在由第三方添加的链中(Kumari等人,2020年)。在这种情况下,虚假投票是可能的。选举管理员管理选举的生命周期电子投票系统在Hjálmarsson et al. (2018)区块链被用作创建分布式电子投票系统的服务。该系统有两种类型的节点:分布式节点和引导节点。区节点指示每个投票区,并且每个区节点配备有与引导节点连接的软件引导节点允许区域节点识别和连接。这种系统不能很好地保护选民的隐私(Qu et al.,2020; Tso等人,2019; Roh和Lee,2020),并且不考虑自计数过程(Fan等人, 2019年)的报告。在Jorge Lopes(2019)中,他们提出了一种使用智能合约的基于区块链的电子投票系统。有三类人可以与程序进行通信,包括导演,开发人员和投票人。记录、创建者和选择是三个契约。记录契约负责存储选民登记信息以验证身份验证。在认证之后,API将资金转移到负责建立新的选举合同的创建者合同选举合约被创建,并且它将其地址发送到创建者合约以进行投票。在添加到区块链之前,选票通过同态加密进行加密,这是一种对称加密。在Shahzad等人(2019)中,该框架提出了一种使用区块链的改进形式的电子投票这个完整性证明算法涉及区块的开发、区块的锁定、信息管理和区块链的设计,特别是用于投票机网络。在形成一个区块的情况投票人投票,然后机器使用SHA-256产生一个散列,并将数据发送给主持人以产生一个块。这种策略的关键缺点是,它需要更多的安全性,隐私和透明度,然后才能被认为是完全值得信赖的。投票方法(Toapanta等人, 2019年)的报告。在Dagher et al.(2018)BroncoVote中,开发了一种基于区块链的投票技术,以保持选民匿名并提高透明度,同时保持开放,安全和具有成本效益的投票机制。BroncoVote引入了一个投票系统,利用区块链、智能合约和以太坊来获得大学环境中的选举管理和可审计的选举结果。在这个系统中使用了三个合同:注册商,创建者和投票合同。该系统的局限性在于,它的注册方法保护不力,选民身份验证薄弱。在此过程中也存在隐私问题Li等人(2021)创建并构建了AMVchain,这是一个高效且可扩展的投票系统,使用区块链和智能合约提供透明和分散的投票。他们首先研究了现有基于区块链的投票系统的缺陷和问题,然后回顾了解决这些问题的重要研究基于可靠和高效的电子投票系统的规范。可链接环签名用于投票过程中,Alvi et al.(2020)提出了一种数字投票架构,其中包含一个智能合约,以处理在使用区块链进行投票期间出现的认证、透明度、匿名性、准确性和自主性以及奇异性、完整性和移动性等挑战。根据投票者提供的信息,将构建哈希并记录在其系统的链中。由于数据是以散列的形式存储在区块链上的,因此区块链将受益于可扩展性和匿名性。区块链上的智能合约确保了安全性和匿名性。矿工通过智能合约来提高交易速度。一许多变量促成了提名,包括数据传输和能源利用。每个块都有其独特的方法,Syada Tasmia Alvi,Mohammed Nasir Uddin,L.Islam等人沙特国王大学学报6858计票在投票结束时,可以简单地评估来自最后一个块的总投票。它减少了计算时间。Uddin等人(2021)提出了一种基于区块链的电子投票系统,该系统使用时间锁加密来提供完整性,身份验证和机密性。认证是通过使用盲签名来完成的。他们还使用了时间锁加密来确保保密和保护选举不受篡改。只有有特权的人才被允许参加某个政党并投票支持该政党. 由于区块链技术是一种分散的技术,因此它可以用于克服集中化问题。在本文中,时间锁加密通过防止所有参与方来保护选举免受欺诈直到一个特定的、预定的时间才能看到结果4. 拟议方法所提出的方法的架构如图1所示。我们在系统中使用了区块链技术。也有一些外部实体。他们是-选举委员会(EC)-选举委员会负责监督整个选举过程。选举委员会表示为EC。EC发起选举,激活它,然后在设定的时间过去后关闭它。选举委员会不参与整个投票过程,并在选举结束后立即公布结果。选举委员会的另一项主要职责是在选举前通过选民登记程序确定选民名单。选民--在当地选区有选举权并登记投票的人被称为选民。每个选民都可以投票给其中一名候选人。加密服务器-禁止非法访问投票以维护隐私至关重要。每个投票在发送到区块链之前都必须加密。为此,这里只使用一个名为加密服务器的小型节点服务器来存储公钥和私钥。它选民可使用智能装置在建议的数码投票系统中投票。没有智能手机的用户仍然可以在指定的投票站投票。网上投票和现场投票的过程是一样的(见图)。 2)的情况。选举委员会(EC)负责通过与智能合约交互来创建和关闭选举。图1.一、使用智能合约的基于区块链的数字投票●●●Syada Tasmia Alvi,Mohammed Nasir Uddin,L.Islam等人沙特国王大学学报6859提议的系统。智能合约确定了选举协议中涉及的责任以及在整个协议的创建和执行过程中发生的众多组件和交易。三个智能合约正在拟议的基于区块链的数字投票中运行。它们是选民合同、候选人合同和投票合同。通过使用这三个合同,选民的注册过程,选民身份验证和投票直接在选民和区块链之间完成。首先,在注册过程中,选民信息的哈希值由选民合约存储,以保护选民信息并为选民提供匿名性。这些哈希值也用于在投票期间验证选民候选人契约包含链中候选人的信息。选举开始后,选民执行选民身份验证过程,然后从提供的候选人列表中选择一名候选人通过候选人合同并使用投票硬币投票。在这里,投票硬币代表投票人的投票状态如果投票硬币的余额是1,投票人如果投票硬币的余额为0,这意味着选民已经投了票。投出的选票使用选举委员会在加密服务器中生成的公钥进行加密加密的投票被发送到投票合约,并作为区块链中的一个区块添加。对于n票,系统中将有n个投票块。后选举结束时,选举委员会开始计票程序。在计票过程中,系统使用来自加密服务器的私钥对所有投票进行解密。投票合约接收整个解密的投票。然后它发送选民投票硬币到所选候选人候选人合约通过提供候选人的帐户信息并发布结果来执行计票操作拟议的投票机制包括四个阶段:● 第一阶段:注册阶段● 第二阶段:投票设置阶段● 第三阶段:投票阶段● 第四阶段:结果阶段本文常用的符号如表1所示。4.1. 登记阶段投票系统的第一阶段由注册单元组成,注册单元有两个部分:(i) 选民登记(ii) 候选人登记4.1.1. 选民登记在当地选区有选举权并登记投票的人称为选民。选举委员会提供并保持最新的登记选民名单。因此,每一个合格的选民都必须访问他们当地的选民登记册-图二. 选民登记流程图。Syada Tasmia Alvi,Mohammed Nasir Uddin,L.Islam等人沙特国王大学学报6860表1注释摘要符号定义id国民身份证号码nmvVoter name选民人数sk安全密钥hv256位固定长度哈希值pubkvvoter的公钥pvkvvector的私钥KGA()密钥生成算法OTP一次性密码SCv智能合约命名为选民合约BC区块链rg被提名候选人sn区域席位数ps党号SCcdt智能合约命名为候选合约pubkc候选人公钥infocjCj候选者的信息,其中Cj(16 j6 m)pubkEc选举委员会pvkEc选举委员会的私钥vc投票硬币CS加密服务器st选举开始时间选举结束时间Bi选票表格2011年6月1日至6日的数字表示,EBi加密投票SCvt智能合约命名为投票合约VoteID投票IDCjac候选人帐户wc获胜候选人投票中心,并提供必要的信息,被认为是一个真正的选民。这是该系统的第一阶段,需要作为身份验证阶段的一部分,以跟踪哪些人投了票。它还作为一种控制机制,通过阻止未登记的个人投票,防止他们参加设Vi表示所有投票者的集合,8个投票者2 Vi; jVi j P1,并且有n个投票者,Vi 16i6 n。算法1:选民登记算法1说明了选民登记过程。该算法的输入包括投票人的身份证、投票人姓名、安全密钥和投票人的手机号码。输出是这些输入的哈希值以及两个密钥,分别称为公钥和私钥。validation()函数用于在步骤2检查NID的有效性如果NID无效,则在步骤7返回Invalid NID如果NID的验证如果所有的输入都正确,那么在步骤4中,将使用generateHash()函数生成一个哈希值,其中输入是参数。在步骤8,OTP将发送到选民的手机。matchOTP()函数用于在步骤9匹配发送和输入的OTP。如果两个OTP都匹配,则在步骤10中使用KGA()函数生成公钥 和 私 钥 。 私 钥 被 发 送 到 选 民 的 手 机 号 码 。 在 步 骤 12 处 使 用acknowledge()函数获得投票者获得密钥的确认之后,投票者的散列值和公钥被添加到区块链。在步骤14,在执行所有过程之后,投票者得到消息登记成功完成。如果未获得确认,则转到步骤12。4.1.2. 候选人登记由于候选人同时也是选民,因此候选人登记程序与选民登记程序相似。他们必须完成密钥生成后的几个额外步骤,才能被视为候选人。选民及候选人登记程序的全过程如图所示。3 .第三章。假设有m个候选者Cj(16j6 m)。算法2示出了候选注册过程。候选人也是投票人,因此,如果候选人是投票人,则在步骤1中不检查。如果候选人不是投票人,则在步骤6调用voterRegistration(id;nm;Mbv;sk)函数,其中参数与投票人相同。在完成选民登记程序后,候选人必须提供他们的地区,政党标志和席位号码,以完成候选人登记程序。候选人合约在区块链中添加候选人的信息,在步骤4返回注册成功消息(见图4)。 4).算法2:候选人注册4.2. 投票设置阶段该阶段分为三个部分:(i) 创建选举(ii) 积极选举4.2.1. 创建选举选举是由EC创建算法3说明了EC的选举创建过程。EC使用公钥和私钥的密钥对加入区块链。然后它将一个事务发送到n票币注册合同,起止时间Syada Tasmia Alvi,Mohammed Nasir Uddin,L.Islam等人沙特国王大学学报6861图三. 选民和候选人登记。第二步选举。然后在步骤3中将公钥和私钥的密钥对传送到密码服务器进行投票加密和解密(见图3)。 6-10)。4.3.1. 投票者认证Voter合同负责选民身份验证过程。选民必须首先使用私人密码密钥,以完成认证过程。在那之后,算法3:创建选举Input:vc;st;et1 使用pu bkEc加入BC p v kEc2 发送tx=(vcn;st;et)到SCv3 将y(pubkEc;pv kEc)转移到CS4.2.2. 积极选举算法4说明了选举激活过程,其中输入是:开始时间、结束时间、投票币和投票者的公钥。Voter Contract向每个投票人的公钥发送一个投票硬币,开始时间和结束时间的交易。所有的交易都被添加到BlockChain。因此,在该系统中,向投票人发送投票币的交易和投票人算法4:主动选举Input:st;et;vc;pubkv输出:vc1SCv create atx =(vc¼1)2 Sendtx toVi将3个tx4.3. 投票阶段该阶段分为两个部分:(i) 投票者认证(ii) 投票投票人必须输入他们的证书以进行认证。在这种情况下,投票者合约接收凭证并从中生成哈希值,以便将哈希值与区块链中已经存在的其他哈希值进行比较。如果发现两个哈希值相等,则投票者有效。算法5示出了投票者认证过程,其中投票者在步骤1再次提交用于生成散列值的凭证。如果哈希值与投票者注册列表中的哈希值匹配,则在步骤3返回true否则,返回false。算法5:选民认证4.3.2.投票股在许多方面,我们提出的基于区块链的投票机制每个参与者在注册过程后都会得到一个数字钱包,如第4.1.1节所示在这个系统中,投票是一个包含事务索引、时间戳、对所选候选人的投票和事务哈希的事务。在执行认证过程之后,选民可以投票。算法6示出了投票过程。在第3步完成认证程序后,投票人收到一张选票,其中载有带有政党标志的候选人名单选民Syada Tasmia Alvi,Mohammed Nasir Uddin,L.Islam等人沙特国王大学学报6862见图4。 考生报名流程图。可以从候选人列表中选择候选人,并在步骤5和6中使用投票硬币进行投票。然后,投票者将在步骤7. 在第8步和第9步中,使用选举委员会的公钥对投票进行加密将投票货币转移到已被选择的候选人中的每一个的公钥通过候选人合同,一旦硬币被交付,投票在收到它后很快就被统计这与确定一个特定的人拥有的货币数量是一样的。地址. 最后,每个候选人钱包里的硬币数量算法6:投票4.4. 结果阶段该阶段包括:(i) 计票股(ii) 发布结果4.4.1. 计票股EC将私钥输入系统作为计数过程的一部分。每个EBi都将被解密,投票合同将代表了投给他的票数。算法7示出了投票计数的过程。所有加密的选票在步骤1中通过使用选举委员会的私钥解密。然后,投票合约向每个被选中的候选人的公钥发送一个投票硬币在检查所有候选人的帐户余额后,将找到获胜的候选人。算法7:计票输入:EBi;pvkEcOutput:Cacj1 Bi=decryptBallotEBi;pvkEc2 tvc=sendVoteCoinBi;Ci3Cacj =countVotetvc4.4.2. 发布结果投票后,每个投票将形成一个区块并将其添加到链中。投票将在投票提交后立即计算,因为不会有投票篡改和投票操纵的风险。算法8说明了结果发布过程。在步骤1中,通过检查候选人的帐户来找到获胜者。然后,在步骤2中制作列表,其包含区域、座位号、获得投票的候选人和该区域的获胜者。该列表在步骤3中定向。Syada Tasmia Alvi,Mohammed Nasir Uddin,L.Islam等人沙特国王大学学报6863图五. 创建选举和活动选举。见图6。 创建和活动选举流程图。Syada Tasmia Alvi,Mohammed Nasir Uddin,L.Islam等人沙特国王大学学报6864图7.第一次会议。选民认证和投票。算法8:发布结果Input:AC输出:wc1 wc= findWinner(Cacj)2 vtl= resultList(ps;sn,Caci;wc)3 print(vtl)结果发布流程如表2所示。在此表中,每个候选人和获胜候选人的总票数显示为不同的区域和席位数。然后,最终结果将在结果面板中发布。5. 执行以太坊区块链技术是计算机化投票应用的一个很有前途的选择以太坊区块链提供了设计智能合约的能力。“智能合约”一词智能合约有许多目标,包括消除可信的中介机构,降低仲裁和执行成本,减少欺诈损失,以及消除有意和无意的例外。以太坊支持两种账户。外部拥有的帐户(也称为用户控制的帐户)由用户控制。这些账户以字母EOA表示。合约账户由计算机上运行的智能合约管理。合约账户由字母CA表示这两种账户都可以存储以太坊加密货币或以太币。以太坊不会在没有用户输入的情况下执行智能合约中的操作(计算)。因此,在其功能可以被执行之前,CA必须由EOA启用。EOA必须购买“气体”才能进行其操作,这必须使用以太币来完成(Rogers等人, 2007年)。为了开发一个去中心化的应用程序,可以有效地取代传统的投票系统,需要一个网站,提供投票环境。此外,市民如因种种原因未能前往投票地点投票,可前往见图8。选民认证和投票流程图。用户友好的在线网站,显示他们的城市首先,要在以太坊中实现基于区块链的投票系统,我们必须首先创建必要的环境。的Syada Tasmia Alvi,Mohammed Nasir Uddin,L.Islam等人沙特国王大学学报68655.1.1. 松露Truffle是一个基于solidity编程语言的工具,用于开发以太坊区块链。 Truffle还包括自动化测试、客户端开发、网络管理和智能合约管理等功能(Shakya等人,2022年)。该系统使用Truffle来管理网络。Truffle主要负责编译solidity编写的智能合约,对各种合约进行迁移,并生成ABI(Application Binary Interface)。见图9。 投票计数。见图10。 计票流程图。图11中示出了实现细节。应用程序基本上分为两个方面:1. 服务器端和2. 客户端5.1. 服务端在服务器端,运行着一个区块链网络。服务器端组件包括:1. 松露2. Solidity3. Ganache4. 节点服务器5.1.2. SoliditySolidity 是 一 种 面 向 契 约 的 高 级 编 程 语 言 ( Khalid 等 人 ,2020 ) , 用 于 在我 们 的 系 统 中创 建 智 能 合约 。 它 在 功 能 上与JavaScript相当(Kudva et al.,在使用Solidity进行合同开发时,合同的组织方式类似于面向对象编程语言中的类。与传统编程语言一样,合约代码由变量和函数组成(Wohrer 和Zdun ,2018 )。Solidity被编译成字节码,该字节码可以经由EVM(以太坊虚拟机)编译器在EVM(以太坊虚拟机)上运行(Khalid等人, 2020年)。5.1.3. Ganache另一个名为ganache的工具用于管理和测试本地机器上的应用程序。Ganache是一个特定的RPC服务器,可以为Truffle检查和构建,它可以作为移动和命令行应用程序访问(Khan et al.,2020年)。Ganache可以在开发过程中的任何时候使用,允许您以安全可靠的方式更新,重用和测试您的dApp。它是一个允许在本地运行区块链并执行测试,发布命令和观察区块链状态的工具。这是一个本地安装的区块链模拟器。Ganache使用图形界面来模拟区块链网络和现场测试智能合约,而无需使用虚拟测试网络或远程网络(Gautam等人,2021年)。它提供了10个先前资助的100以太账户和一个12字的种子术语,用于这些账户的再生(Khan等人, 2020年)。5.1.4. 节点服务器我们的系统使用了一个小型的节点服务器。它作为一个密码图形服务器,被命名为密码服务器.该服务器用于存储分别用于加密和解密的公钥和私钥,如图11所示。EC(Election Commis-sion)在该服务器上生成密钥,用于对投票进行加密,并在计票时进行解密5.2. 客户端开发了一个客户端用户界面,允许人们通过任何计算机或移动终端使用以太坊账户投票。在客户端,有几个工具用于管理用户界面(UI)。CSS用于增强设计,React JS用于处理客户端数据。HTML也被用作标记。一个名为web3.js的JavaScript库用于com-表2结果公布。区域(Rg)座位号(Sn)候选人1候选人2候选人3赢家X11200030001000派对2X12100040003000派对2X13500040001000派对1X24200030001000派对2X255000赢家5006000候选人2派对3Syada Tasmia Alvi,Mohammed Nasir Uddin,L.Islam等人沙特国王大学学报6866客户端和服务器之间的通信。Web3.js是一个库的集合,它提供了使用HTTP、IPC或WebSocket与区块链网络进行交互的API。Metamask是一个安全的加密钱包,并维护一个Ether- eum钱包,存储Ethers(或货币),并使用户能够通过他们选择的dApp发送和接收Ethers。Meta Mask似乎是一个轻量级的浏览器插件,可以与Chrome、Firefox、Opera和Brave等多种浏览器配合使用(Bhavani等, YYYY)。Metamask 主 要 维 护 公 钥 和 私 钥 , 私 钥 用 于 签 名 和 确 认 交 易(TheDefiant,YYYY)。加密的密钥存储在浏览器中。Metamask已被证明是非常健康的,没有成功的黑客尝试导致货币损失。它负责管理用户帐户信息,如余额,公钥和私钥。它被称为浏览器和区块链网络之间的桥梁。它从web 3接收请求并将其发送到服务器(Sourav Rajeev等人, 2019年)的报告。6. 证券属性分析电子投票系统最基本的挑战是安全性和可信度(Ta,s等人, 2021)。 为了防止任何敌人或自私的政党能够改变结果并确保选举的完整性,我们认为区块链增强了安全和隐私的几个领域。然而,还有很多事情可以做得更好。我们还希望确保所统计的选票是真实的。 为了确保公平和民主的结果,投票过程必须公平和透明。因此,在投票系统中确保匿名性、安全性、隐私性、完整性和可验证性等最大安全属性是必要的。所提出的系统如何实现所有特性如下所述:6.1. 匿名选民的身份不能追溯到他们的投票。这使选民能够公开表达自己的观点,从而保证了他们的安全。为了保护选民的匿名性,广告商应该无法将任何投票与特定选民相关联(Zaghloul等人, 2021年)。区块链确保了匿名性,因为公钥在网络中充当选民除此之外,研究人员还采用了各种额外的方法来隐藏用户的身份,因为在基于账户模型的系统中保持匿名可能是困难的(Xin等人, 2019年)的报告。这是因为系统中的每笔交易都会自动更新交易发送方和交易接收者。即使区块链的隐私系统得到了很好的保护,然而,立法成为该系统获得广泛认可的新障碍(Syed et al.,2018年)。当在特定的区块链环境中工作时,无法确保匿名性(NYCC,YYYY)。由于散列函数可以提供匿名性(Uddin等人,2018年),所提出的方法允许选民以匿名的方式将他们的信息输入区块链。每个投票者信息在该系统中存储为散列,以确保隐私保护和认证的鲁棒性。它允许用户在不泄露其真实身份的情况下证明其身份验证。在区块链网络中,公钥代表投票者的身份,而哈希值代表投票者的数据。投出的选票被加密,以确保选民的选票不能在这种方法中被链接在一起。在解密所有选票后,智能合约将投票硬币发送给候选人,而不透露选民的身份,保持选民的匿名性,如图所示。 12个。6.2. 完整性不应未经检测就修改、伪造或删除投票(Shahzad等人, 2019年)的报告。在投票过程中,结果的完整性是一个基本概念。Merkle树是保证数据完整性的区块链技术的特征(Mykletun等人,2003年)。区块链中的每个区块包括固定数量的交易。每当交易在区块链上发生时,它们都会被记录在一种称为Merkle树的数据结构
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功