EOS Mainnet launched just over two months ago and it’s fair to say that it has been an exhilarating time as well as a tremendous learning curve. As a community, we have come together to launch what is arguably the most promising blockchain entity to date. Being the first experiment of its kind in decentralized governance, we have achieved some major milestones thus far- a record breaking 3700 TPS and over 10 million blocks produced. However, nothing of this magnitude or transformative potential comes easily or kink-free.

It’s been a great pleasure working alongside the other BPs and EOS community members to brainstorm and solve a series of issues that have arisen; from RAM prices, to fine-tuning and working out the details of arbitration, BP compliance and responsibilities, to scaling and achieving wide scale adoption — there is never a dull moment.

One topic that has constantly been at the forefront of discussion has been the issue of RAM. So what the RAM is going on!?

Importance of RAM in EOS

The EOSIO blockchain software uses RAM to store the account information (keys, balances, contract state) required for development and production of decentralized applications (dApps).

This is because the time it would take users to ask the entire (growing!) Blockchain for any data they need would be way too long. So instead, the information is stored in RAM and accessed from this more readily available memory. In the future, support for asymmetric communication and parallel processing is planned to fully ensure the smooth running of multi million transactions and queries per second. But in the present, this RAM solution is how EOS must scale.

An amount of RAM refers to the general storage space needed in the EOS memory database and can be increased by the community upon technological development and growing market demand. To transfer, stake, or otherwise push a transaction to the EOS blockchain, EOS users have to purchase a minimum of four kilobytes of RAM — even to just open an account, with a 0.5% fee constantly applied to buy or sell RAM each time. DApp builders (as opposed to users) are required to purchase much more RAM for staking out the processing power required for their own projects. The amount of RAM one needs depends on the nature of the dApp and it’s computational, transaction or data necessities.

Bancor’s Algorithm

In EOSIO Dawn 4.0, the original system contract was switched to a market-based allocation approach for pricing RAM, by utilizing the Bancor Protocol algorithm. As Dan Larimer describes in his article:

“To facilitate this market, the EOSIO system contract allows users to buy RAM from the system and sell RAM back to the system in exchange for the blockchains native tokens (e.g EOS). This provides liquidity in the RAM market while facilitating price discovery. The less unallocated RAM available to the market maker the higher the market maker prices the remaining RAM. The algorithm used for this market maker is known as a Bancor Relay.

A Bancor Relay does not set the price of RAM. It only offers to buy and sell at previously established market rates. Anytime the current market rate is different than the current price offered by the Bancor Relay, traders will buy or sell RAM pushing it closer to the market determined price.”

RAM Issues

Shortly after the mainnet launch, RAM prices spiked due to speculators buying up nearly all the available RAM.

Dan Larimer quotes, “Because the amount of RAM available to a single computer is limited by Moore’s Law and other technological advances, RAM is fundamentally scarce…. Keeping RAM scarce (64GB) lowers the cost of hosting a full node, but increases the cost of interacting with the blockchain. So much so that deploying a typical smart contract (which uses 10MB of RAM) costs about $40,000 at today’s RAM prices.”

In early July, RAM was around $11 per GB per server and the EOS RAM market was pricing its RAM at $4M dollars per GB. Meaning, the whole network could buy enough real RAM for over 300,000 servers for the same price speculators were bidding on the limited 64GB of RAM allocated to the EOS chain. Naturally, this means developers and users will find it prohibitively expense to use the EOS blockchain, potentially limiting its adoption severely.

How those issues will affect adoption

In July, one dApp developer spent $200,000 on RAM just to do an airdrop; the same airdrop would now cost around $40,000 at today’s market price. Currently, Social Media Platforms being developed on the EOS blockchain are seeing “break-even” as the most optimal scenario. A lot of dApp developers are currently considering which Blockchain to build on, and RAM being expensive may very well be the reason why they decide to build on another promising blockchain like Ethereum, Cardano or others. Making RAM easily affordable is of utmost importance if EOS wants to win developers, who in turn increase usage.

Proposed RAM Solutions

The month of July was packed with panels, calls and meetings to work on finding solutions to the RAM issue. Eyal Hertzog was on a RAM panel at the EOS Community Conference in Seoul, South Korea and Beni Hakak was on a RAM panel at the EOS Family Conference in Shanghai, China. Meanwhile Tal Muskal from our team found a bug in the EOS RAM contract and helped Dan fix it.

Since the Mainnet Launch in June, there have been a variety of proposals. EOS RAM solutions will have to be a combination of technical, incentivised, and mass-appealing, while still keeping true to the decentralized nature of the network. There is no one clear solution to the RAM pricing issue but rather a series of tradeoffs. Many have been proposed thus far but it is not yet clear which solution is most suitable.

Dan Larimer — Gradual Increase to RAM Supply

https://medium.com/@bytemaster/eosio-ram-market-bancor-algorithm-b8e8d4e20c73

By Dan Larimer himself. Add “setramrate” method for gradual increase. This change allows the elected producers to set the ramrate as bytes per block and also resync the bancor parameters to current eosio.ram balance plus reduce the volatility of the market maker.

LiquidEOS — EOS Burn & RAM Futures

https://steemit.com/eos/@bancor-network/a-proposed-solution-to-eos-ram-allocation

Proposal by Eyal Hertzog, Bancor Product Architect and LiquidEOS co-founder. The Bancor solution is to burn EOS tokens inside the RAM contract. Due to the relay contract mechanism, the price of RAM is reduced as the amount of EOS in the contract is reduced.

Greymass Proposal — Examples of Account and Contract Usage

https://steemit.com/eos/@greymass/leasing-eos-ram-without-forceful-memory-frees

Dives into all the possible RAM allocation solutions including leasing, how to pay for leasing, determination of RAM and DISK, and examples of usage.

Dan Larimer — RAM Leasing (proposed after the first was implemented)

https://medium.com/@bytemaster/proposal-for-eos-resource-renting-rent-distribution-9afe8fb3883a

Dan Larimer’s second proposal. Creating an efficient rental market requires price discovery and liquidity where token holders can lend their EOS at a fee in exchange for some loss of liquidity for the duration of the loan.

We decided to support Dan’s proposal because his solution is a non drastic one that would allow us to all collect more data and make more educated decisions in dealing with the RAM market in the future. Not to mention that we greatly respect his opinion as his record speaks for itself. We think his solution is a good one but also firmly believe there is need for more than one mechanism to fix the issue and those solutions can co-exist. Since the implementation of Dan’s proposal for the incremental increase of RAM supply, RAM prices have reduced quite drastically as expected. We are all carefully watching and waiting to see how the RAM market evolves to make an educated decision as to what more needs to be implemented to achieve the desired effect over time.

On July 5th, the price of RAM drastically spiked. Since Dan Larimer implemented the solution of incrementally increasing the supply of RAM, the price has steadily dropped.

Side Chain Solution

Sidechains are one of the most exciting features on EOS and very well may provide the solution needed for RAM. A sidechain is a separate blockchain that is attached to its parent blockchain. The original blockchain is referred to as the ‘mainchain’ and all additional attached blockchains are referred to as ‘sidechains’. The mainchain and sidechain will be attached to each other using inter-blockchain communication. This means the assets can be traded at a predetermined rate between the chains. Sidechains allow new software to be tested without compromising the mainchain. They also take pressure off of the mainchain by allowing developers to deploy dApps on a cheaper, faster, less-stressed mainchain. With a new pool of RAM introduced with each new sidechain the price speculation of RAM will decrease in return. This competition would encourage both the EOS mainchain block producers and sidechain block producers to keep the RAM price as low as possible (EOS mainchain and sidechain block producers are both maintained by the same elected 21 BP’s).

Conclusion

There are more than 100 dApps on the EOS Blockchain with over 200 currently under development. EOS developers will not spend upwards of tens of thousands of dollars per year buying RAM to access the blockchain for their applications. Lowering the RAM price is essential to fueling innovation. EOS is still in its infancy and it’s important to remember that this race is a marathon, not a sprint. Only time will tell how RAM and other issues will be solved but we can tell you that at LiquidEOS, we are very confident in the community’s collective ability to overcome obstacles through debate and iteration, and to achieve the world’s first and largest mass adopted blockchain. Onwards!