一种应用智能合约的投票数据上链方法及其设备与流程

文档序号:18702664发布日期:2019-09-17 23:09阅读:199来源:国知局
一种应用智能合约的投票数据上链方法及其设备与流程

本申请涉及区块链技术领域,尤其涉及一种应用智能合约的投票数据上链方法及其设备。



背景技术:

目前,区块链技术是基于去中心化的对等网络,用开源软件把密码学原理、时序数据和共识机制相结合,来保障分布式数据库中各节点的连贯和持续,使信息能即时验证、可追溯,但难以篡改和无法屏蔽,从而创造了一套隐私、高效、安全的共享价值体系。

现有的投票平台都是采用中心化的数据库,保存了商品的投票次数,投票时间,用户的投票使用的手机等内容;然而,投票平台的数据库,存在着数据被篡改、数据的真实性得不到保证,且投票的运营平台修改某商品的投票次数,删除用户差评等情况等问题。尤其对一些规模不大的投票平台,商品的数据安全性和真实性都得不到保证。

因此,如何基于区块链的不可篡改,可信的方式,将投票平台的数据存储在区块链上,成为亟待解决的问题。

上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

为了解决上述问题,本申请提供一种应用智能合约的投票数据上链方法及其设备,能够让投票的数据上链,使得链上的投票数据可信,公开透明。

本申请第一方面提供一种应用智能合约的投票数据上链方法,所述方法包括:

区块链节点接收第一客户端发送的投票数据上链请求,所述投票数据上链请求包括所述第一客户端公钥加密的投票数据;

触发校验智能合约,所述校验智能合约对所述第一客户端的身份进行校验,校验通过后,执行所述投票数据的上链流程;

所述区块链节点接收第二客户端的所述投票数据的查询请求;

触发校验智能合约,所述校验智能合约对所述第二客户端的身份进行校验;

校验通过后,所述区块链节点发送所述投票数据查询请求给所述第一客户端,所述投票数据查询请求中包括第二客户端公钥,以使所述第一客户端用所述第二客户端公钥对所述投票数据加密;

所述区块链节点接收所述第一客户端发送的投票数据查询响应,所述投票数据查询响应包括第二客户端公钥加密的投票数据;

触发校验智能合约,所述校验智能合约对所述第一客户端的身份进行校验,校验通过后,将所述第二客户端公钥加密的所述投票数据执行上链流程。

在一种可能的实现方式中,所述方法还包括:所述区块链节点接收所述第二客户端发送投票数据查询请求;

所述区块链节点发送投票数据查询响应给所述第二客户端,所述投票数据查询响应包括第二客户端公钥加密的投票数据,以便于所述第二客户端用自身私钥对所述第二客户端公钥加密的投票数据进行解密。

在一种可能的实现方式中,所述投票数据为所述第一客户端对应的用户在投票平台的操作数据,包括投票次数、投票时间以及投票类型。

在一种可能的实现方式中,所述第一客户端用自身公钥对所述投票数据加密,具体为:所述第一客户端用自身公钥对所述投票数据进行预设比例的加密。

在一种可能的实现方式中,所述投票数据包括关联属性和非关联属性;其中,所述投票数据关联属性的属性值自动叠加。

本申请第二方面提供一种应用智能合约的投票数据上链设备,所述设备为区块链节点,所述设备包括接收单元、处理单元以及发送单元;其中,

所述接收单元,接收第一客户端发送的投票数据上链请求,所述投票数据上链请求包括所述第一客户端公钥加密的投票数据;

所述处理单元,触发校验智能合约,所述校验智能合约对所述第一客户端的身份进行校验,校验通过后,执行所述投票数据的上链流程;

所述接收单元,接收第二客户端的所述投票数据的查询请求;

所述处理单元,触发校验智能合约,所述校验智能合约对所述第二客户端的身份进行校验;

校验通过后,所述发送单元,发送所述投票数据查询请求给所述第一客户端,所述投票数据查询请求中包括第二客户端公钥,以使所述第一客户端用所述第二客户端公钥对所述投票数据加密;

所述接收单元,接收所述第一客户端发送的投票数据查询响应,所述投票数据查询响应包括第二客户端公钥加密的投票数据;

所述处理单元,触发校验智能合约,所述校验智能合约对所述第一客户端的身份进行校验,校验通过后,将所述第二客户端公钥加密的所述投票数据执行上链流程。

在一种可能的实现方式中,所述接收单元,接收所述第二客户端发送投票数据查询请求;所述发送单元,发送投票数据查询响应给所述第二客户端,所述投票数据查询响应包括第二客户端公钥加密的投票数据,以便于所述第二客户端用自身私钥对所述第二客户端公钥加密的投票数据进行解密。

在一种可能的实现方式中,所述投票数据为所述第一客户端对应的用户在投票平台的操作数据,包括投票次数、投票时间以及投票类型。

在一种可能的实现方式中,所述第一客户端用自身公钥对所述投票数据加密,具体为:所述第一客户端用自身公钥对所述投票数据进行预设比例的加密。

在一种可能的实现方式中,所述投票数据包括关联属性和非关联属性;其中,所述投票数据关联属性的属性值自动叠加。

本申请能够让投票的数据上链,使得链上的投票数据可信,公开透明。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1为本申请实施例提供的一种应用智能合约的投票数据上链方法流程示意图;

图2为本申请实施例提供的又一种应用智能合约的投票数据上链方法流程示意图;

图3为本申请实施例提供的一种应用智能合约的投票数据上链设备结构示意图。

具体实施方式

为了更清楚的阐释本申请的整体构思,下面结合说明书附图以示例的方式进行详细说明。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的顺序在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请实施例中所称的区块链节点和客户端,可以理解为响应外界特定触发条件,并按一定规则做状态转换的抽象机器,可以是手机、平板电脑、掌上电脑、个人pc电脑等可以按照应用软件且能够联网的设备。

如图1所示,一种应用智能合约的投票数据上链方法,所述方法包括步骤s101-s107。

s101,区块链节点接收第一客户端发送的投票数据上链请求,所述投票数据上链请求包括所述第一客户端公钥加密的投票数据。

s102,触发校验智能合约,所述校验智能合约对所述第一客户端的身份进行校验,校验通过后,执行所述投票数据的上链流程。

s103,所述区块链节点接收第二客户端的所述投票数据的查询请求。

s104,触发校验智能合约,所述校验智能合约对所述第二客户端的身份进行校验。

s105,校验通过后,所述区块链节点发送所述投票数据查询请求给所述第一客户端,所述投票数据查询请求中包括第二客户端公钥,以使所述第一客户端用所述第二客户端公钥对所述投票数据加密。

s106,所述区块链节点接收所述第一客户端发送的投票数据查询响应,所述投票数据查询响应包括第二客户端公钥加密的投票数据。

s107,触发校验智能合约,所述校验智能合约对所述第一客户端的身份进行校验,校验通过后,将所述第二客户端公钥加密的所述投票数据执行上链流程。

在一个示例中,所述方法还包括:所述区块链节点接收所述第二客户端发送投票数据查询请求;所述区块链节点发送投票数据查询响应给所述第二客户端,所述投票数据查询响应包括第二客户端公钥加密的投票数据,以便于所述第二客户端用自身私钥对所述第二客户端公钥加密的投票数据进行解密。

在一个示例中,所述投票数据为所述第一客户端对应的用户在投票平台的操作数据,包括投票次数、投票时间以及投票类型。

在一个示例中,所述第一客户端用自身公钥对所述投票数据加密,具体为:所述第一客户端用自身公钥对所述投票数据进行预设比例的加密。

在一个示例中,所述投票数据包括关联属性和非关联属性;其中,所述投票数据关联属性的属性值自动叠加。

上述示例中,第一客户端作为投票数据的操作者,第二客户端作为投票数据的查询者;对某个具体投票平台而言,每位用户既可以是投票数据的操作者,也可以是投票数据的查询者。

下面以图2为例,对上述的投票数据上链方法进行说明,该方法包括步骤s201-s214。

s201,第一客户端用公钥对自身产生的投票数据进行加密,该投票操作数据包括用户在投票平台上的投票次数、投票时间、用户的ip地址以及用户的账号密码等用户操作行为产生的数据。

第一客户端用自身公钥对自身产生的投票数据进行加密,该加密可以是将投票数据全部字段进行加密,也可以是对该投票数据的部分字段进行加密,如:仅仅对隐私的评论内容进行加密;也可以是用户不对该投票数据进行加密。

此外,该投票数据包括分为两种属性,关联属性和非关联属性。例如:用户投票时间,属于非关联属性,每位用户的投票时间都可以存储在区块链上;例如:用户投票的数量,就是关联属性,一件商品的数据格式中包括投票数量,只要有用户对该商品进行投票,该商品的投票数量会自动叠加。

投票类型包括商品投票,个人喜好投票,衣服服饰投票等等;例如:个人对季节的喜好投票,对衣服的搭配喜好投票,对衣服的款式喜好投票,对头发的造型喜好投票等等。

s202,第一客户端发送投票数据上链请求给区块链节点。

s203,触发区块链上的校验智能合约,该校验智能合约对第一客户端的身份进行校验,执行该投票数据的上链流程。

该校验是指判断该第一客户端是否为该投票平台的用户,只有该投票平台的用户才能有权限将该投票数据进行上链。

需要说明的是,上链过程是本领域的常规过程,不进行详细说明。例如:在工作量证明pow共识方式下,将数据进行打包,验证,抢到记账权的区块链节点可以将该打包区块放在当前区块的下一个区块,作为新的区块上链。

s204,区块链节点发送投票数据上链响应给第一客户端。

s205,第二客户端发送投票数据查询请求给区块链节点,所述投票数据查询请求包括第二客户端公钥。

此时,第二客户端对应的用户可以是在看到该投票数据后,对该投票数据进行查询。本申请中第一客户端以及第二客户端都是安装有去中心化应用软件的终端设备,都可以直接与区块链上的区块链节点进行信息交互。

s206,触发区块链上的校验智能合约,该校验智能合约对第二客户端的身份进行校验。

校验通过后,执行下一步流程;校验不通过,流程终止。

s207,校验通过后,该区块链节点发送投票数据查询请求给第一客户端,该投票数据查询请求包括第二客户端公钥。

s208,第一客户端用该第二客户端公钥对该投票数据进行加密。

s209,第一客户端发送投票数据查询响应给该区块链节点,该投票数据查询响应包括第二客户端公钥加密的投票数据。

s210,触发在区块链上的校验智能合约,该校验智能合约对该第一客户端的身份进行校验,并将该第二客户端公钥加密的投票数据执行上链流程。

s211,该区块链节点发送投票数据查询响应给第二客户端。

s212,第二客户端发送投票数据查询请求给区块链节点。

s213,该区块链节点发送该投票数据查询响应给该第二客户端,该投票数据查询响应包括第二客户端公钥加密的投票数据。

s214,第二客户端用自身私钥对该第二客户端公钥加密的投票数据进行解密,得到该投票数据。

本申请能够让投票的数据上链,该上链流程公开透明,同一投票平台的任何用户都可以查看该投票数据;保证了投票数据的真实性。并且,用户可以根据自己的喜好,对投票数据进行加密或者不加密,提高了用户体验。

如图3所示,一种应用智能合约的投票数据上链设备,所述设备为区块链节点,所述设备包括接收单元、处理单元以及发送单元。

所述接收单元,接收第一客户端发送的投票数据上链请求,所述投票数据上链请求包括所述第一客户端公钥加密的投票数据;

所述处理单元,触发校验智能合约,所述校验智能合约对所述第一客户端的身份进行校验,校验通过后,执行所述投票数据的上链流程;

所述接收单元,接收第二客户端的所述投票数据的查询请求;

所述处理单元,触发校验智能合约,所述校验智能合约对所述第二客户端的身份进行校验;

校验通过后,所述发送单元,发送所述投票数据查询请求给所述第一客户端,所述投票数据查询请求中包括第二客户端公钥,以使所述第一客户端用所述第二客户端公钥对所述投票数据加密;

所述接收单元,接收所述第一客户端发送的投票数据查询响应,所述投票数据查询响应包括第二客户端公钥加密的投票数据;

所述处理单元,触发校验智能合约,所述校验智能合约对所述第一客户端的身份进行校验,校验通过后,将所述第二客户端公钥加密的所述投票数据执行上链流程。

在一个示例中,所述接收单元,接收所述第二客户端发送投票数据查询请求;所述发送单元,发送投票数据查询响应给所述第二客户端,所述投票数据查询响应包括第二客户端公钥加密的投票数据,以便于所述第二客户端用自身私钥对所述第二客户端公钥加密的投票数据进行解密。

在一个示例中,所述投票数据为所述第一客户端对应的用户在投票平台的操作数据,包括投票次数、投票时间以及投票类型。

在一个示例中,所述第一客户端用自身公钥对所述投票数据加密,具体为:所述第一客户端用自身公钥对所述投票数据进行预设比例的加密。

在一个示例中,所述投票数据包括关联属性和非关联属性;其中,所述投票数据关联属性的属性值自动叠加。

本申请能够让投票的数据上链,该上链流程公开透明,同一投票平台的任何用户都可以查看该投票数据;保证了投票数据的真实性。并且,用户可以根据自己的喜好,对投票数据进行加密或者不加密,提高了用户体验。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1