2019年第八届数学建模国际赛小美赛D题安全选举的答案是什么解题全过程文档及程序
2019年第八届数学建模国际赛小美赛
D题 安全选举的答案是什么
原题再现:
随着美国进入一场关键性的选举,在确保投票系统的完整性方面进展甚微。2016年总统大选期间,唐纳德·特朗普因被指控受到外国干涉而入主白宫,这一问题再次成为人们关注的焦点。
现有的投票系统确实给人们留下了很大的怀疑空间:从理论上讲,模拟选民是可能的(尽管调查一再发现,在美国,这种情况的发生率可以忽略不计);邮寄选票可能被篡改或窃取;选举官员可能计算不准确;而且几乎每一台电子投票机都被证明是可以破解的。毫不奇怪,2016年大选前公布的盖洛普民意调查发现,三分之一的美国双倍选票将被正确统计。
区块链倡导者说,这项技术解决了投票系统不安全的根本原因,即投票可以由一个人、一个小组或一台机器控制。阿根廷网络派对提供了一个可能出错的例子。这个小政党提名的候选人承诺严格遵守公民在网上投票平台上的投票。2014年初,当其领导人考虑建立跨党派联盟时,他们将这一决定交由党员投票表决。令他们恐惧的是,他们发现数据库管理员有选择地将新的选民登记推迟到公投之后,使参与者池偏向管理员喜欢的结果。
区块链是比特币数字货币背后的技术,是一个分散的公共交易账本,没有任何个人或公司拥有或控制。取而代之的是,每个用户都可以访问整个区块链,每一笔资金从一个账户转移到另一个账户的记录都采用了一种安全且可验证的形式,使用的是从密码中借用的数学技术。由于区块链的副本散落在全球各地,它被认为是有效的防篡改。
人们广泛讨论了比特币给执法和国际货币管制带来的挑战。但区块链分类账的用途远远超出了简单的货币交易。
也许区块链技术最令人鼓舞的好处是它为参与者创造了激励,鼓励他们在规则平等适用于所有人的情况下诚实地工作。比特币确实导致了一些著名的违禁品交易滥用,区块链技术的一些邪恶应用可能是不可避免的。这项技术并没有让偷窃变得不可能,只是让偷窃变得更加困难。但是,作为改善社会公共记录存储库并加强代表性和参与性法律和治理体系的基础设施,区块链技术有潜力加强隐私、安全和数据传输自由,这无疑与生命、自由和追求幸福并驾齐驱。
在功能上,区块链只是一个复杂的数据库。例如,比特币数据库中的每个条目都是数字账本中的一项交易。分类帐公开列出了迄今为止的所有交易,并隐式指定了谁保留了多少钱。区块链与传统数据库的区别在于,它允许多方共享一个数据库,而无需集中控制。大多数传统数据库都有一台权威计算机来管理添加数据的过程。在区块链中,受信任的网守被互联网上的计算机所取代,每个计算机都维护自己的数据库副本。这些计算机充当新数据的验证器:当Alice想要向Bob汇款时,她将交易广播给验证器,验证器必须自己确认交易遵守区块链规则(例如,Alice发送的比特币没有超过她拥有的比特币)。一旦大多数的网络交易被接受,它们就成为事实上的共识历史。
尽管区块链最突出的用途是货币,但它们没有理由不能存储其他类型的数据,投票似乎非常适合。一个理想的投票系统可以抵御当局或黑客的腐败,并使公民和审计员能够就选举结果达成一致。方便的是,区块链提供的正是彼此不完全信任的各方之间可审计的共识。
区块链是安全选举的答案吗?可能不会。
假设你是大选检查委员会的技术顾问。您应完成以下任务:
1、构建底层设计或一套算法,利用区块链技术解决在线投票问题。
2、评估区块链技术解决投票问题可能存在的问题,并尝试改进。
3、网络安全专家和投票专家都认为区块链不必要的复杂,并不比其他在线投票更安全。是否可以通过与其他技术的结合来降低区块链技术的复杂性,提高安全性?
写一页技术说明,描述你的新想法、算法和结果。
提交内容应包括:
•一页汇总表,
•一页技术说明,
•您的解决方案不超过30页,最多32页,包含您的总结和技术说明。
整体求解过程概述(摘要)
随着社会的发展和经济的快速发展,投票选举和调查工作发挥着越来越重要的作用。与纸质投票相比,在线投票系统更加环保、高效,因此在线投票系统得到了广泛的应用。然而,由于数据集中在中央数据库中,因此存在数据不够透明、数据容易被篡改以及选民隐私信息被泄露的风险。鉴于这种结合快速发展的区块链技术很好地解决了这一问题,具有去中心化、数据防篡改、安全可靠等特点。区块链已经逐渐应用到人们生活的各个领域,保证了投票系统的公平性和安全性。
本文首先研究了块链技术的相关知识,如散列函数、非对称密码算法、数字签名、时间戳技术等,引入P2P网络、分布式存储和协商一致机制等概念来理解块链的操作过程。分析了系统需求和存储数据的特点。结合区块链技术设计了在线投票系统,分为应用层和区块链层。重点研究了P2P网络在块链网络层的组网模式、节点块同步、数据块验证机制和保证数据一致性的一致性机制。非对称加密算法、数字签名、时间戳技术等,设计数据块,采用链式结构存储数据块。
在完成底层区块链设计的基础上,应用层采用B/S架构。web应用层主要完成注册登录模块、投票模块、计票模块、投票结果查询模块。编程语言为Html、JS、Java。Web应用层采用JavaScript开发,接口调用,数据库采用mysql,应用层采用MVC设计模式,分为视图层、业务逻辑层和数据访问层。该交互界面采用Html、css、脚本语言,利用div-box框架设计了交互界面。最后将模板和数据的组合展示在用户面前。视图层和业务逻辑完全分离,提高了开发效率,所需页面可以方便快捷地定制。
Web应用层紧密结合区块链的特点,构建一个公平、公正、透明的投票系统。本文的目的是将区块链的底层技术应用到在线投票场景中,设计一个安全可靠的投票系统,充分利用区块链的去中心化、数据不可篡改、安全可靠的特点。
然后分析了基于块链技术的投票系统在运行过程中可能出现的同步问题、广播问题、恶意篡改问题和高并发问题,并给出了解决方案。
最后,针对区块链的技术难点和该投票系统固有的不足,提出了盲签名技术、生物识别技术、云计算技术和物联网技术相结合的四种方法。该方案使得该投票系统具有很大的潜力和发展空间。
模型假设:
1、假设每个投票人彼此独立,每个投票记录可以表示为服从伯努利分布的二元随机变量。
2、假设选票上的每个候选人都会投票,并且不会放弃竞选。
3、假设每个投票人对投票系统中的每个投票项目只有一票,可以弃权。
4、假设每个用户既可以是投票人也可以是投票发起人,在投票系统中对其身份没有任何限制。
5、假设该投票系统中超过半数的投票人不会恶意篡改数据,否则任何单个节点都会恶意修改数据,不会影响整个网络数据的正确性
6、假设本投票系统采用的POW负载证明中的所有节点共同参与计算,不考虑资源浪费
7、假设本文使用的椭圆曲线密码没有考虑其他形式的稍有不同的情况
8、假设所有形式的椭圆曲线密码依赖于解决椭圆曲线离散对数问题的公认困难,对应于有限域中的椭圆曲线群。
问题重述:
问题的描述
本文旨在研究基于区块链的在线投票系统,通过对区块链的分散,数据不可篡改,且安全可靠的特点,结合对现有技术的深入研究,获取底层算法,将区块链技术应用到投票系统中,给出了可行的模型,建立投票制度的保障。针对本文中的三个具体问题,进行以下分析:
问题1分析
为了利用块链构建底层算法的知识,有必要对块链的操作过程进行深入研究,包括密码相关技术、P2P网络、分布式存储、协商一致机制等技术,并利用这些技术设计一个多候选投票系统方案。为实现智能合同计票功能,采用Html和CSS脚本语言进行投票系统界面设计,提供Java脚本开发使用web应用层,界面调用部署在智能投票方案中实现合同与合同交互的方法,mysql数据库应用,经过两轮零知识证明协议,保证了投票者信息的安全不被泄露。
问题2的分析
区块链的完全去中心化也会带来一些麻烦,因为网络上会有大量的区块链拷贝,即全节点。许多事情将比以前的集中式应用程序环境复杂得多。根据系统的实际测试过程,需要解决以下四个问题:
(1)如何确保所有副本已同步到最新状态?
解决方案:使用块同步技术,确保所有副本同步到最新状态,块链数据或不完整数据,需要从其他节点请求数据块。
(2)如何确保将所有交易广播到运行和维护区块链副本的所有节点计算机?
解决方案:构建节点P2P网络,确保所有交易都广播到运行和维护区块链副本的所有节点计算机
(3)如何防止恶意参与者篡改区块链解决方案:引入验证和共识机制,确保数据不被篡改。验证机制包括椭圆加密算法和时间戳技术的引入。验证机制的参考是从源头上减少恶意节点,具体的防范需要参考共识机制。
(4)如何在区块链上进行大规模投票?
解决方案:设计专用区块链,需要重新设计优化区块链底层架构,提高交易吞吐量,重新设计优化共识算法、区块大小、区块生成时间、交易验证时间。
问题3的分析
本文设计的投票系统目前只适用于匿名隐私级别较高的由董事会投票的场景,今后我们将研究如何在区块链上进行大规模投票,基于区块链设计的投票系统的优缺点我们认为区块链技术可以与一些技术相结合,降低了其技术复杂度,具有安全高效的特点。方案如下:
方案1:根据电子投票场景中用户隐私保护的要求,提出了一种基于分组链的基于SM2的盲签名算法。
方案二:结合生物特征识别技术,将个人的生物特征信息应用到区块链中进行身份信息的注册和认证,并将其应用到投票的身份识别过程中,使整个投票过程更加安全高效。
方案三:结合云计算进行数据隐私保护,用户将数据上传到云。密码技术应用于区块链技术中,对用户的私有数据传输进行加密。区块链构建信任系统。
解决方案4:结合物联网技术,区块链与物联网相结合,构建分散式物联网解决方案,避免了诸多问题。
模型的建立与求解整体论文缩略图
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
部分程序代码:(代码和文档not free)
fitness=inline('(2.1*(1-x+2*x.^2).*exp(-x.^2/2))+sin(x)+x','x');
%%
E0=0.001;
Max_num=50;
particlesize=30;
c1=0.5;
c2=1;
w=0.3;
vc=0.5;
vmax=0.6;
x=-5+10*rand(particlesize,1);
v=1*rand(particlesize,1);
%%
f=fitness(x);
personalbest_x=x;
personalbest_f=f;
[groupbest_f i]=max(personalbest_f);
groupbest_x=x(i);
for j=1:Max_numv=w*v+c1*rand*(personalbest_x-x)+c2*rand*(groupbest_x*ones(particlesize,1)-x);for kk=1:particlesizeif v(kk)>vmaxv(kk)=vmax;else if v(kk)<-vmaxv(kk)=-vmax;endendendx=x+vc*v;f=fitness(x);for kk=1:particlesizeif f(kk)>personalbest_f(kk)personalbest_f(kk)=f(kk);personalbest_x(kk)=x(kk);endend[groupbest_f i]=max(personalbest_f);groupbest_x=x(i);ddd(j)=groupbest_f;
endstr=num2str(groupbest_f)%%
subplot(2,1,1)
x_0=-5:0.01:5;f_0=fitness(x_0);
plot(x_0,f_0,'r','linewidth',2);
hold on
plot(groupbest_x,groupbest_f,'b+','linewidth',6);
legend(' For function ',' Optimal solution position ');
subplot(2,1,2)
plot(1:Max_num,ddd,'linewidth',2);
legend(' The change in the optimal solution ');
xlabel(' The number of iterations ');
ylabel(str);
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
相关文章:
2019年第八届数学建模国际赛小美赛D题安全选举的答案是什么解题全过程文档及程序
2019年第八届数学建模国际赛小美赛 D题 安全选举的答案是什么 原题再现: 随着美国进入一场关键性的选举,在确保投票系统的完整性方面进展甚微。2016年总统大选期间,唐纳德特朗普因被指控受到外国干涉而入主白宫,这一问题再次成为…...
vivado 创建实施约束
创建实施约束 在您有了一个合成的网表之后,您可以将它与XDC文件一起加载到内存中,或者Tcl脚本已启用以进行实现。当加载XDC以便验证和更正任何不能应用的约束。在某些情况下,合成网表中的对象名称与精心设计。如果是这种情况,则必…...
【代码分析】MPI
代码解读 问题 model/AdaMPI.py:21 为什么下降分辨率model.CPN.unet.FeatMaskNetwork 为什么用的是mask,unet? MPI class MPIPredictor(nn.Module):def __init__(self,width384,height256,num_planes64,):super(MPIPredictor, self).__init__()self.…...
数字孪生Web3D智慧机房可视化运维云平台建设方案
前言 进入信息化时代,数字经济发展如火如荼,数据中心作为全行业数智化转型的智慧基座,重要性日益凸显。与此同时,随着东数西算工程落地和新型算力网络体系构建,数据中心建设规模和业务总量不断增长,机房管理…...
飞天使-docker知识点12-docker-compose
文章目录 docker-compose命令启动单个容器重启容器停止和启动容器停止和启动所有容器演示一个简单示范 docker-compose 部署有依赖问题 Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它允许您使用简单的 YAML 文件来配置应用程序的服务、网络和存储等方…...
快速排序(一)
目录 快速排序(hoare版本) 初级实现 问题改进 中级实现 时空复杂度 高级实现 三数取中 快速排序(hoare版本) 历史背景:快速排序是Hoare于1962年提出的一种基于二叉树思想的交换排序方法 基本思想:…...
GO的sql注入盲注脚本
之间学习了go的语法 这里就开始go的爬虫 与其说是爬虫 其实就是网站的访问如何实现 因为之前想通过go写sql注入盲注脚本 发现不是那么简单 这里开始研究一下 首先是请求网站 这里貌似很简单 package mainimport ("fmt""net/http" )func main() {res, …...
写好ChatGPT提示词原则之:清晰且具体(clear specific)
ChatGPT 的优势在于它允许用户跨越机器学习和深度学习的复杂门槛,直接利用已经训练好的模型。然而,即便是这些先进的大型语言模型也面临着上下文理解和模型固有局限性的挑战。为了最大化这些大型语言模型(LLM)的潜力,关…...
Java实现快速排序及其动图演示
快速排序(Quicksort)是一种基于分治思想的排序算法。它通过选择一个基准元素,将数组分为两个子数组,其中一个子数组的所有元素都小于基准元素,另一个子数组的所有元素都大于基准元素,然后递归地对这两个子数…...
iClient3D 图元操作
1. S3MTilesLayer,S3M(Spatial 3D Model)图层类 S3MTilesLayer,S3M(Spatial 3D Model)图层类,通过该图层实现加载三维切片缓存,包括倾斜摄影模型、BIM模型、点云数据、精细模型、矢量数据、符号等。 那S3MTilesLayer中针对图元的…...
从0到1!开发小白快速入门腾讯云数据库
在这个海量数据大爆发的时代,一个单一的开源数据库产品往往很难直接满足企业的业务需求,在某些场景下,无论是性能、安全还是稳定性,都面临着各种各样的问题。 你在工作中也有这样的烦恼的话,一定是因为你还没有使用过…...
Golang清晰代码指南
发挥易读和易维护软件的好处 - 第一部分 嗨,开发者们,清晰的代码是指编写易于阅读、理解和维护的软件代码。它是遵循一组原则和实践,优先考虑清晰性、简单性和一致性的代码。清晰的代码旨在使代码库更易管理,减少引入错误的可能性…...
C语言 文件I/O(备查)
所有案列 跳转到其他。 文件打开 FILE* fopen(const char *filename, const char *mode); 参数:filename:指定要打开的文件名,需要加上路径(相对、绝对路径)mode:指定文件的打开模式 返回值:成…...
web(HTML之表单练习)
使用HTML实现该界面: 要求如下: 用户名为文本框,名称为 UserName,长度为 15,最大字符数为 20。 密码为密码框,名称为 UserPass,长度为 15,最大字符数为 20。 性别为两个单选按钮&a…...
通过对象轮换实现 LRU 缓存结构
文章目录 通过两个对象轮换,按照是否访问实现内容长久保存rollup 的缓存实现 export default function (max) { //max 缓存容量var num, curr, prev;var limit max || 1;function keep(key, value) {if (num > limit) {prev curr; // 超过容量时当前对象变成缓…...
【Unity动画】综合案例完结-控制角色动作播放+声音配套
这个案例实现的动作并不复杂,主要包含一个 跳跃动作、攻击动作、还有一个包含三个动画状态的动画混合树。然后设置三个参数来控制切换。 状态机结构如下: 完整代码 using System.Collections; using System.Collections.Generic; using UnityEngine;pu…...
【工作流Activiti】任务组
1、Candidate-users候选人 1.1、需求 在流程定义中在任务结点的assignee固定设置任务负责人,在流程定义时将参与者固定设置在.bpmn文件中,如果要临时变更任务负责人则需要修改流程定义,系统扩展性很差,针对这种情况,我…...
桌面概率长按键盘无法连续输入问题
问题描述:概率性长按键盘无法连续输入文本 问题定位: 系统按键流程分析 图一 系统按键流程 按键是由X Server接收的,这一点只要明白了X Window的工作机制就不难理解了。X Server在接收到按键后,会转发到相应程序的窗口中。在窗…...
用23种设计模式打造一个cocos creator的游戏框架----(十九)备忘录模式
1、模式标准 模式名称:备忘录模式 模式分类:行为型 模式意图:在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态 结构图: 适用于: …...
动手学深度学习-自然语言处理-预训练
词嵌入模型 将单词映射到实向量的技术称为词嵌入。 为什么独热向量不能表达词之间的相似性? 自监督的word2vec。 word2vec将每个词映射到一个固定长度的向量,这些向量能更好的表达不同词之间的相似性和类比关系。 word2vec分为两类,两类…...
力扣200. 岛屿数量(java DFS解法)
Problem: 200. 岛屿数量 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 该问题可以归纳为一类遍历二维矩阵的题目,此类中的一部分题目可以利用DFS来解决,具体到本题目: 1.我们首先要针对于二维数组上的每一个点,尝试展…...
解决el-table组件中,分页后数据的勾选、回显问题?
问题描述: 1、记录一个弹窗点击确定按钮后,table列表所有勾选的数据信息2、再次打开弹窗,回显勾选所有保存的数据信息3、遇到的bug:切换分页,其他页面勾选的数据丢失;点击确认只保存当前页的数据࿱…...
web网络安全
web安全 一,xss 跨站脚本攻击(全称Cross Site Scripting,为和CSS(层叠样式表)区分,简称为XSS)是指恶意攻击者在Web页面中插入恶意javascript代码(也可能包含html代码),当用户浏览网页之时&…...
若依 ruoyi-vue3 集成aj-captcha实现滑块、文字点选验证码
目录 0. 前言0.1 说明 1. 后端部分1.1 添加依赖1.2. 修改 application.yml1.3. 新增 CaptchaRedisService 类1.4. 添加必须文件1.5. 移除不需要的类1.6. 修改登录方法1.7. 新增验证码开关获取接口1.8. 允许匿名访问 2. 前端部分(Vue3)2.1. 新增依赖 cryp…...
安卓10 flutter webview 回退会闪退
现象 在安卓10设备上,访问了webview页面后,回退到其他页面后,大概率会闪退,请查看issuses https://github.com/flutter/flutter/issues/78405 解决思路:在回退前,先把webview销毁掉,重新生成一个…...
【Unity入门】物体5种移动方法
目录 一、通过修改位置来实现移动二、通过物理系统实现位移三、通过CharacterController组件四、通过输入控制物体移动 一、通过修改位置来实现移动 利用修改Transform组件的position的两种常用方法。 使用Translate()函数 /*物体将向x方向移动1.5单位…...
Elasticsearch的 8.x常用api汇总
ES的查询语法比较复杂,对于初学者需要在不断练习中才会逐渐掌握,本文汇总了ES各种查询语法以及常用api,可以作为新手的实用笔记 首先,安装 Kibana! 下载Elasticsearch,官方下载页面;Elasticsearch 参考,官方文档;<...
k8syaml提供的几个有意思的功能,Kubernetes在线工具网站
k8syaml.cn 提供的几个有意思的功能。 一、yaml资源快速生成 之前编写operator的helm的时候就需要自己写deployment、service、configmap这些资源,那么多字段也记不清,都是先找个模版,然后copy改改,再看官方文档,添加…...
【图像分类】【深度学习】【Pytorch版本】 ResNeXt模型算法详解
【图像分类】【深度学习】【Pytorch版本】 ResNeXt模型算法详解 文章目录 【图像分类】【深度学习】【Pytorch版本】 ResNeXt模型算法详解前言ResNeXt讲解分组卷积(Group Converlution)分割-变换-合并策略(split-transform-merge)ResNeXt模型结构 ResNeXt Pytorch代码完整代码总…...
Android 14 应用适配指南
Android 14 应用适配指南:https://dev.mi.com/distribute/doc/details?pId1718 Android 14 功能和变更列表 | Android 开发者 | Android Developers 1.获取Android 14 1.1 谷歌发布时间表 https://developer.android.com/about/versions/14/overview#timeli…...
手机网站制作合同/国内免费b2b网站大全
你好,电脑录屏有很多种不同的需求场景,有时候只需录制电脑画面,有时候要加上麦克风声音、摄像头画面,有时候则要在录制过程种对画面加以批注。根据不同的需求可选择不同的方法。下面分享三款不同的软件:专业的、免费的…...
手机如何搭建网站/网站在线客服系统免费
原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!原文链接地址:『高级篇』docker之服务编排了解Mesos(22) Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内…...
做职业测评的网站/网站服务器怎么搭建
MySQL—行转列 一、行转列 1、SqlServer和Orcle中可以使用pivot行转列函数快速实现,而MySQL中没有 pivot: SELECT * FROM student PIVOT (SUM(score) FOR subject IN (语文, 数学, 英语) )2、MySQL实现行转列 SELECT name,MAX(CASEWHEN subject语文THEN score…...
拿品牌做网站算侵权吗/武汉seo关键词排名优化
两次cross apply: select a.*, x.value(., int) "ID" from 表 a cross apply (select 架构.获取XML片段(条件列) row ) rs cross applyrow.nodes(/item) T(x)一次cross apply,但被选择的列不能省略: select 条件列, x.value(., int…...
长春市委网站/网络营销的专业知识
随着业务的需求普通的springmvcjsp已经不能满足我们的系统了,会逐渐把后台和前端展示分离开来,下面我们就来把普通的springmvcjsp分为 springmvc只提供rest接口,前端用ajax请求接口渲染到html中。后台提供接口是一个tomcat服务器前台访问数据…...
网站多语言切换/网站seo排名优化
重分布的也就算都看完了吧 两个内容,route-map和双点双向重分布 route-map的知识点也就是那几个,怎么写是OR,怎么写是AND,默认是什么处理 双点双向重分布其实很好理解 A协议的内容在点X进入到了B协议,B协议的内容同时进…...