探索Solidity编译管道、优化假设,以及它们如何与内存安全汇编相关。
EVM对象格式(EOF)是一项期待已久的EVM升级,旨在现代化以太坊语言和工具生态。本文详细论述了EOF在开发工具、编译器、语言及应用程序等方面的优势,强调其对提高可用性和改善用户体验的重要性。相较于其他提案,EOF提供了一种清晰且结构化的方法来解决当前EVM中的多项问题。
本文介绍了在以太坊虚拟机(EVM)中引入三条新的指令 SWAPN、DUPN 和 EXCHANGE 以提升栈操作的灵活性,这三条指令允许访问深达256个项的栈,简化了编译器的设计,并支持更复杂的函数调用。文章详细阐述了这些新指令的规范、执行规则、兼容性及安全性考虑。
SWAPN
DUPN
EXCHANGE
本文详细介绍了Solidity编译器的新via-IR编译管道,该管道使用Yul作为中间表示,以便在生成EVM字节码之前进行优化。文章探讨了via-IR的动机、特性和转变为默认编译管道的计划,以及与传统编译流程的比较。
同大多数编程语言一样,用Solidity编写的智能合约无法直接在以太坊虚拟机(EVM)上运行,必须先将其编译成字节码。
这篇文章介绍了Solidity作为以太坊智能合约编程语言的背景、优势和使用方法,详细阐述了其历史、与其他语言的相似性、在以太坊及其他兼容区块链上的应用,以及学习资源,提供了丰富的内容和实际案例,是学习Solidity的良好资料。
本文介绍了Solidity编译器的作用,即将Solidity代码转换为EVM可以理解和执行的字节码的过程。文章详细阐述了solc和solc.js两种编译器的区别与安装方法,包括使用npm、Docker和二进制包等多种方式。此外,还介绍了Solidity反编译器,它可以将编译后的EVM代码转换回类似Solidity的源代码,并列举了几种常用的反编译器工具。
Solang 是一个为 Solana 设计的 Solidity 编译器,旨在帮助以太坊开发者更容易地迁移到 Solana 平台。它允许使用 Solidity 语言开发智能合约,从而降低学习曲线,减少开发时间。文章详细介绍了编译器的工作原理、Solang 的优势、对 Solana 程序的影响以及如何入手使用 Solang。
Noname 3.0 发布,它是一种受 Rust 和 Golang 启发的 zk 编程语言,旨在为开发人员提供比 Circom 更好的体验。此版本包含原生 hint、标准库 (stdlib) 和更丰富的调试功能,并介绍了 hint 函数的使用方式、标准库的模块、迭代器、日志记录和编译器管道可视化工具,同时规划了未来的开发方向。
Certora团队的John Toman发现了Solidity 0.7.3中的一个bug,该bug导致编译器在一些写入操作中错误地将垃圾数据写入持久存储。这一问题可能导致合同执行成本增加,但目前尚未确认其安全影响。Solidity编译器团队已在0.7.4版本中修复了该bug。
本文深入探讨了零知识虚拟机(zkVM)的工作原理、潜在的安全漏洞以及构建安全零知识应用的必要性。文章详细介绍了zkVM的编译、执行、证明和验证流程,并分析了每个阶段可能出现的安全风险,例如编译器漏洞、执行不确定性、电路约束不足以及验证过程中的输入混淆等问题。