-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

智能合約安全分析和審計指南

( 簡體 字)
作者:王藝卓 等類別:1. -> 程式設計 -> 區塊鏈
譯者:
出版社:電子工業出版社智能合約安全分析和審計指南 3dWoo書號: 51493
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:7/1/2019
頁數:320
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121367847
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:



比特幣作為一種新型加密貨幣,其出現使得區塊鏈去中心化的概念成為密碼學研究的熱點方向。去中心化本身,則是金融領域現有機制的有益補充,甚至是一大突破。以以太坊為代表的區塊鏈2.0,作為可編程的區塊鏈去中心化平臺,其EVM及智能合約的創舉,為去中心化在金融、日常生活等領域創造了無限可能。在一個良好的生態環境中,區塊鏈正在茁壯成長。
盡管可編程的區塊鏈為去中心化的概念在現實生活中的應用創造了無限可能,但區塊鏈項目的大規模落地與推廣仍面臨一系列挑戰。除了容量、延遲、拓展性等性能方面的問題,一大制約因素就是區塊鏈的安全問題。一方面,區塊鏈本身的共識機制需要從安全性的角度加以證明;另一方面,自區塊鏈2.0出現以來,由于區塊鏈部署的不可更改性,智能合約本身的安全受到了密切關注,DAO等由于智能合約漏洞造成巨大損失乃至以太坊硬分叉的安全事件,更是將智能合約的安全問題提到了新的高度。
區塊鏈作為當下的熱點領域,應用日趨廣泛,未來的發展需要安全人才保駕護航。看雪學院(kanxue.com)專注安全領域20年,一直致力于培養安全人才、促進產業發展。對于區塊鏈領域,看雪學院也為眾多研究者提供了交流、研討的平臺。本書針對區塊鏈2.0——以太坊,著眼于智能合約安全,進行了深入的分析與探討,相信對于區塊鏈設計、開發人員,以及未來有志從事區塊鏈領域工作的人士,都會有很大的幫助。

段 鋼
看雪學院創始人
2019年5月9日


前言

區塊鏈作為一種去中心化的分布式數據存儲結構,以數字加密貨幣為源頭發展至今,在商業、金融、信息等多個領域發揮著重要的作用并受到了普遍的認可,在學術界和產業界掀起了潮流。據相關報道,2019年5月,區塊鏈的總市值達到2300億美元。
以太坊是僅次于比特幣的第二大區塊鏈系統。以太坊智能合約的鏈上編程語言使其不僅僅是一種加密貨幣,還是一個基于智能合約的去中心化應用程序(DApp)平臺。2018年年底,以太坊已經托管了超過100萬份智能合約。截至2019年5月,在全球范圍內2667個成熟且活躍的分布式應用中,約有92% 來自以太坊平臺。
與比特幣的腳本相比,以太坊智能合約作為圖靈完備的語言,在擁有功能更為強大、更具拓展性等優勢的同時,也因其復雜性產生了諸多安全問題。一方面,由于智能合約編程語言Solidity本身缺乏大整數等特性,需要開發人員在編寫過程中注重代碼的安全性、完整性;另一方面,由于區塊鏈本身的不可更改性,存在漏洞的合約一旦部署上鏈,就會造成不可逆的損失。以著名的DAO攻擊事件為例,黑客利用智能合約中的重入漏洞轉移了價值約6000萬美元的以太幣,導致以太幣的市值一度下跌了40%。因此,如何保障智能合約的安全性成了區塊鏈落地的關鍵。
在本書的寫作過程中,我們秉承由淺入深、理論與實踐相結合的思想,在闡述理論的同時,對實際操作進行了詳細說明。
第1章對區塊鏈的發展歷程進行了由淺入深的介紹。借助一個故事,結合經典的《比特幣白皮書》,梳理了區塊鏈1.0∼區塊鏈3.0的框架,并對以太坊及其智能合約進行了簡單的探討。
第2章旨在將區塊鏈和以太坊的概念與實現對應起來。結合實踐,對常用的以太坊客戶端geth、錢包、瀏覽器等應用的操作進行講解,既提供了命令行環境,也展示了圖形界面。
第3章將智能合約的語法、操作、應用融為一體,不僅介紹了智能合約的語法特性,還詳細講解了如何利用Truffle實現代幣合約和眾籌合約。
第4章對智能合約的常見漏洞及其原理進行了分析,在Remix IDE中對漏洞的代碼進行了調試,并針對每一個漏洞給出了相應的防范建議。
第5章介紹了常見的智能合約蜜罐,結合原理講解和復現操作,提供了相應的安全建議。
第6章對現有智能合約分析與審計工具的使用進行了說明。
第7章介紹了智能合約的審計流程,并提供了審計案例。
第8章深入以太坊虛擬機的運行機制,介紹了智能合約是如何部署和執行的。
相信讀者在閱讀完本書后,會對以太坊智能合約有較為完整的了解,更重要的是,會對以太坊智能合約的安全問題有更加充分的認識,能夠在開發和審計過程中發現并識別常見的漏洞和蜜罐。本書覆蓋面雖廣,但內容由淺入深、通俗易懂,同時不乏深度的思考。例如,智能合約審計工具的研發是研究的熱點,智能合約字節碼的解構能力是在以太坊上進行開發的敲門磚。
在本書的編寫過程中,我們得到了來自家人、同事、朋友及看雪區塊鏈研究社區的支持和鼓勵,在此表示感謝!
最后,希望本書能為推動區塊鏈的落地和技術的進步作出微薄的貢獻。

作 者
2019年6月于上海
內容簡介:

智能合約是近年來出現的一種旨在以信息化方式傳播、驗證、執行合同的計算機協議。盡管可編程的區塊鏈為去中心化的概念在生活中的應用創造了無限可能,但區塊鏈項目的大規模落地與推廣仍面臨一系列挑戰。本書秉承由淺入深、理論與實踐相結合的思想,在闡述理論的同時,也對相關操作進行了詳細說明。相信讀者在閱讀完本書后,會對以太坊智能合約有比較完整的了解,更重要的是,會對與以太坊智能合約相關的網絡安全問題有充分的認識,并能夠在開發和審計過程中積極應對常見的網絡安全問題。本書適合智能合約開發人員、智能合約審計人員、網絡安全研究人員,以及對區塊鏈、智能合約感興趣的讀者閱讀。
目錄:

第1章 由淺入深理解區塊鏈
1.1 區塊鏈簡介 1
1.2 區塊鏈1.0 ——比特幣,一種點對點的現金支付系統 1
1.2.1 比特幣的產生 1
1.2.2 深入分析比特幣的工作機制 5
1.2.3 結合《比特幣白皮書》理解比特幣 9
1.2.4 比特幣的回顧與剖析 13
1.2.5 比特幣的不足 16
1.3 區塊鏈2.0 ——以太坊 18
1.3.1 以太坊的產生 18
1.3.2 深入理解以太坊 18
1.4 區塊鏈3.0 ——DApp 25
1.5 基于以太坊的智能合約入門 25
1.5.1 智能合約的結構 26
1.5.2 EOS上的智能合約及其與以太坊的對比 27
第2章 智能合約開發實戰
2.1 以太坊網絡 29
2.2 私有鏈的搭建 30
2.2.1 geth簡介 30
2.2.2 geth的安裝與配置 31
2.2.3 geth的操作及相關說明 33
2.2.4 以太坊中的賬戶與密鑰 39
2.2.5 查看以太坊網絡的狀態 40
2.3 Mist和Ethereum Wallet的安裝、配置與操作 42
2.3.1 下載與安裝 42
2.3.2 通過Ethereum Wallet連接本地私有庫 42
2.3.3 用Mist實現多重簽名 45
2.4 以太坊智能合約開發實戰 52
2.4.1 開發環境 52
2.4.2 編寫第一個智能合約 54
2.5 ERC-20 Token合約 58
2.5.1 Token合約概述 58
2.5.2 ERC-20 Token合約詳解 60
2.5.3 對ERC-20 Token合約的進一步說明 61
2.6 本章小結 63
第3章 智能合約語法實戰
3.1 造就骨架——建立合約框架 64
3.2 初添血肉——添加狀態變量 66
3.2.1 數據類型簡介 66
3.2.2 添加uint類型的變量 67
3.2.3 添加結構體 67
3.2.4 添加數組 68
3.3 再添經脈——添加函數 70
3.3.1 添加一個簡單的函數 70
3.3.2 添加一個復雜的函數 72
3.3.3 特別的函數——回退函數 75
3.4 與外界交互——添加事件 80
3.5 大腦的溝通——多用戶拓展 82
3.5.1 神經的連接——映射和地址 82
3.5.2 神經的傳輸——msg.sender 85
3.5.3 神經興奮的判別——require()方法 87
3.5.4 生命的傳承——Inheritance 87
3.5.5 血液里的本能——“獵食”和“繁殖” 90
3.5.6 DNA的融合 91
3.5.7 各司其職的隱私——關于函數可見性的更多內容 92
3.5.8 同化作用——合約交互 93
3.5.9 同化作用的結果——獲得獎勵 98
3.6 高級Solidity理論 100
3.6.1 外部依賴關系 100
3.6.2 權限的產生——Ownable Contracts 101
3.6.3 權限的確認——函數修飾符onlyOwner 105
3.6.4 運轉的動力——gas 107
3.7 Truffle的介紹與安裝 108
3.8 創建、部署、使用Token合約 110
3.8.1 Truffle的box和OpenZeppelin 110
3.8.2 安裝tutorialtoken box和OpenZeppelin 111
3.8.3 創建TutorialToken合約 112
3.8.4 合約的編譯與部署 114
3.8.5 合約操作與實踐 116
3.9 創建、部署、使用ICO合約 121
3.9.1 ICO簡介 121
3.9.2 創建ICO合約 122
3.9.3 ICO合約的編譯與部署 125
3.9.4 ICO合約的操作實踐 130
3.10 本章小結 131
第4章 智能合約常見漏洞
4.1 智能合約審計指南 132
4.1.1 智能合約審計概述 132
4.1.2 智能合約審計報告的結構 132
4.2 整型溢出漏洞 133
4.2.1 漏洞概述 133
4.2.2 代碼片段 133
4.2.3 漏洞分析與調試 134
4.2.4 相關案例 139
4.2.5 規避整型溢出的神器——SafeMath庫 140
4.3 重入漏洞 141
4.3.1 漏洞概述 141
4.3.2 代碼片段 148
4.3.3 漏洞分析、調試與防范 149
4.3.4 相關案例 155
4.4 訪問控制缺陷 155
4.4.1 漏洞概述 155
4.4.2 代碼片段 156
4.4.3 漏洞分析、調試與防范 157
4.4.4 相關案例 162
4.5 特權功能暴露 162
4.5.1 漏洞概述 162
4.5.2 代碼片段 163
4.5.3 漏洞分析、調試與防范 163
4.5.4 相關案例 170
4.6 跨合約調用漏洞 170
4.6.1 漏洞概述 170
4.6.2 代碼片段 172
4.6.3 漏洞分析、調試與防范 173
4.6.4 相關案例 176
4.7 拒絕服務漏洞 177
4.7.1 漏洞概述 177
4.7.2 代碼片段 177
4.7.3 漏洞分析、調試與防范 178
4.7.4 相關案例 185
4.8 礦工特權隱患 185
4.8.1 漏洞概述 185
4.8.2 代碼片段 185
4.8.3 漏洞分析與防范 186
4.8.4 相關案例 187
4.9 短地址攻擊 187
4.9.1 漏洞概述 187
4.9.2 代碼片段 189
4.9.3 漏洞分析、調試與防范 190
4.10 tx.origin漏洞 195
4.10.1 漏洞概述 195
4.10.2 代碼片段 195
4.10.3 漏洞分析、調試與防范 195
4.11 本章小結 199
第5章 智能合約蜜罐
5.1 智能合約蜜罐概述 201
5.2 WhaleGiveaway1 201
5.2.1 蜜罐分析 201
5.2.2 代碼復現 203
5.3 Gift_1_ETH 207
5.3.1 蜜罐分析 207
5.3.2 代碼復現 210
5.4 MultiplicatorX3 213
5.4.1 蜜罐分析 213
5.4.2 代碼復現 215
5.5 TestBank 217
5.5.1 蜜罐分析 217
5.5.2 代碼復現 221
5.6 CryptoRoulette 223
5.6.1 蜜罐分析 223
5.6.2 代碼復現 225
5.7 OpenAddressLottery 226
5.7.1 蜜罐分析 226
5.7.2 代碼復現 229
5.8 KingOfTheHill 231
5.8.1 蜜罐分析 231
5.8.2 代碼復現 233
5.9 RACEFORETH 235
5.10 For_Test 237
5.10.1 蜜罐分析 237
5.10.2 代碼復現 239
5.11 DividendDistributor 240
5.11.1 蜜罐分析 240
5.11.2 代碼復現 244
5.12 與智能合約蜜罐相關的安全建議 246
5.13 本章小結 246
第6章 常見智能合約分析與審計工具
6.1 智能合約分析工具——Solgraph 247
6.1.1 Solgraph簡介 247
6.1.2 Solgraph的安裝與使用 248
6.2 智能合約審計工具——mythril 250
6.2.1 mythril的安裝 251
6.2.2 mythril的使用與功能說明 252
6.3 智能合約審計平臺——SECURIFY 257
6.3.1 SECURIFY概述 257
6.3.2 SECURIFY系統探究 259
6.3.3 SECURIFY的使用 261
第7章 智能合約審計實戰
7.1 智能合約審計清單 264
7.2 博彩游戲合約審計 265
7.2.1 合約代碼與合約功能瀏覽 265
7.2.2 審計報告 268
7.3 CryptoKitties合約審計 274
7.4 本章小結 277
第8章 智能合約字節碼解構
8.1 打開引擎蓋——智能合約下的字節碼 278
8.2 解構第一步——creation 282
8.3 解構第二步——runtime 291
8.3.1 函數選擇器 292
8.3.2 函數包裝器 295
8.3.3 函數主體 301
8.3.4 元數據散列 305
8.4 本章小結 309
參考文獻 310
序: