书籍详情

区块链编程

区块链编程

作者:吉米·宋

出版社:机械工业出版社

出版时间:2020-05-01

ISBN:9787111652038

定价:¥99.00

购买这本书可以去
内容简介
  本书是一本区块链技术入门指南,内容涵盖密码学数学基础(包括有限域、椭圆曲线、椭圆曲线密码学)、序列化工具、交易数据的结构与传输,以及数字签名的构造与验证等。通过本书,读者将学习如何使用这种流行的加密货币及其区块链支付系统背后的基础知识,包括数学、密码学、区块、网络等。
作者简介
  Jimmy Song 是一位拥有20多年经验的开发人员,其中有5年的时间从事比特币的相关工作。 他是 bitcointechtalk.com 的编辑,也为杂志 Bitcoin Magazine撰稿,同时也是 Blockchain Capital 的合伙人以及得克萨斯州大学比特币编程课程的授课教师。 Jimmy 是Bitcoin Core(比特币核心)以及其他比特币相关项目的开发贡献者。 他也曾是比特币钱包Armory的技术副总裁。
目录
前言1
第1章 有限域11
学习更高等的数学11
有限域的定义12
定义有限集合12
使用Python构建有限域13
练习114
模运算14
Python的模运算16
有限域的加法和减法16
练习218
使用Python编写有限域的加法和减法18
练习319
有限域的乘法和指数运算19
练习420
练习520
使用Python编写乘法20
练习620
使用Python编写指数运算21
练习721
有限域的除法21
练习823
练习923
重新定义指数运算24
总结25
第2章 椭圆曲线26
定义26
使用Python编写椭圆曲线31
练习132
练习232
点的加法32
点加法的性质35
实现点加法37
练习338
x1≠x2时的点加法38
练习440
实现x1≠x2时的点加法40
练习540
P1 = P2时的点加法40
练习642
实现P1 = P2时的点加法42
练习742
实现另一个特例42
总结43
第3章 椭圆曲线密码学44
实数域上的椭圆曲线44
有限域上的椭圆曲线45
练习146
实现有限域上的椭圆曲线46
有限域上的点加法48
实现有限域上的点加法49
练习249
练习349
椭圆曲线的标量乘法49
练习451
再议标量乘法51
数学上的群52
恒等元53
封闭性53
可逆性54
交换律54
结合律55
练习556
实现标量乘法56
定义比特币的曲线58
使用secp256k159
公钥密码学61
签名和验证61
雕刻靶坐标62
验证的细节64
验证签名65
练习666
编程实现签名验证66
签名的细节67
创造签名67
练习768
编程实现消息签名68
总结70
第4章 序列化72
未压缩的SEC格式72
练习173
压缩的SEC格式73
练习277
DER签名77
练习379
Base5879
转录你的公钥79
练习481
地址格式81
练习582
WIF格式82
练习683
再议大端序和小端序83
练习783
练习883
练习984
总结84
第5章 交易85
交易的组成85
版本号87
练习188
输入88
解析脚本92
练习292
输出93
练习394
时间锁94
练习495
练习595
实现交易的序列化96
交易手续费96
计算交易手续费98
练习698
总结98
第6章 Script99
Script机制99
Script如何运作100
几个操作符的例子101
实现操作符101
练习1102
解析脚本字段102
实现一个Script解析工具和序列化工具103
合并脚本字段105
实现合并命令集106
标准脚本106
p2pk107
实现脚本计算110
栈元素的本质112
练习2113
p2pk的缺陷113
使用p2pkh修复问题114
p2pkh114
脚本可以被任意构建118
练习3120
脚本的使用121
练习4121
SHA-1 Pin躠ta122
总结122
第7章 交易的创建与验证123
验证交易123
校验交易输入是否可用123
校验交易输入的总和与交易输出的总和124
校验签名125
练习1129
练习2129
校验交易的全部内容129
创建交易129
构建交易130
制作交易132
签名交易133
练习3134
在测试链上创建你自己的交易134
练习4135
练习5135
总结135
第8章 支付到脚本哈希交易136
裸多签136
实现OP_CHECKMULTISIG140
练习1140
裸多签的问题141
支付到脚本哈希141
实现p2sh147
更复杂的脚本148
地址148
练习2149
练习3149
p2sh签名验证149
练习4152
练习5152
总结152
第9章 区块153
创块交易153
练习1154
签名脚本154
BIP0034155
练习2156
区块头156
练习3157
练习4157
练习5157
版本号157
练习6158
练习7159
练习8159
父区块159
默克尔根159
时间戳159
工作量160
序号160
工作量证明160
矿工如何生成新的哈希161
计算目标161
练习9162
计算难度162
练习10163
校验工作量证明163
练习11163
计算难度调整163
练习12165
练习13165
总结165
第10章 比特币网络通信166
网络消息166
练习1168
练习2168
练习3168
解析payload168
练习4169
网络握手170
连接到比特币网络170
练习5172
获取区块头信息173
练习6174
区块头响应174
总结176
第11章 简单支付验证177
动机177
默克尔树178
默克尔树的父哈希179
练习1180
默克尔父节点层数180
练习2181
默克尔根181
练习3182
区块中的默克尔根182
练习4183
默克尔树的使用183
默克尔块184
默克尔树结构186
练习5187
实现默克尔树187
默克尔块命令192
练习6193
标记位和哈希的使用193
练习7197
总结197
第12章 布隆过滤器198
什么是布隆过滤器198
练习1200
布隆过滤器进阶200
BIP0037布隆过滤器201
练习2203
练习3203
载入一个布隆过滤器203
练习4204
获取默克尔块204
练习5205
获取相关交易205
练习6206
总结206
第13章 隔离见证207
支付到见证公钥哈希207
交易的延展性207
修复延展性问题208
p2wpkh交易209
p2sh-p2wpkh212
实现p2wpkh和p2sh-p2wpkh交易216
支付到见证脚本哈希220
p2sh-p2wsh223
实现p2wsh和p2sh-p2wsh交易228
其他方面的改善230
总结230
第14章 高级主题和进阶231
推荐的学习主题231
钱包231
支付通道和闪电网络232
贡献代码232
推荐的项目233
测试链钱包233
区块链浏览器233
网上商店233
工具库234
寻找工作234
总结234
附录 练习答案235
猜您喜欢

读书导航