區塊鏈架構之美 : 從比特幣、以太坊、超級賬本看區塊鏈架構設計

區塊鏈架構之美 : 從比特幣、以太坊、超級賬本看區塊鏈架構設計

作者: 何昊
出版社: 電子工業
出版在: 2021-06-01
ISBN-13: 9787121412653
ISBN-10: 7121412659
裝訂格式: 平裝
總頁數: 336 頁





內容描述


本書由淺入深地介紹了比特幣、以太坊和超級賬本三個區塊鏈平臺的設計精華。除第0 章引言外,全書還包含10 章,按照區塊鏈架構體系自底而上進行介紹。第1 章介紹了區塊鏈各模塊所需要用到的密碼學知識。第2 章介紹了區塊鏈中的P2P 模塊,揭示了區塊鏈的網絡結構。第3 章介紹了區塊鏈中的兩種交易模型。第4 章展示瞭如何使用Solidity 編寫智能合約。第5 章從EVM 的角度關註了智能合約的編譯和執行。第6 章討論了區塊鏈中的核心數據結構。第7 章分別從公有鏈和聯盟鏈兩個方向介紹了二者所採用的共識算法和解決的問題。第8 章圍繞數字錢包技術介紹瞭如何生成私鑰、存儲私鑰和保護私鑰。第9 章介紹了打通鏈上數據和鏈外數據的關鍵技術預言機。第10 章從社區的角度介紹了公有鏈項目的標準制定流程和一些區塊鏈標準。本書涵蓋了區塊鏈主流平臺的新技術,可以幫助讀者深入理解區塊鏈的核心原理和設計思想,使讀者不局限於某一平臺,靈活運用區塊鏈系統的設計思想。


目錄大綱


第0章導言
0.1 區塊鏈技術體系分類
0.2 網絡層
0.3 共識層
0.4 數據層
0.5 智能合約層
0.6 應用層
0.7 本書目的
0.8 閱讀建議
0.9 勘誤和支持
0.10 致謝
第1章密碼學基礎
1.1 基本元素
1.2 對稱加密
1.3 非對稱加密
1.4 混合加密
1.5 哈希算法
1.6 數字簽名
1.7 可信通信
1.7.1 TLS協議
1.7.2 雙向認證
1.8 ECDH密鑰協商
1.9 身份驗證
1.10 數字證書
1.10.1 數字證書結構
1.10.2 數字證書類型
1.10.3 數字證書編碼
1.10.4 簡單應用
1.11 PKI體系
1.12 證書鏈
1.13 可信執行環境
第2章網絡層
2.1 集中式網絡
2.2 純分佈式網絡
2.2.1 Gossip協議
2.2.2 Gossip協議流程
2.3 混合式網絡
2.4 結構化網絡
2.4.1 Kademlia算法原理
2.4.2 K桶
2.4.3 K桶的更新機制
2.4.4 加入Kad網絡
2.4.5 定位節點
2.4.6 以太坊中的Kad網絡
2.5 RLP編碼
2.5.1 RLP編碼定義
2.5.2 RLP編碼規則
2.6 RLPx子協議
2.7 Whisper協議
2.7.1 消息廣播
2.7.2 協議流程
第3章交易模型
3.1 UTXO模型介紹
3.1.1 輸入
3.1.2 輸出
3.1.3 比特幣腳本
3.2 賬戶模型
3.2.1 外部賬戶
3.2.2 合約賬戶
3.2.3 世界狀態
第4章智能合約
4.1 Gas
4.1.1 Gas支付
4.1.2 Gas成本與Gas價格
4.1.3 Gas成本限制和Gas耗盡
4.1.4 Gas價格和交易優先順序
4.1.5 區塊Gas限制
4.1.6 Gas限制
4.1.7 Gas退款
4.1.8 GasToken
4.2 智能合約生命週期
4.3 以太坊高級語言簡介
4.4 Remix開發環境
4.5 Solidity文件結構
4.5.1 版本標識
4.5.2 源文件導入
4.5.3 路徑
4.5.4 註釋
4.6 數據類型
4.6.1 變量
4.6.2 值類型
4.6.3 引用類型
4.6.4 數據位置
4.6.5 動態數組
4.6.6 映射
4.6.7 枚舉
4.6.8 結構體
4.7 控制結構與表達式
4.7.1 構造函數與析構函數
4.7.2 函數參數
4.7.3 函數返回變量
4.7.4 作用域
4.7.5 函數調用
4.7.6 函數可見性
4.7.7 函數裝飾器
4.7.8 回退函數
4.7.9 錯誤處理及異常
4.8 事件
4.8.1 監聽事件
4.8.2 檢索日誌
4.9 合約繼承
4.9.1 繼承支持傳遞參數
4.9.2 繼承中的重名
4.9.3 重寫函數
4.9.4 繼承父類合約方法
4.9.5 多繼承與線性化
第5章深入EVM
5.1 存儲
5.1.1 存儲分類
5.1.2 Hex編碼
5.2 智能合約的ABI
5.3 編譯Solidity
5.4 ABI編碼
5.4.1 狀態變量
5.4.2 結構體
5.4.3 布爾類型
5.4.4 定長數組
5.4.5 映射
5.4.6 動態數組
5.4.7 動態數組打包
5.4.8 字節數組和字符串
5.4.9 函數選擇器和參數編碼
5.5 Solidity彙編
5.5.1 內聯彙編
5.5.2 基本語法
5.5.3 操作碼
5.5.4 函數風格
5.5.5 訪問外部變量和函數
5.5.6 彙編局部變量聲明
5.5.7 賦值
5.5.8 條件判斷與循環語句
5.5.9 函數
5.5.10 注意事項
5.5.11 Solidity慣例
5.5.12 獨立彙編
5.5.13 EVM中的事件與日誌
5.6 跨合約調用
5.6.1 call和callcode異同
5.6.2 callcode和delegatecall異同
5.7 智能合約安全
5.7.1 合約審計
5.7.2 未來研究方向與改進思路
5.7.3 漏洞分析
第6章區塊鏈核心數據結構
6.1 交易結構
6.1.1 AccountNonce
6.1.2 Price
6.1.3 Recipient
6.1.4 Amount
6.1.5 Payload
6.1.6 VR S
6.2 交易池
6.3 交易回執
6.4 區塊
6.4.1 區塊結構
6.4.2 區塊存儲
6.4.3 創世區塊
6.4.4 區塊廣播
6.4.5 區塊擴容
6.5 默克爾樹與輕節點
6.5.1 默克爾樹
6.5.2 輕節點
6.5.3 布隆過濾器
6.6 字典樹
6.7 MPT樹
6.7.1 MPT樹持久化
6.7.2 安全的MPT樹
6.7.3 持久化MPT樹
6.7.4 MPT樹應用
6.8 Bucket樹
第7章共識算法
7.1 分佈式系統模型
7.1.1 分佈式系統中的網絡模型
7.1.2 分佈式系統中的故障模型
7.2 FLP和CAP定理
7.2.1 FLP定理
7.2.2 CAP定理
7.3 比特幣共識
7.3.1 比特幣清算
7.3.2 難度調整
7.3.3 出塊時間調整
7.3.4 算法原理
7.3.5 壓縮算法
7.3.6 難度計算
7.3.7 算力
7.3.8 鑄幣交易
7.3.9 算力單位
7.3.10 礦池收益
7.3.11 礦池
7.3.12 全網算力
7.3.13 區塊確認
7.4 以太坊共識
7.4.1 Dagger
7.4.2 Hashimoto
7.4.3 Dagger-Hashimoto
7.4.4 Ethash
7.5 以太坊Ghost協議
7.6 公有鏈激勵
7.6.1 公有鏈共識與激勵相容
7.6.2 礦池利益分配
7.6.3 挖礦風險
7.7 聯盟鏈共識
7.8 Raft算
7.8.1 複製狀態機
7.8.2 算法流程
7.8.3 領導者選舉
7.8.4 選舉流程
7.8.5 日誌複製
7.8.6 領導者選舉安全性
7.8.7 候選者和跟隨者安全性
7.8.8 可用性
7.8.9 增刪節點
7.8.10 配置變更流程
7.8.11 日誌壓縮
7.9 實用拜占庭容錯算法
7.9.1 算法容錯
7.9.2 算法流程
7.9.3 日誌壓縮
7.9.4 視圖切換
7.9.5 主動恢復
7.9.6 增刪節點
7.10 共識算法的新進展
第8章數字錢包
8.1 確定性錢包
8.2 分層確定性錢包設計
8.2.1 主密鑰生成
8.2.2 HCKD函數
8.2.3 節點派生路徑
8.3 助記詞
8.3.1 助記詞生成
8.3.2 恢復種子
8.4 硬件錢包
8.5 雙離線支付
第9章預言機
9.1 預言機基本原理
9.2 預言機的起源與發展
9.2.1 可信預言機
9.2.2 奶酪模型
9.3 理想預言機
9.4 去中心化系統的弱點
9.5 去中心化預言機項目
9.5.1 ChainLink
9.5.2 Witnet
9.6 數據聚合方式
9.7 預言機面臨的挑戰
第10章區塊鏈標準
10.1 比特幣標準
10.1.1 BIP的需求
10.1.2 BIP的剖析
10.1.3 多種類型的BIP
10.2 以太坊標準
10.3 金融分佈式賬本技術安全規範
10.4 區塊鏈服務網絡


作者介紹


何昊
目前就職於騰訊雲區塊鏈產品中心,高級工程師。
有多年區塊鏈底層平台開發經驗,對比特幣、以太坊、超級賬本等平台有深入研究。
先後參與過趣鏈科技Hyperchain底層平台、騰訊TBaaS、長安鍊等區塊鏈平台的研發工作,曾為多家銀行提供區塊鏈技術諮詢




相關書籍

LIBRA一種創新金融實驗

作者

2021-06-01

The Blockchain and the New Architecture of Trust (Information Policy)

作者 Kevin Werbach

2021-06-01

去中心化應用 區塊鏈技術概述

作者 [美]西拉傑·拉瓦爾

2021-06-01