计算机
类型
可以朗读
语音朗读
245千字
字数
2020-12-01
发行日期
展开全部
主编推荐语
区块链科普与实战技能,普及知识及必要理论,操作实践与应用开发。
内容简介
本书以区块链科普内容为主,同时兼顾专业级别的实战技能。科普级别的内容旨在以妙趣横生的手法向公众普及区块链知识,包括公共账本的概念及记账机制、数据块的“指纹”与“指针”、解答谜题证明工作量、区块树被剪枝成树干(链)、公有链的社会条件、分蛋糕的“军备竞赛”、货币发行、账户与钱包、矿池与交易所、以太坊的机器人造“币”(Token)、联盟链的“减”与“加”,等等。专业级别的内容旨在为区块链技术从业者提供必要的理论知识、操作实践和应用开发实例,包括密码学应用、共识算法、比特币闪电网络、以太坊工作原理、以太坊组网实践、Solidity语言、智能合约开发、以太坊DApp,以及如何将传统的数据库应用改造成区块链应用,等等。
目录
- 封面
- 版权信息
- 内容简介
- 献给有缘翻开此书的朋友
- 序:以书为链
- 第1章 从这里开始
- 1.1 改革
- 1.2 共识机制
- 1.2.1 记账员的工作
- 1.2.2 审核员的工作
- 1.2.3 权威发布
- 1.3 竞争机制
- 1.3.1 记账与审核串行
- 1.3.2 记账与审核并行
- 1.4 向“去中心化”迈进
- 1.4.1 神奇的“缩放机”
- 1.4.2 隐性投票
- 1.4.3 改弦易辙
- 1.5 防篡改原理
- 1.6 去中心化
- 1.6.1 自动发放奖金
- 1.6.2 改革的“最后一公里”
- 1.7 行为艺术
- 1.8 小结
- 第2章 “请签名并按手印”
- 2.1 密码本
- 2.2 搅拌机
- 2.2.1 ASCII编码
- 2.2.2 公开算法
- 2.2.3 信息搅拌
- 2.2.4 搅拌16次
- 2.2.5 加密与解密
- 2.3 非对称密码体系
- 2.3.1 快!来不及了
- 2.3.2 RSA三人首功
- 2.3.3 椭圆曲线密码体系
- 2.3.4 加密与解密
- 2.3.5 数字签名
- 2.4 哈希函数Hash
- 2.4.1 消息摘要
- 2.4.2 数字指纹
- 2.4.3 数据块的指针
- 2.4.4 基于Hash的数字签名
- 2.5 小结
- 2.6* 附:闲话Hash
- 2.6.1 此哈希非彼哈希
- 2.6.2 碰撞,别发生
- 2.6.3 碰撞,不会发生
- 2.6.4 妙用Hash
- 第3章 下载那些事
- 3.1 服务器瘫了
- 3.2 计数器废了
- 3.3 “缩放机”原理
- 3.4 网上的“缩放机”
- 3.5* 过滤
- 3.5.1 降低一点儿标准
- 3.5.2 一个算法
- 3.5.3 对算法的优化
- 3.5.4 布隆过滤器
- 3.5.5 布隆过滤器效率优化
- 3.5.6 缺点及应对
- 3.5.7 应用举例
- 3.6 公共账本的副本
- 3.7 小结
- 第4章 物竞天择
- 4.1 运气
- 4.1.1 公平悖论
- 4.1.2 射箭比赛
- 4.2 计算谜题
- 4.2.1 谜题(一)
- 4.2.2 谜题(二)
- 4.2.3 谜题(三)
- 4.3 长枝生存
- 4.3.1 挖矿
- 4.3.2 软分叉
- 4.3.3 剪枝成干
- 4.3.4 不被剪掉
- 4.4 工作量证明
- 4.5 小结
- 第5章 良序社会
- 5.1 社区假设
- 5.2 守规矩的记账员
- 5.2.1 作为网络节点
- 5.2.2 作为审计员
- 5.2.3 作为记账员
- 5.2.4 作为矿工
- 5.3 天下无恶
- 5.3.1 难度优先
- 5.3.2 恶者无利
- 5.4 且慢,且慢
- 5.4.1 “双花”
- 5.4.2 作恶的付款者
- 5.4.3 多次确认
- 5.4.4 何时发货
- 5.4.5 连锁交易
- 5.4.6 “双花”趣事
- 5.5 布道者
- 5.6 小结
- 第6章 蛋糕之诱惑
- 6.1 分蛋糕
- 6.1.1 固定大小的蛋糕
- 6.1.2 “军备竞赛”
- 6.1.3 宣传机器
- 6.1.4 偷懒验证与私自挖矿
- 6.2 硬分叉
- 6.2.1 分裂
- 6.2.2 私有网络环境
- 6.2.3 比特币分叉大战
- 6.3 “无限”发币
- 6.3.1 比特币溢出
- 6.3.2 美链溢出
- 6.4 盗币
- 6.4.1 两种“币”
- 6.4.2 分裂
- 6.4.3 攻击
- 6.4.4 分叉之战
- 6.4.5 两难境地
- 6.5 小结
- 6.6* 附:溢出原理
- 6.7* 附:怪函数,隐问题
- 第7章 瘦身,瘦身
- 7.1 分体式区块
- 7.2 梅克尔树
- 7.2.1 梅克尔树
- 7.2.2 梅克尔树的防篡改功能
- 7.2.3 残梅克尔树
- 7.3 区块头
- 7.3.1 区块头模板
- 7.3.2 挖矿
- 7.4 全节点与轻量节点
- 7.4.1 两种验证与两类节点
- 7.4.2 全节点
- 7.4.3 轻量节点
- 7.5 小结
- 第8章 账号与钱包
- 8.1 身份证明
- 8.2 账号太长
- 8.2.1 用Hash函数压缩
- 8.2.2 用大进制表示
- 8.3 地址
- 8.3.1 Base58Check
- 8.3.2 二维码地址
- 8.3.3 要一个漂亮的账号
- 8.4 钱包
- 8.4.1 钱包不存钱
- 8.4.2 查询余额
- 8.4.3 多个私钥与多个钱包
- 8.4.4 私钥及其表示形式
- 8.5 跟踪与隐私
- 8.6 小结
- 8.7* 附:进制转换
- 8.8* 附:密钥树
- 8.8.1 分裂
- 8.8.2 关联
- 8.8.3 公钥树(拓展公钥)
- 8.8.4 加强(拓展私钥)
- 8.8.5 订规范
- 8.8.6 助记词
- 第9章 UTXO交易模型
- 9.1 交易新观念
- 9.1.1 交易成链
- 9.1.2 “产币”交易
- 9.1.3 解锁与上锁
- 9.1.4 IN与OUT
- 9.1.5 脚本
- 9.2* 交易与签名
- 9.2.1 原始交易
- 9.2.2 签名交易
- 9.2.3 合资交易
- 9.2.4 多签交易
- 9.2.5 两种地址
- 9.2.6 交易类型
- 9.2.7 共管账户
- 9.3 无块之链
- 9.3.1 账本的体系结构
- 9.3.2 交易链与区块链的区别
- 9.4 交易验证
- 9.4.1 这笔交易是真的
- 9.4.2 这笔资金未花
- 9.5 交易的跟踪与反跟踪
- 9.5.1 熔旧与铸新
- 9.5.2 隐身人
- 9.6 存下证据
- 9.6.1 中本聪的嘲讽
- 9.6.2 证据在某时点之前
- 9.6.3 证据的精确时间
- 9.7 小结
- 9.8* 附:借助本地数据库
- 9.8.1 区块的高度
- 9.8.2 判断双重支付
- 9.9* 附:交易格式
- 9.9.1 币基交易
- 9.9.2 组合交易
- 9.10* 附:脚本体系
- 第10章 聚与散
- 10.1 核心
- 10.2* 矿池
- 10.2.1 扩展“幸运数”
- 10.2.2 矿池的控制中心
- 10.2.3 算力合并的效果
- 10.3* 交易所
- 10.3.1 关联
- 10.3.2 隔离
- 10.3.3 风险
- 10.4 小结
- 第11章 萤火与闪电
- 11.1 老板与农民工模型
- 11.1.1 保证金
- 11.1.2 链下交易系列
- 11.1.3 预约交易
- 11.1.4 损失风险
- 11.2 预约与撤销
- 11.2.1 绝对时间
- 11.2.2 相对时间
- 11.2.3 阻止与撤销
- 11.3 两赌徒模型
- 11.3.1 问题来了
- 11.3.2 共同基金
- 11.3.3 调整份额交易
- 11.3.4 “萤火虫”
- 11.3.5 开通与关闭通道
- 11.3.6 损失风险
- 11.4 借道
- 11.4.1 购“物”
- 11.4.2 特殊的赌博
- 11.4.3 三赌徒模型
- 11.4.4 一串赌徒模型
- 11.5 小结
- 11.6* 附:预约与撤销(续)
- 11.6.1 RSMC交易及其阻止交易
- 11.6.2 HTLC交易及其阻止交易
- 11.6.3 HTLC与RSMC组合
- 11.6.4 组合交易的应用模型
- 第12章 链上机器人
- 12.1 账户及状态
- 12.1.1 账户余额
- 12.1.2 世界状态(一)
- 12.2 智能合约机器人
- 12.2.1 图灵两难
- 12.2.2 “机器人”
- 12.2.3 机器人的小世界
- 12.2.4 世界状态(二)
- 12.2.5 别让机器人累死
- 12.2.6 人类指使机器人
- 12.2.7 对机器人查账
- 12.2.8 制造与安装机器人
- 12.3* 矿工的以太币
- 12.3.1 竞争协议
- 12.3.2 挖矿奖励
- 12.3.3 交易费
- 12.3.4 叔祖先区块
- 12.3.5 “助人奖”与“安抚奖”
- 12.4 以太坊交易
- 12.4.1 交易发起人
- 12.4.2 交易结构
- 12.5* 区块结构
- 12.5.1 三棵树
- 12.5.2 Storage树
- 12.5.3 区块头
- 12.5.4 区块
- 12.6* 其他特色
- 12.6.1 区块大小
- 12.6.2 抵抗专用芯片
- 12.7 小结
- 12.8* 附:MPT
- 12.8.1 简介
- 12.8.2 先躺着
- 12.8.3 查增删
- 12.8.4 “站”起来
- 12.8.5 防篡改
- 12.9* 附:RLP
- 12.9.1 RLP简介
- 12.9.2 表达单个字符
- 12.9.3 表达短字符串
- 12.9.4 表达长字符串
- 12.9.5 表达短列表
- 12.9.6 表达长列表
- 12.9.7 递归
- 第13章 公链上的“货币”发行
- 13.1 比特币的发行
- 13.1.1 挖矿发行
- 13.1.2 控制总量
- 13.1.3 总量的耗损
- 13.2 利息发行
- 13.3 以太坊项目
- 13.3.1 众筹比特币
- 13.3.2 团队的证明
- 13.3.3 出资者的证明
- 13.4 以太币
- 13.5 以太坊代币
- 13.5.1 代币存在哪儿
- 13.5.2 众筹发行
- 13.5.3 代币的特征
- 13.5.4 多重签名
- 13.6 ICO
- 13.7 链上动物园
- 13.7.1 以太猫
- 13.7.2 非同质代币
- 13.8 小结
- 第14章 联盟“恋”链
- 14.1 联盟链的特点
- 14.1.1 联盟链的建立
- 14.1.2 联盟链的特点
- 14.2 减法
- 14.2.1 不需挖矿
- 14.2.2 不需原生币
- 14.2.3 没有分叉
- 14.2.4 不需要特殊的虚拟机
- 14.2.5 节点很少
- 14.3 加法
- 14.3.1 节点分工
- 14.3.2 多通道与多链
- 14.3.3 成员管理
- 14.3.4 验证策略
- 14.3.5 配置区块
- 14.4* 变化
- 14.4.1 交易
- 14.4.2 区块
- 14.4.3 “树”再没必要
- 14.5 交易过程
- 14.5.1 世界状态
- 14.5.2 “算”与“记”分开
- 14.5.3 找“认可人”
- 14.5.4 交易排序
- 14.5.5 批量记账
- 14.6 智能合约
- 14.6.1 智能合约的特征
- 14.6.2 智能合约接口
- 14.6.3 链码部署
- 14.6.4 链码运行
- 14.7* 超级账本
- 14.7.1 设计理念
- 14.7.2 网络架构
- 14.7.3 证书管理
- 14.7.4 共识算法
- 14.7.5 数据存储
- 14.7.6 创建通道
- 14.7.7 创建区块
- 14.7.8 系统链码及系统链
- 14.7.9 “读”与“写”
- 14.8 小结
- 14.9* 附:交易结构
- 14.10 附:再谈速度
- 14.10.1 造块速度的限制
- 14.10.2 公有链一定是一个慢系统
- 14.10.3 串行执行的限制
- 14.11 附:再谈防篡改
- 14.11.1 三个阶段的防篡改
- 14.11.2 防篡改与防伪
- 14.12 附:私有链
- 第15章 以太坊初级实践
- 15.1* 以太坊客户端简介
- 15.1.1 客户端的种类
- 15.1.2 Geth客户端简介
- 15.1.3 Ethereum Wallet客户端简介
- 15.1.4 客户端操作方式
- 15.2* 参与以太坊公链
- 15.2.1 安装Geth客户端
- 15.2.2 安装Ethereum Wallet客户端
- 15.2.3 创建账户
- 15.2.4 接收以太币
- 15.2.5 转账操作
- 15.2.6 挖矿
- 15.2.7 浏览公链网络状态
- 15.3* 搭建以太坊私有链
- 15.3.1 安装Go语言
- 15.3.2 安装Geth客户端
- 15.3.3 初始化节点
- 15.3.4 启动节点
- 15.3.5 创建账户
- 15.3.6 挖矿
- 15.3.7 转账
- 15.3.8 组建网络
- 15.4 小结
- 第16章 以太坊智能合约原理
- 16.1* 以太坊中的智能合约
- 16.1.1 智能合约生命流程
- 16.1.2 什么是EVM字节码
- 16.1.3 什么是ABI
- 16.2* Solidity语言
- 16.2.1 语法结构
- 16.2.2 地址
- 16.2.3 状态变量和局部变量
- 16.2.4 memory和storage
- 16.2.5 constant、view和pure
- 16.2.6 payable函数
- 16.2.7 fallback函数
- 16.2.8 可见性
- 16.2.9 内置的单位、变量和函数
- 16.2.10 事件
- 16.2.11 继承
- 16.2.12 库
- 16.3* EVM
- 16.3.1 EVM结构
- 16.3.2 EVM指令表
- 16.3.3 栈、内存、数据存储
- 16.3.4 输入数据与Gas池
- 16.3.5 执行智能合约
- 16.4* 以太坊DApp
- 16.4.1 以太坊DApp生态
- 16.4.2 以太坊DApp运行流程
- 16.5 小结
- 第17章 以太坊进阶实践
- 17.1* 开发以太坊智能合约
- 17.1.1 环境准备
- 17.1.2 编写合约
- 17.1.3 编译合约
- 17.1.4 调试合约
- 17.1.5 部署合约
- 17.1.6 调用合约
- 17.2* 开发以太坊DApp
- 17.2.1 要做什么
- 17.2.2 环境准备
- 17.2.3 创建项目
- 17.2.4 初始化数据库
- 17.2.5 编写DAO
- 17.2.6 编写Service
- 17.2.7 编写Controller
- 17.2.8 编写前端页面
- 17.2.9 先运行看看
- 17.2.10 如何改造成DApp
- 17.2.11 增加区块链配置参数
- 17.2.12 生成智能合约Java Bean
- 17.2.13 改造Service
- 17.2.14 增加调度分配以太币
- 17.2.15 再运行看看
- 17.2.16 还可以怎么优化
- 17.3 小结
- 第18章 共识算法
- 18.1 什么是共识算法
- 18.1.1 状态机复制
- 18.1.2 分布式的问题
- 18.2* Paxos算法
- 18.2.1 算法流程
- 18.2.2 算法要点
- 18.2.3 算法与区块链
- 18.3* RAFT算法
- 18.3.1 节点状态
- 18.3.2 选举领导者
- 18.3.3 区块复制
- 18.4* PBFT算法
- 18.4.1 拜占庭将军问题
- 18.4.2 算法简介
- 18.4.3 一致性协议
- 18.4.4 检查点协议
- 18.4.5 视图切换协议
- 18.5* PoS机制
- 18.5.1 PoW的问题
- 18.5.2 PoS机制简介
- 18.5.3 PoW+PoS机制
- 18.5.4 纯PoS机制
- 18.5.5 新的挑战
- 18.6* DPoS机制
- 18.6.1 DPoS机制简介
- 18.6.2 选举超级节点
- 18.6.3 生成区块
- 18.6.4 稳定运行
- 18.6.5 高吞吐量
- 18.7 各有千秋
- 18.7.1 CAP定律
- 18.7.2 不可能三角
- 18.8 小结
- 封底
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。