区块链编程
Jimmy Song
侯亮, 潘凯阳 译
出版时间:2020年05月
页数:296
“本书不仅教给你区块链的 运行机制,还让你直观地感受到这项技术的优雅与美丽。”
——刘宇昆
星云、雨果和世界奇幻奖的获得者。他关于区块链的科幻故事Byzantine Empathy(《拜占庭移情》)最初由MIT出版社出版。
本书从软件工程的角度来剖析比特币的原理及结构,以编程的方式帮助你深入理解区块链技术。作者向Python程序员和开发人员介绍了如何从头开始编写比特币库。在本书中,你将学习如何使用这种流行的加密货币及其区块链支付系统背后的基础知识,包括数学、密码学、区块、网络和交易。
学完本书,你将通过编写比特币库所需的所有组件来了解这种加密货币的幕后工作方式,并将了解如何创建交易、从点对点网络中获取所需的数据以及通过比特币网络协议发送交易。无论你是为公司探索区块链应用还是在考虑新的职业道路,这本实用的书都可以帮助你入门。
● 解析、验证和创建比特币交易。
● 学习比特币背后的智能合约语言Script。
● 在每一章中进行练习,从零开始构建比特币库。
● 了解工作量证明如何保护区块链。
● 使用Python 3编写比特币。
● 了解简单支付验证(SPV)和轻钱包的工作机制。
● 学习使用公钥加密和加密原语机制。
  1. 前言
  2. 第1章 有限域
  3. 学习更高等的数学
  4. 有限域的定义
  5. 定义有限集合
  6. 使用Python构建有限域
  7. 练习1
  8. 模运算
  9. Python的模运算
  10. 有限域的加法和减法
  11. 练习2
  12. 使用Python编写有限域的加法和减法
  13. 练习3
  14. 有限域的乘法和指数运算
  15. 练习4
  16. 练习5
  17. 使用Python编写乘法
  18. 练习6
  19. 使用Python编写指数运算
  20. 练习7
  21. 有限域的除法
  22. 练习8
  23. 练习9
  24. 重新定义指数运算
  25. 总结
  26. 第2章 椭圆曲线
  27. 定义
  28. 使用Python编写椭圆曲线
  29. 练习1
  30. 练习2
  31. 点的加法
  32. 点加法的性质
  33. 实现点加法
  34. 练习3
  35. x1≠x2时的点加法
  36. 练习4
  37. 实现x1≠x2时的点加法
  38. 练习5
  39. P1 = P2时的点加法
  40. 练习6
  41. 实现P1 = P2时的点加法
  42. 练习7
  43. 实现另一个特例
  44. 总结
  45. 第3章 椭圆曲线密码学
  46. 实数域上的椭圆曲线
  47. 有限域上的椭圆曲线
  48. 练习1
  49. 实现有限域上的椭圆曲线
  50. 有限域上的点加法
  51. 实现有限域上的点加法
  52. 练习2
  53. 练习3
  54. 椭圆曲线的标量乘法
  55. 练习4
  56. 再议标量乘法
  57. 数学上的群
  58. 恒等元
  59. 封闭性
  60. 可逆性
  61. 交换律
  62. 结合律
  63. 练习5
  64. 实现标量乘法
  65. 定义比特币的曲线
  66. 使用secp256k1
  67. 公钥密码学
  68. 签名和验证
  69. 雕刻靶坐标
  70. 验证的细节
  71. 验证签名
  72. 练习6
  73. 编程实现签名验证
  74. 签名的细节
  75. 创造签名
  76. 练习7
  77. 编程实现消息签名
  78. 总结
  79. 第4章 序列化
  80. 未压缩的SEC格式
  81. 练习1
  82. 压缩的SEC格式
  83. 练习2
  84. DER签名
  85. 练习3
  86. Base58
  87. 转录你的公钥
  88. 练习4
  89. 地址格式
  90. 练习5
  91. WIF格式
  92. 练习6
  93. 再议大端序和小端序
  94. 练习7
  95. 练习8
  96. 练习9
  97. 总结
  98. 第5章 交易
  99. 交易的组成
  100. 版本号
  101. 练习1
  102. 输入
  103. 解析脚本
  104. 练习2
  105. 输出
  106. 练习3
  107. 时间锁
  108. 练习4
  109. 练习5
  110. 实现交易的序列化
  111. 交易手续费
  112. 计算交易手续费
  113. 练习6
  114. 总结
  115. 第6章 Script
  116. Script机制
  117. Script如何运作
  118. 几个操作符的例子
  119. 实现操作符
  120. 练习1
  121. 解析脚本字段
  122. 实现一个Script解析工具和序列化工具
  123. 合并脚本字段
  124. 实现合并命令集
  125. 标准脚本
  126. p2pk
  127. 实现脚本计算
  128. 栈元素的本质
  129. 练习2
  130. p2pk的缺陷
  131. 使用p2pkh修复问题
  132. p2pkh
  133. 脚本可以被任意构建
  134. 练习3
  135. 脚本的使用
  136. 练习4
  137. SHA-1 Pin躠ta
  138. 总结
  139. 第7章 交易的创建与验证
  140. 验证交易
  141. 校验交易输入是否可用
  142. 校验交易输入的总和与交易输出的总和
  143. 校验签名
  144. 练习1
  145. 练习2
  146. 校验交易的全部内容
  147. 创建交易
  148. 构建交易
  149. 制作交易
  150. 签名交易
  151. 练习3
  152. 在测试链上创建你自己的交易
  153. 练习4
  154. 练习5
  155. 总结
  156. 第8章 支付到脚本哈希交易
  157. 裸多签
  158. 实现OP_CHECKMULTISIG
  159. 练习1
  160. 裸多签的问题
  161. 支付到脚本哈希
  162. 实现p2sh
  163. 更复杂的脚本
  164. 地址
  165. 练习2
  166. 练习3
  167. p2sh签名验证
  168. 练习4
  169. 练习5
  170. 总结
  171. 第9章 区块
  172. 创块交易
  173. 练习1
  174. 签名脚本
  175. BIP0034
  176. 练习2
  177. 区块头
  178. 练习3
  179. 练习4
  180. 练习5
  181. 版本号
  182. 练习6
  183. 练习7
  184. 练习8
  185. 父区块
  186. 默克尔根
  187. 时间戳
  188. 工作量
  189. 序号
  190. 工作量证明
  191. 矿工如何生成新的哈希
  192. 计算目标
  193. 练习9
  194. 计算难度
  195. 练习10
  196. 校验工作量证明
  197. 练习11
  198. 计算难度调整
  199. 练习12
  200. 练习13
  201. 总结
  202. 第10章 比特币网络通信
  203. 网络消息
  204. 练习1
  205. 练习2
  206. 练习3
  207. 解析payload
  208. 练习4
  209. 网络握手
  210. 连接到比特币网络
  211. 练习5
  212. 获取区块头信息
  213. 练习6
  214. 区块头响应
  215. 总结
  216. 第11章 简单支付验证
  217. 动机
  218. 默克尔树
  219. 默克尔树的父哈希
  220. 练习1
  221. 默克尔父节点层数
  222. 练习2
  223. 默克尔根
  224. 练习3
  225. 区块中的默克尔根
  226. 练习4
  227. 默克尔树的使用
  228. 默克尔块
  229. 默克尔树结构
  230. 练习5
  231. 实现默克尔树
  232. 默克尔块命令
  233. 练习6
  234. 标记位和哈希的使用
  235. 练习7
  236. 总结
  237. 第12章 布隆过滤器
  238. 什么是布隆过滤器
  239. 练习1
  240. 布隆过滤器进阶
  241. BIP0037布隆过滤器
  242. 练习2
  243. 练习3
  244. 载入一个布隆过滤器
  245. 练习4
  246. 获取默克尔块
  247. 练习5
  248. 获取相关交易
  249. 练习6
  250. 总结
  251. 第13章 隔离见证
  252. 支付到见证公钥哈希
  253. 交易的延展性
  254. 修复延展性问题
  255. p2wpkh交易
  256. p2sh-p2wpkh
  257. 实现p2wpkh和p2sh-p2wpkh交易
  258. 支付到见证脚本哈希
  259. p2sh-p2wsh
  260. 实现p2wsh和p2sh-p2wsh交易
  261. 其他方面的改善
  262. 总结
  263. 第14章 高级主题和进阶
  264. 推荐的学习主题
  265. 钱包
  266. 支付通道和闪电网络
  267. 贡献代码
  268. 推荐的项目
  269. 测试链钱包
  270. 区块链浏览器
  271. 网上商店
  272. 工具库
  273. 寻找工作
  274. 总结
  275. 附录 练习答案
书名:区块链编程
作者:Jimmy Song
译者:侯亮, 潘凯阳 译
国内出版社:机械工业出版社
出版时间:2020年05月
页数:296
书号:978-7-111-65203-8
原版书书名:Programming Bitcoin
原版书出版商:O'Reilly Media
Jimmy Song
 
Jimmy Song拥有20多年开发经验,其中有5年的时间从事比特币的相关工作。他是bitcointechtalk.com的编辑,也为Bitcoin Magazine撰稿,同时是Blockchain Capital的合伙人以及得克萨斯大学比特币编程课程的授课教师。Jimmy是Bitcoin Core(比特币核心)以及其他比特币项目的贡献者。他曾是比特币钱包Armory的技术副总裁。
 
 
购买选项
定价:99.00元
书号:978-7-111-65203-8
出版社:机械工业出版社