图书目录

目录

第1章密码学基础1

1.1哈希算法1

1.1.1基本定义1

1.1.2哈希算法种类3

1.2默克尔树3

1.3公钥加密方案4

1.3.1基本定义5

1.3.2安全性定义5

1.3.3椭圆曲线密码学7

1.4数字签名方案7

1.4.1基本定义8

1.4.2安全性定义8

1.4.3椭圆曲线数字签名算法11

1.4.4群签名11

1.4.5环签名14

1.4.6盲签名17

1.4.7门限签名19

1.4.8多签名20

1.4.9聚合签名22

1.5编码/解码算法23

1.5.1Base58Check算法24

1.5.2EIP55: 混合大小写校验和地址编码25

1.6零知识证明26

1.6.1基本定义26

1.6.2范围证明27

1.6.3算术电路可满足性证明29

1.7秘密分享31

1.7.1基本定义31

1.7.2Shamir的秘密分享方案31

1.7.3可验证的秘密分享32

1.7.4公开可验证的秘密分享321.7.5异步可验证的秘密分享33

1.8分布式随机数生成35

1.8.1基本定义35

1.8.2安全性定义36

1.8.3SCRAPE方案37

1.9安全多方计算39

1.9.1安全模型39

1.9.2不经意传输协议41

1.9.3姚氏混淆电路协议42

1.9.4GMW协议44

1.10注释与参考文献45

1.11本章习题46

第2章分布式系统48

2.1分布式系统架构48

2.1.1分布式系统48

2.1.2网络模型50

2.1.3故障模型51

2.2分布式共识53

2.2.1共识问题53

2.2.2客户端一致性54

2.2.3共识算法举例——Raft58

2.3FLP原理与CAP原理62

2.3.1FLP原理63

2.3.2CAP原理66

2.4ACID原理与BASE原理67

2.4.1ACID原理67

2.4.2BASE原理69

2.5注释与参考文献70

2.6本章习题70

第3章经典分布式共识71

3.1背景介绍71

3.1.1拜占庭将军问题71

3.1.2使用口头消息的解73

3.1.3拜占庭容错协议及其分类75

3.2DolevStrong协议76

3.2.1同步网络下的共识问题76

3.2.2DolevStrong拜占庭广播协议78

3.2.3基于DolevStrong的拜占庭协定协议80

3.2.4基于DolevStrong的状态机复制协议81

3.3PBFT协议82

3.3.1概述82

3.3.2常规构造83

3.3.3垃圾回收84

3.3.4视图转换86

3.3.5协议分析87

3.4HotStuff协议89

3.4.1概述89

3.4.2基础HotStuff协议89

3.4.3链接HotStuff协议91

3.4.4协议分析93

3.5HoneyBadger协议94

3.5.1异步可靠广播95

3.5.2异步二元协定97

3.5.3异步公共子集98

3.5.4异步原子广播100

3.6注释与参考文献102

3.7本章习题102

第4章比特币104

4.1密钥和地址104

4.1.1地址104

4.1.2密钥105

4.1.3高级密钥和地址107

4.2钱包107

4.2.1随机钱包与确定性钱包108

4.2.2分层确定性钱包108

4.2.3钱包产业标准108

4.3交易110

4.3.1交易输出110

4.3.2交易输入111

4.3.3交易费用112

4.3.4交易脚本及语言113

4.3.5高级交易脚本115

4.4比特币网络117

4.4.1节点类型118

4.4.2中继网络118

4.4.3网络发现119

4.4.4全节点和SPV节点120

4.4.5布隆过滤器121

4.5区块123

4.5.1区块结构和区块头部123

4.5.2区块链和默克尔树124

4.5.3测试区块链126

4.6挖矿和共识协议126

4.6.1分布式共识126

4.6.2交易验证127

4.6.3交易入块128

4.6.4挖矿129

4.6.5区块验证130

4.6.6矿池131

4.6.7分叉132

4.7隔离见证133

4.7.1提出背景133

4.7.2交易结构134

4.7.3区块扩容135

4.8注释与参考文献136

4.9本章习题136

第5章以太坊138

5.1区块链的整体结构138

5.2密钥与地址139

5.3钱包139

5.4交易与Gas140

5.4.1交易结构140

5.4.2交易计数Nonce141

5.4.3Gas142

5.4.4交易传播机制143

5.4.5多重签名交易143

5.5智能合约144

5.5.1生命周期144

5.5.2智能合约的构建144

5.5.3智能合约的安全性145

5.6以太坊虚拟机148

5.6.1定义148

5.6.2准图灵完备150

5.7共识协议150

5.7.1工作量证明共识机制150

5.7.2权益证明共识机制151

5.7.3代理权益证明共识机制152

5.8注释与参考文献152

5.9本章习题152

第6章联盟链153

6.1联盟链介绍153

6.1.1联盟链的提出153

6.1.2联盟链与公链、私链的区别154

6.1.3联盟链框架Hyperledger及其执行架构156

6.1.4Hyperledger Fabric基础介绍158

6.2Hyperledger Fabric的网络架构159

6.2.1组织结构与通道建立159

6.2.2身份认证与角色分配162

6.2.3排序服务流程165

6.2.4随机化数据传播协议与私有数据传播167

6.3Hyperledger Fabric的重要概念170

6.3.1对等节点170

6.3.2账本172

6.3.3控制策略175

6.3.4链码及工作方式176

6.4Hyperledger项目拓展及应用177

6.4.1Hyperledger的共识算法组件177

6.4.2Hyperledger社区子项目介绍177

6.4.3Hyperledger解决方案实例178

6.4.4联盟链的应用前景180

6.5注释与参考文献181

6.6本章习题181

第7章区块链安全技术183

7.1共识层攻击183

7.1.1零双花攻击183

7.1.2N确认双花攻击185

7.1.3自私挖矿攻击186

7.1.4扣块攻击和扣块后的分叉攻击190

7.1.5长程攻击192

7.1.6权益窃取攻击194

7.2网络层攻击195

7.2.1日蚀攻击195

7.2.2女巫攻击196

7.3数据层攻击197

7.3.1签名延展性攻击197

7.3.2时间劫持攻击198

7.4注释与参考文献198

7.5本章习题199

第8章区块链隐私保护技术200

8.1隐私与匿名的区别200

8.2混币服务与匿名支付通道201

8.2.1概述201

8.2.2CoinJoin202

8.2.3Mixcoin202

8.2.4CoinShuffle203

8.2.5CoinParty204

8.2.6TumbleBit205

8.2.7Bolt206

8.2.8方案比较207

8.3基于环签名的隐私保护207

8.3.1概述207

8.3.2CryptoNote协议208

8.3.3门罗币209

8.4基于零知识证明的隐私保护211

8.4.1概述211

8.4.2zkSNARKs212

8.4.3ZeroCash213

8.5注释与参考文献215

8.6本章习题216

第9章区块链去隐私化技术217

9.1区块链隐私与匿名217

9.1.1概述217

9.1.2交易法218

9.1.3利用离线信息218

9.1.4交易溯源技术218

9.1.5账户聚类技术220

9.1.6跨账本去隐私化222

9.2实例一: 比特币在线支付去隐私化223

9.2.1整体攻击流程223

9.2.2用户在线支付信息监测223

9.2.3去交易隐私化攻击224

9.2.4去身份隐私化攻击225

9.3实例二: 跨账本去隐私化226

9.3.1典型的跨账本交易流程226

9.3.2著名的跨账本交易平台——ShapeShift227

9.3.3跨账本追踪框架CLTracer227

9.3.4CLTracer交易数据发现模块228

9.3.5跨账本地址聚类启发式229

9.3.6CLTracer平台扩展模块230

9.4注释与参考文献231

9.5本章习题231

第10章区块链扩容技术232

10.1背景介绍232

10.1.1区块链可扩展性问题232

10.1.2链下扩容方案234

10.1.3链上扩容方案235

10.2闪电网络236

10.2.1序列到期可撤销合约236

10.2.2哈希时间锁定合约238

10.2.3密钥存储239

10.3虚拟支付通道239

10.3.1账本通道240

10.3.2虚拟通道241

10.3.3安全属性243

10.4BitcoinNG244

10.4.1关键块与领导选举244

10.4.2微块245

10.4.3确认时间及酬金245

10.5ByzCoin246

10.5.1概述246

10.5.2系统模型247

10.5.3稻草人协议: PBFTCoin247

10.5.4完全构造247

10.5.5安全性分析250

10.6ELASTICO251

10.6.1系统模型251

10.6.2完全构造252

10.6.3安全性分析253

10.7OmniLedger254

10.7.1概述254

10.7.2系统模型256

10.7.3稻草人协议: SLedger256

10.7.4完全构造256

10.7.5安全性分析259

10.8以太坊2.0259

10.8.1概述259

10.8.2Casper FFG261

10.8.3信标链262

10.9注释与参考文献262

10.10本章习题263

第11章智能合约264

11.1智能合约概述264

11.1.1智能合约概念264

11.1.2智能合约原理265

11.1.3智能合约语言265

11.1.4智能合约与以太坊虚拟机271

11.2智能合约安全274

11.2.1Solidity相关漏洞274

11.2.2以太坊虚拟机相关漏洞281

11.2.3Blockchain相关漏洞282

11.2.4智能合约安全漏洞分析工具284

11.3智能合约隐私289

11.3.1智能合约隐私概念289

11.3.2Enigma291

11.3.3Hawk297

11.3.4Ekiden305

11.4智能合约分布式应用程序311

11.4.1分布式应用程序概念311

11.4.2分布式金融312

11.4.3分布式交易所314

11.4.4分布式艺术315

11.5注释与参考文献316

11.6本章习题317

参考文献320