面向计算机专业的区块链技术本科教学设计与实践

作者: 吴嘉婧 黄宝莹 李全忠

[摘 要] 近年来,区块链技术受到国家和社会的广泛关注,被列为“十四五”规划七大数字经济重点产业之一。目前,我国区块链技术的发展属于初级阶段,缺乏原创的基础算法、共识机制等核心技术。针对计算机专业的学生对这一新兴技术的浓厚兴趣,以及国家发展相关应用的迫切需要,区块链技术课程结合密码学等多门学科知识,探讨了如何在本科阶段开展区块链原理与技术的教学,引导学生进行相关应用的开发实践,并取得了较好的效果,为培养区块链技术人才起到了一定的参考作用。

[关键词] 区块链原理与技术;本科教学;计算机专业;教学实践

[基金项目] 2020—2023年国家自然科学基金项目“通信—电力相依网络弹性过程的建模、分析与优化”(61973325);2022年度中山大学本科教学质量与教学改革工程项目“面向计算机专业的区块链技术本科教学设计与实践”(67000-12220011)

[作者简介] 吴嘉婧(1989—),女,江西吉安人,博士,中山大学计算机学院副教授,博士生导师,主要从事区块链和图挖掘技术研究;黄宝莹(1999—),女,广东茂名人,中山大学计算机学院2021级计算机技术专业硕士研究生,研究方向为区块链;李全忠(1984—),男,广东茂名人,博士,中山大学计算机学院副教授(通信作者),主要从事无线通信研究。

[中图分类号] G642.0 [文献标识码] A [文章编号] 1674-9324(2023)07-0081-04 [收稿日期] 2022-05-11

引言

区块链是一种分布式账本技术,具有去中心化、匿名性、不可篡改、数据可追溯等特点。2009年比特币诞生,基于比特币技术的思想而延伸拓展的区块链技术得到了蓬勃发展,并在各行各业发挥着重要作用。

具体来说,区块链利用块链式数据结构验证和存储数据,使用分布式节点公式算法生成和更新数据。除此之外,区块链还通过智能合约提供相应的服务,不依赖于第三方。智能合约是一段存储于区块链上的代码,它能够根据被调用的函数自动执行,实现各种复杂逻辑。在交易结算速度方面,区块链比传统的金融交易更快。因为区块链上的交易利用了多个节点共同维护的可信任账本,无须通过银行系统的层层审查,这种点对点的直接交易模式大大提高了区块链的交易速度。同时,由于区块链生成区块需要一定的工作量,而且区块要经过所有节点的验证才能加入链上,所以恶意篡改区块数据几乎是不可能的。更重要的是,区块链数据是对所有人公开的,除了用户个人的私钥等隐私信息外,每个人都可以查询区块链上的交易信息,实现交易流程完全透明化。因此,区块链技术能够满足我们对不可篡改、可扩展性等需求,可以有效解决网络空间的信任和安全问题。

习近平总书记在十九届中央政治局第十八次集体学习时强调,区块链技术的集成应用在新的技术革新和产业变革中起着重要作用,加快推动区块链技术和产业创新发展[1]。美国、日本和欧盟中的一些国家与地区在积极推动区块链技术的研发和应用推广。区块链作为一种数字技术,有助于促进我国数字经济的发展,而且它与其他技术融合创新,还能够推动产业数字化的深度转型升级[2]。虽然区块链在我国各个领域都有应用落地,但核心技术创新、底层平台开发等仍落后于其他国家,大多数应用依赖于国外的开源项目。“十四五”规划要在区块链的技术、平台、应用和监管四大方面进行创新,加快数字中国的建设步伐,助推社会主义现代化建设。

为了培养区块链技术的后备人才,近年来,清华大学、复旦大学等高校开设了区块链课程。与其他计算机专业课程不同,区块链课程涉及分布式计算、密码学等学科的原理,对学生的基础知识掌握情况有较高的要求[3-4]。因此,本文总结了对计算机专业本科生进行区块链技术教学时面临的困难,通过采用课堂讲授、实践辅助、专题研学相结合的方式,设计了相应的教学方案。

一、区块链技术教学面临的问题

(一)区块链课程教学资源较少

一方面,虽然区块链技术的诞生已有14年了,但是相关研究是近几年才开始兴起的,而且我国自主发展区块链技术的起步时间相对较晚,虽然已经出现了派盾、成都链安等崭露头角的区块链安全公司,但其体量较小,创新能力不高,与国外的Etherscan、Coinbase等企业仍有很大的差距。另一方面,与其他人工智能、计算机视觉等计算机前沿领域相比,我国研究区块链技术的高校和研究所相对较少,课程发展时间短,直到2017年才有高校开设了区块链课程。另外,研究人员的数量和成果产出也都处于不足的状态,自主研发的区块链算法和技术寥寥无几。总的来说,目前国内缺乏比较全面、完整的区块链研究体系,导致区块链技术人才培养缺乏相应的教学资源。

当前,知识丰富、内容质量较好的区块链原理和技术书籍,大多是由国外的高校或研究团队编纂,但是学生在阅读英文版教材方面存在一定的困难。虽然最近国内也出现了一大批介绍区块链的网课和书籍,但质量参差不齐,大多是围绕加密货币进行说明,过于强调区块链技术在金融方面的应用,而忽略了它在计算机专业方面涉及的原理,如加密算法、博弈论等。这些都不适合作为计算机专业本科课程的教材。

(二)学生缺乏必要的基础知识

区块链是一种跨学科的产物,它涉及的学科种类繁多,包括密码学、数据机构、分布式系统与存储、信息安全等。密码学是一门研究如何隐秘地传递信息的学科,常被认为是数学和计算机科学的分支,和信息论密切相关。在区块链中,哈希算法和非对称加密算法是必备的两种加密算法,它们可以保证数据的不可篡改性。区块链的本质是分布式数据库,它的数据结构类似单向链表,使用了梅克尔树进行数据存储。除此之外,分布式系统也是区块链技术中的重要一环,每个参与系统的节点只要根据共识机制,达到工作量的要求,便能取得数据库的记账权,且记录可以追溯查询。然而,在面向计算机专业本科生开设区块链技术课程时,学生通常没有全部学习过以上所提及的相关课程,因此对一些加密算法、分布式计算的基本概念的掌握不足,难以理解区块链的整个运行过程。这不仅会使学生学得吃力,无法跟上教师的课堂节奏,还会进一步让他们对学习产生畏难情绪,导致课程的教学效果不佳。因此,教师要因材施教,选择合适高效的教学方式,从而激发学生的学习积极性,提高教学效果。

(三)课程联系区块链应用困难

“纸上得来终觉浅,绝知此事要躬行。”(宋·陆游《冬夜读书示子聿》)学生只有把理论知识转化为实践,在实际操作中加深对所见所学的理解,才能真正掌握一门学科。传统的计算机课程往往配备了相应的实验课,比如计算机网络、数字电路与技术等。目前,在高校的教学方案中,区块链一般只设理论知识的传授,没有安排配套的实验课程,而且一般是作为专业选修课开展。归根结底,高校区块链实验课程难以开展的原因包括实验课教材少、合适的实验教学平台少。参与区块链公链活动需要花费一定的加密货币,这对教学活动来说花费过高。但是,如果只是以传统的方式教育学生学习理论知识,往往会降低学生的学习兴趣,难以真实体验区块链技术的应用场景和发展潜力。因此,我们希望找到一个可以搭建联盟链或私有链的平台,用于开展各种教学活动。同时,从国内市场来看,区块链应用存在数量少、范围小的问题。虽然早在2018年,由深圳市税务局主导、腾讯提供底层技术和能力的全国首张区块链电子发票在深圳开出。但与传统的计算机应用相比,区块链在国内的衍生产品比较少,而且其应用没有达到广泛普及。学生对区块链的印象仍停留在比特币、以太坊等加密货币上,对新技术缺乏足够的了解。因此,如何克服课程难以联系区块链实际应用的困难,是本课程要解决的重点问题。

二、教学设计和方案实践

针对区块链技术教学所面临的困难,“区块链原理与技术”课程从课堂讲授、实践辅助、专题研学三个方面入手,提出了相应的教学措施,并在本科生课堂中进行了实践。

(一)课堂讲授

对于“区块链原理与技术”课程,学生只有掌握了区块链的基础知识,才能为以后做科研打下坚实的基础。本课程选取了中山大学区块链与智能金融研究中心最新编写的《区块链原理与技术》作为参考教材,讲授区块链的基本概念,详解以比特币和以太坊为代表的区块链技术。这两种技术是目前区块链上最为成熟、生态最为活跃的加密货币,以它们作为基础展开对区块链技术的教学,将会激发学生的求知欲。本课程采取了循序渐进的教学方式,先从底层的密码学基础和数据结构开始,再介绍区块链成为去中心化技术所凭借的重要手段——共识机制。除此之外,笔者还介绍了区块链的挖矿和分叉原理,让学生可以了解区块链的持续运作,以及用户多的原因。在这部分,笔者还介绍了区块链存在的一些问题,如法律法规的完善、漏洞攻击和隐私保护等。

笔者在教学过程中,尽量将烦琐的原理转化为生动的流程图,用生活中的事物类比说明。比如,在介绍以太坊的智能合约时,以饮料自动售卖机为例:智能合约的触发事件好比买饮料时的投币操作;合约程序的自动执行,其实是售卖机按步骤提供顾客所需的饮料的过程,整个过程不依赖于第三方,而且彼此信任。这种方法可以令课堂更具趣味性,也利于学生理解区块链的各种知识点,避免了学生因畏难情绪产生消极的学习态度。

(二)实践辅助

作为计算机专业的课程,区块链在国内的教学实验平台较少,因此只有少数高校开设了实验课。为了使学生进一步理解区块链在各行业中的应用需求,培养学生的区块链思维,“区块链原理与技术”课程与微众银行合作,进行了三次开发课程的讲授,并且以期末大作业的形式,促使学生参与实践开发,自主设计和使用区块链技术解决实际应用中的问题。实验使用了微众银行提供的基于区块链的供应链金融平台——FISCO BCOS进行开发。FISCO BCOS平台是国内庞大且活跃的开源社区,该平台已成功支持政务、金融、农业、公益、文娱、供应链、物联网等重点应用领域的数百个区块链应用场景的落地。在实践课中,首先,笔者邀请了微众银行的专家进行线下授课,给学生介绍了FISCO BCOS的使用文档,主要内容为链的部署、智能合约的开发基础等。其次,笔者展示了一些区块链在生活中的应用实例,旨在启发学生深入思考和设计。最后,收集了一百多位学生的区块链作品,整体完成效果较好。通过这次实践作业,学生初步掌握了区块链的开发技术,独立完成了需求分析、功能设计、代码开发的一系列应用开发步骤,并切身体会到区块链在未来各行各业中的发展潜力。学生纷纷对这次实践教学给予了较高的评价,部分学生也挖掘了自己在区块链开发方向的兴趣,进入FISCO BCOS平台实习。

(三)专题研学

为了解决学生基础知识薄弱的问题,笔者在课前分享部分先导课程的技术论文和博客,以便更好地开展课堂教学。另外,“区块链原理与技术”课程的教学目标之一是使学生了解区块链的前沿理论和研究成果,启发学生的科研能力。因此,笔者选取了部分区块链领域的学术论文,包括加密货币、数据分析与反欺诈、攻击与防治、区块链与物联网等专题,带领学生对区块链技术进行深入挖掘和探索。例如,陈伟利等人[5]发现Mt. Gox交易所存在严重的市场操纵行为,认为加密货币市场必须加强监管。吴嘉靖[6]的工作则通过网络嵌入解决了以太坊平台钓鱼诈骗检测的问题,为以太坊社区的良好发展提供了帮助。为了进一步调动学生参与教学活动的积极性,笔者让学生自由结组,每组4~5人,各选一篇区块链论文加以精读和讨论。笔者提供的论文涉及区块链底层架构、智能合约、数据挖掘等前沿问题。在学期最后几周的课堂上,各组通过制作的PPT来分享论文内容和个人见解,并通过问答环节与其他同学进行交流。学生通过学习文献和汇报交流,对区块链的发展现状和存在的不足有了更深的体会,比如,区块链各个层面的安全问题等。此外,笔者布置了一些阅读笔记和课后思考作业,这有助于学生开拓研究思路,积累一定的科研基础知识,为以后的区块链学术研究或开发工作打好基础。

区块链技术作为一门新兴技术,越来越受到学界与工业界的关注。建设区块链工程课程,是主动应对新一轮科技革命和产业变革对地方高校人才培养的机遇与挑战,是服务国家及区域产业发展战略的重要举措。本文先从高校区块链课程的开展现状出发,分析了在当前教学过程中遇到的教学资源少、学生基础知识薄弱等困难,然后基于这些教学困难,采用了课堂讲授、实践辅助、专题研学相结合的方式,详尽地阐明了本课程的教学实践过程。自2018年面向本科生开设本课程以来,累计课堂学习人数超过1 000人,覆盖软件工程、保密管理、计算机科学与技术等专业,深受学生的好评。同时,学生的出勤率较高,积极参与课堂互动,也在实际的开发和科研中灵活运用了课堂上学到的相关知识。笔者认为,本文所总结的教学方案具有一定的积极效果,能够为其他高校开设区块链专业课程提供借鉴。

经典小说推荐

杂志订阅