(一):项目成果展示

1. 项目功能介绍

电子投票系统既要保证选票信息的隐私性,选民身份的匿名性,又要保证选举结果的公众可验证性等,本系统通过FISCO BCOS区块链智能合约架构同态加密算法以及SM2椭圆曲线公钥密码算法实现了基于区块链的同态加密的电子投票系统
主要研究内容包括:
(1)使用区块链平台进行电子投票系统的开发,利用区块链的去中心化与不可篡改性确保电子投票系统的投票数据不被篡改以及投票过程的公开透明
(2)使用SM2公钥加密算法保障投票过程中的保密性隐私性,利用Paillier同态加密算法的同态加法性质在不对选票解密的情况下实现计票功能,避免中间人操作,确保投票过程的公平性。
(3)使用投票码保证选民个人可验证性,即选民可验证并确认自己的选票有效且结果已被准确记录,利用区块链平台实现普遍可验证性,保证选票过程中的相关者都可以验证选票结果的正确性。
电子投票基本模型

图1-1 电子投票的基本模型

电子投票系统的投票过程共分5个阶段完成,分别为:注册阶段、选票发放阶段、投票阶段、计票阶段、验证公布阶段,各个阶段分工合作,各司其职,具体如图1-2所示。
电子投票系统逻辑分析图

图1-2 电子投票系统逻辑分析图

1.1 用户登录与注册

用户登录与注册功能包括:用户注册、登录、个人信息查看与修改、生成个人公私钥。
(1)用户注册:对于想进入电子投票系统的用户(管理员除外)均需要提前使用自己的身份证号进行注册并在注册页面填写自己的个人信息,包括:自己的密码、姓名、家庭住址、生日、年龄、电话等,当选民填写完毕后,其填写的信息将会提交至后台,存入用户数据库。

(2)用户登录:本系统的用户若想进入电子投票系统,需要在登录界面填写自己的身份证号与密码,用户点击登录按钮后,系统将查询选民数据库,若数据库中不存在该用户或该用户的身份信息与密码不对应,则显示对应提示信息,否则,查询该用户对应的等级,若其等级为管理员,则进入管理员页面,否则进入选民页面。

(3)个人信息查看和修改:用户登录进入系统后,点击自己的个人头像或姓名信息即可进入个人信息查看页面,在此处,用户亦可对自己除身份证号码以外的信息进行修改。

(4)生成个人公私钥:用户在进行投票之前,需要生成个人公私钥,方便以后使用选民公钥对初始投票标识等信息进行加密传输。用户点击生成个人公私钥按钮后,系统将会查询该选民对应的数据库,若数据库中已存在该选民的个人公私钥,则前台提示 “该用户已生成,请勿重新生成。”,否则,为其生成个人公私钥并存入其对应数据库。

1.2 用户管理

用户管理功能包括:选民信息与候选人信息的查看与操作。
(1)选民信息查看与操作:当用户在注册界面进行注册以后,该用户的信息将会存储到用户数据库,因此管理员在选民信息查看页面可通过查询数据库获取选民信息,并对选民信息进行相关操作。

(2)候选人信息查看与操作:当管理员发起投票录入对应候选人后,通过候选人信息查看页面可以看到候选人的信息并进行相关操作。

1.3 投票管理

投票管理功能包括:管理员发起选票、选民投票、智能合约计票与公布选票。
(1)发起投票:只有管理员可发起投票,在发起投票页面,管理员需填写活动相关信息,创建活动以后,需要添加该投票活动的候选人信息,包括:候选人id、候选人姓名、候选人地址、候选人职业以及候选人简介。当管理员发起投票时,系统同时生成计票和监票智能合约的SM2加密公私钥以及监票智能合约对应的同态加密公私钥并传送给对应的智能合约。

(2)选民投票:选民在投票之前需要请求生成对应的初始投票标识投票标识不能重复生成,系统接收到选民的请求后,将会为其生成初始投票标识,并使用选民个人公钥Vpub加密发送至选民,选民得到初始投票标识VBi后将通过VBi进行投票,每个选民只允许投票一次,且每次只能选一位候选者。当选民点击投票后,该选票将对选票进行同态加密,最后将加密选票与选民初始投票标识进行拼接,并使用计票智能合约公钥Cpub加密生成加密选票发送至计票智能合约,计票智能合约收集到该选民选票时会同时为其生成随机码,利用随机码和选民的投票标识最终可生成最终投票码作为选票唯一标识。

(3)计算选票:当某投票活动到达结束时间时,管理员或选民均可点击查看投票活动页面处的计票按钮,点击后计票智能合约将执行计票功能,利用同态加密算法的同态加法性质,将收集到的所有加密选票进行运算,得到最终的加密计票结果。

(4)公布选票:当管理员计票功能执行后,点击公布选票结果按钮,监票智能合约将对计票智能合约计算出的加密计票结果使用同态加密私钥进行解密得到最终的投票结果并公布至所有用户界面。

2. 系统功能展示

2.1 用户登录注册功能实现

用户登录注册功能实现

图2-1 用户登录注册页面

2.2 管理员创建投票功能实现

在这里插入图片描述

图2-2 创建投票页面

在这里插入图片描述

图2-3 添加候选人页面

2.3 各实体生成个人公私钥实现

生成选民个人公私钥

图2-4 生成选民个人公私钥

选民重复公私钥生成提示

图2-5 选民重复公私钥生成提示

2.4 选民请求生成投票码实现

选民未生成个人公私钥提示

图2-6 选民未生成个人公私钥提示

2.5 选民参与投票功能实现

选民参与投票页面

图2-7 选民参与投票页面

2.6 计票功能实现

计票过程部分代码

图2-8 计票过程部分代码

2.7 监票功能实现

管理员查看投票界面

图5-9 管理员查看投票界面

3. 写在后面

上述便是对本系统的简单的展示。
本系统使用的区块链平台为FISCO BCOS平台,智能合约开发语言为solidity语言,电子投票系统开发平台使用IntelliJ IDEA,后端开发语言为java,前端开发语言为HTML、CSS与JavaScript
后续将从创建虚拟机环境连接终端WeBase相关环境配置创建maven项目将FISCO BCOS部署到Maven项目中等流程对本项目的实现进行详细介绍,同时在文章编写完成后也将同步b站视频进行演示介绍,敬请期待……

  • 27
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue贪吃蛇项目是一款基于Vue.js框架开发的经典游戏,旨在提供一个优美而有趣的游戏体验。 一、项目背景 贪吃蛇作为经典游戏之一,拥有广泛的受众群体,而且其玩法简单,容易上手,非常适合新手玩家。我们希望通过开发这个项目,为玩家们带来一款有趣的休闲游戏,同时也提高我们在Vue.js框架下的开发能力。 二、项目实现 1. 游戏介绍 游戏主要分为两个界面:开始界面和游戏界面。 开始界面:提供游戏的基本信息,包括游戏名称、作者信息、游戏规则等。 游戏界面:展示游戏画面,包括蛇、食物等元素。玩家通过键盘控制蛇的移动方向,蛇吃到食物后会变长,游戏难度逐渐增加。 2. 技术实现 本项目使用Vue.js框架,同时结合了Element UI组件库和Canvas技术实现游戏画面的展示。在游戏开发中,我们主要涉及到以下技术: 蛇的移动:通过不断重绘蛇的身体,实现蛇的移动。 食物的生成:实现食物的随机生成,并且确保不会出现在蛇的身体上。 游戏结束判断:当蛇的头撞到墙壁或者撞到自己的身体时,游戏结束。 游戏得分和难度逐渐增加:当蛇吃到食物时,得分增加,并且游戏难度逐渐增加,如蛇的移动速度加快等。 三、项目特色 1. 界面优美简洁,操作简单易上手。 2. 在游戏中添加了不同难度等级的选项,玩家可以根据自己的实际情况进行选择。 3. 在游戏中添加了音效,使得游戏更加有趣。 四、项目展望 1. 进一步完善游戏画面,增加游戏元素,提高游戏可玩性。 2. 引入更多的难度等级,让玩家可以根据自己的实际情况进行选择。 3. 增加游戏联机对战功能,让玩家可以与其他玩家进行对战。 四、总结 本项目是一个基于Vue.js框架开发的经典游戏,旨在为玩家提供优美有趣的游戏体验,同时也提高我们在Vue.js框架下的开发能力。通过本项目的开发,我们熟悉了Vue.js框架的基本语法和Element UI组件库的使用,同时也提高了我们的编程能力和团队合作能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值