本文是关于Vyper AST解释器系列文章的开篇,介绍了作者开发的Ivy工具,一个用Python编写的Vyper AST解释器,旨在提供Vyper语言的可执行规范。文章解释了编程语言实现中的核心术语,如语法、语义、AST,并阐述了Ivy在其中的作用,以及选择AST而非IR或字节码的原因。
本文由 Vyper 的首席安全工程师编写,总结了 Vyper 语言中 21 个可能导致安全问题或行为不直观的特性,提醒开发者注意这些“陷阱”,以编写更安全、可读性更强的智能合约。文章涵盖了求值顺序、模块初始化、动态数组内存分配、传值调用、Flags语义等多个方面,并给出了具体的代码示例和解释。
本文讨论了EVM编译器如何为函数分派生成代码以及相关的风险,重点关注访问控制。编译器定义了智能合约中基本的访问控制机制。文章还探讨了函数分派的鸟瞰图,以及编译器可能出现的错误,例如不正确的可见性推断、遗漏中止指令、省略支付能力检查等,并强调了对编译器团队进行适当的资金支持以及在代码库中添加健全性检查测试的重要性。