区块链原理、方法与应用

本课程为北京大学数学科学学院研究生课程(研本合上)。

时间:周一3-4节,周四5-6节(单)。

地点:一教202。

答疑:双周四14:00-15:00,智华楼353。

课程内容:本课程主要讲授区块链的密码学原理和共识机制等基础理论,比特币、以太坊等典型区块链技术以及区块链安全、监管、验证等方法和区块链技术的一些应用,并对区块链领域当前存在的问题及未来可能的发展进行讨论。

参考书目:

[1] 聂长海,陆超逸,高维忠,郑志强,区块链技术基础教程:原理、方法及实践,机械工业出版社,2023.

[2] 杨保华,陈昌,区块链原理、设计与应用(第二版),机械工业出版社,2021.

[3] 魏翼飞,区块链原理、架构与应用(第二版),清华大学出版社,2022.

[4] 陈钟,单志广,区块链导论,机械工业出版社,2021.

成绩判定:

参加课程学习的每位同学需从IEEE Blockchain 2023会议中任选一篇长文(不少于8页)做一次报告,并选择一个课程项目进行研究,完成一篇项目论文(中英文皆可,中文不少于软件学报格式10页,英文不少于LNCS格式16页或IEEE格式8页),论文可从建议课题中选择其一,也可根据自己的研究方向自选课题(自选课题需符合本课程宗旨并经与任课教师讨论取得同意,如自选课题,请写一个简短的研究建议,说明所选课题的重要性及与本课程的相关性,通过邮件发送给我,合理的题目都可以通过确认)。

本课程期末成绩将基于平时作业(10%)、前沿论文报告(30%)和课程项目论文(60%)综合评定。

重要日期(deadline):

    平时作业提交(教学网):见课程日程安排。

    确定报告题目及课程论文所选课题(给我发email):3月31日。

    项目报告提交(教学网):6月7日。

课程项目可选课题:

    1. 智能合约的并行问题(现有的智能合约编程语言如Solidity、Move、Cadence、Liquid等均无法较好地支持并行编程模型,可能原因是什么?会导致什么问题?有什么可能的解决方法提升智能合约的并行能力?)(独立完成)

    2. 智能合约编程语言的内生安全性:设计和问题(研究智能合约编程语言的内生安全性机制,语言允许合约做哪些事情?有什么合约需要的特征但由于安全问题语言中未能提供?语言中可能会有哪些类型的安全漏洞?有什么好的解决方案?)(独立或合作完成,合作者不超过2人)

    3. PBFT共识协议形式化建模与验证(自选一种模型检查或定理证明工具如PRISM、UPPAAL、Coq、Isabelle/HOL等,对PBFT共识协议进行形式化建模和验证,对协议的安全性、活性以及对恶意节点的防御能力等性质进行分析。)(独立完成)

    4. 随着信息化技术的普及,越来越多的纸质合同被电子合同替代,这些电子合同在操作和使用过程中容易遭到篡改或者删除,极大影响了电子合同的真实性和可信性。此外,电子合同还存在诸多风险,如电子合同签订成本高、合同纠纷处理效率低、举证困难、中心化存储数据易被篡改、电子合同文件易丢失等。采用区块链系统实现电子合同上链,可以有效解决这些问题。开发一个基于区块链的电子合同存证系统,实现合同签署方(普通用户)和法院用户角色,普通用户可在线下沟通、签署完成电子合同,通过存证平台将电子合同的哈希值保存在区块链上,合同各签署方均有权随时查看链上存储的合同详情。当合同出现争议等纠纷时,普通用户可向法院提出申诉请求,法院受理后,可以调阅区块链存证平台上保存的电子合同证据,并进行核验,还可对链上存储的合同信息进行溯源。(本课题仅限本科生选做,可独立或合作完成,合作者不超过3人)

课程日程安排(随课程进度更新):

序号 课程内容 作业 辅助阅读材料
1

绪论

(Lecture 1-2) 

3月1日前提交本次作业。

1. 区块链上能否实现传统数据库的增、删、改、查操作?说明原因。

2. 区块链的分布式机制与传统分布式系统的分布式实现目的有什么区别?

3. 以太坊中把叔块包含进来之后是否需要执行叔块的交易?说明原因。

1. 区块链关键技术及存在问题研究综述,刘双印等,计算机工程与应用,58(3): 66-82, 2022。

2. 区块链关键技术及其应用研究进展,朱建明等,太原理工大学学报,51(3): 321-330, 2020。

3. 区块链关键技术的研究进展,李燕等,计算机工程与应用,55(20): 13-23, 2019.

2

区块链网络

(Lecture 3) 

3月8日前提交本次作业:自选程序语言,

1. 给出P2P网络中基于泛洪的资源搜索过程的程序实现。 

2. 给出DHT中节点距离计算过程的程序实现。 

3. 给出Gossip协议的程序实现。

1. P2P技术揭秘——P2P网络技术原理与典型系统开发,管磊,清华大学出版社,2011。

2. Daniel Cason, Nenad Milosevic, Zarko Milosevic, Fernando Pedone: Gossip consensus. Middleware 2021, pages 198-209, ACM, 2021.

3. Hao Zhang, Yonggang Wen, Haiyong Xie, Nenghai Yu: Distributed Hash Table: Theory, Platforms and Applications, Springer, 2013.

4. 区块链网络综述,司冰茹, 肖江, 刘存扬, 戴小海, 金海,软件学报,35(2): 773-799, 2024.

3

密码学原理

(Lecture 4-5)

3月15日前提交本次作业。

1. 自选程序设计语言,给出任一种哈希算法的实现。

2. 自选程序设计语言,给出RSA算法的程序实现。

1. 密码学原理与实践(第三版),Douglas R. Stinson著,冯登国等译,电子工业出版社,2016。

2. 应用密码学:协议、算法与C源程序,Bruce Schneier著,吴世忠等译,机械工业出版社,2021。

4

区块链共识机制

(Lecture 5-8)

 

1. 区块链共识机制研究综述,刘懿中等,密码学报,6(4):395-432,2019。

2. 区块链共识协议综述,夏清等,软件学报,32(2):277-299,2021。

5

比特币

(Lecture 8-9) 

6

以太坊

(Lecture 9-10)

 

7

超级账本

(Lecture 11) 

8
公有链、区块链安全与监管

9
区块链安全技术 

10 
区块链应用

论文报告:

时间 报告人 报告题目
5.13

徐紫云

贾梓涵

The Blockchain Trilemma Described by a Formula

Smart Parking Dapp: A Trust Minimised Smart Parking Solution

5.16

张峻豪

叶昊洋

Crisis of Trust: Analyzing the Verifier’s Dilemma in Ethereum’s Proof-of-Stake Blockchain

Pricing Mechanism of Non-fungible Token (NFT) Driven by Rarity Design

5.20

5.27

林昊苇

陈康贝

Unveiling Vulnerabilities in DAO: A Comprehensive Security Analysis and Protective Framework

iBCTrans: A Practical Blockchain-Based Framework for Cellular Vehicular-To-Everything Networks

5.30

苏航

黄婧扬

A cross-chain identity authentication scheme based on DID

Blockchain-based Trustless Fair Payment Protocol for Verifiable Confidential Outsourcing Computation 

6.3

张益豪

邵凯诚

Incentive Attacks on DAG-Based Blockchains with Random Transaction Selection

The Validator's Dilemma in PoW Blockchain An Evolutionary Game Perspective