浅析 Solana 生态的 EVM 兼容网络 Neon 主要特点与功能
原文标题:《Neon: An Ethereum Virtual Machine on Solana》
作者:David Shuttleworth,Consensys
编译:饼干,链捕手
摘要
Neon 是一个完全兼容的以太坊虚拟机 (EVM),让开发人员可以利用熟悉的以太坊工具并在 Solana 上构建 Web3 应用程序。公链发展过程中很大一部分挑战是吸引开发者。当公链网络的开发需要与标准大不相同的工具并且可能对可扩展性造成瓶颈时,这种情况可能会更加复杂。但是,使用 Neon 的开发人员可以避免此类麻烦。应用程序可以在 Solana 上处理类似以太坊的交易,并实现 Solana 原生的所有功能,例如高频并发交易和低 gas 费用。开发人员还可以直接访问 Solana 生态系统,从而获得更多用户和更大的流动性。最终,Neon 允许任何以太坊应用程序在 Solana 上运行而无需更改其代码库,这使 Neon 成为在 Solana 上大部分开发者的强力工具。
概述
公链竞争的是有限的资源和用户。因此,由于各种原因,在不同的区块链上构建应用程序非常具有挑战性。其中一个挑战涉及对开发人员的吸引力和工具。公链不仅需要吸引一群熟练的开发人员来构建应用程序和基础设施,而且还必须提供熟悉且易于使用的工具,让开发人员在没有阻碍的情况下进行构建。当开发人员必须学习大量新工具并且无法轻松移植现有的智能合约时,最初的挑战就会变得更加复杂,并成为生态系统开发速度的瓶颈。学习曲线的强度限制了公链中应用程序的规模,因为开发工作需要大量的时间、精力和专用资源才能使应用程序成为可能。
Neon EVM 试图通过在 Solana 上引入类似于以太坊的开发流程来克服这些挑战。这很重要,原因有很多,特别是因为它允许开发人员在 Solana 上无缝构建基于以太坊的应用程序并解锁 Solana 的性能和流动性。然后,用户可以从更低的 gas 费用和更高的吞吐量中受益。在技术层面上,Neon EVM 是由 Solana 的智能合约构建的,它使用 Solana 的原生智能合约语言 Rust 编写,并编译为 Berkeley Packet Filter (BPF) 字节码。这让 Neon 具有许多独特的优势,并使其能够利用 Solana 的核心功能,例如并发执行智能合约。此外,该技术还允许 Neon 能够轻松升级和跟踪 Solana 硬分叉,以及保持对以太坊的更新。
EVM 和 Neon 的方法
为了更好地理解 Neon 的实用性,深入研究以太坊虚拟机的核心功能很有用。EVM 是以太坊协议上所有智能合约的生存环境。简而言之,EVM 存储和维护所有智能合约,管理它们的部署和执行,并定义处理类似以太坊交易的规则。因此,EVM 可以被认为是一个数学函数,接受外界的输入并返回确定性的输出。
EVM 的一个限制因素是在以太坊上执行交易的方式。用 Solidity 编写的智能合约需要按顺序执行,以确保行为具有确定性。因此,EVM 需要逐个查看智能合约并相应地修改区块链状态。这是因为以太坊智能合约没有独立引用共享数据。然而,Solana 的设计和 Sealevel 功能允许并行处理智能合约。在理想情况下,Solana 可以支持每秒超过 50,000 笔交易(TPS),而以太坊通常限制在 1,500 TPS。
Neon EVM 是一种链上解决方案,可将原生 EVM 引入 Solana 网络。它通过将类似以太坊的交易包装到 Solana 交易中来进行操作,然后将它们发送到 Solana 网络,进而在该网络中以进行并行的方式处理和执行交易数据。目前,Neon 的吞吐量约为 4,500 TPS,每笔交易的 gas 费用为 0.000015 美元。
最终,Neon EVM 使任何以太坊原生应用程序都可以在 Solana 上运行。这可以在不需要对其代码库进行任何更改的情况下完成,并且包括所有标准的以太坊工具。开发人员可以继续在 Solidity 中编写智能合约,利用 MetaMask 为 dApp 提供资金,或使用 Truffle 环境在 Solana 上部署 dApp。因此,任何使用 Neon EVM 的人都可以将以太坊的程序无缝移植到 Solana。这种方法的吸引力在于,Uniswap 和 Curve 等流行的应用程序可以在 Solana 上以更少的磨损成本构建。因此,开发人员可以扩大他们的用户群以接触 Solana 上的新用户,并获得 Solana 的大量流动性。
主要特点和功能
再深入一点,Neon 的优势在于它能够在 Solana 网络上无缝运行,同时检查交易签名并以与以太坊客户端兼容的方式计算 gas 消耗。这有助于保留智能合约结构并在 Solana 环境中创建类似以太坊的体验。此外,用户可以通过用户指定的 ERC-20 代币向 Neon EVM 运营商支付完成交易的费用。这增加了一层额外的灵活性和流动性,因为用户不受特定代币类型的限制。随着时间的推移,此功能将扩展更多代币,并将让 Neon 运营商选择接受来自所有代币列表的交易执行付款。
Neon 还采用了其他核心功能,包括 Web3 代理、代币合成器(ERC-20 SPL-Wrapper )和跨链桥(NeonPass )。总的来说,这些功能保证了网络上的交易顺畅,保护 Neon 的基础设施,并创建用户友好、无摩擦的交互体验。
例如,Neon 的 Web3 代理充当 EVM 客户端和 Neon EVM 之间的服务层。它允许客户和运营商通过提供类似以太坊的 Web3 API 来访问 Solana 区块链以相互通信。这让用户无需更改代码库即可开始使用 Neon EVM。此外,代币合成器允许用户将他们的 Solana ($SOL) 代币合成 Wrapped Solana 代币 ($wSOL)。这类似于以太坊上的 Wrapped Ethereum ($wETH) 。最后,Neon 的跨链桥允许用户在 Solana 和 Neon EVM 之间轻松转移代币,并使以太坊用户能够从 Neon EVM 转移和提取 SPL 代币。
一个特别有趣的设计是 Neon EVM 的 Web3 代理是完全无权限的,并且没有受到任何限制,因此任何人都可以加入该代理并运行。Neon 也很灵活,任何客户端都可以替换代理并选择运行自己的库。因此,Neon 网络以真正去中心化的方式运行,因为它收到的交易不包含决定其优先级的属性。
另一个有趣的设计是 Neon 实现交易并行执行的方法。Neon 采用与 Solana 上的标准交易一致的方式实现了这一点,但还包括一种优化 Solana 参数的新方法。具体来说,在 Solana 上构建 EVM 基础设施的一个关键挑战是以太坊和 Solana 之间的根本区别以及每个协议如何处理交易:以太坊一个接一个地处理每个智能合约以确定性地实现区块链状态,而 Solana 处理多个并行的智能合约。此外,Solana 采用硬件优化的方式将网络资源分配给给定的事务。在某些情况下,Neon 交易可能需要比 Solana 允许的更多的资源。
Neon 具有内置的灵活性,可以在对网络影响最小的情况下处理交易,通过迭代执行合约并限制对正在使用的 Solana 状态的共享数据的访问来实现。因此,Neon 会阻止 Neon 交易中使用的 Solana 帐户,如果这些帐户中的任何一个交易已被阻止,则新交易将排队等待 Neon 的 Web3 代理执行。这个迭代过程涉及 Neon EVM 将 $SOL 代币的存款从运营商的账户转移到另一个单独的存款账户。然后将这笔押金的一部分作为奖励分配给执行 Solana 交易的节点验证者。另一部分支付给完成请求并迭代执行 Neon 交易的运营商。
此外,将 EVM 移植到非本地区块链的难点是既要符合本地流程又需要足够灵活以处理各种服务请求,以及采用流动性的方式标准化交易。Neon EVM 交易成本根据以太坊规则计算,但基于 Solana 费用。所以总的来说,Neon 上的交易成本明显低于以太坊上的交易成本,因为最终用户支付的是 Solana gas,而不是 Ethereum gas。如上所述,部分交易费用被发送给执行交易的 Neon 运营商,费用面额默认设置为 $ETH,但是 Neon 用户可以选择任何 ERC20 代币来支付 Neon 交易。
最后,Neon 创建了一个二级交易执行市场,以帮助扩展和优化网络。Neon 运营商可以在市场上标明他们的条款和费率,让 Neon 客户可以选择他们想要满足其要求的运营商。此外,任何 Neon EVM 用户都可以部署 Neon Web3 代理并使用 Neon EVM 执行 Neon 事务。这些操作都是完全无需许可的,也无需 Neon EVM 运营商的任何帮助。然而,用户必须使用 $SOL 代币来执行 Solana 上的交易事务。
参考资料:
https://neon-labs.org/Neon_EVM.pdf
https://docs.neon-labs.org/docs/about/introduction/
https://docs.neon-labs.org/docs/governance/governance_overview/
https://ethereum.org/en/developers/docs/evm/
https://docs.solana.com/developing/on-chain-programs/overview
https://neon.aleph.cloud/