"景先生毕设|www.jxszl.com

基于区块链的投票系统【字数:11207】

2024-02-25 16:59编辑: www.jxszl.com景先生毕设
我们到处都可以看见投票的身影,它有着不可替代的功能,不过然现行的投票方式均有一些瑕疵,其中有一些是不可忽略的。譬如因为利益原因,系统数据会被人为修改(包括系统管理员主动修改或遭受黑客攻击)。将区块链引入投票系统能很好地解决这一问题,因为区块链具有去中心化、安全可信等特点。本文主要针对投票结果不可篡改的安全需求,结合区块链技术,设计出一款投票系统。系统基于Truffle架构,智能合约用Solidity语言开发,设计思路是每个用户可以购买票数并自由分配给候选者,系统自动统计各候选者的得票数量,最终公示投票结果。
目录
1 选题背景 1
1.1 问题的提出 1
1.2 国内外研究状况 2
1.2.1 国外研究状况 2
1.2.2 国内研究状况 2
1.3 研究内容 2
2 相关技术与知识 3
2.1 哈希函数与数字摘要 3
2.2 区块链概述 3
2.2.1 区块链 3
2.2.2 区块链的特性 4
2.3 DAPP 5
2.4 PoW共识机制 5
2.5 智能合约 5
2.5.1 智能合约的含义 5
2.5.2 智能合约的特点 6
2.6 以太坊 7
2.7 Solidity 7
2.7.1 Solidity的含义 7
2.7.2 Solidity的特点 7
3 智能合约的开发 8
3.1 Truffle框架 8
3.2 智能合约的编写工具 8
3.2.1browsersolidity 8
3.2.2 Atom 9
3.3 智能合约的编译与调试 9
3.4 智能合约的部署 10
3.5 智能合约运行原理 10
4 基于区块链技术的投票系统的设计 11
4.1 需求分析及可行性分析 11
4.1.1 投票系统及其特点 11
4.1.2 加权投票 11
 *景先生毕设|www.jxszl.com +Q: ^351916072
4.2 系统功能分析 12
4.3 系统架构 12
4.4 系统功能模块的设计 13
4.4.1 购买票数模块 13
4.4.2 投票模块 13
4.4.3 查询模块 14
4.5 数据库设计 14
4.5.1 ER图 14
4.5.2 表的设计 15
4.6 系统的非功能性需求 15
5 基于区块链技术的投票系统的测试 15
5.1 开发环境 15
5.2 ganache节点仿真器 16
5.3 购买票数模块测试 16
5.4 投票模块测试 17
5.5 查询信息模块测试 17
6 总结与展望 18
6.1 本文研究总结 18
6.1 未来工作展望 18
致谢 18
参考文献 18
基于区块链的投票系统
引言
伴随着社会不断进步、经济快速发展,投票在日常生活中发挥着越来越重要的作用。小到班级同学表决决定到哪儿玩,大到一个企业,甚至是一个国家领导人的选举,投票活动随处可见。在公司中,各式各样的投票调查可以帮助公司更好地了解市场行情、顾客偏好以及潜在需求。只有了解和掌握这些信息,公司才能够制定应对决策,否则就像没头苍蝇处处碰壁,因此投票对公司生存发展有着深远的影响。同样在国家政治工作中投票选举也具有无以替代的作用,比如说美国全民都参与的美国总统选举,中国党代会、人代会选举。
1 选题背景
1.1 问题的提出
现行的投票活动一般可以分为举手表决、纸质投票、传统线上投票等,表1揭示了几种方式的优缺点。
表1 各种投票方式的优缺点比较
投票方式
优点
缺点
举手表决
数据公开透明
投票者身份不保密并且不方便统计结果
纸质投票
投票者身份保密
数据不公开透明,结果可能作假,手工统计效率低并且结果的准确性难以保证
传统线上投票
投票者可匿名投票并且方便统计结果
数据不公开透明并且结果可能作假
综上所说,现行的几种投票方式都有缺点,客观上需要设计一个新型投票方式克服上述缺点,特别是要保证投票结果真实可靠,如果连结果都可以弄虚作假,那么投票将失去原本意义,变得毫无价值。而结果不准确的一个重要原因就是有一个所谓的中心节点来统计投票结果,在数据不透明的情况下,投票者只知道自己的投票结果,而不知道其他人的结果,这就给中心节点根据自身利益来篡改投票结果提供了便利。
随着网络的快速发展,不同于传统货币的数字货币逐渐流行开来。说到数字货币,我们脑海中首先浮现的可能就是大名鼎鼎的比特币,它从诞生到在世界范围内得到应用仅仅只用了8年的时间。横空出世的比特币让科技研究进入一个全新的阶段。
作为数字货币底层技术的区块链逐渐进入研究学者的视野。区块链是一种全球性、开放的、去中心化、可编程的、公开透明、去信任化的分布式数据库账本。加密算法和
数据的分布式存储是区块链最为突出的特点。因为其去中心化、无法篡改并且数据公开透明,所以它能在没有所谓的“第三方中介机构”的情况下建立信任。简单来说,区块链技术只是P2P网络上的分布式帐本,其交易无法删除或更改。当新事务发生并经过验证时,它们将被复制到帐本的所有副本上。
区块链的出现无论对金融行业还是对其他产业都产生了颠覆性的冲击。例如食品的产销全过程和学位认证等都可以看到区块链的影子。因此它的应用前景十分广阔。
在投票系统中使用区块链技术的好处是保证投票过程和结果的真实、可靠和完整,避免人为因素影响投票结果,并能有效保护投票人隐私,确保结果公开透明。[14]
国内外研究状况
1.2.1 国外研究状况
2016年初,英国政府发布了有关区块链技术的报告,提出应该利用区块链技术保护政府的隐私信息,避免因隐私泄露而产生的严重后果。除了理论上的研究,英国政府还准备将区块链技术投入实践,而且事实上英国政府也已经这样做了。在发布报告的半年后,他们就制定了在社会福利体系中使用区块链技术的计划,与此同时还指定了第一批提供区块链技术支持的厂家。荷兰也致力于研发一种基于区块链技术的原型币——DNBCoin。谷歌公司出资利用区块链技术研发的Currencycloud有效解决了大型商业项目优化问题。[56]

原文链接:http://www.jxszl.com/jsj/wljs/563966.html