APP下载

基于区块链的学生课程成绩查询系统

2019-09-02陈永强颜廷秦丁雯丽

科技视界 2019年10期
关键词:区块链

陈永强 颜廷秦 丁雯丽

【摘 要】传统成绩管理系统存在数据易窜改的问题。本文根据区块链不可窜改的原理设计并实现课程成绩查询系统。系统基于以太坊技术开发,采用Node.js作为服务器后端运行环境,前端使用React技术构建用户界面。系统实现了学生课程成绩的录入与查询功能,学生可通过浏览器查询区块链中的成绩数据。系统有效解决学生成绩信息的真实性问题,为区块链在教育领域的应用提供了思路。

【关键词】区块链;以太坊;成绩管理

中图分类号: F230-4;G642 文献标识码: A 文章编号: 2095-2457(2019)10-0161-002

DOI:10.19694/j.cnki.issn2095-2457.2019.10.069

A Blockchain-based Query System for Students Course Achievements

CHEN Yong-qiang YAN Ting-qin DING Wen-li

(Suzhou Vocational University, Suzhou Jiangsu 215104, China)

【Abstract】The traditional achievement management system has the problem of easy data modification. According to the principle that blockchain cannot be modified, this paper designs and implements a course score query system. The system is based on the Rinkeby test network. Node.js is used as the backend runtime of the system, and React technology is used to build the web page in the frontend. The system realizes the function of inputting and inquiring students course scores. Students query the score data of blockchain through browser. The system effectively solves the problem of authenticity of student achievement information and provides ideas for the application of blockchain in the field of education.

【Key words】Blockchain; Ethereum; Achievement management system

0 引言

學生的成绩体现学生在课程学习中的努力程度,学习目标的达成程度,是衡量学生学业水平重要指标之一。学生的成绩由教务处统一管理,目前高校普遍采用信息化形式的成绩管理系统,但目前的成绩管理系统存在许多问题。一是开放性不足。成绩管理系统只对学生和教师开放,而大部分学生不愿意主动将成绩告知家长,导致家长不能及时了解学生的学习状态。学生毕业找工作或者出国留学需要学习成绩时必须回本校出具证明,效率低下。二是窜改问题时有发生。由于大部分成绩管理系统采用B/S架构,后端采用中心化数据库存储数据,在维护不当情况下,数据库容易被恶意窜改,导致部分学生的成绩不能体现其真实水平。三是容易受到黑客、病毒攻击。近年来,网络病毒层出不穷,部分病毒会破环系统,导致系统可用性降低。而成绩管理系统往往部署在校内的单台服务器上,如果没有定期备份,存在数据损坏、丢失风险。

区块链作为一种分布式、去中心化、可信任的存储与交易技术近年来受到越来越多的关注。由于区块链的不可窜改性,许多学者利用区块链开发可信的应用系统。文献[1]使用区块链设计了一个投票系统,其采用智能合约自动计票,隐私性强,实现匿名性和合法性。文献[2]设计了保险理赔系统,保护了患者的隐私,同时保险公司可以正常开展理赔业务。文献[3]也探讨了区块链在医学领域的应用,以求实现医疗数据安全的互联互通。在教育领域,区块链也有重要的应用价值,文献[4]讨论了区块链技术在教育领域的应用前景。文献[5]对区块链在成绩管理中的应用做了深度研究,认为中心化的成绩存储方式存在数据风险,其利用区块链和OriginStamp设计了一套高校成绩管理系统,利用OriginStamp将成绩的时间戳保存在区块链中,成绩本身仍然保存在中心化数据库中,散列算法的唯一性保证了成绩的可靠性。但是由于散列算法不可逆,如果中心化数据丢失,数据无法恢复。

本文采用区块链技术,设计并实现一套成绩查询系统,数据保存在区块链中,具有安全可靠不可修改的优点。

1 以太坊与智能合约

区块链技术最初用来进行交易记账,目的是取代中心化的金融交易体系。为了保证金融数据的安全,采用单链表、密码学和分布式技术,形成规模庞大的记账网络。区块链数据同步保存在网络中每一个全功能节点上,节点之间采用共识算法同步数据。最有名的区块链项目是比特币,比特币是一种基于区块链技术的点对点数字货币,自2009年正式运行以来,10年之内一直稳定良好的运行,没有出现因为区块链技术导致的重大安全问题。稳定可信的区块链技术让人们看到了其重要的应用价值。

比特币网络主要用来现金交易,应用场景有限。为此许多基于区块链技术的平台针对实际需求开发了新的功能。其中以以太坊(Ethereum)最为著名[6-7]。根据以太坊的官网介绍,以太坊是用来执行智能合约(smart contract)的去中心化区块链平台,基于以太坊开发的应用称为去中心化应用(decentralized application),去中心化应用具有极少的停机时间、无第三方干预、可信任等特点。以太坊最显著的特征是可编程性,开发者可以编写智能合约部署到以太坊网络上。智能合约是数字化的智能合同,合约约定数据的构成以及事件的执行过程,智能合约代码部署后不可修改,合约的执行有详细记录,可追溯。智能合约在以太坊虚拟机Ethereum Virtual Machine (EVM)中运行。

2 系統架构

基于区块链的学生课程成绩查询系统架构如图1所示。和传统的web架构相似,系统分为前端和后端。此架构中没有采用中心化的数据库系统如MySQL等,而是采用区块链保存数据。对于用户,分为查询端和管理端。查询端是供学生和家长进行成绩查询的界面,可以运行在网页、手机上。因为应用需要以太坊客户端才能接入以太坊分布式网络,为了简化查询端的复杂性,设计了RESTful风格的查询API,因此查询成绩功能也可以集成在外部应用系统之中。管理端直接和以太坊客户端通信,数据直接保存在区块链中,没有第三方风险。

3 智能合约结构

本文使用solidity语言设计了运行在以太坊上的成绩查询智能合约。合约的主要结构如表1所示。使用结构体定义一个学生课程成绩的完整数据,定义一个哈希表存储所有学生的数据,采用哈希表主要是为了提高查询速度。智能合约编译后部署到以太坊网络上,这里使用Rinkeby测试网络,如果使用主网络则需要购买ETH。

4 系统运行界面

使用express和React开发了系统的后端和前端,查询成绩的界面如图2所示。输入学生的学号和姓名,网页会发送请求到RESTful API服务器,服务器收到请求,通过web3.js转发请求到智能合约,智能合约根据请求,返回对应数据到API服务器。API服务器再把结果编码为JSON格式返回给客户端网页,最后通过React组件显示在屏幕上。

5 总结

本文使用智能合约和web技术开发了一套学生课程成绩查询系统。系统经过测试,可以增加和查询学生的课程成绩,满足基本需求。由于采用了区块链技术,学生成绩保存在去中心化的以太坊网络中,安全可靠,同时区块链的不可窜改性也使成绩的真实性得到保障。

【参考文献】

[1]颜春辉,游林.基于区块链的安全投票系统设计与实现[J].通信技术,2018,51(8):1979-1989.

[2]徐文玉,吴磊,阎允雪.基于区块链和同态加密的电子健康记录隐私保护方案[J].计算机研究与发展,2018,55(10):2233-2243.

[3]肖丽,付亚,雷晓军,等.基于区块链的中医云健康系统[J].成都中医药大学学报,2018,41(3):108-111.

[4]许涛.区块链技术在教育教学中的应用与挑战[J].现代教育技术,2017,27(1):108-114.

[5]孙韵秋,王启春.基于区块链技术的高校成绩管理系统[J].密码学报,2018,5(5):568-578.

[6]贺海武,延安,陈泽华.基于区块链的智能合约技术与应用综述[J].计算机研究与发展,2018,55(11):2452-2466.

[7]王千阁,何蒲,聂铁铮,等.区块链系统的数据存储与查询技术综述[J].计算机科学,2018,45(12):12-18.

猜你喜欢

区块链
基于区块链技术的海上散装液体化学品运输安全监管方法
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
用“区块链”助推中企走出去