精通区块链编程:加密货币原理、方法和应用开发(原书第2版)

精通区块链编程:加密货币原理、方法和应用开发(原书第2版)

编辑推荐

该书从基础技术层面解读开放区块链编程技术在金融领域的应用原理、实践及趋势。

内容简介

区块链的热度无须赘言。本书主要面向程序员,书中详细介绍了加密货币的原理、使用方法,以及如何开发与之相关的软件。对希望理解比特币及加密货币内在工作机制的非程序员读者们,本书前几章还深入介绍了比特币概念及其原理。

作者简介

作者安德烈亚斯·M.安东波罗斯,著名的技术专家、连续创业者,现在已经是比特币圈子最著名、最受尊敬的人物之一。他还是一个成功的公共演说家,他从2013年开始在公开场合进行比特币相关的演讲,并迅速成为行业内最著名的演说家。迄今为止,他已在美国、巴西、新西兰、捷克等国进行了75场TED式的对话,反响热烈。他还是一位畅销书作家,他出版的该书,还有《货币互联网12》等均长期为亚马逊畅销榜榜首。

章节目录

版权信息

O’Reilly Media,Inc.介绍

本书赞誉

译者序

推荐序

前言

第1章 比特币介绍

1.1 比特币是什么

1.2 比特币历史

1.3 比特币的使用、用户及用户场景

1.4 入门

1.4.1 选择比特币钱包

1.4.2 快速入门

1.4.3 获取比特币

1.4.4 查询比特币当前价格

1.4.5 发送和接收比特币

第2章 比特币的工作原理

2.1 交易、区块、挖矿和区块链

2.1.1 比特币概述

2.1.2 购买一杯咖啡

2.2 比特币交易

2.2.1 交易输入和输出

2.2.2 交易链

2.2.3 找零

2.2.4 常见的交易形式

2.3 交易的构建

2.3.1 获取正确的输入

2.3.2 创建交易输出

2.3.3 将交易加入账簿

2.4 比特币挖矿

2.5 在区块中挖掘交易

2.6 消费交易

第3章 比特币核心客户端:参考实现

3.1 比特币开发环境

3.2 从源码编译比特币核心

3.2.1 选择比特币核心版本

3.2.2 配置比特币核心生成

3.2.3 生成比特币核心可执行文件

3.3 运行比特币核心节点

3.3.1 首次运行比特币核心

3.3.2 配置比特币核心节点

3.4 比特币核心客户端应用程序编程接口(API)

3.4.1 获得比特币核心客户端状态信息

3.4.2 探究和解码交易

3.4.3 探究区块

3.4.4 使用比特币核心的编程接口

3.5 其他替代客户端、库和工具包

3.5.1 C/C++类

3.5.2 JavaScript类

3.5.3 Java类

3.5.4 Python类

3.5.5 Ruby类

3.5.6 Go类

3.5.7 Rust类

3.5.8 C#类

3.5.9 Objective-C类

第4章 密钥和地址

4.1 简介

4.1.1 公钥密码学和加密货币

4.1.2 私钥和公钥

4.1.3 私钥

4.1.4 公钥

4.1.5 椭圆曲线密码学

4.1.6 创建公钥

4.2 比特币地址

4.2.1 Base58和Base58Check编码

4.2.2 密钥的格式

4.3 用Python实现密钥和比特币地址

4.4 高级密钥和地址

4.4.1 加密私钥(BIP-38)

4.4.2 P2SH和多重签名地址

4.4.3 靓号地址

4.4.4 纸钱包

第5章 钱包

5.1 钱包技术概述

5.1.1 非确定性(随机)钱包

5.1.2 确定性(种子)钱包

5.1.3 分层确定性钱包(BIP-32/BIP-44)

5.1.4 种子和助记词(BIP-39)

5.1.5 钱包最佳实践

5.1.6 使用比特币钱包

5.2 钱包技术细节

5.2.1 助记词编码标准(BIP-39)

5.2.2 从种子中创造HD钱包

5.2.3 在网店中使用扩展公钥

第6章 交易

6.1 简介

6.2 交易细节

6.3 交易的输出和输入

6.3.1 交易输出

6.3.2 交易输入

6.3.3 交易费

6.3.4 把交易费加到交易中

6.4 交易脚本和脚本语言

6.4.1 非图灵完备性

6.4.2 无状态验证

6.4.3 脚本构建(锁定与解锁)

6.4.4 P2PKH

6.5 数字签名(ECDSA)

6.5.1 数字签名如何工作

6.5.2 验证签名

6.5.3 签名散列类型(SIGHASH)

6.5.4 ECDSA数学

6.5.5 随机性在签名中的重要性

6.6 比特币地址、余额和其他摘要

第7章 高级交易及脚本

7.1 简介

7.2 多重签名

7.3 P2SH

7.3.1 P2SH地址

7.3.2 P2SH的优点

7.3.3 赎回脚本和标准确认

7.4 数据记录输出(RETURN操作符)

7.5 时间锁

7.5.1 交易锁定时间

7.5.2 检查锁定时间验证

7.5.3 相对时间锁

7.5.4 带nSequence的相对时间锁

7.5.5 带CSV的相对时间锁

7.5.6 过去中位时间

7.5.7 针对费用狙击的时间锁

7.6 具有条件控制的脚本(条件语句)

7.6.1 带有VERIFY操作码的条件语句

7.6.2 在脚本中使用流控制

7.7 复杂的脚本示例

第8章 比特币网络

8.1 点对点网络架构

8.2 节点类型和角色

8.3 扩展比特币网络

8.4 比特币中继网络

8.5 网络发现

8.6 全节点

8.7 交换“库存清单”

8.8 简易支付验证(SPV)节点

8.9 Bloom过滤器

8.10 SPV节点如何使用Bloom过滤器

8.11 SPV节点和隐私

8.12 加密与认证连接

8.12.1 Tor传输

8.12.2 P2P认证和加密

8.13 交易池

第9章 区块链

9.1 简介

9.2 区块结构

9.3 区块头

9.4 区块标识符:区块头散列值和区块高度

9.5 创世区块

9.6 链接区块链中的区块

9.7 默克尔树

9.8 默克尔树和简单支付验证

9.9 比特币的测试链

9.9.1 testnet ——比特币的试验场

9.9.2 segnet ——隔离见证测试网

9.9.3 regtest ——本地区块链

9.10 使用测试区块链进行开发

第10章 挖矿和共识

10.1 简介

10.2 去中心化共识

10.3 交易的独立校验

10.4 挖矿节点

10.5 打包交易至区块

10.5.1 创币交易

10.5.2 创币奖励与矿工费

10.5.3 创币交易的结构

10.5.4 创币交易数据

10.6 构造区块头

10.7 挖掘区块

10.7.1 工作量证明算法

10.7.2 难度目标值表示

10.7.3 重定目标实现调整难度

10.8 成功挖出区块

10.9 验证新区块

10.10 区块链的组装与选择

10.11 挖矿和算力竞争

10.11.1 随机数升位方案

10.11.2 矿池

10.12 共识攻击

10.13 改变共识规则

10.13.1 硬分叉

10.13.2 硬分叉:软件、网络、挖矿和链

10.13.3 分离矿工和难度

10.13.4 有争议的硬分叉

10.13.5 软分叉

10.13.6 对软分叉的批评

10.14 使用区块版本发出软分叉信令

10.14.1 BIP-34信令和激活

10.14.2 BIP-9信令和激活

10.15 共识软件开发

第11章 比特币的安全

11.1 安全原则

11.1.1 安全地开发比特币系统

11.1.2 信任根

11.2 用户安全最佳实践

11.2.1 比特币物理存储

11.2.2 硬件钱包

11.2.3 平衡风险

11.2.4 分散风险

11.2.5 多重签名和治理

11.2.6 生存能力

11.3 结论

第12章 比特币应用

12.1 简介

12.2 基础模块(要素)

12.3 源于基础模块的应用

12.4 染色币

12.4.1 使用染色币

12.4.2 发行染色币

12.4.3 染色币交易

12.5 合约币

12.6 支付通道和状态通道

12.6.1 状态通道基本概念和术语

12.6.2 简单支付通道示例

12.6.3 制造无须信任的通道

12.6.4 非对称可撤销承诺

12.6.5 散列时间锁合约

12.7 路由支付通道(闪电网络)

12.7.1 闪电网络示例

12.7.2 闪电网络传输和路由

12.7.3 闪电网络优势

12.8 结论

附录A 比特币白皮书

附录B 交易脚本语言操作符、常量和符号

附录C 比特币改进建议

附录D 隔离见证

附录E Bitcore

附录F pycoin库、实用秘钥及交易程序

附录G 比特币浏览器命令

作者介绍

封面介绍

精通区块链编程:加密货币原理、方法和应用开发(原书第2版)是2019年由机械工业出版社华章分社出版,作者安德烈亚斯·M.安东波罗斯。

得书感谢您对《精通区块链编程:加密货币原理、方法和应用开发(原书第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
SpringBoot+SpringCloud微服务开发实战 电子书

由浅入深,快速进阶,从理论到实战掌握Spring微服务开发核心功能和特性。
Spring Cloud微服务和分布式系统实践 电子书

以微服务与分布式开发结合的独特视角展现来自一线开发者的实战经验总结。
C++ 开发从入门到精通 电子书

本书的特色是实现了入门知识、实例演示、范例演练、技术解惑、综合实战5大部分内容的融合,让读者看得懂、用得上、学得会。一本书的容量,讲解了入门类、范例类和项目实战类三类图书的内容...
Python编程从入门到精通 电子书

带你由浅入深地详细了解Python语言开发技术。
Unity3D脚本编程与游戏开发 电子书

精选丰富实践案例,精讲游戏开发技术,总结一线游戏开发经验。
Python少儿趣味编程 电子书

适读人群:任何想要学习Python或初次接触编程的人;Python语言的初学者、计算机专业的学生。尤其适合信息技术课教师或培训机构的老师以及青少年读者(初高中学生)阅读。《Py...