基于区块链的评分方法及装置
技术领域
本发明涉及区块链技术,尤其涉及基于区块链的评分方法及装置。
背景技术
区块链技术又被称为分布式账本技术,其具有去中心化、信息不可篡改、多节点部署、公开性、隐私保护等特点,因此非常适合现代信息化的管理领域。
目前,考试试卷的考生信息录入以及阅卷系统存在很多亟待解决的问题,例如,试卷上的考生信息易填错、易造成泄露、易被篡改等问题。阅卷评分老师在阅卷的过程中,获得考生信息后,存在由于主观因素而导致评分不合理的问题。
发明内容
针对上述问题,本发明提出一种基于区块链的评分方法,包括:获取考生信息和考试科目合约的地址信息;对所述考生信息进行加密并对经加密的考生信息进行哈希运算以获得相应的哈希值;根据所述考试科目合约的地址信息,将所述哈希值存储在所述考试科目合约中;获取所述考试科目的初步评定分数并将所述初步评定分数存储在成绩收集合约中以形成与每个考试科目相对应的初步评定分数列表;基于最终评分合约对所述初步评定分数列表中的每个考试科目所对应的分数进行最终评定以获得每个考试科目的最终分数;将所述每个考试科目的最终分数存储在相应的考试科目合约中以使所述最终分数与所述哈希值相关联。
在一种实施方式中,获取考生信息和考试科目合约的地址信息包括:通过信息采集设备从考生的证件处读取考生信息并且从考试科目的试卷标识信息中读取考试科目合约的地址信息,其中,所述试卷标识信息与所述考试科目合约的地址信息唯一对应。
在一种实施方式中,对所述考生信息进行加密包括:采用对称加密方式或非对称加密方式对所述考生信息进行加密。
在一种实施方式中,将所述初步评定分数存储在成绩收集合约中以形成与每个考试科目相对应的初步评定分数列表包括:判断所述成绩收集合约是否处于开启状态;如果所述成绩收集合约处于开启状态,则将所述初步评定分数存储在所述成绩收集合约中以形成与每个考试科目相对应的初步评定分数列表。
在一种实施方式中,基于最终评分合约对所述初步评定分数列表中的每个考试科目的分数进行最终评定包括:将所述成绩收集合约的状态变更为关闭状态;通过最终评分合约中的k-means算法、混合高斯结合EM算法、基于神经网络的感知机算法中的至少一个算法对所述初步评定分数列表中的每个考试科目的分数进行最终评定。
在一种实施方式中,还包括:根据所述哈希值查询相应的考生的每个考试科目的最终分数。
本发明另一方面提供了一种基于区块链的装置,包括:存储器,其用于存储指令;以及处理器,其耦合到所述存储器,所述指令在由所述处理器执行时使得所述装置执行上述任一项中的方法。
本发明另一方面提供了一种计算机可读存储介质,所述存储介质包括指令,所述指令被执行时,使得所述计算机的处理器执行上述任一项中的方法。
本发明通过将试卷信息和考生信息绑定上链,使得信息不易填错并且不可被篡改,同时通过在区块链上对考生信息进行加密保护了考生隐私,再者阅卷老师初步评定的分数存储在成绩收集合约中之后便不可再被篡改,通过最终评分合约中的机器学习算法自动对初步评定的分数进行最终评定以获得最终分数,从而使得考试过程更加安全、透明、合理;
附图说明
图1是根据本发明的实施例的基于区块链的评分方法的流程图100;
图2是根据本发明的一个实施例的考试科目与考生信息绑定的方法的流程图200;
图3是根据本发明的一个实施例的成绩收集合约存储初步评定分数的方法的流程图300;
图4是基于区块链的装置400的示意图;
具体实施方式
以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
本文所使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”,表示还可以包括其他内容。术语“基于”是“至少部分地基于"。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”,等等。
对于相关领域普通技术人员已知的技术、方法和装置可能不作详细讨论,但在适当情况下,所述技术、方法和装置应当被视为说明书的一部分。对于附图中的各单元之间的连线,仅仅是为了便于说明,其表示至少连线两端的单元是相互通信的,并非旨在限制未连线的单元之间无法通信。
术语解释:
考试科目合约:用于存储与考生信息相对应的哈希值和考生的考试科目的最终分数,使得最终分数与哈希值相关联,从而考生信息与考试科目相关联的智能合约,其中,一个考试科目合约存储一份试卷对应的考生的该考试科目的最终分数,在本文中,可以有多个考试科目合约。
成绩收集合约:用于收集阅卷老师对考试科目的试卷给出的初步评定分数的智能合约,其中,当一份试卷由多名阅卷老师参与阅卷时,该份试卷可以对应于多个初步评定分数,即每一名阅卷老师会给出一个分数。
最终评分合约:用于对成绩收集合约中收集的初步评定分数进行最终评定的智能合约,其中,最终评分合约中包括至少一种机器学习算法以用于进行评分,并且经过最终评定后每一份纸卷对应一个最终分数。
以下结合附图对本发明进行详细描述。
图1是根据本发明的实施例的基于区块链的评分方法的流程图100。
步骤S101:获取考生信息和考试科目合约的地址信息。一个实施例中,通过信息采集设备从考生证件处读取考生姓名、身份证号和/或准考证号等考生信息,并且从考试科目的试卷标识信息中读取考试科目合约的地址信息,其中,试卷标识信息对每一份试卷起到唯一标识作用,例如,试卷标识信息可以为印制在试卷上的二维码,该二维码与考试科目合约的地址信息唯一对应。应理解的是,本文中的信息采集设备可以是扫描仪、读卡器等任何能够采集考生信息的合适的设备。
步骤S102:对考生信息进行加密并对经加密的考生信息进行哈希运算以获得相应的哈希值。在一个实施例中,可以采用对称加密方式或非对称加密方式对考生信息进行加密。在一个实施例中,可以采用SHA512算法对经加密的考生信息进行哈希运算以获得相应的哈希值。应理解的是,本文中也可以使用其它合适的哈希算法进行哈希运算。
步骤S103:根据考试科目合约的地址信息,将哈希值存储在考试科目合约中。在一个实施例中,根据考试科目合约的地址信息在区块链上查找到相应的考试科目合约,然后将步骤S102中得到的哈希值存储在该考试科目合约中。
步骤S104:获取考试科目的初步评定分数并将初步评定分数存储在成绩收集合约中以形成与每个考试科目相对应的初步评定分数列表。其中,每一名考生参与的考试科目以及与这些考试科目相对应的分数会按照特定的顺序呈现在初步评定分数列表中。
步骤S105:基于最终评分合约对初步评定分数列表中的每个考试科目所对应的分数进行最终评定以获得每个考试科目的最终分数。一个实施例中,步骤S105可以通过以下方式来实现:首先,将成绩收集合约的状态变更为关闭状态;其次,通过最终评分合约中的机器学习算法对初步评定分数列表中的每个考试科目的分数进行最终评定以获得每个考试科目的最终分数,例如,机器学习算法为k-means算法、混合高斯结合EM算法或者基于神经网络的感知机算法等中的至少一种算法。
步骤S106:将每个考试科目的最终分数存储在相应的考试科目合约中以使最终分数与所述哈希值相关联。
在一个实施例中,基于区块链的评分方法还包括:根据与考生信息相对应的哈希值查询相应的考生的每个考试科目的最终分数。
图2是根据本发明的一个实施例的考试科目与考生信息绑定的方法的流程图200。应理解的是,图2是对图1中的步骤S101至步骤S103的进一步细化。
步骤S201:通过信息采集设备采集考生信息和考试科目合约的地址信息。
步骤S202:对考生信息进行加密。
步骤S203:将经加密的考生信息存储到分布式存储系统(例如,分布式文件系统(HDFS)或者星际文件系统(IPFS)等)并通过哈希算法(例如,SHA512算法等)对经加密的考生信息进行哈希运算以生成相应的哈希值。
步骤S204:通过创建考试科目合约的外部账户发起更改考试科目合约内容的交易。
步骤S205:如果发起更改考试科目合约内容的交易的外部账户地址与创建考试科目合约的外部账户地址不一致,则执行步骤S206,否则执行步骤S207。
步骤S206:不执行更改考试科目合约内容的交易。
步骤S207:如果考试科目合约中存储有与该考生信息相对应的哈希值,则执行步骤S208,否则执行步骤S209。
步骤S208:提示考试科目已与考生信息绑定。
步骤S209:根据考试科目合约的地址信息,将与考生信息相对应的哈希值保存到该考试科目合约中。
图3是根据本发明的一个实施例的成绩收集合约收集初步评定分数的流程图300。应理解的是,图3是对步骤S104的进一步细化。
步骤S301:获取考试科目的初步评定分数。
步骤S302:如果成绩收集合约处于开启状态,则执行步骤S303,否则执行步骤S304。
步骤S303:将初步评定分数存储在成绩收集合约中并形成与每个考试科目相对应的初步评定分数列表。
步骤S304:不对初步评定分数进行处理。
本发明通过将试卷信息和考生信息绑定上链,使得信息不易填错并且不可被篡改,同时通过在区块链上对考生信息进行加密保护了考生隐私,再者阅卷老师初步评定的分数存储在成绩收集合约中之后便不可再被篡改,通过最终评分合约中的机器学习算法自动对初步评定的分数进行最终评定以获得最终分数,从而使得考试过程更加安全、透明、合理。
图4示出了根据本发明的实施例的基于区块链的装置400的示意图。
装置400可以包括:存储器401和耦合到存储器401的处理器402。存储器401用于存储指令,处理器402被配置为基于存储器401存储的指令来实现针对图1至图3所描述的方法的步骤中的任何步骤中的一个或多个。
如图4所示,装置400还可以包括通信接口403,用于与其它设备进行信息交互。此外,装置400还可以包括总线404,存储器401、处理器402和通信接口403通过总线404来彼此进行通信。
存储器401可以包括易失性存储器,也可以包括非易失性存储器。处理器402可以是中央处理器(CPU)、微控制器、专用集成电路(ASIC)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、或是被配置为实现本发明的实施例的一个或多个集成电路。
替代地,上述基于区块链的评分方法能够通过计算机程序产品,即有形的计算机可读存储介质来体现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
需要注意的是,以上列举的仅为本发明的具体实施例,显然本发明不限于以上实施例,随之有着许多的类似变化。本领域的技术人员如果从本发明公开的内容直接导出或联想到的所有变形,均应属于本发明的保护范围。