区块链技术深度剖析课程大纲_1.1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程名称:区块链技术深度剖析
课程编码:
课程学分:2学分
课程学时:32学时
适用专业:网络空间安全,信息安全
《区块链技术深度剖析》
The Depth of Analysis Blockchain Technology
教学大纲
一、课程性质与教学目标
性质:本课程属于网络空间安全专业的兴趣选修课程。本课程的主要目的是让学生学习和了解区块链的起源、发展以及各行业的应用需求;理解和掌握区块及链、密码技术、共识机制、激励机制、智能合约、P2P网络等的基本原理和实践应用,掌握比特币源码及典型密码算法的应用;领会区块链中安全机制的设计思想、区块链未来的应用价值和发展趋势。
教学目标:让学生掌握区块链中安全设计与分析的基础知识,培养其应用区块链原理,准确分析各行业中存在的去中心化信任、公开透明、不可篡改、不可伪造以及跟踪溯源等安全问题,设计和使用区块链技术解决各行业应用问题。二、教学基本内容及基本要求
通过课堂教学结合实践应用使学生了解区块链的发展及其研究的主要内容,掌握区块链的主要知识体系、基本理论;学会使用典型的密码算法,解决各行业应用的安全问题;通过课堂讲解、讨论和学生课下阅读、思考以及上机调试代码,了解区块链在各行业中的应用需求,能够把密码思想融入到社会生活中,把密码工具应用到区块链系统中,解决一些实际问题。
第1章区块链概述
(一)基本要求
1、掌握:区块链安全思想,区块链分类,区块链技术原理;
2、理解:区块链和信息安全、密码技术的关系;
3、了解:区块链的发展史、能解决的行业问题以及未来的发展趋势。(二)教学及考核内容
1.1 构建信任社会
1.2 区块链与密码学
1.3 区块链技术原理
第2章 C++编程基础
(一)基本要求
1、掌握:比特币源码以及密码算法中用到的C++编程知识,OpenSSL、boost 第三方库的使用;
2、理解:密码算法安全编程的原理;
3、了解:密码算法安全编程的基本思想。
(二)教学及考核内容
2.1 序列化
2.2 字节序
2.3 大数运算
2.4 C++编程基础
2.5 第三库的使用
第3章密码学基础
(一)基本要求
1、掌握:Hash函数,公钥密码体制,数字签名,OpenSSL密码库;
2、理解:密码算法的原理与应用,区块链与密码学的关系;
3、了解:密码学与信息安全的关系。
(二)教学及考核内容
3.1 区块链与密码学
3.2 Hash函数及算法实现
3.3 公钥密码体制及算法实现
3.4 数字签名及算法实现
第4章创世区块
(一)基本要求
1、掌握:编程实现创世区块及索引;
2、理解:区块及索引的数据结构;
3、了解:
(二)教学及考核内容
4.1 创世区块及索引生成
4.2 区块及索引数据解读
第5章交易
(一)基本要求
1、掌握:编程实现交易,交易数据结构;
2、理解:交易原理;
3、了解:
(二)教学及考核内容
5.1 交易生成
5.2 交易数据解读
第6章共识机制
(一)基本要求
1、掌握:典型共识算法及编程实现;
2、理解:分布式及共识机制的思想;
3、了解:零知识证明协议。
(二)教学及考核内容
6.1 共识机制简介
6.2 POW机制与比特币挖矿
6.3 POS机制
6.4 DPOS机制
第7章智能合约
(一)基本要求
1、掌握:比特币脚本编写;
2、理解:智能合约原理及意义;
3、了解:
(二)教学及考核内容
7.1 输入和输出脚本;
7.2 标准交易脚本;
第8章 P2P网络
(一)基本要求
1、掌握:P2P网络协议及网络编程;
2、理解:比特币网络;
3、了解:
(二)教学及考核内容
8.1 网络协议
8.2 网络节点
8.3 网络初始化、关闭
第9章以太坊
(一)基本要求
1、掌握:
2、理解:以太坊平台。
3、了解:
(二)教学及考核内容
9.1 以太坊智能合约简介
9.2 以太坊虚拟机
第10章超级账本
(一)基本要求
1、掌握:
2、理解:
3、了解:
(二)教学及考核内容
10.1 超级账本项目
10.2 Fabric项目
第11章比特币开发指南
(一)基本要求
1、掌握:比特币源剖架构剖析,Node.js开发;
2、理解:
3、了解:
(二)教学及考核内容
11.1 搭建应用开发环境;
11.2 Node.js开发实战;
第12章总结与展望
(一)基本要求
1、掌握:
2、理解:
3、了解:各国区块链相关政策法规。
(二)教学及考核内容
12.1 总结;
12.2 未来展望。
三、本课程与其它相关课程的联系与分工
本课程为网络空间安全专业的选修课程,是学习区块链的基础,是网络空间安全专业从事区块链开发必不可少的课程之一。
本课程的先修课程:高级语言程序设计、信息安全数学基础、应用密码学。
本课程的后续课程:无。
四、实践性教学内容安排与要求
与课堂讲授同步。
五、课程各教学环节和各篇章(节)学时分配
总学时为32学时,其中课程讲授32学时。
课程各章节学时分配如下: