掌桥专利:专业的专利平台
掌桥专利
首页

基于可信执行环境的投票方法和装置

文献发布时间:2023-06-19 18:46:07


基于可信执行环境的投票方法和装置

技术领域

本发明涉及区块链应用技术领域,尤其涉及一种基于可信执行环境的投票方法和装置。

背景技术

传统投票调查采用线下投票的方式,但是线下投票有着与生俱来的弊端,不能很好的满足日益增长的投票需求。线下投票的不足主要体现为以下几点:其一,需要巨大的人力成本,不仅耗时耗力,而且由于空间受限调查范围不够大;其二,问卷需要大量纸张,浪费资源、不环保;其三,统计结果慢,人工计票效率低下且准确率存在问题;其四,容易出现造假行为,结果可信度不高。线下投票的弊端显而易见,因此具有相应优势的线上投票系统应运而生。线上投票系统只需少量的资源投入,即可摆脱时间和空间的限制,更好地完成调查。同时,线上投票系统不需要人工计票,快速、准确,投票结果能实时显示给投票者。然而,现有的线上投票系统依然存在一些不容忽视的问题,如:系统的管理者有修改数据的权限,可能会为了利益而修改数据;如果线上投票系被给黑客攻击,投票数据就毫无安全性可言。因此,现有线上投票系的公正性和安全性,依然完全依赖网站本身的安全和信誉度,这是制约其发展的主要因素。

为解决上述问题,现有技术提供了一些解决方案,如基于用户的首次注册信息进行投票处理,但该方案应用场景单一,不利于更多场景的扩展。

发明内容

本发明提供一种基于可信执行环境的投票方法和装置,用以解决投票方案应用场景单一,不利于更多场景扩展的问题,通过在可信执行环境中执行关键操作,基于用户的投票注册信息,投票选择以及投票量生成选票,同时将投票注册信息和选票存证在区块链中,基于此,在确保线上投票安全性、公正性的同时,显著扩大了应用场景,提高易用性。

本发明提供一种基于可信执行环境的投票方法,包括:

接收用户的投票注册请求,基于所述投票注册请求生成所述用户的投票注册信息;

根据所述用户的投票注册信息、所述用户的投票选择以及投票量生成选票;

将所述投票注册信息、所述选票存证在区块链中。

在一个实施例中,所述根据所述用户的投票注册信息、所述用户的投票选择以及投票量生成选票之前,还包括:

确定所述投票量。

在一个实施例中,所述确定所述投票量,包括:

确定所述用户的投票项目,以基于所述投票项目确定投票方式;

根据所述投票方式分配所述投票量。

在一个实施例中,所述根据所述用户的投票注册信息、所述用户的投票选择以及投票量生成选票之前,还包括:

根据所述投票量对所述用户的投票注册信息进行标识。

在一个实施例中,所述接收用户的投票注册请求之后,还包括:

基于所述投票注册请求携带的认证信息验证用户权限;

若所述用户权限验证通过,则执行基于所述投票注册请求生成所述用户的投票注册信息的步骤。

在一个实施例中,所述将所述投票注册信息、所述选票存证在区块链中,包括:

采用所述用户的区块链账户的私钥对所述选票进行签名,得到签名信息;

将所述签名信息与所述选票关联得到关联信息,并将所述投票注册信息和所述关联信息存证在所述区块链中。

本发明还提供一种基于可信执行环境的投票装置,包括:

投票注册模块,用于接收用户的投票注册请求,基于所述投票注册请求生成所述用户的投票注册信息;

投票模块,用于根据所述用户的投票注册信息、所述用户的投票选择以及投票量生成选票;

存证模块,用于将所述投票注册信息、所述选票存证在区块链中。

在一个实施例中,所述装置还包括:

可投票量模块,用于确定所述投票量。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于可信执行环境的投票方法。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于可信执行环境的投票方法。

本发明提供的基于可信执行环境的投票方法和装置,通过接收用户的投票注册请求,基于所述投票注册请求生成所述用户的投票注册信息;根据所述用户的投票注册信息、所述用户的投票选择以及投票量生成选票;将所述投票注册信息、所述选票存证在区块链中。本发明通过在可信执行环境中执行关键操作,基于用户的投票注册信息,投票选择以及投票量生成选票,同时将投票注册信息和选票存证在区块链中,基于此,在确保线上投票安全性、公正性的同时,显著扩大了应用场景,提高易用性。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的基于可信执行环境的投票方法的流程示意图;

图2是本发明提供的确定投票量的流程示意图;

图3是本发明提供的基于可信执行环境的投票装置的结构示意图;

图4是本发明提供的电子设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合图1-图4描述本发明的基于可信执行环境的投票方法和装置。

具体地,本发明提供了一种基于可信执行环境的投票方法,参照图1,图1是本发明提供的基于可信执行环境的投票方法的流程示意图。

本发明实施例提供的基于可信执行环境的投票方法,包括:

步骤100,接收用户的投票注册请求,基于投票注册请求生成用户的投票注册信息;

需要说明的是,本发明提供的基于可信执行环境的投票方法应用于可信执行环境(Trusted execution environment,TEE)中,TEE是一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境。TEE是运行在系统处理器上的一个安全区域,TEE可以保证加载到该环境内部的代码和数据的安全性、机密性以及完整性。

在一些实施方式中,区块链各个节点通过P2P(Peer to Peer,对等网络)的方式组网。区块链可以是基于公有链,也可以是基于私有链或者联盟链。区块链的共识协议或规则可以是POS、POW、DPOS、PBFT等。

本发明实施例基于可信执行环境技术构建了投票系统。

在步骤100之前,用户预先向区块链注册,以生成区块链账户,其中,生成的区块链账户对应一对公私钥,公钥发给用户,私钥本地保存,可以将公钥作为区块链账户信息。

用户可以向投票系统发起投票注册请求,投票系统基于投票注册请求生成用户的投票注册信息,具体地,基于投票注册请求在可信执行环境中生成用户的投票注册信息。

可以理解的是,一个账户中,对应的投票注册信息可以有多个,例如用户在该账户下可以发起多次投票注册请求,分别生成投票注册信息。

步骤200,根据用户的投票注册信息,用户的投票选择以及投票量生成选票;

投票系统根据用户的投票注册信息,用户的投票选择以及投票量生成选票,具体地,在可信执行环境中执行操作,根据用户的投票注册信息,用户的投票选择以及投票量,生成选票。

步骤300,将投票注册信息和选票存证在区块链中。

在一些具体实施方式中,在区块链中预先配置与投票注册信息相关的智能合约,以及预先配置与选票相关的智能合约。在生成选票后,通过调用该智能合约,将投票注册信息和选票存证在区块链中。

在一些具体实施方式中,在生成选票之后,利用密文对应的区块链账户的私钥对选票进行签名,将签名信息与选票关联得到关联信息,然后将投票注册信息和关联信息存证到在区块链中。

本领域技术人员可以理解,上述方法中的一些步骤的执行顺序并不是唯一的。比如步骤300中的将投票注册信息存证在区块链的操作可以在步骤200之前执行,在另一些实施方式中,将投票注册信息存证在区块链的操作可以在步骤200之后执行。本领域技术人员基于具体实施场景以及所采用的区块链的特性进行灵活调整。

需要说明的是,本发明提供的基于可信执行环境的投票方法可应用于用户满意度调查、民意调研、投票竞猜、线上娱乐打赏等场景。

满意度调查:应用于消费者对产品满意度线上调查,在区块链上创建消费者账户,以保证消费者的身份真实有效,基于消费者的投票注册信息和投票选项,执行投票操作,基于此,可以避免篡改投票结果或刷票。

民意调查:应用于线上民意调查,线上投票在空间上不受限制,每位有资格的居民都可以对线上议题进行投票,以真实反应民生问题。

投票竞猜:应用于线上竞猜或竞猜类APP,可以实现投票竞猜过程公开、透明,避免投票结果被干扰或修改,以保证投票竞猜结果公平、公正。

线上娱乐打赏:应用于娱乐打赏场景,支持观众对主播类用户的投票打赏,同时基于投票注册信息、权限信息等信息可以避免主播等星级用户为自己刷票从而获得不合理的收益,以保证娱乐平台中数据真实有效。

本发明实施例提出基于可信执行环境的投票方法,通过接收用户的投票注册请求,基于投票注册请求生成用户的投票注册信息;根据用户的投票注册信息、用户的投票选择以及投票量生成选票;将投票注册信息和选票存证在区块链中。本发明实施例在可信执行环境中执行关键操作,基于用户的投票注册信息,投票选择以及投票量生成选票,同时将投票注册信息和选票存证在区块链中,能够有效避免投票调查中可能存在的恶意买卖票行为,从而更好的保证投票结果的公正性,基于此,在确保线上投票安全性、公正性的同时,显著扩大了应用场景,提高易用性。

基于上述实施例,根据用户的投票注册信息、用户的投票选择以及投票量生成选票之前,还包括:确定投票量,参考图2,确定投票量的步骤为:

步骤210,确定用户的投票项目,以基于投票项目确定投票方式;

步骤220,根据投票方式分配投票量。

在一些具体实施方式中,确定用户希望投票的线上投票项目或者应用,然后根据该投票项目或者应用确定投票方式,最后根据确定的投票方式分配可投票量X,其中,1≤X≤N,N为该用户账户对应的总投票注册信息的数量。

本发明实施例在可信执行环境中执行关键操作,基于用户的投票注册信息,投票选择以及投票量生成选票,同时将投票注册信息和选票存证在区块链中,能够有效避免投票调查中可能存在的恶意买卖票行为,从而更好的保证投票结果的公正性,基于此,在确保线上投票安全性、公正性的同时,显著扩大了应用场景,提高易用性。

基于上述实施例,根据用户的投票注册信息、用户的投票选择以及投票量生成选票之前,还包括:根据投票量对用户的投票注册信息进行标识。

在生成选票之前,根据投票量对用户的投票注册信息进行标识,例如,假设投票量为X,可以根据投票量X在可信执行环境TEE中对投票注册信息进行标识,标注的数量等于X。

假设用户账户下存在4个投票注册信息,分别为vote_reg_1,vote_reg_2,vote_reg_3,vote_reg_4。

当可投票量X=2(双选投票),则对四个投票注册信息中的两个进行标识,标识可以按照预设标识策略,例如投票注册信息的生成顺序,如正序、倒序等,这些策略信息存储于可信执行环境TEE中,也可以基于随机数(如在可信执行环境TEE中运行的随机数产生器)进行。

当可投票量X=1(单选投票),则对四个投票注册信息中的一个进行标识,标识可以按照投票注册信息的生成顺序进行,也可以基于随机数(如在可信执行环境TEE中运行的随机数产生器)进行,标识的具体情况和规律不会外泄。

在对投票注册信息进行标识时,可以根据投票量和预设标识策略,或者根据投票量和随机数,都可以对用户的投票注册信息进行标识。

在生成选票时,根据接收到的用户给出的投票选择,并根据投票注册信息、对应的标识信息、可投票量X,生成选票。由此可以实现更广泛、多样化的投票应用场景,并且通过TEE执行上述关键操作,能够防御攻击和恶意篡改。

本发明实施例通过在可信执行环境TEE中基于投票量对用户的投票注册信息进行标识,其他人即便通过非正常渠道获得该用户账户下的投票注册信息,并不知晓标识信息,也不知道标识的规律,从而不能轻易得到投票权,减少违规买卖票行为,确保了安全性和隐私性。

在一些可选的实施方式中,在生成选票之后,可以在可信执行环境中对选票进行统计,并在可信执行环境中生成公私钥对,对选票统计结果进行签名。将选票统计结果和签名以及公钥存储至区块链中,确保了可追溯性与可信性。还可以通过公钥对选票统计结果进行验证,进一步提升可信性。该公私钥对可以是基于用户的注册账户和投票操作重新生成的。

基于上述实施例,接收用户的投票注册请求之后,还包括:基于投票注册请求携带的认证信息验证用户权限;若用户权限验证通过,则执行基于投票注册请求生成用户的投票注册信息的步骤。

需要说明的是,为提高数据访问的安全性,需要设置每个用户的权限,因此在接收到用户的投票注册请求后,需要验证访问用户是否具备用户权限。

获取投票注册请求所携带的认证信息,如认证令牌token,然后将该认证令牌与投票系统中存储的目标认证令牌进行比较,如果比较结果为相同,则说明认证令牌有效,当前的访问用户具备访问权限,然后基于投票注册请求生成用户的投票注册信息。其中,认证令牌是由投票系统生成的临时性令牌,通过一次认证或一段时间之后自动失效。

本发明实施例通过基于投票注册请求携带的认证信息验证用户权限,提高了数据访问的安全性。

图3是本发明提供的基于可信执行环境的投票装置的结构示意图,参照图3,本发明的实施例提供了一种基于可信执行环境的投票装置,包括投票注册模块301,投票模块302和存证模块303。

投票注册模块301,用于接收用户的投票注册请求,基于投票注册请求生成用户的投票注册信息;

投票模块302,用于根据用户的投票注册信息、用户的投票选择以及投票量生成选票;

存证模块303,用于将投票注册信息和选票存证在区块链中。

在一些具体的实施方式中,基于可信执行环境的投票装置还包括可投票量模块,该可投票量模块用于确定投票量,以便投票模块302根据用户的投票注册信息、用户的投票选择以及投票量生成选票。

在一个实施例中,可投票量模块具体用于:

确定用户的投票项目,以基于投票项目确定投票方式;

根据投票方式分配投票量。

在一个实施例中,基于可信执行环境的投票装置还包括标识模块:该标识模块用于根据投票量对用户的投票注册信息进行标识。

在一个实施例中,该标识模块具体用于根据投票量以及投票注册信息的生成顺序,对用户的投票注册信息进行标识;

或者,根据投票量以及随机数,对用户的投票注册信息进行标识。

在一个实施例中,投票注册模块301还用于:

基于投票注册请求携带的认证信息验证用户权限;

若用户权限验证通过,则投票注册模块301执行基于投票注册请求生成用户的投票注册信息的功能。

在一个实施例中,存证模块303具体用于:

采用用户的区块链账户的私钥对选票进行签名,得到签名信息;

将签名信息与选票关联存证在区块链中。

图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(CommunicationsInterface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行上述任意一种方法提供的基于可信执行环境的投票方法,具体参见前述实施例,此处不再赘述。

此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于可信执行环境的投票方法,具体参见前述实施例,此处不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术分类

06120115686132