從零開(kāi)始自己動(dòng)手寫(xiě)區(qū)塊鏈
定 價(jià):69 元
- 作者:裴堯堯著
- 出版時(shí)間:2018/11/1
- ISBN:9787111612377
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:F713.361.3
- 頁(yè)碼:12,272頁(yè):圖;24cm
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16K
本書(shū)是一本區(qū)塊鏈底層開(kāi)發(fā)入門(mén)圖書(shū),全書(shū)圍繞作者開(kāi)發(fā)的區(qū)塊鏈模擬器,從原理和程序?qū)崿F(xiàn)兩個(gè)方面介紹了區(qū)塊鏈開(kāi)發(fā)技術(shù)。書(shū)中首先通過(guò)一個(gè)數(shù)字貨幣發(fā)行的故事,介紹了區(qū)塊鏈的專業(yè)術(shù)語(yǔ)和工作原理;然后結(jié)合區(qū)塊鏈模擬器的程序?qū)崿F(xiàn)過(guò)程,介紹了區(qū)塊鏈的關(guān)鍵技術(shù)細(xì)節(jié)。
裴堯堯 博士,有限元開(kāi)源框架Feon的開(kāi)發(fā)者。目前任教于湖北工業(yè)大學(xué),從事算法研究與教學(xué)工作。擅長(zhǎng)Python語(yǔ)言,熱愛(ài)區(qū)塊鏈技術(shù),是區(qū)塊鏈技術(shù)的推崇者。對(duì)區(qū)塊鏈的底層實(shí)現(xiàn)有較為深入的研究,希望能為區(qū)塊鏈的發(fā)展盡綿薄之力。著有《Python與有限元》一書(shū),廣受讀者好評(píng)。
第1章 區(qū)塊鏈原理簡(jiǎn)介 1
1.1 區(qū)塊鏈簡(jiǎn)要發(fā)展史 2
1.1.1 什么是比特幣 2
1.1.2 比特幣與區(qū)塊鏈的關(guān)系 2
1.2 什么是中心化 3
1.2.1 交易 3
1.2.2 數(shù)字貨幣 3
1.2.3 復(fù)式記賬法 4
1.2.4 未消費(fèi)交易輸出 6
1.2.5 中心化 7
1.2.6 區(qū)塊與區(qū)塊鏈 8
1.2.7 創(chuàng)世區(qū)塊 9
1.3 去中心化原理 11
1.3.1 分布式存儲(chǔ) 12
1.3.2 對(duì)等網(wǎng)絡(luò) 12
1.3.3 交易池 14
1.3.4 “挖礦” 16
1.3.5 創(chuàng)幣交易 17
1.3.6 工作量證明 18
1.3.7 共識(shí)與共識(shí)算法 19
1.3.8 確認(rèn) 20
1.3.9 誠(chéng)實(shí)節(jié)點(diǎn)和惡意節(jié)點(diǎn) 20
1.3.10 區(qū)塊鏈分叉 21
1.3.11 雙重支付 24
1.3.12 虛擬機(jī) 25
1.3.13 礦機(jī)和礦池 26
1.4 遺留的問(wèn)題 26
第2章 區(qū)塊鏈模擬器及Python入門(mén) 29
2.1 區(qū)塊鏈模擬器GUI簡(jiǎn)介 30
2.1.1 為什么寫(xiě)區(qū)塊鏈模擬器 30
2.1.2 區(qū)塊鏈模擬器GUI簡(jiǎn)介 30
2.2 Python入門(mén) 36
2.2.1 為什么是Python 37
2.2.2 Python基礎(chǔ)知識(shí) 37
2.3 Simchain簡(jiǎn)介 59
2.3.1 什么是Simchain 59
2.3.2 Simchain設(shè)計(jì) 61
2.3.3 Simchain使用 67
2.4 區(qū)塊鏈四要素 72
第3章 區(qū)塊鏈中的加密 73
3.1 為什么需要加密 74
3.2 如何實(shí)現(xiàn)加密 74
3.2.1 哈希算法 74
3.2.2 私鑰、公鑰和地址 82
3.2.3 實(shí)數(shù)域上的橢圓曲線 88
3.2.4 有限域上的橢圓曲線 90
3.2.5 橢圓曲線加密 97
3.2.6 錢(qián)包 105
3.3 可能的破解算法 111
3.3.1 枚舉法 111
3.3.2 BSGS算法 112
3.3.3 Pollard's rho算法 114
3.3.4 隨機(jī)數(shù)攻擊 115
3.3.5 如何保護(hù)私鑰安全 117
3.4 格密碼初探 118
3.4.1 抗量子計(jì)算密碼 118
3.4.2 格基礎(chǔ)知識(shí) 119
3.4.3 格問(wèn)題 126
3.4.4 *短向量問(wèn)題 128
3.4.5 *近向量問(wèn)題 130
3.4.6 GGH數(shù)字簽名 133
3.4.7 Lyubashevshy數(shù)字簽名 135
第4章 交易 141
4.1 創(chuàng)建交易 142
4.1.1 交易的格式 142
4.1.2 交易的數(shù)據(jù)結(jié)構(gòu) 143
4.1.3 UTXO與UTXO集 151
4.1.4 一般交易的創(chuàng)建 157
4.1.5 創(chuàng)幣交易的創(chuàng)建 164
4.2 廣播交易 165
4.3 驗(yàn)證交易 166
4.3.1 一般交易的驗(yàn)證 166
4.3.2 創(chuàng)幣交易的驗(yàn)證 174
4.4 交易傳播中的安全 174
4.4.1 簽名明文攻擊 174
4.4.2 創(chuàng)幣交易的安全 176
4.5 可編程的交易 177
4.5.1 比特幣腳本 177
4.5.2 腳本引擎的工作原理 177
4.5.3 堆棧機(jī)LittleMachine 183
4.5.4 多重簽名 191
4.6 交易的“一生” 193
第5章 區(qū)塊與區(qū)塊鏈 195
5.1 區(qū)塊 196
5.1.1 什么是區(qū)塊 196
5.1.2 區(qū)塊的數(shù)據(jù)結(jié)構(gòu) 196
5.1.3 區(qū)塊頭 200
5.1.4 梅克爾樹(shù)的構(gòu)建 201
5.1.5 簡(jiǎn)易支付驗(yàn)證與SPV節(jié)點(diǎn) 205
5.2 區(qū)塊鏈 211
5.2.1 區(qū)塊鏈的構(gòu)成 211
5.2.2 創(chuàng)世區(qū)塊 213
5.2.3 區(qū)塊鏈分類 217
第6章 去中心化共識(shí) 219
6.1 常見(jiàn)的共識(shí)算法 220
6.1.1 區(qū)塊鏈中的共識(shí) 220
6.1.2 工作量證明POW 221
6.1.3 Raft協(xié)議 228
6.2 創(chuàng)建候選區(qū)塊 233
6.2.1 交易選擇策略 234
6.2.2 消失的交易 234
6.2.3 創(chuàng)建創(chuàng)幣交易 234
6.2.4 創(chuàng)建候選區(qū)塊 237
6.3 挖礦、打包、廣播區(qū)塊 239
6.3.1 “挖礦” 239
6.3.2 打包候選區(qū)塊 239
6.3.3 廣播區(qū)塊 240
6.4 驗(yàn)證區(qū)塊 241
6.5 區(qū)塊鏈分叉 244
6.5.1 偶然分叉 244
6.5.2 硬分叉和軟分叉 247
6.6 添加到區(qū)塊鏈 248
6.6.1 比特幣中的區(qū)塊添加原則 248
6.6.2 51%攻擊 252
6.6.3 Simchain中的區(qū)塊添加原則 253
6.7 區(qū)塊的“一生” 262
6.8 知識(shí)總結(jié) 263
第7章 雜談 265
7.1 關(guān)于區(qū)塊鏈常見(jiàn)問(wèn)題的討論 266
7.2 關(guān)于真假區(qū)塊鏈項(xiàng)目的辨別 268
7.3 關(guān)于區(qū)塊鏈技術(shù)的發(fā)展趨勢(shì) 269
7.3.1 抗量子密碼學(xué) 269
7.3.2 零知識(shí)證明 269
7.3.3 代碼漏洞檢測(cè) 271
7.4 關(guān)于以太坊與智能合約 271
7.5 關(guān)于區(qū)塊鏈應(yīng)用的愿想 272