CONTENTS
目录
前言
第1章比特币
1.1比特币概述
1.1.1比特币的特性
1.1.2比特币的发展背景
1.1.3比特币的意义和价值
1.2比特币数据结构
1.2.1比特币的密码学原理
1.2.2哈希指针
1.2.3默克尔树(Merkle Tree)的基本概念与结构
1.2.4区块结构
1.2.5全节点和轻节点
1.3比特币交易
1.3.1铸币(CoinBase)交易
1.3.2UTXO交易模型
1.4比特币中的挖矿
1.4.1挖矿原理
1.4.2挖矿过程的概率分析
1.4.3比特币总量计算
1.4.4挖矿难度
1.4.5挖矿设备及矿池的演化
1.5身份认证
1.5.1传统认证方式
1.5.2电子签名
1.6挖矿攻击
1.6.1背景
1.6.2分叉
1.6.3攻击方式
1.7本章小结
1.8参考文献
第2章以太坊(Ethereum)
2.1Ethereum概述
2.1.1Ethereum与去中心化思想
2.1.2Ethereum与BTC
2.1.3Ethereum的创新——“智能合约”
2.1.4关于Ethereum
2.2Ethereum的账户
2.2.1Ethereum账户(Ethereum Accounts)
2.2.2公钥与私钥
2.2.3BTC转账机制(UTXO)和Ethereum转账机制(Accounts)
2.3Ethereum中的数据结构
区块链理论与实战
目录
2.3.1默克尔帕特里夏树(MPT)
2.3.2状态树
2.3.3交易树与收据树
2.3.4户存储树
2.3.5Ethereum数据结构小结
2.3.6Bloom Filter
2.4Ghost协议
2.4.1概述
2.4.2Ghost规则
2.4.3叔父块的定义
2.4.4叔父块的特点
2.4.5奖励公式
2.5Ethereum中的挖矿
2.5.1Ethereum挖矿与BTC挖矿
2.5.2挖矿介绍
2.5.3挖矿算力
2.5.4矿池
2.5.5挖矿算法
2.5.6补充
2.6本章小结
2.7参考文献
第3章区块链安全的保障——密码学
3.1密码学概述
3.1.1密码学的概念及分类
3.1.2密码学的发展历程
3.2区块链中的密码算法
3.2.1哈希函数
3.2.2基于哈希加密的默克尔树(Merkle Tree)
3.3密码算法
3.3.1RSA算法概述
3.3.2RSA算法密钥生成过程
3.3.3RSA算法的加密和解密
3.3.4RSA算法的设计流程
3.3.5椭圆曲线密码算法
3.3.6Diffie-Hellman密钥交换算法
3.4数字签名
3.5零知识证明
3.5.1QAP问题
3.5.2简洁性问题
3.5.3同态隐藏
3.5.4KCA——解决“答非所问”问题
3.6本章小结
3.7参考文献
第4章分布式系统核心技术
4.1一致性问题
4.1.1FLP不可能原理
4.1.2CAP原理
4.1.3ACID原则与多阶段提交
4.2经典分布式共识算法
4.2.1Paxos算法与Raft算法
4.2.2拜占庭问题与PBFT算法
4.3区块链共识机制
4.3.1工作量证明(PoW)
4.3.2权益证明(PoS)
4.3.3委任权益证明(DPoS)
4.4本章小结
4.5参考文献
第5章基于Hyperledger Fabric的区块链应用案例
5.1Hyperledger Fabric简介
5.1.1模块化
5.1.2许可和非许可区块链
5.1.3智能合约
5.1.4隐私和保密性
5.2Fabric安装与部署
5.2.1创建ubuntu 20.04虚拟机
5.2.2安装基础软件
5.2.3安装Go语言
5.2.4安装Docker和Docker-compose
5.2.5拉取Fabric开源项目
5.2.6bootstrap.sh脚本运行失败
5.3密码学实验
5.3.1用Java构建简单区块链
5.3.2SHA256的具体实现
5.3.3区块链存储系统
5.4食品溯源
5.4.1项目环境
5.4.2hyperledger-simple-app
5.4.3url & json 格式
5.4.4部署于服务器
5.5以太坊智能合约实验
5.5.1实验部分
5.5.2实验1:开发第一个智能合约HelloWorld
5.5.3实验2:投票智能合约
5.5.4实验3:教学成绩录入
5.5.5实验4:Solidity基本语法
5.5.6实验5:ICO
5.5.7实验6:二手车交易
5.6参考文献