求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

揭秘區塊鏈檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋

來自 孔夫子網 的圖片

揭秘區塊鏈》,陳曉華,劉彬,姚順,劉納新 編,陳曉華,劉彬,姚順,劉納新 編,出版社: 北京郵電大學出版社。

書,是歷史的見證、文化的賦形、知識的寶庫、智慧[1]的結晶,是一個民族一個國家顯示其文明的標誌。讀書,是時代的呼喚、歷史的昭示、職責的要求,是一個民族一個國家走向偉大復興的證明[2]

內容簡介

想真正了解區塊鏈,需要先從了解區塊鏈家族開始。《揭秘區塊鏈》講解了區塊鏈的思想起源、去中心化以及在去中心化思想下發展起來的一系列技術。了解了去中心化及其相關技術,才能對區塊鏈的演變、發展及其特性有更深刻的理解。區塊鏈源自金融,本書講解了跟金融相關的知識——借貸、眾籌、ICO,這為讀者深入了解比特幣奠定了基礎;同時本書給大家講解了區塊鏈的一個產品比特幣的發展經歷、思想起源。《揭秘區塊鏈》對區塊鏈的本質、核心技術、應用場景以及其對未來的影響進行了簡要介紹,目的是希望讀者能對區塊鏈技術有一個整體上的認識。但比特幣本身只是一套貨幣系統,無法滿足更為複雜的業務需求,於是以太坊應運而生,以太坊解決了比特幣擴展性不足等問題。在本書中我們將深入學習以太坊的概念和運行原理。《揭秘區塊鏈》適合於對區塊鏈技術感興趣的讀者閱讀,也可作為與區塊鏈技術相關的培訓教材。

目錄

第1章區塊鏈入門基礎1

1.1初識比特幣與區塊鏈1

1.1.1比特幣發展簡史1

1.1.2比特幣的定義4

1.1.3比特幣的發行5

1.1.4比特幣與區塊鏈的關係7

1.2區塊鏈的起源思想7

1.2.1去中心化7

1.2.2區塊鏈雛形8

1.2.3區塊鏈家族9

1.3區塊鏈的本質及特性10

1.3.1區塊與區塊鏈10

1.3.2區塊鏈的本質11

1.3.3區塊鏈中的核心技術13

1.3.4區塊鏈模型13

1.3.5目前區塊鏈幾大知名產品的編程語言14

1.3.6區塊鏈分類15

1.4區塊鏈技術的發展脈絡及其對未來的影響16

1.4.1區塊鏈技術的發展脈絡16

1.4.2區塊鏈技術對未來的影響16

1.5區塊鏈的應用場景17

1.5.1全球最有代表性的區塊鏈技術平台17

1.5.2區塊鏈的應用領域17

1.5.3國外區塊鏈的知名項目18

1.5.4國內企業在區塊鏈技術上的進展18

1.5.5區塊鏈的相關應用及公司20

1.6區塊鏈的不足21

1.7參考資料22

第2章區塊鏈常見問題集23

2.1比特幣挖礦相關問題23

2.1.1比特幣節點23

2.1.2挖礦、礦工、礦機、礦場、礦池24

2.1.3挖礦設備25

2.1.4算力26

2.1.5難度、難度目標、難度重定26

2.1.6區塊結構27

2.1.7默克爾樹及默克爾根28

2.1.8挖礦原理28

2.2比特幣交易相關問題30

2.2.1比特幣交易30

2.2.2比特幣錢包30

2.2.3冷錢包和熱錢包31

2.2.4全節點錢包、輕錢包31

2.2.5HD錢包31

2.2.6比特幣錢包隨機生成私鑰的安全性32

2.2.7私鑰的格式33

2.2.8比特幣地址34

2.2.9私鑰、公鑰、比特幣地址之間的關係35

2.2.10UTXO35

2.2.11比特幣交易的找零機制35

2.2.12發出交易到礦工打包的步驟36

2.2.13比特幣交易驗證過程36

2.2.14雙重支付36

2.2.15最長鏈及六次交易確認37

2.3區塊鏈其他相關問題37

2.3.1中本聰37

2.3.2圖靈完備38

2.3.3比特幣與圖靈完備性38

2.3.4P2P網絡38

2.3.5LevelDB39

2.3.6共識機制39

2.3.7比特幣擴容40

2.3.8隔離見證40

2.3.9區塊鏈分叉40

2.3.10BIP41

2.3.11IPFS41

2.3.12Token與積分的區別41

2.3.13對區塊鏈存在的誤解42

2.3.14區塊鏈生態系42

2.3.15區塊鏈與編程語言的關係43

2.4參考資料43

第3章區塊鏈骨骼——密碼學算法44

3.1密碼學家族44

3.2哈希算法45

3.2.1Hash的定義45

3.2.2流行的Hash算法46

3.2.3Hash與加密解密的區別48

3.3對稱加密算法50

3.3.1概述50

3.3.2DES和3DES算法51

3.3.3AES算法52

3.4非對稱加密算法52

3.4.1非對稱加密算法發展史52

3.4.2非對稱加密的概念53

3.4.3非對稱加密與對稱加密的區別53

3.4.4RSA加密算法54

3.4.5橢圓曲線加密算法54

3.4.6數字簽名的概念55

3.4.7數字簽名應該滿足的要求57

3.4.8比特幣系統中的數字簽名57

3.5字符編碼與解碼58

3.5.1Base64編碼與解碼58

3.5.2Base64編碼的步驟58

3.5.3Base58編碼與解碼59

3.5.4Base58編碼的步驟60

3.6比特幣地址的生成算法61

3.6.1生成比特幣地址的理論概述61

3.6.2Base58Check62

3.6.3比特幣地址的生成步驟63

3.7生成WIF和WIFcompressed格式私鑰的步驟64

3.8ECDSA實現交易簽名及簽名驗證66

3.8.1初步認識比特幣交易66

3.8.2交易鏈67

3.9簽名序列化68

3.10參考資料70

第4章區塊鏈靈魂——共識算法71

4.1共識算法概述71

4.1.1分布式系統71

4.1.2分布式系統的一致性問題73

4.1.3FLP定理與CAP定理73

4.1.4拜占庭將軍問題74

4.1.5共識算法的概念78

4.2共識算法的目的和價值79

4.2.1共識算法的目的79

4.2.2共識算法的假設條件80

4.3常用的共識算法80

4.3.1PoW算法80

4.3.2PoS算法81

4.3.3DPoS算法83

4.3.4PBFT算法84

4.3.5Paxos算法85

4.3.6Raft算法85

4.3.7共識算法總結86

4.4比特幣挖礦原理88

4.5計算難度目標88

4.6驗證挖礦結果89

4.7難度目標Hash值的快速算法90

4.7.1比特幣區塊bits值變化趨勢90

4.7.2bits值與目標Hash值的規律90

4.7.3計算難度目標的步驟91

4.7.4計算挖礦難度difficulty91

4.8參考資料91

第5章比特幣系統架構93

5.1比特幣系統的整體架構93

5.1.1早期的比特幣系統架構93

5.1.2目前的比特幣系統架構94

5.2比特幣系統的前端模塊95

5.2.1錢包服務95

5.2.2HTTPJSONRPC接口服務96

5.2.3bitcoincli命令行接口服務96

5.2.4GUI圖形開發工具96

5.3比特幣系統的後端模塊97

5.3.1區塊鏈管理97

5.3.2交易驗證98

5.3.3共識管理98

5.3.4密碼及數字簽名98

5.3.5腳本引擎98

5.3.6P2P網絡管理99

5.3.7數據庫管理99

5.3.8挖礦模塊99

5.3.9其他管理模塊100

5.4區塊鏈節點101

5.4.1節點類型101

5.4.2維護區塊鏈需要優質節點101

5.4.3節點相關問題102

5.5區塊鏈錢包103

5.5.1錢包的含義103

5.5.2錢包的類型103

5.6比特幣核心錢包105

5.6.1BitcoinCore的安裝105

5.6.2BitcoinCore客戶端目錄結構107

5.7bitcoincli命令110

5.7.1進入BitcoinCore的RPC控制台110

5.7.2執行bitcoincli命令110

5.8bitcoind的定義114

5.9bitcoincli高級命令115

5.10參考資料117

第6章比特幣交易及交易腳本118

6.1比特幣交易的流程118

6.1.1比特幣交易的本質118

6.1.2比特幣交易的生命周期119

6.1.3比特幣交易的規則122

6.1.4交易驗證的過程122

6.1.5比特幣交易的優先級123

6.2比特幣交易腳本123

6.2.1比特幣交易腳本概述123

6.2.2比特幣交易腳本中常用的指令124

6.2.3簡單數學運算的腳本執行過程124

6.2.4比特幣交易的腳本執行過程125

6.2.5比特幣交易類型(交易腳本的類型)129

6.3比特幣交易的數據結構130

6.3.1比特幣區塊的結構130

6.3.2比特幣交易的數據結構131

6.4P2PKH交易的數據解析案例132

6.4.1P2PKH交易的原始數據132

6.4.2P2PKH交易數據結構解析134

6.4.3P2PKH交易記錄的JSON格式137

6.5P2PK交易的數據結構解析140

6.5.1P2PK交易的原始數據140

6.5.2P2PK交易數據結構解析141

6.5.3P2PK交易記錄的JSON格式143

6.6比特幣交易構造過程145

6.6.1在regtest模式下搭建測試私鏈145

6.6.2比特幣交易流程146

6.6.3bitcoincli實現比特幣交易146

6.7參考資料152

第7章以太坊原理及核心概念153

7.1以太坊的定義153

7.1.1以太坊產生的項目背景153

7.1.2以太坊的概念154

7.1.3比特幣和以太坊挖礦算法的優勢和劣勢154

7.1.4以太坊出塊速度快的原因156

7.1.5以太坊的發展歷程156

7.1.6以太幣的通貨膨脹問題157

7.2以太坊的架構組成158

7.2.1以太坊的架構圖158

7.2.2以太坊中的軟件組成159

7.2.3學習以太坊的網站資源160

7.3以太坊中的核心概念160

7.3.1狀態160

7.3.2賬戶161

7.3.3交易164

7.3.4收據165

7.3.5區塊頭166

7.3.6燃料167

7.3.7以太坊挖礦Ethash算法的原理171

7.3.8Keccak256Hash:以太坊中的Hash算法173

7.3.9GHOST協議174

7.3.10孤塊和叔塊177

7.3.11以太幣178

7.4參考資料179

第8章以太坊數據存儲180

8.1以太坊數據存儲基礎180

8.1.1以太坊數據存儲概述180

8.1.2以太坊LevelDB中的數據格式181

8.2RLP182

8.3Trie和PatriciaTrie183

8.3.1Trie的基本概念183

8.3.2傳統Trie的局限184

8.3.3PatriciaTrie185

8.4MPT186

8.4.1基本概念186

8.4.2以太坊中的MPT對Trie的改進186

8.4.3MPT中的4種節點187

8.4.416進制前綴189

8.4.5MPT存儲的3種編碼格式189

8.5狀態的存儲190

8.5.1StateDB190

8.5.2結構體源碼分析191

8.5.3狀態數據的三級存儲機制192

8.5.4狀態存儲設置兩層緩存的原因192

8.5.5狀態信息三層存儲的完整流程193

8.6交易的存儲196

8.6.1交易存儲的圖示196

8.6.2交易信息在LevelDB中的存儲196

8.7收據的存儲197

8.7.1收據存儲的圖示197

8.7.2收據信息在LevelDB中的存儲198

8.8參考資料198

第9章以太坊開發前準備199

9.1使用Mist錢包199

9.1.1Mist錢包介紹199

9.1.2下載錢包199

9.1.3安裝並進入錢包200

9.1.4轉賬200

9.1.5備份錢包201

9.1.6數據存儲路徑202

9.2主網絡與測試網絡204

9.2.1以太坊的主網絡204

9.2.2以太坊的測試網絡205

9.3使用MetaMask206

9.4搭建以太坊私鏈213

9.4.1安裝客戶端213

9.4.2新建創世區塊的配置文件213

9.4.3配置初始狀態215

9.4.4啟動私鏈客戶端215

9.4.5以太坊常用對象及其用法216

9.4.6調用以太坊對象的方法來查看數據216

9.5參考資料219

第10章以太坊開發智能合約220

10.1智能合約221

10.1.1智能合約的基本定義221

10.1.2智能合約的特點及優勢222

10.1.3智能合約與區塊鏈的關係223

10.1.4基於區塊鏈的智能合約構建及執行步驟223

10.1.5智能合約應用場景224

10.2DApp225

10.2.1DApp的概念225

10.2.2DApp的應用領域225

10.3使用remixide開發智能合約226

10.3.1remixide簡介226

10.3.2安裝remixide226

10.3.3創建合約227

10.3.4選擇運行環境228

10.3.5部署智能合約229

10.3.6執行合約231

10.4Solidity基本語法233

10.4.1Solidity的定義233

10.4.2Solidity的數據類型233

10.4.3Solidity的基本構成233

10.4.4Solidity合約文件的存儲位置234

10.5發布ERC20標準代幣236

10.5.1ERC20介紹236

10.5.2ERC20Token協議的實現236

10.5.3Token合約的發布238

10.6web3.js的定義243

10.6.1web3.js簡介243

10.6.2web3.js環境搭建244

10.7Truffle概述244

10.8參考資料245

參考文獻

  1. 關於智慧的名言,人生屋,2013-07-15
  2. 書籍是文化的載體,豆丁網,2013-01-14