內容簡介
本書介紹區塊鏈技術及其應用。全書共分7章:第1章介紹比特幣及其底層技術——區塊鏈;第2章介紹區塊鏈的基礎知識;第3章介紹共識機制的基礎知識及常用的共識演算法,包括PBFT、PoW、PoS、DPoS等;第4章介紹智能合約的基礎架構和關鍵技術;第5章介紹區塊鏈開發平台,重點介紹以太坊;第6章介紹Solidity編程基礎,包括Solidity語言的基本語法和控制結構;第7章介紹智能合約的幾個實例。
本書可作為高等學校計算機科學與技術相關專業的本科教材,也可作為區塊鏈開發人員的參考書。
目錄
第1章 比特幣與區塊鏈
1 1 比特幣系統
1 1 1 比特幣簡介
1 1 2 分散式賬本
1 1 3 比特幣的賬戶地址
1 2 比特幣挖礦
1 2 1 挖礦的過程
1 2 2 礦場與礦池
1 3 比特幣中的區塊鏈
1 3 1 區塊頭結構
1 3 2 區塊體結構
1 3 3 區塊鏈結構
1 3 4 區塊的產生
1 4 比特幣交易
1 4 1 交易結構
1 4 2 交易的本質
1 4 3 比特幣的交易過程
1 5 區塊鏈的發展
1 6 區塊鏈的優勢和劣勢
1 6 1 區塊鏈的優勢
1 6 2 區塊鏈的劣勢
1 6 3 區塊鏈面臨的問題
第2章 區塊鏈的基礎知識
2 1 區塊鏈的體系架構
2 2 區塊鏈的分類
2 2 1 根據准入規則劃分
2 2 2 根據鏈與鏈的關係劃分
2 2 3 根據適用範圍劃分
2 3 密碼技術
2 3 1 公鑰加密體制
2 3 2 橢圓曲線密碼演算法
2 4 哈希演算法
2 4 1 哈希值的特性
2 4 2 哈希函數處理過程
2 4 3 常用的哈希演算法
2 4 4 SHA256演算法
2 5 Merkle樹
2 5 1 Merkle樹的定義
2 5 2 各平台中的Merkle樹
2 5 3 Merkle樹遍歷演算法
2 6 區塊鏈的數據模型
2 6 1 基於交易的模型
2 6 2 基於賬戶的模型
2 7 區塊鏈的關鍵技術
2 7 1 共識機制
2 7 2 智能合約
第3章 常用的共識演算法
3 1 共識演算法概述
3 1 1 共識演算法的發展
3 1 2 共識演算法的模型
3 1 3 共識演算法的分類
3 1 4 共識演算法的評價標準
3 2 分散式系統一致性問題
3 2 1 分散式系統模型
3 2 2 一致性重要定理
3 2 3 一致性演算法
3 2 4 區塊鏈的一致性問題
3 3 PBFT演算法
3 3 1 系統假設
3 3 2 PBFT演算法的角色
3 3 3 PBFT演算法的共識流程
3 4 PoW演算法
3 4 1 數學難題
3 4 2 新區塊驗證
3 4 3 最長鏈法則
3 4 4 PoW演算法的安全性
3 4 5 基於比特幣PoW演算法的改進
3 4 6 Bitcoin-NG
3 4 7 GHOST-PoW共識機制
3 5 PoS演算法
3 5 1 PoS演算法的基本思想
3 5 2 PoS演算法的改進
3 5 3 PoS演算法的特點
3 5 4 基於虛擬挖礦的共識演算法
3 6 DPoS演算法
3 7 主流共識演算法的性能對比
第4章 智能合約
4 1 智能合約概述
4 1 1 智能合約概念的提出
4 1 2 智能合約與區塊鏈
4 1 3 智能合約的生命周期
4 1 4 智能合約的特點
4 2 智能合約架構
4 2 1 智能合約模型
4 2 2 智能合約基礎架構
4 3 智能合約的關鍵技術
4 3 1 合約主體
4 3 2 數據載入方式
4 3 3 執行環境
4 3 4 驗證方法
4 3 5 擴展性的實現
4 4 區塊鏈中的智能合約語言
4 4 1 智能合約語言
4 4 2 比特幣腳本語言
4 4 3 以太坊圖靈完備型語言
4 4 4 可驗證型語言
4 4 5 超級賬本智能合約語言
4 4 6 智能合約語言比較
4 5 區塊鏈中智能合約的實現技術
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 智能法律合約
第5章 區塊鏈開發平台
5 1 區塊鏈開發平台簡介
5 2 以太坊
5 2 1 以太坊的特點
5 2 2 以太坊的發展階段
5 3 以太坊的基本概念
5 3 1 賬戶
5 3 2 交易和消息
5 3 3 交易費用
5 3 4 以太幣
5 3 5 以太坊挖礦
5 3 6 狀態轉換
5 4 以太坊基礎
5 4 1 以太坊技術架構
5 4 2 以太坊區塊結構
5 4 3 叔區塊
5 4 4 Merkle Patricia樹
5 5 智能合約和以太坊虛擬機
5 5 1 EVM
5 5 2 智能合約
5 6 GHOST協議
5 6 1 以太坊的安全問題
5 6 2 叔區塊的出塊獎勵
5 7 挖礦演算法
5 7 1 數組定義
5 7 2 難度調整
5 7 3 權益證明
第6章 Solidity編程基礎
6 1 Solidity語言的開發環境
6 1 1 智能合約的開發流程
6 1 2 安裝Node環境
6 1 3 編程工具準備
6 2 Solidity程序框架
6 2 1 簡單的Solidity實例
6 2 2 Solidity源文件結構
6 2 3 合約文件結構
6 3 Solidity語言的數據類型
6 3 1 數據類型概述
6 3 2 布爾類型
6 3 3 整型
6 3 4 位元組類型
6 3 5 枚舉類型
6 3 6 地址類型
6 3 7 數組類型
6 3 8 結構類型
6 3 9 字元串類型
6 3 10 映射
6 4 Solidity的控制結構
6 4 1 條件語句
6 4 2 循環語句
6 4 3 三目運算符
6 5 Solidity函數
6 5 1 函數的定義