本書(shū)圍繞區(qū)塊鏈技術(shù)的基礎(chǔ)密碼理論和安全攻防技術(shù)展開(kāi)論述。全書(shū)共6章,主要內(nèi)容包括區(qū)塊鏈的基本概念及安全問(wèn)題、區(qū)塊鏈的密碼學(xué)技術(shù)、區(qū)塊鏈共識(shí)機(jī)制、比特幣和以太坊等密碼貨幣系統(tǒng)、區(qū)塊鏈系統(tǒng)的攻擊與防御等。本書(shū)從區(qū)塊鏈基礎(chǔ)密碼學(xué)原語(yǔ)和共識(shí)機(jī)制入手,采用區(qū)塊鏈“六層結(jié)構(gòu)(數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層、激勵(lì)層、合約層和應(yīng)用層)”+“應(yīng)用演變(比特幣—以太坊—其他區(qū)塊鏈應(yīng)用)”框架對(duì)區(qū)塊鏈系統(tǒng)面臨的安全問(wèn)題進(jìn)行系統(tǒng)化闡述,有助于幫助讀者從宏觀(guān)上掌握區(qū)塊鏈系統(tǒng)安全技術(shù)體系。
本書(shū)內(nèi)容豐富,通俗易懂,可作為高等學(xué)校網(wǎng)絡(luò)空間安全等專(zhuān)業(yè)的教材或者教學(xué)參考書(shū),也可作為網(wǎng)絡(luò)與信息安全從業(yè)人員的學(xué)習(xí)參考書(shū)。
區(qū)塊鏈被認(rèn)為是繼蒸汽機(jī)、電力、互聯(lián)網(wǎng)之后的下一代顛覆性創(chuàng)新技術(shù)。它利用塊鏈?zhǔn)浇Y(jié)構(gòu)驗(yàn)證和存儲(chǔ)數(shù)據(jù),利用分布式共識(shí)生成和更新數(shù)據(jù),利用密碼學(xué)算法傳輸和訪(fǎng)問(wèn)數(shù)據(jù),利用智能合約編程和操作數(shù)據(jù),具有可驗(yàn)證、防篡改、能溯源、去中心化等特性,以較低成本解決了信任與價(jià)值的可靠傳遞難題,逐步成為價(jià)值互聯(lián)網(wǎng)的重要基礎(chǔ)設(shè)施。隨著移動(dòng)互聯(lián)網(wǎng)和數(shù)字經(jīng)濟(jì)的飛速發(fā)展,區(qū)塊鏈技術(shù)引起了世界各國(guó)的廣泛關(guān)注,我國(guó)已將區(qū)塊鏈技術(shù)上升為國(guó)家戰(zhàn)略。然而,區(qū)塊鏈技術(shù)本身固有的匿名性、分布式、開(kāi)放性等難以匹配傳統(tǒng)的安全防護(hù)模型,帶來(lái)了諸多新的安全問(wèn)題。當(dāng)前針對(duì)區(qū)塊鏈的攻擊方式層出不窮,嚴(yán)重制約了區(qū)塊鏈技術(shù)的發(fā)展與應(yīng)用。
本書(shū)主要闡述區(qū)塊鏈基礎(chǔ)理論與安全攻防技術(shù)。全書(shū)共6章:第一章介紹區(qū)塊鏈的基本概念及安全問(wèn)題;第二章介紹區(qū)塊鏈底層的密碼學(xué)原語(yǔ)等;第三章介紹區(qū)塊鏈系統(tǒng)中常見(jiàn)的共識(shí)算法;第四、五章分別介紹比特幣和以太坊兩類(lèi)最具代表性的密碼貨幣系統(tǒng),給出從基本原理到開(kāi)發(fā)示例的全面論述;第六章介紹區(qū)塊鏈系統(tǒng)面臨的安全威脅及其原理,并對(duì)現(xiàn)有防御方法進(jìn)行分析歸納,提出區(qū)塊鏈安全防御體系構(gòu)建建議。
本書(shū)選材緊扣區(qū)塊鏈基礎(chǔ)理論,側(cè)重于從密碼學(xué)角度對(duì)區(qū)塊鏈基礎(chǔ)理論和關(guān)鍵技術(shù)展開(kāi)系統(tǒng)闡述,按照“區(qū)塊鏈層次結(jié)構(gòu)”+“原理—應(yīng)用—開(kāi)發(fā)”兩條主線(xiàn)來(lái)論述區(qū)塊鏈技術(shù)體系,同時(shí)詳盡介紹了區(qū)塊鏈技術(shù)面臨的50余種攻擊方式及其內(nèi)在聯(lián)系,力求為讀者呈現(xiàn)區(qū)塊鏈系統(tǒng)攻防技術(shù)體系全貌。
本書(shū)主要由王劍鋒、陳曉峰、王連海編寫(xiě),參與本書(shū)編寫(xiě)的還有博士生田國(guó)華、沈珺、吳姣姣、曹艷梅、呂春陽(yáng),碩士生趙尹源、張夫猷、張萌、王一凡、宿雅萍、馮珮柔、張中俊等,在此一并向他們表示感謝。另外,本書(shū)的編寫(xiě)得到了山東省重點(diǎn)研發(fā)計(jì)劃項(xiàng)目“區(qū)塊鏈網(wǎng)絡(luò)監(jiān)管與安全防護(hù)關(guān)鍵技術(shù)”(批準(zhǔn)號(hào):2019JZZY020129)和西安電子科技大學(xué)科技專(zhuān)著出版基金資助項(xiàng)目的支持,特此表示感謝。
由于作者水平有限,書(shū)中不妥之處在所難免,懇請(qǐng)讀者提出寶貴意見(jiàn)。
作 者
? 2022年2月于西安
第一章 緒論 1
1.1 區(qū)塊鏈的起源與發(fā)展 2
1.1.1 區(qū)塊鏈簡(jiǎn)介 2
1.1.2 區(qū)塊鏈的發(fā)展歷程 3
1.2 區(qū)塊鏈的分類(lèi) 4
1.3 區(qū)塊鏈的層次結(jié)構(gòu) 6
1.4 區(qū)塊鏈的安全問(wèn)題 7
參考文獻(xiàn) 8
第二章 區(qū)塊鏈的密碼學(xué)技術(shù) 10
2.1 哈希函數(shù) 10
2.1.1 哈希函數(shù)概述 10
2.1.2 區(qū)塊鏈中常用的哈希函數(shù) 11
2.2 數(shù)字簽名 15
2.2.1 數(shù)字簽名概述 16
2.2.2 區(qū)塊鏈中常用的數(shù)字簽名算法 17
2.3 Merkle樹(shù) 19
2.3.1 Merkle樹(shù)概述 19
2.3.2 Merkle樹(shù)在區(qū)塊鏈中的應(yīng)用 20
2.4 零知識(shí)證明 20
2.4.1 零知識(shí)證明概述 21
2.4.2 零知識(shí)證明在區(qū)塊鏈中的應(yīng)用 21
參考文獻(xiàn) 22
第三章 區(qū)塊鏈共識(shí)機(jī)制 24
3.1 共識(shí)機(jī)制的分類(lèi) 24
3.2 系統(tǒng)模型與特性 25
3.2.1 系統(tǒng)模型 25
3.2.2 成員選舉共識(shí)特性 26
3.2.3 狀態(tài)共識(shí)特性 27
3.3 成員選舉共識(shí) 27
3.3.1 PoW 27
3.3.2 PoS 30
3.3.3 DPoS 31
3.3.4 其他成員選舉共識(shí)算法 33
3.4 狀態(tài)共識(shí) 43
3.4.1 中本聰共識(shí) 44
3.4.2 GHOST 45
3.4.3 拜占庭類(lèi)共識(shí)算法 46
3.4.4 Paxos共識(shí) 53
3.4.5 Raft共識(shí) 55
3.4.6 基于排序的共識(shí)算法 60
3.4.7 Thunderella共識(shí)算法 62
3.4.8 混合共識(shí)算法 62
參考文獻(xiàn) 64
第四章 區(qū)塊鏈1.0:密碼貨幣 68
4.1 比特幣簡(jiǎn)介 68
4.2 比特幣的核心概念 69
4.2.1 比特幣交易 69
4.2.2 比特幣腳本 73
4.3 比特幣技術(shù)原理 74
4.3.1 比特幣架構(gòu) 74
4.3.2 數(shù)據(jù)層 75
4.3.3 網(wǎng)絡(luò)層 79
4.3.4 共識(shí)層 80
4.3.5 激勵(lì)層 82
4.3.6 應(yīng)用層 83
4.4 比特幣錢(qián)包 83
4.4.1 錢(qián)包概述 83
4.4.2 非確定性錢(qián)包 83
4.4.3 確定性錢(qián)包 84
4.4.4 分層確定性錢(qián)包 84
4.4.5 助記詞 85
4.4.6 錢(qián)包地址生成 86
4.5 骨架協(xié)議 88
4.5.1 骨架協(xié)議的概念 88
4.5.2 骨架協(xié)議的應(yīng)用 93
4.6 比特幣安全 97
4.6.1 比特幣安全原則 97
4.6.2 最佳用戶(hù)安全實(shí)踐 99
4.7 區(qū)塊鏈應(yīng)用 100
4.7.1 染色幣 102
4.7.2 合約幣 102
4.7.3 比特幣現(xiàn)金 103
4.7.4 RootStock平臺(tái) 103
4.7.5 HiveMind預(yù)測(cè)市場(chǎng) 103
4.8 其他密碼貨幣 104
4.8.1 Primecoin 104
4.8.2 Permacoin 104
4.8.3 PPCoin 105
4.8.4 Litecoin 105
4.8.5 Zcash 106
4.8.6 Dogecoin 106
參考文獻(xiàn) 106
第五章 區(qū)塊鏈2.0:以太坊 108
5.1 以太坊簡(jiǎn)介 108
5.1.1 以太坊1.0 108
5.1.2 以太坊2.0 110
5.2 數(shù)據(jù)層 111
5.2.1 編碼技術(shù) 111
5.2.2 數(shù)據(jù)結(jié)構(gòu) 112
5.3 網(wǎng)絡(luò)層 116
5.3.1 以太坊節(jié)點(diǎn) 116
5.3.2 以太坊網(wǎng)絡(luò) 117
5.3.3 以太坊測(cè)試網(wǎng)絡(luò) 119
5.3.4 以太坊本地私鏈 122
5.4 共識(shí)層 123
5.4.1 Ethash算法 123
5.4.2 Ghost協(xié)議 129
5.4.3 Casper算法 130
5.5 激勵(lì)層 130
5.5.1 以太幣 130
5.5.2 Gas機(jī)制 131
5.5.3 挖礦獎(jiǎng)勵(lì) 133
5.6 合約層 134
5.6.1 智能合約 134
5.6.2 運(yùn)行環(huán)境 135
5.6.3 編程語(yǔ)言 139
5.6.4 開(kāi)發(fā)環(huán)境 143
5.7 應(yīng)用層 146
5.7.1 DApp概述 147
5.7.2 以太坊開(kāi)發(fā)環(huán)境搭建 148
5.7.3 Geth使用 151
5.7.4 搭建以太坊私有鏈 153
5.7.5 以太坊編程接口 161
5.7.6 DApp開(kāi)發(fā)工具及框架 167
5.7.7 Truffle開(kāi)發(fā)案例:寵物商店 177
參考文獻(xiàn) 186
第六章 區(qū)塊鏈系統(tǒng)的攻擊與防御 188
6.1 區(qū)塊鏈安全態(tài)勢(shì) 188
6.2 區(qū)塊鏈數(shù)據(jù)層攻擊 191
6.2.1 數(shù)據(jù)隱私竊取 191
6.2.2 惡意數(shù)據(jù)攻擊 193
6.2.3 防御策略與方法 193
6.3 區(qū)塊鏈網(wǎng)絡(luò)層攻擊 195
6.3.1 針對(duì)P2P網(wǎng)絡(luò)的攻擊 195
6.3.2 防御策略與方法 200
6.4 區(qū)塊鏈共識(shí)層攻擊 201
6.4.1 共識(shí)機(jī)制對(duì)比 201
6.4.2 針對(duì)授權(quán)共識(shí)機(jī)制的攻擊 201
6.4.3 針對(duì)非授權(quán)共識(shí)機(jī)制的攻擊 203
6.4.4 防御策略與方法 207
6.5 區(qū)塊鏈合約層攻擊 210
6.5.1 針對(duì)智能合約的攻擊 210
6.5.2 針對(duì)合約虛擬機(jī)的攻擊 214
6.5.3 智能合約安全的開(kāi)源工具 215
6.5.4 防御策略與方法 218
6.6 區(qū)塊鏈應(yīng)用層攻擊 219
6.6.1 挖礦場(chǎng)景中的攻擊 220
6.6.2 區(qū)塊鏈交易場(chǎng)景中的攻擊 224
6.6.3 防御策略與方法 228
6.7 區(qū)塊鏈攻擊簇與安全防御體系 231
6.7.1 區(qū)塊鏈攻擊簇 235
6.7.2 區(qū)塊鏈安全防御體系 236
參考文獻(xiàn) 239
附錄 英文縮略詞中文對(duì)照 246