注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计区块链通俗读本

区块链通俗读本

区块链通俗读本

定 价:¥99.00

作 者: 漆英 著
出版社: 电子工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787121398087 出版时间: 2020-10-01 包装: 平装
开本: 16开 页数: 384 字数:  

内容简介

  本书以区块链科普内容为主,同时兼顾专业级别的实战技能。科普级别的内容旨在以妙趣横生的手法向公众普及区块链知识,包括公共账本的概念及记账机制、数据块的“指纹”与“指针”、解答谜题证明工作量、区块树被剪枝成树干(链)、公有链的社会条件、分蛋糕的“军备竞赛”、货币发行、账户与钱包、矿池与交易所、以太坊的机器人造“币”(Token)、联盟链的“减”与“加”,等等。专业级别的内容旨在为区块链技术从业者提供必要的理论知识、操作实践和应用开发实例,包括密码学应用、共识算法、比特币闪电网络、以太坊工作原理、以太坊组网实践、Solidity语言、智能合约开发、以太坊DApp,以及如何将传统的数据库应用改造成区块链应用,等等。

作者简介

  漆 英 硕士,国家认证系统分析师,高级程序员,高级工程师,PMP。现任中国工商银行软件开发中心资深技术经理,长期从事银行软件开发,成果多次获奖(作为主要完成人获中国人民银行“银行科技发展奖”一等奖一项、二等奖一项、三等项奖二项,获工商银行“科技创新奖”多项),获发明专利多项,发表论文多篇,曾参与多本计算机技术类书籍编写,著有《简明银行会计――程序员视角》。作为工行软件开发中心“工软学院”的兼职讲师,主讲的系列课程深受员工欢迎,多次被评为优秀讲师。冯浩铭 中国工商银行软件开发中心区块链实验室技术骨干,工行区块链技术平台“工银玺链”团队核心成员,对密码学、共识算法、以太坊、超级账本等区块链理论及产品有深入研究,具有区块链平台设计、开发及应用的实践经验,获多项发明专利多项。

图书目录

目录
第1章 从这里开始 1
1.1 改革 1
1.2 共识机制 2
1.2.1 记账员的工作 2
1.2.2 审核员的工作 2
1.2.3 权威发布 3
1.3 竞争机制 4
1.3.1 记账与审核串行 4
1.3.2 记账与审核并行 5
1.4 向“去中心化”迈进 6
1.4.1 神奇的“缩放机” 6
1.4.2 隐性投票 6
1.4.3 改弦易辙 8
1.5 防篡改原理 8
1.6 去中心化 10
1.6.1 自动发放奖金 10
1.6.2 改革的“最后一公里” 10
1.7 行为艺术 11
1.8 小结 14
第2章 “请签名并按手印” 16
2.1 密码本 16
说明:带星号*的内容为专业篇
2.2 搅拌机 16
2.2.1 ASCII编码 17
2.2.2 公开算法 17
2.2.3 信息搅拌 18
2.2.4 搅拌16次 18
2.2.5 加密与解密 18
2.3 非对称密码体系 18
2.3.1 快!来不及了 18
2.3.2 RSA三人首功 19
2.3.3 椭圆曲线密码体系 20
2.3.4 加密与解密 20
2.3.5 数字签名 21
2.4 哈希函数Hash 21
2.4.1 消息摘要 21
2.4.2 数字指纹 22
2.4.3 数据块的指针 22
2.4.4 基于Hash的数字签名 23
2.5 小结 24
2.6* 附:闲话Hash 24
2.6.1 此哈希非彼哈希 24
2.6.2 碰撞,别发生 26
2.6.3 碰撞,不会发生 26
2.6.4 妙用Hash 27
第3章 下载那些事 29
3.1 服务器瘫了 29
3.2 计数器废了 30
3.3 “缩放机”原理 30
3.4 网上的“缩放机” 31
3.5* 过滤 31
3.5.1 降低一点儿标准 32
3.5.2 一个算法 33
3.5.3 对算法的优化 33
3.5.4 布隆过滤器 34
3.5.5 布隆过滤器效率优化 35
3.5.6 缺点及应对 36
3.5.7 应用举例 36
3.6 公共账本的副本 37
3.7 小结 38
第4章 物竞天择 39
4.1 运气 39
4.1.1 公平悖论 39
4.1.2 射箭比赛 40
4.2 计算谜题 40
4.2.1 谜题(一) 40
4.2.2 谜题(二) 41
4.2.3 谜题(三) 41
4.3 长枝生存 42
4.3.1 挖矿 43
4.3.2 软分叉 43
4.3.3 剪枝成干 44
4.3.4 不被剪掉 46
4.4 工作量证明 47
4.5 小结 48
第5章 良序社会 50
5.1 社区假设 50
5.2 守规矩的记账员 53
5.2.1 作为网络节点 53
5.2.2 作为审计员 54
5.2.3 作为记账员 54
5.2.4 作为矿工 54
5.3 天下无恶 55
5.3.1 难度优先 55
5.3.2 恶者无利 55
5.4 且慢,且慢 56
5.4.1 “双花” 56
5.4.2 作恶的付款者 57
5.4.3 多次确认 57
5.4.4 何时发货 58
5.4.5 连锁交易 59
5.4.6 “双花”趣事 60
5.5 布道者 60
5.6 小结 61
第6章 蛋糕之诱惑 63
6.1 分蛋糕 63
6.1.1 固定大小的蛋糕 63
6.1.2 “备竞赛” 64
6.1.3 宣传机器 64
6.1.4 偷懒验证与私自挖矿 65
6.2 硬分叉 66
6.2.1 分裂 66
6.2.2 私有网络环境 67
6.2.3 比特币分叉大战 69
6.3 “无限”发币 71
6.3.1 比特币溢出 72
6.3.2 美链溢出 72
6.4 盗币 72
6.4.1 两种“币” 72
6.4.2 分裂 73
6.4.3 攻击 74
6.4.4 分叉之战 75
6.4.5 两难境地 76
6.5 小结 77
6.6* 附:溢出原理 77
6.7* 附:怪函数,隐问题 79
第7章 瘦身,瘦身 81
7.1 分体式区块 81
7.2 梅克尔树 82
7.2.1 梅克尔树 82
7.2.2 梅克尔树的防篡改功能 83
7.2.3 残梅克尔树 84
7.3 区块头 85
7.3.1 区块头模板 85
7.3.2 挖矿 86
7.4 全节点与轻量节点 87
7.4.1 两种验证与两类节点 87
7.4.2 全节点 87
7.4.3 轻量节点 88
7.5 小结 89
第8章 账号与钱包 91
8.1 身份证明 91
8.2 账号太长 92
8.2.1 用Hash函数压缩 92
8.2.2 用大进制表示 92
8.3 地址 93
8.3.1 Base58Check 93
8.3.2 二维码地址 94
8.3.3 要一个漂亮的账号 94
8.4 钱包 95
8.4.1 钱包不存钱 95
8.4.2 查询余额 96
8.4.3 多个私钥与多个钱包 97
8.4.4 私钥及其表示形式 97
8.5 跟踪与隐私 98
8.6 小结 99
8.7* 附:进制转换 100
8.8* 附:密钥树 101
8.8.1 分裂 101
8.8.2 关联 102
8.8.3 公钥树(拓展公钥) 102
8.8.4 加强(拓展私钥) 103
8.8.5 订规范 104
8.8.6 助记词 105
第9章 UTXO交易模型 107
9.1 交易新观念 107
9.1.1 交易成链 107
9.1.2 “产币”交易 109
9.1.3 解锁与上锁 109
9.1.4 IN与OUT 111
9.1.5 脚本 112
9.2* 交易与签名 112
9.2.1 原始交易 112
9.2.2 签名交易 112
9.2.3 合资交易 113
9.2.4 多签交易 114
9.2.5 两种地址 115
9.2.6 交易类型 115
9.2.7 共管账户 116
9.3 无块之链 116
9.3.1 账本的体系结构 116
9.3.2 交易链与区块链的区别 118
9.4 交易验证 118
9.4.1 这笔交易是真的 118
9.4.2 这笔资金未花 119
9.5 交易的跟踪与反跟踪 120
9.5.1 熔旧与铸新 120
9.5.2 隐身人 121
9.6 存下证据 121
9.6.1 中本聪的嘲讽 121
9.6.2 证据在某时点之前 122
9.6.3 证据的精确时间 123
9.7 小结 124
9.8* 附:借助本地数据库 124
9.8.1 区块的高度 124
9.8.2 判断双重支付 125
9.9* 附:交易格式 127
9.9.1 币基交易 127
9.9.2 组合交易 128
9.10* 附:脚本体系 130
第10章 聚与散 132
10.1 核心 132
10.2* 矿池 133
10.2.1 扩展“幸运数” 133
10.2.2 矿池的控制中心 134
10.2.3 算力合并的效果 134
10.3* 交易所 136
10.3.1 关联 136
10.3.2 隔离 138
10.3.3 风险 140
10.4 小结 141
第11章 萤火与闪电 142
11.1 老板与农民工模型 142
11.1.1 保证金 142
11.1.2 链下交易系列 144
11.1.3 预约交易 145
11.1.4 损失风险 146
11.2 预约与撤销 146
11.2.1 绝对时间 146
11.2.2 相对时间 148
11.2.3 阻止与撤销 150
11.3 两赌徒模型 151
11.3.1 问题来了 152
11.3.2 共同基金 152
11.3.3 调整份额交易 152
11.3.4 “萤火虫” 153
11.3.5 开通与关闭通道 155
11.3.6 损失风险 156
11.4 借道 156
11.4.1 购“物” 157
11.4.2 特殊的赌博 157
11.4.3 三赌徒模型 158
11.4.4 一串赌徒模型 159
11.5 小结 161
11.6* 附:预约与撤销(续) 162
11.6.1 RSMC交易及其阻止
交易 162
11.6.2 HTLC交易及其阻止
交易 165
11.6.3 HTLC与RSMC组合 168
11.6.4 组合交易的应用模型 170
第12章 链上机器人 174
12.1 账户及状态 174
12.1.1 账户余额 174
12.1.2 世界状态(一) 175
12.2 智能合约机器人 175
12.2.1 图灵两难 176
12.2.2 “机器人” 176
12.2.3 机器人的小世界 177
12.2.4 世界状态(二) 178
12.2.5 别让机器人累死 179
12.2.6 人类指使机器人 180
12.2.7 对机器人查账 181
12.2.8 制造与安装机器人 182
12.3* 矿工的以太币 183
12.3.1 竞争协议 183
12.3.2 挖矿奖励 184
12.3.3 交易费 184
12.3.4 叔祖先区块 184
12.3.5 “助人奖”与“安抚
奖” 185
12.4 以太坊交易 185
12.4.1 交易发起人 185
12.4.2 交易结构 186
12.5* 区块结构 187
12.5.1 三棵树 187
12.5.2 Storage树 188
12.5.3 区块头 188
12.5.4 区块 189
12.6* 其他特色 190
12.6.1 区块大小 190
12.6.2 抵抗专用芯片 191
12.7 小结 191
12.8* 附:MPT 192
12.8.1 简介 192
12.8.2 先躺着 192
12.8.3 查增删 193
12.8.4 “站”起来 195
12.8.5 防篡改 196
12.9* 附:RLP 198
12.9.1 RLP简介 198
12.9.2 表达单个字符 198
12.9.3 表达短字符串 198
12.9.4 表达长字符串 199
12.9.5 表达短列表 200
12.9.6 表达长列表 201
12.9.7 递归 202
第13章 公链上的“货币”发行 203
13.1 比特币的发行 203
13.1.1 挖矿发行 203
13.1.2 控制总量 203
13.1.3 总量的耗损 205
13.2 利息发行 205
13.3 以太坊项目 206
13.3.1 众筹比特币 206
13.3.2 团队的证明 206
13.3.3 出资者的证明 207
13.4 以太币 208
13.5 以太坊代币 209
13.5.1 代币存在哪儿 209
13.5.2 众筹发行 209
13.5.3 代币的特征 210
13.5.4 多重签名 210
13.6 ICO 211
13.7 链上动物园 212
13.7.1 以太猫 212
13.7.2 非同质代币 212
13.8 小结 213
第14章 联盟“恋”链 215
14.1 联盟链的特点 215
14.1.1 联盟链的建立 215
14.1.2 联盟链的特点 216
14.2 减法 217
14.2.1 不需挖矿 217
14.2.2 不需原生币 217
14.2.3 没有分叉 218
14.2.4 不需要特殊的虚拟机 218
14.2.5 节点很少 218
14.3 加法 219
14.3.1 节点分工 219
14.3.2 多通道与多链 219
14.3.3 成员管理 220
14.3.4 验证策略 220
14.3.5 配置区块 220
14.4* 变化 221
14.4.1 交易 221
14.4.2 区块 222
14.4.3 “树”再没必要 222
14.5 交易过程 223
14.5.1 世界状态 223
14.5.2 “算”与“记”分开 223
14.5.3 找“认可人” 224
14.5.4 交易排序 225
14.5.5 批量记账 226
14.6 智能合约 226
14.6.1 智能合约的特征 226
14.6.2 智能合约接口 227
14.6.3 链码部署 227
14.6.4 链码运行 228
14.7* 超级账本 229
14.7.1 设计理念 230
14.7.2 网络架构 230
14.7.3 证书管理 232
14.7.4 共识算法 232
14.7.5 数据存储 233
14.7.6 创建通道 234
14.7.7 创建区块 235
14.7.8 系统链码及系统链 236
14.7.9 “读”与“写” 237
14.8 小结 237
14.9* 附:交易结构 238
14.10 附:再谈速度 240
14.10.1 造块速度的限制 241
14.10.2 公有链一定是一个
慢系统 242
14.10.3 串行执行的限制 242
14.11 附:再谈防篡改 243
14.11.1 三个阶段的防篡改 243
14.11.2 防篡改与防伪 245
14.12 附:私有链 245
第15章 以太坊初级实践 247
15.1* 以太坊客户端简介 247
15.1.1 客户端的种类 247
15.1.2 Geth客户端简介 247
15.1.3 Ethereum Wallet客户端
简介 248
15.1.4 客户端操作方式 248
15.2* 参与以太坊公链 249
15.2.1 安装Geth客户端 249
15.2.2 安装Ethereum Wallet
客户端 250
15.2.3 创建账户 252
15.2.4 接收以太币 253
15.2.5 转账操作 254
15.2.6 挖矿 255
15.2.7 浏览公链网络状态 256
15.3* 搭建以太坊私有链 257
15.3.1 安装Go语言 258
15.3.2 安装Geth客户端 258
15.3.3 初始化节点 259
15.3.4 启动节点 260
15.3.5 创建账户 261
15.3.6 挖矿 262
15.3.7 转账 263
15.3.8 组建网络 265
15.4 小结 268
第16章 以太坊智能合约原理 269
16.1* 以太坊中的智能合约 269
16.1.1 智能合约生命流程 269
16.1.2 什么是EVM字节码 270
16.1.3 什么是ABI 271
16.2* Solidity语言 273
16.2.1 语法结构 273
16.2.2 地址 275
16.2.3 状态变量和局部变量 277
16.2.4 memory和storage 278
16.2.5 constant、view和
pure 281
16.2.6 payable函数 282
16.2.7 fallback函数 283
16.2.8 可见性 284
16.2.9 内置的单位、变量和
函数 284
16.2.10 事件 286
16.2.11 继承 287
16.2.12 库 288
16.3* EVM 290
16.3.1 EVM结构 290
16.3.2 EVM指令表 291
16.3.3 栈、内存、数据存储 291
16.3.4 输入数据与Gas池 293
16.3.5 执行智能合约 293
16.4* 以太坊DApp 294
16.4.1 以太坊DApp生态 295
16.4.2 以太坊DApp运行
流程 296
16.5 小结 298
第17章 以太坊进阶实践 299
17.1* 开发以太坊智能合约 299
17.1.1 环境准备 299
17.1.2 编写合约 300
17.1.3 编译合约 301
17.1.4 调试合约 303
17.1.5 部署合约 304
17.1.6 调用合约 307
17.2* 开发以太坊DApp 308
17.2.1 要做什么 308
17.2.2 环境准备 310
17.2.3 创建项目 310
17.2.4 初始化数据库 310
17.2.5 编写DAO 311
17.2.6 编写Service 312
17.2.7 编写Controller 312
17.2.8 编写前端页面 312
17.2.9 先运行看看 313
17.2.10 如何改造成DApp 316
17.2.11 增加区块链配置参数 317
17.2.12 生成智能合约Java
Bean 320
17.2.13 改造Service 322
17.2.14 增加调度分配以太币 325
17.2.15 再运行看看 326
17.2.16 还可以怎么优化 330
17.3 小结 331
第18章 共识算法 332
18.1 什么是共识算法 332
18.1.1 状态机复制 332
18.1.2 分布式的问题 333
18.2* Paxos算法 334
18.2.1 算法流程 334
18.2.2 算法要点 337
18.2.3 算法与区块链 338
18.3* RAFT算法 339
18.3.1 节点状态 339
18.3.2 选举领导者 340
18.3.3 区块复制 344
18.4* PBFT算法 347
18.4.1 拜占庭将军问题 347
18.4.2 算法简介 348
18.4.3 一致性协议 350
18.4.4 检查点协议 353
18.4.5 视图切换协议 355
18.5* PoS机制 357
18.5.1 PoW的问题 357
18.5.2 PoS机制简介 358
18.5.3 PoW+PoS机制 359
18.5.4 纯PoS机制 360
18.5.5 新的挑战 362
18.6* DPoS机制 364










18.6.1 DPoS机制简介 364
18.6.2 选举超级节点 365
18.6.3 生成区块 365
18.6.4 稳定运行 366
18.6.5 高吞吐量 367
18.7 各有千秋 367
18.7.1 CAP定律 367
18.7.2 不可能三角 368
18.8 小结 369

本目录推荐