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