Over, A new birth of freedom(1): Unleashing the power of Personal computing through light nodes

Andrew Kim
Over Protocol
Published in
8 min readJun 23, 2023

Over, A new birth of Freedom.

A new birth of freedom — and that government of the people, by the people, for the people, shall not perish from the earth.

Abraham Lincoln

Over is all about championing the highest level of freedom. We stand by the idea that everyone should have the freedom to choose, to pursue their passions, and to avoid anything they don’t wish to do. We’ve translated this belief into the blockchain realm, where we ensure that users can effortlessly access data, contribute to the network, and utilize the blockchain without depending on anyone else.

Our goal at Over is to create a design that empowers every user with freedom. We’re building a blockchain that’s light, user-friendly, and safe, fostering effortless participation. Each aspect of our design has been meticulously crafted to embody a freedom-centric blockchain experience. Our key design principles include 1) Compact blockchain nodes that anyone can operate, 2) Open participation in the consensus process, 3) Risk and cost-free blockchain dapp use. In this “Over: A New Birth of Freedom” blog series, we’ll uncover each principle one at a time. So, welcome to the first step of our journey towards redefining freedom in the blockchain world.

Run your blockchain node — at home, on your device.

With our groundbreaking technology, Over introduces an unprecedented experience: the ability to operate a node right from your PC. You can now store and manage blockchain data within your own device, unleashing the full potential of blockchain at your fingertips. The unique feature of our compact, full node is what sets Over apart, making us the only blockchain network with this capability.

Over brings blockchain to your personal device, thanks to our Ethanos technology. Ethanos refines the ‘state trie’ — the backbone of blockchain data — making it leaner. This optimization means less storage on your device and faster sync times with other nodes. It boosts transaction speed and enhances compatibility with other blockchains. In essence, Over allows you to swiftly set up a full-scale blockchain node right on your home computer.

What is the ‘state’?

The ‘state’ is a snapshot of account states needed to validate a new transaction. It’s a collection of vital information for each account, including things like balance, nonce, code, and storage. It’s not to be confused with the ‘history’ of the blockchain. History is like the blockchain’s memory, holding onto older blocks and transactions from six months or a year ago. Although it helps maintain the blockchain’s integrity, history isn’t directly involved in the validation of new blocks.

Transactions update the ‘current state’ through asset transfers and interactions with smart contracts. This means that every time assets move between accounts or data gets written to contracts, the state of each account changes. The ‘current state’ is key in processing and verifying transactions, with the result of each transaction forming the new ‘current state’.

As the blockchain bustles with user activity and transactions, the size of the state naturally grows. Think of it like a city: new buildings (or ‘accounts’) can keep popping up, and even unused ones stick around. While the tree structure we use to store the state is efficient for tracking changes, it’s not as space-saving when it comes to data storage. This leads to a peculiar scenario where the actual state size of long-standing blockchain systems can become significantly larger than the state in active use. It’s a challenging situation that needs to be addressed.

Facing the Challenge

The blockchain state is stored in a tree data structure, called the Merkle Patricia Trie. It’s great for ensuring data integrity, but it’s a bit like a big old library: it’s slow to find and store books, and it needs a lot of room. As more ‘books’ (or data) are added, the ‘library’ gets bigger, demanding more resources and slowing down operations. To put it simply, the blockchain starts to feel heavy and slow. As Péter Szilágyi once put it, all the blockchains in the world are speeding towards a brick wall at their own pace.

These problems pile up, making the blockchain a bit of a tough gig. With chunkier node sizes and heavy-duty synchronization, keeping a node up and running starts costing a pretty penny. This can put a dent in the number of nodes chipping in on the network, taking a swing at the network’s stability and security — two things we really care about.

Our Innovative Solution

Meet Ethanos, our innovative state expiry mechanism designed to manage the ever-expanding size of a blockchain state. It works by efficiently pruning inactive accounts.

Our in-depth analysis of Ethereum data revealed a surprising statistic: 95% of accounts have been inactive for at least a month, essentially in a state of dormancy. By “inactive,” we mean accounts that haven’t been engaged or altered by any transactions. We believe there should be a distinction in how we handle active and inactive data. With Ethanos, we ensure that the active 5% of data can be accessed more easily and cost-effectively, while the dormant majority does not burden the system.

In the realm of computer science, different strategies are employed to segregate frequently accessed data from the less popular ones. This ensures that the data you need most often is right at your fingertips. Think of it like a well-organized library, where the popular books are kept at the front for easy access. Similarly, computing hardware maintains a tiered cache system, acting like a librarian for your data. Frequently accessed data is readily available from a high-level cache (akin to the library’s front desk), while less popular data resides deeper in the system (like books in the library stacks). The deeper you have to go, the longer it takes to retrieve what you’re after, but there’s also much more storage space available.

This sparks the concept of allocating the frequently accessed (or active) data of a blockchain in a unique trie, much like the upper echelons of the cache hierarchy. This approach means that nodes usually maintain just a small fraction of active data, which is likely to be of immediate interest to them.

Let’s dive into the specifics of this streamlined state optimization design.

Managing Account Activity Through Expiration

Think of each epoch as a fresh start. It’s like creating a new, empty folder labeled ‘epoch state trie’, ready to be filled. This folder represents the state, containing only the active accounts for each epoch. As we move through the epoch, we start adding files, or ‘active accounts’, to this folder. By the time we reach the end of the epoch, only the ‘files’ that have been active during that epoch remain in the folder. The rest? They’re like old files that haven’t been opened in a while, staying dormant in their own folders.

Implementing this system is where Ethanos really shines. It keeps hold of the previous epoch’s state trie. When a new transaction involves a specific account, Ethanos first tries to find it in this “old” trie. If the account is there, its information gets moved over to the “new” trie for the current epoch. If it’s not found, the account is either dormant from past epochs or it’s completely new. But, whether it’s a dormant account waking up or a brand new one, Ethanos treats it like a new account. For the dormant accounts, there’s a bit of a wake-up call, a “restoration” process to bring them back into the action. Once restored, they’re ready to roll in the current epoch.

Here is a short pseudocode and a illustration for the expiration mechanism.


🔁 For every epoch
Initialization: Create the following at the start of each epoch.
- New Epoch Trie: Create a new empty trie, which we will accommodate the active accounts of the given epoch.
- Last Epoch Trie: Create a cached result of previous epoch’s epoch state. This trie contains only the active accounts of the previous epoch.

Progression within the epoch: Update Empty Tries according to transactions.
- Look for accounts mentioned in transactions of this epoch
- First, traverse through the new epoch trie to see if there is the account
- Second, traverse through the last epoch trie to see if there is the account
- Third, If the account is not in both tries it implies that the account is either 1) newly created, or is 2) dormant. Regardless of whether it's a dormant account or a new one, the protocol treats it as a newly created one.

Restoration: Restore dormant account with proof
- Send a restoration transaction that includes data providing evidence that the account had a specific balance before it entered a dormant state.
- All full nodes can validate this evidence. If correct, they restore the account's state and merge it into the current account's state. If incorrect, they simply fail the execution of the transaction.

Termination: Update the Cached State Trie information for the next epoch
- Remove reference to the last epoch trie representing the previous epoch, and Cache the new epoch trie as the last epoch trie for the use in the next epoch.

When an account remains inactive for more than two epochs, it enters a dormant state. This mechanism ensures that the state size isn’t endlessly growing but is instead bound by the length of an epoch. At present, we’ve opted for an epoch length of three months. So, rather than an ever-expanding state, Ethanos offers a more manageable, bounded approach to handling blockchain data.

The Power of Ethanos: Democratizing Full Node Construction

The power of Ethanos lies in its capability to keep the size of the blockchain and its state under control. In the world of most blockchains, setting up a full node requires a solid-state drive (SSD) with 1–2TB or even more storage. This requirement comes not just from the current vastness of the blockchain and state, but also from the expectation of continuous data growth. Predicting the amount of terabytes an SSD will need to hold in the future is like gazing into a crystal ball.

However, Ethanos changes the game by enabling you to build a full node on your personal computer, no supercomputer needed. All you need is a modest SSD with 128GB to 256GB of storage. This is possible because Ethanos keeps the state size small and bounded, while also employing various storage optimization techniques. It’s like having a mini library of only the most essential books right in your home, instead of needing to build a gigantic library to hold every book ever written.

Embracing the Future with Ethanos

In conclusion, the Ethanos state expiry mechanism has the potential to revolutionize blockchain technology. By intelligently managing active and dormant accounts, Ethanos effectively curbs the uncontrolled growth of blockchain state size, ensuring a more efficient and sustainable future for blockchain networks. This isn’t just a technical achievement; it’s a step towards democratizing access to blockchain technology. With Ethanos, running a full node no longer requires expensive, high-capacity storage. It’s a solution that invites more participation, fostering a diverse and robust blockchain community. As we step into this new era of blockchain technology, it’s innovations like Ethanos that will drive progress and open doors to new possibilities.

--

--