RAM It All: Rising Costs Are Turning EOS Into a Crypto Coder’s Nightmare

David Floyd
Sep 4, 2018 at 08:00 UTC
Updated Sep 5, 2018 at 10:07 UTC
FEATURE

Compared to ethereum, EOS seems to have scalable dapps figured out.

Users of decentralized applications (dapps) on ethereum frequently chafe at the fact that any action – sending a tweet, playing a card, breeding a cat – costs money in the form of “gas” and takes time, as miners hash out the new state of the chain.

At first glance, EOS suffers from neither of these issues. There is no fee to send tokens or call a dapp smart contract. And in contrast to ethereum, even when the EOS blockchain is processing millions of transactions a day, it runs smoothly.

According to the EOS white paper, these perks are likely to make the system “gain more widespread adoption,” and some dapp developers apparently spot an opportunity.

For instance, Kevin Rose, the co-founder of EOS New York, a block producer, an entity that performs a similar function to miners in other blockchain networks, told CoinDesk:

“I’m having conversations with at least one group a week about, ‘These are the challenges we’re having on so-and-so platform, we want to come onto EOS.'”

Rose mentioned Tixico, which announced that it would transition from ethereum due to EOS’ “better performance and scalability to serve high demand.”

Yet, the grass may not be as green as some dapp developers hope.

That’s because, whereas ethereum dapps can be costly for the ones using them, EOS dapps can be costly for the teams deploying them.

In order to onboard users to an EOS dapp, developers generally have to make sure they’ve secured sufficient amounts of three separate resources: RAM, which amounts to state storage on the blockchain; CPU, which measures average consumption of computing resources in microseconds; and network bandwidth, or NET, which measures average consumption in bytes.

And getting these resources has proved costly.

Yutin Chen, CEO of PandaFun, a game that recently launched on EOS, said the team bought 10,000 EOS worth of RAM or around $65,000 at current EOS prices. The company also staked 10,000 EOS for CPU and 1,000 EOS for NET. Although, Chen made it clear that most of the RAM would go toward an upcoming token sale, saying, “The game doesn’t cost that much.”

By contrast, deploying a smart contract to ethereum only costs a bit of gas, whether it houses functionality for a dapp or a token contract. The cost of deploying the ethereum smart contracts could be $1 or $100, but it’s a far cry from what it would cost on EOS.

Ultimately, that’s not only a problem for the developers, but also EOS users.

For instance, some dapps might begin shifting expenses back onto users, to the extent that’s possible. And others might do what would-be dapps on ethereum are doing, and decide to launch elsewhere.

RAM: Speculators and hackers

Arguably the biggest headache for developers right now is RAM, as the resource has to be bought at a changing market price using EOS, with trades taking place on the Bancor algorithm.

Each dapp user takes 4 kilobytes of RAM to onboard for developers. According to the current RAM price, that’s around $3.12 per user. RAM is necessary for other actions as well, besides just creating an account.

And as such, Rose told CoinDesk:

“We do not understand the total costs of onboarding a dapp user yet. I don’t think that that data […] could give us confidence in an average of sorts.”

Even before the EOS mainnet launched in June, an open issue of GitHub (which has received 60 replies since it was created) argues that the RAM model “simply can’t work if your target is to create tens or hundreds of million user accounts for your dapp!”

And at the time that was written, RAM prices were far cheaper.

Following the launch, however, speculators jumped on the limited available RAM in hopes of selling it later at a profit. This drove prices as high as 0.94 EOS per KB – eight times higher than the current level.

In response to the spiking price, block producers decided to double the total supply of RAM, adding 64 GB over the following year at the rate of 1 KB per block. This move has so far helped to calm the market.

The issue around RAM, though, isn’t just how expensive it is.

It is also vulnerable. In August it emerged that attackers could eat up an account’s RAM, using a notification feature to stuff the target’s available RAM with useless data. Developers can avoid this attack by sending tokens through proxy smart contracts that contain no RAM, but that adds another step developers must take into account.

The issue was serious enough for EOS’ chief architect to weigh in. Dan Larimer, CTO of Block.One, the company that developed the protocol and held the $4 billion EOS ICO, wrote that block producers could free up maliciously consumed RAM by enforcing the principle that “intent of code is law.”

While that rule is contained in Larimer’s proposed revision to the EOS “constitution,” a set of bylaws that network participants are in theory held to, the problem is that the constitution has not been adopted, because the voting system necessary to do so hasn’t been implemented yet.

CPU: WE LOVE BM

EOS’ other two network resources, CPU and NET, haven’t received as much attention, but CPU in particular could squeeze both developers and users.

These resources work differently from RAM. Rather than being bought and sold, they’re obtained through staking, in which a network participant delegates EOS tokens to a particular kind of smart contract.

When the network is not being fully utilized, participants can get an outsized amount of CPU time for a relatively modest stake. In theory, that should mean early adopters don’t need very large stakes for the time being.

After all, according to Dapp Radar, just a handful of EOS dapps have more than 100 daily users, so how strapped for CPU could the network be?

As it turns out, a spammer has stepped in to fill the void. A single account, Blocktwitter, has been “sharing messages comprising of 192 million actions, which is  about 95 percent of all EOS transactions to date,” said Tom Fu, a partner at standby block producer GenerEOS.

Nearly all of them say simply “WE LOVE BM,” a reference to Larimer’s nom-de-net, bytemaster. As Fu put it, the messages are “not important.”

But they’re still having an impact, due to Blocktwittter’s high CPU stake. Users, as well as developers, are seeing their allotted CPU times get squeezed due to all the spamming.

Fu told CoinDesk:

“RAM can be pushed onto users, however, CPU cannot. In this sense whoever executes the action needs to have the CPU staked in their account.”

A recent Reddit post by an EOS Knights player underscores this point. The user wrote that they delegated 10 EOS – $59 worth – to play the game, thinking that would be enough, but actually it wasn’t even close. EOS Knights suggests staking at least 15 EOS ($88) on CPU to play the game, but the Reddit user claimed that even a $500 stake would not meet the recommended required CPU time.

As such, Larimer has proposed a model for renting CPU and NET, which he writes “will lower the cost of using the EOS network.”

Worth it?

Yet, it may be overly simplistic to say that ethereum pushes costs onto users, while EOS pushes costs onto developers.

“There are use cases where a developer can write a dapp where the user has to bring their own CPU and/or [NET] and/or RAM to the interaction,” former Block.One VP of product Thomas Cox said, adding: “that’s one way to write an early version of your dapp that won’t bankrupt you if it suddenly gets popular.”

One thing that is clear is that EOS dapp developers will have to think hard about their business models, perhaps more so than their counterparts on ethereum.

In the final analysis, though, EOS might have its advantages, according to Cox.

For one, whereas a popular dapp like CryptoKitties can clog the entire ethereum network, EOS staking does guarantee a certain minimum access to CPU.

Another potential advantage is that unlike ethereum’s gas, investments in EOS resources can be recouped. Tokens staked on CPU can be unstaked, and RAM can be sold – perhaps at a lower price, though.

Finally, Cox said, ethereum dapp developers are “one bug away from bankruptcy.”

EOS’ arbitration system has been the subject of considerable controversy, but it does provide some recourse and the potential to avoid a DAO- or Parity-type fiasco.

As such, Cox posed, but didn’t answer, the question:

“What’s that worth?”

EOS with skeleton via Shutterstock