1. FDigit 首页
  2. 区块链技术认证

《深入浅出玩转比特币》

一、 概述

1.1 什么是⽐特币?
1.2 ⽐特币发展史
1.3 获取你的第⼀枚⽐特币

二、 比特币如何运作

2.1 交易
2.2 区块
2.3 挖矿
2.4 区块链

三、 Bitcoin Core参考实现

3.1 比特币开发环境
3.2 通过源代码编译Bitcoin Core
3.3 运行Bitcoin Core节点
3.4 Bitcoin Core API
3.5 可选的客户端、程序库和工具包

四、 密钥和地址

4.1 私钥和公钥
4.2 椭圆曲线密码学
4.3 比特币地址
4.4  C++ 实现密钥和地址
4.5  Python 实现密钥和地址
4.6  Golang 实现密钥和地址
4.7 高级的密钥和地址

五、 钱包

5.1 钱包技术概述
5.1.1 非确定性(随机)钱包
5.1.2 分层确定性钱包(HD Wallets(BIP-32/BIP-44)
5.1.3 种子和助记词 (BIP-39)
5.1.4 钱包最佳实践
5.1.5 使用比特币钱包

5.2 钱包技术细节
5.2.1 助记词(Mnemonic Code Words(BIP-39)
5.2.2 生成助记词
5.2.3 从助记符到种子
5.2.4 BIP-39中可选的密码
5.2.5 不同的编程语言库实现的BIP-39

5.3 通过种子创建HD钱包

六、 交易

6.1 交易概述

6.2 交易的输出和输入
6.2.1 交易输出
6.2.2 交易输入
6.2.3 交易费用
6.2.4 将费用添加到交易

6.3 交易脚本和脚本语言
6.3.1 图灵不完备
6.3.2 无状态验证
6.3.3 创建脚本 ( 锁定 + 解锁 )

6.4 数字签名 (ECDSA)
6.4.1 创建数字签名
6.4.2 签名的序列化 (DER)
6.4.3 验证签名
6.4.4 ECDSA 数学

6.5 比特币地址,余额

七、 高级交易和脚本

7.1 多重签名
7.2 支付到脚本哈希 Pay-to-Script-Hash (P2SH)
7.3 P2SH 地址
7.4 数据记录输出 (RETURN)
7.5 时间锁 Timelocks
7.6 流程控制脚本(条件语句)
7.7 复杂脚本示例
7.8 隔离见证 Segregated Witness

八、 比特币网络

8.1 点对点网络架构
8.2 节点类型和角色
8.3 扩展比特币网络
8.4 比特币中继网络
8.5 网络发现
8.6 完整节点
8.7 交换“库存”
8.8 简单支付验证(SPV
8.9 布隆过滤器 布隆 Filters
8.10 SPV节点如何使用布隆过滤器
8.11 SPV节点和隐私
8.12 加密和认证的连接
8.13 交易池

九、 区块链

9.1 区块的结构
9.2 区块头
9.3 区块标识符:区块头的哈希值和区块高度
9.4 创世区块
9.5 在区块链中链接区块
9.6 默克尔树 Merkle Trees
9.7 Merkle 树和简单支付验证节点
9.8 比特币的测试区块链
9.9 使用测试区块链进行开发

十、 挖矿和共识

10.1 比特币经济学和货币创新
10.2 去中心化共识(Decentralized Consensus
10.3 独立交易验证

10.4 挖矿节点
10.4.1 将交易聚合到区块中
10.4.2 币基交易
10.4.3 币基奖励和费用
10.4.4 币基交易的结构
10.4.5 币基数据 Coinbase Data

10.5 构建区块头

10.6 挖掘区块
10.6.1 工作量证明算法 Proof-of-Work Algorithm
10.6.2 目标(Target)的表示
10.6.3 重新设定目标调整难度

10.7 成功挖到区块
10.8 验证新的区块
10.9 组装和选择区块的链
10.10 区块链分叉
10.11 挖矿和哈希竞赛 Mining and the Hashing Race
10.12 共识攻击

10.13 共识规则的改变
10.13.1 硬分叉
10.13.2 硬分叉:软件,网络,挖矿,和链
10.13.3 分叉的矿工和难度

技术交流QQ群:348924182,263270946

发布者:黎跃春,转转请注明出处:https://www.fdigit.com/mastering-bitcoin/

发表评论

登录后才能评论