logo
分类于: 设计 职场办公

简介

智能合约安全分析和审计指南

智能合约安全分析和审计指南 0.0分

资源最后更新于 2020-11-02 12:14:29

作者:王艺卓 等 著

出版社:电子工业出版社

出版日期:2019-01

ISBN:9787121367847

文件格式: pdf

标签: 智能合约 信息安全 以太坊

简介· · · · · ·

智能合约是近年来出现的一种旨在以信息化方式传播、验证、执行合同的计算机协议。尽管可编程的区块链为去中心化的概念在生活中的应用创造了无限可能,但区块链项目的大规模落地 与推广仍面临一系列挑战。《智能合约安全分析和审计指南》秉承由浅入深、理论与实践相结合的思想,在阐述理论的同时, 也对相关操作进行了详细说明。相信读者在阅读完本书后,会对以太坊智能合约有比较完整的了 解,更重要的是,会对与以太坊智能合约相关的网络安全问题有充分的认识,并能够在开发和审 计过程中积极应对常见的网络安全问题。

《智能合约安全分析和审计指南》适合智能合约开发人员、智能合约审计人员、网络安全研究人员,以及对区块链、智能合约感兴趣的读者阅读。

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

第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