區(qū)塊鏈技術(shù)基礎(chǔ)教程:原理、方法及實(shí)踐
定 價(jià):69 元
叢書名:區(qū)塊鏈技術(shù)叢書
- 作者:聶長海陸超逸高維忠鄭志強(qiáng)編著
- 出版時(shí)間:2023/2/1
- ISBN:9787111720010
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:F713.361.3
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書首先介紹了區(qū)塊鏈的起源、概念、技術(shù)和特征,并介紹了密碼學(xué)原理和共識(shí)機(jī)制等基礎(chǔ)理論,在比特幣、以太坊和超級(jí)賬本等典型實(shí)踐的基礎(chǔ)上介紹了一般的區(qū)塊鏈技術(shù)架構(gòu),還專門介紹了公有鏈、區(qū)塊鏈即服務(wù)(BaaS)等區(qū)塊鏈技術(shù),然后特別介紹了區(qū)塊鏈安全與監(jiān)管、區(qū)塊鏈的測試與驗(yàn)證、區(qū)塊鏈技術(shù)的一些應(yīng)用及存在的問題,最后介紹了區(qū)塊鏈的發(fā)展趨勢(shì)。
本書適用于計(jì)算機(jī)相關(guān)專業(yè)的高校師生,其中一些內(nèi)容(如加密學(xué)和區(qū)塊鏈應(yīng)用項(xiàng)目開發(fā))涉及高等代數(shù)、計(jì)算機(jī)編程和軟件工程開發(fā)等知識(shí),因此更適合作為研究生課程的教材。
前 言
背景與動(dòng)機(jī)
具體哪一年第一次聽說區(qū)塊鏈這個(gè)詞,我已經(jīng)記不清了,但對(duì)當(dāng)時(shí)那種新奇的感覺記憶猶新。在我每個(gè)學(xué)年開設(shè)的軟件質(zhì)量保證課程中,“軟件新技術(shù)介紹”部分是從2017年開始引入?yún)^(qū)塊鏈知識(shí)點(diǎn)的,因?yàn)橛姓n件可查,所以我記得清楚。到2019年,隨著中共中央政治局組織集體學(xué)習(xí)區(qū)塊鏈,區(qū)塊鏈技術(shù)的熱度到達(dá)了頂峰,全國各地的各級(jí)政府都開始學(xué)習(xí)和了解這項(xiàng)新技術(shù)。憑著前面幾年的學(xué)習(xí)和積累,在朋友和同事們的鼓勵(lì)和支持下,我也應(yīng)邀開始進(jìn)行 “區(qū)塊鏈技術(shù)及應(yīng)用”科普講座,聽眾經(jīng)常達(dá)300多人。
為了做好每場報(bào)告,我學(xué)習(xí)了很多相關(guān)材料,深切地感受到大家對(duì)區(qū)塊鏈技術(shù)滿懷期待,越來越覺得應(yīng)該把區(qū)塊鏈的知識(shí)系統(tǒng)梳理一下,形成一本講義,并準(zhǔn)備申請(qǐng)?jiān)谀暇┐髮W(xué)計(jì)算機(jī)系給本科生和研究生開設(shè)一門課程。
恰逢2020年的全球新冠肺炎疫情,大家都居家辦公,無人來訪,我也不能訪問別人,正好安心讀書,安心著書立說。于是先做一本講義,試用了三年時(shí)間,改進(jìn)后再出版為教材。
其實(shí),促成這本教材的關(guān)鍵是2020年年初我遇見了30年前的學(xué)長鄭志強(qiáng)教授,他目前擔(dān)任得克薩斯大學(xué)達(dá)拉斯分校Ashbel Smith 講席教授,是信息系統(tǒng)和金融學(xué)雙聘教授,博士畢業(yè)于沃頓商學(xué)院信息系統(tǒng)專業(yè),是信息系統(tǒng)領(lǐng)域國際知名學(xué)者,目前研究領(lǐng)域包括區(qū)塊鏈、金融科技、智慧健康等。鄭教授在區(qū)塊鏈研究中專長于數(shù)據(jù)資產(chǎn)的通證化設(shè)計(jì)和管理,帶領(lǐng)團(tuán)隊(duì)自主開發(fā)了多項(xiàng)區(qū)塊鏈應(yīng)用,包括水產(chǎn)品區(qū)塊鏈溯源、數(shù)據(jù)算法交易等。他還為多家金融科技初創(chuàng)公司提供技術(shù)支持,包括資產(chǎn)通證化估值和管理、供應(yīng)鏈金融區(qū)塊鏈化等。他是在美國管理學(xué)院最早一批開設(shè)區(qū)塊鏈課程的教授,從2015年開始就講授區(qū)塊鏈技術(shù)和應(yīng)用。
我的博士生陸超逸從2017年開始,一直研究分布式系統(tǒng)的測試與形式化驗(yàn)證。2019年年初,他響應(yīng)政府號(hào)召,順應(yīng)時(shí)代發(fā)展潮流,開始轉(zhuǎn)戰(zhàn)區(qū)塊鏈系統(tǒng)的測試和形式化驗(yàn)證。
他對(duì)這個(gè)領(lǐng)域進(jìn)行了系統(tǒng)的調(diào)研和深入的研究,并為本書的編寫做了大量的工作。
高維忠是美國甲骨文公司的資深程序員,也是我在南京大學(xué)和園的鄰居,一直對(duì)區(qū)塊鏈懷有很高的興趣。我們晚上一起在南京大學(xué)和園西邊的九鄉(xiāng)河公園散步時(shí),經(jīng)常討論區(qū)塊鏈的精髓和各種應(yīng)用,探索下一個(gè)區(qū)塊鏈的殺手級(jí)應(yīng)用會(huì)出現(xiàn)在哪里,以及區(qū)塊鏈如何像互聯(lián)網(wǎng)那樣深刻地改變?nèi)藗兊纳睢?br />內(nèi)容組織
市面上關(guān)于區(qū)塊鏈的書有不少,但缺乏把區(qū)塊鏈核心技術(shù)、工程開發(fā)及應(yīng)用系統(tǒng)地講述透徹且適合于中高級(jí)層次(如研究生)學(xué)習(xí)的教材。本書首先闡述區(qū)塊鏈在數(shù)字經(jīng)濟(jì)中的意義;然后從區(qū)塊鏈基礎(chǔ)技術(shù)入手,系統(tǒng)地解釋了加密算法、共識(shí)、分布式計(jì)算、通證、去中心化、智能合約等核心技術(shù)在區(qū)塊鏈中如何實(shí)現(xiàn);其后分別開單章全面介紹比特幣、以太坊、超級(jí)賬本三個(gè)目前最通用的區(qū)塊鏈體系,涵蓋公有鏈、聯(lián)盟鏈和私有鏈的三大體系,總結(jié)了區(qū)塊鏈的一般技術(shù)體系,并專門介紹了公有鏈技術(shù)架構(gòu)和BaaS?;之后,介紹了區(qū)塊鏈工程開發(fā),包括常用的以太坊體系的Solidity和超級(jí)賬本體系的Fabric,以及區(qū)塊鏈項(xiàng)目開發(fā)中的軟件測試方法、區(qū)塊鏈的安全與監(jiān)控;再后,結(jié)合實(shí)例介紹了各種應(yīng)用場景,如溯源、存證、票據(jù)、支付、供應(yīng)鏈金融等,并著眼于未來,探討了區(qū)塊鏈的一些可能應(yīng)用,如通證經(jīng)濟(jì)、去中心化金融、數(shù)據(jù)交易等;最后,本書以討論區(qū)塊鏈的未來發(fā)展收尾,探討了新興技術(shù)(如量子計(jì)算和零知識(shí)證明)對(duì)區(qū)塊鏈的影響,以及未來區(qū)塊鏈如何與大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能相結(jié)合。
致謝
本書編寫過程中得到了南京大學(xué)計(jì)算機(jī)系各位老師的幫助,這里特別感謝計(jì)算機(jī)系副主任仲盛教授,以及陳力軍教授、申富饒教授和柏文陽副教授等給予的鼓勵(lì)和支持。感謝江蘇省計(jì)算機(jī)學(xué)會(huì)金瑩秘書長的大力支持。
感謝2017~2022年這6年來選修我的區(qū)塊鏈技術(shù)與應(yīng)用課程的本科生和研究生,他們?yōu)槲业闹v義提出了很多有價(jià)值的意見和建議。
本書的編寫得到國家自然科學(xué)項(xiàng)目“智能軟件測試的若干關(guān)鍵問題研究”(項(xiàng)目編號(hào):62072226)的資助。區(qū)塊鏈技術(shù)已經(jīng)成為信息技術(shù)的基礎(chǔ),將來也是智能化軟件的基礎(chǔ),未來要做好這個(gè)關(guān)于智能化軟件測試的研究項(xiàng)目,深入研究區(qū)塊鏈技術(shù)與應(yīng)用是必不可少的基礎(chǔ)。同時(shí),我們也得到了南京大學(xué)軟件新技術(shù)國家重點(diǎn)實(shí)驗(yàn)室、南京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系、華為科技有限公司等項(xiàng)目和單位的支持,在此一并表示感謝。
編者于南京大學(xué)仙林校區(qū)計(jì)算機(jī)科學(xué)與技術(shù)樓
2022年5月10日
目 錄
推薦序
前言
第1章 區(qū)塊鏈概述 1
1.1 區(qū)塊鏈技術(shù)緣起 2
1.1.1 從密碼學(xué)歷史與金融危機(jī)談起 2
1.1.2 金融交易的管理與信任危機(jī) 4
1.1.3 比特幣與中本聰?shù)某跣摹?
1.1.4 區(qū)塊鏈技術(shù)的起源 7
1.2 什么是區(qū)塊鏈 8
1.2.1 身邊的區(qū)塊鏈 9
1.2.2 區(qū)塊鏈的定義 9
1.2.3 比特幣與區(qū)塊鏈 10
1.3 區(qū)塊鏈技術(shù)的組成架構(gòu) 11
1.4 區(qū)塊鏈的特點(diǎn)與分類 12
1.5 區(qū)塊鏈的發(fā)展階段和社會(huì)意義 14
1.6 區(qū)塊鏈技術(shù)面臨的挑戰(zhàn)與不足 16
1.7 區(qū)塊鏈的應(yīng)用和監(jiān)管 18
1.8 我國對(duì)虛擬貨幣和“挖礦”
的相關(guān)規(guī)定 21
第2章 區(qū)塊鏈的密碼學(xué)原理 23
2.1 對(duì)稱加密與非對(duì)稱加密 23
2.1.1 對(duì)稱加密 23
2.1.2 非對(duì)稱加密 24
2.1.3 對(duì)稱加密與非對(duì)稱加密的
對(duì)比 25
2.2 數(shù)字簽名 25
2.3 RSA簡介 28
2.4 哈希算法 29
2.4.1 什么是哈希算法 29
2.4.2 哈希算法的特點(diǎn) 30
2.4.3 SHA256簡介 30
2.5 橢圓曲線密碼學(xué) 33
2.5.1 secp256k1曲線 34
2.5.2 橢圓曲線運(yùn)算 34
2.5.3 公鑰的生成 35
2.5.4 公鑰加密,私鑰解密 36
2.5.5 簽名驗(yàn)證(私鑰加密,
公鑰解密) 36
2.6 Merkle樹 37
第3章 區(qū)塊鏈中的共識(shí)機(jī)制 39
3.1 一致性問題 39
3.2 CAP定理 40
3.3 拜占庭將軍問題 41
3.3.1 通過口頭消息 42
3.3.2 通過書面消息 43
3.4 共識(shí)機(jī)制 45
3.4.1 PoW 46
3.4.2 PoS 47
3.4.3 DPoS 48
3.4.4 PBFT 48
第4章 比特幣 50
4.1 從貨幣發(fā)展史看比特幣 50
4.2 比特幣及其生態(tài)系統(tǒng) 52
4.3 比特幣的概念 55
4.4 比特幣區(qū)塊鏈結(jié)構(gòu) 56
4.5 比特幣交易 60
4.6 比特幣地址 65
4.7 比特幣錢包 67
4.8 挖礦與區(qū)塊創(chuàng)建 68
4.8.1 獎(jiǎng)勵(lì)機(jī)制 69
4.8.2 挖礦過程 70
4.9 驗(yàn)證 74
4.9.1 交易驗(yàn)證 74
4.9.2 區(qū)塊驗(yàn)證 75
4.9.3 簡單支付驗(yàn)證 75
4.10 分叉處理 76
4.10.1 硬分叉與軟分叉 76
4.10.2 挖礦分叉 78
4.10.3 算力51%攻擊與雙花問題 79
4.11 比特幣網(wǎng)絡(luò) 81
第5章 以太坊 83
5.1 以太坊簡介 83
5.2 分叉 85
5.3 貨幣 88
5.4 Gas 89
5.5 以太坊虛擬機(jī) 90
5.6 智能合約 91
5.7 樹形存儲(chǔ)結(jié)構(gòu) 94
5.7.1 Trie樹 95
5.7.2 Patricia樹 95
5.7.3 Merkle Patricia樹 98
5.8 賬戶與狀態(tài)樹 100
5.9 以太坊區(qū)塊 104
5.10 交易驗(yàn)證與區(qū)塊挖掘 107
5.10.1 交易驗(yàn)證與執(zhí)行 107
5.10.2 區(qū)塊挖掘與驗(yàn)證 109
5.10.3 挖礦難度調(diào)整 109
5.10.4 區(qū)塊驗(yàn)證 110
5.11 以太坊網(wǎng)絡(luò) 111
5.12 典型的以太坊應(yīng)用 111
第6章 超級(jí)賬本 113
6.1 超級(jí)賬本簡介 113
6.2 超級(jí)賬本項(xiàng)目 114
6.3 Fabric 116
6.3.1 核心思想 116
6.3.2 整體架構(gòu) 117
6.3.3 交易流程 121
6.3.4 可插拔的共識(shí) 122
6.3.5 智能合約 123
6.3.6 賬本結(jié)構(gòu) 124
6.3.7 鏈碼示例 124
6.3.8 超級(jí)賬本開發(fā)實(shí)例—Fabcar
區(qū)塊鏈應(yīng)用 129
6.4 超級(jí)賬本與以太坊的對(duì)比 134
第7章 區(qū)塊鏈技術(shù)架構(gòu) 136
7.1 區(qū)塊鏈的特征 136
7.2 區(qū)塊鏈適用的場景條件 137
7.3 區(qū)塊鏈關(guān)鍵技術(shù)架構(gòu)和
發(fā)展趨勢(shì) 138
7.3.1 區(qū)塊鏈的關(guān)鍵技術(shù)架構(gòu) 138
7.3.2 區(qū)塊鏈技術(shù)架構(gòu)現(xiàn)狀 143
7.3.3 區(qū)塊鏈技術(shù)發(fā)展趨勢(shì) 144
7.3.4 區(qū)塊鏈技術(shù)發(fā)展熱點(diǎn) 147
第8章 公有鏈 150
8.1 公有鏈的起源和概念 150
8.2 公有鏈的價(jià)值和特征 152
8.3 公有鏈的技術(shù)發(fā)展 155
8.4 公有鏈的治理 163
8.5 公有鏈的監(jiān)管 168
第9章 區(qū)塊鏈即服務(wù)平臺(tái)——
BaaS 171
9.1 概述 171
9.1.1 企業(yè)級(jí)區(qū)塊鏈服務(wù)的意義 172
9.1.2 常見的企業(yè)級(jí)區(qū)塊鏈系統(tǒng) 173
9.2 BaaS的定義和設(shè)計(jì)原則 177
9.3 BaaS的總體架構(gòu) 179
9.4 BaaS的基本模塊設(shè)計(jì) 180
9.4.1 區(qū)塊鏈服務(wù)管理平臺(tái)的
設(shè)計(jì) 180
9.4.2 區(qū)塊鏈底層關(guān)鍵技術(shù)的
設(shè)計(jì) 182
9.5 BaaS的高階特性 185
9.5.1 跨云部署 185
9.5.2 跨鏈交互 185
9.5.3 基于預(yù)言機(jī)的鏈上鏈下
訪問 187
9.5.4 分布式的身份管理 188
第10章 區(qū)塊鏈安全與監(jiān)管 190
10.1 從安全視角看區(qū)塊鏈技術(shù)的
發(fā)展和應(yīng)用態(tài)勢(shì) 190
10.2 區(qū)塊鏈技術(shù)應(yīng)用分層架構(gòu)及
安全風(fēng)險(xiǎn)分析 193
10.2.1 區(qū)塊鏈技術(shù)典型應(yīng)用架構(gòu)
逐漸趨于共識(shí) 193
10.2.2 區(qū)