Ethanos: Efficient Bootstrapping for Full Nodes on Account-based Blockchain - Ben Kim
ETHDenver 2022 · February 2022 · 15:37
Ben Kim presents Ethanos, a bootstrapping scheme designed to let full nodes on account-based blockchains like Ethereum join the network without replaying and storing its entire historical state. The talk frames state growth as one of the persistent obstacles to running a full node long-term, and positions Ethanos alongside other approaches, such as stateless clients and Layer 2 rollups, aimed at keeping node operation accessible as adoption grows.
Speakers
Topics
From ETHDenver 2022, hosted by ETH Denver.
Transcript
hello everyone i'm ben and i'm ceo and founder of superblock in korea and today i will present ethanol's efficient bootstrapping for fluids on the coin-based blockchain this talk is about my paper published at eurosis 2021 last year and euresis is a academic conference in the field of computer science and superblock is implementing a mainnet based on this idea as the blockchains becomes popular the number of a contest exploded
so which is more than 180 million as of february 2022 and also the storage size and synchronization time has increased more than 500 gigabytes and takes more than half a day to synchronize synchronize to a full node if you want to uh we want to run archive it exists it is more than nine terabytes and it takes more than one one week so it is very big burden to run a nodes as a wizard
ordinary people cannot operate a free node by themselves so they have no choice but to rely on funeral services like inferior or academy and service providers also have to have to cover the cost of running a free node by paying for a funeral service services or running their own nodes that cost will be passed on to users in the form of commissions which which increases the transaction fees also before we talk about ethanols let's review ethereum to learn some backgrounds ethereum stores each accounts into the state trial
of which structure is much more competitive try or mpt and the character sequence of account address determines the path to its account data each node is labeled with a hash value and this entity is stored by level db and each node is stored with this hash as a key accessing an account requires multiple hash based level v-accesses which is the main partner for synchronization and mpt also allows efficient verification and there are two proofs one is microproof and one is void proof microproof
provides a proof that can that proves on the con exist in the for example on on account 0x7a1cdf uh could be proved by the nodes like press node0 extension node 0 branch node 1 and extension node 1 and the account we can serialize these nodes and this proof can prove that digital context is in this work in this stage right and also we can prove that on a constant is not in this markup in this mpt by
using the void proof for example if we want to prove that on account 0x7a1480 is not in this state try we can use prince not gerbil extension.0 and resonant one because there is no past four and we can make a bulletproof by serializing those those nodes in the path if a new node wants to be once to join the network it has to synchronize the current block state there are two synchronization processes one is active things and one is first thing and
there is a snap snap sync in the latest class but it is similar to fast sync so i will explain for these two processes archive sync downloads all blocks and replace all the transactions from the 26 block to the current block to reproduce the current state of the current block uh archive think uh stores all the histories of the blockchain so it it it requires large space and a long time so first thing has been proposed and first thing
downloads all the blocks we does but it also downloads the state of the public block and it replaces the transactions only from the pivot block to the current block to reduce the synchronization time and it yeah time and it significantly reduced the storage size and synchronization time but it is too slow because we need to traverse transmit and rebuild only every node of the huge state try which suffers from the intensity of these scales so we want to optimize the storage size and synchronization time so we investigated ethereum and we found that
most accounts are dormant and only a fraction of a counteractive three percent are active overnight and five percent are active over months and we also found that active accounts tend to be activated soon again on the context of data in a week with a probability of 76 percent and an account is updated in a month with a probability of 89 percent so we propose an idea to reduce storage size storage size and synchronization time by sweeping the thermal accounts periodically let's create a lightweight node without with only the active accounts sieves ethanol's
accounts periodically by an epoch lambda for example lambda could be forty thousand three hundred training blocks for one year period simply an eternal simply creates an anti-try every time and you know you have boxers yeah because yeah yeah because it is very uh very instant it is extremely extensive to traverse the state try to find the dormant account and remove them and ethanol cache is the last checkpoint of each epoch and ethanol feels a new
fears that you try only with active accounts used by the transactions transactions in the new apple the reason that ethernet cache is the last checkpoint is that the new try has no state so we have to copy the data of the last state of the accounts this is the steam mechanism of the tunnels if an account is in the current try just use it but if an account is not in the current try but in the cashier try copy it to the current try to update the current write if an account is not in the in both
trades two cases two cases could occur if it is on standard it is an event transaction because it because it has no state if it is a receiver create a claim create a chrome account as if a new account is created this chroma this chrome account is different from the german account because the those states are different but it is the mechanism of ethereum that creates creates an account so we have to cover the chroma counts we prune the
dominant accounts and if a user wants to restore the automated accounts we have to provide a provide restoration process and the the user of thermal account has to transmit a research transaction user transactions restores the last active state of an account by merging its chrome states but there could be some chillings so to avoid the cheatings a restored transaction includes a sequence of microproofs and void proofs which will be verified by miners [Music]
this proves these worker proofs also proved that also includes the last state of the dermatocon and also proved that that account was really exist in the last in the last block we use the resource restored effect because we cannot distinguish ground constant from the restored state so we use this fact to prevent an already restored account from behaving as if it is a chrome a value state generated by a result
transaction can be expressed during a regular expression like this and if a proof sequence of result transaction does not follow this regular expression it will be rejected therefore an attacker has no choice but to follow the regular station but it only generates a correct or correct state and ethanols also provides some other sync mode named compactsync ethernet download state tries of both pivot and the latest checkpoint blocks ethanol reduces the size of state dry so the two the twos
the size of two tetra is very small which is about 220 megabytes through uh through our experiment for a night for one week we also eliminate the old transactions if we reduce the state try size then the size of all size of transactions becomes bigger so we reduce them by omitting downlink or downloading all transactions before the paper block so we can significantly reduce the switch size and synchronization time through the experiment we found that we can reduce the size less than one gigabyte and we can we could reduce the
bootstrapping time uh for a few few minutes few minutes so we think that this is possible for ordinal people this is the experimental setup we evaluated with its real islam data and we evaluated evaluated three hundred thousand blocks of resilience from 7 million to 7.3 million block and there are three 30.6 million transactions updated 4.6 million accounts for two months in early 2019 there is about 1 million active accounts occupying 23.5
at the 300 000 block and we instrumented cast client for the 1.9 to implement ethanol and compared it with the original gas we set the effects we set the epoch size to 40 320 blocks which is about one week and there exists about 200 000 resource transactions and the specifications of hosts and currents are as written here and the network environment was the internet this is the experimental wizard
those total total storage size for a compact distinct of gas was about one gigabyte and etherness was about 40 megabytes the size of state tri was about 833 megabytes for gas and 200 220 megabytes for ethanol and we found that the size of ethanol's ethernet is almost constant as time flows the total storage size of ethanol is under 600 megabytes including the compact stick node and
cache try and we think 600 megabytes is reasonable for original people to run a full node we also measured the synchronization and we found that ethanol is always better than the cast fast link and the complex thing keeps synchrony synchronization time constant around 100 seconds so we conclude that if we apply the ethanol we can we can limit or we can expect that the synchronization synchronization time of ethanol spread will be very small and constant
super block is a company that i found and we are making a mainnet based on this idea and we are building the next generation next generation battery platform we think we think we can make two key features one is question hub and one is autonomous apps for the clustering hub validators can operate additional lightweight loads without burden for a cross-chain communication because the size of the transfer tunnels is very small so the validator has no burden to run the nodes so we think that this could be a key feature to crochet hub and the other is autonomous lab because
everyone runs their own node so autonomous application could can be implemented by integrating a front-end interface into smart contracts and it could be run by originally run by original people so we can eliminate the middlewares like fullness services and people can run the autonomous on their own computers yeah that's it and thank you