CN111416709A - 基于区块链系统的投票方法、装置、设备及存储介质 - Google Patents

基于区块链系统的投票方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111416709A
CN111416709A CN202010193330.2A CN202010193330A CN111416709A CN 111416709 A CN111416709 A CN 111416709A CN 202010193330 A CN202010193330 A CN 202010193330A CN 111416709 A CN111416709 A CN 111416709A
Authority
CN
China
Prior art keywords
voting
target
user
item
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010193330.2A
Other languages
English (en)
Other versions
CN111416709B (zh
Inventor
庄尔悦
刘啸南
王金华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010193330.2A priority Critical patent/CN111416709B/zh
Publication of CN111416709A publication Critical patent/CN111416709A/zh
Application granted granted Critical
Publication of CN111416709B publication Critical patent/CN111416709B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

本申请公开了一种基于区块链系统的投票方法、装置、设备及存储介质,属于区块链技术领域。本申请通过响应于投票指令,获取投票指令携带的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识;对投票用户的投票资格进行校验,以确保各个候选用户所获得选票的有效性;响应于校验通过,触发资源转移事件,将第二账户中的目标资源转移至第一账户,完成投票;再将资源转移事件的描述信息存储至区块链系统的区块链上。应用上述技术方案,以在区块链系统中进行资源转移的形式来进行投票,由区块链记录投票信息,根据区块链的分布式存储、去中心化的特征,可以有效避免出现单点故障,提高数据安全性。

Description

基于区块链系统的投票方法、装置、设备及存储介质
技术领域
本申请涉及区块链技术领域,特别涉及一种基于区块链系统的投票方法、装置、设备及存储介质。
背景技术
随着互联网技术的发展,电子投票逐渐代替传统的投票方式,被广泛应用在日常生活中。当开始一个投票项目时,用户可以通过电子投票系统进行线上投票,在投票项目结束时,由电子投票系统自动统计票数,或者由系统管理进行票数统计,得到投票结果。
但是,在上述投票过程中,应用的电子投票系统通常是采用传统的系统架构设计,部署在单一的服务器中,容易被攻击而发生单点故障,进而导致投票数据丢失、用户数据泄漏等问题,投票的安全性较低。
发明内容
本申请实施例提供了一种基于区块链系统的投票方法、装置、设备及存储介质,可以提高投票的安全性,避免数据丢失。该技术方案如下:
一方面,提供了一种基于区块链系统的投票方法,该方法包括:
响应于投票指令,获取该投票指令携带的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识;
对该投票用户的投票资格进行校验;
响应于校验通过,触发资源转移事件,该资源转移事件用于指示将第二账户中的目标资源转移至第一账户,该目标资源的数量用于指示投票数量;
将该资源转移事件的描述信息存储至该区块链系统的区块链上,该资源转移事件的描述信息包括该目标投票项目的项目标识、该第一账户标识、该第二账户标识以及该目标资源的数量。
一方面,提供了一种基于区块链系统的投票装置,该装置包括:
获取模块,用于响应于投票指令,获取该投票指令携带的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识;
校验模块,用于对该投票用户的投票资格进行校验;
资源转移模块,用于响应于校验通过,触发资源转移事件,该资源转移事件用于指示将第二账户中的目标资源转移至第一账户,该目标资源的数量用于指示投票数量;
存储模块,用于将该资源转移事件的描述信息存储至该区块链系统的区块链上,该资源转移事件的描述信息包括该目标投票项目的项目标识、该第一账户标识、该第二账户标识以及该目标资源的数量。
在一种可能实现方式中,该分配模块,用于响应于对该目标投票项目的候选用户添加指令,为各个候选用户分配该第一账户标识;
该存储模块,用于将该各个候选用户的该第一账户标识存储至该目标数据库中。
在一种可能实现方式中,该获取模块,用于响应于对该目标投票项目的投票用户添加指令,获取该投票用户添加指令所携带的各个投票用户的邮箱地址;
该分配模块,用于为该各个投票用户分配该第二账户标识以及该目标资源以及投票页面的网络地址,该投票页面用于提供对该目标项目进行投票的功能;
该存储模块,用于将该各个投票用户的该第二账户标识、该邮箱地址以及该网络地址存储至该目标数据库中。
在一种可能实现方式中,该装置还包括:
节点确定模块,用于确定该投票用户添加指令的指令发送节点;
验证模块,用于基于该各个投票用户的邮箱地址以及该投指令发送节点,对该投票用户添加指令进行验证;若验证通过,则执行为该各个投票用户分配该第二账户标识、该目标资源以及投票页面的网络地址的步骤。
在一种可能实现方式中,该验证模块用于:
判断该指令发送节点是否为管理员节点;
若该指令发送节点不是该管理员节点,则验证失败;
若该指令发送节点是该管理员节点,则判断该各个投票用户的邮箱地址与该目标数据库中存储的邮箱地址是否相同;
若相同,则验证失败;若不同,则验证通过。
在一种可能实现方式中,该获取模块,用于基于该第二账户标识,从该目标数据库中获取该投票用户对应的网络地址;
该装置还包括判断模块,用于判断该投票指令所对应投票页面的网络地址与该投票用户对应的网络地址是否相同;
若相同,则执行对该投票用户的投票资格进行校验的步骤;
若不同,则执行向该投票用户发送投票无效的提示信息的步骤。
在一种可能实现方式中,该目标数据库中存储有该投票用户的投票状态信息,该投票状态信息用于指示该投票用户是否已在该目标投票项目中进行投票。
在一种可能实现方式中,该校验模块用于:
基于该第二账户标识,从该目标数据库中获取该投票用户的投票状态信息;
基于该投票状态信息,确定该投票用户是否已在该目标投票项目中进行投票;
若该投票用户已投票,则校验失败;若该投票用户未投票,则校验通过。
在一种可能实现方式中,该存储模块用于:
响应于该目标资源转移完成,生成该资源转移事件的描述信息;
将该资源转移事件的描述信息广播至该区块链系统的各个节点;
若包含该资源转移事件的描述信息的区块共识通过,则将该区块储至该区块链系统的区块链上。
在一种可能实现方式中,该获取模块,用于响应于该目标投票项目的有效期结束,基于各个候选用户的第一账户标识,获取该各个候选用户对应的该目标资源的数量;
该装置还包括选票确定模块,用于基于该各个候选用户对应的该目标资源的数量以及目标转换标准,确定该各个候选用户对应的选票数量;
该装置还包括发送模块,用于将该各个候选用户对应的选票数量发送给该各个候选用户以及各个投票用户。
一方面,提供了一种计算机设备,该计算机设备包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条程序代码,该至少一条程序代码由该一个或多个处理器加载并执行以实现该基于区块链系统的投票方法所执行的操作。
一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行以实现该基于区块链系统的投票方法所执行的操作。
本申请实施例提供的技术方案,通过响应于投票指令,获取投票指令携带的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识;对投票用户的投票资格进行校验,以确保各个候选用户所获得选票的有效性;响应于校验通过,触发资源转移事件,将第二账户中的目标资源转移至第一账户,以完成投票;再将资源转移事件的描述信息存储至区块链系统的区块链上,由于存储在区块链上的数据不可篡改的特征,可以确保投票数据不会丢失,确保用户数据安全。应用上述技术方案,以在区块链系统中进行资源转移的形式来进行投票,由区块链记录投票信息,根据区块链的分布式存储、去中心化的特征,可以有效避免出现单点故障,提高数据安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链系统100的示意图;
图2是本申请实施例提供的一种基于区块链系统的投票创建方法的流程图;
图3是本申请实施例提供的一种账户地址生成方法的示意图;
图4是本申请实施例提供的一种钱包账户结构示意图;
图5是本申请实施例提供的一种基于区块链的投票方法示意图;
图6是本申请实施例提供的一种基于区块链系统的投票方法的流程图;
图7是本申请实施例提供的一种区块链系统的资源转移的流程图;
图8是本申请实施例提供的一种投票过程以及投票结果公布的示意图;
图9是本申请实施例提供的一种基于智能合约的投票过程示意图;
图10是本申请实施例提供的一种基于区块链系统的投票装置的结构示意图;
图11是本申请实施例提供的一种终端的结构示意图;
图12是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了便于理解本申请实施例的技术过程,下面对本申请实施例所涉及的一些名词进行解释:
区块链(Block chain):是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块,每个区块都包含一个时间戳和一个与前一区块的链接。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本,即区块链中的数据一旦记录下来将不可逆。
共识机制(Consensus mechanism):是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。在区块链系统中,通过特殊节点的投票,可以在很短的时间内完成对交易的验证和确认,对一笔交易,如果利益不相干的若干个节点能够达成共识,就可以认为系统中的全部节点对此也能够达成共识。
智能合约(Smart contract):是一种旨在以信息化方式传播、验证或执行合同的计算机协议。区块链系统中的各个节点根据特定条件自动执行的合约程序,可以对链上存储的数据进行操作,是用户与区块链进行交互、利用区块链实现业务逻辑的重要途径。智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本,它允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
公钥(public key)与私钥(private key):是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种算法得到的密钥对能够确保是唯一的。使用这种密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
本申请实施例提供了一种基于区块链技术实现的区块链系统100,以下对该区块链系统的系统架构进行介绍。
图1是本申请实施例提供的一种区块链系统100的示意图,参见图1,该区块链系统100可以包括多个节点设备101,此外,该区块链系统100还可以包括至少一个客户端。其中,该客户端可以为用于提供投票功能的目标应用程序的客户端,该客户端可以安装和运行于任一用户所使用的节点设备中,用户可以通过该客户端与该区块链系统100进行数据交互。
节点设备101可以是网络中的任意形式的计算设备,如服务器、主机、用户终端等。节点设备101与节点设备101之间能够共享数据。其中,节点设备101之间可以基于点对点(Peer To Peer,P2P)协议,建立P2P网络。该P2P协议是一个运行在传输控制协议(Transmission Control Protocol,TCP)协议之上的应用层协议。
每个节点设备101在进行正常工作的过程中,可以接收到输入信息,并基于接收到的输入信息维护该区块链系统内的共享数据。为了保证区块链系统内的信息互通,区块链系统中的每个节点设备之间可以存在信息连接,节点设备之间可以通过上述信息连接进行信息传输。例如,当区块链系统中的任意节点设备接收到输入信息时,区块链系统中的其他节点设备也可以获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链系统中全部节点设备上存储的数据均一致。
以下,对节点设备101的功能架构进行介绍。
节点设备101从功能上可以划分为硬件层、中间层、操作系统层和应用层,涉及的具体功能可以如下:
1)路由,节点设备具有的基本功能,用于支持节点设备之间的通信。
节点设备除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点设备,供其他节点设备在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点设备,其他节点设备验证成功后,作为承认交易有效的响应,将交易的记录数据写入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币。
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点设备,其他节点设备验证有效后,作为承认账目数据有效的响应,将记录数据写入临时区块中,还可以向发起操作的节点设备发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点设备提交的记录数据。
图2是本申请实施例提供的一种基于区块链系统的投票创建方法的流程图。在本申请实施例中以该方法应用于上述区块链系统100中的第一节点设备为例进行说明。其中,该第一节点设备可以安装和运行有目标应用程序的客户端,该目标应用程序可以用于提供投票功能,在投票项目创建以及投票过程中,用户可以通过该目标应用程序的客户端与区块链系统100进行交互,例如,可以进行数据存储、用户节点注册等。在本申请实施例中,该第一节点设备可以登录有管理员账户,即应用该第一节点设备的用户为管理员用户。参见图2,该实施例具体可以包括以下步骤:
201、第一节点设备基于创建指令,创建目标投票项目。
在一种可能实现方式中,该第一节点设备所运行的目标应用程序的客户端中可以显示有投票创建页面,该投票创建页面可以包括信息输入区域以及投票创建控件。管理员用户点击该投票创建控件时,可以触发对目标投票项目的创建指令,该创建指令可以携带有管理员用户在该信息输入区域所输入的项目信息,例如,该创建指令可以携带有该目标投票项目的有效期信息、项目名称、投票内容简介等信息。其中,该有效期信息可以表示为目标投票项目的开始时间和结束时间,也可以表示为目标投票项目的开始时间和持续时长,本申请实施例对此不作具体限定。需要说明的是,上述对创建指令的触发方式的说明,仅是一种示例性说明,本申请实施例对具体采用哪种方式触发该创建指令不作限定。
在本申请实施例中,该第一节点设备可以接收对该目标投票项目的创建指令,基于该创建指令为该目标投票项目分配项目标识,一个项目标识可以用于唯一的指示一个投票项目,该第一节点设备可以将该投票项目的项目标识以及该目标投票项目的其他项目信息,例如,有效期信息、项目名称、投票内容简介等,存储至目标数据库中。其中,该目标数据库可以用于存储该目标投票项目的项目信息,该目标数据库可以部署于服务器中,该服务器可以是该目标应用程序的后台服务器。参见表1,该服务器的目标数据库中可以维护有如表1所示的投票项目信息表,表1中仅以项目信息包括项目标识、项目名称、开始时间、结束时间、项目内容简介字段为例。
表1
字段 描述
项目标识 001
项目名称 选举投票
开始时间 2020-03-01 9:00
结束时间 2020-03-02 9:00
项目内容简介 选举投票的简介
在本申请实施例中,第一节点设备将各个投票项目的项目信息存储在服务器的目标数据库中,便于管理员用户对各个投票项目的项目信息进行查询、修改等操作,便于数据维护。
202、第一节点设备基于候选用户添加指令,为该目标投票项目添加候选用户。
在一种可能实现方式中,该第一节点设备所运行的目标应用程序的客户端中可以显示有该目标投票项目的候选用户添加页面,该候选用户添加页面可以包括信息输入区域以及候选用户添加控件。管理员用户可以在该信息输入区域录入各个候选用户的信息,包括候选用户的姓名、简介、图片等,还可以选择各个候选用户所属投票项目的项目标识,候选用户的信息录入完成后,管理员用户可以点击该候选用户添加控件,触发该候选用户添加指令。其中,该候选用户添加指令可以携带有候选用户的姓名、简介、图片等,还可以携带有候选用户所属投票项目的项目标识,即该目标投票项目的项目标识。需要说明的是,上述对候选用户添加指令的触发方式的说明,仅是一种示例性说明,本申请实施例对具体采用哪种指令触发方式不作限定。
在本申请实施例中,第一节点设备可以响应于对该目标投票项目的候选用户添加指令,为各个候选用户分配第一账户标识,以完成候选用户在该区块链系统的注册,使候选用户可以成为区块链系统中的节点。其中,一个账户标识可以用于唯一的指示区块链系统中的一个用户,在本申请实施例中,该账户标识可以表示为账户地址的形式,该账户地址也可以称为区块链地址。在一种可能实现方式中,上述将候选用户在区块链系统中注册的步骤可以基于智能合约执行,该候选用户添加指令可以触发该区块链系统中的智能合约,该第一节点设备或该区块链系统中用于提供节点注册功能的设备,可以通过该智能合约对各个候选用户进行初始化,即为各个候选用户分配账户,完成各个候选用户的注册。以对一个候选用户进行注册为例,参见图3,图3是本申请实施例提供的一种账户地址生成方法的示意图,在一种可能实现方式中,首先,可以通过随机数发生器301生成一个256位的随机数,作为该候选用户的私钥302;然后,基于椭圆曲线算法SECP256K1,对该私钥302进行哈希加密生成公钥303,一个私钥只能映射出一个公钥;最后,该第一节点设备对该公钥303应用多种加密算法,例如SHA256哈希算法、RIPEMD-160算法等,将该公钥303转换为公钥哈希304,通过Base58编码算法,对该公钥哈希304进行编码得到该候选用户的第一账户地址305。该区块链系统完成对该候选用户的账户分配,即可确定该候选用户在该区块链系统中注册完成。在区块链机制中,各个账户对应的私钥可以以wallet(钱包账户)的形式进行存储,图4是本申请实施例提供的一种钱包账户结构示意图,一个钱包账户401可以用于管理一个账户地址以及一个账户密码402对应的keystore(签名文件)403,该keystore是由明文私钥通过加密算法进行加密后的JSON格式的字符串,通常以文件形式进行存储,可以由账户密码402和keystore(签名文件)403得到账户对应的私钥。需要说明的是,上述对候选用户在区块链系统中注册方法的描述,仅是一种示例性描述,本申请实施例对具体采用哪种用户注册方法不作限定。在上述方案中,只有Base58编码的加密算法是可逆的,其他算法均是不可逆的,因此,通过公钥和账户地址均无法逆推出私钥,确保了私钥的安全性。
在一种可能实现方式中,在对候选用户进行注册之前,该区块链系统还可以通过智能合约对该候选用户添加指令进行验证,即验证该候选用户添加指令的发送节点是否为管理员节点,例如,可以验证发送该候选用户添加指令的节点的账户地址是否为管理员用户的账户地址,也可以验证该候选用户添加指令是否携带有管理员用户的私钥签名,本申请实施例对该候选用户添加指令的验证方法不作限定。当验证通过时,该区块链系统可以通过该智能合约继续执行后续的候选用户注册步骤;当验证失败时,则无需执行后续的候选用户注册步骤,该区块链系统可以向该第一节点设备反馈候选用户注册失败的提示信息。
在本申请实施例中,该第一节点设备可以将各个候选用户的第一账户标识存储至目标数据库中。该目标数据库中可以维护有如表2所示的候选用户信息表,表2中仅以候选用户信息包括候选用户的用户标识、姓名、简介、图片、候选用户所属投票项目的项目标识、账户地址、账户信息的文件保存路径以及公钥等字段为例。其中,该候选用户的用户标识可以由该第一节点设备分配,也可以由管理员用户进行设置,本申请实施例对此不作限定,该账户信息的文件保存路径可以指示账户信息的存储位置。
表2
Figure BDA0002416707170000101
Figure BDA0002416707170000111
在本申请实施例中,将投票项目中的候选用户注册为区块链系统中的节点,为各个候选用户分配账户,来指示候选用户的身份信息,通过目标数据库存储各个候选用户的身份信息,便于对各个候选用户进行管理。
203、第一节点设备基于投票用户添加指令,为该目标投票项目添加投票用户。
在一种可能实现方式中,该第一节点设备所运行的目标应用程序的客户端中可以显示有投票用户添加页面,管理员用户可以在该投票用户添加页面录入各个投票用户的邮箱地址以及各个投票用户所属的投票项目。在本申请实施例中,在投票用户添加阶段,通过邮箱地址来区分投票用户,一个邮箱地址对应于一个投票用户,各个投票用户的邮箱地址由管理员录入,无需投票用户自己在区块链系统中进行注册,也即是,在用户注册阶段,可以由管理员用户对参与投票各个用户进行管理,避免出现一个投票用户使用不同邮箱地址进行多次注册的情况。当然,也可以基于手机号码来区分不同的投票通话,即通过添加投票用户的手机号码的形式进行投票用户注册,本申请实施例对此不作限定。在本申请实施例中,管理员用户还可以录入各个投票用户的姓名等身份信息,将各个投票用户的姓名与邮箱地址相对应,便于后续进行投票用户管理。投票用户的信息录入完成后,管理员用户可以点击该投票用户添加页面中的投票用户添加控件,触发该投票用户添加指令。其中,该投票用户添加指令可以携带有投票用户的姓名、邮箱地址以及所属投票项目的项目标识等信息。需要说明的是,上述对投票用户添加指令的触发方式的说明,仅是一种示例性说明,本申请实施例对具体采用哪种指令触发方式不作限定。
在本申请实施例中,该第一节点设备可以响应于对该目标投票项目的投票用户添加指令,获取该投票用户添加指令所携带的各个投票用户的邮箱地址;为各个投票用户分配第二账户标识、目标资源以及投票页面的网络地址,以完成各个投票用户在该区块链系统的注册,使各个投票用户成为该区块链系统的用户。各个投票用户注册完成之后,可以基于各个投票用户的邮箱地址,将分配好的该网络地址、第二账户标识等信息返回给各个投票用户。其中,账户标识可以表示为区块链上的账户地址的形式,一个账户标识可以用于唯一的指示区块链系统中的一个用户,各个投票用户的账户可以用于存储选票,即该目标资源,在本申请实施例中,以目标资源的形式来表示选票,该目标资源可以为区块链系统中的虚拟货币,例如,该目标资源可为以太币,一个以太币可以表示一票,本申请实施例对此不作限定。该投票页面可以用于提供对目标投票项目中各个候选用户进行投票的功能,参与该目标投票项目的各个投票用户分别对应于不同的网络地址,也即是,各个投票用户通过不同的网络地址进入该目标投票项目的投票页面。需要说明的是,在一种可能实现方式中,同一投票项目的各个网络地址分别可以映射为不同的投票页面,但各个投票页面所显示的内容是相同的;在一种可能实现方式中,可以对各个网络地址进行解析,解析后的各个网络地址可以对应于同一个投票页面,即该目标投票项目的投票页面,本申请实施例对此不作限定。
应用这种技术方案,一方面,可以通过投票页面的网络地址定位到投票用户,提高了投票的可追溯性;另一方面,参与一个投票项目的投票用户是确定的,也即是,一个投票项目所对应的网络地址也是确定的,当有用户通过非法途径进入投票页面时,可以通过投票页面的网络地址,高效的识别出非法的投票行为。
在一种可能实现方式中,上述将投票用户在区块链系统中注册的步骤可以基于智能合约执行,该投票用户添加指令可以触发该区块链系统中的智能合约,该第一节点设备或该区块链系统中用于提供节点注册功能的设备,可以通过该智能合约对各个投票用户进行初始化,即为各个投票用户分配账户,完成各个候选用户的注册。该将投票用户在区块链系统中注册的方法与上述步骤202中将候选用户在区块链系统中注册的步骤同理,在此不做赘述。当然,在本申请实施例中,还需为各个投票用户发放一定数量的选票,即为各个投票用户分配一定数量的目标资源,该目标资源的数量可以由开发人员进行设置,各个投票用户所对应的目标资源可以相同,也可以不同,也即是,各个投票用户可以拥有相同数量的选票,也可拥有不同数量的选票,本申请实施例对此不作限定。在本申请实施例中,该区块链系统通过该智能合约为该投票用户分配账户时,还可以生成一个8位字符长度的随机码,基于该随机码为投票用户构造一个唯一的URL(Uniform Resource Locator,统一资源定位符)地址,即投票页面的网络地址。在本申请实施例中,在对网络地址进行解析时,可以通过去除随机码等方式,使解析后的网络地址对应于同一个投票页面;当然,各个网络地址也可以对应与不同投票页面,各个投票页面均可以显示该目标投票项目的投票信息,本申请实施例对此不作限定。各个投票用户注册完成之后,可以基于各个投票用户的邮箱地址,将分配好的该网络地址、公钥、私钥、账户标识等信息返回给各个投票用户。在本申请实施例中,基于智能合约将投票用户注册为区块链系统中的用户节点,各个投票用户的网络地址、账户标识、密钥对等用户信息均由区块链系统进行分配,无需通过管理员用户,各个投票用户的用户信息不需要公开,提高了用户信息的安全性。
在本申请实施例中,在对投票用户进行注册之前,该区块链系统还可以通过智能合约对该投票用户添加指令进行验证。在一种可能实现方式中,可以确定该投票用户添加指令的指令发送节点;基于各个投票用户的邮箱地址以及该投指令发送节点,对该投票用户添加指令进行验证,例如,可以判断该指令发送节点是否为管理员节点,若该指令发送节点不是该管理员节点,则验证失败,若该指令发送节点是该管理员节点,则判断各个投票用户的邮箱地址与该目标数据库中存储的邮箱地址是否相同,若相同,则验证失败,即投票用户已参与该目标投票项目,若不同,则验证通过,继续执行为该各个投票用户分配该第二账户标识、该目标资源以及投票页面的网络地址的步骤。需要说明的是,上述验证投票用户添加指令发送节点是否为该管理员节点的方法,与上述步骤202中验证候选用户添加指令的发送节点是否为管理员节点的方法同理,在此不做赘述。
在本申请实施例中,投票用户在区块链系统中注册完成后,该第一节点设备可以将各个投票用户的该第二账户标识、该邮箱地址以及该网络地址等信息存储至目标数据库中。该目标数据库中可以维护有如表3所示的投票用户信息表,表3中仅以投票用户信息包括投票用户的用户标识、姓名、邮箱地址、网络地址、项目标识、账户地址、账户信息的文件保存路径、公钥以及投票状态等字段为例。其中,该投票用户的用户标识可以由该第一节点设备分配,也可以由管理员用户进行设置,本申请实施例对此不作限定;该投票状态可以用于指示投票用户是否已投票,当候选用户投票完成后,该投票状态会对应发生改变。
表3
字段 描述
用户标识 0002
姓名 投票用户的名字
邮箱地址 投票者邮箱地址
网络地址 随机码,确保每个投票者的投票地址不同
项目标识 目标投票项目的项目标识
账户地址 投票用户的第二账户地址
路径 投票用户的账户信息的文件保存路径
公钥 投票用户的公钥
投票状态 未投票
在本申请实施例中,将投票用户注册为区块链系统中的节点,为各个投票用户分配网络地址、账户以及目标资源,通过目标数据库存储各个候选用户的用户信息,便于对各个投票用户进行管理。
需要说明的是,在本申请实施例中,采用先添加候选用户,再添加投票用户的执行顺序进行描述,在一些可能的实施例中,也可以先执行投票用户的添加步骤,再执行候选用户的添加步骤,本申请实施例对此不作限定。
图5是本申请实施例提供的一种基于区块链的投票方法示意图,参见图5,管理员用户501可以创建目标投票项目502,为该目标投票项目添加候选用户503以及投票用户504,投票用户504可以基于目标应用程序与区块链系统进行交互,完成后续的投票步骤,也即是,目标应用程序与区块链系统可以构成一个基于区块链的电子投票系统505,投票用户504可以基于该电子投票系统505进行后续的投票步骤。应用上述技术方案,将投票用户与候选用户在区块链系统中注册,成为区块链系统中的节点,由区块链系统分配账户标识等身份信息,无需有管理员用户分配,可以确保用户信息的安全性。
上述实施例主要介绍了基于区块链系统创建目标投票项目的方法,在本申请实施例中,各个投票用户可以基于该区块链系统,对该投票项目中的各个候选用户进行投票。图6是本申请实施例提供的一种基于区块链系统的投票方法的流程图,该方法可以应用于上述区块链系统中的第二节点设备,其中,该第二节点设备可以为投票用户所使用的终端设备,也可以该终端设备对应的服务器,本申请实施例对此不作具体限定,在本申请实施例中,以该第二节点设备为投票用户所使用的终端设备为例进行说明,该第二节点设备可以安装和运行有具备投票功能的目标应用程序的客户端,该第二节点设备可以登录有投票用户的账户。参见图6,该方法具体可以包括以下步骤。
601、第二节点设备响应于投票指令,获取该投票指令携带的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识。
在一种可能实现方式中,投票用户可以点击该区块链系统分配的网络地址,进入该目标投票项目的投票页面。其中,该网络地址可以由区块链系统在投票用户注册时,为投票用户进行分配,通过投票用户的邮箱地址反馈给投票用户,该网络地址即为该目标投票项目的投票页面的地址,该投票页面可以显示有各个候选用户的用户信息,例如,各个候选用户的姓名、图片、简介等,当然,该投票页面还可以显示有信息输入区域以及确认投票控件。该投票用户可以在该投票页面选择候选用户以及填写身份信息,例如,该身份信息可包括该投票用户的姓名、账户标识等信息,其中,该账户标识也可以由该第二节点设备基于当前所登录的账户确定,本申请实施例对此不作限定。在本申请实施例中,该身份信息可以用于对该投票用户所触发的投票指令是否有效进行验证。该投票用户对候选用户选择完成后,可以点击该确认投票控件触发该投票指令。在本申请实施例中,该投票指令可以携带有该投票页面中被选中的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识,当然,该投票指令也可以携带有目标候选用户的用户标识以及该投票用户的用户标识,由该第二节点设备基于该目标候选用户的用户标识以及该投票用户的用户标识,从目标数据库中查询该第一账户标识以及该第二账户标识,本申请实施例对此不作限定。在本申请实施例中,该投票指令还可以携带有该投票用户的姓名、私钥签名以及该投票页面的网络地址等信息。
在一种可能实现方式中,该投票指令可以触发该区块链系统中的智能合约,该第二节点设备或该区块链系统中用于进行投票信息处理的节点设备,可以基于该智能合约获取该投票指令所携带的信息,基于这些信息以及目标数据库中存储的投票用户的用户信息,执行后续的信息校验步骤。需要说明的是,在本申请实施例中,以该第二节点设备调用该智能合约执行信息校验步骤为例进行说明。
602、第二节点设备对投票页面的网络地址进行校验。
在一种可能实现方式中,该第二节点设备可以调用该智能合约,由该智能合约基于该第二账户标识,从该目标数据库中获取该投票用户对应的网络地址;判断该投票页面的网络地址与该投票用户对应的网络地址是否相同;若相同,则执行对该投票用户的投票资格进行校验的步骤;若不同,则执行向该投票用户发送投票无效的提示信息的步骤,例如,该第二节点设备可以在该目标应用程序的客户端中显示投票无效的提示信息,以提示投票用户重新选择有效的网络地址进行投票。在一种可能实现方式中,该第二节点设备还可以获取投票用户在该投票页面所提供的身份信息,例如姓名,基于投票用户提供的该身份信息对该网络地址进行校验,也即是,基于目标数据库中的信息来判断,该身份信息与该网络地址是否属于同一投票用户。本申请实施例对该网络地址的具体校验方法不做限定。
在本申请实施例中,不同投票用户拥有不同的网络地址,各个投票用户只能通过自己对应的网络地址进行投票,如果投票用户与网络地址不符,则投票无效。通过网络地址进行校验,可防止用户通过非法的地址进入投票页面来进行投票,也可以确保各个投票用户的选票是由其本人投出的,确保选票的有效性。
603、第二节点设备对投票用户的投票资格进行校验。
在本申请实施例中,该第二节点设备可以基于该第二账户标识,从该目标数据库中获取该投票用户的投票状态信息,基于该投票状态信息,确定该投票用户是否已在该目标投票项目中进行投票,若该投票用户已投票,则校验失败;若未投票,则校验通过。也即是,当该投票状态信息为未投票时,该投票用户才具备投票资格。通过对投票用户的投票状态进行验证,可以避免一个投票用户对同一投票项目进行重复投票,确保投票结果的准确性。
在一种可能实现方式中,该投票指令还可以携带有该投票用户的私钥签名,该区块链系统还可以基于该投票指令的有效性来对该投票用户的投票资格进行校验。例如,该区块链系统可以从目标数据库中获取该第二账户标识对应的公钥,将该公钥与该私钥签名进行匹配,如果匹配成功,则该投票指令有效,该投票用户具备投票资格;如果匹配失败,则该投票指令无效,该投票用户不具备投票资格。需要说明的是,上述公钥也可以由投票用户在投票页面填写身份信息时输入,本申请实施例对此不作限定。
在本申请实施例中,可以通过多种方式对投票用户的投票资格进行校验,避免出现重复投票、无投票资格的用户进行投票的情况,确保投票的有效性。
604、第二节点设备响应于校验通过,触发资源转移事件,将该资源转移事件的描述信息存储至区块链系统的区块链上。
其中,该资源转移事件用于指示将第二账户中的目标资源转移至第一账户。
在本申请实施例中,响应于校验通过,该第二节点设备可以调用智能合约,该区块链系统可以响应于该智能合约,创建资源转移事件,即创建一个交易,该资源转移事件可以携带有该投票用户的私钥签名,该区块链系统可以基于该投票用户的公钥对该资源转移事件进行验证,当验证通过时,即该公钥与该私钥签名相匹配时,则可以将该资源转移事件添加至交易池中,该交易池可以用于存储待处理的交易数据。该区块链系统可以对交易池中的各个交易,即资源转移事件进行处理,完成目标资源转移的步骤。在一种可能实现方式中,该第二节点设备可以将全部目标资源进行转移,也可以基于投票用户所提供的资源转移数量,对部分目标资源转移至该进行转移。在本申请实施例中,可以以目标资源的转移数量来指示投票数量,例如,当该目标资源可以表示为以太币的形式时,转移1个以太币可以表示该投票用户向该目标候选用户投出1票。
在上述技术方案中,基于区块链系统,以资源转移,即交易的形式进行投票,交易过程可以通过智能合约来执行,且交易不可逆转,提高了投票的合法性、有效性。
在本申请实施例中,区块链系统可以响应于该目标资源转移完成,生成该资源转移事件的描述信息;将该资源转移事件的描述信息广播至该区块链系统的各个节点;若包含该资源转移事件的描述信息的区块共识通过,则将该区块存储至该区块链系统的区块链上。也即是,该区块链系统可以基于目标周期将交易池中的资源转移事件打包为区块,对区块进行广播、共识,将通过共识后区块存储至区块链,以实现将资源转移事件的描述信息存储至区块链,其中,该资源转移事件的描述信息可以包括该目标投票项目的项目标识、该第一账户标识、该第二账户标识以及该目标资源的数量等信息。该目标周期可以由开发人员进行设置,本申请实施例对此不作限定。需要说明的是,本申请实施例对该区块的生成方法以及共识方法不作限定。
图7是本申请实施例提供的一种区块链系统的资源转移的流程图,参见图7,首先,该第二节点设备可以基于交易信息以及账户地址,发起交易,即发起资源转移事件,其中,该交易信息可以包括该目标资源的转移数量、gas(燃料)等信息,gas可以用于指示投票用户发起该交易所支付的费用;该账户地址可以包括该第一账户地址以及该第二账户地址。然后,该第二节点设备可以基于该投票用户的私钥执行交易签名的步骤701。最后,由智能合约基于该投票用户的公钥执行对交易进行验证的步骤702,若公钥与私钥匹配失败,则验证失败,该区块链系统可以删除该交易数据;若公钥与私钥匹配成功,则验证通过,执行将该交易数据提交至交易池的步骤703,由该区块链系统按照目标周期将该交易池中的交易数据打包为区块,将区块进行广播,区块通过共识后将区块添加至区块链的尾部,也即是,将该资源转移事件的描述信息存储在区块链上。
在本申请实施例中,该资源转移事件的描述信息存储完成后,还可以将该资源转移事件的记录,即交易记录存储目标数据库中。该目标数据库中可以维护有如表4所示的交易记录表,该交易记录表中可以包括交易标识、投票用户姓名、项目名称、gas数量、交易哈希值、交易索引、区块哈希值、区块索引以及交易时间字段。
表4
字段 描述
交易标识 001
投票用户姓名 姓名
项目名称 目标投票项目的项目名称
gas数量 交易消耗gas数量
交易哈希值 交易哈希值
交易索引 交易索引
区块哈希值 交易存储区块的区块哈希值
区块索引 区块索引
交易时间 交易时间
在上述技术方案中,将投票相关的信息存储在区块链以及数据库中,可以避免数据丢失,也便于对数据进行查询、维护等。
605、响应于目标投票项目的有效期结束,第二节点设备获取投票结果。
在本申请实施例中,响应于该目标投票项目的有效期结束,该区块链系统可以调用智能合约,由该智能合约基于各个候选用户的第一账户标识,获取各个候选用户对应的该目标资源的数量,基于各个候选用户对应的该目标资源的数量以及目标转换标准,确定各个候选用户对应的选票数量。其中,该目标转换标准可以指示目标资源与选票之间的兑换标准,该目标转换标准可以由开发人员进行设置,本申请实施例对此不作限定。以该目标资源表现为以太币的形式为例,该目标转换标准可以设置为1个以太币对应1票,若候选用户的账户中包括6个以太币,则该候选用户可以获得6票。该区块链系统可以将各个候选用户对应的选票数量,即投票结果发送给各个候选用户以及各个投票用户,使参与该目标投票项目的用户可以及时获取到准确的投票结果。例如,可以将该投票结果以推送信息的形式推送至各个候选用户以及各个投票用户所使用的客户端,由该客户端进行显示;也可以以邮件形式发送给各个投票用户,本申请实施例对此不作限定。
在一种可能实现方式中,该投票结果可以存储在区块链系统的区块链上,该投票结果存储完成后,该区块链系统可以将该投票结果所在区块的区块索引等信息反馈给各个候选用户以及投票用户,以便各个用户对投票结果进行查验。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供的技术方案,通过响应于投票指令,获取投票指令携带的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识;对投票用户的投票资格进行校验,以确保各个候选用户所获得选票的有效性;响应于校验通过,触发资源转移事件,将第二账户中的目标资源转移至第一账户,以完成投票;再将资源转移事件的描述信息存储至区块链系统的区块链上,由于存储在区块链上的数据不可篡改的特征,可以确保投票数据不会丢失,确保用户数据安全。应用上述技术方案,以在区块链系统中进行资源转移的形式来进行投票,由区块链记录投票信息,根据区块链的分布式存储、去中心化的特征,可以有效避免出现单点故障,提高数据安全性。
图8是本申请实施例提供的一种投票过程以及投票结果公布的示意图,参见图8,首先,投票用户可以通过该目标应用程序,即基于区块链的电子投票系统,参与目标投票项目,由该基于区块链的电子投票系统对投票用户进行初始化,分配账户地址、网络地址以及密钥对,完成用户注册步骤801,也即是上述将投票用户在区块链系统中注册的步骤203;然后,该投票用户可以基于区块链系统中的资源转移,完成投票步骤802,具体的,该投票步骤802可以包括选择目标候选人、检验投票信息、构建交易信息、验证交易信息、交易广播等步骤,也即是,上述步骤601至605所描述的内容;最后,该电子投票系统可以对该目标投票项目的投票结果进行统计,执行投票结果公布的步骤803。在本申请实施例中,上述过程均可以基于智能合约执行,图9是本申请实施例提供的一种基于智能合约的投票过程示意图,参见图9,当该目标程序开始运行,即基于区块链的电子投票系统启动时,可以先执行判断智能合约是否初始化的步骤901,若未初始化,则执行初始化智能合约的步骤902。智能合约初始化完成后可以基于用户指令调用相应的方法以及代码逻辑,来完成交易,即完成投票过程。具体的,首先,智能合约设置请求参数并创建交易请求,将该交易请求发送至区块链系统,即执行步骤903和步骤904。然后,智能合约执行调用相应的方法的步骤905,该方法可以为invoke(调用)方法等本申请实施例对此不作限定,再通过该方法调用交易请求配置中相应的逻辑代码,即执行步骤906,在本申请实施例中,该步骤906具体可以包括用户初始化的步骤907和投票的步骤908。其中,该用户初始化步骤907即为响应于管理员用户的指令,来添加候选用户和投票用户,初始化各个用户的用户信息的步骤,该用户初始化过程与上述步骤202和步骤203同理;该投票步骤908即为响应于投票用户的投票指令,生成交易信息,基于交易的执行来完成投票的步骤,该投票过程与上述步骤601至步骤604同理。最后,该区块链系统可以执行验证智能合约是否正常执行的步骤909,若是,则智能合约向区块链系统返回执行成功的信息,即执行步骤910,若否,则智能合约向区块链系统返回执行失败的信息,即执行步骤911。应用上述技术方案,一方面,用户在区块链系统中注册,用户的账户等信息由区块链系统进行分配,可以确保用户信息安全;另一方面,上述方案基于区块链系统执行,将投票项目中的候选用户和投票用户作为区块链系统中的节点,投票用户在对候选用户投票时,发生转账交易,整个交易流程遵循去中心化的原则,交易的各个环节由区块链系统进行审核、记录,确保了投票的匿名性、防篡改性和可追溯性。
图10是本申请实施例提供的一种基于区块链系统的投票装置的结构示意图,参见图10,该装置包括:
获取模块1001,用于响应于投票指令,获取该投票指令携带的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识;
校验模块1002,用于对该投票用户的投票资格进行校验;
资源转移模块1003,用于响应于校验通过,触发资源转移事件,该资源转移事件用于指示将第二账户中的目标资源转移至第一账户,该目标资源的数量用于指示投票数量;
存储模块1004,用于将该资源转移事件的描述信息存储至该区块链系统的区块链上,该资源转移事件的描述信息包括该目标投票项目的项目标识、该第一账户标识、该第二账户标识以及该目标资源的数量。
在一种可能实现方式中,该装置还包括:
接收模块,用于接收对该目标投票项目的创建指令,该创建指令携带有该目标投票项目的有效期信息;
分配模块,用于为该目标投票项目分配项目标识;
该存储模块1004,用于将该投票项目的项目标识以及该有效期信息,存储至目标数据库中,该目标数据库用于存储该目标投票项目的项目信息。
在一种可能实现方式中,该分配模块,用于响应于对该目标投票项目的候选用户添加指令,为各个候选用户分配该第一账户标识;
该存储模块1004,用于将该各个候选用户的该第一账户标识存储至该目标数据库中。
在一种可能实现方式中,该获取模块1001,用于响应于对该目标投票项目的投票用户添加指令,获取该投票用户添加指令所携带的各个投票用户的邮箱地址;
该分配模块,用于为该各个投票用户分配该第二账户标识以及该目标资源以及投票页面的网络地址,该投票页面用于提供对该目标项目进行投票的功能;
该存储模块1004,用于将该各个投票用户的该第二账户标识、该邮箱地址以及该网络地址存储至该目标数据库中。
在一种可能实现方式中,该装置还包括:
节点确定模块,用于确定该投票用户添加指令的指令发送节点;
验证模块,用于基于该各个投票用户的邮箱地址以及该投指令发送节点,对该投票用户添加指令进行验证;若验证通过,则执行为该各个投票用户分配该第二账户标识、该目标资源以及投票页面的网络地址的步骤。
在一种可能实现方式中,该验证模块用于:
判断该指令发送节点是否为管理员节点;
若该指令发送节点不是该管理员节点,则验证失败;
若该指令发送节点是该管理员节点,则判断该各个投票用户的邮箱地址与该目标数据库中存储的邮箱地址是否相同;
若相同,则验证失败;若不同,则验证通过。
在一种可能实现方式中,该获取模块1001,用于基于该第二账户标识,从该目标数据库中获取该投票用户对应的网络地址;
该装置还包括判断模块,用于判断该投票指令所对应投票页面的网络地址与该投票用户对应的网络地址是否相同;
若相同,则执行对该投票用户的投票资格进行校验的步骤;
若不同,则执行向该投票用户发送投票无效的提示信息的步骤。
在一种可能实现方式中,该目标数据库中存储有该投票用户的投票状态信息,该投票状态信息用于指示该投票用户是否已在该目标投票项目中进行投票。
在一种可能实现方式中,该校验模块1002用于:
基于该第二账户标识,从该目标数据库中获取该投票用户的投票状态信息;
基于该投票状态信息,确定该投票用户是否已在该目标投票项目中进行投票;
若该投票用户已投票,则校验失败;若该投票用户未投票,则校验通过。
在一种可能实现方式中,该存储模块1004用于:
响应于该目标资源转移完成,生成该资源转移事件的描述信息;
将该资源转移事件的描述信息广播至该区块链系统的各个节点;
若包含该资源转移事件的描述信息的区块共识通过,则将该区块储至该区块链系统的区块链上。
在一种可能实现方式中,该获取模1001块,用于响应于该目标投票项目的有效期结束,基于各个候选用户的第一账户标识,获取该各个候选用户对应的该目标资源的数量;
该装置还包括选票确定模块,用于基于该各个候选用户对应的该目标资源的数量以及目标转换标准,确定该各个候选用户对应的选票数量;
该装置还包括发送模块,用于将该各个候选用户对应的选票数量发送给该各个候选用户以及各个投票用户。
本申请实施例提供的装置,通过响应于投票指令,获取投票指令携带的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识;对投票用户的投票资格进行校验,以确保各个候选用户所获得选票的有效性;响应于校验通过,触发资源转移事件,将第二账户中的目标资源转移至第一账户,以完成投票;再将资源转移事件的描述信息存储至区块链系统的区块链上,由于存储在区块链上的数据不可篡改的特征,可以确保投票数据不会丢失,确保用户数据安全。应用上述装置,以在区块链系统中进行资源转移的形式来进行投票,由区块链记录投票信息,根据区块链的分布式存储、去中心化的特征,可以有效避免出现单点故障,提高数据安全性。
需要说明的是:上述实施例提供的基于区块链系统的投票装置在进行投票时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于区块链系统的投票装置与基于区块链系统的投票方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述技术方案所提供的节点设备可以实现为终端或服务器,例如,图11是本申请实施例提供的一种终端的结构示意图。该终端1100可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、智能电视、笔记本电脑或台式电脑等。终端1100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1100包括有:一个或多个处理器1101和一个或多个存储器1102。
处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一条程序代码,该至少一条程序代码用于被处理器1101所执行以实现本申请中方法实施例提供的基于区块链系统的投票方法。
在一些实施例中,终端1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:射频电路1104、显示屏1105、摄像头组件1106、音频电路1107、定位组件1108和电源1109中的至少一种。需要说明的是本申请实施例对各个外围设备的具体功能以及数目不作限定。
在一些实施例中,终端1100还包括有一个或多个传感器1110。该一个或多个传感器1110包括但不限于:加速度传感器1111、陀螺仪传感器1112、压力传感器1113指纹传感器1114、光学传感器1115以及接近传感器1116。需要说明的是本申请实施例对各个传感器的具体功能以及数目不作限定。
本领域技术人员可以理解,图11中示出的结构并不构成对终端1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图12是本申请实施例提供的一种服务器的结构示意图,该服务器1200可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(Central Processing Units,CPU)1201和一个或多个的存储器1202,其中,该一个或多个存储器1202中存储有至少一条程序代码,该至少一条程序代码由该一个或多个处理器1201加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器1200还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器1200还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条程序代码的存储器,上述至少一条程序代码可由处理器执行以完成上述实施例中的基于区块链系统的投票方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-OnlyMemory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来至少一条程序代码相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种基于区块链系统的投票方法,其特征在于,应用于区块链系统中的节点设备,所述方法包括:
响应于投票指令,获取所述投票指令携带的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识;
对所述投票用户的投票资格进行校验;
响应于校验通过,触发资源转移事件,所述资源转移事件用于指示将第二账户中的目标资源转移至第一账户,所述目标资源的数量用于指示投票数量;
将所述资源转移事件的描述信息存储至所述区块链系统的区块链上,所述资源转移事件的描述信息包括所述目标投票项目的项目标识、所述第一账户标识、所述第二账户标识以及所述目标资源的数量。
2.根据权利要求1所述的方法,其特征在于,所述响应于投票指令,获取所述投票指令携带的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识之前,所述方法还包括:
接收对所述目标投票项目的创建指令,所述创建指令携带有所述目标投票项目的有效期信息;
为所述目标投票项目分配项目标识;
将所述投票项目的项目标识以及所述有效期信息,存储至目标数据库中,所述目标数据库用于存储所述目标投票项目的项目信息。
3.根据权利要求2所述的方法,其特征在于,所述将所述投票项目的项目标识以及所述有效期信息,存储至目标数据库中之后,所述方法还包括:
响应于对所述目标投票项目的候选用户添加指令,为各个候选用户分配所述第一账户标识;
将所述各个候选用户的所述第一账户标识存储至所述目标数据库中。
4.根据权利要求2所述的方法,其特征在于,所述将所述投票项目的项目标识以及所述有效期信息,存储至目标数据库中之后,所述方法还包括:
响应于对所述目标投票项目的投票用户添加指令,获取所述投票用户添加指令所携带的各个投票用户的邮箱地址;
为所述各个投票用户分配所述第二账户标识、所述目标资源以及投票页面的网络地址,所述投票页面用于提供对所述目标项目进行投票的功能;
将所述各个投票用户的所述第二账户标识、所述邮箱地址以及所述网络地址存储至所述目标数据库中。
5.根据权利要求4所述的方法,其特征在于,所述为所述各个投票用户分配所述第二账户标识、所述目标资源以及投票页面的网络地址之前,所述方法还包括:
确定所述投票用户添加指令的指令发送节点;
基于所述各个投票用户的邮箱地址以及所述指令发送节点,对所述投票用户添加指令进行验证;
若验证通过,则执行为所述各个投票用户分配所述第二账户标识、所述目标资源以及投票页面的网络地址的步骤。
6.根据权利要求5所述的方法,其特征在于,所述基于所述各个投票用户的邮箱地址以及所述指令发送节点,对所述投票用户添加指令进行验证,包括:
判断所述指令发送节点是否属于管理员节点;
若所述指令发送节点不属于所述管理员节点,则验证失败;
若所述指令发送节点属于所述管理员节点,则判断所述各个投票用户的邮箱地址与所述目标数据库中存储的邮箱地址是否相同;
若相同,则验证失败;若不同,则验证通过。
7.根据权利要求4所述的方法,其特征在于,所述响应于投票页面投票指令,获取所述投票指令携带的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识之后,所述方法还包括:
基于所述第二账户标识,从所述目标数据库中获取所述投票用户对应的网络地址;
判断所述投票指令所对应投票页面的网络地址与所述投票用户对应的网络地址是否相同;
若相同,则执行对所述投票用户的投票资格进行校验的步骤;
若不同,则执行向所述投票用户发送投票无效的提示信息的步骤。
8.根据权利要求2所述的方法,其特征在于,所述目标数据库中存储有所述投票用户的投票状态信息,所述投票状态信息用于指示所述投票用户是否已在所述目标投票项目中进行投票。
9.根据权利要求8所述的方法,其特征在于,所述对所述投票用户的投票资格进行校验,包括:
基于所述第二账户标识,从所述目标数据库中获取所述投票用户的投票状态信息;
基于所述投票状态信息,判断所述投票用户是否已在所述目标投票项目中进行投票;
若所述投票用户已投票,则校验失败;若所述投票用户未投票,则校验通过。
10.根据权利要求1所述的方法,其特征在于,所述将所述资源转移事件的描述信息存储至所述区块链系统的区块链上,包括:
响应于所述目标资源转移完成,生成所述资源转移事件的描述信息;
将所述资源转移事件的描述信息广播至所述区块链系统的各个节点;
若包含所述资源转移事件的描述信息的区块共识通过,则将所述区块储至所述区块链系统的区块链上。
11.根据权利要求1所述的方法,其特征在于,所述将所述资源转移事件的描述信息存储至所述区块链系统的区块链上之后,所述方法还包括:
响应于所述目标投票项目的有效期结束,基于各个候选用户的第一账户标识,获取所述各个候选用户对应的所述目标资源的数量;
基于所述各个候选用户对应的所述目标资源的数量以及目标转换标准,确定所述各个候选用户对应的选票数量;
将所述各个候选用户对应的选票数量发送给所述各个候选用户以及各个投票用户。
12.一种基于区块链系统的投票装置,其特征在于,所述装置包括:
获取模块,用于响应于投票指令,获取所述投票指令携带的目标候选用户的第一账户标识、投票用户的第二账户标识以及目标投票项目的项目标识;
校验模块,用于对所述投票用户的投票资格进行校验;
资源转移模块,用于响应于校验通过,触发资源转移事件,所述资源转移事件用于指示将第二账户中的目标资源转移至第一账户,所述目标资源的数量用于指示投票数量;
存储模块,用于将所述资源转移事件的描述信息存储至所述区块链系统的区块链上,所述资源转移事件的描述信息包括所述目标投票项目的项目标识、所述第一账户标识、所述第二账户标识以及所述目标资源的数量。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收对所述目标投票项目的创建指令,所述创建指令携带有所述目标投票项目的有效期信息;
分配模块,用于为所述目标投票项目分配项目标识;
所述存储模块,用于将所述投票项目的项目标识以及所述有效期信息,存储至目标数据库中,所述目标数据库用于存储所述目标投票项目的项目信息。
14.一种计算机设备,其特征在于,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求11任一项所述的基于区块链系统的投票方法所执行的操作。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行以实现如权利要求1至权利要求11任一项所述的基于区块链系统的投票方法所执行的操作。
CN202010193330.2A 2020-03-18 2020-03-18 基于区块链系统的投票方法、装置、设备及存储介质 Active CN111416709B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010193330.2A CN111416709B (zh) 2020-03-18 2020-03-18 基于区块链系统的投票方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010193330.2A CN111416709B (zh) 2020-03-18 2020-03-18 基于区块链系统的投票方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111416709A true CN111416709A (zh) 2020-07-14
CN111416709B CN111416709B (zh) 2021-07-30

Family

ID=71494771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010193330.2A Active CN111416709B (zh) 2020-03-18 2020-03-18 基于区块链系统的投票方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111416709B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112819627A (zh) * 2021-02-01 2021-05-18 杭州复杂美科技有限公司 区块链投票方法、计算机设备和存储介质
CN115001783A (zh) * 2022-05-27 2022-09-02 平安银行股份有限公司 一种投票方法、系统及存储介质
CN115240316A (zh) * 2022-07-21 2022-10-25 安世亚太科技股份有限公司 用于知识管理的链式投票方法及装置
CN115459998A (zh) * 2022-06-07 2022-12-09 赵万侠 基于区块链的避免异常趋势的投票系统、方法及平台

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101779191A (zh) * 2007-07-03 2010-07-14 高尖公司 用于在线竞赛中进行投票的系统和方法
US20110053559A1 (en) * 2009-09-01 2011-03-03 Elliot Klein Gps location authentication method for mobile voting
US20170048209A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
CN107833135A (zh) * 2017-10-30 2018-03-23 中山大学 一种基于区块链的公平电子投票协议
CN108109257A (zh) * 2018-01-05 2018-06-01 杭州电子科技大学 一种基于区块链的匿名电子投票方法
CN108416891A (zh) * 2018-05-21 2018-08-17 广西九星互联网络有限公司 基于投票ip段的网络投票检测方法及装置
CN108846942A (zh) * 2018-06-29 2018-11-20 青岛大学 基于以太坊区块链的电子投票方法和系统
CN108933656A (zh) * 2018-07-18 2018-12-04 京东方科技集团股份有限公司 在线作品投票方法及装置、计算机设备、可读存储介质
CN109274505A (zh) * 2018-11-22 2019-01-25 浙江工商大学 一种基于区块链技术的匿名电子选举方法
US20190065610A1 (en) * 2017-08-22 2019-02-28 Ravneet Singh Apparatus for generating persuasive rhetoric
CN109523683A (zh) * 2018-12-29 2019-03-26 杭州趣链科技有限公司 一种基于区块链技术的不记名电子投票方法
CN110224993A (zh) * 2019-05-16 2019-09-10 暨南大学 基于区块链的可追责匿名电子投票方法及系统
CN110519268A (zh) * 2019-08-27 2019-11-29 深圳前海微众银行股份有限公司 基于区块链的投票方法、装置、设备、系统及存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101779191A (zh) * 2007-07-03 2010-07-14 高尖公司 用于在线竞赛中进行投票的系统和方法
US20110053559A1 (en) * 2009-09-01 2011-03-03 Elliot Klein Gps location authentication method for mobile voting
US20170048209A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20190065610A1 (en) * 2017-08-22 2019-02-28 Ravneet Singh Apparatus for generating persuasive rhetoric
CN107833135A (zh) * 2017-10-30 2018-03-23 中山大学 一种基于区块链的公平电子投票协议
CN108109257A (zh) * 2018-01-05 2018-06-01 杭州电子科技大学 一种基于区块链的匿名电子投票方法
CN108416891A (zh) * 2018-05-21 2018-08-17 广西九星互联网络有限公司 基于投票ip段的网络投票检测方法及装置
CN108846942A (zh) * 2018-06-29 2018-11-20 青岛大学 基于以太坊区块链的电子投票方法和系统
CN108933656A (zh) * 2018-07-18 2018-12-04 京东方科技集团股份有限公司 在线作品投票方法及装置、计算机设备、可读存储介质
CN109274505A (zh) * 2018-11-22 2019-01-25 浙江工商大学 一种基于区块链技术的匿名电子选举方法
CN109523683A (zh) * 2018-12-29 2019-03-26 杭州趣链科技有限公司 一种基于区块链技术的不记名电子投票方法
CN110224993A (zh) * 2019-05-16 2019-09-10 暨南大学 基于区块链的可追责匿名电子投票方法及系统
CN110519268A (zh) * 2019-08-27 2019-11-29 深圳前海微众银行股份有限公司 基于区块链的投票方法、装置、设备、系统及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BASIT SHAHZAD ET AL: ""Trustworthy Electronic Voting Using Adjusted Blockchain Technology"", 《IEEE ACCESS》 *
FRIÐRIK Þ. HJÁLMARSSON ET AL: ""Blockchain-Based E-Voting System"", 《2018 IEEE 11TH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING》 *
鲁航: ""基于区块链的选举系统的设计与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112819627A (zh) * 2021-02-01 2021-05-18 杭州复杂美科技有限公司 区块链投票方法、计算机设备和存储介质
CN115001783A (zh) * 2022-05-27 2022-09-02 平安银行股份有限公司 一种投票方法、系统及存储介质
CN115459998A (zh) * 2022-06-07 2022-12-09 赵万侠 基于区块链的避免异常趋势的投票系统、方法及平台
CN115459998B (zh) * 2022-06-07 2024-01-12 涟源市云马科技电子商务有限公司 基于区块链的避免异常趋势影响的投票系统及方法
CN115240316A (zh) * 2022-07-21 2022-10-25 安世亚太科技股份有限公司 用于知识管理的链式投票方法及装置
CN115240316B (zh) * 2022-07-21 2024-04-30 安世亚太科技股份有限公司 用于知识管理的链式投票方法及装置

Also Published As

Publication number Publication date
CN111416709B (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
EP3688930B1 (en) System and method for issuing verifiable claims
Puthal et al. Everything you wanted to know about the blockchain: Its promise, components, processes, and problems
CN111416709B (zh) 基于区块链系统的投票方法、装置、设备及存储介质
CN111681003B (zh) 资源跨链转移方法、装置、计算机设备以及存储介质
CN111445333B (zh) 区块生成方法、装置、计算机设备以及存储介质
CN111556120B (zh) 基于区块链的数据处理方法、装置、存储介质及设备
CN112104665B (zh) 基于区块链的身份验证方法、装置、计算机以及存储介质
CN111476572B (zh) 基于区块链的数据处理方法、装置、存储介质及设备
CN112632629B (zh) 基于区块链的投票管理方法、装置、介质及电子设备
CN110557403B (zh) 基于区块链的资源分配方法、装置、存储介质及节点设备
CN115769241A (zh) 针对经许可的区块链的隐私保护架构
CN111314172B (zh) 基于区块链的数据处理方法、装置、设备及存储介质
CN111465951A (zh) 使用区块链的智能物流管理
CN113256297B (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
CN111260488A (zh) 一种数据处理方法、装置及可读存储介质
CN110738783A (zh) 投票数据的更新系统、方法、装置、设备及可读存储介质
CN110990790B (zh) 一种数据处理方法及设备
CN111461799A (zh) 数据处理方法、装置、计算机设备及介质
CN111222963A (zh) 基于区块链的招标信息处理方法及装置
CN115296794A (zh) 基于区块链的密钥管理方法及装置
Islam et al. A survey on consensus algorithms in blockchain-based applications: Architecture, taxonomy, and operational issues
US20230232222A1 (en) User terminal, authentication terminal, registration terminal, management system and program
Bilal et al. Blockchain technology: Opportunities & challenges
CN111698198B (zh) 秘密生成和份额分发
CN112308700A (zh) 企业征信数据的处理方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40026139

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant