Stylus 是 Arbitrum Nitro 的一次升级,允许智能合约用 Rust、C 和 C++ 等语言编写
Stylus 是 Arbitrum Nitro 的一次升级,允许智能合约用 Rust、C 和 C++ 等语言编写。这很重要,因为这些语言比 Solidity 更高效,可以带来更快和更便宜的智能合约。Stylus 还使得使用新的加密库和其他 Solidity 无法实现的功能成为可能。
Stylus 完全是可选的。熟悉 Solidity 的开发者可以继续享受 Arbitrum 的 EVM 等效体验,而无需任何更改。这是因为 Stylus 完全是附加的——我们称之为 EVM+ 模型。Stylus 引入了第二个完全兼容的虚拟机,用于执行 WebAssembly,并与 EVM 协调以产生状态转换。而且由于 Stylus SDK 使用 Solidity ABI,用一种语言编写的合约可以调用任何其他语言的合约。
例如,现有的 Solidity DEX 可以——无需修改——列出 Rust ERC20 代币,这些代币可能会调用 C 程序进行加密。所有内容都是完全互操作的,因此用户永远不必关心他们调用的合约的具体语言或实现细节。
Stylus 是 Arbitrum Nitro 的一次升级,Arbitrum Nitro 是支持 Arbitrum One、Arbitrum Nova 和 Arbitrum Orbit 链的技术栈。此升级为 EVM 添加了第二个同等的虚拟机,其中 EVM 合约继续像在以太坊中一样运行。我们称这种范式为 EVM+,因为 所有内容都是完全附加的,并且不会替换以太坊虚拟机 (EVM)。
第二个虚拟机执行 WebAssembly (WASM) 而不是 EVM 字节码。WASM 是一种现代二进制格式,其在Web标准、浏览器中作为标准使用而流行起来,用来加速计算。WASM 旨在构建快速、可移植且人类可读,并具有用于安全性和简便性的沙盒执行环境。对于 Arbitrum 链来说,使用 WASM 并不是什么新鲜事。自从 Nitro 升级 以来,WASM 一直是 Arbitrum 完全欺诈证明的基本组成部分。
有了 WASM 虚拟机,任何可以编译为 WASM 的编程语言都在 Stylus 的范围内工作。虽然许多流行的编程语言可以编译成 WASM,但某些编译器比其他编译器更适合智能合约开发,例如 Rust、C 和 C++。其他语言如 Go、Sway、Move 和 Cairo 也可以支持。具备自己运行时的语言,如 Python 和 Javascript,Stylus 支持起来比较困难,尽管不是不可能。欢迎以库的形式对新语言和现有语言进行第三方贡献!
与使用 Solidity 相比,WASM 程序效率更高。这有很多原因,包括 Rust 和 C 的几十年编译器开发。WASM 也比 EVM 运行时更快,导致执行速度更快。一般来说,使用 WASM 语言的合约比使用 Solidity 的合约有 10 倍的改进。
Stylus 之所以成为可能,是因为 Arbitrum Nitro 独特的欺诈证明技术。当 Arbitrum 网络上发生争议时,Nitro 会 在 WASM 中 重放链的执行。诚实的 Arbitrum 验证者将会二分争议,直到找到一个无效的步骤,并通过 “一步证明” 在链上检查。
这意味着 Nitro 可以确定性地证明任意 WASM。
如果可以一般性地证明 WASM,那么任何编译为 WASM 的程序的正确性都可以被证明。这是使 Stylus 成为可能的关键技术飞跃。
有关 Nitro 技术架构的详细概述,请参阅 文档 或 Nitro 白皮书。
传统上,以太坊和其他区块链上的智能合约是用 Solidity 编写的,这是一种专为 EVM 设计的语言。虽然 Solidity 很好地完成了它的任务,但它也有一些限制。它可能冗长,有安全漏洞,并且缺乏现代语言的性能。
Arbitrum Stylus 通过提供几个关键优势来解决这些限制:
Stylus 为 WASM 程序引入了新的定价模型。针对高计算应用程序,Stylus 使以下内容更实惠:
然而,使用 Stylus 可能对你的应用程序有一些小的开销:
将一个 Stylus 程序变为现实主要有四个步骤——编码、编译、执行和证明。
原则上,开发者可以使用任何可以编译成 WASM 的编程语言编写智能合约。实际上,一些高级语言生成的 WASM 性能远远优于其他语言。
最初,将支持 Rust、C 和 C++。然而,支持的程度最初会有所不同。Rust 从第一天起就有丰富的语言支持,并且有一个开源的 SDK,使得用 Rust 编写智能合约尽可能简单。C 和 C++也会立即得到支持,这将使得在这些语言中编写的现有合约可以在链上部署,几乎无需修改。
Rust 的 Stylus SDK 包含了大多数开发者在 Stylus 中开发智能合约所需的开发框架和语言特性。该 SDK 还使得可以执行所有 EVM 特定的功能,智能合约开发者已经习惯使用这些功能。查看 Rust SDK 指南和Crate 文档。
Stylus 程序需要编译两次。首先从高级语言(如 Rust、C 或 C++)编译成 WASM,然后在一个称为激活的过程中,再从 WASM 编译成节点的本地机器代码(如 ARM 或 x86)。
第一次编译使用 Rust 的 Stylus SDK 提供的 CLI 工具或任何其他编译器(如 Clang for C 和 C++)。一旦编译完成,WASM 会被发布到链上。虽然此时合约的行为已经定义,但在激活之前仍然无法调用。
激活 Stylus 程序需要一个新的预编译,ArbWasm。这个预编译生成高效的二进制代码,针对节点的本地汇编进行优化。在此步骤中,一系列中间件确保用户程序可以安全执行并且可以确定性地防止欺诈。仪器包括 gas 计量、深度检查、内存收费等,以保证所有 WASM 程序对链的执行是安全的。
Stylus 程序在 Wasmer 的一个分支中执行,这是领先的 WebAssembly 运行时,进行了最小的更改以优化其代码库以适应区块链特定的用例。Wasmer 执行本地代码的速度远快于 Geth 执行 EVM 字节码的速度,这有助于 Stylus 提供显著的 gas 节省。
EVM 合约继续以 Stylus 之前的方式执行。当调用合约时,可以通过一个 EOF 启发的合约头看到 EVM 合约和 WASM 程序之间的区别。从那里,合约使用其对应的运行时执行。用 Solidity 和 WASM 语言编写的合约可以相互进行跨合约调用,这意味着开发者不必考虑合约是用什么语言编写的。一切都是互操作的。
Nitro 有一个快乐的情况和一个悲伤的情况。大多数时候,它处于快乐的情况,将执行历史编译成本地代码。在验证者之间存在争议的悲伤情况下,Nitro 将执行历史编译成 WASM,以在以太坊上进行交互式欺诈证明。Stylus 是 Nitro 欺诈证明技术的自然延伸,利用它不仅可以对执行历史进行二分,还可以对开发者部署的任何 WASM 程序进行二分。
Stylus 测试网对所有人开放。我们花了很多心思来创造尽可能好的编程体验。然而,工作并未止步于此。从开发者那里获得的反馈将帮助 Stylus 迈向下一个层次,改进工具、文档和语言特性。成为 Stylus 的早期采用者是熟悉其所带来的机会的最佳方式。
由于 Stylus,许多可能性得以实现,举例如下:
关于 Stylus 最令人兴奋的部分是所有在 EVM 中甚至未曾想象过的新颖用例。这是因为直到今天,这一切都不可能实现。
虽然许多开发者会被新的用例所吸引,但在 Stylus 中重建现有应用程序也将为创新打开大门。dApps 从未如此快速、廉价或安全。
如果你是对 Stylus 感兴趣的开发者,请访问快速入门 ,加入 Discord 频道 ,并开始构建!
Stylus 目前仅限于测试网,不推荐用于生产。这将在完成审计和添加额外功能后发生变化。
Arbitrum Orbit L3s可以随时选择加入 Stylus。Arbitrum One 和 Arbitrum Nova 将在 DAO 投票通过后升级到 Stylus。
Stylus 的未来
Stylus 的引入标志着 Arbitrum 和更广泛的区块链生态系统演变中的一个重要里程碑。它吸引新开发者、提高智能合约性能和增强安全性的潜力,承诺在区块链领域释放一波新的创新浪潮。
随着 Stylus 生态系统的成熟和更多工具和库的可用,我们可以期待看到更多令人兴奋的应用程序出现。从高频交易平台到去中心化社交网络,可能性真的是无限的。
总之,Arbitrum Stylus 不仅仅是一个技术升级;它代表了智能合约开发的范式转变。通过赋予开发者选择其首选语言的自由并利用 WASM 的效率,Stylus 为更快、更安全和更具创新性的区块链应用铺平了道路。
Arbitrum 是一套扩展解决方案,提供高吞吐量、低成本的智能合约环境,依托于以太坊的行业领先的证明技术。Arbitrum 主要有两个区块链,分别是 Arbitrum One 和 Arbitrum Nova。最新产品 Arbitrum Orbit 允许你创建自己的专用链,并结算到 Arbitrum 的一个 Layer 2 (L2)链:Arbitrum One、Arbitrum Nova 或 Arbitrum Goerli。了解更多关于 Arbitrum 的信息这里
资源链接:
[1] Arbitrum Stylus
[2] Abitrum Nitro
[3] Arbitrum Nova
[4] Arbitrum Goerli
[5] Arbitrum One
[6] Arbitrum Sepolia
[7] Stylus 测试网
本文由 AI 翻译,欢迎小伙伴们来校对。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!