您好, 访客   登录/注册

贫困生精准资助去中心化应用系统设计与实现

来源:用户上传      作者:

  摘 要:在区块链原理与应用课程教学中,以太坊与智能合约相关内容缺乏综合性实践案例。因此结合高校贫困生精准资助的背景,构建一个比传统软件架构模式更具优势的去中心化应用系统,为高校贫困生精准资助工作提供更理想的技术解决方案,加深学生对以太坊和智能合约理论的认识。首先,针对传统中心化应用系统的不足,基于以太坊平台的优点,分析系统核心业务需求;其次,利用以太坊平台设计资助系统总体方案,并阐述系统核心模块;然后搭建以太坊应用环境,实现需求模块的功能,使学生通过网页客户端登录学生资助系统。测试结果表明,该精准资助系统的核心业务指标:贫困生识别精准度、系统录入数据真实度、资助资金使用透明度、帮扶成效衡量满意度等均达到95%以上。
  关键词:区块链技术;精准资助;以太坊;智能合约
  DOI:10. 11907/rjdk. 192675
  中图分类号:TP319   文献标识码:A                 文章编号:1672-7800(2020)003-0154-05
  Design and Implementation of Decentralized Application System
  for Students from Poor Families
  ——Teaching case of Blockchain Principles and Applications Course
  ZHANG Xin-chao
  (College of Information Engineering, Zhengzhou University of Science & Technology, Zhengzhou 450064, China)
  Abstract:In order to solve the problem of the lack of comprehensive practical cases when teaching the content of Ethereum and smart contracts in the course of Blockchain Principles and Applications, combined with the precise funding background of poor students in colleges and universities, this article proposes an application system with decentralized center which has more advantages than the traditional software architecture model 。 First, the core business requirements of the system based on the deficiencies of the traditional centralized application system and the advantages of the Ethereum platform are analysed. Second, the Ethereum platform is used to design the overall scheme of the funding system and describe the core modules in the system in detail. Then, the application environment of Ethereuma is built and the function of the requirements module is realsied so that the students in the class are logged in to the student funding system through the web client. The test results show that the core business indicators of the precision funding system including the accuracy of identifying poor students, the authenticity of the data entered in the system, the transparency of the use of funding funds, and the satisfaction measurement of aid effectiveness have reached more than 95%.
  Key Words:blockchain technology;precision funding;ethereum;smart contract
  0 引言
  隨着全球高等教育范围的不断扩大及成本的大幅度提高,日益显著的高校贫困生问题成为制约各国高等教育公平和可持续发展的巨大障碍。我国教育部门不断修正管理体系,完善高校对贫困生的认定与管理工作[1]。
  2004年中国科学技术大学曾使用“隐形资助”方式监测每个学生一卡通食堂消费情况,若当月消费低于200元,会隐形资助200元予以资助;2017年成都电子科技大学通过大数据技术建立了贫困新生“画像”信息,利用寻道科技为其研发“智慧助困系统”。该系统相较于传统访谈及问卷调查法,虽然采用大数据多维度、分等级策略实现了资助对象精准化和资金发放精准化,但并未实现资助金全程跟踪调查、及时精准脱贫和数据信息共享,如何确保贫困生资助资金运用合理、管理妥善、监管持续、精准匹配是目前各高校在资助工作中面临的主要难题[2-4]。   区块链技术因具有不可更改、交易溯源及多方共识等特性,可为精准扶贫提供强大的技术支撑,实现扶贫资金安全保真、精准匹配、透明使用、高效管理及精准监管,为使用区块链技术解决精准资助问题提供了新思路[5-6]。由于目前高校扶贫的研究大多局限于理论层面,实际技术应用较少,因此本文重点设计与实现基于区块链技术的高校贫困生精准扶贫系统。
  1 系统需求分析
  因贫困学生识别精准度不高、资助过程数据真实性不足、资助资金使用不透明、帮扶成效难衡量等问题不断出现,高校贫困生精准资助工作与诚信机制之间的矛盾不断加剧。根据党和国家的扶贫政策,要求脱贫帮扶工作精准可信,真正落到实处。这对传统集中化B/S数据处理软件平台提出了严峻挑战。基于区块链技术的高效贫困生精准资助系统设计,是将区块链共识机制、不可篡改、可追溯性、分布式账本和去集中化与贫困生资助工作管理过程进行有机结合[7-8]。高校贫困生精准资助工作系统核心需求业务如图1所示。
  根据系统业务示例图可知,系统核心业务主要有:贫困生信息管理、资助资金管理、资助工作管理、账户管理和系统管理五大部分组成。贫困生信息管理业务主要用于对贫困生信息进行存档,同时资助工作人员会为每位贫困生分配帮扶教师,通过帮扶教师的帮助,让每位贫困生找到适合自己的勤工俭学方法,同时从内心正确认识家庭贫困,从而转化为奋发求学、经过自身努力使家庭经济状况逐渐好转的动力;资助资金管理业务主要利用一系列透明化操作,使资助学生的资金有据可查、公正公开,避免各种不合理事情的发生[9-11];资助工作管理业务主要记录帮扶教师帮助贫困学生的过程、措施和事件,为实现贫困生精准脱贫提供保障;账户管理业务主要针对系统管理员、贫困学生及帮扶教师不同角色分配不同账号和系统模块权限;系统管理业务主要用来管理贫困生精准资助系统,在区块链环境下该项业务重点是满足系统暂停、维护等需求[12-14]。
  2 系统设计方案
  2.1 总体设计思路
  本文利用区块链技术,搭建一个高校贫困生资助系统作为精准扶贫环境下的应用实例。在贫困学生资助系统中,可实现贫困生信息真实有效且永久保存,资助资金使用合理且完全透明,贫困生资助过程留存記录且不断完善,系统账户管理严谨且准确高效。但是,在贫困学生识别、资助过程数据、资金正确使用、学生心理脱贫等方面高校贫困生资助工作面临巨大挑战,传统资助系统难以实现。区块链具备历史记录不可更改、共识算法保持高度一致的分布节点、透明可信的智能合约等特征,为实现贫困生资助高精准、高可信提供了更理想的解决方案[15-17]。区块链以对等的方式把参与方连接起来,由参与方共同维护一个系统,通过共识机制和智能合约表达协作规则,实现更为弹性的协作方式。高校贫困生资助系统总体架构如图2所示。
  2.1.1 以太坊应用环境构建
  以太坊是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币提供去中心化的以太虚拟机处理点对点合约。以太坊是区块链技术与智能合约的结合。根据图2可知,以太坊应用环境主要由底层服务与以太坊核心层两部分组成。底层服务中P2P网络每一个节点彼此平等,所有节点共同提供服务,网络节点可生成或复合新的数据信息。然而以太坊中的区块和交易数据最终被存储在LevenDB数据库中。数据和区块安全性主要由密码学算法保障。分片优化可实现并行检验交易,从而提高区块生成速度。这些底层服务主要用来保证以太坊系统稳定运行[18-19]。以太坊核心层包含区块链、共识算法、远程过程调用、以太坊虚拟机和智能合约等核心元件,其中以区块链技术为主体,同时结合以太坊特有的共识算法,以运行智能合约的以太坊虚拟机为载体。
  以太坊是一个基于分布式网络的去集中化区块链应用平台,是区块链的一种技术实现。它有自己特定的加密货币,同时还增强了脚本功能,可实现图灵完备的智能合约,更便捷地实现除虚拟货币外的其它应用,使以太坊具备较高的商用价值。以太坊的目的是基于脚、竞争币和链上元协议概念进行整合和提高,使开发人员可创建任意基于共识、可扩展的、标准的、协同的应用。其核心技术包括以太坊账户、智能合约和消息与交易。
  以太坊账户类似于银行账户,是网络识别不同参与者的标识。一个账户只有一个所有者,但是一个参与者可使用多个账户。账户以地址为索引,每个账户都有私钥和公钥组成的一对秘钥,这对秘钥主要用来提供创建和验证交易过程中的安全措施。智能合约程序不只是一个可自动执行的计算机程序,其本身就是一个系统参与者,对接收到的信息进行回应,既可接收和储存价值,也可向外发送信息和价值。这个程序就像一个可被信任的人,可临时保管资产,总是按照事先约定的规则执行操作。智能合约是以太坊最重要的技术贡献。
  消息是一个永不串行且只在以太坊执行环境中存在的虚拟对象,合约具有发送“消息”到其它合约的能力。消息包括发送者、接收者、要发送的数据和燃料费限额。消息由不同的合约账户创建和接收,接收账户回应的过程类似于函数调用过程[20]。而以太坊中的交易指从外部账户内存区域发出消息的签名数据包。其中包含发送者签名、接收者、交易金额、待发送的数据、燃料费限额和燃料费代价。这些数据解释了交易双方身份信息、金额多少或是否激活合约,且规定了交易最多被允许执行的计算步骤和交易发出者愿意支付的手续费金额。
  2.1.2 中间交互API接口设计
  为方便创建基于Web的去中心化应用,以太坊平台提供了一个极其便利的JavaScript库Web3.js。它是一个轻量级用于集成以太坊功能的Java开发库,封装了以太坊节点的API协议,可让开发者轻松连接到区块链节点,不必编写繁琐的RPC协议包。它通过JSON RPC远程过程调用与区块链交互。本文系统在太坊应用环境中,通过Web3.js与顶层去中心化应用模块进行交互。以太坊是由包含区块链上所有数据和代码的节点组成的点对点网络。Web3.js允许用户通过JSON RPC向某个以太坊节点发送请求以读写数据。Web3.js可与任何暴露了RPC接口的以太坊节点连接[20-21],提供eth对象与以太坊区块链进行交互,是可帮助用户实现发送以太币、读写智能合约数据、创建智能合约等功能的库。   贫困生精准资助系统与以太坊网络交互的API接口设计流程具体包括:①本文系统与底层以太坊网络交互。首先,以太坊接口通过合约管理核心类提供发送交易的方法,提供交易数据和地址,监听交易是否广播到网络的每一个节点,是否验证成功并存入新构造区块中。假如经过一段时间后,许多区块中均没有正常的返回信息,系统会再次提醒管理用户重新广播交易;②合约管理核心类的子类完成底层各函数功能的调用,其中核心的子类包括基本操作子类、资助资金管理子类、贫困生信息管理子类、帮扶工作子类等,以及各种交易类和合约函数。调用合约函数不会产生以太币消费问题,但实际使用合约时需消耗以太币。账户登录以后,可根据相应地址查看以太币余额。当不能满足交易所消耗的以太币时,系统会根据不同用户需求自动发放以太坊;③最后,上述每个子类的具体功能均关联账户管理核心类,该类主要用来为各子类分配权限和转换角色,使不同用户的操作基本符合其角色的身份。
  2.1.3 设置精准资助系統模块
  系统模块合理设置,是提高系统体验度和适用范围的重要因素。系统模块合理设置包括:体验度舒适性和模块可扩展性。根据需求分析,本文共设置5个模块,即贫困生信息管理模块,主要功能有贫困生资料记录和分配对应的帮扶教师;资助资金管理模块,主要功能有管理和发放资助资金、贫困生申请资金接受账号以及资金转账提现[22-23];资助工作管理模块,主要功能有记录走访贫困生整个过程的信息、针对出现的问题采取的帮扶措施及记录帮扶贫困生的具体事件;账户管理模块,主要有添加管理员、帮扶教师、贫困学生等角色账户;系统管理模块,主要有系统暂停申请、投票以及维护等功能。
  系统体验流程基本符合用户使用习惯,用户可通过自己拥有的私钥账户信息进入系统主界面,系统将依据合约中登记的信息分配用户权限,进而不同用户将进入主界面后看到的界面内容是不相同的。当管理员登录贫困生精准资助系统后,界面会显示系统介绍和基本信息介绍,同时界面顶层菜单项设置有管理员设置、贫困生资助工作管理、贫困生信息管理及系统管理。管理员可通过不同按钮进行相应设置并添加操作。当帮扶教师角色用户登录进入系统后,界面会有帮助贫困生对象管理和资助工作管理功能,帮助对象管理用于查看贫困生信息并进行相应操作,也可查看到贫困生基本信息情况和帮助的事迹记录。当贫困学生角色账户登录系统后,会显示系统简介和个人基本情况,该角色系统主要有查看资助资金流转动态和如何转入自己账户等关键功能。
  2.2 智能合约设计
  以太坊智能合约在实际系统中是一段程序代码,但它是作为以太坊区别于其它区块链实现方案的核心特征,重点在于智能合约不仅是可自动执行的程序代码,且自身就是一个系统参与者,即对接收到的信息进行回应、接收和储存价值,也可向外发送信息和价值。在网络系统中所有合约都是不可违约且不可伪造的,合约生效后,在以太坊中达成永久共识。本文设计的贫困生资助系统共涉及9个不同功能的智能合约,由这9个智能合约共同完成系统的各种核心操作。智能合约组关系如图3所示。
  图3中合约Userable主要用于记录合约新建者的账户地址,提供权限控制功能;合约ManagerPermissions主要用于设置管理人员权限;合约Suspended主要用于系统紧急停止功能;合约AccountPermissions主要用于设置帮扶工作人员、帮扶教师、贫困生登录账户信息;合约SysGeneralOperat主要用于提供系统常规操作;合约PoorStudentInform主要用于设置贫困生的基本信息;合约TokenERC20主要用于提供资助资金代币的接口[24-25];合约PoorStudentsHelp主要用于提供贫困生帮扶工作、分配帮扶教师;合约FundTransfer主要用于提供资金代币转移工作。
  3 系统实现
  3.1 系统实现环境
  高校贫困生精准资助系统是基于区块链的去集中化应用,本系统中的区块链实施环境为开源的以太坊环境,系统实现环境搭建在一台台式服务器主机上,主机硬盘配置1TB,IntelCorei7处理器,24GB随机存储器,在服务器主机中使用虚拟化软件创建6台内存为3GB的虚拟机作为以太坊节点使用,每个虚拟机上安装64位的Ubuntu16.04.1操作系统用于完成系统开发环境。系统实现环境中主要使用的软件工具见表1。
  系统开发实现过程中,首先搭建虚拟机节点集群并创建以太坊链条,随后以Node.js作为编程开发语言编写系统实现过程中的功能接口,通过Web3.js与以太坊环境进行数据传递。采用Truffle作为以太坊去集中化应用开发框架,可避免考虑许多细节,快速完成系统创建。Geth作为以太坊客户端使用,是目前用户最多、使用最广泛的客户端[25]。通过Geth客户端与以太坊网络进行连接和交互可实现账户管理、合约部署、挖矿等众多实用的功能。编程语言Solidity主要用于智能合约编程实现过程。
  3.2 系统模块实现
  3.2.1 系统账户管理
  登录精准资助系统需申请以太坊账号,并把该账号信息提前存放到对应的智能合约中,只有在合约中存储过账号和个人信息,才能使用对应的私钥登录系统处理相应业务。用户登陆后,系统显示主页如图4所示。
  3.2.2 资助资金管理
  学校资助每位贫困学生的资金流向均有据可查,给贫困生发放资金的界面如图5所示。
  4 结语
  本文通过设计和实现基于区块链技术的高校贫困生精准资助系统,为以太坊与智能合约相关内容补充教学案例,使学生对以太坊和智能合约理论知识有了更深认识,同时利用以太坊平台搭建的实际应用系统,也为目前高校贫困生精准资助工作提供了更理想的技术解决方案,有助于提升贫困生资助工作效果。
  参考文献:
  [1]杨现民,李新,吴焕庆,等. 区块链技术在教育领域的应用模式与现实挑战[J]. 现代远程教育研究, 2017,(2):34-45.   [2]赵丰,周围. 基于区块链技术保护数字版权问题探析[J]. 科技与法律,2017,(1):59-70.
  [3]安庆文. 基于区块链的去中心化交易关键技术研究及应用[D]. 上海:东华大学,2017.
  [4]沈鑫,裴庆祺,刘雪峰. 区块链技术综述[J]. 网络与信息安全学报,2016,2(11):11-20.
  [5]唐文剑. 区块链将如何重新定义世界[M]. 北京:机械工业出版社,2016.
  [6]吴思进,王志文. 区块链的数据对比及共识方法,CNl057l9l85A[P]. 20l6.
  [7]李董,魏进武. 區块链技术原理、应用领域及挑战[J]. 电信科学,2016,32(12):20-25.
  [8]朱岩,甘国华,邓迪,等. 区块链关键技术中的安全性研究[J]. 信息安全研究,2016,2(12):1090-1097.
  [9]王晟. 区块链式法定货币体系研究[J]. 经济学家,2016,9(9):77-85.
  [10]杜江天.  区块链工作量证明机制中的哈希算法探讨[J]. 电脑编程技巧与维护,2018(4): 40-42.
  [11]黄健.  RSA 公钥加密体制的安全性分析与改进[J].  计算机与网络, 2016, 42(1): 70-73.
  [12]李海平, 凌广明, 裴宸平.  基于椭圆曲线数字签名系统的设计与实现[J].  计算机时代, 2015(5): 44-46.
  [13]刘文龙.  当前精准扶贫存在的问题[J].  合作经济与科技, 2017(3):185-187.
  [14]谢治菊. 农村精准扶贫中的大数据应用困境及改进策略 [J].  中共福建省委党校学报,2017(8):64-71.
  [15]陈文文. 我国农村精准扶贫困境研究[D]. 合肥:安徽大学, 2017.
  [16]王学权.  “十三五” 时期扶贫新模式: 实施精准扶贫[J].  经济研究参考, 2016 (7): 70-79.
  [17]沈新忠. 做好精准扶贫工作的探讨[J]. 农业科技与装备, 2015 (5): 87-88.
  [18]张玉强,李祥. 集中连片特困地区的精准扶贫模式[J].  重庆社会科学,2016 (8): 64-70.
  [19]扬灵团队. 国内外精准扶贫研究的关注点述评[J].  江苏商论, 2017(22):191-192.
  [20]常青. 隽手高新技术 打造版权共赢格局——国内首个版权区块链联盟在京成立[J]. 中国版权, 2017(5):68-69.
  [21]中国区块链技术和产业发展论坛. 中国区块链技术和应用发展白皮书[R]. 北京:工业和信息化部信息化和软件服务业司, 2016:11-20.
  [22]罗绒战堆,陈健生. 精准扶贫视阈下农村的脆弱性、贫困动态及其治理——基于西藏农村社区案例分析[J]. 财经科学,2017(01):93-104.
  [23]陈刚, 刘文新.  贵阳区块链发展和应用[M].  贵阳:贵州人民出版社, 2016: 10-30.
  [24]宫留记.  政府主导下市场化扶贫机制的构建与创新模式研究——基于精准扶贫视角[J]. 中国软科学, 2016( 05):154-162.
  [25]庄雷, 赵成国.  区块链技术创新下数字货币的演化研究: 理论与框架[J].  经济学家, 2017(5) :76-83.
  (责任编辑:江 艳)
  收稿日期:2019-12-17
  基金项目:河南省教育厅人文社会科学研究项目(2019-ZDJH-152)
  作者简介:张新朝(1989-),男,硕士,郑州科技学院信息工程学院助教,研究方向为数据挖掘、人工智能。
转载注明来源:https://www.xzbu.com/8/view-15217382.htm