本书解释了为什么去中心化应用(DApp)将比现在流行的Web应用得到更广泛的使用以及实现更多盈利,展示了如何使用现有工具来创建可用的DApp及其市场,并研究了目前两个成功的DApp案例。
本书由以太坊联合创始人Gavin Wood博士和数字货币领域世界著名布道师Andreas M. Antonopoulos联袂撰写,全方位阐释以太坊相关技术及实践,是入门以太坊的必读经典。本书内容全面,既涵盖以太坊的精彩历史、以太坊基本概念、Solidity教程,以及关于代币和ICO的法律讨论,还深入讲解以太坊背后的密码学、智能合约编程实践等。本书主要面向程序员,通过这本实用指南,你将了解运行智能合约的区块链的工作原理、使用方法以及如何使用它们开发智能合约和去中心化应用程序。
Andreas M. Antonopoulos是备受好评的畅销书作家、演讲家和教育家,也是世界上重要的比特币和开放式区块链专家之一。Andreas善于化繁为简,让普通人理解深奥的技术话题。
Gavin Wood博士是以太坊的联合创始人和前首席技术官,也是Solidity面向合约编程语言的发明人。他还是Web3基金会的创始人兼总裁,也是Parity Technologies的创始人兼首席程序员。
前言1
*语速查11
章什么是以太坊23
以太坊与比特币的比较23
区块链的组件24
以太坊的诞生25
以太坊的四个开发阶段26
以太坊:一个通用目的的区块链27
以太坊的组件28
以太坊和图灵完备29
从通用目的的区块链到DApp31
互联网的三次浪潮32
以太坊的开化32
为什么要学习以太坊?33
这本书将会教你什么内容?33
2章以太坊基本概念34
以太币的货币单位34
选择以太坊钱35
控制和责任36
MetaMask入门37
世界计算机简介45
外部账户和合约账户46
一个简单的智能合约:Faucet46
编译Faucet合约49
在区块链上创建合约50
与合约进行交互52
总结57
3章以太坊客户端58
以太坊网络58
运行以太坊客户端62
以太坊区块链数据的同步67
远程调用以太坊客户端71
总结74
4章以太坊背后的密码学75
密钥和地址75
公钥密码学和加密货币76
私钥78
公钥79
密码学哈希函数85
以太坊地址87
总结92
5章钱93
钱技*概述93
钱的佳实践97
总结8
6章交易9
交易的结构9
交易的数1
交易的gas115
交易的接收方117
交易中的以太币和数据117
特殊交易:合约创建121
数字123
的前缀值(v)和公钥恢复129
离线130
交易的传播131
记录在区块链上132
多交易132
总结133
7章智能合约与Solidity134
什么是智能合约?134
智能合约的生命周期135
以太坊编程语言136
使用Solidity编写智能合约138
以太坊合约的应用程序二进制接140
使用Solidity进行编程142
与gas有关的注意事项163
总结165
8章智能合约与Vyper166
合约的常见漏洞和Vyper166
与Solidity的比较167
装饰器171
函数和变量顺序172
编译173
在编译器层面防止溢出错误173
读取数据174
总结174
9章智能合约安全175
安全佳实践175
安全风险和反模式176
重入176
算*溢出181
意外的以太币185
DELEGATECALL189
默认的可见性195
无序错觉197
外部合约引用199
短地址/参数攻击204
未检查的调用返回值206
竞争条件/预先交易208
拒绝服务211
区块时间戳纵214
小心使用构造函数216
未初始化的存储指针217
浮点数和精度219
Tx.Origin验证222
合约程序库223
总结224
0章代币225
代币有哪些使用方式?225
代币和可替代性227
对手方风险227
代币和内在性227
使用代币:工具型代币还是权益型代币?228
以太坊的代币230
代币标准251
代币接标准的扩展253
代币和ICO254
总结254
1章预言机255
为什么需要预言机?255
预言机的应用场景和示例256
预言机的设计模式257
数据认证259
计算性的预言机260
去中心化预言机262
Solidity中的预言机客户端接262
总结266
2章去中心化应用267
什么是DApp268
一个基本的DApp示例:拍*DApp271
拍*DApp的进一步去中心化276
使用Swarm进行数据存储277
以太坊名称服务280
从普通应用到去中心化应用291
总结292
3章以太坊虚拟机293
什么是EVM?293
图灵完备和gas308
gas308
总结311
4章共识312
基于工作量证明的共识机制313
基于权益证明的共识机制313
Ethash:以太坊的PoW算法314
Casper:以太坊的PoS算法315
共识的原则316
争议和竞争316
总结317
附录A 以太坊的分*历史318
附录B 以太坊标准325
附录C EVM作码和对应的gas开销332
附录D 开发工具、框架和类库339
附录E web3.*s教程359