本文介绍了智能合约的安全问题以及 Vyper 编程语言的特性。Vyper 致力于通过牺牲灵活性来提高代码的可审计性和安全性,从而减少智能合约漏洞的风险。文章对比了 Vyper 和 Solidity 的设计选择,例如 Vyper 不支持修饰器、类继承、内联汇编、函数重载和变量类型转换,同时介绍了 Vyper 中的装饰器、函数和变量排序、编译方式,以及如何处理溢出错误和读写数据。
本章介绍了以太坊的基础知识,包括ether的货币单位、钱包的选择与使用,以及私钥的管理。通过MetaMask钱包,用户可以进行以太币的发送和接收。同时,还介绍了如何使用Solidity编写智能合约,并通过Remix IDE进行编译和部署,最终实现与合约的交互,如向合约发送以太币和从合约提取资金。本章旨在帮助读者入门以太坊,掌握基本概念和操作,为后续深入学习打下基础。
本章介绍了预言机在以太坊智能合约中的作用,它是连接链上和链下世界的桥梁,为智能合约提供外部数据源,从而扩展了智能合约的应用范围。文章讨论了预言机的三种设计模式:即时读取、发布-订阅和请求-响应,以及数据认证方法,包括真实性证明和可信执行环境(TEE)。此外,还介绍了去中心化预言机, 跨链消息传递协议等概念,强调了信任模型在预言机使用中的重要性,以及安全假设对于确保智能合约免受潜在错误输入影响...
本书是《精通以太坊》第二版的前言,介绍了本书的创作背景、作者团队以及本书的定位和目标读者。本书旨在为读者提供一个全面深入的以太坊学习资源,既可以作为新手入门的指南,也可以作为程序员深入研究的技术手册。读者可以通过本书学习智能合约的开发以及去中心化应用。
本章深入探讨了以太坊交易的结构、类型和生命周期,从传统的交易到引入访问列表、基础费用、blob gas和委托指示符的新型交易,详细解释了Nonce的作用和追踪方法,以及gas费用的机制和交易接收者的验证。此外,还介绍了交易价值、数据有效载荷、合约创建、数字签名,以及MEV对交易生命周期的影响。
本章介绍了去中心化应用(DApp)的概念、架构和组件,包括智能合约后端、链下数据存储(如IPFS和Merkle树)以及Web用户界面前端。通过一个简单的“Hello World”DApp示例,展示了如何使用Scaffold-ETH工具快速搭建、部署和去中心化DApp,包括部署到Vercel和IPFS。最后总结了DApp的架构堆栈,为构建完全去中心化的应用程序提供了指导。
本章介绍了零知识证明,它允许在不泄露信息的情况下验证声明的真实性。文章回顾了零知识证明的历史,从最初的理论概念到SNARKs和STARKs等实际应用。探讨了为以太坊扩展性和隐私改进,零知识证明如何在二层网络(L2)和主网(L1)中应用。通过划分问题的简化示例,展示了零知识证明的基本概念,并讨论了SNARKs和STARKs的区别以及zk-EVM和zk-VM的最新进展。
本章节深入探讨了以太坊虚拟机(EVM)的架构、指令集、运行机制以及状态管理,并详细介绍了EVM指令集、以太坊状态的存储方式 Merkle-Patricia Trie。同时还探讨了Gas机制,用于限制计算资源使用和预防拒绝服务攻击。分析了EVM的各项限制,探讨了以太坊虚拟机(EVM)未来升级方向。
本章主要介绍了区块链中共识机制的重要性,以及以太坊如何通过工作量证明(PoW)和权益证明(PoS)达成共识。详细解释了PoS中的LMD-GHOST和Casper FFG算法,以及它们如何保证以太坊的安全性和活跃性。同时,还讨论了共识算法面临的争议和挑战,例如时间游戏和超多数客户端的中心化风险。最后强调了理解共识算法对于把握以太坊网络发展方向的重要性。