为什么说Aribitrum Stylus是L2今年最重要的技术创新

    随着像zkSync和StarkNet这样的ZKRUs推出主网,Layer2格局正在迅速演变。传统上,OPRUs如Arbitrum是首个进入市场的,因而拥有更强大的生态系统。与之相反,ZKRUs在技术上有所突破,提供更高的吞吐量和更低的费用。近几个月,更多的活动从Layer1迁移到了Layer2,以寻求更快、更便宜的交易。以太坊的TVL过去一年中从近400亿美元降至200亿美元。然而,Layer2的TVL呈现出不同的画面,巨大的增长表明Layer2的采用正在加速。Arbitrum凭借超过50%的Layer2TVL市场份额领先,尽管ZKRUs也付出了努力。Arbitrum的先发优势使其能够保持主导地位。分析每日交易数量显示,像zkSync和StarkNet这样的ZKRUs在吞吐量上略微超过OPRUs。然而,Arbitrum的生态系统优势依然存在,尽管在每日TPS上稍微落后。OPRUs出现的时间比ZKRUs长。然而,ZKRUs正在推出他们的主网,并从其他生态系统吸引用户。作为OPRU领域的领导者,Arbitrum预计将通过他们的新更新来对抗ZKRUs的崛起。Arbitrum:Stylus随着开发者优化零知识技术和成本,由于其可扩展性优势,ZKRUs可能会继续获得市场份额。但是,Arbitrum的网络效应提供了尽管有竞争压力也能保持稳健的能力。通过像Stylus这样的创新解决方案,Arbitrum可以用独特的技术能力补充其领导地位,并继续在Layer2竞赛中保持领先。简而言之,Stylus是一个为Arbitrum设计的革命性新智能合约环境,它允许开发者用像Rust、C++和Solidity这样的编程语言编写高效、互操作的程序。它向区块链开放了通用计算,并欢迎使用不同技术栈的开发者。WASMStylus通过添加一个与现有的以太坊虚拟机(EVM)并行运行的WebAssembly(WASM)虚拟机来工作。编写在可以编译为WASM的语言的智能合约可以以比Solidity快10倍或更多的速度原生执行,大幅降低燃气费用。EVM依然完全功能性,所以现有的Solidity合约仍然如同今天一样正常运行。两个VMs同步操作,允许用不同编程语言编写的合约相互调用,同时还能修改相同的底层区块链状态。自定义预编译此外,Stylus也支持自定义预编译(Precompiles)。预编译是Ethereum和Arbitrum上用于非常高效地执行特定加密或实用函数的底层模块。例如,有用于ECDSA签名验证和计算SHA256哈希的预编译。要添加新的预编译需要所有验证者协调升级EVM,因此门槛很高。而使用Stylus,开发者可以轻松地部署他们自己用Rust或C++编写的预编译。例如,一个团队可以使用用C语言编写的加密库,并未经修改地将其部署到Arbitrum。这将允许这些加密原语以超快的本地速度执行。其他合约可以调用这个Stylus“预编译”,就像它们调用原生预编译一样,来利用该加密技术。

    所有的燃气计量和欺诈证明都会自动工作。这使得团队能够在没有任何特殊链支持的情况下,原型自定义加密、特殊的基于配对的曲线和其他新型原语。以太坊研究者甚至可以通过在Arbitrum上以Stylus预编译的形式部署它们,先行迭代EIP提案。通过赋予开发者在链上原生地引入新的加密原语的能力,Stylus大大拓展了可以构建的内容的范围。预编译不再仅限于EVM支持的功能。Stylus的工作原理在深入探讨WASM在区块链宇宙中的更广泛角色之前,理解Arbitrum如何协调EVM和WASM的共存是至关重要的。这不仅仅是拥有两个独立的引擎;这是一种增强两者优势的协同关系。Arbitrum的独特架构允许EVM和WASM之间进行无缝和同步的操作,这要归功于其统一的状态、跨VM调用和兼容的经济模型。用Solidity或其他EVM语言编写的智能合约会像往常一样编译为EVM字节码。当执行时,这些合约在EVM上运行,就像它们今天一样。对于编译为WASM的语言,例如Rust、C++和C,工作流程是:开发者使用现成的WASM编译器,如Clang或Rustc,将他们的智能合约编译为WASM。WASM字节码以压缩形式上传到Arbitrum链。合约所有者调用`ArbWasm`预编译的`compileProgram`方法,该方法为WASM进行安全工具设置,对其进行Gas成本计量,并将其编译为针对验证器硬件优化的本地代码。当合约被调用时,它在像Wasmer这样的WASM运行时上运行,比EVM快得多,从而节省了GasFee。WASM计量在每个基本块之前收取Gas,而不是像EVM那样按操作码收费。这更为高效,确保合约不会失控。EVM与WASM这两个虚拟机(VM)同步运行,允许它们在共享相同的全局状态的同时互相调用。一个交易可能部分在EVM中执行,部分在WASM中执行,并且结果无缝地组合在一起。等一下,两个VM怎么能无缝地和同步地工作呢?Polkadot通过XVM实现这一点。与Polkadot不同,WASM和EVM出于几个关键原因可以在Arbitrum上无缝地和同步地工作:单一状态:两个VM都访问相同的底层数据结构和状态Trie。一个VM中的合约可以读/写到另一个VM中的合约相同的位置。这提供了对链状态的统一视图。跨VM调用:当一个交易与EVM合约交互时,Geth处理它并提供一个结果。如果EVM合约随后调用了一个WASM程序,WASMVM接管以计算该部分的结果。共享上下文:像区块数据、发送者地址等系统信息对两个VM都是可用的。一个WASM合约可以像Solidity合约一样获取区块号。单一共识:验证者运行两个VM以验证交易并就正确的链状态达成共识。争议将调用统一的欺诈证明系统。兼容的经济学:像Gas计量这样的概念延伸到各个VM,确保在任一环境中都有适当的计算成本和资源。

    对于欺诈证明,验证者会在EVM和WASM执行中进行细分(bisect),以必要时识别任何无效的步骤。WASM的结构允许系统保证终止并强制证明的有效性。区块链|WASMArbitrum并不是唯一认识到WebAssembly(WASM)变革潜力的平台。Polkadot和Cosmos也都将WASM整合到了他们的生态系统中,每个平台都提供了一组独特的优势和功能。Polkadot允许用户用WASM开发智能合约,并支持两种语言:一种嵌入式DSL的AssemblyScript和类似于Rust的Ink!。另一方面,Cosmos使用CosmWasm作为其智能合约运行时,允许开发者用Rust编写合约。在深入研究区块链行业为何如此接受WASM之前,有必要先了解Cosmos和Polkadot突出的具体优势:Cosmos强调WASM的以下优势:与Rust库的兼容性多样化的开发者社区增强的安全性,包括防止重入攻击易于测试高性能Polkadot的WASM运行时具有这些特点:高性能与EVM的互操作性平台不可知性紧凑的二进制大小同时支持Rust和AssemblyScript(TypeScript风格)尽管Polkadot、Cosmos和Arbitrum共享WASM提供的一些共同优势,但每个平台也都有其自己独特的属性。这些主要区块链平台对WASM的广泛采用证明了其在行业中日益增长的重要性,这使得理解为何这项技术正在迅速成为现代区块链架构基石变得至关重要。为什么选WASMWASM是什么为了理解区块链和WebAssembly(WASM)之间的协同作用,首先必须了解WASM是什么以及其发展背后的推动力。WebAssembly是一种二进制指令格式,使代码能够在Web浏览器内以接近本机速度执行。它作为一系列编程语言(包括C和Rust)的编译目标,旨在快速、高效且安全。WASM有效地弥合了基于Web和系统级编程之间的鸿沟,从而提高了Web性能和功能。“Web”在WebAssembly中突出了其在JavaScript环境(通常在浏览器中找到)中运行的能力。在这些设置中,开发者可以完全访问WASMAPI,并且具有全面的WebAPI支持,赋予他们相当大的控制Web行为的能力。WASM历史遵循“一次编写,到处运行”的原则,WASM出现作为一组长期挑战的有力解决方案。截至2016年,许多程序通过领域特定语言(DSL)引入新功能,这通常涉及维护、效率和安全之间的权衡。有越来越多的需求寻求一种解决方案,该方案可以在不影响这些方面的前提下,为无数服务器提供新功能。评估了各种现有解决方案的不足:-系统虚拟机频繁启动和关闭带来过多的开销缺乏代码可见性以确保安全对性能需求过于抽象-容器缺乏代码可见性以确保安全由于高级抽象而效率低下频繁操作带来显著的开销-语言级虚拟机需要频繁修改以确保安全嵌入式VM,如V8,资源密集型适应新语言到安全模型缓慢仍然过于抽象-指令集体系结构(ISA)难以有效沙箱以前的Google项目从其转向WASM缺乏成熟的实现到2018年,WASM开发获得了动力,重点是在各种架构、服务器、嵌入式硬件上运行,甚至支持多种语言。与Java不同,WASM的设计没有妥协安全性。到2019年,引入了一个组件模型以提升WASM模块,实现跨语言互操作性。这允许了像一次编写HTTP库并在多种语言中使用它这样的解决方案。至今,WASM拥有一系列功能,并在云原生场景(包括区块链)中越来越多地被采用。其优点包括:高性能紧凑的二进制大小跨平台可携带性支持多种语言,如C/C++、Rust、AssemblyScript等在JavaScript引擎中执行带有内存和CPU限制的强大沙箱极快的启动时间,通常在毫秒或更短时间内WASM社区继续努力实现跨语言的更大集成和性能。了解WASM的历史演变为我们提供了有价值的背景,用于了解其在各种设置(包括像Stylus这样的区块链项目)中的当前和潜在角色。这一背景让我们在探索有关WASM在区块链生态系统中实现的问题和疑虑时,具备了细致的理解。StylusQ&A语言支持WASM的发展历程揭示了为什么Stylus是Arbitrum生态系统的一个令人兴奋的补充,但它也突出了一些局限性和疑虑。其中一个疑虑就是语言支持。虽然Stylus确实扩大了Arbitrum开发者社群以包括像C++和Rust这样的语言,但它在接纳流行语言如JavaScript和Python方面还有所不足。虽然有初步的项目旨在将Python和JavaScript带到WASM,但由于垃圾收集和性能问题的挑战,这些努力尚未准备好广泛采用。语言兼容性目前,Stylus支持C/C++和RustSDK,与这些语言的工具链无缝集成。

    开发者甚至可以在构建智能合约时整合第三方库,比如原生加密实现。做这样的事的主要限制是相关的gas费用。虽然RustSDK还处于初级阶段,Rust和CSDK都有一些缺失的功能。例如,CSDK不支持ABI导出函数,而修饰符在两个SDK中都还未得到支持。目前,没有本地Stylus测试环境,但开发者可以直接在SDK内运行测试。对于部署智能合约,目前只有测试网是唯一的选项,并且它还不支持智能合约验证。目前正在进行努力,以将各种ERC代币和**[UniswapV2](https://twitter.com/evmcheb/status/1697537852522049990)**引入Stylus生态系统。语言选择的困境在领域特定语言(DSL)、嵌入式DSL(eDSL)和通用语言之间做选择需要在低级控制和高级抽象之间权衡。开发全新的DSL需要在工具链和生态系统开发上做出重大投资。与此相反,作为通用语言的子集,eDSL允许更容易地与现有工具集成,并有更低的学习曲线。例如,在像JavaScript或Python这样的流行语言中创建eDSL将是有益的。通用语言需要使用SDK,这引入了额外的工具,增加了冗长性,并减少了代码的表达性,同时伴随着更长的API调用和对象操作。在语言选择和eDSL开发之间找到正确的平衡可能是吸引更广泛开发者社区的关键,同时提供用户友好的工具。根据当前数据显示,顶级加密开发者社区仍集中在以太坊周围。然而,利用Rust进行智能合约的平台,如Polkadot、Cosmos和Solana,也在获得关注,并在其开发者社区中快速增长。性能WASM显著提高了执行速度并减小了包大小。虽然Stylus还未在主网上部署,但其他网络的基准测试可以作为有用的参考。观察到的执行时间快了4-8倍,编译后的大小减少了大约50%。Stylus目前对其合约设有大小限制,未压缩时上限约为128KB。这一限制使得将大型智能合约从其他语言(如Solidity)移植过来变得具有挑战性。在Stylus代码库中,该限制如下所述:值得注意的是,WASM在启动和关闭时会产生一些开销。对于轻量级操作,EVM实际上可能比WASM更具成本效益。与EVM的互操作性EVM和WASM共享相同的存储槽和状态树,这有助于Stylus与EVM的互操作性。这是通过在WASM中实现的EVMAPI来实现的,使用流行的HostI/O模式。支持的EVMAPI的全面列表表明互操作性得到了全面支持。自定义预编译合约这个方面尤为令人兴奋,因为它代表了未知的领域。自定义预编译合约有潜力以更低的执行成本将额外的加密原语引入链上。它们还可以通过引入张量计算作为预编译合约来降低推理成本。然而,目前似乎还没有与自定义预编译合约相关的现有代码。虽然EVM组件存在预编译合约,但它们不是热插拔的。

    这个功能可能仍在开发中,利用WASM的能力。EVM可以调用用WASM编写的函数,然后将其编译为机器代码。可重入功能与CosmWasm(采用没有可重入功能的Actor模型)相反,Stylus的RustSDK默认情况下关闭了可重入功能作为一个功能标志。开发者有选择手动启用此功能的选项。激活可重入功能将需要进行一些API调整。特别是在调用过程中刷新存储缓存等安全预防措施方面,开发者需要小心谨慎。洞见Stylus开放了一些在仅使用EVM时太耗费gas的新用例,如高性能加密、游戏和AI。它还允许自定义预编译合约,使开发者可以添加自己的加密和其他基础功能,而无需等待升级。在过去,我们看到一些非以太坊生态系统采用了WASM,如Cosmos和Polkadot。这是以太坊社区首次采用WASM。总体而言,Stylus代表了智能合约开发的重大进化,将有助于以太坊和Arbitrum实现扩容,同时与所有现有应用保持互操作性。将Stylus集成到Arbitrum的Layer2SDK可为第三层开发者提供更大的灵活性。他们现在可以将以前超过gas限制的密集计算移到链上,从而打开新的可能性。开发者不再仅限于使用Solidity,如果Rust或C++更符合他们的需要和专长,也可以选择这些语言。自定义预编译合约允许无缝地将首选的加密、实用程序和其他助手函数迁移到链上以获得最佳性能。以适应每个用例的语言直接编写低级逻辑会导致更加流畅的开发。开发者可以专注于核心产品功能,而不是为了避免gas成本而采取权宜之计。通过消除语言和gas限制,Stylus使第三层构建者能够从一开始就使用适合其领域的正确工具,构建最高效的用户体验。Stylus也证明了Arbitrum有能力进行大规模革新,并且集成新的虚拟机。EdFelten,Co-founder&ChiefScientistofArbitrum&OffchainLabs提到Arbitrum基于业界热门工具和编程语言开发。他们可以更加迅速地编写测试以及在原用系统之上开发新功能。OP在ZK化的道路上走的更远,已经逐渐走向了混合Rollup的思路。Optimism目前和Risc0合作,使用Zeth为OPRU生成零知识证明。使用这套解决方案,Optimism并不用对OPRU进行额外的修改。如果你对Zeth感兴趣,可以看我之前写的[推特](https://x.com/glazecl/status/1709947992168710174?s=20)。我们非常期待在Arbitrum上看到AI应用。目前,在链上进行机器学习非常耗费gas,使得开发成本高昂。零知识ML可以降低成本,但也会为开发者带来显著的额外复杂性。如果我们能通过Stylus实现张量操作作为自定义预编译合约,并以一小部分的成本原生执行它们,那么就会为高性能的在链上机器学习打开新的可能性。通过让开发者用他们熟悉的语言(如Python)快速构建和部署ML算法作为易于集成的预编译合约,Arbitrum可以推动DeFi、GameFi等领域的下一代AI创新。Stylus的性能和灵活性将使我们能够专注于创新的ML架构,而不是gas优化。我们期待看到社区的创造力应用于这一新兴范式。