本文介绍了 Vyper 编译器如何建模和维护EVM内存,解释了Vyper函数的内存布局,变量如何分配和释放,以及调用约定如何与内存分配交织。它可以帮助开发者理解如何构建合约以节省gas,以及如何防止与DynArrays分配相关的某些DoS场景。同时,对于研究Vyper编译器的人来说,这是一份有用的资料,文中包含了许多对Vyper代码库的引用。
DynArrays
本文总结了 Vyper 编译器在过去一年中为提升安全性和稳定性所做的努力,包括增加安全预算、进行多次安全审计、发起漏洞赏金计划、实施合约监控系统等。文章还介绍了 Vyper 团队在测试和形式化验证方面的工作,以及未来的发展计划,强调了社区支持对 Vyper 安全的重要性。
技术资讯 2020/01/03
本文分享如何用Vyper而不是Solidity编写智能合约
本文介绍了如何通过浏览器钱包的RPC端点将Vyper智能合约语言与Jupyter笔记本集成,简化合约的编写、调试和部署流程。文章提到使用浏览器内置的RPC连接替代传统配置,避免私钥泄露风险,并支持多链切换以确保交易在正确的链上执行。此外,还探讨了利用该技术实现透明化DAO治理的可能性。
由于合约的不可变性, 项目会隐性依赖多年前编写的代码, 我们在修复 bug 时,就更需要注意它的潜在影响。
在这篇文章中,我们探讨了Vyper智能合约中重入攻击的机制、案例以及防御方法。重入攻击是一种严重的安全威胁,当合约在发送资金之前未能更新其状态时,攻击者可以通过递归调用提取函数来耗尽合约资金。重入攻击不仅仅在solidity中很常见,在Vyper智能合约中同样应该注意!
本文介绍了Certora团队开发的一款用于验证编译器优化的等价性检查工具,该工具通过比较优化前后程序的行为来检测编译器bug。文章还分享了该工具在Vyper编译器中发现的一个优化bug,该bug导致局部变量被错误地映射到相同的堆栈位置,从而改变了程序的行为。该bug已在Vyper 0.4.2版本中修复。
分析以太坊虚拟机各语言设计
本文回顾了 Vyper 团队在 Devcon Bangkok 上的活动,包括 Vitalik 在主题演讲中对 Vyper 的赞扬,Vyper 展台的盛况,以及与以太坊社区的互动和合作。文章还提到了 Vyper 周边产品的受欢迎程度,以及未来 Vyper 的发展计划,例如发布新的 Vyper 课程。
文章介绍了如何将Vyper智能合约编程语言与JupyterLab和Google Colab笔记本连接,使用户能够直接从笔记本中与智能合约交互并部署新合约。通过浏览器钱包进行地址和支付,解决了私钥在不安全环境中暴露的问题。