教育>本科研究生>计算机类
区块链原理与实践

区块链原理与实践"

作者:潘恒,斯雪明
ISBN:9787121419454
定价:¥59.8
字数:560千字
页数:352
出版时间:2021-09
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

本书详细介绍区块链涉及的相关理论、思想和方法。全书共11章,按照区块链3.0的体系架构思想,由底向上逐层介绍数据层、网络层、共识层、激励层、智能合约层、应用层所涉及的核心方法,同时对区块链的安全和比特币、以太坊、超级账本三种典型区块链系统进行了介绍,并辅以相应示例。本书内容知识点覆盖全面,文字通俗易懂,技术介绍深浅有度,应用示例多,可操作性强,可作为高等学校区块链工程与技术、计算机科学与技术、金融科技、商务智能等相关专业的教材,也可作为区块链从业人员和相关企业事业单位相关人员的参考书。

前言

前 言 作为新一代互联网技术,区块链可以解决现有非信任网络环境下的信任问题,继而重构商业关系、生产关系,推动互联网从信息互连到价值互连的升级转变。 人们对区块链(Blockchain)的认知多从比特币开始,甚至有些人至今仍然将区块链与比特币混为一谈。比特币开启了区块链应用的大幕,但是区块链不等同于比特币,比特币仅是区块链在金融方面的第一个也是最成功的应用实例。可以预见,在不远的将来,区块链技术将被应用于各行各业,成为提高人类社会生产力的技术革新力和推动力。 为此,各国政府和企业都异常重视这项新技术。截至2019年年初,全球40%财富500强企业都已经涉足区块链技术的研发和应用。2019年6月18日,Facebook发布了数字货币Libra(天秤币)的白皮书,引发业界震动。我国政府更是特别重视区块链技术,习近平总书记强调要把区块链作为核心技术自主创新的重要突破口,明确主攻方向,加大投入力度,着力攻克一批关键核心技术,加快推动区块链技术和产业创新发展。区块链将成为未来信息领域研发的必备技能,区块链技术学习是非常必要的。 作为一本入门级教材,本书特点如下。 (1)知识点深入全面。本书覆盖了区块链涉及的基本概念,对区块链的最新技术也分散在各章中进行了介绍。 (2)应用示例多,可操作性强。除了介绍基本理论,本书还对比特币、以太坊、超级账本Fabric三种典型区块链系统做了详细介绍,同时辅以大量的代码示例,所有示例均经过实际环境调通并运行测试。 (3)技术介绍深浅有度。作为入门级教材,本书虽然基本涵盖目前区块链的各类技术,但考虑到初学者需要循序渐进,重点仍然在介绍基本概念、方法、操作、实例上;相关新技术及发展方向仅介绍了基本概念和思想,但给出了相关参考资料,供有需求的读者深入研读。 本书将按照区块链3.0的体系架构思想,由底向上逐层详细介绍区块链涉及的各种技术和方法,为读者揭开区块链的神秘面纱。本书各章的内容安排如下: 第1章介绍区块链技术的基本知识点、分类、特点、发展历程、典型区块链系统、技术发展方向及价值作用等,以期读者能够对区块链技术及发展形成初步了解。 第2章介绍区块链中常用的哈希算法、非对称加密算法,并介绍Merkle树及其在区块链中的应用。 第3章介绍区块链网络层技术,包括P2P网络的原理与特点、区块链网络拓扑结构、节点编址方法、资源获取方法等。 第4章阐述分布一致性理论和共识算法的其他理论基础,分析区块链系统中典型的几种共识算法及其技术原理,介绍一些新型区块链共识算法和共识算法发展趋势,最后总结了不同共识算法的适用场景及其优缺点。 第5章介绍区块链激励层的组成部分和重要作用,并分别详细介绍比特币、以太坊和IPFS三种典型公有区块链系统中的发行机制和分配机制。 第6章介绍智能合约的概念、原理、特点和应用,对比特币、以太坊和超级账本中的智能合约进行详细阐述,介绍智能合约的开发、部署和调用方法。 第7章简要介绍区块链技术在金融、实体经济、行业服务等方面的典型应用场景,以及比特币、以太坊、超级账本Fabric开发环境和一般开发流程。 第 8 章分析区块链系统的主要安全目标,详细介绍区块链系统各层中存在的多种安全威胁和攻击方式,介绍为实现区块链系统主要安全目标而采用的各类密码和网络技术。 第9章介绍比特币系统的系统结构、网络构成、共识算法及其运行原理,并分析核心源码Bitcoin Core及其使用方法。 第10章介绍以太坊的体系结构、工作流程与运行原理,介绍以太坊开发环境和智能合约开发语言,并给出以太坊投票智能合约案例和基于以太坊的彩票项目完整实例。 第11章介绍超级账本项目、Fabric技术原理,基于Fabric 1.4版本介绍链码的编写方法及示例,并给出基于Fabric的一个电子合同存证系统项目实例。 本书涉及的环境搭建和详细代码以附录形式给出,所附代码均经过实际调试运行。 本书得到了斯雪明教授的全程指导,在章节编排、讨论并审阅了全书;潘恒老师负责全书的统稿,并撰写第1、7、11章及相关附录;祝卫华老师撰写了第2、10章及相关附录;姚中原老师撰写了第4、5、8章;刘伎昭老师撰写了第3、6章;王文奇老师撰写了第9章。马雪、朱自强、赵海鸿、文家、武志立、钱海洋、张瑶瑶、蔡福港、郭尚坤等研究生搜集了相关素材,实现了示例代码的编写、调试、运行及相关文档的初步编写。 本书所引图片及所引文字尽量标出出处,有些图片来自网络素材无法找到原始发布者,均注明来自网络资料。对参考内容未能标注出处的,敬请相关著作权人及读者谅解并给予反馈,将在后续版本中做出说明和修正。 由于编者认识水平及表达能力所限,书中错漏之处在所难免,还望读者批评指正。 作 者

目录

目 录 第1章 认识区块链 1 1.1 区块链概述 1 1.1.1 分布式账本 1 1.1.2 共识机制 4 1.1.3 非对称密码算法 8 1.1.4 智能合约 10 1.1.5 区块链的典型工作流程 11 1.1.6 其他相关概念 12 1.2 区块链的分类 16 1.3 区块链的特点 18 1.4 区块链技术发展历程 19 1.5 典型区块链系统 21 1.5.1 比特币 21 1.5.2 以太坊 25 1.5.3 超级账本 30 1.6 区块链的技术发展方向 32 1.6.1 可扩展性 32 1.6.2 隐私保护 34 1.6.3 安全问题 34 1.6.4 监管问题 35 1.7 区块链在信息时代的作用 35 1.7.1 区块链的作用 35 1.7.2 区块链的价值 37 本章小结 38 思考与练习 39 参考文献 40 第2章 数据层 41 2.1 哈希函数 41 2.1.1 哈希函数的定义与性质 41 2.1.2 SHA-1算法 42 2.1.3 SHA-2算法 45 2.1.4 RIPEMD-160算法 47 2.1.5 SM3算法 48 2.2 非对称加密算法与数字签名 52 2.2.1 RSA密码体制 53 2.2.2 椭圆曲线密码体制 53 2.2.3 SM2算法 57 2.3 Merkle树 57 本章小结 59 思考与练习 59 参考文献 59 第3章 网络层 60 3.1 P2P网络 60 3.2 区块链网络拓扑结构 61 3.3 区块链网络技术 64 3.3.1 比特币网络技术 64 3.3.2 以太坊网络 65 3.3.3 Fabric网络 69 本章小结 72 思考与练习 72 参考文献 72 第4章 共识层 73 4.1 分布式一致性问题 73 4.2 共识算法概述 76 4.3 CFT类型算法详解 78 4.3.1 Paxos算法 78 4.3.2 Raft算法 81 4.4 BFT类算法 87 4.4.1 PoW算法 87 4.4.2 PoS算法 90 4.4.3 DPoS算法 92 4.4.4 实用拜占庭容错 94 4.5 新型区块链共识算法 100 4.6 目前共识机制存在的问题 106 4.7 共识算法演进 108 本章小结 109 思考与练习 110 参考文献 110 第5章 激励层 111 5.1 激励层概述 111 5.2 激励层发行机制 112 5.2.1 比特币的发行机制 112 5.2.2 以太坊中的发行机制 112 5.2.3 IPFS激励层Filecoin中的发行机制 113 5.3 激励层分配机制 114 5.3.1 比特币中的分配机制 114 5.3.2 以太坊中的分配机制 115 5.3.3 IPFS激励层Filecoin的分配制度 117 本章小结 117 思考与练习 118 参考文献 118 第6章 智能合约层 119 6.1 智能合约概述 119 6.2 智能合约的特点 120 6.3 智能合约的应用 120 6.4 比特币智能合约 121 6.5 以太坊智能合约 124 6.5.1 以太坊账户模型 125 6.5.2 以太坊智能合约的调用 126 6.5.3 智能合约执行的成本 126 6.5.4 以太坊虚拟机 127 6.5.5 智能合约在以太坊中的生命周期 128 6.5.6 以太坊智能合约实例 129 6.6 Hyperledger Fabric智能合约 130 本章小结 135 思考与练习 135 参考文献 135 第7章 应用层 136 7.1 区块链的金融应用 136 7.2 区块链的实体经济应用 137 7.3 区块链的行业服务应用 139 7.4 典型区块链应用开发环境及流程 140 7.4.1 比特币应用开发 140 7.4.2 以太坊应用开发 142 7.4.3 超级账本Fabric 143 本章小结 144 思考与练习 144 参考文献 144 第8章 区块链安全 146 8.1 区块链安全概述 146 8.1.1 区块链面临的安全威胁 146 8.1.2 区块链的安全目标 147 8.2 区块链安全威胁 149 8.2.1 数据层的安全威胁 150 8.2.2 网络层的安全威胁 152 8.2.3 激励层的安全威胁 157 8.2.4 共识层的安全威胁 159 8.2.5 合约层的安全威胁 161 8.2.6 应用层的安全威胁 163 8.3 区块链安全技术 163 8.3.1 区块链数据安全技术 163 8.3.2 区块链身份保护技术 170 8.3.3 区块链共识安全技术 173 8.3.4 区块链智能合约安全技术 175 8.3.5 区块链内容安全技术 176 8.3.6 区块链使用安全技术 178 本章小结 178 思考与练习 178 参考文献 179 第9章 比特币系统 180 9.1 比特币简介 180 9.2 比特币的原理 181 9.2.1 比特币的体系结构 181 9.2.2 比特币网络 184 9.2.3 比特币系统更新 185 9.3 共识机制 186 9.3.1 比特币共识算法 186 9.3.2 比特币挖矿 189 9.4 区块结构和交易信息 192 9.4.1 区块及交易结构分析 192 9.4.2 区块及交易示例 196 9.5 比特币运行 201 9.5.1 交易构建和验证 201 9.5.2 区块构建和传播 203 9.6 比特币钱包 203 9.7 比特币源码解读 204 9.7.1 Bitcoin Core简介 204 9.7.2 Bitcoin Core编译 204 9.7.3 模块分析 209 9.7.4 bitcoind启动过程源码分析 210 9.7.5 区块结构源码分析 213 9.7.6 交易结构源码分析 214 9.7.7 交易过程源码分析 214 9.8 Bitcoin Core操作 215 9.8.1 生成目录和文件说明 216 9.8.2 命令行及配置文件说明 217 9.8.3 bitcoin-qt.exe的使用 219 9.8.4 bitcoind.exe/bitcoin-cli.exe RPC命令 221 9.8.5 bitcoind.exe/bitcoin-cli.exe regtest测试 222 思考与练习 224 参考文献 225 第10章 以太坊系统 226 10.1 以太坊详解 226 10.1.1 以太坊体系结构 226 10.1.2 以太坊工作流程及运行原理 227 10.1.3 以太坊区块结构和链结构 236 10.2 以太坊开发环境 237 10.2.1 以太坊开发工具及框架 238 10.2.2 以太坊开发环境的搭建 242 10.3 以太坊智能合约开发 244 10.3.1 智能合约运行环境 244 10.3.2 智能合约开发语言 248 10.4 应用系统开发实例 262 本章小结 264 思考与练习 265 参考文献 265 第11章 超级账本Fabric 266 11.1 超级账本简介 266 11.1.1 超级账本设计思想 266 11.1.2 超级账本顶级项目 267 11.2 Fabric基础 269 11.2.1 Fabric概况 269 11.2.2 Fabric版本演进及特点 270 11.2.3 Fabric架构 272 11.2.4 Fabric数据存储结构 278 11.2.5 Fabric交易流程 278 11.3 Fabric链码 281 11.3.1 Fabric链码的概念 281 11.3.2 Fabric链码结构 283 11.3.3 区块链开发者模式 284 11.4 Fabric环境搭建 285 11.4.1 开发环境准备 285 11.4.2 Fabric网络搭建 286 11.5 Fabric链码示例解析 286 11.6 基于Fabric的电子合同存证系统开发实例 292 11.6.1 实例需求分析 292 11.6.2 实例区块链网络架构 294 11.6.3 实例详细设计 295 本章小结 304 思考与练习 304 参考文献 305 附录A 安装VMware和Ubuntu 306 附录B 安装Go语言环境 309 附录C 安装Docker 310 附录D Fabric常用工具 312 附录E 拉取Fabric镜像 313 附录F 搭建Fabric网络 316 附录G 以太坊投票智能合约代码示例 324 附录H 以太坊积分商城项目智能合约代码示例 327 附录I 以太坊积分商城项目DApp代码示例 338

作者简介

编辑推荐

作者寄语

电子资料

http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0419450

www.luweidong.cn

下一个