作品简介

本书是一本区块链底层开发入门图书,全书围绕作者开发的区块链模拟器,从原理和程序实现两个方面介绍了区块链开发技术。书中首先通过一个数字货币发行的故事,介绍了区块链的专业术语和工作原理;然后结合区块链模拟器的程序实现过程,介绍了区块链的关键技术细节。毫不夸张地讲,本书是一本手把手带领读者学习区块链开发的图书。

本书共7章。第1章从一个数字货币发行的故事引出了区块链,并围绕该故事介绍了区块链的基本原理和常见概念;第2章对区块链模拟器的基本功能和架构做了具体介绍,并对Python入门知识做了简单介绍;第3章介绍了区块链的加密技术,包括哈希算法、椭圆曲线加密和钱包等,并对热门的格密码进行了初步探讨;第4章介绍了UTXO模型中交易的数据结构,以及交易的创建和独立验证有效性的过程;第5章介绍了区块的数据结构、区块头的组成和意义、梅克尔树的作用和实现、创世区块所包含的内容、区块如何链接成区块链等;第6章以工作量证明(POW)共识算法为例,介绍了区块链达成全网共识的整个过程;第7章从专业技术角度进一步探讨了区块链技术的一些相关话题。

本书内容通俗易懂,讲解犹如庖丁解牛,非常适合区块链开发人员作为自己的第一本区块链技术读物,也适合区块链爱好者作为兴趣读物。另外,本书还适合作为区块链培训班的教材及需要了解区块链知识的相关领导干部的学习指导书。

裴尧尧著。

作品目录

  • 前言
  • 第1章 区块链原理简介
  • 1.1 区块链简要发展史
  • 1.1.1 什么是比特币
  • 1.1.2 比特币与区块链的关系
  • 1.2 什么是中心化
  • 1.2.1 交易
  • 1.2.2 数字货币
  • 1.2.3 复式记账法
  • 1.2.4 未消费交易输出
  • 1.2.5 中心化
  • 1.2.6 区块与区块链
  • 1.2.7 创世区块
  • 1.3 去中心化原理
  • 1.3.1 分布式存储
  • 1.3.2 对等网络
  • 1.3.3 交易池
  • 1.3.4 “挖矿”
  • 1.3.5 创币交易
  • 1.3.6 工作量证明
  • 1.3.7 共识与共识算法
  • 1.3.8 确认
  • 1.3.9 诚实节点和恶意节点
  • 1.3.10 区块链分叉
  • 1.3.11 双重支付
  • 1.3.12 虚拟机
  • 1.3.13 矿机和矿池
  • 1.4 遗留的问题
  • 第2章 区块链模拟器及Python入门
  • 2.1 区块链模拟器GUI简介
  • 2.1.1 为什么写区块链模拟器
  • 2.1.2 区块链模拟器GUI简介
  • 2.2 Python入门
  • 2.2.1 为什么是Python
  • 2.2.2 Python基础知识
  • 2.3 Simchain简介
  • 2.3.1 什么是Simchain
  • 2.3.2 Simchain设计
  • 2.3.3 Simchain使用
  • 2.4 区块链四要素
  • 第3章 区块链中的加密
  • 3.1 为什么需要加密
  • 3.2 如何实现加密
  • 3.2.1 哈希算法
  • 3.2.2 私钥、公钥和地址
  • 3.2.3 实数域上的椭圆曲线
  • 3.2.4 有限域上的椭圆曲线
  • 3.2.5 椭圆曲线加密
  • 3.2.6 钱包
  • 3.3 可能的破解算法
  • 3.3.1 枚举法
  • 3.3.2 BSGS算法
  • 3.3.3 Pollard's rho算法
  • 3.3.4 随机数攻击
  • 3.3.5 如何保护私钥安全
  • 3.4 格密码初探
  • 3.4.1 抗量子计算密码
  • 3.4.2 格基础知识
  • 3.4.3 格问题
  • 3.4.4 最短向量问题
  • 3.4.5 最近向量问题
  • 3.4.6 数字签名
  • 3.4.7 Lyubashevshy数字签名
  • 第4章 交易
  • 4.1 创建交易
  • 4.1.1 交易的格式
  • 4.1.2 交易的数据结构
  • 4.1.3 UTXO与UTXO集
  • 4.1.4 一般交易的创建
  • 4.1.5 创币交易的创建
  • 4.2 广播交易
  • 4.3 验证交易
  • 4.3.1 一般交易的验证
  • 4.3.2 创币交易的验证
  • 4.4 交易传播中的安全
  • 4.4.1 签名明文攻击
  • 4.4.2 创币交易的安全
  • 4.5 可编程的交易
  • 4.5.1 比特币脚本
  • 4.5.2 脚本引擎的工作原理
  • 4.5.3 堆栈机LittleMachine
  • 4.5.4 多重签名
  • 4.6 交易的“一生”
  • 第5章 区块与区块链
  • 5.1 区块
  • 5.1.1 什么是区块
  • 5.1.2 区块的数据结构
  • 5.1.3 区块头
  • 5.1.4 梅克尔树的构建
  • 5.1.5 简易支付验证与SPV节点
  • 5.2 区块链
  • 5.2.1 区块链的构成
  • 5.2.2 创世区块
  • 5.2.3 区块链分类
  • 第6章 去中心化共识
  • 6.1 常见的共识算法
  • 6.1.1 区块链中的共识
  • 6.1.2 工作量证明POW
  • 6.1.3 Raft协议
  • 6.2 创建候选区块
  • 6.2.1 交易选择策略
  • 6.2.2 消失的交易
  • 6.2.3 创建创币交易
  • 6.2.4 创建候选区块
  • 6.3 挖矿、打包、广播区块
  • 6.3.1 “挖矿”
  • 6.3.2 打包候选区块
  • 6.3.3 广播区块
  • 6.4 验证区块
  • 6.5 区块链分叉
  • 6.5.1 偶然分叉
  • 6.5.2 硬分叉和软分叉
  • 6.6 添加到区块链
  • 6.6.1 比特币中的区块添加原则
  • 6.6.2 51%攻击
  • 6.6.3 中的区块添加原则
  • 6.7 区块的“一生”
  • 6.8 知识总结
  • 第7章 杂谈
  • 7.1 关于区块链常见问题的讨论
  • 7.2 关于真假区块链项目的辨别
  • 7.3 关于区块链技术的发展趋势
  • 7.3.1 抗量子密码学
  • 7.3.2 零知识证明
  • 7.3.3 代码漏洞检测
  • 7.4 关于以太坊与智能合约
  • 7.5 关于区块链应用的愿想
展开全部