基于区块链的N次方投票方法及装置制造方法及图纸

技术编号:32909288 阅读:60 留言:0更新日期:2022-04-07 12:00
一种基于区块链的N次方投票方法和装置,它包括:接收部署投票项目智能合约信息请求,第一代码执行器生成所述类投票相适配的工厂智能合约信息;第二代码执行器获得发起方客户端的项目投票请求,利用所述工厂智能合约信息构建所述项目投票对应的项目智能合约信息;投票的触发条件被满足时,启动所述项目智能合约,接收若干投票方客户端的投票请求生成输出所述第三代码信息,完成投票过程,提升投票效率。率。率。

【技术实现步骤摘要】
基于区块链的N次方投票方法及装置


[0001]本专利技术涉及一种区块链技术,尤其涉及一种基于区块链的N次方投票方法及装置。

技术介绍

[0002]区块链2.0作为第二代可编程区块链,它的主要特点是允许用户写出更精密和智能的协议,也就是所谓的智能合约。由于区块链的难以篡改和数据公开等特性,有问题的智能合约无法及时修复造成巨大损失,因此智能合约在部署前的严格的安全审计变得尤为重要。
[0003]目前主流的智能合约安全审计方案是形式验证,通过数学逻辑推导,证明合约实现符合预期。投票智能合约作为常见的合约应用领域,通过形式验证审计其安全性是保证投票业务公正、公平的关键前提。目前智能合约开发社区并没有投票业务相应的安全规范,使得开发投票智能合约容易出现安全漏洞,需要一套通用的投票流程相关的智能合约形式验证方法,为投票智能合约的开发提供开发参考和安全标准。杭州趣链科技有限公司在201911088334.8中公开了一种投票智能合约的形式验证方法,该方法具体包括如下步骤:(1)定义投票智能合约,用于实现按定义的流程和权限向指定候选方进行投票的功能;
[0004]定义包括:候选方和投票人的数据结构、状态变量、检查合约所有者和投票流程的修饰器、投票相关业务的公共函数;候选方的数据结构至少包含主键和得票数这两个字段,投票人的数据结构至少包含主键和是否投票这两个字段;所述的状态变量为记录合约所有者、投票流程、候选方和投票人信息的数组和映射;所述的公共函数包含合约所有者在正确的投票流程管理候选方和投票人信息函数、合约所有者在正确的投票流程管理投票流程函数、具有投票权利的任何人在正确的投票流程对指定的候选方进行投票函数、相关方在正确的投票流程查看投票结果函数、相关方在正确的投票流程查询候选方和投票人信息函数;所述的修饰器包括用于检查是否为合约所有者的合约所有者修饰器和用于检查是否处于正确投票流程的投票流程修饰器,所述的合约所有者修饰器用于修饰合约所有者在正确的投票流程管理候选方和投票人信息函数、合约所有者在正确的投票流程管理投票流程函数这两个函数;所述的投票流程修饰器作用在所有函数上;定义时,按顺序依次定义候选方和投票人的数据结构、状态变量、检查合约所有者和投票流程的修饰器、投票相关业务的公共函数;
[0005](2)定义形式验证规范,用于描述投票智能合约的功能,定义智能合约中每个投票相关函数的异常、返回值和对状态变量的规范。本方法基于软件形式化验证方法进行实现,基于投票业务设计并建立了安全的形式规范,并转化为可形式验证的数学模型,从而提高投票智能合约的安全性。
[0006]上述方案的确提高了投票智能合约的安全性,但是对于投票的效率并没有提升。
[0007]一人一票的机制,赋予了漠不关心的人相同的投票权利,并使得投票结果影响很大的相关方失去进一步影响结果的可能。一块一票的机制,使得富人的平均投票成本和一般人一样,本就造成了不公平。N次方投票原理:
[0008][0009]C为总票数;
[0010]p
i
为第i个人的投票成本;
[0011]n为参与投票的人数;
[0012]N即N次方根;
[0013]如图1所示,其为单个人投票付出的成本曲线图。横轴为付出的成本,纵轴为获得票数;蓝红绿三条线(最上面线、第二条线和最下面的线)分别表示N=1、2、3时的情况,随着N的增加,单个投票者想获取更多票数的成本成幂增长趋势。
[0014]每一次投票事件都需要开发人员完成完整的编写投票的智能合约的源文件,需要消耗较长的事件来完成构建智能合约的合约文件,效率很低。

技术实现思路

[0015]本专利技术的目的在于提供一种效率高的基于区块链的N次方投票方法及装置。
[0016]一种基于区块链的N次方投票方法,包括:
[0017]接收部署投票项目智能合约信息请求,第一代码执行器生成所述类投票相适配的工厂智能合约信息,所述工厂智能合约中包括输入所述工厂智能合约的第一输入参数信息和类投票信息,以及输出的第二代码信息,并且建立所述第一输入参数信息与所述类投票信息的传送映射关系,利用所述类投票信息生成输出第二代码信息的执行代码信息;
[0018]第二代码执行器获得发起方客户端的项目投票请求,利用所述工厂智能合约信息构建所述项目投票对应的项目智能合约信息,所述项目智能合约信息包括第二输入参数信息、项目投票信息和输出第三代码信息,并且建立所述第二输入参数信息与所述项目投票信息的传送映射关系,利用所述项目投票信息生成输出第三代码信息的执行代码信息;
[0019]投票的触发条件被满足时,启动所述项目智能合约,接收若干投票方客户端的投票请求生成输出所述第三代码信息,完成投票过程。
[0020]较佳地,所述类投票信息中所述投票方信息进一步包括设置所述投票方的数据结构体、若投票方需要认证信息,则设置认证的算法和/或生成注册码信息;
[0021]若第二代码执行器从中解析出的所述第一输入参数信息包括所述投票方的认证信息,则生成的项目智能合约中包含生成所述投票方的注册码信息;
[0022]投票过程中,先利用所述注册码信息生成公私钥信息,并将公钥信息分发至对应的所述投票方客户端;
[0023]对通过验证的投票方客户端才允许参加投票。在(具体的)项目合约中实现如下公式的投票算法:
[0024][0025]与现有技术相比,有以下优点:
[0026]首先,将投票项目预先进行归总成若干类,生成类投票对应的工厂智能合约,每一
该类的具体相关投票项目通过工厂智能合约生成对应的项目智能合约,满足投票触发条件后启动投票操作:接收投票方客户端的投票,对符合条件的投票进行统计归总完成投票。相同类型的投票只需要定义一次工厂智能合约,后续只需要调用工厂智能合约生成具体项目的项目智能合约即可,效率高。
[0027]接着,可以根据影响维度数组设置类投票信息,所述影响维度数组包括单维度数组和多维度数组;接收部署投票项目智能合约信息请求中,解析出输入的多维度数据中各个维度信息;第一代码执行器找到每一维度对应的默认信息,生成所述类投票相适配的工厂智能合约信息。该种方式下设置的类投票可以是动态生成,且每一维度都设置对应的默认信息,通过上述方式完成的类投票不仅实现动态性,而且执行效率也非常高。
[0028]随后,投票过程中,先利用所述注册码信息生成公私钥信息,并将公钥信息分发至对应的所述投票方客户端;对通过验证的投票方客户端才允许参加投票。这些设置可以提升防刷单的安全性。
附图说明
[0029]图1为单个人投票付出的成本曲线图;
[0030]图2为基于区块链的N次方投票方法的原理流程图;
[0031]图3为基于区块链的N次方投票方法的一实例图;
[0032]图4为基于区块链的N次方投票方法的一实例流程图。
具体实施方式
[0033]以下结合附图,具体说明本专利技术。
[0034]智能合约文件中不本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链的N次方投票方法,其特征在于,包括:接收部署投票项目智能合约信息请求,第一代码执行器生成类投票相适配的工厂智能合约信息,所述工厂智能合约中包括输入所述工厂智能合约的第一输入参数信息和类投票信息,以及输出的第二代码信息,并且建立所述第一输入参数信息与所述类投票信息的传送映射关系,利用所述类投票信息生成输出第二代码信息的执行代码信息;第二代码执行器获得发起方客户端的项目投票请求,利用所述工厂智能合约信息构建所述项目投票对应的项目智能合约信息,所述项目智能合约信息包括第二输入参数信息、项目投票信息和输出的第三代码信息,并且建立所述第二输入参数信息与所述项目投票信息的传送映射关系,利用所述项目投票信息生成输出第三代码信息的执行代码信息;当投票的触发条件被满足时,启动所述项目智能合约,接收若干投票方客户端的投票请求生成输出所述第三代码信息,完成投票过程。2.如权利要求1所述的方法,其特征在于,所述类投票信息中所述投票方信息进一步包括设置所述投票方的数据结构体、若投票方需要认证信息,则设置认证的算法和/或生成注册码信息;若第二代码执行器从中解析出的所述第一输入参数信息包括所述投票方的认证信息,则生成的项目智能合约中包含生成所述投票方的注册码信息;投票过程中,先利用所述注册码信息生成公私钥信息,并将公钥信息分发至对应的所述投票方客户端;对通过验证的投票方客户端才允许参加投票。3.如权利要求1所述的方法,其特征在于,利用所述工厂智能合约信息构建所述项目投票对应的项目智能合约信息进一步包括:找到对应的类投票信息,对适配的所述工厂智能合约信息进行调用请求,从所述项目投票请求中解析出第一输入参数信息,将所述输入参数输入至所述类投票适配的所述工厂智能合约中,部署成对应的项目智能合约信息。4.如权利要求1所述的方法,其特征在于,设置所述类投票信息进一步设置包括设置模式和默认模式,其中设置模式进一步包括设置所述类投票的属性信息、发起方信息、投票方信息、投...

【专利技术属性】
技术研发人员:王林东何彬
申请(专利权)人:上海简苏网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1