New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

The challenges of enabling EVM-functionality on Solana blockchain by Marina Guryeva

Ethereum DenverMon, Oct 9, 2023, 12:00 AM

Blockchain systems Ethereum and Solana are radically different. They differ in terms of architecture and technical implementation. On Solana, for example, parallel execution of transactions is available, but there are restrictions on the number of instructions within a single transaction — which is not the case on Ethereum. The team of Neon Labs overcame a lot of technical hurdles and found a lot of technical tricks to unite Ethereum world with Solana’s. The results of the work done and some of the technical solutions being implemeted will be presented by Marina Guryeva, co-founder and director of Neon Labs.

Transcript

so hi everybody I'm Marina guerriva running neon Labs which stands behind neonivium yes I know it's neonivium running on Solana and basically we love ethereum and we've been with the cinema since 2040 and I believe me personally so and the idea was okay ethereum virtual machine is great so we want to bring it to Solana as well and we did it is a smart contract even I'm running natively on Solana that enables a very easy way for ethereum depths to come to Solana natively without any code changes or optimizations and basically the numbers that we have because we are on salon and you all know this Lana we have a throughput of 2000 TPS and we have the cost of transactions which is very very low indeed so you can see the numbers here but it's worth a train and it's worth doing this as you can understand from from what we have as the result so um talking about neon architecture so yes it's mentioned that we have a Dev running natively on Solana and but still we want a serum depth to come and deploy using standard tooling not not anything like fancy and we wanted ethereum users to come and start using metamask not anything else so and we did exactly that so basically any depth can come deploy and then any user can come and open metamask and start using other for on neon for example so how it might be done so it's done because we have a special thing we call it proxy server that wraps the theorem like transactions into Solana transactions and sends them to Solana to be executed by Neon evm on salon so you have to understand that saloni differs greatly from ethereum and the most crucial thing is that on Solana the programs are separated from data yes you know this but just in case you forgot so and this like let us do a lot of different things natively on Solana this is how neonivium looks like being deployed on Solana so basically we have neonivian program with the ethereum virtual machine inside and we do have a special set of accounts where all the contracts are deployed so basically when overcomes or curve comes or in all the ethereum dev comes so we said on a special salon accounts with all the data put inside and all the connected data are linked to this special ethereum contract that is deployed and so and the accounts are represented as a separate set of Islamic accounts as well in terms of transactions so as you might know Solana can execute in parallel and this is huge because like the throughput that we have because of this factor or due to this fact so but then uh Solana needs to know and understand which accounts are involved into the execution of a particular transaction so we have to put a list of accounts for each and every ethereum like transaction so and this is the structure of Solana transaction and this is the a place where we put all the information and also we put all these theorem uh relevant information inside's London transactions basically what we are doing will actually wrapping ethereum-like transactions into Solana transactions for them to be executed correctly as Solana transactions so in terms of um where this the transaction goes once a user push pushes the button the ethereum light transaction goes to Neon rpcn points and this is the proxy server uh thing basically and then the proxy wraps up the transaction and sends a lot of transaction to Solana RPC endpoints it's important to understand that the proxy has to put into the Solana transaction a list of accounts Salon accounts involved into the execution as mentioned so it emulates the execution calling the original neonadium deployed on Solana so in order to fetch the list of Solana accounts involved basically neon contracts as you might remember and neon accounts so and put and put it into Solana transaction so then it sends it all to Solana node how the parallel execution happens natively very easy indeed because there are tons of Solana transactions coming to Solana rpcn points and basically it's a lot of validators they treat them as normal Solana transactions so neon AVM contract is called and within neon evm contract you want to remember the relevant ethereum contract is called other curve or whatnot and then the execution happens but sometimes we have to execute a very long ethereum transactions so um as you might know Solana has a limit of instructions per transaction so and the in ethereum the the limit is only the determined by gas consumption so in order to wrap up a very long ethereum transaction into some transaction we have to split it into several transactions and execute them one by one in order to ensure that any any if you don't like transaction is executed correctly by Neon avian so this is how the iterative execution looks like so basically with dealing with chunks of ethereum transactions and we are sending them to proxy server then Trivium and then we block the accounts involved at the beginning we do one by one uh all the executions and then we uh write the state of Solana rewrite and then unblock the accounts at the end after the latest transaction is done so and the The crucial question he is here how the atomicity is insured by us and it's ensured in a very simple and nice way so basically because Solana blocks the accounts involved into an execution of one particular transaction and we are blocking the accounts at the beginning of the first chunk of the first neon transaction then everything that comes in parallel while the loan ethereum transaction is being executed it be it's been blocked because and and it fails because the accounts are blocked so this is what we have and you know then when we're talking about a proper execution we are talking not about like handling the uh ethereum like transactions in a proper way we're talking about a Kevin the right infrastructure in place in order to ensure that any Deb can come and deploy and use distended doing that is available on ethereum definitely so and we do have such a tool and so we have our course we have indexes we have explorers we have Bridges uh we have nft support and whatnot and for the users we have also uh everything that they need and they accustomed to using only serum so basically we do have the wallets we do have the the sdks and apis and and everything else so and we do have the ethereum dub uh that's uh coming to us asking for for Solana and asking for deployment and basically what we have right now we have a special build the program launched by Neon Foundation and we invite everybody every single ethereum depth that want to grab yet another Market to come and try and build something on neon and basically make Selana guys accustomed to using very nice ethereum applications that we have a bound so that's it thank you for your attention

Automatic transcript — names and jargon may be misspelled.