¥ 85 九五品
仅1件
作者王艺卓 著
出版社电子工业出版社
出版时间2019-08
版次1
装帧平装
上书时间2024-06-26
智能合约是近年来出现的一种旨在以信息化方式传播、验证、执行合同的计算机协议。尽管可编程的区块链为去中心化的概念在生活中的应用创造了无限可能,但区块链项目的大规模落地 与推广仍面临一系列挑战。《智能合约安全分析和审计指南》秉承由浅入深、理论与实践相结合的思想,在阐述理论的同时, 也对相关操作进行了详细说明。相信读者在阅读完本书后,会对以太坊智能合约有比较完整的了 解,更重要的是,会对与以太坊智能合约相关的网络安全问题有充分的认识,并能够在开发和审 计过程中积极应对常见的网络安全问题。
《智能合约安全分析和审计指南》适合智能合约开发人员、智能合约审计人员、网络安全研究人员,以及对区块链、智能合约感兴趣的读者阅读。
王艺卓
网络ID Xrosheart,就读于上海交通大学网络空间安全学院。现于Loccs实验室区块链研究小组和看雪区块链安全小组从事区块链领域的研究,在以太坊智能合约安全方面有相关在投论文和在申请专利。
陈佳林
看雪论坛“iOS安全”版主roysue,看雪讲师,在移动安全领域有丰富的项目经验。曾在2017看雪安全开发者峰会、GeekPwn发表主题演讲,多次主持银行、电信、行业部门的培训并担任讲师,在看雪、FreeBuf、安全客等安全社区发表多篇精华文章。目前就职于看雪科技,主要研究方向包括移动安全、区块链等。
王鑫
网络ID dwfault,启明星辰ADLab团队安全研究员。主要研究方向为区块链、Web浏览器等软件系统的漏洞分析、漏洞挖掘,并在上述领域获得了若干CVE漏洞编号和厂商致谢。
何芷珊
网络ID CoralineH,毕业于上海交通大学电子信息与电气工程学院信息安全专业。主要研究方向包括区块链、人工智能对抗、ICN等。
第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
— 没有更多了 —
以下为对购买帮助不大的评价