《精通比特币》笔记

不得不说,在读到本书之前,为了了解有关区块链、比特币的概念,我花了很大的精力在网上搜索相关介绍,因为一直存在这个知识点的盲区,所以收效甚微。顶多获得一些科普类的粗浅介绍,更多的网站甚至只是人云亦云的把所谓区块链的概念大肆渲染一番。《精通比特币》(master bitcoin)通过形象的案例,深入浅出的介绍了比特币的框架体系。同时,由于比特币是目前区块链技术最好的应用案例,顺便把区块链的相关知识内容也一并带出。虽然我并不从事编程职业,但作为IT从业者,通过本书能够从技术理论到实践应用对比特币及区块链建立一套完整的知识结构,对于进一步学习受益匪浅。感谢作者Andreas M Antonopoulos,也感谢众多参与翻译的热心网友。

书中除去前言与附录,正文共分10个章节,按照由浅入深的顺序逐步揭开比特币及其底层区块链技术的秘密。由于书中一些内容涉及理论算法,虽然并没有进一步深入描述,但阅读也还是需要一定的专业基础。在此,我仅从初步掌握比特币关键知识点、梳理知识结构的角度,对各章节重点内容予以总结,供学习参考。

第1章 介绍

主要介绍比特币是什么,发展历史,以及作为一名普通的比特币用户,如何使用比特币客户端进行转账。建议可通篇阅读,这一章提出了与比特币相关的多个关键字,对于初步建立对比特币的认识有帮助。

第2章 比特币的原理

通过Alice从Joe处换区比特币,再向Bob购买一杯咖啡,以及Jing创造比特币等案例,形象介绍了比特币消费、记账、创造的形成原理,进一步加深对比特币的整体认识,至少让我觉得比特币并没有那么神秘。其中涉及一些基础的URL、JSON内容,很容易理解。建议通篇阅读。

第3章 比特币客户端

介绍比特币核心客户端的安装与使用方法,由于客户端是字符界面,文中列举了大量的操作指令。建议有能力的话可以试着通读本章内容,对于进一步掌握比特币操作细节有帮助。如果有代码恐惧症,可以只读其中的文字部分,至少需了解以下关键字的含义:

  1. 比特币核心客户端是一个完整的节点客户端,包含了从比特币创建之初至今所有的区块链信息,因此也会占用大量的硬盘空间与网络带宽;
  2. 钱包是一个用于保存自己比特币私钥并提供交易功能的软件;
  3. 比特币交易地址实际上是一个经过HASH加密的公钥地址;
  4. 区块的基本组成内容;
  5. 收到的比特币需要使用私钥签名才可以拥有;
  6. 除了官方客户端还有许多其他开发的客户端。

第4章 秘钥、地址、钱包

详细介绍了三者的关系、原理及程序实现,可根据自身情况选择性阅读。

  1. 4.1 简介 4.1.1-4.1.4:理解秘钥加密是一个单向过程,私钥是根据用户密码生成,公钥可通过私钥经数据计算生成,反过来通过公钥无法得到私钥,通过私钥也无法得到用户密码;
  2. 4.2 比特币地址:掌握从公钥到比特币地址的生成过程,了解比特币地址有不同的表示格式;
  3. 4.4 比特币钱包 4.4.1 4.4.4:理解钱包是私钥的容器,简单的钱包只是一些私钥的集合,而完善的钱包包含完整的派生结构,从而确保交易过程的安全性。

第5章 交易

剖析比特币交易的多种形式、所含信息、交易的创建以及交易的有效验证。

  1. 5.1 简介;5.2 比特币交易的生命周期;5.3 交易结构;
  2. 5.4 交易的输入和输出,理解交易的输出会创造一个锁定脚本作为支付条件(障碍),只要当交易输入时提供准确的解锁脚本才可以拥有本次交易金额,理解交易费的计算公式:交易费=求和(所有输入)-求和(所有输出),掌握每一笔比特币交易都只有输出UTXO,至少包括1个转账对象的地址和1个找零给自己的地址;
  3. 5.5 交易链条和孤立交易;
  4. 5.6 比特币交易脚本和脚本语言,理解锁定与解锁的基本原理,是通过解锁脚本与锁定脚本共同满足一个既定的验证结果;
  5. 5.7 标准交易,选择性深入阅读。

第6章 比特币网络

介绍比特币网络的基本架构。

  1. 6.1 P2P网络架构;6.2 节点类型及分工;6.3 扩展比特币网络;6.4 网络发现,掌握对等节点之间的“握手”机制;6.5 全节点;6.6 交换“库存清单”;
  2. 6.7 简易支付验证(SPV)节点,理解多数的比特币客户端都是SPV类型的节点,掌握SPV节点只通过交换区块头(headers)进行验证的基本原理;
  3. 6.8 Bloom过滤器 理解Bloom过滤的基本原理,理解正匹配“可能是”而负匹配“一定不是”。

第7章 区块链

介绍比特币所使用区块链的数据结构及其区块内容。

  1. 7.1 简介;7.2 区块结构;7.3 区块头;
  2. 7.4 区块标识符:区块头哈希值和区块高度,掌握区块哈希值是区块的唯一标识,而区块高度并不是唯一标识符,因为可能因为区块分叉而出现相同高度的区块;
  3. 7.5 创世区块;
  4. 7.6 区块的连接,掌握区块内只包含父区块的哈希值,而自身的哈希值由子区块计算获得,各区块通过父区块哈希值完成链接;
  5. 7.7 Merkle树,理解Merkle是一种哈希二叉树,在比特币区块中用于验证交易,Mercle树由下向上由各个交易记录逐层计算得出,最终计算为Merkle根值,交易验证也是由下向上看是否能够得到与Merkle根相同的值。

第8章 挖矿与共识

介绍比特币的发行机制,以及挖矿功能对于去中心化共识的重要作用。

  1. 8.1 简介 8.1.1 比特币经济学和货币创造,理解比特币是一种通货紧缩货币;8.2 去中心化共识;8.3 交易的独立校验;8.4 挖矿节点;
  2. 8.5 整合交易至区块,掌握创币(coinbase)奖励与矿工费的获取机制,创币数据结构及编程内容可酌情阅读;8.6 构造区块头;
  3. 8.7 构建区块 8.7.1-8.7.3 掌握工作量证明算法(POW)基本原理,理解难度目标可根据前面的计算结构动态调整难度,确保每10分钟生成新的区块;8.9 校验新区块;
  4. 8.10 区块链的组装与选择 8.10.1 区块链分叉,掌握区块链分叉原因以及最终会在最长链上重新共识;
  5. 8.11 挖矿和算力竞赛,对挖矿感兴趣可着重阅读。

第9章 竞争币、竞争块链和应用程序

本章没有太多专业知识,只是介绍了目前典型的竞争币和块链,建议全章阅读,扩大对该领域更全面的认识。

第10章 比特币安全

关于比特币安全及风险管控的论述,篇幅不多且并无太多专业内容,建议阅读。

 

点击阅读:《精通比特币》

发表评论

电子邮件地址不会被公开。 必填项已用*标注