三、问答题
1.请简述区块链概念,其与分布式账本、分布式数据库之间有何关系?
(P6最下) 区块链是一种由多方共同维护的共享总账。
(P8第一段) 分布式账本的概念范畴更宽泛,并不强调技术实现特征。区块链是目前最重要和最流行的一种DLT(分布式账本的缩写),其强调技术实现是一种链式数据结构。
(P8第二段) 区块链可以看作是一种以链式结构存储、以全量备份、节点自治等方式管理数据的分布式数据库技术。
2.区块链技术的特征有哪些?
(1.3下面几个大标题) 多中心化、去中介化、透明性、可靠性、不易篡改性、可追溯性。
3.区块链有哪些部署类型,它们之间有何区别?
(P12表1-3) 区块链不同部署形式对比分析
| 对比项 | 公有链 | 联盟链 | 私有链 |
|---|---|---|---|
| 参与者 | 任何人 | 机构联盟 | 机构内部 |
| 网络结构 | 去中心化 | 多中心化 | 中心化 |
| 信任机制 | 全网背书 | 联盟背书 | 机构背书 |
| 记账节点 | 全网节点 | 联盟预先选定 | 机构内自定 |
| 共识算法 | PoW类/PoS类 | BFT类/CFT类 | BFT类/CFT类 |
| 权限控制 | 无 | 联盟控制 | 机构控制 |
| 激励机制 | 需要 | 可选 | 不需要 |
| 突出优势 | 信用的自建立 | 效率和成本优化 | 透明和可追溯 |
| 应用场景 | 加密货币 | B2B交易 | 审计 |
| 典型平台 | 比特币、以太坊 | Hyperledger Fabric、Quorum | HydraChain |
4.如何衡量一个应用领域是否需要使用区块链?
(豆包大人) 是否多主体无互信、需数据不可篡改+溯源、分布式协作,且收益超成本。
5.画出由9个数据块(编号1~9)组成的一个Merkle树,树的高度是多少?假设这9个数据块是两台机器下的文件,且目录相同。如果两个机器下只有数据块5号不同,请列出比较检索过程。

简单来说就是每一层多出来的单个的就复制一个自己然后在往上走
高度为4,两个计算机从根哈希往下比对,每次剪枝哈希值相同的子节点再从不一样的继续往下找
6.现代密码体制必须满足哪些要求及含义?
(P28最下-P29最上)
- 可用性:算法的计算速率必须在可控范围内;
- 正确性:对所有的密钥、加密和解密都必须正确有效;
- 安全性:体制的安全性必须只依赖于密钥的保密性,而不依赖算法的保密性。
7.什么是P2P网络,其基本特点是什么?
(P58 3.1) P2P网络是一种典型的自组织性计算机网络,它是由一些具有相同地位、能够提供某类服务的计算机组成的网络,也是一种基于互联网的分布式计算模型或网络系统。
(P60 3.1.2) 分布式、拓补动态性、网络健壮性、负载均衡性、高性价比、隐私性。
8.P2P网络拓扑结构有哪些?
(3.2节)
- 集中式P2P网络:处于中心地位的索引目录服务器以星状的形式与各目录服务器客户端连接;
- 全分布式结构化P2P网络:没有中央服务器,每一个节点都可以随意加入到网络中,并与自己相邻的邻居节点通过对等连接构成一个逻辑覆盖网络。
- 全分布式非结构化P2P网络:在重叠网络采用了随机图的组织方式,节点度数服从幂次法则,从而能够较快发现目的节点。
- 混合式P2P网络:将整个网络中的节点按能力不同区分为普通节点和超级节点两类。
9.分布式系统具备哪些关键特性?
(P89最上)
- 分布式系统中进程具有并发性
- 全局时钟缺失
- 组件可能出错
- 消息可以随时传递
10.分布式共识算法需要满足哪些属性?
(P89) 正确性、一致性、终止性
11.PBFT共识机制以及视图转换分别包括哪几个主要阶段?
(P97) 在PBFT机制的分布式共识中,主要通过请求阶段、预准备阶段、准备阶段、承诺阶段和答复阶段来形成共识。
(P98) 视图转换的过程包括视图转换、视图转换确认、新视图。
12.简述PoW机制的优缺点。
- 优点:安全性较高、机制简单易实现、去中心化基础扎实;
- PoW机制的缺点:资源消耗极大、效率低下、算力集中风险、普通用户参与门槛高。
13.智能合约根据编程语言表现可分为哪几类?每类有什么特点?
(5.1.5节)
- 脚本型智能合约:脚本指令只需要完成有限的交易逻辑,不需要实现复杂的循环、条件判断和跳转操作;
- 图灵完备型智能合约:能够使用编程语言模拟图形机,即能够实现任何操作逻辑;
- 可验证合约型智能合约:类似于Lisp语言,可实现合约的数据存储和授权验证等功能。
14.目前,常见的智能合约开发平台有哪些?这些平台有什么特点?
(P124表5-3) 智能合约平台分析
| 智能合约平台 | 链类型 | 吞吐量/笔交易·s⁻¹ | 交易延迟/s | 合约语言 | 隐私保护 | 特点 |
|---|---|---|---|---|---|---|
| Ethereum | 公有链 | 约100 | 约15 | Solidity | 不支持 | 公有链开放,规则透明门槛低,性能较低 |
| Hyperledger Fabric | 联盟链 | 约100 | 约1 | Go/Java/Node.js | 支持 | 联盟链需许可,交易低延迟,支持隐私 |
| EOS | 公有链 | 约10,000 | 0.5 | C++ | 不支持 | 公有链,石墨烯+并行拓展,吞吐高延迟低 |
15.简述以太坊智能合约生命周期。
(P126小标题) 开发、编译、部署、调用、销毁。
16.简述比特币地址生成过程。
(P184第二段) 比特币地址是由数字和字母组成的字符串,公钥在进一步处理后会成为比特币地址。公钥经过SHA256和RIPEMD160计算并编码
17.什么是MPT结构?以太坊对其进行了哪方面的优化?
(P224) MPT是一种用来组织以太坊中账户状态集、交易数据集、收据数据集、合约状态存储集等的数据结构。
(P225) 使用哈希值而非内存地址引用MPT中的节点以提高Patricia树的安全性,引入了4种节点类型(空节点、叶子结点、扩展节点、分支节点)以尽量压缩整体的树高、降低操作的复杂度。
18.简述比特币的PoW机制中的挖矿过程及如何进行难度调整。
(P101图4-6) 比特币挖矿流程

四、画图题
100%在下面这些图里面,直接把图背下来就行
1.区块链结构图

2.用户链码的生命周期

3.保密通信基本模型

4.Merkle树示例

5.C/S模式与P2P模式对比
C/S模式图

P2P模式图

6.PBFT共识的执行过程

7.比特币挖矿流程

8.智能合约的运行机制

9.以太坊节点架构层合约

10.Ethereum智能合约运行机制

11.超级账本的运行机制

12.生成比特币地址的流程

13.以太坊的交易结构
